Merge ~ya-bo-ng/maas:form-improves-labels into maas:master

Proposed by Anthony Dillon
Status: Merged
Approved by: Anthony Dillon
Approved revision: 95c7d97bc20494eb3f12dd00f04653af9d7ea033
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~ya-bo-ng/maas:form-improves-labels
Merge into: maas:master
Diff against target: 879 lines (+187/-164)
13 files modified
src/maasserver/static/js/angular/directives/power_parameters.js (+39/-38)
src/maasserver/static/js/angular/directives/tests/test_power_parameters.js (+3/-3)
src/maasserver/static/js/angular/factories/tests/test_zones.js (+0/-1)
src/maasserver/static/partials/dashboard.html (+7/-7)
src/maasserver/static/partials/domain-details.html (+6/-6)
src/maasserver/static/partials/fabric-details.html (+9/-9)
src/maasserver/static/partials/node-details.html (+14/-5)
src/maasserver/static/partials/node-result.html (+6/-6)
src/maasserver/static/partials/subnet-details.html (+46/-42)
src/maasserver/static/partials/vlan-details.html (+30/-28)
src/maasserver/static/partials/zone-details.html (+8/-14)
src/maasserver/static/scss/_patterns_forms.scss (+14/-0)
src/maasserver/templates/maasserver/user_view.html (+5/-5)
Reviewer Review Type Date Requested Status
MAAS Lander Approve
Lilyana Videnova (community) Approve
Review via email: mp+363353@code.launchpad.net

Commit message

Muted uneditable form labels

Description of the change

To post a comment you must log in.
~ya-bo-ng/maas:form-improves-labels updated
d8467c4... by Anthony Dillon

Catch a few missing labels

Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b form-improves-labels lp:~ya-bo-ng/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/5104/console
COMMIT: fa36611341fb5b55558254925c8c29b48e7f0917

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b form-improves-labels lp:~ya-bo-ng/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/5105/console
COMMIT: fbae2bdc1ba63815aa7b87977120225af10b3bb6

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b form-improves-labels lp:~ya-bo-ng/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/5120/console
COMMIT: 405503ae30037080d3cb8575d5ff4914823a3028

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b form-improves-labels lp:~ya-bo-ng/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 18ac912d64ebb64a6837892c30b69c14b27d3324

review: Approve
Revision history for this message
Lilyana Videnova (lilyanavidenova) wrote :

lgtm!

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b form-improves-labels lp:~ya-bo-ng/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/5129/console
COMMIT: dd6bd32b4154323accc20385e12e6049dd48d1ee

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b form-improves-labels lp:~ya-bo-ng/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/5137/console
COMMIT: d8467c4b401cfa92ad1d2f90b935cf5c366e9505

review: Needs Fixing
~ya-bo-ng/maas:form-improves-labels updated
95c7d97... by Anthony Dillon

