xref: /openbmc/phosphor-webui/app/configuration/components/card.js (revision 1ab0f7c1d59e3ccae14d92ba865ec52c53772ca2)
1*1ab0f7c1SYoshie Muranakawindow.angular && (function(angular) {
2*1ab0f7c1SYoshie Muranaka  'use strict';
3*1ab0f7c1SYoshie Muranaka
4*1ab0f7c1SYoshie Muranaka  /**
5*1ab0f7c1SYoshie Muranaka   *
6*1ab0f7c1SYoshie Muranaka   * firmwareCard Component
7*1ab0f7c1SYoshie Muranaka   *
8*1ab0f7c1SYoshie Muranaka   */
9*1ab0f7c1SYoshie Muranaka
10*1ab0f7c1SYoshie Muranaka  /**
11*1ab0f7c1SYoshie Muranaka   * Component template
12*1ab0f7c1SYoshie Muranaka   */
13*1ab0f7c1SYoshie Muranaka  const template = `
14*1ab0f7c1SYoshie Muranaka    <div class="card-component">
15*1ab0f7c1SYoshie Muranaka      <div class="card__header"
16*1ab0f7c1SYoshie Muranaka           ng-class="{
17*1ab0f7c1SYoshie Muranaka            'card__header--success' : $ctrl.status === 'success',
18*1ab0f7c1SYoshie Muranaka            'card__header--error'   : $ctrl.status === 'error' }">
19*1ab0f7c1SYoshie Muranaka        <p class="card__header__label inline">{{$ctrl.headerLabel}}</p>
20*1ab0f7c1SYoshie Muranaka        <p class="card__header__value inline">{{$ctrl.headerValue}}</p>
21*1ab0f7c1SYoshie Muranaka      </div>
22*1ab0f7c1SYoshie Muranaka      <div class="card__body"
23*1ab0f7c1SYoshie Muranaka           ng-if="$ctrl.body">
24*1ab0f7c1SYoshie Muranaka        <div class="row">
25*1ab0f7c1SYoshie Muranaka          <div class="column small-6">
26*1ab0f7c1SYoshie Muranaka            <label>BMC Status</label>
27*1ab0f7c1SYoshie Muranaka            {{$ctrl.bmcStatus || 'n/a'}}
28*1ab0f7c1SYoshie Muranaka          </div>
29*1ab0f7c1SYoshie Muranaka          <div class="column small-6">
30*1ab0f7c1SYoshie Muranaka            <label>Host status</label>
31*1ab0f7c1SYoshie Muranaka            {{$ctrl.hostStatus || 'n/a'}}
32*1ab0f7c1SYoshie Muranaka          </div>
33*1ab0f7c1SYoshie Muranaka        </div>
34*1ab0f7c1SYoshie Muranaka      </div>
35*1ab0f7c1SYoshie Muranaka    </div>`
36*1ab0f7c1SYoshie Muranaka
37*1ab0f7c1SYoshie Muranaka  /**
38*1ab0f7c1SYoshie Muranaka   * Register firmwareCard component
39*1ab0f7c1SYoshie Muranaka   */
40*1ab0f7c1SYoshie Muranaka  angular.module('app.configuration').component('firmwareCard', {
41*1ab0f7c1SYoshie Muranaka    template,
42*1ab0f7c1SYoshie Muranaka    bindings: {
43*1ab0f7c1SYoshie Muranaka      headerLabel: '@',
44*1ab0f7c1SYoshie Muranaka      headerValue: '<',
45*1ab0f7c1SYoshie Muranaka      status: '<',  // optional, 'success' or 'error'
46*1ab0f7c1SYoshie Muranaka      body: '<',    // boolean true to render body content
47*1ab0f7c1SYoshie Muranaka      hostStatus: '<',
48*1ab0f7c1SYoshie Muranaka      bmcStatus: '<'
49*1ab0f7c1SYoshie Muranaka    }
50*1ab0f7c1SYoshie Muranaka  })
51*1ab0f7c1SYoshie Muranaka})(window.angular);