~andreserl/maas/lp1665143

« back to all changes in this revision

Viewing changes to src/maasserver/static/partials/dashboard.html

Merged specify_scripts_commissioning into test_api.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<div data-ng-hide="loaded">
2
 
    <header class="page-header" sticky media-query="min-width: 769px">
3
 
        <div class="wrapper--inner">
4
 
            <h1 class="page-header__title">Device discovery</h1>
5
 
            <p class="page-header__status">
6
 
                <span class="u-text--loading"><i class="icon u-margin--right-tiny icon--loading u-animation--spin"></i>Searching network for devices&hellip;</span>
7
 
            </p>
 
1
<header class="page-header" sticky media-query="min-width: 769px">
 
2
    <div class="wrapper--inner">
 
3
        <h1 class="page-header__title">Device discovery</h1>
 
4
        <p class="page-header__status">{$ discoveredDevices.length $} items discovered <span class="u-text--loading" data-ng-if="!loaded"><i class="icon icon--loading u-animation--spin"></i> Loading...</span></p>
 
5
        <div class="page-header__controls" data-ng-if="networkDiscovery">
 
6
            <maas-obj-form obj="networkDiscovery" manager="configManager" inline="true">
 
7
                <maas-obj-field type="onoffswitch" key="value" label="Discovery enabled"
 
8
  on-value="enabled" off-value="disabled" subtle="true" label-left="true"
 
9
  label-info="When enabled, MAAS will use passive techniques, such as listening to&#xa; ARP requests and DNS advertisements, to observe networks attached&#xa; to rack controllers. Active subnet mapping can also be enabled in the&#xa; Device Discovery section of the Settings page."></maas-obj-field>
 
10
            </maas-obj-form>
8
11
        </div>
9
 
    </header>
10
 
    <section class="row">
11
 
      <div class="wrapper--inner">
12
 
          <div class="twelve-col">
13
 
              <table>
14
 
                  <thead>
15
 
                      <tr>
16
 
                          <th class="table-col--37">Name</th>
17
 
                          <th class="table-col--15">Mac address</th>
18
 
                          <th class="table-col--13">IP</th>
19
 
                          <th class="table-col--15">Rack</th>
20
 
                          <th class="table-col--20">Last seen</th>
21
 
                      </tr>
22
 
                  </thead>
23
 
                  <tbody>
24
 
                      <tr>
25
 
                          <td colspan="5">
26
 
                              No new discoveries
27
 
                          </td>
28
 
                      </tr>
29
 
                  </tbody>
30
 
              </table>
31
 
          </div>
32
12
      </div>
33
 
    </section>
 
13
</header>
 
14
<div class="wrapper--inner">
 
15
    <maas-notifications></maas-notifications>
34
16
</div>
35
 
 
36
 
<maas-notifications />
37
 
 
38
 
<div class="ng-hide" data-ng-show="loaded">
39
 
    <header class="page-header" sticky media-query="min-width: 769px">
40
 
        <div class="wrapper--inner">
41
 
            <h1 class="page-header__title">Device discovery</h1>
42
 
            <p class="page-header__status" >{$ discoveredDevices.length $} items discovered</p>
43
 
            <div class="page-header__controls" data-ng-if="networkDiscovery">
44
 
                <maas-obj-form obj="networkDiscovery" manager="configManager" inline="true">
45
 
                    <maas-obj-field type="onoffswitch" key="value" label="Discovery enabled"
46
 
      on-value="enabled" off-value="disabled" subtle="true" label-left="true"
47
 
      label-info="When enabled, MAAS will use passive techniques, such as listening to&#xa; ARP requests and DNS advertisements, to observe networks attached&#xa; to rack controllers. Active subnet mapping can also be enabled in the&#xa; Device Discovery section of the Settings page."></maas-obj-field>
48
 
                </maas-obj-form>
49
 
            </div>
50
 
          </div>
51
 
    </header>
52
 
    <section class="row">
53
 
        <div class="wrapper--inner">
54
 
            <div class="p-notification--warning" data-ng-if="networkDiscovery.value === 'disabled'">
55
 
                <p class="p-notification__response">
56
 
                  <span class="p-notification__status">Warning:</span>List of devices will not update as discovery is turned off</p>
57
 
            </div>
58
 
            <div class="twelve-col">
59
 
                <div class="table" >
