xref: /openbmc/phosphor-webui/app/overview/controllers/system-overview-controller.html (revision d10511f2a7fc07910d7ca517bd73331763322fa0)
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>
49*d10511f2SIgor Kononenko            <dl class="list-pair" ng-repeat="(ifaceName,iface) in dataService.network_interfaces">
50*d10511f2SIgor Kononenko              <dt>{{ifaceName | uppercase}} IP addresses</dt>
51*d10511f2SIgor Kononenko              <dd class="courier-bold" ng-repeat="ipv4 in iface.ipv4.values">
52*d10511f2SIgor Kononenko                IPv4: <span>{{ ipv4.Address }}</span>
53*d10511f2SIgor Kononenko              </dd>
54*d10511f2SIgor Kononenko              <dd class="courier-bold" ng-repeat="ipv6 in iface.ipv6.values">
55*d10511f2SIgor Kononenko                IPv6: <span>{{ ipv6.Address | uppercase }}</span>
5630d7c637SDerick Montague              </dd>
571ffa209eSDerick Montague            </dl>
5830d7c637SDerick Montague          </div>
5930d7c637SDerick Montague          <div class="column large-6">
60*d10511f2SIgor Kononenko            <dl class="list-pair" ng-repeat="(ifaceName,iface) in dataService.network_interfaces">
61*d10511f2SIgor Kononenko              <dt>{{ifaceName | uppercase}} Mac address</dt>
62*d10511f2SIgor Kononenko              <dd>
63*d10511f2SIgor Kononenko                <span>{{iface.MACAddress | uppercase}}</span>
64*d10511f2SIgor Kononenko              </dd>
651ffa209eSDerick Montague            </dl>
6630d7c637SDerick Montague            <dl class="list-pair">
6730d7c637SDerick Montague              <dt>Firmware Version</dt>
6830d7c637SDerick Montague              <dd class="courier-bold">{{ bmc_firmware }}</dd>
6930d7c637SDerick Montague            </dl>
700a1c6b0aSMichael Davis          </div>
710a1c6b0aSMichael Davis        </div>
7230d7c637SDerick Montague      </section>
7330d7c637SDerick Montague
7430d7c637SDerick Montague      <section class="section">
7530d7c637SDerick Montague        <div class="section-header">
7630d7c637SDerick Montague          <h2 class="section-title h3">Power Consumption</h2>
770a1c6b0aSMichael Davis        </div>
7830d7c637SDerick Montague        <div class="section-content row">
7930d7c637SDerick Montague          <div class="column large-6">
8030d7c637SDerick Montague            <dl class="list-pair">
8130d7c637SDerick Montague              <dt>Power Consumption</dt>
821ffa209eSDerick Montague              <dd class="courier-bold">{{ power_consumption }}</dd>
831ffa209eSDerick Montague            </dl>
8430d7c637SDerick Montague          </div>
8530d7c637SDerick Montague          <div class="column large-6">
8630d7c637SDerick Montague            <dl class="list-pair">
8730d7c637SDerick Montague              <dt>Power Cap</dt>
881ffa209eSDerick Montague              <dd class="courier-bold">{{ power_cap }}</dd>
891ffa209eSDerick Montague            </dl>
900a1c6b0aSMichael Davis          </div>
910a1c6b0aSMichael Davis        </div>
9230d7c637SDerick Montague      </section>
930a1c6b0aSMichael Davis    </div>
9430d7c637SDerick Montague    <div class="small-12 large-4">
950a1c6b0aSMichael Davis      <div class="quick-links">
96565efda5Sdixsie        <a href="#/server-health/event-log/high" class="quick-links__item quick-links__events event-log__events"
97565efda5Sdixsie          ng-show="logs.length">
98565efda5Sdixsie          <!-- link to event log filtered to the high priority events -->
9930d7c637SDerick Montague          <span class="inline quick-links__event-copy">
10030d7c637SDerick Montague            View {{ logs.length }} high priority events
10130d7c637SDerick Montague          </span>
1020a1c6b0aSMichael Davis        </a>
1031ffa209eSDerick Montague        <dl class="quick-links__item no-icon">
1041ffa209eSDerick Montague          <dt class="inline quick-links__label">BMC time</dt>
10530d7c637SDerick Montague          <dd class="bmc-time">{{ bmc_time | localeDate }}</dd>
1061ffa209eSDerick Montague        </dl>
1070a1c6b0aSMichael Davis        <div class="quick-links__item no-icon">
10830d7c637SDerick Montague          <p class="inline quick-links__label">
10930d7c637SDerick Montague            Turn <span ng-if="dataService.LED_state == 'off'">on</span>
11030d7c637SDerick Montague            <span ng-if="dataService.LED_state == 'on'">off</span> server LED
11130d7c637SDerick Montague          </p>
112c652ed18SDixsie Wolmers          <div class="toggle-container">
113c652ed18SDixsie Wolmers            <div class="toggle">
114565efda5Sdixsie              <input id="toggle__switch-round" class="toggle-switch toggle-switch__round-flat" type="checkbox"
115565efda5Sdixsie                tabindex="0" ng-click="toggleLED()" ng-checked="dataService.LED_state == 'on'"
11630d7c637SDerick Montague                ng-disabled="dataService.server_unreachable" />
11730d7c637SDerick Montague              <label for="toggle__switch-round" tabindex="0">Server LED is
11830d7c637SDerick Montague                <span class="uid-switch__status">{{
11930d7c637SDerick Montague                  dataService.LED_state
12030d7c637SDerick Montague                }}</span></label>
121c652ed18SDixsie Wolmers            </div>
122c652ed18SDixsie Wolmers            <span>
12330d7c637SDerick Montague              {{ dataService.LED_state == "on" ? "On" : "Off" }}
124c652ed18SDixsie Wolmers            </span>
1250a1c6b0aSMichael Davis          </div>
1260a1c6b0aSMichael Davis        </div>
12750c1aa1dSDixsie Wolmers        <a href="#/server-control/remote-console" class="quick-links__item">
12830d7c637SDerick Montague          <span class="inline quick-links__label">Serial over LAN console</span>
12930d7c637SDerick Montague          <icon aria-hidden="true" file="icon-chevron-right.svg"></icon>
1300a1c6b0aSMichael Davis        </a>
13154c22e4fSIftekharul Islam        <a href="#/configuration/network" class="quick-links__item">
13230d7c637SDerick Montague          <span class="inline quick-links__label">Edit network settings</span>
13330d7c637SDerick Montague          <icon aria-hidden="true" file="icon-chevron-right.svg"></icon>
1340a1c6b0aSMichael Davis        </a>
1356a3b3b2cSYoshie Muranaka      </div>
1366a3b3b2cSYoshie Muranaka    </div>
137706b75b3SMichael Davis  </div>
138706b75b3SMichael Davis
13930d7c637SDerick Montague  <div class="section overview__event-log event-log__events" ng-show="logs.length">
14030d7c637SDerick Montague    <div class="section-header">
14130d7c637SDerick Montague      <h2 class="section-title h3">High priority events ({{ logs.length }})</h2>
14230d7c637SDerick Montague      <a href="#/server-health/event-log/">
14330d7c637SDerick Montague        View all event logs
14430d7c637SDerick Montague      </a>
14530d7c637SDerick Montague    </div>
14630d7c637SDerick Montague
147706b75b3SMichael Davis    <!-- single event -->
14810ed3760SGunnar Mills    <a href="#/server-health/event-log/high" ng-repeat="event in logs|orderBy:'-Id'|limitTo : 5">
149706b75b3SMichael Davis      <div class="row column event-log__single-event">
150706b75b3SMichael Davis        <div class="row">
151565efda5Sdixsie          <!-- click will go to specific event in event log page-->
1526a3b3b2cSYoshie Muranaka          <div class="column small-10 large-11 event-log__event-info" ng-click="">
1536a3b3b2cSYoshie Muranaka            <div class="row">
1546a3b3b2cSYoshie Muranaka              <div class="column large-1 small-1">
155706b75b3SMichael Davis                <p class="inline event__id">#{{ event.Id }}</p>
1566a3b3b2cSYoshie Muranaka              </div>
1576a3b3b2cSYoshie Muranaka              <div class="column large-4 small-11">
158706b75b3SMichael Davis                <p class="inline event__priority high-priority">High</p>
15930d7c637SDerick Montague                <p class="inline event__severity high-priority">
16030d7c637SDerick Montague                  {{ event.severity_code }}
16130d7c637SDerick Montague                </p>
1626a3b3b2cSYoshie Muranaka              </div>
16330d7c637SDerick Montague              <div class="column large-7 large-offset-0 small-11 small-offset-1">
16430d7c637SDerick Montague                <p class="inline event__timestamp">
16530d7c637SDerick Montague                  {{ event.Timestamp | localeDate }}
16630d7c637SDerick Montague                </p>
1676a3b3b2cSYoshie Muranaka              </div>
1686a3b3b2cSYoshie Muranaka            </div>
1696a3b3b2cSYoshie Muranaka
1706a3b3b2cSYoshie Muranaka            <div class="row">
17130d7c637SDerick Montague              <div class="column large-12 small-11 small-offset-1">
17230d7c637SDerick Montague                <p class="inline event__description">
17330d7c637SDerick Montague                  {{ getEventLogTitle(event) }}
17430d7c637SDerick Montague                </p>
175706b75b3SMichael Davis              </div>
176706b75b3SMichael Davis            </div>
1776a3b3b2cSYoshie Muranaka          </div>
1786a3b3b2cSYoshie Muranaka          <div class="column small-2 large-1">
179c86ce3c9SYoshie Muranaka            <span class="accord-trigger" aria-hidden="true"></span>
180706b75b3SMichael Davis          </div>
181706b75b3SMichael Davis        </div>
182706b75b3SMichael Davis      </div>
183706b75b3SMichael Davis    </a>
184706b75b3SMichael Davis  </div>
185706b75b3SMichael Davis
18630d7c637SDerick Montague  <div class="section overview__event-log event-log__events" ng-show="!logs.length">
18730d7c637SDerick Montague    <div class="section-header">
18830d7c637SDerick Montague      <h2 class="section-title h3">High priority events</h2>
189706b75b3SMichael Davis    </div>
19030d7c637SDerick Montague    <p class="section-content">
19130d7c637SDerick Montague      There are no high priority events to display at this time.
19230d7c637SDerick Montague    </p>
193706b75b3SMichael Davis  </div>
19499d199f3SIftekharul Islam</div>
195db28a387SIftekharul Islam<!-- edit server name modal -->
196565efda5Sdixsie<section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog"
197565efda5Sdixsie  ng-class="{'active': edit_hostname}">
198db28a387SIftekharul Islam  <div class="modal__upload" role="document">
199565efda5Sdixsie    <!-- accessibility only; used for screen readers -->
200565efda5Sdixsie    <div class="screen-reader-offscreen modal-description">Edit hostname</div>
201db28a387SIftekharul Islam    <div class="page-header ">
202c86ce3c9SYoshie Muranaka      <h2 class="modal-title">
20330d7c637SDerick Montague        <icon class="icon__info" file="icon-information.svg"></icon>Edit
20430d7c637SDerick Montague        hostname
2051ffa209eSDerick Montague      </h2>
206db28a387SIftekharul Islam    </div>
207db28a387SIftekharul Islam    <div class="modal__content">
208565efda5Sdixsie      <form name="edit_hostname_text">
209565efda5Sdixsie        <label for="editServerName">Hostname</label>
21030d7c637SDerick Montague        <p class="label__helper-text">
21130d7c637SDerick Montague          Hostname must be less than 64 characters and must not contain spaces.
21230d7c637SDerick Montague        </p>
213565efda5Sdixsie        <input id="editServerName" class="modal__edit-server-name" type="text" ng-model="newHostname" ng-trim="false"
214565efda5Sdixsie          name="hostname" ng-pattern="/^\S{0,64}$/" required autofocus />
21530d7c637SDerick Montague        <span class="modal__error" ng-show="edit_hostname_text.hostname.$error.pattern">Invalid format. Remove
21630d7c637SDerick Montague          spaces.</span>
217565efda5Sdixsie        <span class="modal__char-count"
218565efda5Sdixsie          ng-hide="edit_hostname_text.hostname.$error.pattern">{{ 0 + newHostname.length }}/64</span>
219db28a387SIftekharul Islam      </form>
220db28a387SIftekharul Islam    </div>
221db28a387SIftekharul Islam    <div class="modal__button-wrapper">
22230d7c637SDerick Montague      <button class="btn  btn-secondary" ng-click="edit_hostname= false; newHostname = dataService.hostname">
22330d7c637SDerick Montague        Cancel
22430d7c637SDerick Montague      </button>
225c86ce3c9SYoshie Muranaka      <button class="btn  btn-primary" ng-click="saveHostname(newHostname);" ng-disabled="edit_hostname_text.$invalid"
22630d7c637SDerick Montague        ng-class="{'disabled' : edit_hostname_text.$invalid}">
22730d7c637SDerick Montague        Save
22830d7c637SDerick Montague      </button>
229db28a387SIftekharul Islam    </div>
230db28a387SIftekharul Islam  </div>
231db28a387SIftekharul Islam</section>
232e56bb445SGunnar Mills<div class="modal-overlay" tabindex="-1" ng-class="{'active': edit_hostname}"></div>
233