Merge ~newell-jensen/maas:lp1683794-1524120 into maas:master

Proposed by Newell Jensen
Status: Merged
Approved by: Newell Jensen
Approved revision: 4ea3fd65855c16e42156fc51685a272ddd517583
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~newell-jensen/maas:lp1683794-1524120
Merge into: maas:master
Diff against target: 804 lines (+82/-82)
18 files modified
src/maasserver/static/partials/boot-images.html (+3/-3)
src/maasserver/static/partials/dashboard.html (+1/-1)
src/maasserver/static/partials/domain-details.html (+3/-3)
src/maasserver/static/partials/domains-list.html (+1/-1)
src/maasserver/static/partials/fabric-details.html (+4/-4)
src/maasserver/static/partials/ipranges.html (+3/-3)
src/maasserver/static/partials/networks-list.html (+4/-4)
src/maasserver/static/partials/node-details.html (+26/-26)
src/maasserver/static/partials/nodes-list.html (+7/-7)
src/maasserver/static/partials/pod-details.html (+2/-2)
src/maasserver/static/partials/pods-list.html (+2/-2)
src/maasserver/static/partials/settings.html (+6/-6)
src/maasserver/static/partials/space-details.html (+4/-4)
src/maasserver/static/partials/ssh-keys.html (+1/-1)
src/maasserver/static/partials/subnet-details.html (+7/-7)
src/maasserver/static/partials/vlan-details.html (+3/-3)
src/maasserver/static/partials/zone-details.html (+4/-4)
src/maasserver/static/partials/zones-list.html (+1/-1)
Reviewer Review Type Date Requested Status
Alberto Donato (community) Approve
MAAS Lander Needs Fixing
Review via email: mp+334628@code.launchpad.net

Commit message

LP: #1683794, #1524120 -- Do not allow the user to cancel input in the UI by hitting the <enter> key.

Description of the change

By adding type="button" to the button element in the html, it makes it so you cannot cancel by hitting the <enter> key. This good hint was taken from:

https://stackoverflow.com/questions/23955895/how-to-prevent-form-submit-on-enter-key-press-using-angular-js

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b lp1683794-1524120 lp:~newell-jensen/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/862/console
COMMIT: 8f61cecc8ea1a62fdf8bbcde465e04bba96bea61

review: Needs Fixing
Revision history for this message
Alberto Donato (ack) wrote :

LGTM +1

minimal comments inline

review: Approve
4ea3fd6... by Newell Jensen