60
 
                    <header class="table__head u-display--desktop" sticky sticky-class="table__head--sticky" offset="116" media-query="min-width: 768px">
61
 
                        <div class="table__row">
62
 
                            <div class="table__header table-col--37">Name</div>
63
 
                            <div class="table__header table-col--15">Mac address</div>
64
 
                            <div class="table__header table-col--13">IP</div>
65
 
                            <div class="table__header table-col--15">Rack</div>
66
 
                            <div class="table__header table-col--20">Last seen</div>
67
 
                        </div>
68
 
                    </header>
69
 
                    <div class="table__body">
70
 
                        <div class="table__row table--success" data-ng-if="convertTo.saved">
71
 
                            <div class="table__data table-col--97">
72
 
                                <i class="icon icon--success"></i> {$ convertTo.hostname $} has been add to {$ site $}.
73
 
                                <a href="#/node/{$ convertTo.parent $}" data-ng-if="convertTo.parent">Go to the machine devices page.</a>
74
 
                                <a href="#/nodes/?tab=devices" data-ng-if="!convertTo.parent">Go to the device listing.</a>
75
 
                            </div>
 
17
<section class="row">
 
18
    <div class="wrapper--inner">
 
19
        <div class="p-notification--warning" data-ng-if="networkDiscovery.value === 'disabled'">
 
20
            <p class="p-notification__response">
 
21
              <span class="p-notification__status">Warning:</span>List of devices will not update as discovery is turned off</p>
 
22
        </div>
 
23
        <div class="twelve-col">
 
24
            <div class="table" >
 
25
                <header class="table__head u-display--desktop" sticky sticky-class="table__head--sticky" offset="116" media-query="min-width: 768px">
 
26
                    <div class="table__row">
 
27
                        <div class="table__header table-col--37">Name</div>
 
28
                        <div class="table__header table-col--15">Mac address</div>
 
29
                        <div class="table__header table-col--13">IP</div>
 
30
                        <div class="table__header table-col--15">Rack</div>
 
31
                        <div class="table__header table-col--20">Last seen</div>
 
32
                    </div>
 
33
                </header>
 
34
                <div class="table__body">
 
35
                    <div class="table__row table--success" data-ng-if="convertTo.saved">
 
36
                        <div class="table__data table-col--97">
 
37
                            <i class="icon icon--success"></i> {$ convertTo.hostname $} has been add to {$ site $}.
 
38
                            <a href="#/node/{$ convertTo.parent $}" data-ng-if="convertTo.parent">Go to the machine devices page.</a>
 
39
                            <a href="#/nodes/?tab=devices" data-ng-if="!convertTo.parent">Go to the device listing.</a>
 
40
                        </div>
 
41
                        <div class="table__data table-col--3">
 
42
                            <i class="icon icon--cross tooltip" aria-label="Clear"
 
43
                                data-ng-click="convertTo.saved = false">Clear</i>
 
44
                        </div>
 
45
                    </div>
 
46
                    <div class="table__row" data-ng-if="!discoveredDevices.length">
 
47
                        <div class="table__data table-col--100">
 
48
                            No new discoveries
 
49
                        </div>
 
50
                    </div>
 
51
                    <div class="table__row"
 
52
                        data-ng-repeat="discovery in discoveredDevices | orderBy:'-last_seen' track by discovery.first_seen"
 
53
                        data-ng-class="{'is-active' : discovery.first_seen === selectedDevice}">
 
54
                        <div data-ng-if="discovery.first_seen !== selectedDevice"
 
55
                            data-ng-dblclick="toggleSelected(discovery.first_seen)">
 
56
                            <div class="table__data table-col--37" aria-label="Name">
 
57
                                {$ getDiscoveryName(discovery) $}
 
58
                                <i data-ng-show="discovery.is_external_dhcp === true" class="icon icon--info tooltip u-margin--left-tiny ng-hide" aria-label="This device is providing DHCP."></i>
 
59
                            </div>
 
60
                            <div class="table__data table-col--15" aria-label="MAC">
 
61
                                {$ discovery.mac_address $}<br/>
 
62
                                <small class="u-text--subtle u-display--desktop">{$ discovery.mac_organization || 'Unknown' $}</small>
 
63
                            </div>
 
64
                            <div class="table__data table-col--13 u-text--truncate" aria-label="IP Address">
 
