xref: /openbmc/phosphor-webui/app/overview/controllers/system-overview-controller.html (revision 50c1aa1d26a935487ef93ac1f9c348f3760523a7)
1428375e8SMichael Davis<loader loading="loading"></loader>
230d7c637SDerick Montague<div class="page overview">
330d7c637SDerick Montague  <h1 class="page-title inline">{{ dataService.hostname }}</h1>
430d7c637SDerick Montague  <button class="btn  btn-tertiary" ng-click="edit_hostname = !edit_hostname" aria-label="edit host name">
530d7c637SDerick Montague    <icon class="nav-icon" aria-hidden="true" file="icon-edit.svg"></icon>
630d7c637SDerick Montague  </button>
730d7c637SDerick Montague  <div class="row">
830d7c637SDerick Montague    <div class="small-12 large-8">
930d7c637SDerick Montague      <section class="section">
1030d7c637SDerick Montague        <div class="section-header">
1130d7c637SDerick Montague          <h2 class="section-title h3">Server information</h2>
120a1c6b0aSMichael Davis        </div>
1330d7c637SDerick Montague        <div class="section-content row">
1430d7c637SDerick Montague          <div class="column large-6">
1530d7c637SDerick Montague            <dl class="list-pair">
1630d7c637SDerick Montague              <dt>Model</dt>
1730d7c637SDerick Montague              <dd>{{ server_info.Model  || "N/A"  }}</dd>
1830d7c637SDerick Montague            </dl>
1930d7c637SDerick Montague            <dl class="list-pair">
2030d7c637SDerick Montague              <dt>Serial number</dt>
2130d7c637SDerick Montague              <dd>{{ server_info.SerialNumber || "N/A"  }}</dd>
2230d7c637SDerick Montague            </dl>
230a1c6b0aSMichael Davis          </div>
2430d7c637SDerick Montague          <div class="column large-6">
2530d7c637SDerick Montague            <dl class="list-pair">
2630d7c637SDerick Montague              <dt>Manufacturer</dt>
2730d7c637SDerick Montague              <dd>{{ server_info.Manufacturer || "N/A" }}</dd>
281ffa209eSDerick Montague            </dl>
2930d7c637SDerick Montague            <dl class="list-pair">
3030d7c637SDerick Montague              <dt>Firmware version</dt>
3130d7c637SDerick Montague              <dd>{{ server_firmware }}</dd>
321ffa209eSDerick Montague            </dl>
330a1c6b0aSMichael Davis          </div>
340a1c6b0aSMichael Davis        </div>
3530d7c637SDerick Montague      </section>
3630d7c637SDerick Montague
3730d7c637SDerick Montague      <section class="section">
3830d7c637SDerick Montague        <div class="section-header">
3930d7c637SDerick Montague          <h2 class="section-title h3">BMC information</h2>
400a1c6b0aSMichael Davis        </div>
4130d7c637SDerick Montague        <div class="section-content row">
4230d7c637SDerick Montague          <div class="column large-6">
4330d7c637SDerick Montague            <dl class="list-pair">
4430d7c637SDerick Montague              <dt>Hostname</dt>
4530d7c637SDerick Montague              <dd class="overview__hostname">
4630d7c637SDerick Montague                {{ dataService.hostname }}
4730d7c637SDerick Montague              </dd>
481ffa209eSDerick Montague            </dl>
4930d7c637SDerick Montague            <dl class="list-pair">
5030d7c637SDerick Montague              <dt>IP addresses</dt>
5130d7c637SDerick Montague              <dd class="courier-bold" ng-repeat="ip_address in bmc_ip_addresses">
5230d7c637SDerick Montague                {{ ip_address }}
5330d7c637SDerick Montague              </dd>
541ffa209eSDerick Montague            </dl>
5530d7c637SDerick Montague          </div>
5630d7c637SDerick Montague          <div class="column large-6">
5730d7c637SDerick Montague            <dl class="list-pair">
5830d7c637SDerick Montague              <dt>Mac address</dt>
591ffa209eSDerick Montague              <dd class="courier-bold">{{ dataService.mac_address }}</dd>
601ffa209eSDerick Montague            </dl>
6130d7c637SDerick Montague            <dl class="list-pair">
6230d7c637SDerick Montague              <dt>Firmware Version</dt>
6330d7c637SDerick Montague              <dd class="courier-bold">{{ bmc_firmware }}</dd>
6430d7c637SDerick Montague            </dl>
650a1c6b0aSMichael Davis          </div>
660a1c6b0aSMichael Davis        </div>
6730d7c637SDerick Montague      </section>
6830d7c637SDerick Montague
6930d7c637SDerick Montague      <section class="section">
7030d7c637SDerick Montague        <div class="section-header">
7130d7c637SDerick Montague          <h2 class="section-title h3">Power Consumption</h2>
720a1c6b0aSMichael Davis        </div>
7330d7c637SDerick Montague        <div class="section-content row">
7430d7c637SDerick Montague          <div class="column large-6">
7530d7c637SDerick Montague            <dl class="list-pair">
7630d7c637SDerick Montague              <dt>Power Consumption</dt>
771ffa209eSDerick Montague              <dd class="courier-bold">{{ power_consumption }}</dd>
781ffa209eSDerick Montague            </dl>
7930d7c637SDerick Montague          </div>
8030d7c637SDerick Montague          <div class="column large-6">
8130d7c637SDerick Montague            <dl class="list-pair">
8230d7c637SDerick Montague              <dt>Power Cap</dt>
831ffa209eSDerick Montague              <dd class="courier-bold">{{ power_cap }}</dd>
841ffa209eSDerick Montague            </dl>
850a1c6b0aSMichael Davis          </div>
860a1c6b0aSMichael Davis        </div>
8730d7c637SDerick Montague      </section>
880a1c6b0aSMichael Davis    </div>
8930d7c637SDerick Montague    <div class="small-12 large-4">
900a1c6b0aSMichael Davis      <div class="quick-links">
91565efda5Sdixsie        <a href="#/server-health/event-log/high" class="quick-links__item quick-links__events event-log__events"
92565efda5Sdixsie          ng-show="logs.length">
93565efda5Sdixsie          <!-- link to event log filtered to the high priority events -->
9430d7c637SDerick Montague          <span class="inline quick-links__event-copy">
9530d7c637SDerick Montague            View {{ logs.length }} high priority events
9630d7c637SDerick Montague          </span>
970a1c6b0aSMichael Davis        </a>
981ffa209eSDerick Montague        <dl class="quick-links__item no-icon">
991ffa209eSDerick Montague          <dt class="inline quick-links__label">BMC time</dt>
10030d7c637SDerick Montague          <dd class="bmc-time">{{ bmc_time | localeDate }}</dd>
1011ffa209eSDerick Montague        </dl>
1020a1c6b0aSMichael Davis        <div class="quick-links__item no-icon">
10330d7c637SDerick Montague          <p class="inline quick-links__label">
10430d7c637SDerick Montague            Turn <span ng-if="dataService.LED_state == 'off'">on</span>
10530d7c637SDerick Montague            <span ng-if="dataService.LED_state == 'on'">off</span> server LED
10630d7c637SDerick Montague          </p>
107c652ed18SDixsie Wolmers          <div class="toggle-container">
108c652ed18SDixsie Wolmers            <div class="toggle">
109565efda5Sdixsie              <input id="toggle__switch-round" class="toggle-switch toggle-switch__round-flat" type="checkbox"
110565efda5Sdixsie                tabindex="0" ng-click="toggleLED()" ng-checked="dataService.LED_state == 'on'"
11130d7c637SDerick Montague                ng-disabled="dataService.server_unreachable" />
11230d7c637SDerick Montague              <label for="toggle__switch-round" tabindex="0">Server LED is
11330d7c637SDerick Montague                <span class="uid-switch__status">{{
11430d7c637SDerick Montague                  dataService.LED_state
11530d7c637SDerick Montague                }}</span></label>
116c652ed18SDixsie Wolmers            </div>
117c652ed18SDixsie Wolmers            <span>
11830d7c637SDerick Montague              {{ dataService.LED_state == "on" ? "On" : "Off" }}
119c652ed18SDixsie Wolmers            </span>
1200a1c6b0aSMichael Davis          </div>
1210a1c6b0aSMichael Davis        </div>
122*50c1aa1dSDixsie Wolmers        <a href="#/server-control/remote-console" class="quick-links__item">
12330d7c637SDerick Montague          <span class="inline quick-links__label">Serial over LAN console</span>
12430d7c637SDerick Montague          <icon aria-hidden="true" file="icon-chevron-right.svg"></icon>
1250a1c6b0aSMichael Davis        </a>
12654c22e4fSIftekharul Islam        <a href="#/configuration/network" class="quick-links__item">
12730d7c637SDerick Montague          <span class="inline quick-links__label">Edit network settings</span>
12830d7c637SDerick Montague          <icon aria-hidden="true" file="icon-chevron-right.svg"></icon>
1290a1c6b0aSMichael Davis        </a>
1306a3b3b2cSYoshie Muranaka      </div>
1316a3b3b2cSYoshie Muranaka    </div>
132706b75b3SMichael Davis  </div>
133706b75b3SMichael Davis
13430d7c637SDerick Montague  <div class="section overview__event-log event-log__events" ng-show="logs.length">
13530d7c637SDerick Montague    <div class="section-header">
13630d7c637SDerick Montague      <h2 class="section-title h3">High priority events ({{ logs.length }})</h2>
13730d7c637SDerick Montague      <a href="#/server-health/event-log/">
13830d7c637SDerick Montague        View all event logs
13930d7c637SDerick Montague      </a>
14030d7c637SDerick Montague    </div>
14130d7c637SDerick Montague
142706b75b3SMichael Davis    <!-- single event -->
14310ed3760SGunnar Mills    <a href="#/server-health/event-log/high" ng-repeat="event in logs|orderBy:'-Id'|limitTo : 5">
144706b75b3SMichael Davis      <div class="row column event-log__single-event">
145706b75b3SMichael Davis        <div class="row">
146565efda5Sdixsie          <!-- click will go to specific event in event log page-->
1476a3b3b2cSYoshie Muranaka          <div class="column small-10 large-11 event-log__event-info" ng-click="">
1486a3b3b2cSYoshie Muranaka            <div class="row">
1496a3b3b2cSYoshie Muranaka              <div class="column large-1 small-1">
150706b75b3SMichael Davis                <p class="inline event__id">#{{ event.Id }}</p>
1516a3b3b2cSYoshie Muranaka              </div>
1526a3b3b2cSYoshie Muranaka              <div class="column large-4 small-11">
153706b75b3SMichael Davis                <p class="inline event__priority high-priority">High</p>
15430d7c637SDerick Montague                <p class="inline event__severity high-priority">
15530d7c637SDerick Montague                  {{ event.severity_code }}
15630d7c637SDerick Montague                </p>
1576a3b3b2cSYoshie Muranaka              </div>
15830d7c637SDerick Montague              <div class="column large-7 large-offset-0 small-11 small-offset-1">
15930d7c637SDerick Montague                <p class="inline event__timestamp">
16030d7c637SDerick Montague                  {{ event.Timestamp | localeDate }}
16130d7c637SDerick Montague                </p>
1626a3b3b2cSYoshie Muranaka              </div>
1636a3b3b2cSYoshie Muranaka            </div>
1646a3b3b2cSYoshie Muranaka
1656a3b3b2cSYoshie Muranaka            <div class="row">
16630d7c637SDerick Montague              <div class="column large-12 small-11 small-offset-1">
16730d7c637SDerick Montague                <p class="inline event__description">
16830d7c637SDerick Montague                  {{ getEventLogTitle(event) }}
16930d7c637SDerick Montague                </p>
170706b75b3SMichael Davis              </div>
171706b75b3SMichael Davis            </div>
1726a3b3b2cSYoshie Muranaka          </div>
1736a3b3b2cSYoshie Muranaka          <div class="column small-2 large-1">
174c86ce3c9SYoshie Muranaka            <span class="accord-trigger" aria-hidden="true"></span>
175706b75b3SMichael Davis          </div>
176706b75b3SMichael Davis        </div>
177706b75b3SMichael Davis      </div>
178706b75b3SMichael Davis    </a>
179706b75b3SMichael Davis  </div>
180706b75b3SMichael Davis
18130d7c637SDerick Montague  <div class="section overview__event-log event-log__events" ng-show="!logs.length">
18230d7c637SDerick Montague    <div class="section-header">
18330d7c637SDerick Montague      <h2 class="section-title h3">High priority events</h2>
184706b75b3SMichael Davis    </div>
18530d7c637SDerick Montague    <p class="section-content">
18630d7c637SDerick Montague      There are no high priority events to display at this time.
18730d7c637SDerick Montague    </p>
188706b75b3SMichael Davis  </div>
18999d199f3SIftekharul Islam</div>
190db28a387SIftekharul Islam<!-- edit server name modal -->
191565efda5Sdixsie<section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog"
192565efda5Sdixsie  ng-class="{'active': edit_hostname}">
193db28a387SIftekharul Islam  <div class="modal__upload" role="document">
194565efda5Sdixsie    <!-- accessibility only; used for screen readers -->
195565efda5Sdixsie    <div class="screen-reader-offscreen modal-description">Edit hostname</div>
196db28a387SIftekharul Islam    <div class="page-header ">
197c86ce3c9SYoshie Muranaka      <h2 class="modal-title">
19830d7c637SDerick Montague        <icon class="icon__info" file="icon-information.svg"></icon>Edit
19930d7c637SDerick Montague        hostname
2001ffa209eSDerick Montague      </h2>
201db28a387SIftekharul Islam    </div>
202db28a387SIftekharul Islam    <div class="modal__content">
203565efda5Sdixsie      <form name="edit_hostname_text">
204565efda5Sdixsie        <label for="editServerName">Hostname</label>
20530d7c637SDerick Montague        <p class="label__helper-text">
20630d7c637SDerick Montague          Hostname must be less than 64 characters and must not contain spaces.
20730d7c637SDerick Montague        </p>
208565efda5Sdixsie        <input id="editServerName" class="modal__edit-server-name" type="text" ng-model="newHostname" ng-trim="false"
209565efda5Sdixsie          name="hostname" ng-pattern="/^\S{0,64}$/" required autofocus />
21030d7c637SDerick Montague        <span class="modal__error" ng-show="edit_hostname_text.hostname.$error.pattern">Invalid format. Remove
21130d7c637SDerick Montague          spaces.</span>
212565efda5Sdixsie        <span class="modal__char-count"
213565efda5Sdixsie          ng-hide="edit_hostname_text.hostname.$error.pattern">{{ 0 + newHostname.length }}/64</span>
214db28a387SIftekharul Islam      </form>
215db28a387SIftekharul Islam    </div>
216db28a387SIftekharul Islam    <div class="modal__button-wrapper">
21730d7c637SDerick Montague      <button class="btn  btn-secondary" ng-click="edit_hostname= false; newHostname = dataService.hostname">
21830d7c637SDerick Montague        Cancel
21930d7c637SDerick Montague      </button>
220c86ce3c9SYoshie Muranaka      <button class="btn  btn-primary" ng-click="saveHostname(newHostname);" ng-disabled="edit_hostname_text.$invalid"
22130d7c637SDerick Montague        ng-class="{'disabled' : edit_hostname_text.$invalid}">
22230d7c637SDerick Montague        Save
22330d7c637SDerick Montague      </button>
224db28a387SIftekharul Islam    </div>
225db28a387SIftekharul Islam  </div>
226db28a387SIftekharul Islam</section>
227e56bb445SGunnar Mills<div class="modal-overlay" tabindex="-1" ng-class="{'active': edit_hostname}"></div>