Test CI again

Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b form-improves-labels lp:~ya-bo-ng/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 95c7d97bc20494eb3f12dd00f04653af9d7ea033

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/maasserver/static/js/angular/directives/power_parameters.js b/src/maasserver/static/js/angular/directives/power_parameters.js
index 435b5ed..21ad17f 100644
--- a/src/maasserver/static/js/angular/directives/power_parameters.js
+++ b/src/maasserver/static/js/angular/directives/power_parameters.js
@@ -6,44 +6,45 @@
66
7angular.module('MAAS').run(['$templateCache', function ($templateCache) {7angular.module('MAAS').run(['$templateCache', function ($templateCache) {
8 // Inject the power-parameters.html into the template cache.8 // Inject the power-parameters.html into the template cache.
9 $templateCache.put('directive/templates/power-parameters.html', [9 $templateCache.put('directive/templates/power-parameters.html',
10 '<div class="p-form__group u-clearfix">',10 `<div class="p-form__group u-clearfix">
11 '<label for="power-type" ',11 <label for="power-type"
12 'class="p-form__label col-2 mobile-col-2 tablet-col-2">',12 class="p-form__label col-2 mobile-col-2 tablet-col-2"
13 'Power type',13 data-ng-class="{'is-disabled': !ngModel.editing }">
14 '</label>',14 Power type
15 '<div class="p-form__control col-3 mobile-col-2 tablet-col-3">',15 </label>
16 '<select name="power-type" id="power-type" ',16 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
17 'data-ng-disabled="ngDisabled || ngModel.in_pod" ',17 <select name="power-type" id="power-type"
18 'data-ng-class="{ invalid: !ngModel.type }" ',18 data-ng-disabled="ngDisabled || ngModel.in_pod"
19 'data-ng-model="ngModel.type" ',19 data-ng-class="{ invalid: !ngModel.type }"
20 'data-ng-options="',20 data-ng-model="ngModel.type"
21 'type as type.description ',21 data-ng-options="type as type.description
22 'for type in maasPowerParameters track by type.name">',22 for type in maasPowerParameters track by type.name">
23 '<option value="" disabled selected>',23 <option value="" disabled selected>
24 'Select your power type',24 Select your power type
25 '</option>',25 </option>
26 '</select>',26 </select>
27 '</div>',27 </div>
28 '</div>',28 </div>
29 '<div class="p-form__group u-clearfix" ',29 <div class="p-form__group u-clearfix"
30 'data-ng-repeat="field in ngModel.type.fields">',30 data-ng-repeat="field in ngModel.type.fields">
31 '<label for="{$ field.name $}" ',31 <label for="{$ field.name $}"
32 'class="p-form__label col-2 mobile-col-2 tablet-col-2" ',32 class="p-form__label col-2 mobile-col-2 tablet-col-2"
33 'data-ng-if="field.name !== ' + "'default_storage_pool' && ",33 data-ng-class="{'is-disabled': !ngModel.editing }"
34 "(field.scope !== 'bmc' || !ngModel.in_pod)" + '">',34 data-ng-if="field.name !== 'default_storage_pool' &&
35 '{$ field.label $}',35 (field.scope !== 'bmc' || !ngModel.in_pod)">
36 '</label>',36 {$ field.label $}
37 '<div class="p-form__control col-3 mobile-col-2 tablet-col-3">',37 </label>
38 '<maas-power-input field="field" ',38 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
39 'data-ng-disabled="ngDisabled || (field.scope === ',39 <maas-power-input field="field"
40 "'bmc' && ngModel.in_pod)" + '" ',40 data-ng-disabled="ngDisabled ||
41 'data-ng-if="field.name !== ' + "'default_storage_pool' ",41 (field.scope === 'bmc' && ngModel.in_pod)"
42 "&& (field.scope !== 'bmc' || !ngModel.in_pod)" + '" ',42 data-ng-if="field.name !== 'default_storage_pool'
43 'data-ng-model="ngModel.parameters[field.name]">',43 && (field.scope !== 'bmc' || !ngModel.in_pod)"
44 '</div>',44 data-ng-model="ngModel.parameters[field.name]">
45 '</div>'45 </div>
46 ].join(''));46 </div>`
47 );
47}]);48}]);
4849
49angular.module('MAAS').directive('maasPowerInput', ['$compile',50angular.module('MAAS').directive('maasPowerInput', ['$compile',
diff --git a/src/maasserver/static/js/angular/directives/tests/test_power_parameters.js b/src/maasserver/static/js/angular/directives/tests/test_power_parameters.js
index d760a12..fc1e39e 100644
--- a/src/maasserver/static/js/angular/directives/tests/test_power_parameters.js
+++ b/src/maasserver/static/js/angular/directives/tests/test_power_parameters.js
@@ -195,9 +195,9 @@ describe("maasPowerParameters", function() {
195 var directive = compileDirective("powerTypes", "value");195 var directive = compileDirective("powerTypes", "value");
196 var select = directive.find("select");196 var select = directive.find("select");
197 expect(select.attr("data-ng-model")).toBe("ngModel.type");197 expect(select.attr("data-ng-model")).toBe("ngModel.type");
198 expect(select.attr("data-ng-options")).toBe("type as " +198 expect(select.attr("data-ng-options")).toBe(
199 "type.description for type " +199 `type as type.description
200 "in maasPowerParameters track by type.name");200 for type in maasPowerParameters track by type.name`);
201 expect(select.attr("data-ng-disabled")).toBe(201 expect(select.attr("data-ng-disabled")).toBe(
202 "ngDisabled || ngModel.in_pod");202 "ngDisabled || ngModel.in_pod");
203 });203 });
diff --git a/src/maasserver/static/js/angular/factories/tests/test_zones.js b/src/maasserver/static/js/angular/factories/tests/test_zones.js
index dc5a8de..0cd424a 100644
--- a/src/maasserver/static/js/angular/factories/tests/test_zones.js
+++ b/src/maasserver/static/js/angular/factories/tests/test_zones.js
@@ -60,7 +60,6 @@ describe("ZonesManager", function() {
60 for(i=0;i<3;i++) {60 for(i=0;i<3;i++) {
61 ZonesManager._items.push(makeZone());61 ZonesManager._items.push(makeZone());
62 }62 }
63
64 expect(ZonesManager.getDefaultZone({63 expect(ZonesManager.getDefaultZone({
65 zone: ZonesManager._items[2].id64 zone: ZonesManager._items[2].id
66 })).toBe(65 })).toBe(
diff --git a/src/maasserver/static/partials/dashboard.html b/src/maasserver/static/partials/dashboard.html
index c9d6eed..b0b36b7 100644
--- a/src/maasserver/static/partials/dashboard.html
+++ b/src/maasserver/static/partials/dashboard.html
@@ -115,7 +115,7 @@
115 <div class="row is-active">115 <div class="row is-active">
116 <div class="col-6">116 <div class="col-6">
117 <div class="p-form__group u-clearfix">117 <div class="p-form__group u-clearfix">
118 <label class="p-form__label col-2 mobile-col-2 tablet-col-2"><strong>Mac</strong></label>118 <label class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">Mac</label>
119 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">119 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
120 <span class="p-control-text">120 <span class="p-control-text">
121 {$ discovery.mac_address $}121 {$ discovery.mac_address $}
@@ -123,7 +123,7 @@
123 </div>123 </div>
124 </div>124 </div>
125 <div class="p-form__group u-clearfix">125 <div class="p-form__group u-clearfix">
126 <label class="p-form__label col-2 mobile-col-2 tablet-col-2"><strong>IP</strong></label>126 <label class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">IP</label>
127 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">127 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
128 <span class="p-control-text">128 <span class="p-control-text">
129 {$ discovery.ip $}129 {$ discovery.ip $}
@@ -131,7 +131,7 @@
131 </div>131 </div>
132 </div>132 </div>
133 <div class="p-form__group u-clearfix">133 <div class="p-form__group u-clearfix">
134 <label class="p-form__label col-2 mobile-col-2 tablet-col-2"><strong>Rack</strong></label>134 <label class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">Rack</label>
135 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">135 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
136 <span class="p-control-text">136 <span class="p-control-text">
137 {$ discovery.observer_hostname $}137 {$ discovery.observer_hostname $}
@@ -139,7 +139,7 @@
139 </div>139 </div>
140 </div>140 </div>
141 <div class="p-form__group u-clearfix">141 <div class="p-form__group u-clearfix">
142 <label class="p-form__label col-2 mobile-col-2 tablet-col-2"><strong>Last seen</strong></label>142 <label class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">Last seen</label>
143 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">143 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
144 <span class="p-control-text">144 <span class="p-control-text">
145 {$ discovery.last_seen $}145 {$ discovery.last_seen $}
@@ -149,7 +149,7 @@
149 </div>149 </div>
150 <div class="col-6">150 <div class="col-6">
151 <div class="p-form__group u-clearfix">151 <div class="p-form__group u-clearfix">
152 <label class="p-form__label col-2 mobile-col-2 tablet-col-2"><strong>Fabric</strong></label>152 <label class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">Fabric</label>
153 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">153 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
154 <span class="p-control-text">154 <span class="p-control-text">
155 {$ discovery.fabric_name $}155 {$ discovery.fabric_name $}
@@ -157,7 +157,7 @@
157 </div>157 </div>
158 </div>158 </div>
159 <div class="p-form__group u-clearfix">159 <div class="p-form__group u-clearfix">
160 <label class="p-form__label col-2 mobile-col-2 tablet-col-2"><strong>VLAN</strong></label>160 <label class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">VLAN</label>
161 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">161 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
162 <span class="p-control-text">162 <span class="p-control-text">
163 {$ getVLANName(discovery.vlan) $}163 {$ getVLANName(discovery.vlan) $}
@@ -165,7 +165,7 @@
165 </div>165 </div>
166 </div>166 </div>
167 <div class="p-form__group u-clearfix">167 <div class="p-form__group u-clearfix">
168 <label class="p-form__label col-2 mobile-col-2 tablet-col-2"><strong>Subnet</strong></label>168 <label class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">Subnet</label>
169 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">169 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
170 <a href="#/subnet/{$ discovery.subnet $}" class="p-control-text">{$ getSubnetName(discovery.subnet) $}</a>170 <a href="#/subnet/{$ discovery.subnet $}" class="p-control-text">{$ getSubnetName(discovery.subnet) $}</a>
171 </div>171 </div>
diff --git a/src/maasserver/static/partials/domain-details.html b/src/maasserver/static/partials/domain-details.html
index 4240de3..2104073 100644
--- a/src/maasserver/static/partials/domain-details.html
+++ b/src/maasserver/static/partials/domain-details.html
@@ -133,16 +133,16 @@
133 <div class="form p-form--stacked row" data-ng-if="editSummary != true">133 <div class="form p-form--stacked row" data-ng-if="editSummary != true">
134 <div class="col-6">134 <div class="col-6">
135 <div class="p-form__group">135 <div class="p-form__group">
136 <div class="p-form__label">136 <div class="p-form__label is-disabled">
137 <p><strong>Name</strong></p>137 <p>Name</p>
138 </div>138 </div>
139 <div class="p-form__control">139 <div class="p-form__control">
140 <p>{$ domain.name $}</p>140 <p>{$ domain.name $}</p>
141 </div>141 </div>
142 </div>142 </div>
143 <div class="p-form__group">143 <div class="p-form__group">
144 <div class="p-form__label">144 <div class="p-form__label is-disabled">
145 <p><strong>TTL</strong></p>145 <p>TTL</p>
146 </div>146 </div>
147 <div class="p-form__control">147 <div class="p-form__control">
148 <p data-ng-if="domain.ttl">{$ domain.ttl $}</p>148 <p data-ng-if="domain.ttl">{$ domain.ttl $}</p>
@@ -152,8 +152,8 @@
152 </div>152 </div>
153 <div class="col-6">153 <div class="col-6">
154 <div class="p-form__group">154 <div class="p-form__group">
155 <div class="p-form__label">155 <div class="p-form__label is-disabled">
156 <p><strong>Authoritative</strong></p>156 <p>Authoritative</p>
157 </div>157 </div>
158 <div class="p-form__control">158 <div class="p-form__control">
159 <span data-ng-if="domain.authoritative == false">No</span>159 <span data-ng-if="domain.authoritative == false">No</span>
diff --git a/src/maasserver/static/partials/fabric-details.html b/src/maasserver/static/partials/fabric-details.html
index b6d51d9..a64c43a 100644
--- a/src/maasserver/static/partials/fabric-details.html
+++ b/src/maasserver/static/partials/fabric-details.html
@@ -83,16 +83,16 @@
83 <div class="form p-form--stacked row" data-ng-if="editSummary != true">83 <div class="form p-form--stacked row" data-ng-if="editSummary != true">
84 <div class="col-6">84 <div class="col-6">
85 <div class="p-form__group">85 <div class="p-form__group">
86 <div class="p-form__label col-2 tablet-col-2">86 <div class="p-form__label is-disabled col-2 tablet-col-2">
87 <div><strong>Name:</strong></div>87 <div>Name</div>
88 </div>88 </div>
89 <div class="p-form__control col-3 tablet-col-4">89 <div class="p-form__control col-3 tablet-col-4">
90 <p>{$ fabric.name $}</p>90 <p>{$ fabric.name $}</p>
91 </div>91 </div>
92 </div>92 </div>
93 <div class="p-form__group">93 <div class="p-form__group">
94 <div class="p-form__label col-2 tablet-col-2">94 <div class="p-form__label is-disabled col-2 tablet-col-2">
95 <div><strong>Description:</strong></div>95 <div>Description</div>
96 </div>96 </div>
97 <div class="p-form__control col-4 tablet-col-4">97 <div class="p-form__control col-4 tablet-col-4">
98 <p>{$ fabric.description $}</p>98 <p>{$ fabric.description $}</p>
@@ -101,12 +101,12 @@
101 </div>101 </div>
102 <div class="col-6">102 <div class="col-6">
103 <div class="p-form__group">103 <div class="p-form__group">
104 <div class="p-form__label col-2 tablet-col-2">104 <div class="p-form__label is-disabled col-2 tablet-col-2">
105 <div><strong>Rack controllers</strong></div>105 <div>Rack controllers</div>
106 </div>106 </div>
107 <div class="p-form__control col-3 tablet-col-4">107 <div class="p-form__control col-3 tablet-col-4">
108 <span data-ng-repeat="rack in racks | orderBy:'hostname' track by rack.system_id">108 <span data-ng-repeat="rack in racks | orderBy:'hostname' track by rack.system_id">
109 <a href="#/controller/{$ rack.system_id $}">{$ rack.hostname $}</a>,109 <a href="#/controller/{$ rack.system_id $}">{$ rack.hostname $}</a><span ng-show="!$last">,</span>
110 </span>110 </span>
111 </div>111 </div>
112 </div>112 </div>
@@ -122,12 +122,12 @@
122 </div>122 </div>
123 <div class="col-6">123 <div class="col-6">
124 <div class="p-form__group">124 <div class="p-form__group">
125 <div class="p-form__label col-2 tablet-col-2">125 <div class="p-form__label is-disabled col-2 tablet-col-2">
126 <p>Rack controllers</p>126 <p>Rack controllers</p>
127 </div>127 </div>
128 <div class="p-form__control col-3 tablet-col-4">128 <div class="p-form__control col-3 tablet-col-4">
129 <span data-ng-repeat="rack in racks | orderBy:'hostname' track by rack.system_id">129 <span data-ng-repeat="rack in racks | orderBy:'hostname' track by rack.system_id">
130 <a href="#/controller/{$ rack.system_id $}">{$ rack.hostname $}</a>,130 <a href="#/controller/{$ rack.system_id $}">{$ rack.hostname $}</a><span ng-show="!$last">,</span>
131 </span>131 </span>
132 </div>132 </div>
133 </div>133 </div>
diff --git a/src/maasserver/static/partials/node-details.html b/src/maasserver/static/partials/node-details.html
index 77fc542..6411386 100755
--- a/src/maasserver/static/partials/node-details.html
+++ b/src/maasserver/static/partials/node-details.html
@@ -527,7 +527,9 @@
527 <div class="col-6">527 <div class="col-6">
528 <div class="p-form__group u-clearfix" data-ng-if="!isDevice && !isController"528 <div class="p-form__group u-clearfix" data-ng-if="!isDevice && !isController"
529 data-ng-class="{ 'is-error': invalidArchitecture() }">529 data-ng-class="{ 'is-error': invalidArchitecture() }">
530 <label for="architecture" class="p-form__label col-2 mobile-col-2 tablet-col-2">Architecture</label>530 <label for="architecture"
531 class="p-form__label col-2 mobile-col-2 tablet-col-2"
532 data-ng-class="{'is-disabled': !summary.editing }">Architecture</label>
531 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">533 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
532 <select name="architecture" id="architecture" class="p-form-validation__input"534 <select name="architecture" id="architecture" class="p-form-validation__input"
533 data-ng-disabled="!summary.editing"535 data-ng-disabled="!summary.editing"
@@ -538,7 +540,9 @@
538 </div>540 </div>
539 </div>541 </div>
540 <div class="p-form__group u-clearfix" data-ng-if="!isDevice && !isController">542 <div class="p-form__group u-clearfix" data-ng-if="!isDevice && !isController">
541 <label for="min_hwe_kernel" class="p-form__label col-2 mobile-col-2 tablet-col-2">Minimum Kernel</label>543 <label for="min_hwe_kernel"
544 class="p-form__label col-2 mobile-col-2 tablet-col-2"
545 data-ng-class="{'is-disabled': !summary.editing }">Minimum Kernel</label>
542 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">546 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
543 <select name="min_hwe_kernel" id="min_hwe_kernel"547 <select name="min_hwe_kernel" id="min_hwe_kernel"
544 data-ng-disabled="!summary.editing"548 data-ng-disabled="!summary.editing"
@@ -549,7 +553,9 @@
549 </div>553 </div>
550 </div>554 </div>
551 <div class="p-form__group u-clearfix">555 <div class="p-form__group u-clearfix">
552 <label for="zone" class="p-form__label col-2 mobile-col-2 tablet-col-2">Zone</label>556 <label for="zone"
557 class="p-form__label col-2 mobile-col-2 tablet-col-2"
558 data-ng-class="{'is-disabled': !summary.editing }">Zone</label>
553 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">559 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
554 <select name="zone" id="zone"560 <select name="zone" id="zone"
555 data-ng-disabled="!summary.editing"561 data-ng-disabled="!summary.editing"
@@ -560,7 +566,9 @@
560 </div>566 </div>
561 </div>567 </div>
562 <div class="p-form__group u-clearfix" data-ng-if="!isDevice && !isController">568 <div class="p-form__group u-clearfix" data-ng-if="!isDevice && !isController">
563 <label for="pool" class="p-form__label col-2 mobile-col-2 tablet-col-2">Resource pool</label>569 <label for="pool"
570 class="p-form__label col-2 mobile-col-2 tablet-col-2"
571 data-ng-class="{'is-disabled': !summary.editing }">Resource pool</label>
564 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">572 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
565 <select name="pool" id="pool"573 <select name="pool" id="pool"
566 data-ng-disabled="!summary.editing"574 data-ng-disabled="!summary.editing"
@@ -571,7 +579,8 @@
571 </div>579 </div>
572 </div>580 </div>
573 <div class="p-form__group u-clearfix">581 <div class="p-form__group u-clearfix">
574 <label class="p-form__label col-2 mobile-col-2 tablet-col-2">Tags</label>582 <label class="p-form__label col-2 mobile-col-2 tablet-col-2"
583 data-ng-class="{'is-disabled': !summary.editing }">Tags</label>
575 <div class="p-form__control col-3 mobile-col-2 tablet-col-3 tags--inline">584 <div class="p-form__control col-3 mobile-col-2 tablet-col-3 tags--inline">
576 <span data-ng-repeat="tag in node.tags" data-ng-hide="summary.editing">585 <span data-ng-repeat="tag in node.tags" data-ng-hide="summary.editing">
577 <a href="#/machines/?query=tags:({$ tag $})">{$ tag $}</a>586 <a href="#/machines/?query=tags:({$ tag $})">{$ tag $}</a>
diff --git a/src/maasserver/static/partials/node-result.html b/src/maasserver/static/partials/node-result.html
index 4acabb1..d5f427e 100644
--- a/src/maasserver/static/partials/node-result.html
+++ b/src/maasserver/static/partials/node-result.html
@@ -24,7 +24,7 @@
24 <div class="col-6">24 <div class="col-6">
25 <div class="p-form__group">25 <div class="p-form__group">
26 <div class="p-form__label">26 <div class="p-form__label">
27 <strong>Status</strong>27 Status
28 </div>28 </div>
29 <div class="p-form__control">29 <div class="p-form__control">
30 <p class="ng-binding u-no-padding--top">30 <p class="ng-binding u-no-padding--top">
@@ -34,7 +34,7 @@
34 </div>34 </div>
35 <div class="p-form__group">35 <div class="p-form__group">
36 <div class="p-form__label">36 <div class="p-form__label">
37 <strong>Exit Status</strong>37 Exit Status
38 </div>38 </div>
39 <div class="p-form__control">39 <div class="p-form__control">
40 <p class="ng-binding u-no-padding--top" data-ng-if="result.exit_status || result.exit_status === 0">{$ result.exit_status $}</p>40 <p class="ng-binding u-no-padding--top" data-ng-if="result.exit_status || result.exit_status === 0">{$ result.exit_status $}</p>
@@ -43,7 +43,7 @@
43 </div>43 </div>
44 <div class="p-form__group">44 <div class="p-form__group">
45 <div class="p-form__label">45 <div class="p-form__label">
46 <strong>Tags</strong>46 Tags
47 </div>47 </div>
48 <div class="p-form__control">48 <div class="p-form__control">
49 <p class="ng-binding u-no-padding--top" data-ng-if="result.tags">{$ result.tags $}</p>49 <p class="ng-binding u-no-padding--top" data-ng-if="result.tags">{$ result.tags $}</p>
@@ -54,7 +54,7 @@
54 <div class="col-6">54 <div class="col-6">
55 <div class="p-form__group">55 <div class="p-form__group">
56 <div class="p-form__label">56 <div class="p-form__label">
57 <strong>Start Time</strong>57 Start Time
58 </div>58 </div>
59 <div class="p-form__control">59 <div class="p-form__control">
60 <p class="ng-binding u-no-padding--top" data-ng-if="result.started">{$ result.started $}</p>60 <p class="ng-binding u-no-padding--top" data-ng-if="result.started">{$ result.started $}</p>
@@ -63,7 +63,7 @@
63 </div>63 </div>
64 <div class="p-form__group">64 <div class="p-form__group">
65 <div class="p-form__label">65 <div class="p-form__label">
66 <strong>End Time</strong>66 End Time
67 </div>67 </div>
68 <div class="p-form__control">68 <div class="p-form__control">
69 <p class="ng-binding u-no-padding--top" data-ng-if="result.ended">{$ result.ended $}</p>69 <p class="ng-binding u-no-padding--top" data-ng-if="result.ended">{$ result.ended $}</p>
@@ -72,7 +72,7 @@
72 </div>72 </div>
73 <div class="p-form__group">73 <div class="p-form__group">
74 <div class="p-form__label">74 <div class="p-form__label">
75 <strong>Runtime</strong>75 Runtime
76 </div>76 </div>
77 <div class="p-form__control">77 <div class="p-form__control">
78 <p class="ng-binding u-no-padding--top" data-ng-if="result.runtime">{$ result.runtime $}</p>78 <p class="ng-binding u-no-padding--top" data-ng-if="result.runtime">{$ result.runtime $}</p>
diff --git a/src/maasserver/static/partials/subnet-details.html b/src/maasserver/static/partials/subnet-details.html
index e449d35..3d884dd 100755
--- a/src/maasserver/static/partials/subnet-details.html
+++ b/src/maasserver/static/partials/subnet-details.html
@@ -84,24 +84,24 @@
84 <div class="form p-form--stacked row" data-ng-if="editSummary != true">84 <div class="form p-form--stacked row" data-ng-if="editSummary != true">
85 <div class="col-6">85 <div class="col-6">
86 <div class="p-form__group">86 <div class="p-form__group">
87 <div class="p-form__label col-2 tablet-col-2">87 <div class="p-form__label is-disabled col-2 tablet-col-2">
88 <p><strong>Name</strong></p>88 <p>Name</p>
89 </div>89 </div>
90 <div class="p-form__control col-4 tablet-col-3">90 <div class="p-form__control col-4 tablet-col-3">
91 <p>{$ subnet.name $}</p>91 <p>{$ subnet.name $}</p>
92 </div>92 </div>
93 </div>93 </div>
94 <div class="p-form__group">94 <div class="p-form__group">
95 <div class="p-form__label col-2 tablet-col-2">95 <div class="p-form__label is-disabled col-2 tablet-col-2">
96 <p><strong>CIDR</strong></p>96 <p>CIDR</p>
97 </div>97 </div>
98 <div class="p-form__control col-4 tablet-col-3">98 <div class="p-form__control col-4 tablet-col-3">
99 <p>{$ subnet.cidr $}</span>99 <p>{$ subnet.cidr $}</span>
100 </div>100 </div>
101 </div>101 </div>
102 <div class="p-form__group">102 <div class="p-form__group">
103 <div class="p-form__label col-2 tablet-col-2">103 <div class="p-form__label is-disabled col-2 tablet-col-2">
104 <p><strong>Gateway IP</strong></p>104 <p>Gateway IP</p>
105 </div>105 </div>
106 <div class="p-form__control col-4 tablet-col-3">106 <div class="p-form__control col-4 tablet-col-3">
107 <p data-ng-if="subnet.gateway_ip">{$ subnet.gateway_ip $}</p>107 <p data-ng-if="subnet.gateway_ip">{$ subnet.gateway_ip $}</p>
@@ -109,8 +109,8 @@
109 </div>109 </div>
110 </div>110 </div>
111 <div class="p-form__group">111 <div class="p-form__group">
112 <div class="p-form__label col-2 tablet-col-2">112 <div class="p-form__label is-disabled col-2 tablet-col-2">
113 <p><strong>DNS</strong></p>113 <p>DNS</p>
114 </div>114 </div>
115 <div class="p-form__control col-4 tablet-col-3">115 <div class="p-form__control col-4 tablet-col-3">
116 <p data-ng-if="subnet.dns_servers">{$ subnet.dns_servers $}</p>116 <p data-ng-if="subnet.dns_servers">{$ subnet.dns_servers $}</p>
@@ -118,8 +118,8 @@
118 </div>118 </div>
119 </div>119 </div>
120 <div class="p-form__group">120 <div class="p-form__group">
121 <div class="p-form__label col-2 tablet-col-2">121 <div class="p-form__label is-disabled col-2 tablet-col-2">
122 <p><strong>Description</strong></p>122 <p>Description</p>
123 </div>123 </div>
124 <div class="p-form__control col-4 tablet-col-3">124 <div class="p-form__control col-4 tablet-col-3">
125 <p data-ng-if="subnet.description">{$ subnet.description $}</p>125 <p data-ng-if="subnet.description">{$ subnet.description $}</p>
@@ -129,9 +129,9 @@
129 </div>129 </div>
130 <div class="col-6">130 <div class="col-6">
131 <div class="p-form__group">131 <div class="p-form__group">
132 <div class="p-form__label col-2 tablet-col-2">132 <div class="p-form__label is-disabled col-2 tablet-col-2">
133 <p>133 <p>
134 <strong>Managed allocation</strong>134 Managed allocation
135 <span data-ng-if="subnet.managed == false" class="p-tooltip p-tooltip--btm-right">135 <span data-ng-if="subnet.managed == false" class="p-tooltip p-tooltip--btm-right">
136 <i class="p-icon--information">Help:</i>136 <i class="p-icon--information">Help:</i>
137 <span class="p-tooltip__message" role="tooltip">MAAS allocates IP addresses only from&#xa;the reserved ranges on this subnet.</span>137 <span class="p-tooltip__message" role="tooltip">MAAS allocates IP addresses only from&#xa;the reserved ranges on this subnet.</span>
@@ -149,9 +149,9 @@
149 </div>149 </div>
150 </div>150 </div>
151 <div class="p-form__group">151 <div class="p-form__group">
152 <div class="p-form__label col-2 tablet-col-2">152 <div class="p-form__label is-disabled col-2 tablet-col-2">
153 <p>153 <p>
154 <strong>Active discovery</strong>154 Active discovery
155 <span data-ng-if="subnet.managed == true" class="p-tooltip p-tooltip--btm-right">155 <span data-ng-if="subnet.managed == true" class="p-tooltip p-tooltip--btm-right">
156 <i class="p-icon--information u-no-margin--right">Help:</i>156 <i class="p-icon--information u-no-margin--right">Help:</i>
157 <span class="p-tooltip__message" role="tooltip">When enabled, MAAS will scan this subnet {$ active_discovery_interval | lowercase $}&#xa;to discover hosts that have not been discovered passively.</span>157 <span class="p-tooltip__message" role="tooltip">When enabled, MAAS will scan this subnet {$ active_discovery_interval | lowercase $}&#xa;to discover hosts that have not been discovered passively.</span>
@@ -164,9 +164,9 @@
164 </div>164 </div>
165 </div>165 </div>
166 <div class="p-form__group">166 <div class="p-form__group">
167 <div class="p-form__label col-2 tablet-col-2">167 <div class="p-form__label is-disabled col-2 tablet-col-2">
168 <p>168 <p>
169 <strong>Proxy access</strong>169 Proxy access
170 <span data-ng-if="subnet.allow_proxy == false" class="p-tooltip p-tooltip--btm-right">170 <span data-ng-if="subnet.allow_proxy == false" class="p-tooltip p-tooltip--btm-right">
171 <i class="p-icon--information">Help:</i>171 <i class="p-icon--information">Help:</i>
172 <span class="p-tooltip__message" role="tooltip">MAAS will not allow clients from this&#xa;subnet to access the MAAS proxy.</span>172 <span class="p-tooltip__message" role="tooltip">MAAS will not allow clients from this&#xa;subnet to access the MAAS proxy.</span>
@@ -184,9 +184,9 @@
184 </div>184 </div>
185 </div>185 </div>
186 <div class="p-form__group">186 <div class="p-form__group">
187 <div class="p-form__label col-2 tablet-col-2">187 <div class="p-form__label is-disabled col-2 tablet-col-2">
188 <p>188 <p>
189 <strong>Allow DNS resolution</strong>189 Allow DNS resolution
190 <span data-ng-if="subnet.allow_dns == false" class="p-tooltip p-tooltip--btm-right">190 <span data-ng-if="subnet.allow_dns == false" class="p-tooltip p-tooltip--btm-right">
191 <i class="p-icon--information">Help:</i>191 <i class="p-icon--information">Help:</i>
192 <span class="p-tooltip__message" role="tooltip">MAAS will not allow clients from this&#xa;subnet to use MAAS for DNS resolution.</span>192 <span class="p-tooltip__message" role="tooltip">MAAS will not allow clients from this&#xa;subnet to use MAAS for DNS resolution.</span>
@@ -204,34 +204,36 @@
204 </div>204 </div>
205 </div>205 </div>
206 <div class="p-form__group">206 <div class="p-form__group">
207 <div class="p-form__label col-2 tablet-col-2">207 <div class="p-form__label is-disabled col-2 tablet-col-2">
208 <p><strong>Fabric</strong></p>208 <p>Fabric</p>
209 </div>209 </div>
210 <div class="p-form__control col-4 tablet-col-3">210 <div class="p-form__control col-4 tablet-col-3">
211 <p>{$ subnet.fabric_name $}</p>211 <p>{$ subnet.fabric_name $}</p>
212 </div>212 </div>
213 </div>213 </div>
214 <div class="p-form__group">214 <div class="p-form__group">
215 <div class="p-form__label col-2 tablet-col-2">215 <div class="p-form__label is-disabled col-2 tablet-col-2">
216 <p><strong>VLAN</strong></p>216 <p>VLAN</p>
217 </div>217 </div>
218 <div class="p-form__control col-4 tablet-col-3">218 <div class="p-form__control col-4 tablet-col-3">
219 <p>{$ subnet.vlan_name $}</p>219 <p>{$ subnet.vlan_name $}</p>
220 </div>220 </div>
221 </div>221 </div>
222 <div class="p-form__group">222 <div class="p-form__group">
223 <div class="p-form__label col-2 tablet-col-2">223 <div class="p-form__label is-disabled col-2 tablet-col-2">
224 <p><strong>Space</strong></p>224 <p>Space</p>
225 </div>225 </div>
226 <div class="p-form__control col-4 tablet-col-3">226 <div class="p-form__control col-4 tablet-col-3">
227 <a data-ng-if="space !== null" href="#/space/{$ space.id $}">{$ space.name $}</a>227 <p>
228 <span data-ng-if="space === null">228 <a data-ng-if="space !== null" href="#/space/{$ space.id $}">{$ space.name $}</a>
229 (undefined)229 <span data-ng-if="space === null">
230 <span class="p-tooltip p-tooltip--top-center">230 (undefined)
231 <i class="p-icon--warning">Warning:</i>231 <span class="p-tooltip p-tooltip--top-center">
232 <span class="p-tooltip__message" role="tooltip">This subnet does not belong to a space.&#xa;MAAS integrations require a space in order to determine the purpose of a network.</span>232 <i class="p-icon--warning">Warning:</i>
233 <span class="p-tooltip__message" role="tooltip">This subnet does not belong to a space.&#xa;MAAS integrations require a space in order to determine the purpose of a network.</span>
234 </span>
233 </span>235 </span>
234 </span>236 </p>
235 </div>237 </div>
236 </div>238 </div>
237 </div>239 </div>
@@ -286,18 +288,20 @@
286 options="v.id as getVLANName(v) for v in vlans | filterByFabric:subnet.$maasForm.getValue('fabric')"288 options="v.id as getVLANName(v) for v in vlans | filterByFabric:subnet.$maasForm.getValue('fabric')"
287 label-width="2" label-width-tablet="2" input-width="3" input-width-tablet="4"></maas-obj-field>289 label-width="2" label-width-tablet="2" input-width="3" input-width-tablet="4"></maas-obj-field>
288 <div class="p-form__group">290 <div class="p-form__group">
289 <div class="p-form__label col-2 tablet-col-2">291 <div class="p-form__label is-disabled col-2 tablet-col-2">
290 <p>Space</p>292 <p>Space</p>
291 </div>293 </div>
292 <div class="p-form__control col-4 tablet-col-3">294 <div class="p-form__control col-4 tablet-col-3">
293 <a data-ng-if="space !== null" href="#/space/{$ space.id $}">{$ space.name $}</a>295 <p>
294 <span data-ng-if="space === null">296 <a data-ng-if="space !== null" href="#/space/{$ space.id $}">{$ space.name $}</a>
295 (undefined)297 <span data-ng-if="space === null">
296 <span class="p-tooltip p-tooltip--top-center">298 (undefined)
297 <i class="p-icon--warning">Warning:</i>299 <span class="p-tooltip p-tooltip--top-center">
298 <span class="p-tooltip__message" role="tooltip">This subnet does not belong to a space.&#xa;MAAS integrations require a space in order to determine the purpose of a network.</span>300 <i class="p-icon--warning">Warning:</i>
301 <span class="p-tooltip__message" role="tooltip">This subnet does not belong to a space.&#xa;MAAS integrations require a space in order to determine the purpose of a network.</span>
302 </span>
299 </span>303 </span>
300 </span>304 </p>
301 </div>305 </div>
302 </div>306 </div>
303 </div>307 </div>
@@ -477,7 +481,7 @@
477 <div class="col-6">481 <div class="col-6">
478 <div class="row">482 <div class="row">
479 <div class="col-2">483 <div class="col-2">
480 <p><strong>Subnet addresses</strong></p>484 <p class="p-form__label is-disabled">Subnet addresses</p>
481 </div>485 </div>
482 <div class="col-4">486 <div class="col-4">
483 <p>{$ subnet.statistics.total_addresses $}</p>487 <p>{$ subnet.statistics.total_addresses $}</p>
@@ -486,7 +490,7 @@
486490
487 <div class="row">491 <div class="row">
488 <div class="col-2">492 <div class="col-2">
489 <p><strong>Availability</strong></p>493 <p class="p-form__label is-disabled">Availability</p>
490 </div>494 </div>
491 <div class="col-4">495 <div class="col-4">
492 <p>{$ subnet.statistics.num_available $} ({$ subnet.statistics.available_string $})</p>496 <p>{$ subnet.statistics.num_available $} ({$ subnet.statistics.available_string $})</p>
@@ -499,7 +503,7 @@
499 <!-- <dt class="u-hide ng-hide">Reserved</dt>503 <!-- <dt class="u-hide ng-hide">Reserved</dt>
500 <dd class="u-hide ng-hide">10%</dd> -->504 <dd class="u-hide ng-hide">10%</dd> -->
501 <div class="col-2">505 <div class="col-2">
502 <p><strong>Used</strong></p>506 <p class="p-form__label is-disabled">Used</p>
503 </div>507 </div>
504 <div class="col-4">508 <div class="col-4">
505 <p>{$ subnet.statistics.usage_string $}</p>509 <p>{$ subnet.statistics.usage_string $}</p>
diff --git a/src/maasserver/static/partials/vlan-details.html b/src/maasserver/static/partials/vlan-details.html
index b363f0f..22d97dd 100644
--- a/src/maasserver/static/partials/vlan-details.html
+++ b/src/maasserver/static/partials/vlan-details.html
@@ -240,40 +240,40 @@
240 <div class="p-form p-form--stacked row" data-ng-if="!vlanDetails.editSummary">240 <div class="p-form p-form--stacked row" data-ng-if="!vlanDetails.editSummary">
241 <div class="col-6">241 <div class="col-6">
242 <div class="p-form__group">242 <div class="p-form__group">
243 <div class="p-form__label col-2 mobile-col-2 tablet-col-2">243 <div class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">
244 <p><strong>VID</strong></p>244 <p>VID</p>
245 </div>245 </div>
246 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">246 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
247 <p>{$ vlanDetails.vlan.vid $}</p>247 <p>{$ vlanDetails.vlan.vid $}</p>
248 </div>248 </div>
249 </div>249 </div>
250 <div class="p-form__group">250 <div class="p-form__group">
251 <div class="p-form__label col-2 mobile-col-2 tablet-col-2">251 <div class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">
252 <p><strong>Name</strong></p>252 <p>Name</p>
253 </div>253 </div>
254 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">254 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
255 <p>{$ vlanDetails.vlan.name $}</p>255 <p>{$ vlanDetails.vlan.name $}</p>
256 </div>256 </div>
257 </div>257 </div>
258 <div class="p-form__group">258 <div class="p-form__group">
259 <div class="p-form__label col-2 mobile-col-2 tablet-col-2">259 <div class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">
260 <p><strong>MTU</strong></p>260 <p>MTU</p>
261 </div>261 </div>
262 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">262 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
263 <p>{$ vlanDetails.vlan.mtu $}</p>263 <p>{$ vlanDetails.vlan.mtu $}</p>
264 </div>264 </div>
265 </div>265 </div>
266 <div class="p-form__group">266 <div class="p-form__group">
267 <div class="p-form__label col-2 mobile-col-2 tablet-col-2">267 <div class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">
268 <p><strong>Space</strong></p>268 <p>Space</p>
269 </div>269 </div>
270 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">270 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
271 <p>{$ vlanDetails.getSpaceName() $}</p>271 <p>{$ vlanDetails.getSpaceName() $}</p>
272 </div>272 </div>
273 </div>273 </div>
274 <div class="p-form__group">274 <div class="p-form__group">
275 <div class="p-form__label col-2 mobile-col-2 tablet-col-2">275 <div class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">
276 <p><strong>Description</strong></p>276 <p>Description</p>
277 </div>277 </div>
278 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">278 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
279 <p>{$ vlanDetails.vlan.description $}</p>279 <p>{$ vlanDetails.vlan.description $}</p>
@@ -282,16 +282,16 @@
282 </div>282 </div>
283 <div class="col-6">283 <div class="col-6">
284 <div class="p-form__group">284 <div class="p-form__group">
285 <div class="p-form__label col-2 mobile-col-2 tablet-col-2">285 <div class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">
286 <p><strong>Fabric</strong></p>286 <p>Fabric</p>
287 </div>287 </div>
288 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">288 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
289 <p><a href="#/fabric/{$ vlanDetails.fabric.id $}">{$ vlanDetails.fabric.name $}</a></p>289 <p><a href="#/fabric/{$ vlanDetails.fabric.id $}">{$ vlanDetails.fabric.name $}</a></p>
290 </div>290 </div>
291 </div>291 </div>
292 <div class="p-form__group" data-ng-if="vlanDetails.relatedControllers">292 <div class="p-form__group" data-ng-if="vlanDetails.relatedControllers">
293 <div class="p-form__label col-2 mobile-col-2 tablet-col-2">293 <div class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">
294 <p><strong>Rack controllers</strong>294 <p>Rack controllers
295 <span class="p-tooltip p-tooltip--top-center">295 <span class="p-tooltip p-tooltip--top-center">
296 <i class="p-icon--information">Help:</i>296 <i class="p-icon--information">Help:</i>
297 <span class="p-tooltip__message" role="tooltip">A rack controller controls hosts and images and runs network services&#xa;like DHCP for connected VLANs.</span>297 <span class="p-tooltip__message" role="tooltip">A rack controller controls hosts and images and runs network services&#xa;like DHCP for connected VLANs.</span>
@@ -299,7 +299,7 @@
299 </div>299 </div>
300 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">300 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
301 <span data-ng-repeat="rack in vlanDetails.relatedControllers">301 <span data-ng-repeat="rack in vlanDetails.relatedControllers">
302 <a href="#/controller/{$ rack.system_id $}">{$ rack.hostname $}</a>,302 <a href="#/controller/{$ rack.system_id $}">{$ rack.hostname $}</a><span ng-show="!$last">,</span>
303 </span>303 </span>
304 </div>304 </div>
305 </div>305 </div>
@@ -326,17 +326,19 @@
326 <maas-obj-field type="options" key="fabric" label="Fabric"326 <maas-obj-field type="options" key="fabric" label="Fabric"
327 options="fabric.id as fabric.name for fabric in vlanDetails.fabrics" label-width="2" label-width-tablet="2" input-width="3" input-width-tablet="4"></maas-obj-field>327 options="fabric.id as fabric.name for fabric in vlanDetails.fabrics" label-width="2" label-width-tablet="2" input-width="3" input-width-tablet="4"></maas-obj-field>
328 <div class="p-form__group" data-ng-if="vlanDetails.relatedControllers">328 <div class="p-form__group" data-ng-if="vlanDetails.relatedControllers">
329 <div class="p-form__label col-2 mobile-col-2 tablet-col-2">329 <div class="p-form__label is-disabled col-2 mobile-col-2 tablet-col-2">
330 <p><strong>Rack controllers</strong>330 <p>Rack controllers
331 <span class="p-tooltip p-tooltip--top-center">331 <span class="p-tooltip p-tooltip--top-center">
332 <i class="p-icon--information">Help:</i>332 <i class="p-icon--information">Help:</i>
333 <span class="p-tooltip__message" role="tooltip">A rack controller controls hosts and images and runs network services&#xa;like DHCP for connected VLANs.</span>333 <span class="p-tooltip__message" role="tooltip">A rack controller controls hosts and images and runs network services&#xa;like DHCP for connected VLANs.</span>
334 </span></p>334 </span></p>
335 </div>335 </div>
336 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">336 <div class="p-form__control col-3 mobile-col-2 tablet-col-3">
337 <span data-ng-repeat="rack in vlanDetails.relatedControllers">337 <p>
338 <a href="#/controller/{$ rack.system_id $}">{$ rack.hostname $}</a>,338 <span data-ng-repeat="rack in vlanDetails.relatedControllers">
339 </span>339 <a href="#/controller/{$ rack.system_id $}">{$ rack.hostname $}</a><span ng-show="!$last">,</span>
340 </span>
341 </p>
340 </div>342 </div>
341 </div>343 </div>
342 </div>344 </div>
@@ -365,8 +367,8 @@
365 <div class="p-form p-form--stacked row">367 <div class="p-form p-form--stacked row">
366 <div class="col-8">368 <div class="col-8">
367 <div class="p-form__group">369 <div class="p-form__group">
368 <div class="p-form__label">370 <div class="p-form__label is-disabled">
369 <p><strong>Status</strong></p>371 <p>Status</p>
370 </div>372 </div>
371 <div class="p-form__control">373 <div class="p-form__control">
372 <p>{$ vlanDetails.getDHCPStatus() $}</p>374 <p>{$ vlanDetails.getDHCPStatus() $}</p>
@@ -374,8 +376,8 @@
374 </div>376 </div>
375377
376 <div class="p-form__group" data-ng-if="vlanDetails.vlan.external_dhcp">378 <div class="p-form__group" data-ng-if="vlanDetails.vlan.external_dhcp">
377 <div class="p-form__label">379 <div class="p-form__label is-disabled">
378 <p><strong>External DHCP</strong></p>380 <p>External DHCP</p>
379 </div>381 </div>
380 <div class="p-form__control">382 <div class="p-form__control">
381 <p>383 <p>
@@ -388,9 +390,9 @@
388 </div>390 </div>
389 </div>391 </div>
390 <div class="p-form__group" data-ng-if="vlanDetails.primaryRack">392 <div class="p-form__group" data-ng-if="vlanDetails.primaryRack">
391 <div class="p-form__label">393 <div class="p-form__label is-disabled">
392 <p>394 <p>
393 <strong>Primary controller</strong>395 Primary controller
394 <span class="p-tooltip p-tooltip--top-center">396 <span class="p-tooltip p-tooltip--top-center">
395 <i class="p-icon--help">Help:</i>397 <i class="p-icon--help">Help:</i>
396 <span class="p-tooltip__message" role="tooltip">The rack controller where DHCP service runs on.</span>398 <span class="p-tooltip__message" role="tooltip">The rack controller where DHCP service runs on.</span>
@@ -402,9 +404,9 @@
402 </div>404 </div>
403 </div>405 </div>
404 <div class="p-form__group" data-ng-if="vlanDetails.secondaryRack">406 <div class="p-form__group" data-ng-if="vlanDetails.secondaryRack">
405 <div class="p-form__label">407 <div class="p-form__label is-disabled">
406 <p>408 <p>
407 <strong>Secondary controller</strong>409 Secondary controller
408 <span class="p-tooltip p-tooltip--top-center">410 <span class="p-tooltip p-tooltip--top-center">
409 <i class="p-icon--help">Help:</i>411 <i class="p-icon--help">Help:</i>
410 <span class="p-tooltip__message" role="tooltip">The rack controller that will take over DHCP services if the primary fails.</span>412 <span class="p-tooltip__message" role="tooltip">The rack controller that will take over DHCP services if the primary fails.</span>
diff --git a/src/maasserver/static/partials/zone-details.html b/src/maasserver/static/partials/zone-details.html
index 2a81b5e..cb5d7e7 100644
--- a/src/maasserver/static/partials/zone-details.html
+++ b/src/maasserver/static/partials/zone-details.html
@@ -70,25 +70,19 @@
70 <div class="row form p-form--stacked" data-ng-if="editSummary != true">70 <div class="row form p-form--stacked" data-ng-if="editSummary != true">
71 <div class="col-6">71 <div class="col-6">
72 <div class="p-form__group">72 <div class="p-form__group">
73 <div class="p-form__label">73 <p class="p-form__label is-disabled">Name</p>
74 <p><strong>Name</strong></p>
75 </div>
76 <div class="p-form__control">74 <div class="p-form__control">
77 <p>{$ zone.name $}</p>75 <p>{$ zone.name $}</p>
78 </div>76 </div>
79 </div>77 </div>
80 <div class="p-form__group">78 <div class="p-form__group">
81 <div class="p-form__label">79 <p class="p-form__label is-disabled">Description</p>
82 <p><strong>Description</strong></p>
83 </div>
84 <div class="p-form__control">80 <div class="p-form__control">
85 <p>{$ zone.description $}</p>81 <p>{$ zone.description $}</p>
86 </div>82 </div>
87 </div>83 </div>
88 <div class="p-form__group">84 <div class="p-form__group">
89 <div class="p-form__label">85 <p class="p-form__label is-disabled">Machines</p>
90 <p><strong>Machines</strong></p>
91 </div>
92 <div class="p-form__control">86 <div class="p-form__control">
93 <p>{$ zone.machines_count $}</p>87 <p>{$ zone.machines_count $}</p>
94 </div>88 </div>
@@ -103,12 +97,12 @@
103 label-width="2" input-width="4" blur-on-enter="true"></maas-obj-field>97 label-width="2" input-width="4" blur-on-enter="true"></maas-obj-field>
104 <maas-obj-field type="textarea" key="description" label="Description" placeholder="Zone description"98 <maas-obj-field type="textarea" key="description" label="Description" placeholder="Zone description"
105 label-width="2" input-width="4" blur-on-enter="true"></maas-obj-field>99 label-width="2" input-width="4" blur-on-enter="true"></maas-obj-field>
106 <dl>100 <div class="p-form__group">
107 <dt class="col-2">Machines</dt>101 <p class="p-form__label is-disabled">Machines</p>
108 <dd class="col-4">102 <div class="p-form__control">
109 <a href="#/machines&query=zone:({$ zone.name $})">{$ zone.machines_count $}</a>103 <a href="#/machines&query=zone:({$ zone.name $})">{$ zone.machines_count $}</a>
110 </dd>104 </div>
111 </dl>105 </div>
112 </div>106 </div>
113 </div>107 </div>
114 <div class="row">108 <div class="row">
diff --git a/src/maasserver/static/scss/_patterns_forms.scss b/src/maasserver/static/scss/_patterns_forms.scss
index 812e66f..276b6d8 100644
--- a/src/maasserver/static/scss/_patterns_forms.scss
+++ b/src/maasserver/static/scss/_patterns_forms.scss
@@ -14,6 +14,20 @@
14 padding-right: $sp-x-large;14 padding-right: $sp-x-large;
15 }15 }
16 }16 }
17
18 .p-form__label {
19 color: $color-dark;
20
21 &.is-disabled {
22 color: $color-mid-dark;
23 }
24 }
25
26 maas-obj-form[disabled="disabled"] {
27 .p-form__label {
28 color: $color-mid-dark;
29 }
30 }
17}31}
1832
19@mixin maas-p-form-stacked {33@mixin maas-p-form-stacked {
diff --git a/src/maasserver/templates/maasserver/user_view.html b/src/maasserver/templates/maasserver/user_view.html
index 5028a4e..1d6cf98 100644
--- a/src/maasserver/templates/maasserver/user_view.html
+++ b/src/maasserver/templates/maasserver/user_view.html
@@ -11,19 +11,19 @@
11 <div class="row">11 <div class="row">
12 <div class="col-6">12 <div class="col-6">
13 <div class="p-form__group">13 <div class="p-form__group">
14 <p class="p-form__label col-2 tablet-col-2"><strong>Username</strong></p>14 <p class="p-form__label col-2 tablet-col-2">Username</p>
15 <div class="p-form__control col-4 tablet-col-3">15 <div class="p-form__control col-4 tablet-col-3">
16 <p>{{ view_user.username }}</p>16 <p>{{ view_user.username }}</p>
17 </div>17 </div>
18 </div>18 </div>
19 <div class="p-form__group">19 <div class="p-form__group">
20 <p class="p-form__label col-2 tablet-col-2"><strong>Full name</strong></p>20 <p class="p-form__label col-2 tablet-col-2">Full name</p>
21 <div class="p-form__control col-4 tablet-col-3">21 <div class="p-form__control col-4 tablet-col-3">
22 <p>{{ view_user.last_name }}</p>22 <p>{{ view_user.last_name }}</p>
23 </div>23 </div>
24 </div>24 </div>
25 <div class="p-form__group">25 <div class="p-form__group">
26 <p class="p-form__label col-2 tablet-col-2"><strong>Email address</strong></p>26 <p class="p-form__label col-2 tablet-col-2">Email address</p>
27 <div class="p-form__control col-4 tablet-col-3">27 <div class="p-form__control col-4 tablet-col-3">
28 <p>{{ view_user.email }}</p>28 <p>{{ view_user.email }}</p>
29 </div>29 </div>
@@ -31,14 +31,14 @@
31 </div>31 </div>
32 <div class="col-6">32 <div class="col-6">
33 <div class="p-form__group">33 <div class="p-form__group">
34 <p class="p-form__label col-2 tablet-col-2"><strong>MAAS Keys</strong></p>34 <p class="p-form__label col-2 tablet-col-2">MAAS Keys</p>
35 <div class="p-form__control col-4 tablet-col-3">35 <div class="p-form__control col-4 tablet-col-3">
36 <p>{{ user.userprofile.get_authorisation_tokens.count }}36 <p>{{ user.userprofile.get_authorisation_tokens.count }}
37 key{{ user.userprofile.get_authorisation_tokens.count|pluralize }}</p>37 key{{ user.userprofile.get_authorisation_tokens.count|pluralize }}</p>
38 </div>38 </div>
39 </div>39 </div>
40 <div class="p-form__group">40 <div class="p-form__group">
41 <p class="p-form__label col-2 tablet-col-2"><strong>MAAS Administrator</strong></p>41 <p class="p-form__label col-2 tablet-col-2">MAAS Administrator</p>
42 <div class="p-form__control col-4 tablet-col-3">42 <div class="p-form__control col-4 tablet-col-3">
43 <p>{{ view_user.is_superuser }}</p>43 <p>{{ view_user.is_superuser }}</p>
44 </div>44 </div>

Subscribers

People subscribed via source and target branches