65
                                {$ discovery.ip $}
 
66
                            </div>
 
67
                            <div class="table__data table-col--15" aria-label="Rack">
 
68
                                {$ discovery.observer_hostname $}
 
69
                            </div>
 
70
                            <div class="table__data table-col--17" aria-label="Last seen">
 
71
                                <time>{$ discovery.last_seen $}</time>
 
72
                            </div>
 
73
                            <div class="table__data table--mobile-controls  table-col--3">
 
74
                                <div class="table__controls u-align--right">
 
75
                                    <i class="icon icon--open tooltip u-display--desktop" aria-label="Open"
 
76
                                        data-ng-click="toggleSelected(discovery.first_seen)">Open</i>
 
77
                                    <a class="button--secondary u-display--mobile"
 
78
                                        data-ng-click="toggleSelected(discovery.first_seen)">Add device</a>
 
79
                                </div>
 
80
                            </div>
 
81
                        </div>
 
82
                        <maas-obj-form data-ng-if="discovery.first_seen === selectedDevice"
 
83
                            obj="convertTo" manager="proxyManager" pre-process="preProcess"
 
84
                            after-save="afterSave" table-form="true" save-on-blur="false">
 
85
                            <div class="table__data table-col--20">
 
86
                                <maas-obj-field class="u-margin--bottom-none" type="text" key="hostname"
 
87
                                    disable-label="true" placeholder="Hostname (optional)"></maas-obj-field>
 
88
                            </div>
 
89
                            <div class="table__data table-col--77"></div>
76
90
                            <div class="table__data table-col--3">
77
 
                                <i class="icon icon--cross tooltip" aria-label="Clear"
78
 
                                    data-ng-click="convertTo.saved = false">Clear</i>
79
 
                            </div>
80
 
                        </div>
81
 
                        <div class="table__row" data-ng-if="!discoveredDevices.length">
82
 
                            <div class="table__data table-col--100">
83
 
                                No new discoveries
84
 
                            </div>
85
 
                        </div>
86
 
                        <div class="table__row"
87
 
                            data-ng-repeat="discovery in discoveredDevices | orderBy:'-last_seen' track by discovery.first_seen"
88
 
                            data-ng-class="{'is-active' : discovery.first_seen === selectedDevice}">
89
 
                            <div data-ng-if="discovery.first_seen !== selectedDevice"
90
 
                                data-ng-dblclick="toggleSelected(discovery.first_seen)">
91
 
                                <div class="table__data table-col--37" aria-label="Name">
92
 
                                    {$ getDiscoveryName(discovery) $}
93
 
                                    <i data-ng-show="discovery.is_external_dhcp === true" class="icon icon--info tooltip u-margin--left-tiny ng-hide" aria-label="This device is providing DHCP."></i>
94
 
                                </div>
95
 
                                <div class="table__data table-col--15" aria-label="MAC">
96
 
                                    {$ discovery.mac_address $}<br/>
97
 
                                    <small class="u-text--subtle u-display--desktop">{$ discovery.mac_organization || 'Unknown' $}</small>
98
 
                                </div>
99
 
                                <div class="table__data table-col--13 u-text--truncate" aria-label="IP Address">
100
 
                                    {$ discovery.ip $}
101
 
                                </div>
102
 
                                <div class="table__data table-col--15" aria-label="Rack">
103
 
                                    {$ discovery.observer_hostname $}
104
 
                                </div>
105
 
                                <div class="table__data table-col--17" aria-label="Last seen">
106
 
                                    <time>{$ discovery.last_seen $}</time>
107
 
                                </div>
108
 
                                <div class="table__data table--mobile-controls  table-col--3">
109
 
                                    <div class="table__controls u-align--right">
110
 
                                        <i class="icon icon--open tooltip u-display--desktop" aria-label="Open"
111
 
                                            data-ng-click="toggleSelected(discovery.first_seen)">Open</i>
112
 
                                        <a class="button--secondary u-display--mobile"
113
 
                                            data-ng-click="toggleSelected(discovery.first_seen)">Add device</a>
114
 
                                    </div>
115
 
                                </div>
116
 
                            </div>
117
 
                            <maas-obj-form data-ng-if="discovery.first_seen === selectedDevice"
118
 
                                obj="convertTo" manager="proxyManager" pre-process="preProcess"
119
 
                                after-save="afterSave" table-form="true" save-on-blur="false">
