Merge ~blr/maas:add-machine-maas-objform into maas:master
- Git
- lp:~blr/maas
- add-machine-maas-objform
- Merge into master
Proposed by
Kit Randel
Status: | Rejected |
---|---|
Rejected by: | Adam Collard |
Proposed branch: | ~blr/maas:add-machine-maas-objform |
Merge into: | maas:master |
Diff against target: |
329 lines (+162/-96) 6 files modified
src/maasserver/static/js/angular/controllers/add_hardware.js (+2/-1) src/maasserver/static/js/angular/directives/nodelist/add_machine.js (+5/-0) src/maasserver/static/js/angular/services/manager.js (+2/-1) src/maasserver/static/partials/nodelist/add-machine.html (+150/-0) src/maasserver/static/partials/nodes-list.html (+2/-94) webpack.config.js (+1/-0) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
MAAS Maintainers | Pending | ||
Review via email: mp+348505@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Unmerged commits
- 2849879... by Kit Randel
-
Initial form
- b39b04e... by Kit Randel
-
Add partial
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/src/maasserver/static/js/angular/controllers/add_hardware.js b/src/maasserver/static/js/angular/controllers/add_hardware.js |
2 | index 5e1b0d8..9d9e612 100644 |
3 | --- a/src/maasserver/static/js/angular/controllers/add_hardware.js |
4 | +++ b/src/maasserver/static/js/angular/controllers/add_hardware.js |
5 | @@ -19,6 +19,7 @@ angular.module('MAAS').controller('AddHardwareController', [ |
6 | parentScope.addHardwareScope = $scope; |
7 | |
8 | // Set initial values. |
9 | + $scope.machineManager = MachinesManager; |
10 | $scope.viewable = false; |
11 | $scope.model = 'machine'; |
12 | $scope.zones = ZonesManager.getItems(); |
13 | @@ -367,7 +368,7 @@ angular.module('MAAS').controller('AddHardwareController', [ |
14 | var pxe_mac = macs.shift().mac; |
15 | var extra_macs = macs.map(function(mac) { return mac.mac; }); |
16 | |
17 | - // Return the new object. |
18 | + // Return the new object. |
19 | return { |
20 | hostname: machine.name, |
21 | domain: machine.domain, |
22 | diff --git a/src/maasserver/static/js/angular/directives/nodelist/add_machine.js b/src/maasserver/static/js/angular/directives/nodelist/add_machine.js |
23 | new file mode 100644 |
24 | index 0000000..67f89f5 |
25 | --- /dev/null |
26 | +++ b/src/maasserver/static/js/angular/directives/nodelist/add_machine.js |
27 | @@ -0,0 +1,5 @@ |
28 | +angular.module('MAAS').directive('addMachine', function() { |
29 | + return { |
30 | + templateUrl: 'static/partials/nodelist/add-machine.html' |
31 | + }; |
32 | +}); |
33 | diff --git a/src/maasserver/static/js/angular/services/manager.js b/src/maasserver/static/js/angular/services/manager.js |
34 | index 6703b52..2815f9d 100644 |
35 | --- a/src/maasserver/static/js/angular/services/manager.js |
36 | +++ b/src/maasserver/static/js/angular/services/manager.js |
37 | @@ -389,7 +389,8 @@ angular.module('MAAS').service( |
38 | }; |
39 | |
40 | // Send the create information to the region. |
41 | - Manager.prototype.createItem = function(item) { |
42 | + Manager.prototype.createItem = function(item) { |
43 | + console.log(item) |
44 | var self = this; |
45 | var method = this._handler + ".create"; |
46 | item = angular.copy(item); |
47 | diff --git a/src/maasserver/static/partials/nodelist/add-machine.html b/src/maasserver/static/partials/nodelist/add-machine.html |
48 | new file mode 100644 |
49 | index 0000000..f458416 |
50 | --- /dev/null |
51 | +++ b/src/maasserver/static/partials/nodelist/add-machine.html |
52 | @@ -0,0 +1,150 @@ |
53 | +<maas-obj-form obj="machine" manager="machineManager" manager-method="createItem" |
54 | + inline="false" save-on-blur="false" after-save="cancel"> |
55 | + |
56 | + <section class="page-header__section row"> |
57 | + <div class="p-form p-form--stacked ng-scope"> |
58 | + <div class="col-6"> |
59 | + <maas-obj-field |
60 | + type="text" key="name" label="Machine name" subtle="false" |
61 | + placeholder="Choose a machine name (optional)" |
62 | + label-width="2" input-width="3"> |
63 | + </maas-obj-field> |
64 | + <maas-obj-field |
65 | + type="options" key="domain" label="Domain" |
66 | + options="domain as domain.name for domain in domains" |
67 | + label-width="2" input-width="3"> |
68 | + </maas-obj-field> |
69 | + <maas-obj-field |
70 | + type="options" key="architecture" label="Architecture" |
71 | + options="arch for arch in architectures" |
72 | + label-width="2" input-width="3"> |
73 | + </maas-obj-field> |
74 | + <maas-obj-field |
75 | + type="options" key="hwe_kernel" label="Minimum Kernel" |
76 | + options="hwe_kernel[0] as hwe_kernel[1] for hwe_kernel in hwe_kernels" |
77 | + label-width="2" input-width="3"> |
78 | + </maas-obj-field> |
79 | + <maas-obj-field |
80 | + type="options" key="zone" label="Zone" |
81 | + options="zone as zone.name for zone in zones" |
82 | + label-width="2" input-width="3"> |
83 | + </maas-obj-field> |
84 | + <maas-obj-field |
85 | + type="options" key="pool" label="Resource Pool" |
86 | + options="pool as pool.name for pool in pools" |
87 | + label-width="2" input-width="3"> |
88 | + </maas-obj-field> |
89 | + <div class="p-form__group" data-ng-repeat="mac in machine.macs"> |
90 | + <maas-obj-field |
91 | + type="text" key="mac_addresses" label="MAC Address" |
92 | + placeholder="00:00:00:00:00:00"> |
93 | + </maas-obj-field> |
94 | + </div> |
95 | + <div class="p-form__group"> |
96 | + <div class="col-3"> </div> |
97 | + <div class="col-3"> |
98 | + <button class="p-button--neutral u-float--right" |
99 | + data-ng-click="addMac()">+ Add MAC Address</button> |
100 | + </div> |
101 | + </div> |
102 | + </div> |
103 | + <div class="col-6" |
104 | + data-maas-power-parameters="power_types" |
105 | + data-ng-model="machine.power"> |
106 | + </div> |
107 | + </div> |
108 | + </section> |
109 | + |
110 | + <section class="page-header_section row"> |
111 | + <div class="page-header__controls p-strip u-align--right u-no-padding--bottom"> |
112 | + <hr> |
113 | + <button class="p-button--base" type="button" data-ng-click="cancel()">Cancel</button> |
114 | + <button class="p-button--neutral" |
115 | + data-ng-disabled="machineHasError()" |
116 | + data-ng-click="saveMachine(true)">Save and add another</button> |
117 | + <button class="p-button--positive u-no-margin--top" maas-obj-save>Save Machine</button> |
118 | + </div> |
119 | + </section> |
120 | +</maas-obj-form> |
121 | + |
122 | +<!-- |
123 | +<h3 class="page-header__dropdown-title">Add machine</h3> |
124 | +<form class="p-form p-form--stacked"> |
125 | + <div class="col-6"> |
126 | + <div class="p-form__group"> |
127 | + <label for="machine-name" class="p-form__label col-2">Machine name</label> |
128 | + <div class="p-form__group-input col-3"> |
129 | + <input type="text" id="machine-name" placeholder="Choose a machine name (optional)" |
130 | + data-ng-model="machine.name"> |
131 | + </div> |
132 | + </div> |
133 | + <div class="p-form__group"> |
134 | + <label for="domain" class="p-form__label col-2">Domain</label> |
135 | + <div class="p-form__group-input col-3"> |
136 | + <select name="domain" id="domain" |
137 | + data-ng-model="machine.domain" |
138 | + data-ng-options="domain as domain.name for domain in domains"> |
139 | + <option value="" disabled>Choose a domain</option> |
140 | + </select> |
141 | + </div> |
142 | + </div> |
143 | + <div class="p-form__group"> |
144 | + <label for="architecture" class="p-form__label col-2">Architecture</label> |
145 | + <div class="p-form__group-input col-3"> |
146 | + <select name="architecture" id="architecture" |
147 | + data-ng-model="machine.architecture" |
148 | + data-ng-options="arch for arch in architectures"> |
149 | + <option value="" disabled>Choose an architecture</option> |
150 | + </select> |
151 | + </div> |
152 | + </div> |
153 | + <div class="p-form__group"> |
154 | + <label for="min_hwe_kernel" class="p-form__label col-2">Minimum Kernel</label> |
155 | + <div class="p-form__group-input col-3"> |
156 | + <select name="min_hwe_kernel" id="min_hwe_kernel" |
157 | + data-ng-model="machine.min_hwe_kernel" |
158 | + data-ng-options="hwe_kernel[0] as hwe_kernel[1] for hwe_kernel in hwe_kernels"> |
159 | + <option value="">No minimum kernel</option> |
160 | + </select> |
161 | + </div> |
162 | + </div> |
163 | + <div class="p-form__group"> |
164 | + <label for="zone4" class="p-form__label col-2">Zone</label> |
165 | + <select name="zone" id="zone4" class="col-3" |
166 | + data-ng-model="machine.zone" |
167 | + data-ng-options="zone as zone.name for zone in zones"> |
168 | + </select> |
169 | + </div> |
170 | + <div class="p-form__group"> |
171 | + <label for="pool-select" class="p-form__label col-2">Resource pool</label> |
172 | + <select name="pool" id="pool-select" class="col-3" |
173 | + data-ng-model="machine.pool" |
174 | + data-ng-options="pool as pool.name for pool in pools"> |
175 | + </select> |
176 | + </div> |
177 | + <div class="p-form__group" data-ng-repeat="mac in machine.macs"> |
178 | + <label for="mac-address" class="p-form__label col-2"><span data-ng-hide="mac !== machine.macs[0]">MAC Address</span> </label> |
179 | + <div class="p-form__group-input col-3 p-search-box"> |
180 | + <input type="text" id="mac-address" placeholder="00:00:00:00:00:00" class="p-search-box__input" |
181 | + maxlength="17" |
182 | + data-ng-class="{ 'has-error': mac.error }" |
183 | + data-ng-model="mac.mac" |
184 | + data-ng-pattern="macAddressRegex" |
185 | + data-ng-change="validateMac(mac)" |
186 | + mac-address> |
187 | + <button type="reset" title="Delete MAC" class="p-search-box__button" |
188 | + data-ng-hide="mac === machine.macs[0]" data-ng-click="removeMac(mac)"><i class="p-icon--close"></i></button> |
189 | + </div> |
190 | + </div> |
191 | + <div class="p-form__group"> |
192 | + <div class="col-5"> |
193 | + <button class="p-button--neutral u-float--right" data-ng-click="addMac()">+ Add MAC Address</a> |
194 | + </div> |
195 | + </div> |
196 | + </div> |
197 | + <div class="col-6" |
198 | + data-maas-power-parameters="power_types" |
199 | + data-ng-model="machine.power"> |
200 | + </div> |
201 | +</form> |
202 | +--> |
203 | diff --git a/src/maasserver/static/partials/nodes-list.html b/src/maasserver/static/partials/nodes-list.html |
204 | index 8310b39..1da0666 100644 |
205 | --- a/src/maasserver/static/partials/nodes-list.html |
206 | +++ b/src/maasserver/static/partials/nodes-list.html |
207 | @@ -356,86 +356,9 @@ |
208 | <hr /> |
209 | <!-- XXX ricgard 2016-06-16 - Need to add e2e test. --> |
210 | <section class="page-header__section ng-hide" data-ng-show="showMachine()"> |
211 | - <h3 class="page-header__dropdown-title">Add machine</h3> |
212 | - <form class="p-form p-form--stacked"> |
213 | - <div class="col-6"> |
214 | - <div class="p-form__group"> |
215 | - <label for="machine-name" class="p-form__label col-2">Machine name</label> |
216 | - <div class="p-form__group-input col-3"> |
217 | - <input type="text" id="machine-name" placeholder="Choose a machine name (optional)" |
218 | - data-ng-model="machine.name"> |
219 | - </div> |
220 | - </div> |
221 | - <div class="p-form__group"> |
222 | - <label for="domain" class="p-form__label col-2">Domain</label> |
223 | - <div class="p-form__group-input col-3"> |
224 | - <select name="domain" id="domain" |
225 | - data-ng-model="machine.domain" |
226 | - data-ng-options="domain as domain.name for domain in domains"> |
227 | - <option value="" disabled>Choose a domain</option> |
228 | - </select> |
229 | - </div> |
230 | - </div> |
231 | - <div class="p-form__group"> |
232 | - <label for="architecture" class="p-form__label col-2">Architecture</label> |
233 | - <div class="p-form__group-input col-3"> |
234 | - <select name="architecture" id="architecture" |
235 | - data-ng-model="machine.architecture" |
236 | - data-ng-options="arch for arch in architectures"> |
237 | - <option value="" disabled>Choose an architecture</option> |
238 | - </select> |
239 | - </div> |
240 | - </div> |
241 | - <div class="p-form__group"> |
242 | - <label for="min_hwe_kernel" class="p-form__label col-2">Minimum Kernel</label> |
243 | - <div class="p-form__group-input col-3"> |
244 | - <select name="min_hwe_kernel" id="min_hwe_kernel" |
245 | - data-ng-model="machine.min_hwe_kernel" |
246 | - data-ng-options="hwe_kernel[0] as hwe_kernel[1] for hwe_kernel in hwe_kernels"> |
247 | - <option value="">No minimum kernel</option> |
248 | - </select> |
249 | - </div> |
250 | - </div> |
251 | - <div class="p-form__group"> |
252 | - <label for="zone4" class="p-form__label col-2">Zone</label> |
253 | - <select name="zone" id="zone4" class="col-3" |
254 | - data-ng-model="machine.zone" |
255 | - data-ng-options="zone as zone.name for zone in zones"> |
256 | - </select> |
257 | - </div> |
258 | - <div class="p-form__group"> |
259 | - <label for="pool-select" class="p-form__label col-2">Resource pool</label> |
260 | - <select name="pool" id="pool-select" class="col-3" |
261 | - data-ng-model="machine.pool" |
262 | - data-ng-options="pool as pool.name for pool in pools"> |
263 | - </select> |
264 | - </div> |
265 | - <div class="p-form__group" data-ng-repeat="mac in machine.macs"> |
266 | - <label for="mac-address" class="p-form__label col-2"><span data-ng-hide="mac !== machine.macs[0]">MAC Address</span> </label> |
267 | - <div class="p-form__group-input col-3 p-search-box"> |
268 | - <input type="text" id="mac-address" placeholder="00:00:00:00:00:00" class="p-search-box__input" |
269 | - maxlength="17" |
270 | - data-ng-class="{ 'has-error': mac.error }" |
271 | - data-ng-model="mac.mac" |
272 | - data-ng-pattern="macAddressRegex" |
273 | - data-ng-change="validateMac(mac)" |
274 | - mac-address> |
275 | - <button type="reset" title="Delete MAC" class="p-search-box__button" |
276 | - data-ng-hide="mac === machine.macs[0]" data-ng-click="removeMac(mac)"><i class="p-icon--close"></i></button> |
277 | - </div> |
278 | - </div> |
279 | - <div class="p-form__group"> |
280 | - <div class="col-5"> |
281 | - <button class="p-button--neutral u-float--right" data-ng-click="addMac()">+ Add MAC Address</a> |
282 | - </div> |
283 | - </div> |
284 | - </div> |
285 | - <div class="col-6" |
286 | - data-maas-power-parameters="power_types" |
287 | - data-ng-model="machine.power"> |
288 | - </div> |
289 | - </form> |
290 | + <add-machine></add-machine> |
291 | </section> |
292 | + |
293 | <section class="page-header__section col-12 ng-hide" data-ng-show="showChassis()"> |
294 | <h3 class="page-header__dropdown-title">Add chassis</h3> |
295 | <form action="post" class="p-form p-form--stacked"> |
296 | @@ -458,21 +381,6 @@ |
297 | </section> |
298 | |
299 | <!-- XXX ricgard 2016-06-16 - Need to add e2e test. --> |
300 | - <section class="page-header__section col-12" data-ng-show="showMachine()"> |
301 | - <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p> |
302 | - <div class="page-header__controls p-strip u-align--right u-no-padding--bottom"> |
303 | - <hr /> |
304 | - <button class="p-button--base" type="button" data-ng-click="cancel()">Cancel</button> |
305 | - <button class="p-button--neutral" |
306 | - data-ng-disabled="machineHasError()" |
307 | - data-ng-click="saveMachine(true)">Save and add another</button> |
308 | - <button class="p-button--positive" |
309 | - data-ng-disabled="machineHasError()" |
310 | - data-ng-click="saveMachine(false)">Save machine</button> |
311 | - </div> |
312 | - </section> |
313 | - |
314 | - <!-- XXX ricgard 2016-06-16 - Need to add e2e test. --> |
315 | <section class="page-header__section col-12 ng-hide" data-ng-show="showChassis()"> |
316 | <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p> |
317 | <div class="page-header__controls p-strip u-align--right u-no-padding--bottom"> |
318 | diff --git a/webpack.config.js b/webpack.config.js |
319 | index 00dadcb..34da078 100644 |
320 | --- a/webpack.config.js |
321 | +++ b/webpack.config.js |
322 | @@ -13,6 +13,7 @@ module.exports = { |
323 | glob.sync('./src/maasserver/static/js/angular/*.js'), |
324 | glob.sync('./src/maasserver/static/js/angular/controllers/*.js'), |
325 | glob.sync('./src/maasserver/static/js/angular/directives/*.js'), |
326 | + glob.sync('./src/maasserver/static/js/angular/directives/nodelist/*.js'), |
327 | glob.sync('./src/maasserver/static/js/angular/filters/*.js'), |
328 | glob.sync('./src/maasserver/static/js/angular/services/*.js'), |
329 | glob.sync('./src/maasserver/static/js/angular/factories/*.js') |