Review fixes.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/maasserver/static/partials/boot-images.html b/src/maasserver/static/partials/boot-images.html
index 5506775..a88f5fe 100644
--- a/src/maasserver/static/partials/boot-images.html
+++ b/src/maasserver/static/partials/boot-images.html
@@ -161,7 +161,7 @@
161 <p><span class="icon icon--warning u-margin--right-small"></span>Are you sure you want to remove this image?</p>161 <p><span class="icon icon--warning u-margin--right-small"></span>Are you sure you want to remove this image?</p>
162 </div>162 </div>
163 <div class="table__data u-float--right">163 <div class="table__data u-float--right">
164 <button class="button--base button--inline" data-ng-click="deleteImage()">Cancel</button>164 <button class="button--base button--inline" type="button" data-ng-click="deleteImage()">Cancel</button>
165 <button class="button--destructive button--inline" data-ng-click="confirmDeleteImage()">Remove</button>165 <button class="button--destructive button--inline" data-ng-click="confirmDeleteImage()">Remove</button>
166 </div>166 </div>
167 </div>167 </div>
@@ -324,7 +324,7 @@
324 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this image?</p>324 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this image?</p>
325 </div>325 </div>
326 <div class="table__data u-float--right">326 <div class="table__data u-float--right">
327 <a class="button--base button--inline" data-ng-click="cancelRemove()">Cancel</a>327 <button class="button--base button--inline" type="button" data-ng-click="cancelRemove()">Cancel</a>
328 <button class="button--destructive button--inline" data-ng-click="confirmRemove(image)">Remove</button>328 <button class="button--destructive button--inline" data-ng-click="confirmRemove(image)">Remove</button>
329 </div>329 </div>
330 </div>330 </div>
@@ -384,7 +384,7 @@
384 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this image?</p>384 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this image?</p>
385 </div>385 </div>
386 <div class="table__data u-float--right">386 <div class="table__data u-float--right">
387 <a class="button--base button--inline" data-ng-click="cancelRemove()">Cancel</a>387 <button class="button--base button--inline" type="button" data-ng-click="cancelRemove()">Cancel</a>
388 <button class="button--destructive button--inline" data-ng-click="confirmRemove(image)">Remove</button>388 <button class="button--destructive button--inline" data-ng-click="confirmRemove(image)">Remove</button>
389 </div>389 </div>
390 </div>390 </div>
diff --git a/src/maasserver/static/partials/dashboard.html b/src/maasserver/static/partials/dashboard.html
index a34ce18..4b1876a 100644
--- a/src/maasserver/static/partials/dashboard.html
+++ b/src/maasserver/static/partials/dashboard.html
@@ -166,7 +166,7 @@
166 <maas-obj-errors></maas-obj-errors>166 <maas-obj-errors></maas-obj-errors>
167 </div>167 </div>
168 <div class="table__data u-float--right">168 <div class="table__data u-float--right">
169 <button class="button--base button--inline" data-ng-click="toggleSelected(selectedDevice)">Cancel</button>169 <button class="button--base button--inline" type="button" data-ng-click="toggleSelected(selectedDevice)">Cancel</button>
170 <button class="button--secondary button--inline"170 <button class="button--secondary button--inline"
171 data-ng-click="convertTo.goTo = true"171 data-ng-click="convertTo.goTo = true"
172 data-ng-if="!convertTo.$maasForm.getValue('parent')"172 data-ng-if="!convertTo.$maasForm.getValue('parent')"
diff --git a/src/maasserver/static/partials/domain-details.html b/src/maasserver/static/partials/domain-details.html
index 70c9938..3fde9eb 100644
--- a/src/maasserver/static/partials/domain-details.html
+++ b/src/maasserver/static/partials/domain-details.html
@@ -19,7 +19,7 @@
19 Domain cannot be deleted because it has resource records. Remove all resource records from the domain to allow deletion.19 Domain cannot be deleted because it has resource records. Remove all resource records from the domain to allow deletion.
20 </p>20 </p>
21 <div class="page-header__controls">21 <div class="page-header__controls">
22 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>22 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
23 </div>23 </div>
24 </div>24 </div>
25 <div class="page-header__section ng-hide" data-ng-show="canBeDeleted() && !error">25 <div class="page-header__section ng-hide" data-ng-show="canBeDeleted() && !error">
@@ -27,7 +27,7 @@
27 Are you sure you want to delete this domain?27 Are you sure you want to delete this domain?
28 </p>28 </p>
29 <div class="page-header__controls">29 <div class="page-header__controls">
30 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>30 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
31 <button class="button--destructive button--inline" data-ng-click="deleteConfirmButton()">Delete domain</button>31 <button class="button--destructive button--inline" data-ng-click="deleteConfirmButton()">Delete domain</button>
32 </div>32 </div>
33 </div>33 </div>
@@ -36,7 +36,7 @@
36 {$ error $}36 {$ error $}
37 </p>37 </p>
38 <div class="page-header__controls">38 <div class="page-header__controls">
39 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>39 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
40 <button class="button--secondary button--inline" data-ng-click="deleteConfirmButton()">Retry</button>40 <button class="button--secondary button--inline" data-ng-click="deleteConfirmButton()">Retry</button>
41 </div>41 </div>
42 </div>42 </div>
diff --git a/src/maasserver/static/partials/domains-list.html b/src/maasserver/static/partials/domains-list.html
index 4c6181a..7724157 100644
--- a/src/maasserver/static/partials/domains-list.html
+++ b/src/maasserver/static/partials/domains-list.html
@@ -29,7 +29,7 @@
29 </div>29 </div>
30 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>30 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>
31 <div class="page-header__controls">31 <div class="page-header__controls">
32 <button class="button--base button--inline" data-ng-click="cancel()">Cancel</button>32 <button class="button--base button--inline" type="button" data-ng-click="cancel()">Cancel</button>
33 <button class="button--secondary button--inline"33 <button class="button--secondary button--inline"
34 data-ng-class="{ disabled: domainHasError() }"34 data-ng-class="{ disabled: domainHasError() }"
35 data-ng-click="save(true)">Save and add another</button>35 data-ng-click="save(true)">Save and add another</button>
diff --git a/src/maasserver/static/partials/fabric-details.html b/src/maasserver/static/partials/fabric-details.html
index b71229b..66bf6e5 100644
--- a/src/maasserver/static/partials/fabric-details.html
+++ b/src/maasserver/static/partials/fabric-details.html
@@ -20,7 +20,7 @@
20 Fabric cannot be deleted because it is the default fabric.20 Fabric cannot be deleted because it is the default fabric.
21 </p>21 </p>
22 <div class="page-header__controls">22 <div class="page-header__controls">
23 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>23 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
24 </div>24 </div>
25 </section>25 </section>
26 <section class="page-header__section ng-hide" data-ng-show="canBeDeleted() && !error">26 <section class="page-header__section ng-hide" data-ng-show="canBeDeleted() && !error">
@@ -28,14 +28,14 @@
28 Are you sure you want to delete this fabric?28 Are you sure you want to delete this fabric?
29 </p>29 </p>
30 <div class="page-header__controls">30 <div class="page-header__controls">
31 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>31 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
32 <button class="button--destructive button--inline" data-ng-click="deleteConfirmButton()">Delete fabric</button>32 <button class="button--destructive button--inline" data-ng-click="deleteConfirmButton()">Delete fabric</button>
33 </div>33 </div>
34 </section>34 </section>
35 <section class="page-header__section ng-hide" data-ng-show="canBeDeleted() && error">35 <section class="page-header__section ng-hide" data-ng-show="canBeDeleted() && error">
36 <p class="page-header__message page-header__message--error">{$ error $}</p>36 <p class="page-header__message page-header__message--error">{$ error $}</p>
37 <div class="page-header__controls">37 <div class="page-header__controls">
38 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>38 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
39 <button class="button--secondary button--inline" data-ng-click="deleteConfirmButton()">Retry</button>39 <button class="button--secondary button--inline" data-ng-click="deleteConfirmButton()">Retry</button>
40 </div>40 </div>
41 </section>41 </section>
@@ -83,7 +83,7 @@
83 </dl>83 </dl>
84 </fieldset>84 </fieldset>
85 <div class="twelve-col u-align--right">85 <div class="twelve-col u-align--right">
86 <button class="button--base button--inline"86 <button class="button--base button--inline" type="button"
87 data-ng-click="exitEditSummary()">Cancel</button>87 data-ng-click="exitEditSummary()">Cancel</button>
88 <button class="button--positive button--inline" maas-obj-save>Save summary</button>88 <button class="button--positive button--inline" maas-obj-save>Save summary</button>
89 </div>89 </div>
diff --git a/src/maasserver/static/partials/ipranges.html b/src/maasserver/static/partials/ipranges.html
index 8f73e60..3cdd4d5 100755
--- a/src/maasserver/static/partials/ipranges.html
+++ b/src/maasserver/static/partials/ipranges.html
@@ -34,7 +34,7 @@
34 <p><span class="icon icon--warning u-margin--right-small"></span>Ensure all in-use IP addresses are registered in MAAS before releasing this range to avoid potential collisions. Are you sure you want to remove this IP range?</p>34 <p><span class="icon icon--warning u-margin--right-small"></span>Ensure all in-use IP addresses are registered in MAAS before releasing this range to avoid potential collisions. Are you sure you want to remove this IP range?</p>
35 </div>35 </div>
36 <div class="table__data u-float--right">36 <div class="table__data u-float--right">
37 <button class="button--base button--inline" data-ng-click="ipRangeCancelDelete()">Cancel</button>37 <button class="button--base button--inline" type="button" data-ng-click="ipRangeCancelDelete()">Cancel</button>
38 <button class="button--destructive button--inline" data-ng-click="ipRangeConfirmDelete()">Remove</button>38 <button class="button--destructive button--inline" data-ng-click="ipRangeConfirmDelete()">Remove</button>
39 </div>39 </div>
40 </div>40 </div>
@@ -70,7 +70,7 @@
70 <maas-obj-errors></maas-obj-errors>70 <maas-obj-errors></maas-obj-errors>
71 </div>71 </div>
72 <div class="table__data u-float--right">72 <div class="table__data u-float--right">
73 <button class="button--base button--inline" data-ng-click="ipRangeToggleEditMode(iprange)">Cancel</button>73 <button class="button--base button--inline" type="button" data-ng-click="ipRangeToggleEditMode(iprange)">Cancel</button>
74 <button class="button--positive button--inline" maas-obj-save>Save</button>74 <button class="button--positive button--inline" maas-obj-save>Save</button>
75 </div>75 </div>
76 </div>76 </div>
@@ -112,7 +112,7 @@
112 <maas-obj-errors></maas-obj-errors>112 <maas-obj-errors></maas-obj-errors>
113 </div>113 </div>
114 <div class="table__data u-float--right">114 <div class="table__data u-float--right">
115 <button class="button--base button--inline" data-ng-click="cancelAddRange()">Cancel</button>115 <button class="button--base button--inline" type="button" data-ng-click="cancelAddRange()">Cancel</button>
116 <button class="button--positive button--inline" maas-obj-save>Reserve</button>116 <button class="button--positive button--inline" maas-obj-save>Reserve</button>
117 </div>117 </div>
118 </div>118 </div>
diff --git a/src/maasserver/static/partials/networks-list.html b/src/maasserver/static/partials/networks-list.html
index a68283f..49dfe80 100644
--- a/src/maasserver/static/partials/networks-list.html
+++ b/src/maasserver/static/partials/networks-list.html
@@ -23,7 +23,7 @@
23 <maas-obj-errors></maas-obj-errors>23 <maas-obj-errors></maas-obj-errors>
24 </fieldset>24 </fieldset>
25 <div class="page-header__controls">25 <div class="page-header__controls">
26 <button class="button--base button--inline" data-ng-click="cancelAction()">Cancel</button>26 <button class="button--base button--inline" type="button" data-ng-click="cancelAction()">Cancel</button>
27 <button class="button--positive button--inline" maas-obj-save>Add fabric</button>27 <button class="button--positive button--inline" maas-obj-save>Add fabric</button>
28 </div>28 </div>
29 </maas-obj-form>29 </maas-obj-form>
@@ -49,7 +49,7 @@
49 <maas-obj-errors></maas-obj-errors>49 <maas-obj-errors></maas-obj-errors>
50 </fieldset>50 </fieldset>
51 <div class="page-header__controls">51 <div class="page-header__controls">
52 <button class="button--base button--inline" data-ng-click="cancelAction()">Cancel</button>52 <button class="button--base button--inline" type="button" data-ng-click="cancelAction()">Cancel</button>
53 <button class="button--positive button--inline" maas-obj-save>Add VLAN</button>53 <button class="button--positive button--inline" maas-obj-save>Add VLAN</button>
54 </div>54 </div>
55 </maas-obj-form>55 </maas-obj-form>
@@ -64,7 +64,7 @@
64 <maas-obj-errors></maas-obj-errors>64 <maas-obj-errors></maas-obj-errors>
65 </fieldset>65 </fieldset>
66 <div class="page-header__controls">66 <div class="page-header__controls">
67 <button class="button--base button--inline" data-ng-click="cancelAction()">Cancel</button>67 <button class="button--base button--inline" type="button" data-ng-click="cancelAction()">Cancel</button>
68 <button class="button--positive button--inline" maas-obj-save>Add space</button>68 <button class="button--positive button--inline" maas-obj-save>Add space</button>
69 </div>69 </div>
70 </maas-obj-form>70 </maas-obj-form>
@@ -101,7 +101,7 @@
101 <section class="page-header__section twelve-col u-margin--bottom-none">101 <section class="page-header__section twelve-col u-margin--bottom-none">
102 <maas-obj-errors class="page-header__message page-header__message--error"></maas-obj-errors>102 <maas-obj-errors class="page-header__message page-header__message--error"></maas-obj-errors>
103 <div class="page-header__controls">103 <div class="page-header__controls">
104 <button class="button--base button--inline" data-ng-click="cancelAction()">Cancel</button>104 <button class="button--base button--inline" type="button" data-ng-click="cancelAction()">Cancel</button>
105 <button class="button--positive button--inline" maas-obj-save>Add subnet</button>105 <button class="button--positive button--inline" maas-obj-save>Add subnet</button>
106 </div>106 </div>
107 </section>107 </section>
diff --git a/src/maasserver/static/partials/node-details.html b/src/maasserver/static/partials/node-details.html
index 3741be9..7bfc38a 100755
--- a/src/maasserver/static/partials/node-details.html
+++ b/src/maasserver/static/partials/node-details.html
@@ -23,7 +23,7 @@
23 data-ng-options="domain as domain.name for domain in header.domain.options">23 data-ng-options="domain as domain.name for domain in header.domain.options">
24 </select>24 </select>
25 </h1>25 </h1>
26 <button class="button--base button--inline u-margin--bottom-small ng-hide"26 <button class="button--base button--inline u-margin--bottom-small ng-hide" type="button"
27 data-ng-show="header.editing || header.editing_domain"27 data-ng-show="header.editing || header.editing_domain"
28 data-ng-click="cancelEditHeader()">Cancel</button>28 data-ng-click="cancelEditHeader()">Cancel</button>
29 <button class="button--positive button--inline u-margin--bottom-small ng-hide"29 <button class="button--positive button--inline u-margin--bottom-small ng-hide"
@@ -86,7 +86,7 @@
86 </div>86 </div>
87 </fieldset>87 </fieldset>
88 <div class="page-header__controls" data-ng-if="action.option.name !== 'commission' && action.option.name !== 'test'">88 <div class="page-header__controls" data-ng-if="action.option.name !== 'commission' && action.option.name !== 'test'">
89 <button class="button--base button--inline" data-ng-click="actionCancel()">Cancel</button>89 <button class="button--base button--inline" type="button" data-ng-click="actionCancel()">Cancel</button>
90 <button class="button--inline" data-ng-class="action.option.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo('nodes')" data-ng-hide="hasActionsFailed('nodes')">90 <button class="button--inline" data-ng-class="action.option.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo('nodes')" data-ng-hide="hasActionsFailed('nodes')">
91 <span data-ng-if="action.option.name === 'acquire'">Acquire {$ type_name $}</span>91 <span data-ng-if="action.option.name === 'acquire'">Acquire {$ type_name $}</span>
92 <span data-ng-if="action.option.name === 'deploy'">Deploy {$ type_name $}</span>92 <span data-ng-if="action.option.name === 'deploy'">Deploy {$ type_name $}</span>
@@ -131,7 +131,7 @@
131 <div class="page-header__section twelve-col u-margin--bottom-none" data-ng-hide="isActionError() || isDeployError() || isSSHKeyError() || hasActionPowerError(action.option.name)" data-ng-if="action.option.name === 'commission' || action.option.name === 'test'">131 <div class="page-header__section twelve-col u-margin--bottom-none" data-ng-hide="isActionError() || isDeployError() || isSSHKeyError() || hasActionPowerError(action.option.name)" data-ng-if="action.option.name === 'commission' || action.option.name === 'test'">
132 <form class="form form--inline">132 <form class="form form--inline">
133 <div class="page-header__controls">133 <div class="page-header__controls">
134 <button class="button--base button--inline" data-ng-click="actionCancel()">Cancel</button>134 <button class="button--base button--inline" type="button" data-ng-click="actionCancel()">Cancel</button>
135 <button class="button--inline" data-ng-class="action.option.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo('nodes')" data-ng-hide="hasActionsFailed('nodes')">135 <button class="button--inline" data-ng-class="action.option.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo('nodes')" data-ng-hide="hasActionsFailed('nodes')">
136 <span data-ng-if="action.option.name === 'commission'">Commission {$ type_name $}</span>136 <span data-ng-if="action.option.name === 'commission'">Commission {$ type_name $}</span>
137 <span data-ng-if="action.option.name === 'test'">Test {$ type_name $}</span>137 <span data-ng-if="action.option.name === 'test'">Test {$ type_name $}</span>
@@ -146,7 +146,7 @@
146 Node failed to be {$ action.option.sentence $}, because of the following error: {$ action.error $}146 Node failed to be {$ action.option.sentence $}, because of the following error: {$ action.error $}
147 </p>147 </p>
148 <div class="page-header__controls">148 <div class="page-header__controls">
149 <button class="button--base button--inline" data-ng-click="actionCancel()">Cancel</button>149 <button class="button--base button--inline" type="button" data-ng-click="actionCancel()">Cancel</button>
150 <button class="button--secondary button--inline" data-ng-click="actionGo()">Retry</button>150 <button class="button--secondary button--inline" data-ng-click="actionGo()">Retry</button>
151 </div>151 </div>
152 </div>152 </div>
@@ -157,7 +157,7 @@
157 Node cannot be {$ action.option.sentence $}, because the required boot images have not been imported. To import boot images, visit the <a href="images/">images page</a>.157 Node cannot be {$ action.option.sentence $}, because the required boot images have not been imported. To import boot images, visit the <a href="images/">images page</a>.
158 </p>158 </p>
159 <div class="page-header__controls">159 <div class="page-header__controls">
160 <button class="button--base button--inline" data-ng-click="actionCancel()">Cancel</button>160 <button class="button--base button--inline" type="button" data-ng-click="actionCancel()">Cancel</button>
161 </div>161 </div>
162 </div>162 </div>
163163
@@ -168,7 +168,7 @@
168 {$ getPowerErrors() $} on the rack controller.168 {$ getPowerErrors() $} on the rack controller.
169 </p>169 </p>
170 <div class="page-header__controls">170 <div class="page-header__controls">
171 <button class="button--base button--inline" data-ng-click="actionCancel()">Cancel</button>171 <button class="button--base button--inline" type="button" data-ng-click="actionCancel()">Cancel</button>
172 </div>172 </div>
173 </div>173 </div>
174174
@@ -177,7 +177,7 @@
177 Node cannot be {$ action.option.sentence $}, because an SSH key has not been added to your account. To add an SSH key, visit <a href="account/prefs/">your account page</a>.177 Node cannot be {$ action.option.sentence $}, because an SSH key has not been added to your account. To add an SSH key, visit <a href="account/prefs/">your account page</a>.
178 </p>178 </p>
179 <div class="page-header__controls">179 <div class="page-header__controls">
180 <button class="button--base button--inline" data-ng-click="actionCancel()">Cancel</button>180 <button class="button--base button--inline" type="button" data-ng-click="actionCancel()">Cancel</button>
181 </div>181 </div>
182 </div>182 </div>
183 </div>183 </div>
@@ -443,7 +443,7 @@
443 </div>443 </div>
444 </fieldset>444 </fieldset>
445 <div class="twelve-col u-align--right" data-ng-if="summary.editing">445 <div class="twelve-col u-align--right" data-ng-if="summary.editing">
446 <button class="button--base button--inline"446 <button class="button--base button--inline" type="button"
447 data-ng-click="cancelEditSummary()">Cancel</button>447 data-ng-click="cancelEditSummary()">Cancel</button>
448 <button class="button--positive button--inline"448 <button class="button--positive button--inline"
449 data-ng-class="{ secondary: invalidArchitecture() }"449 data-ng-class="{ secondary: invalidArchitecture() }"
@@ -508,7 +508,7 @@
508 data-ng-model="power">508 data-ng-model="power">
509 </fieldset>509 </fieldset>
510 <div class="twelve-col u-align--right ng-hide" data-ng-show="power.editing">510 <div class="twelve-col u-align--right ng-hide" data-ng-show="power.editing">
511 <button class="button--base button--inline"511 <button class="button--base button--inline" type="button"
512 data-ng-click="cancelEditPower()">Cancel</button>512 data-ng-click="cancelEditPower()">Cancel</button>
513 <button class="button--positive button--inline"513 <button class="button--positive button--inline"
514 data-ng-class="{ secondary: invalidPowerType() }"514 data-ng-class="{ secondary: invalidPowerType() }"
@@ -970,7 +970,7 @@
970 <maas-obj-errors></maas-obj-errors>970 <maas-obj-errors></maas-obj-errors>
971 </div>971 </div>
972 <div class="table__data u-float--right">972 <div class="table__data u-float--right">
973 <button class="button--base button--inline"973 <button class="button--base button--inline" type="button"
974 data-ng-click="editCancel()">Cancel</button>974 data-ng-click="editCancel()">Cancel</button>
975 <button class="button--positive button--inline"975 <button class="button--positive button--inline"
976 data-ng-disabled="(!isDevice && isInterfaceNameInvalid(editInterface)) || isIPAddressInvalid(editInterface) || isMACAddressInvalid(editInterface.mac_address, true)"976 data-ng-disabled="(!isDevice && isInterfaceNameInvalid(editInterface)) || isIPAddressInvalid(editInterface) || isMACAddressInvalid(editInterface.mac_address, true)"
@@ -984,7 +984,7 @@
984 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this {$ getRemoveTypeText(interface) $}?</p>984 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this {$ getRemoveTypeText(interface) $}?</p>
985 </div>985 </div>
986 <div class="table__data u-float--right">986 <div class="table__data u-float--right">
987 <button class="button--base button--inline" data-ng-click="cancel()">Cancel</button>987 <button class="button--base button--inline" type="button" data-ng-click="cancel()">Cancel</button>
988 <button class="button--destructive button--inline" data-ng-click="confirmRemove(interface)">Remove</button>988 <button class="button--destructive button--inline" data-ng-click="confirmRemove(interface)">Remove</button>
989 </div>989 </div>
990 </div>990 </div>
@@ -998,7 +998,7 @@
998 data-ng-show="canAddAnotherVLAN(interface)">Add <span data-ng-show="newInterface.type === 'vlan'">another </span>VLAN</button>998 data-ng-show="canAddAnotherVLAN(interface)">Add <span data-ng-show="newInterface.type === 'vlan'">another </span>VLAN</button>
999 </div>999 </div>
1000 <div class="table__data u-float--right">1000 <div class="table__data u-float--right">
1001 <button class="button--base button--inline" data-ng-click="cancel()">Cancel</button>1001 <button class="button--base button--inline" type="button" data-ng-click="cancel()">Cancel</button>
1002 <button class="button--positive button--inline" data-ng-click="addInterface()">Add</button>1002 <button class="button--positive button--inline" data-ng-click="addInterface()">Add</button>
1003 </div>1003 </div>
1004 </div>1004 </div>
@@ -1098,7 +1098,7 @@
1098 </div>1098 </div>
1099 <div class="table__row is-active">1099 <div class="table__row is-active">
1100 <div class="table__data u-float--right">1100 <div class="table__data u-float--right">
1101 <button class="button--base button--inline" data-ng-click="cancel()">Cancel</button>1101 <button class="button--base button--inline" type="button" data-ng-click="cancel()">Cancel</button>
1102 <button class="button--positive button--inline"1102 <button class="button--positive button--inline"
1103 data-ng-click="addBond()"1103 data-ng-click="addBond()"
1104 data-ng-disabled="cannotAddBond()">Save</button>1104 data-ng-disabled="cannotAddBond()">Save</button>
@@ -1182,7 +1182,7 @@
1182 </div>1182 </div>
1183 <div class="table__row is-active">1183 <div class="table__row is-active">
1184 <div class="table__data u-float--right">1184 <div class="table__data u-float--right">
1185 <button class="button--base button--inline" data-ng-click="cancel()">Cancel</button>1185 <button class="button--base button--inline" type="button" data-ng-click="cancel()">Cancel</button>
1186 <button class="button--positive button--inline"1186 <button class="button--positive button--inline"
1187 data-ng-click="addBridge()"1187 data-ng-click="addBridge()"
1188 data-ng-disabled="cannotAddBridge()">Save</button>1188 data-ng-disabled="cannotAddBridge()">Save</button>
@@ -1334,7 +1334,7 @@
1334 <span class="icon icon--error u-margin--right-small"></span>{$ newInterface.errorMsg $}1334 <span class="icon icon--error u-margin--right-small"></span>{$ newInterface.errorMsg $}
1335 </div>1335 </div>
1336 <div class="table__data u-float--right">1336 <div class="table__data u-float--right">
1337 <button class="button--base button--inline" data-ng-click="cancel()">Cancel</button>1337 <button class="button--base button--inline" type="button" data-ng-click="cancel()">Cancel</button>
1338 <button class="button--positive button--inline"1338 <button class="button--positive button--inline"
1339 data-ng-click="addPhysicalInterface()"1339 data-ng-click="addPhysicalInterface()"
1340 data-ng-disabled="cannotAddPhysicalInterface()">Save</button>1340 data-ng-disabled="cannotAddPhysicalInterface()">Save</button>
@@ -1438,7 +1438,7 @@
1438 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to unmount this filesystem?</p>1438 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to unmount this filesystem?</p>
1439 </div>1439 </div>
1440 <div class="table__data u-float--right">1440 <div class="table__data u-float--right">
1441 <button class="button--base button--inline" data-ng-click="filesystemCancel()">Cancel</button>1441 <button class="button--base button--inline" type="button" data-ng-click="filesystemCancel()">Cancel</button>
1442 <button class="button--secondary button--inline" data-ng-click="filesystemConfirmUnmount(filesystem)">Unmount</button>1442 <button class="button--secondary button--inline" data-ng-click="filesystemConfirmUnmount(filesystem)">Unmount</button>
1443 </div>1443 </div>
1444 </div>1444 </div>
@@ -1447,7 +1447,7 @@
1447 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this {$ getRemoveTypeText(filesystem) $}?</p>1447 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this {$ getRemoveTypeText(filesystem) $}?</p>
1448 </div>1448 </div>
1449 <div class="table__data u-float--right">1449 <div class="table__data u-float--right">
1450 <button class="button--base button--inline" data-ng-click="filesystemCancel(filesystem)">Cancel</button>1450 <button class="button--base button--inline" type="button" data-ng-click="filesystemCancel(filesystem)">Cancel</button>
1451 <button class="button--destructive button--inline" data-ng-click="filesystemConfirmDelete(filesystem)">Remove</button>1451 <button class="button--destructive button--inline" data-ng-click="filesystemConfirmDelete(filesystem)">Remove</button>
1452 </div>1452 </div>
1453 </div>1453 </div>
@@ -1497,7 +1497,7 @@
1497 </div>1497 </div>
1498 <div class="table__row is-active">1498 <div class="table__row is-active">
1499 <div class="table__data u-float--right">1499 <div class="table__data u-float--right">
1500 <button class="button--base button--inline"1500 <button class="button--base button--inline" type="button"
1501 data-ng-click="cancel()">Cancel</button>1501 data-ng-click="cancel()">Cancel</button>
1502 <button class="button--secondary button--inline ng-binding"1502 <button class="button--secondary button--inline ng-binding"
1503 data-ng-disabled="!canMount()"1503 data-ng-disabled="!canMount()"
@@ -1567,7 +1567,7 @@
1567 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to delete this cache set?</p>1567 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to delete this cache set?</p>
1568 </div>1568 </div>
1569 <div class="table__data u-float--right">1569 <div class="table__data u-float--right">
1570 <button class="button--base button--inline" data-ng-click="cacheSetCancel()">Cancel</button>1570 <button class="button--base button--inline" type="button" data-ng-click="cacheSetCancel()">Cancel</button>
1571 <button class="button--destructive button--inline" data-ng-click="cacheSetConfirmDelete(cacheset)">Remove</button>1571 <button class="button--destructive button--inline" data-ng-click="cacheSetConfirmDelete(cacheset)">Remove</button>
1572 </div>1572 </div>
1573 </div>1573 </div>
@@ -1943,7 +1943,7 @@
1943 data-ng-class="{ 'is-active': availableMode !== null && activeMode !== 'multi' }">1943 data-ng-class="{ 'is-active': availableMode !== null && activeMode !== 'multi' }">
1944 <div data-ng-if="availableMode === 'edit'">1944 <div data-ng-if="availableMode === 'edit'">
1945 <div class="table__data u-float--right">1945 <div class="table__data u-float--right">
1946 <button class="button--base button--inline" data-ng-click="availableCancel(item)">Cancel</button>1946 <button class="button--base button--inline" type="button" data-ng-click="availableCancel(item)">Cancel</button>
1947 <button class="button--positive button--inline"1947 <button class="button--positive button--inline"
1948 data-ng-disabled="isMountPointInvalid(item.$options.mountPoint) || isNameInvalid(item)"1948 data-ng-disabled="isMountPointInvalid(item.$options.mountPoint) || isNameInvalid(item)"
1949 data-ng-click="availableConfirmEdit(item)">Save</button>1949 data-ng-click="availableConfirmEdit(item)">Save</button>
@@ -1954,13 +1954,13 @@
1954 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this {$ getRemoveTypeText(item) $}?</p>1954 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this {$ getRemoveTypeText(item) $}?</p>
1955 </div>1955 </div>
1956 <div class="table__data u-float--right">1956 <div class="table__data u-float--right">
1957 <button class="button--base button--inline" data-ng-click="availableCancel(item)">Cancel</button>1957 <button class="button--base button--inline" type="button" data-ng-click="availableCancel(item)">Cancel</button>
1958 <button class="button--destructive button--inline" data-ng-click="availableConfirmDelete(item)">Remove</button>1958 <button class="button--destructive button--inline" data-ng-click="availableConfirmDelete(item)">Remove</button>
1959 </div>1959 </div>
1960 </div>1960 </div>
1961 <div data-ng-if="availableMode === 'partition'">1961 <div data-ng-if="availableMode === 'partition'">
1962 <div class="table__data u-float--right">1962 <div class="table__data u-float--right">
1963 <button class="button--base button--inline" data-ng-click="availableCancel(item)">Cancel</button>1963 <button class="button--base button--inline" type="button" data-ng-click="availableCancel(item)">Cancel</button>
1964 <button class="button--positive button--inline"1964 <button class="button--positive button--inline"
1965 data-ng-disabled="isAddPartitionSizeInvalid(item) || isMountPointInvalid(item.$options.mountPoint)"1965 data-ng-disabled="isAddPartitionSizeInvalid(item) || isMountPointInvalid(item.$options.mountPoint)"
1966 data-ng-click="availableConfirmPartition(item)">Add partition</button>1966 data-ng-click="availableConfirmPartition(item)">Add partition</button>
@@ -1968,7 +1968,7 @@
1968 </div>1968 </div>
1969 <div data-ng-if="availableMode === 'logical-volume'">1969 <div data-ng-if="availableMode === 'logical-volume'">
1970 <div class="table__data u-float--right">1970 <div class="table__data u-float--right">
1971 <button class="button--base button--inline" data-ng-click="availableCancel(item)">Cancel</button>1971 <button class="button--base button--inline" type="button" data-ng-click="availableCancel(item)">Cancel</button>
1972 <button class="button--positive button--inline"1972 <button class="button--positive button--inline"
1973 data-ng-disabled="isLogicalVolumeNameInvalid(item) || isAddLogicalVolumeSizeInvalid(item) || isMountPointInvalid(item.$options.mountPoint)"1973 data-ng-disabled="isLogicalVolumeNameInvalid(item) || isAddLogicalVolumeSizeInvalid(item) || isMountPointInvalid(item.$options.mountPoint)"
1974 data-ng-click="availableConfirmLogicalVolume(item)">Add logical volume</button>1974 data-ng-click="availableConfirmLogicalVolume(item)">Add logical volume</button>
@@ -2080,7 +2080,7 @@
2080 </div>2080 </div>
2081 <div class="table__row is-active">2081 <div class="table__row is-active">
2082 <div class="table__data u-float--right">2082 <div class="table__data u-float--right">
2083 <button class="button--base button--inline"2083 <button class="button--base button--inline" type="button"
2084 data-ng-click="availableCancel()">Cancel</button>2084 data-ng-click="availableCancel()">Cancel</button>
2085 <button class="button--positive button--inline"2085 <button class="button--positive button--inline"
2086 data-ng-disabled="!createBcacheCanSave()"2086 data-ng-disabled="!createBcacheCanSave()"
@@ -2197,7 +2197,7 @@
2197 </div>2197 </div>
2198 <div class="table__row is-active">2198 <div class="table__row is-active">
2199 <div class="table__data u-float--right">2199 <div class="table__data u-float--right">
2200 <button class="button--base button--inline"2200 <button class="button--base button--inline" type="button"
2201 data-ng-click="availableCancel()">Cancel</button>2201 data-ng-click="availableCancel()">Cancel</button>
2202 <button class="button--positive button--inline"2202 <button class="button--positive button--inline"
2203 data-ng-disabled="!createRAIDCanSave()"2203 data-ng-disabled="!createRAIDCanSave()"
@@ -2259,7 +2259,7 @@
2259 </div>2259 </div>
2260 <div class="table__row is-active">2260 <div class="table__row is-active">
2261 <div class="table__data u-float--right">2261 <div class="table__data u-float--right">
2262 <button class="button--base button--inline"2262 <button class="button--base button--inline" type="button"
2263 data-ng-click="availableCancel()">Cancel</button>2263 data-ng-click="availableCancel()">Cancel</button>
2264 <button class="button--positive button--inline"2264 <button class="button--positive button--inline"
2265 data-ng-disabled="!createVolumeGroupCanSave()"2265 data-ng-disabled="!createVolumeGroupCanSave()"
diff --git a/src/maasserver/static/partials/nodes-list.html b/src/maasserver/static/partials/nodes-list.html
index a817cf3..004d153 100644
--- a/src/maasserver/static/partials/nodes-list.html
+++ b/src/maasserver/static/partials/nodes-list.html
@@ -121,7 +121,7 @@
121 </fieldset>121 </fieldset>
122 </form>122 </form>
123 <div class="page-header__controls" data-ng-if="tabs[tab].actionOption.name !== 'commission' && tabs[tab].actionOption.name !== 'test'">123 <div class="page-header__controls" data-ng-if="tabs[tab].actionOption.name !== 'commission' && tabs[tab].actionOption.name !== 'test'">
124 <button class="button--base button--inline" data-ng-click="actionCancel(tab)">Cancel</button>124 <button class="button--base button--inline" type="button" data-ng-click="actionCancel(tab)">Cancel</button>
125 <button class="button--inline" data-ng-class="tabs[tab].actionOption.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo(tab)" data-ng-hide="hasActionsFailed(tab)">125 <button class="button--inline" data-ng-class="tabs[tab].actionOption.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo(tab)" data-ng-hide="hasActionsFailed(tab)">
126 <span data-ng-if="tabs[tab].actionOption.name === 'acquire'">Acquire {$ tabs[tab].selectedItems.length $}126 <span data-ng-if="tabs[tab].actionOption.name === 'acquire'">Acquire {$ tabs[tab].selectedItems.length $}
127 <span data-ng-pluralize count="tabs[tab].selectedItems.length" when="{'one': 'machine', 'other': 'machines'}"></span>127 <span data-ng-pluralize count="tabs[tab].selectedItems.length" when="{'one': 'machine', 'other': 'machines'}"></span>
@@ -194,7 +194,7 @@
194 </section>194 </section>
195 <section class="page-header__section twelve-col u-margin--bottom-none" data-ng-hide="isActionError(tab) || hasActionsInProgress(tab)" data-ng-if="tabs[tab].actionOption.name === 'commission' || tabs[tab].actionOption.name === 'test'">195 <section class="page-header__section twelve-col u-margin--bottom-none" data-ng-hide="isActionError(tab) || hasActionsInProgress(tab)" data-ng-if="tabs[tab].actionOption.name === 'commission' || tabs[tab].actionOption.name === 'test'">
196 <div class="page-header__controls">196 <div class="page-header__controls">
197 <button class="button--base button--inline" data-ng-click="actionCancel(tab)">Cancel</button>197 <button class="button--base button--inline" type="button" data-ng-click="actionCancel(tab)">Cancel</button>
198 <button class="button--inline" data-ng-class="tabs[tab].actionOption.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo(tab)" data-ng-hide="hasActionsFailed(tab)">198 <button class="button--inline" data-ng-class="tabs[tab].actionOption.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo(tab)" data-ng-hide="hasActionsFailed(tab)">
199 <span data-ng-if="tabs[tab].actionOption.name === 'commission'">Commission {$ tabs[tab].selectedItems.length $}199 <span data-ng-if="tabs[tab].actionOption.name === 'commission'">Commission {$ tabs[tab].selectedItems.length $}
200 <span data-ng-pluralize count="tabs[tab].selectedItems.length" when="{'one': 'machine', 'other': 'machines'}"></span>200 <span data-ng-pluralize count="tabs[tab].selectedItems.length" when="{'one': 'machine', 'other': 'machines'}"></span>
@@ -347,7 +347,7 @@
347 <section class="page-header__section twelve-col u-margin--bottom-none" data-ng-show="showMachine()">347 <section class="page-header__section twelve-col u-margin--bottom-none" data-ng-show="showMachine()">
348 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>348 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>
349 <div class="page-header__controls">349 <div class="page-header__controls">
350 <button class="button--base button--inline" data-ng-click="cancel()">Cancel</button>350 <button class="button--base button--inline" type="button" data-ng-click="cancel()">Cancel</button>
351 <button class="button--secondary button--inline"351 <button class="button--secondary button--inline"
352 data-ng-disabled="machineHasError()"352 data-ng-disabled="machineHasError()"
353 data-ng-click="saveMachine(true)">Save and add another</button>353 data-ng-click="saveMachine(true)">Save and add another</button>
@@ -361,7 +361,7 @@
361 <section class="page-header__section twelve-col u-margin--bottom-none ng-hide" data-ng-show="showChassis()">361 <section class="page-header__section twelve-col u-margin--bottom-none ng-hide" data-ng-show="showChassis()">
362 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>362 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>
363 <div class="page-header__controls">363 <div class="page-header__controls">
364 <button class="button--base button--inline" data-ng-click="cancel()">Cancel</button>364 <button class="button--base button--inline" type="button" data-ng-click="cancel()">Cancel</button>
365 <button class="button--secondary button--inline"365 <button class="button--secondary button--inline"
366 data-ng-disabled="chassisHasErrors()"366 data-ng-disabled="chassisHasErrors()"
367 data-ng-click="saveChassis(true)">Save and add another</button>367 data-ng-click="saveChassis(true)">Save and add another</button>
@@ -521,7 +521,7 @@
521 <form class="form form--inline">521 <form class="form form--inline">
522 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>522 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>
523 <div class="page-header__controls">523 <div class="page-header__controls">
524 <button class="button--base button--inline" data-ng-click="cancel()">Cancel</button>524 <button class="button--base button--inline" type="button" data-ng-click="cancel()">Cancel</button>
525 <button class="button--secondary button--inline"525 <button class="button--secondary button--inline"
526 data-ng-class="{ disabled: deviceHasError() }"526 data-ng-class="{ disabled: deviceHasError() }"
527 data-ng-click="save(true)">Save and add another</button>527 data-ng-click="save(true)">Save and add another</button>
@@ -560,7 +560,7 @@
560 </fieldset>560 </fieldset>
561 </form>561 </form>
562 <div class="page-header__controls" data-ng-if="tabs.controllers.actionOption.name !== 'test'">562 <div class="page-header__controls" data-ng-if="tabs.controllers.actionOption.name !== 'test'">
563 <button class="button--base button--inline" data-ng-click="actionCancel('controllers')">Cancel</button>563 <button class="button--base button--inline" type="button" data-ng-click="actionCancel('controllers')">Cancel</button>
564 <button class="button--positive button--inline" data-ng-click="actionGo('controllers')">564 <button class="button--positive button--inline" data-ng-click="actionGo('controllers')">
565 <span data-ng-if="tabs.controllers.actionOption.name === 'set-zone'">Set zone for {$ tabs.controllers.selectedItems.length $}565 <span data-ng-if="tabs.controllers.actionOption.name === 'set-zone'">Set zone for {$ tabs.controllers.selectedItems.length $}
566 <span data-ng-pluralize count="tabs.controllers.selectedItems.length" when="{'one': 'controller', 'other': 'controllers'}"></span>566 <span data-ng-pluralize count="tabs.controllers.selectedItems.length" when="{'one': 'controller', 'other': 'controllers'}"></span>
@@ -592,7 +592,7 @@
592 </div>592 </div>
593 <div class="page-header__section twelve-col u-margin--bottom-none" data-ng-hide="isActionError('controllers') || hasActionsInProgress('controllers')" data-ng-if="tabs.controllers.actionOption.name === 'test'">593 <div class="page-header__section twelve-col u-margin--bottom-none" data-ng-hide="isActionError('controllers') || hasActionsInProgress('controllers')" data-ng-if="tabs.controllers.actionOption.name === 'test'">
594 <div class="page-header__controls">594 <div class="page-header__controls">
595 <button class="button--base button--inline" data-ng-click="actionCancel('controllers')">Cancel</button>595 <button class="button--base button--inline" type="button" data-ng-click="actionCancel('controllers')">Cancel</button>
596 <button class="button--positive button--inline" data-ng-click="actionGo('controllers')">596 <button class="button--positive button--inline" data-ng-click="actionGo('controllers')">
597 <span>Test {$ tabs.controllers.selectedItems.length $}597 <span>Test {$ tabs.controllers.selectedItems.length $}
598 <span data-ng-pluralize count="tabs.controllers.selectedItems.length" when="{'one': 'controller', 'other': 'controllers'}"></span>598 <span data-ng-pluralize count="tabs.controllers.selectedItems.length" when="{'one': 'controller', 'other': 'controllers'}"></span>
diff --git a/src/maasserver/static/partials/pod-details.html b/src/maasserver/static/partials/pod-details.html
index 52c7695..9db98e8 100644
--- a/src/maasserver/static/partials/pod-details.html
+++ b/src/maasserver/static/partials/pod-details.html
@@ -91,7 +91,7 @@
91 <p class="page-header__message page-header__message--error" maas-obj-hide-saving><maas-obj-errors></maas-obj-errors></p>91 <p class="page-header__message page-header__message--error" maas-obj-hide-saving><maas-obj-errors></maas-obj-errors></p>
92 <p class="page-header__message" maas-obj-show-saving><maas-obj-saving>Composing machine</maas-obj-saving></p>92 <p class="page-header__message" maas-obj-show-saving><maas-obj-saving>Composing machine</maas-obj-saving></p>
93 <div class="page-header__controls" maas-obj-hide-saving>93 <div class="page-header__controls" maas-obj-hide-saving>
94 <button class="button--base button--inline" data-ng-click="cancelCompose()">Cancel</button>94 <button class="button--base button--inline" type="button" data-ng-click="cancelCompose()">Cancel</button>
95 <button class="button--positive button--inline" maas-obj-save>Compose machine</button>95 <button class="button--positive button--inline" maas-obj-save>Compose machine</button>
96 </div>96 </div>
97 </section>97 </section>
@@ -110,7 +110,7 @@
110 Performing {$ action.option.sentence $} failed: {$ action.error $}110 Performing {$ action.option.sentence $} failed: {$ action.error $}
111 </p>111 </p>
112 <div class="page-header__controls">112 <div class="page-header__controls">
113 <button class="button--base button--inline" data-ng-click="actionCancel()">Cancel</button>113 <button class="button--base button--inline" type="button" data-ng-click="actionCancel()">Cancel</button>
114 <button class="button--inline" data-ng-class="actionOption.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo()" data-ng-if="!action.error">114 <button class="button--inline" data-ng-class="actionOption.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo()" data-ng-if="!action.error">
115 <span data-ng-if="action.option.name === 'refresh'">Refresh pod</span>115 <span data-ng-if="action.option.name === 'refresh'">Refresh pod</span>
116 <span data-ng-if="action.option.name === 'delete'">Delete pod</span>116 <span data-ng-if="action.option.name === 'delete'">Delete pod</span>
diff --git a/src/maasserver/static/partials/pods-list.html b/src/maasserver/static/partials/pods-list.html
index cd0fb69..2a0fac3 100644
--- a/src/maasserver/static/partials/pods-list.html
+++ b/src/maasserver/static/partials/pods-list.html
@@ -27,7 +27,7 @@
27 see listing for specific error for each pod.27 see listing for specific error for each pod.
28 </p>28 </p>
29 <div class="page-header__controls">29 <div class="page-header__controls">
30 <button class="button--base button--inline" data-ng-click="actionCancel()">Cancel</button>30 <button class="button--base button--inline" type="button" data-ng-click="actionCancel()">Cancel</button>
31 <button class="button--inline" data-ng-class="action.option.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo()" data-ng-if="!hasActionsFailed()">31 <button class="button--inline" data-ng-class="action.option.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="actionGo()" data-ng-if="!hasActionsFailed()">
32 <span data-ng-if="action.option.name === 'refresh'">Refresh {$ selectedItems.length $}32 <span data-ng-if="action.option.name === 'refresh'">Refresh {$ selectedItems.length $}
33 <span data-ng-pluralize count="selectedItems.length" when="{'one': 'pod', 'other': 'pods'}"></span>33 <span data-ng-pluralize count="selectedItems.length" when="{'one': 'pod', 'other': 'pods'}"></span>
@@ -63,7 +63,7 @@
63 <p class="page-header__message page-header__message--error" maas-obj-hide-saving><maas-obj-errors></maas-obj-errors></p>63 <p class="page-header__message page-header__message--error" maas-obj-hide-saving><maas-obj-errors></maas-obj-errors></p>
64 <p class="page-header__message" maas-obj-show-saving><maas-obj-saving>Trying to connect and discover pod</maas-obj-saving></p>64 <p class="page-header__message" maas-obj-show-saving><maas-obj-saving>Trying to connect and discover pod</maas-obj-saving></p>
65 <div class="page-header__controls" maas-obj-hide-saving>65 <div class="page-header__controls" maas-obj-hide-saving>
66 <button class="button--base button--inline" data-ng-click="cancelAddPod()">Cancel</button>66 <button class="button--base button--inline" type="button" data-ng-click="cancelAddPod()">Cancel</button>
67 <button class="button--positive button--inline" maas-obj-save>Save pod</button>67 <button class="button--positive button--inline" maas-obj-save>Save pod</button>
68 </div>68 </div>
69 </section>69 </section>
diff --git a/src/maasserver/static/partials/settings.html b/src/maasserver/static/partials/settings.html
index b6bff07..3ebfab4 100644
--- a/src/maasserver/static/partials/settings.html
+++ b/src/maasserver/static/partials/settings.html
@@ -142,7 +142,7 @@
142 <maas-obj-errors></maas-obj-errors>142 <maas-obj-errors></maas-obj-errors>
143 </div>143 </div>
144 <div class="table__data u-float--right">144 <div class="table__data u-float--right">
145 <button class="button--base button--inline"145 <button class="button--base button--inline" type="button"
146 data-ng-click="snippetExitEdit(snippet)">Cancel</button>146 data-ng-click="snippetExitEdit(snippet)">Cancel</button>
147 <button class="button--positive button--inline" maas-obj-save>Save snippet</button>147 <button class="button--positive button--inline" maas-obj-save>Save snippet</button>
148 </div>148 </div>
@@ -159,7 +159,7 @@
159 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this snippet?</p>159 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this snippet?</p>
160 </div>160 </div>
161 <div class="table__data u-float--right">161 <div class="table__data u-float--right">
162 <button class="button--base button--inline" data-ng-click="snippetExitRemove(snippet)">Cancel</button>162 <button class="button--base button--inline" type="button" data-ng-click="snippetExitRemove(snippet)">Cancel</button>
163 <button class="button--destructive button--inline" data-ng-click="snippetConfirmRemove(snippet)">Remove</button>163 <button class="button--destructive button--inline" data-ng-click="snippetConfirmRemove(snippet)">Remove</button>
164 </div>164 </div>
165 </div>165 </div>
@@ -258,7 +258,7 @@
258 <maas-obj-errors></maas-obj-errors>258 <maas-obj-errors></maas-obj-errors>
259 </div>259 </div>
260 <div class="table__data u-float--right">260 <div class="table__data u-float--right">
261 <button class="button--base button--inline"261 <button class="button--base button--inline" type="button"
262 data-ng-click="snippetAddCancel()">Cancel</button>262 data-ng-click="snippetAddCancel()">Cancel</button>
263 <button class="button--positive button--inline" maas-obj-save>Save snippet</button>263 <button class="button--positive button--inline" maas-obj-save>Save snippet</button>
264 </div>264 </div>
@@ -491,7 +491,7 @@
491 <maas-obj-errors></maas-obj-errors>491 <maas-obj-errors></maas-obj-errors>
492 </div>492 </div>
493 <div class="table__data u-float--right">493 <div class="table__data u-float--right">
494 <button class="button--base button--inline"494 <button class="button--base button--inline" type="button"
495 data-ng-click="repositoryExitEdit()">Cancel</button>495 data-ng-click="repositoryExitEdit()">Cancel</button>
496 <button class="button--positive button--inline" maas-obj-save>Save repository</button>496 <button class="button--positive button--inline" maas-obj-save>Save repository</button>
497 </div>497 </div>
@@ -509,7 +509,7 @@
509 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this repository?</p>509 <p><span class="icon icon--warning u-margin--right-small"></span> Are you sure you want to remove this repository?</p>
510 </div>510 </div>
511 <div class="table__data u-float--right">511 <div class="table__data u-float--right">
512 <button class="button--base button--inline" data-ng-click="repositoryExitRemove()">Cancel</button>512 <button class="button--base button--inline" type="button" data-ng-click="repositoryExitRemove()">Cancel</button>
513 <button class="button--destructive button--inline" data-ng-click="repositoryConfirmRemove()">Remove</button>513 <button class="button--destructive button--inline" data-ng-click="repositoryConfirmRemove()">Remove</button>
514 </div>514 </div>
515 </div>515 </div>
@@ -571,7 +571,7 @@
571 <maas-obj-errors></maas-obj-errors>571 <maas-obj-errors></maas-obj-errors>
572 </div>572 </div>
573 <div class="table__data u-float--right">573 <div class="table__data u-float--right">
574 <button class="button--base button--inline"574 <button class="button--base button--inline" type="button"
575 data-ng-click="repositoryAddCancel()">Cancel</button>575 data-ng-click="repositoryAddCancel()">Cancel</button>
576 <button class="button--positive button--inline" maas-obj-save>Add repository</button>576 <button class="button--positive button--inline" maas-obj-save>Add repository</button>
577 </div>577 </div>
diff --git a/src/maasserver/static/partials/space-details.html b/src/maasserver/static/partials/space-details.html
index 856dd01..a98aa4b 100644
--- a/src/maasserver/static/partials/space-details.html
+++ b/src/maasserver/static/partials/space-details.html
@@ -20,7 +20,7 @@
20 Space cannot be deleted because it has subnets attached. Remove all subnets from the space to allow deletion.20 Space cannot be deleted because it has subnets attached. Remove all subnets from the space to allow deletion.
21 </p>21 </p>
22 <div class="page-header__controls">22 <div class="page-header__controls">
23 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>23 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
24 </div>24 </div>
25 </div>25 </div>
26 <div class="page-header__section twelve-col u-margin--bottom-none ng-hide" data-ng-show="canBeDeleted() && !error">26 <div class="page-header__section twelve-col u-margin--bottom-none ng-hide" data-ng-show="canBeDeleted() && !error">
@@ -28,14 +28,14 @@
28 Are you sure you want to delete this space?28 Are you sure you want to delete this space?
29 </p>29 </p>
30 <div class="page-header__controls">30 <div class="page-header__controls">
31 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>31 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
32 <button class="button--destructive button--inline" data-ng-click="deleteConfirmButton()">Delete space</button>32 <button class="button--destructive button--inline" data-ng-click="deleteConfirmButton()">Delete space</button>
33 </div>33 </div>
34 </div>34 </div>
35 <div class="page-header__section twelve-col u-margin--bottom-none ng-hide" data-ng-show="canBeDeleted() && error">35 <div class="page-header__section twelve-col u-margin--bottom-none ng-hide" data-ng-show="canBeDeleted() && error">
36 <p class="page-header__message page-header__message--error">{$ error $}</p>36 <p class="page-header__message page-header__message--error">{$ error $}</p>
37 <div class="page-header__controls">37 <div class="page-header__controls">
38 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>38 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
39 <button class="button--secondary button--inline" data-ng-click="deleteConfirmButton()">Retry</button>39 <button class="button--secondary button--inline" data-ng-click="deleteConfirmButton()">Retry</button>
40 </div>40 </div>
41 </div>41 </div>
@@ -64,7 +64,7 @@
64 label-width="two" input-width="three" blur-on-enter="true"></maas-obj-field>64 label-width="two" input-width="three" blur-on-enter="true"></maas-obj-field>
65 </fieldset>65 </fieldset>
66 <div class="twelve-col u-align--right">66 <div class="twelve-col u-align--right">
67 <button class="button--base button--inline"67 <button class="button--base button--inline" type="button"
68 data-ng-click="exitEditSummary()">Cancel</button>68 data-ng-click="exitEditSummary()">Cancel</button>
69 <button class="button--positive button--inline" maas-obj-save>Save summary</button>69 <button class="button--positive button--inline" maas-obj-save>Save summary</button>
70 </div>70 </div>
diff --git a/src/maasserver/static/partials/ssh-keys.html b/src/maasserver/static/partials/ssh-keys.html
index 771a1cd..e5e12a1 100644
--- a/src/maasserver/static/partials/ssh-keys.html
+++ b/src/maasserver/static/partials/ssh-keys.html
@@ -45,7 +45,7 @@
45 <p><span class="icon icon--warning u-margin--right-small"></span>Are you sure you want to remove this key?</p>45 <p><span class="icon icon--warning u-margin--right-small"></span>Are you sure you want to remove this key?</p>
46 </div>46 </div>
47 <div class="table__data u-float--right">47 <div class="table__data u-float--right">
48 <button class="button--base button--inline" data-ng-click="close()">Cancel</button>48 <button class="button--base button--inline" type="button" data-ng-click="close()">Cancel</button>
49 <button class="button--destructive button--inline" data-ng-click="confirmDelete(group)">Remove</button>49 <button class="button--destructive button--inline" data-ng-click="confirmDelete(group)">Remove</button>
50 </div>50 </div>
51 </div>51 </div>
diff --git a/src/maasserver/static/partials/subnet-details.html b/src/maasserver/static/partials/subnet-details.html
index 75eaae0..772b9be 100755
--- a/src/maasserver/static/partials/subnet-details.html
+++ b/src/maasserver/static/partials/subnet-details.html
@@ -23,7 +23,7 @@
23 You will start mapping your subnet. Go to the <a href="#/dashboard">dashboard</a> to see the discovered items.23 You will start mapping your subnet. Go to the <a href="#/dashboard">dashboard</a> to see the discovered items.
24 </p>24 </p>
25 <div class="page-header__controls">25 <div class="page-header__controls">
26 <button class="button--base button--inline" data-ng-click="cancelAction()">Cancel</button>26 <button class="button--base button--inline" type="button" data-ng-click="cancelAction()">Cancel</button>
27 <button class="button--positive button--inline" data-ng-click="actionGo()">Map subnet</button>27 <button class="button--positive button--inline" data-ng-click="actionGo()">Map subnet</button>
28 </div>28 </div>
29 </section>29 </section>
@@ -32,14 +32,14 @@
32 Are you sure you want to delete this subnet and release all IP addresses assigned within its range?32 Are you sure you want to delete this subnet and release all IP addresses assigned within its range?
33 </p>33 </p>
34 <div class="page-header__controls">34 <div class="page-header__controls">
35 <button class="button--base button--inline" data-ng-click="cancelAction()">Cancel</button>35 <button class="button--base button--inline" type="button" data-ng-click="cancelAction()">Cancel</button>
36 <button class="button--destructive button--inline" data-ng-click="actionGo()">Delete subnet</button>36 <button class="button--destructive button--inline" data-ng-click="actionGo()">Delete subnet</button>
37 </div>37 </div>
38 </section>38 </section>
39 <section class="page-header__section twelve-col u-margin--bottom-none ng-hide" data-ng-show="actionError">39 <section class="page-header__section twelve-col u-margin--bottom-none ng-hide" data-ng-show="actionError">
40 <p class="page-header__message page-header__message--error">{$ actionError $}</p>40 <p class="page-header__message page-header__message--error">{$ actionError $}</p>
41 <div class="page-header__controls">41 <div class="page-header__controls">
42 <button class="button--base button--inline" data-ng-click="cancelAction()">Cancel</button>42 <button class="button--base button--inline" type="button" data-ng-click="cancelAction()">Cancel</button>
43 <button class="button--secondary button--inline" data-ng-click="actionRetry()">Retry</button>43 <button class="button--secondary button--inline" data-ng-click="actionRetry()">Retry</button>
44 </div>44 </div>
45 </section>45 </section>
@@ -161,7 +161,7 @@
161 <maas-obj-errors></maas-obj-errors>161 <maas-obj-errors></maas-obj-errors>
162 </div>162 </div>
163 <div class="six-col last-col u-align--right">163 <div class="six-col last-col u-align--right">
164 <button class="button--base button--inline"164 <button class="button--base button--inline" type="button"
165 data-ng-click="exitEditSummary()">Cancel</button>165 data-ng-click="exitEditSummary()">Cancel</button>
166 <button class="button--positive button--inline" maas-obj-save>Save summary</button>166 <button class="button--positive button--inline" maas-obj-save>Save summary</button>
167 </div>167 </div>
@@ -218,7 +218,7 @@
218 <p><span class="icon icon--warning u-margin--right-small"></span>Are you sure you want to remove this static route?</p>218 <p><span class="icon icon--warning u-margin--right-small"></span>Are you sure you want to remove this static route?</p>
219 </div>219 </div>
220 <div class="table__data u-float--right">220 <div class="table__data u-float--right">
221 <button class="button--base button--inline" data-ng-click="staticRouteCancelDelete()">Cancel</button>221 <button class="button--base button--inline" type="button" data-ng-click="staticRouteCancelDelete()">Cancel</button>
222 <button class="button--destructive button--inline" data-ng-click="staticRouteConfirmDelete()">Remove</button>222 <button class="button--destructive button--inline" data-ng-click="staticRouteConfirmDelete()">Remove</button>
223 </div>223 </div>
224 </div>224 </div>
@@ -250,7 +250,7 @@
250 <maas-obj-errors></maas-obj-errors>250 <maas-obj-errors></maas-obj-errors>
251 </div>251 </div>
252 <div class="table__data u-float--right">252 <div class="table__data u-float--right">
253 <button class="button--base button--inline" data-ng-click="staticRouteToggleEditMode(staticRoute)">Cancel</button>253 <button class="button--base button--inline" type="button" data-ng-click="staticRouteToggleEditMode(staticRoute)">Cancel</button>
254 <button class="button--positive button--inline" maas-obj-save>Save static route</button>254 <button class="button--positive button--inline" maas-obj-save>Save static route</button>
255 </div>255 </div>
256 </div>256 </div>
@@ -297,7 +297,7 @@
297 <maas-obj-errors></maas-obj-errors>297 <maas-obj-errors></maas-obj-errors>
298 </div>298 </div>
299 <div class="table__data u-float--right">299 <div class="table__data u-float--right">
300 <button class="button--base button--inline" data-ng-click="cancelAddStaticRoute()">Cancel</button>300 <button class="button--base button--inline" type="button" data-ng-click="cancelAddStaticRoute()">Cancel</button>
301 <button class="button--positive button--inline" maas-obj-save>Save static route</button>301 <button class="button--positive button--inline" maas-obj-save>Save static route</button>
302 </div>302 </div>
303 </div>303 </div>
diff --git a/src/maasserver/static/partials/vlan-details.html b/src/maasserver/static/partials/vlan-details.html
index a526ed9..1c70452 100644
--- a/src/maasserver/static/partials/vlan-details.html
+++ b/src/maasserver/static/partials/vlan-details.html
@@ -203,7 +203,7 @@
203 Are you sure you want to delete this VLAN?203 Are you sure you want to delete this VLAN?
204 </p>204 </p>
205 <div class="page-header__controls">205 <div class="page-header__controls">
206 <button class="button--base button--inline" data-ng-click="vlanDetails.actionCancel()">Cancel</button>206 <button class="button--base button--inline" type="button" data-ng-click="vlanDetails.actionCancel()">Cancel</button>
207 <button class="button--inline" data-ng-class="vlanDetails.actionOption.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="vlanDetails.actionGo()" data-ng-disabled="!vlanDetails.canPerformAction()">{$ vlanDetails.actionOption.title $}</button>207 <button class="button--inline" data-ng-class="vlanDetails.actionOption.name === 'delete' ? 'button--destructive' : 'button--positive'" data-ng-click="vlanDetails.actionGo()" data-ng-disabled="!vlanDetails.canPerformAction()">{$ vlanDetails.actionOption.title $}</button>
208 </div>208 </div>
209 </section>209 </section>
@@ -211,7 +211,7 @@
211 data-ng-if="vlanDetails.isActionError()">211 data-ng-if="vlanDetails.isActionError()">
212 <p class="page-header__message page-header__message--error">{$ vlanDetails.actionError $}</p>212 <p class="page-header__message page-header__message--error">{$ vlanDetails.actionError $}</p>
213 <div class="page-header__controls">213 <div class="page-header__controls">
214 <button class="button--base button--inline u-margin--right" data-ng-click="vlanDetails.actionCancel()">Cancel</button>214 <button class="button--base button--inline u-margin--right" type="button" data-ng-click="vlanDetails.actionCancel()">Cancel</button>
215 <button class="button--secondary button--inline" data-ng-click="vlanDetails.actionRetry()">Retry</button>215 <button class="button--secondary button--inline" data-ng-click="vlanDetails.actionRetry()">Retry</button>
216 </div>216 </div>
217 </section>217 </section>
@@ -285,7 +285,7 @@
285 </dl>285 </dl>
286 </div>286 </div>
287 <div class="twelve-col u-align--right">287 <div class="twelve-col u-align--right">
288 <button class="button--base button--inline"288 <button class="button--base button--inline" type="button"
289 data-ng-click="vlanDetails.exitEditSummary()">Cancel</button>289 data-ng-click="vlanDetails.exitEditSummary()">Cancel</button>
290 <button class="button--positive button--inline" maas-obj-save>Save summary</button>290 <button class="button--positive button--inline" maas-obj-save>Save summary</button>
291 </div>291 </div>
diff --git a/src/maasserver/static/partials/zone-details.html b/src/maasserver/static/partials/zone-details.html
index dec2f3b..c4e97d0 100644
--- a/src/maasserver/static/partials/zone-details.html
+++ b/src/maasserver/static/partials/zone-details.html
@@ -20,7 +20,7 @@
20 Zone cannot be deleted because it is the default zone.20 Zone cannot be deleted because it is the default zone.
21 </p>21 </p>
22 <div class="page-header__controls">22 <div class="page-header__controls">
23 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>23 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
24 </div>24 </div>
25 </section>25 </section>
26 <section class="page-header__section ng-hide" data-ng-show="canBeDeleted() && !error">26 <section class="page-header__section ng-hide" data-ng-show="canBeDeleted() && !error">
@@ -28,14 +28,14 @@
28 Are you sure you want to delete this zone?28 Are you sure you want to delete this zone?
29 </p>29 </p>
30 <div class="page-header__controls">30 <div class="page-header__controls">
31 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>31 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
32 <button class="button--destructive button--inline" data-ng-click="deleteConfirmButton()">Delete zone</button>32 <button class="button--destructive button--inline" data-ng-click="deleteConfirmButton()">Delete zone</button>
33 </div>33 </div>
34 </section>34 </section>
35 <section class="page-header__section ng-hide" data-ng-show="canBeDeleted() && error">35 <section class="page-header__section ng-hide" data-ng-show="canBeDeleted() && error">
36 <p class="page-header__message page-header__message--error">{$ error $}</p>36 <p class="page-header__message page-header__message--error">{$ error $}</p>
37 <div class="page-header__controls">37 <div class="page-header__controls">
38 <button class="button--base button--inline" data-ng-click="cancelDeleteButton()">Cancel</button>38 <button class="button--base button--inline" type="button" data-ng-click="cancelDeleteButton()">Cancel</button>
39 <button class="button--secondary button--inline" data-ng-click="deleteConfirmButton()">Retry</button>39 <button class="button--secondary button--inline" data-ng-click="deleteConfirmButton()">Retry</button>
40 </div>40 </div>
41 </section>41 </section>
@@ -73,7 +73,7 @@
73 </dl>73 </dl>
74 </fieldset>74 </fieldset>
75 <div class="twelve-col u-align--right">75 <div class="twelve-col u-align--right">
76 <button class="button--base button--inline"76 <button class="button--base button--inline" type="button"
77 data-ng-click="exitEditSummary()">Cancel</button>77 data-ng-click="exitEditSummary()">Cancel</button>
78 <button class="button--positive button--inline" maas-obj-save>Save summary</button>78 <button class="button--positive button--inline" maas-obj-save>Save summary</button>
79 </div>79 </div>
diff --git a/src/maasserver/static/partials/zones-list.html b/src/maasserver/static/partials/zones-list.html
index 81edc3f..5aa8ea3 100755
--- a/src/maasserver/static/partials/zones-list.html
+++ b/src/maasserver/static/partials/zones-list.html
@@ -21,7 +21,7 @@
21 placeholder="Name (required)"></maas-obj-field>21 placeholder="Name (required)"></maas-obj-field>
22 </fieldset>22 </fieldset>
23 <div class="page-header__controls">23 <div class="page-header__controls">
24 <button class="button--base button--inline" data-ng-click="closeZone()">Cancel</button>24 <button class="button--base button--inline" type="button" data-ng-click="closeZone()">Cancel</button>
25 <button class="button--positive button--inline" maas-obj-save>Add zone</button>25 <button class="button--positive button--inline" maas-obj-save>Add zone</button>
26 </div>26 </div>
27 </maas-obj-form>27 </maas-obj-form>

Subscribers

People subscribed via source and target branches