120
 
                                <div class="table__data table-col--20">
121
 
                                    <maas-obj-field class="u-margin--bottom-none" type="text" key="hostname"
122
 
                                        disable-label="true" placeholder="Hostname (optional)"></maas-obj-field>
123
 
                                </div>
124
 
                                <div class="table__data table-col--77"></div>
125
 
                                <div class="table__data table-col--3">
126
 
                                    <i class="icon icon--close tooltip u-display--desktop" aria-label="Close"
127
 
                                        data-ng-click="toggleSelected(discovery.first_seen)">Close</i>
128
 
                                </div>
129
 
                                <div class="table__dropdown">
130
 
                                    <div class="table__dropdown-title">
131
 
                                        <h2 data-ng-click="toggleSelected(selectedDevice)" class="u-float--left">Adding {$ getDiscoveryName(discovery) $}</h2>
132
 
                                        <i data-ng-click="toggleSelected(selectedDevice)" class="icon icon--remove u-float--right u-margin--top-small u-margin--right-small"></i>
133
 
                                    </div>
134
 
                                    <div class="table__row is-active">
135
 
                                        <div class="table__data table-col--100">
136
 
                                            <div class="six-col">
137
 
                                                <dl>
138
 
                                                    <dt class="two-col">Mac</dt>
139
 
                                                        <dd class="four-col last-col">{$ discovery.mac_address $}</dd>
140
 
                                                    <dt class="two-col">IP</dt>
141
 
                                                        <dd class="four-col last-col">{$ discovery.ip $}</dd>
142
 
                                                    <dt class="two-col">Rack</dt>
143
 
                                                        <dd class="four-col last-col">{$ discovery.observer_hostname $}</dd>
144
 
                                                    <dt class="two-col">Last seen</dt>
145
 
                                                        <dd class="four-col last-col"><time>{$ discovery.last_seen $}</time></dd>
146
 
                                                </dl>
147
 
                                            </div>
148
 
                                            <div class="six-col last-col">
149
 
                                                <dl>
150
 
                                                    <dt class="two-col">Fabric</dt>
151
 
                                                        <dd class="four-col last-col">{$ discovery.fabric_name $}</dd>
152
 
                                                    <dt class="two-col">VLAN</dt>
153
 
                                                        <dd class="four-col last-col">{$ getVLANName(discovery.vlan) $}</dd>
154
 
                                                    <dt class="two-col">Subnet</dt>
155
 
                                                        <dd class="four-col last-col">{$ getSubnetName(discovery.subnet) $}</dd>
156
 
                                                </dl>
157
 
                                            </div>
158
 
                                        </div>
159
 
                                    </div>
160
 
                                    <div class="table__row is-active u-padding--top-small">
161
 
                                        <div class="table__data table-col--100">
162
 
                                            <fieldset class="form__fieldset six-col">
163
 
                                                <div class="form__group u-display--mobile">
164
 
                                                  <label for="Name" class="form__group-label two-col">Name</label>
165
 
                                                  <div class="form__group-input three-col">
166
 
                                                    <maas-obj-field type="text" key="hostname"
167
 
                                                        disable-label="true" placeholder="Hostname (optional)"></maas-obj-field>
168
 
                                                  </div>
169
 
                                                </div>
170
 
                                                <div class="form__group">
171
 
                                                    <label class="form__group-label two-col u-margin--bottom-small">Type</label>
172
 
                                                    <div class="form__group-input three-col">
173
 
                                                        <select name="type" ng-model="convertTo.type">
174
 
                                                            <option value="" disabled>Choose type</option>
175
 
                                                            <option value="device">Device</option>
176
 
                                                            <option value="interface">Interface</option>
177
 
                                                        </select>
178
 
                                                    </div>
179
 
                                                </div>
180
 
                                                <maas-obj-field type="options" key="domain" label="Domain" placeholder="Choose domain"
181
 
                                                    label-width="two" input-width="three" subtle="false"
182
 
                                                    options="domain as domain.name for domain in domains"
183
 
                                                    data-ng-if="convertTo.type === 'device'"></maas-obj-field>
184
 
                                                <maas-obj-field type="options" subtle="false" key="system_id" label="Device name" placeholder="Select device name"
185
 
                                                    options="device.system_id as device.fqdn for device in devices | orderBy:'fqdn'"
