xref: /openbmc/phosphor-webui/app/overview/controllers/system-overview-controller.html (revision 565efda513bbcda6c1c675eaebac6138782febe4)
1428375e8SMichael Davis<loader loading="loading"></loader>
20a1c6b0aSMichael Davis<div class="overview">
399d199f3SIftekharul Islam  <div class="row column">
4d265da25SMichael Davis    <h1 class="inline">{{dataService.hostname}}</h1>
5*565efda5Sdixsie    <button class="link" ng-click="edit_hostname = !edit_hostname">Edit</button>
60a1c6b0aSMichael Davis  </div>
70a1c6b0aSMichael Davis  <section class="row">
80a1c6b0aSMichael Davis    <div class="column large-8">
90a1c6b0aSMichael Davis      <!-- Server Metadata -->
100a1c6b0aSMichael Davis      <div class="row overview__server-metadata">
110a1c6b0aSMichael Davis        <div class="column large-4">
121ffa209eSDerick Montague          <h2 class="h3">Server information</h2>
130a1c6b0aSMichael Davis        </div>
140a1c6b0aSMichael Davis        <div class="column large-8">
150a1c6b0aSMichael Davis          <ul class="overview__metadata-wrapper">
160a1c6b0aSMichael Davis            <li class="overview__metadata-block">
171ffa209eSDerick Montague              <dl>
181ffa209eSDerick Montague                <dt class="content-label">Model</dt>
191ffa209eSDerick Montague                <dd class="courier-bold">{{server_info.Model}}</dd>
201ffa209eSDerick Montague              </dl>
210a1c6b0aSMichael Davis            </li>
220a1c6b0aSMichael Davis            <li class="overview__metadata-block">
231ffa209eSDerick Montague              <dl>
241ffa209eSDerick Montague                <dt class="content-label">Manufacturer</dt>
251ffa209eSDerick Montague                <dd class="courier-bold">{{server_info.Manufacturer}}</dd>
261ffa209eSDerick Montague              </dl>
270a1c6b0aSMichael Davis            </li>
280a1c6b0aSMichael Davis            <li class="overview__metadata-block">
291ffa209eSDerick Montague              <dl>
301ffa209eSDerick Montague                <dt class="content-label">Firmware version</dt>
311ffa209eSDerick Montague                <dd class="courier-bold">{{server_firmware}}</dd>
321ffa209eSDerick Montague              </dl>
330a1c6b0aSMichael Davis            </li>
340a1c6b0aSMichael Davis            <li class="overview__metadata-block">
351ffa209eSDerick Montague              <dl>
361ffa209eSDerick Montague                <dt class="content-label">Serial number</dt>
371ffa209eSDerick Montague                <dd class="courier-bold">{{server_info.SerialNumber}}</dd>
381ffa209eSDerick Montague              </dl>
390a1c6b0aSMichael Davis            </li>
400a1c6b0aSMichael Davis          </ul>
410a1c6b0aSMichael Davis        </div>
420a1c6b0aSMichael Davis      </div>
430a1c6b0aSMichael Davis      <!-- BMC Metadata -->
440a1c6b0aSMichael Davis      <div class="row overview__server-metadata">
450a1c6b0aSMichael Davis        <div class="column large-4">
461ffa209eSDerick Montague          <h2 class="h3">BMC information</h2>
470a1c6b0aSMichael Davis        </div>
480a1c6b0aSMichael Davis        <div class="column large-8">
490a1c6b0aSMichael Davis          <ul class="overview__metadata-wrapper">
500a1c6b0aSMichael Davis            <li class="overview__metadata-block">
511ffa209eSDerick Montague              <dl>
521ffa209eSDerick Montague                <dt class="content-label">Hostname</dt>
531ffa209eSDerick Montague                <dd class="courier-bold overview__hostname">{{dataService.hostname}}</dd>
541ffa209eSDerick Montague              </dl>
55ec61b2a8SMichael Davis            </li>
56ec61b2a8SMichael Davis            <li class="overview__metadata-block">
571ffa209eSDerick Montague              <dl>
581ffa209eSDerick Montague                <dt class="content-label">IP addresses</dt>
591ffa209eSDerick Montague                <dd class="courier-bold" ng-repeat="ip_address in bmc_ip_addresses">{{ip_address}}</dd>
601ffa209eSDerick Montague              </dl>
610a1c6b0aSMichael Davis            </li>
620a1c6b0aSMichael Davis            <li class="overview__metadata-block">
631ffa209eSDerick Montague              <dl>
641ffa209eSDerick Montague                <dt class="content-label">Firmware Version</dt>
651ffa209eSDerick Montague                <dd class="courier-bold">{{bmc_firmware}}</dd>
661ffa209eSDerick Montague              </dl>
670a1c6b0aSMichael Davis            </li>
680a1c6b0aSMichael Davis            <li class="overview__metadata-block">
691ffa209eSDerick Montague              <dl>
701ffa209eSDerick Montague                <dt class="content-label">Mac address</dt>
711ffa209eSDerick Montague                <dd class="courier-bold">{{dataService.mac_address}}</dd>
721ffa209eSDerick Montague              </dl>
730a1c6b0aSMichael Davis            </li>
740a1c6b0aSMichael Davis          </ul>
750a1c6b0aSMichael Davis        </div>
760a1c6b0aSMichael Davis      </div>
770a1c6b0aSMichael Davis      <!-- Power metadata -->
780a1c6b0aSMichael Davis      <div class="row overview__server-metadata">
790a1c6b0aSMichael Davis        <div class="column large-4">
801ffa209eSDerick Montague          <h2 class="h3">Power information</h2>
810a1c6b0aSMichael Davis        </div>
820a1c6b0aSMichael Davis        <div class="column large-8">
830a1c6b0aSMichael Davis          <ul class="overview__metadata-wrapper">
840a1c6b0aSMichael Davis            <li class="overview__metadata-block">
851ffa209eSDerick Montague              <dl>
861ffa209eSDerick Montague                <dt class="content-label">Power Consumption</dt>
871ffa209eSDerick Montague                <dd class="courier-bold">{{power_consumption}}</dd>
881ffa209eSDerick Montague              </dl>
890a1c6b0aSMichael Davis            </li>
900a1c6b0aSMichael Davis            <li class="overview__metadata-block">
911ffa209eSDerick Montague              <dl>
921ffa209eSDerick Montague                <dt class="content-label">Power Cap</dt>
931ffa209eSDerick Montague                <dd class="courier-bold">{{power_cap}}</dd>
941ffa209eSDerick Montague              </dl>
950a1c6b0aSMichael Davis            </li>
960a1c6b0aSMichael Davis          </ul>
970a1c6b0aSMichael Davis        </div>
980a1c6b0aSMichael Davis      </div>
990a1c6b0aSMichael Davis      <!-- Power metadata -->
1000a1c6b0aSMichael Davis    </div>
101ec61b2a8SMichael Davis    <div class="column large-4 no-padding">
1020a1c6b0aSMichael Davis      <div class="quick-links">
103*565efda5Sdixsie        <a href="#/server-health/event-log/high" class="quick-links__item quick-links__events event-log__events"
104*565efda5Sdixsie          ng-show="logs.length">
105*565efda5Sdixsie          <!-- link to event log filtered to the high priority events -->
106*565efda5Sdixsie          <p class="inline quick-links__event-copy">View {{logs.length}} high priority events</p>
1070a1c6b0aSMichael Davis        </a>
1081ffa209eSDerick Montague        <dl class="quick-links__item no-icon">
1091ffa209eSDerick Montague          <dt class="inline quick-links__label">BMC time</dt>
1101ffa209eSDerick Montague          <dd class="inline courier-bold float-right bmc-time">{{ bmc_time | localeDate }}</dd>
1111ffa209eSDerick Montague        </dl>
1120a1c6b0aSMichael Davis        <div class="quick-links__item no-icon">
113*565efda5Sdixsie          <p class="inline quick-links__label">Turn <span ng-if="dataService.LED_state == 'off'">on</span><span
114*565efda5Sdixsie              ng-if="dataService.LED_state == 'on'">off</span> server LED</p>
1150a1c6b0aSMichael Davis          <div class="toggle inline float-right">
116*565efda5Sdixsie            <input id="toggle__switch-round" class="toggle-switch toggle-switch__round-flat" type="checkbox"
117*565efda5Sdixsie              tabindex="0" ng-click="toggleLED()" ng-checked="dataService.LED_state == 'on'"
1180a1c6b0aSMichael Davis              ng-disabled="dataService.server_unreachable">
119*565efda5Sdixsie            <label for="toggle__switch-round" tabindex="0">Server LED is <span
120*565efda5Sdixsie                class="led-switch__status">{{dataService.LED_state}}</span></label>
1210a1c6b0aSMichael Davis          </div>
1220a1c6b0aSMichael Davis        </div>
12354c22e4fSIftekharul Islam        <a href="#/server-control/remote-console" class="no-icon quick-links__item">
124959705cfSGunnar Mills          <p class="inline quick-links__label">Serial over LAN console</p>
1250a1c6b0aSMichael Davis          <span class="btn-pop-out inline float-right"></span>
1260a1c6b0aSMichael Davis        </a>
12754c22e4fSIftekharul Islam        <a href="#/configuration/network" class="quick-links__item">
1280a1c6b0aSMichael Davis          <p class="inline quick-links__label">Edit network settings</p>
1290a1c6b0aSMichael Davis        </a>
1301ffa209eSDerick Montague        </d>
1310a1c6b0aSMichael Davis      </div>
1320a1c6b0aSMichael Davis  </section>
133706b75b3SMichael Davis  <section class="row">
134706b75b3SMichael Davis    <div class="column large-12 overview__event-log event-log__events" ng-show="logs.length">
135706b75b3SMichael Davis      <div class="page-header">
1361ffa209eSDerick Montague        <h2 class="h3">High priority events ({{logs.length}})</h2>
1373471409aSIftekharul Islam        <a href="#/server-health/event-log/" class="inline float-right">View all event logs</a>
138706b75b3SMichael Davis      </div>
139706b75b3SMichael Davis
140706b75b3SMichael Davis      <!-- single event -->
14110ed3760SGunnar Mills      <a href="#/server-health/event-log/high" ng-repeat="event in logs|orderBy:'-Id'|limitTo : 5">
142706b75b3SMichael Davis        <div class="row column event-log__single-event">
143706b75b3SMichael Davis          <div class="row">
144*565efda5Sdixsie            <!-- click will go to specific event in event log page-->
145*565efda5Sdixsie            <div class="column small-9 large-10 event-log__event-info" ng-click="">
146706b75b3SMichael Davis              <p class="inline event__id">#{{event.Id}}</p>
147706b75b3SMichael Davis              <p class="inline event__priority high-priority">High</p>
148706b75b3SMichael Davis              <p class="inline event__severity high-priority">{{event.severity_code}}</p>
149dbf04811SAlexander Filippov              <p class="inline event__timestamp">{{ event.Timestamp | localeDate }}</p>
150706b75b3SMichael Davis              <div>
151845acdc5SMatt Spinler                <p class="inline event__description">{{getEventLogTitle(event)}}</p>
152706b75b3SMichael Davis              </div>
153706b75b3SMichael Davis            </div>
154706b75b3SMichael Davis            <div class="column small-1 large-1">
155706b75b3SMichael Davis              <button class="accord-trigger" aria-hidden="true"></button>
156706b75b3SMichael Davis            </div>
157706b75b3SMichael Davis          </div>
158706b75b3SMichael Davis        </div>
159706b75b3SMichael Davis      </a>
160706b75b3SMichael Davis    </div>
161706b75b3SMichael Davis
162706b75b3SMichael Davis    <div class="row column overview__event-log event-log__events" ng-show="!logs.length">
163706b75b3SMichael Davis      <div class="page-header">
1641ffa209eSDerick Montague        <h2 class="h3">High priority events (0)</h2>
165706b75b3SMichael Davis      </div>
166706b75b3SMichael Davis      <p>There are no high priority events to display at this time.</p>
167706b75b3SMichael Davis    </div>
168706b75b3SMichael Davis  </section>
16999d199f3SIftekharul Islam</div>
170db28a387SIftekharul Islam<!-- edit server name modal -->
171*565efda5Sdixsie<section class="modal" aria-hidden="true" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog"
172*565efda5Sdixsie  ng-class="{'active': edit_hostname}">
173db28a387SIftekharul Islam  <div class="modal__upload" role="document">
174*565efda5Sdixsie    <!-- accessibility only; used for screen readers -->
175*565efda5Sdixsie    <div class="screen-reader-offscreen modal-description">Edit hostname</div>
176db28a387SIftekharul Islam    <div class="page-header ">
177*565efda5Sdixsie      <h2 class="modal-title"><span class="icon icon__info"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
178*565efda5Sdixsie            <path d="M18 14h-6v2h1v6h-2v2h8v-2h-2z" />
179*565efda5Sdixsie            <circle cx="16" cy="10" r="2" />
180*565efda5Sdixsie            <path
181*565efda5Sdixsie              d="M16 2C8.269 2 2 8.269 2 16s6.269 14 14 14 14-6.269 14-14S23.731 2 16 2zm0 26C9.383 28 4 22.617 4 16S9.383 4 16 4s12 5.383 12 12-5.383 12-12 12z" />
182*565efda5Sdixsie          </svg></span>
183e56bb445SGunnar Mills        Edit hostname
1841ffa209eSDerick Montague      </h2>
185db28a387SIftekharul Islam    </div>
186db28a387SIftekharul Islam    <div class="modal__content">
187*565efda5Sdixsie
188*565efda5Sdixsie      <form name="edit_hostname_text">
189*565efda5Sdixsie        <label for="editServerName">Hostname</label>
190*565efda5Sdixsie        <p>Hostname must be less than 64 characters and must not contain spaces.</p>
191*565efda5Sdixsie        <input id="editServerName" class="modal__edit-server-name" type="text" ng-model="newHostname" ng-trim="false"
192*565efda5Sdixsie          name="hostname" ng-pattern="/^\S{0,64}$/" required autofocus />
193*565efda5Sdixsie        <span class="modal__error" ng-show="edit_hostname_text.hostname.$error.pattern">Invalid format.
194*565efda5Sdixsie          Remove spaces.</span>
195*565efda5Sdixsie        <span class="modal__char-count"
196*565efda5Sdixsie          ng-hide="edit_hostname_text.hostname.$error.pattern">{{0 + newHostname.length}}/64</span>
197db28a387SIftekharul Islam      </form>
198db28a387SIftekharul Islam    </div>
199db28a387SIftekharul Islam    <div class="modal__button-wrapper">
200*565efda5Sdixsie      <button class="inline btn-secondary"
201*565efda5Sdixsie        ng-click="edit_hostname= false; newHostname = dataService.hostname">Cancel</button>
202*565efda5Sdixsie      <button class="inline btn-primary" ng-click="saveHostname(newHostname);" ng-disabled="edit_hostname_text.$invalid"
203*565efda5Sdixsie        ng-class="{'disabled' : edit_hostname_text.$invalid}">Save</button>
204db28a387SIftekharul Islam    </div>
205db28a387SIftekharul Islam  </div>
206db28a387SIftekharul Islam</section>
207e56bb445SGunnar Mills<div class="modal-overlay" tabindex="-1" ng-class="{'active': edit_hostname}"></div>