186
 
                                                    label-width="two" label-info="Create as an interface on the selected device." input-width="three"
187
 
                                                    data-ng-if="convertTo.type === 'interface'"></maas-obj-field>
188
 
                                            </fieldset>
189
 
                                            <fieldset class="form__fieldset six-col last-col">
190
 
                                                <maas-obj-field type="options" subtle="false" key="parent" label="Parent" placeholder="Select parent (optional)" placeholder-enabled="true"
191
 
                                                    options="machine.system_id as machine.fqdn for machine in machines | filter:{status_code: 6} | orderBy:'fqdn'"
192
 
                                                    label-width="two" label-info="Assign this device as a child of the parent machine." input-width="three"
193
 
                                                    data-ng-if="convertTo.type === 'device'"></maas-obj-field>
194
 
                                                <maas-obj-field type="options" subtle="false" key="ip_assignment" label="IP assignment" placeholder="Select IP assignment"
195
 
                                                    options="option[0] as option[1] for option in convertTo.deviceIPOptions" label-width="two" input-width="three"></maas-obj-field>
196
 
                                            </fieldset>
197
 
                                        </div>
198
 
                                    </div>
199
 
                                    <div class="table__row is-active">
200
 
                                        <div class="table__data u-float--left">
201
 
                                            <maas-obj-errors></maas-obj-errors>
202
 
                                        </div>
203
 
                                        <div class="table__data u-float--right">
204
 
                                            <a class="button--base button--inline u-display--desktop" data-ng-click="toggleSelected(selectedDevice)">Cancel</a>
205
 
                                            <button class="button--secondary button--inline"
206
 
                                                data-ng-click="convertTo.goTo = true"
207
 
                                                data-ng-if="!convertTo.$maasForm.getValue('parent')"
208
 
                                                maas-obj-save>Save and go to device listing</button>
209
 
                                            <button class="button--secondary button--inline"
210
 
                                                data-ng-click="convertTo.goTo = true"
211
 
                                                data-ng-if="convertTo.$maasForm.getValue('parent')"
212
 
                                                maas-obj-save>Save and go to machine details</button>
213
 
                                            <button class="button--positive button--inline" maas-obj-save>Save</button>
214
 
                                        </div>
215
 
                                    </div>
216
 
                                </div>
217
 
                            </maas-obj-form>
218
 
                        </div>
 
91
                                <i class="icon icon--close tooltip u-display--desktop" aria-label="Close"
 
92
                                    data-ng-click="toggleSelected(discovery.first_seen)">Close</i>
 
93
                            </div>
 
94
                            <div class="table__dropdown">
 
95
                                <div class="table__dropdown-title">
 
96
                                    <h2 data-ng-click="toggleSelected(selectedDevice)" class="u-float--left">Adding {$ getDiscoveryName(discovery) $}</h2>
 
97
                                    <i data-ng-click="toggleSelected(selectedDevice)" class="icon icon--remove u-float--right u-margin--top-small u-margin--right-small"></i>
 
98
                                </div>
 
99
                                <div class="table__row is-active">
 
100
                                    <div class="table__data table-col--100">
 
101
                                        <div class="six-col">
 
102
                                            <dl>
 
103
                                                <dt class="two-col">Mac</dt>
 
104
                                                    <dd class="four-col last-col">{$ discovery.mac_address $}</dd>
 
105
                                                <dt class="two-col">IP</dt>
 
106
                                                    <dd class="four-col last-col">{$ discovery.ip $}</dd>
 
107
                                                <dt class="two-col">Rack</dt>
 
108
                                                    <dd class="four-col last-col">{$ discovery.observer_hostname $}</dd>
 
109
                                                <dt class="two-col">Last seen</dt>
 
110
                                                    <dd class="four-col last-col"><time>{$ discovery.last_seen $}</time></dd>
 
111
                                            </dl>
 
112
                                        </div>
 
113
                                        <div class="six-col last-col">
 
114
                                            <dl>
 
115
                                                <dt class="two-col">Fabric</dt>
 
116
                                                    <dd class="four-col last-col">{$ discovery.fabric_name $}</dd>
 
117
                                                <dt class="two-col">VLAN</dt>
 
118
                                                    <dd class="four-col last-col">{$ getVLANName(discovery.vlan) $}</dd>
 
119
                                                <dt class="two-col">Subnet</dt>
 
120
                                                    <dd class="four-col last-col">{$ getSubnetName(discovery.subnet) $}</dd>
 
121
                                            </dl>
 
122
                                        </div>
 
123
                                    </div>
 
124
                                </div>
 
125
                                <div class="table__row is-active u-padding--top-small">
 
126
                                    <div class="table__data table-col--100">
 
127
                                        <fieldset class="form__fieldset six-col">
 
128
                                            <div class="form__group u-display--mobile">
 
129
                                              <label for="Name" class="form__group-label two-col">Name</label>
 
130
                                              <div class="form__group-input three-col">
 
131
                                                <maas-obj-field type="text" key="hostname"
 
132
                                                    disable-label="true" placeholder="Hostname (optional)"></maas-obj-field>
 
133
                                              </div>
 
134
                                            </div>
 
135
                                            <div class="form__group">
 
136
                                                <label class="form__group-label two-col u-margin--bottom-small">Type</label>
 
137
                                                <div class="form__group-input three-col">
 
138
                                                    <select name="type" ng-model="convertTo.type">
 
139
                                                        <option value="" disabled>Choose type</option>
 
140
                                                        <option value="device">Device</option>
 
141
                                                        <option value="interface">Interface</option>
 
142
                                                    </select>
 
143
                                                </div>
 
144
                                            </div>
 
145
                                            <maas-obj-field type="options" key="domain" label="Domain" placeholder="Choose domain"
 
146
                                                label-width="two" input-width="three" subtle="false"
 
147
                                                options="domain as domain.name for domain in domains"
 
148
                                                data-ng-if="convertTo.type === 'device'"></maas-obj-field>
 
149
                                            <maas-obj-field type="options" subtle="false" key="system_id" label="Device name" placeholder="Select device name"
 
150
                                                options="device.system_id as device.fqdn for device in devices | orderBy:'fqdn'"
 
151
                                                label-width="two" label-info="Create as an interface on the selected device." input-width="three"
 
152
                                                data-ng-if="convertTo.type === 'interface'"></maas-obj-field>
 
153
                                        </fieldset>
 
154
                                        <fieldset class="form__fieldset six-col last-col">
 
155
                                            <maas-obj-field type="options" subtle="false" key="parent" label="Parent" placeholder="Select parent (optional)" placeholder-enabled="true"
 
156
                                                options="machine.system_id as machine.fqdn for machine in machines | filter:{status_code: 6} | orderBy:'fqdn'"
 
157
                                                label-width="two" label-info="Assign this device as a child of the parent machine." input-width="three"
 
158
                                                data-ng-if="convertTo.type === 'device'"></maas-obj-field>
 
159
                                            <maas-obj-field type="options" subtle="false" key="ip_assignment" label="IP assignment" placeholder="Select IP assignment"
 
160
                                                options="option[0] as option[1] for option in convertTo.deviceIPOptions" label-width="two" input-width="three"></maas-obj-field>
 
161
                                        </fieldset>
 
162
                                    </div>
 
163
                                </div>
 
164
                                <div class="table__row is-active">
 
165
                                    <div class="table__data u-float--left">
 
166
                                        <maas-obj-errors></maas-obj-errors>
 
167
                                    </div>
 
168
                                    <div class="table__data u-float--right">
 
169
                                        <a class="button--base button--inline u-display--desktop" data-ng-click="toggleSelected(selectedDevice)">Cancel</a>
 
170
                                        <button class="button--secondary button--inline"
 
171
                                            data-ng-click="convertTo.goTo = true"
 
172
                                            data-ng-if="!convertTo.$maasForm.getValue('parent')"
 
173
                                            maas-obj-save>Save and go to device listing</button>
 
174
                                        <button class="button--secondary button--inline"
 
175
                                            data-ng-click="convertTo.goTo = true"
 
176
                                            data-ng-if="convertTo.$maasForm.getValue('parent')"
 
177
                                            maas-obj-save>Save and go to machine details</button>
 
178
                                        <button class="button--positive button--inline" maas-obj-save>Save</button>
 
179
                                    </div>
 
180
                                </div>
 
181
                            </div>
 
182
                        </maas-obj-form>
219
183
                    </div>
220
184
                </div>
221
185
            </div>
222
186
        </div>
223
 
    </section>
224
 
</div>
 
187
    </div>
 
188
</section>