Merge ~blr/maas:add-machine-maas-objform into maas: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)
Reviewer Review Type Date Requested Status
MAAS Maintainers Pending
Review via email: mp+348505@code.launchpad.net
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
diff --git a/src/maasserver/static/js/angular/controllers/add_hardware.js b/src/maasserver/static/js/angular/controllers/add_hardware.js
index 5e1b0d8..9d9e612 100644
--- a/src/maasserver/static/js/angular/controllers/add_hardware.js
+++ b/src/maasserver/static/js/angular/controllers/add_hardware.js
@@ -19,6 +19,7 @@ angular.module('MAAS').controller('AddHardwareController', [
19 parentScope.addHardwareScope = $scope;19 parentScope.addHardwareScope = $scope;
2020
21 // Set initial values.21 // Set initial values.
22 $scope.machineManager = MachinesManager;
22 $scope.viewable = false;23 $scope.viewable = false;
23 $scope.model = 'machine';24 $scope.model = 'machine';
24 $scope.zones = ZonesManager.getItems();25 $scope.zones = ZonesManager.getItems();
@@ -367,7 +368,7 @@ angular.module('MAAS').controller('AddHardwareController', [
367 var pxe_mac = macs.shift().mac;368 var pxe_mac = macs.shift().mac;
368 var extra_macs = macs.map(function(mac) { return mac.mac; });369 var extra_macs = macs.map(function(mac) { return mac.mac; });
369370
370 // Return the new object.371 // Return the new object.
371 return {372 return {
372 hostname: machine.name,373 hostname: machine.name,
373 domain: machine.domain,374 domain: machine.domain,
diff --git a/src/maasserver/static/js/angular/directives/nodelist/add_machine.js b/src/maasserver/static/js/angular/directives/nodelist/add_machine.js
374new file mode 100644375new file mode 100644
index 0000000..67f89f5
--- /dev/null
+++ b/src/maasserver/static/js/angular/directives/nodelist/add_machine.js
@@ -0,0 +1,5 @@
1angular.module('MAAS').directive('addMachine', function() {
2 return {
3 templateUrl: 'static/partials/nodelist/add-machine.html'
4 };
5});
diff --git a/src/maasserver/static/js/angular/services/manager.js b/src/maasserver/static/js/angular/services/manager.js
index 6703b52..2815f9d 100644
--- a/src/maasserver/static/js/angular/services/manager.js
+++ b/src/maasserver/static/js/angular/services/manager.js
@@ -389,7 +389,8 @@ angular.module('MAAS').service(
389 };389 };
390390
391 // Send the create information to the region.391 // Send the create information to the region.
392 Manager.prototype.createItem = function(item) {392 Manager.prototype.createItem = function(item) {
393 console.log(item)
393 var self = this;394 var self = this;
394 var method = this._handler + ".create";395 var method = this._handler + ".create";
395 item = angular.copy(item);396 item = angular.copy(item);
diff --git a/src/maasserver/static/partials/nodelist/add-machine.html b/src/maasserver/static/partials/nodelist/add-machine.html
396new file mode 100644397new file mode 100644
index 0000000..f458416
--- /dev/null
+++ b/src/maasserver/static/partials/nodelist/add-machine.html
@@ -0,0 +1,150 @@
1<maas-obj-form obj="machine" manager="machineManager" manager-method="createItem"
2 inline="false" save-on-blur="false" after-save="cancel">
3
4 <section class="page-header__section row">
5 <div class="p-form p-form--stacked ng-scope">
6 <div class="col-6">
7 <maas-obj-field
8 type="text" key="name" label="Machine name" subtle="false"
9 placeholder="Choose a machine name (optional)"
10 label-width="2" input-width="3">
11 </maas-obj-field>
12 <maas-obj-field
13 type="options" key="domain" label="Domain"
14 options="domain as domain.name for domain in domains"
15 label-width="2" input-width="3">
16 </maas-obj-field>
17 <maas-obj-field
18 type="options" key="architecture" label="Architecture"
19 options="arch for arch in architectures"
20 label-width="2" input-width="3">
21 </maas-obj-field>
22 <maas-obj-field
23 type="options" key="hwe_kernel" label="Minimum Kernel"
24 options="hwe_kernel[0] as hwe_kernel[1] for hwe_kernel in hwe_kernels"
25 label-width="2" input-width="3">
26 </maas-obj-field>
27 <maas-obj-field
28 type="options" key="zone" label="Zone"
29 options="zone as zone.name for zone in zones"
30 label-width="2" input-width="3">
31 </maas-obj-field>
32 <maas-obj-field
33 type="options" key="pool" label="Resource Pool"
34 options="pool as pool.name for pool in pools"
35 label-width="2" input-width="3">
36 </maas-obj-field>
37 <div class="p-form__group" data-ng-repeat="mac in machine.macs">
38 <maas-obj-field
39 type="text" key="mac_addresses" label="MAC Address"
40 placeholder="00:00:00:00:00:00">
41 </maas-obj-field>
42 </div>
43 <div class="p-form__group">
44 <div class="col-3">&nbsp;</div>
45 <div class="col-3">
46 <button class="p-button--neutral u-float--right"
47 data-ng-click="addMac()">+ Add MAC Address</button>
48 </div>
49 </div>
50 </div>
51 <div class="col-6"
52 data-maas-power-parameters="power_types"
53 data-ng-model="machine.power">
54 </div>
55 </div>
56 </section>
57
58 <section class="page-header_section row">
59 <div class="page-header__controls p-strip u-align--right u-no-padding--bottom">
60 <hr>
61 <button class="p-button--base" type="button" data-ng-click="cancel()">Cancel</button>
62 <button class="p-button--neutral"
63 data-ng-disabled="machineHasError()"
64 data-ng-click="saveMachine(true)">Save and add another</button>
65 <button class="p-button--positive u-no-margin--top" maas-obj-save>Save Machine</button>
66 </div>
67 </section>
68</maas-obj-form>
69
70<!--
71<h3 class="page-header__dropdown-title">Add machine</h3>
72<form class="p-form p-form--stacked">
73 <div class="col-6">
74 <div class="p-form__group">
75 <label for="machine-name" class="p-form__label col-2">Machine name</label>
76 <div class="p-form__group-input col-3">
77 <input type="text" id="machine-name" placeholder="Choose a machine name (optional)"
78 data-ng-model="machine.name">
79 </div>
80 </div>
81 <div class="p-form__group">
82 <label for="domain" class="p-form__label col-2">Domain</label>
83 <div class="p-form__group-input col-3">
84 <select name="domain" id="domain"
85 data-ng-model="machine.domain"
86 data-ng-options="domain as domain.name for domain in domains">
87 <option value="" disabled>Choose a domain</option>
88 </select>
89 </div>
90 </div>
91 <div class="p-form__group">
92 <label for="architecture" class="p-form__label col-2">Architecture</label>
93 <div class="p-form__group-input col-3">
94 <select name="architecture" id="architecture"
95 data-ng-model="machine.architecture"
96 data-ng-options="arch for arch in architectures">
97 <option value="" disabled>Choose an architecture</option>
98 </select>
99 </div>
100 </div>
101 <div class="p-form__group">
102 <label for="min_hwe_kernel" class="p-form__label col-2">Minimum Kernel</label>
103 <div class="p-form__group-input col-3">
104 <select name="min_hwe_kernel" id="min_hwe_kernel"
105 data-ng-model="machine.min_hwe_kernel"
106 data-ng-options="hwe_kernel[0] as hwe_kernel[1] for hwe_kernel in hwe_kernels">
107 <option value="">No minimum kernel</option>
108 </select>
109 </div>
110 </div>
111 <div class="p-form__group">
112 <label for="zone4" class="p-form__label col-2">Zone</label>
113 <select name="zone" id="zone4" class="col-3"
114 data-ng-model="machine.zone"
115 data-ng-options="zone as zone.name for zone in zones">
116 </select>
117 </div>
118 <div class="p-form__group">
119 <label for="pool-select" class="p-form__label col-2">Resource pool</label>
120 <select name="pool" id="pool-select" class="col-3"
121 data-ng-model="machine.pool"
122 data-ng-options="pool as pool.name for pool in pools">
123 </select>
124 </div>
125 <div class="p-form__group" data-ng-repeat="mac in machine.macs">
126 <label for="mac-address" class="p-form__label col-2"><span data-ng-hide="mac !== machine.macs[0]">MAC Address</span>&nbsp;</label>
127 <div class="p-form__group-input col-3 p-search-box">
128 <input type="text" id="mac-address" placeholder="00:00:00:00:00:00" class="p-search-box__input"
129 maxlength="17"
130 data-ng-class="{ 'has-error': mac.error }"
131 data-ng-model="mac.mac"
132 data-ng-pattern="macAddressRegex"
133 data-ng-change="validateMac(mac)"
134 mac-address>
135 <button type="reset" title="Delete MAC" class="p-search-box__button"
136 data-ng-hide="mac === machine.macs[0]" data-ng-click="removeMac(mac)"><i class="p-icon--close"></i></button>
137 </div>
138 </div>
139 <div class="p-form__group">
140 <div class="col-5">
141 <button class="p-button--neutral u-float--right" data-ng-click="addMac()">+ Add MAC Address</a>
142 </div>
143 </div>
144 </div>
145 <div class="col-6"
146 data-maas-power-parameters="power_types"
147 data-ng-model="machine.power">
148 </div>
149</form>
150-->
diff --git a/src/maasserver/static/partials/nodes-list.html b/src/maasserver/static/partials/nodes-list.html
index 8310b39..1da0666 100644
--- a/src/maasserver/static/partials/nodes-list.html
+++ b/src/maasserver/static/partials/nodes-list.html
@@ -356,86 +356,9 @@
356 <hr />356 <hr />
357 <!-- XXX ricgard 2016-06-16 - Need to add e2e test. -->357 <!-- XXX ricgard 2016-06-16 - Need to add e2e test. -->
358 <section class="page-header__section ng-hide" data-ng-show="showMachine()">358 <section class="page-header__section ng-hide" data-ng-show="showMachine()">
359 <h3 class="page-header__dropdown-title">Add machine</h3>359 <add-machine></add-machine>
360 <form class="p-form p-form--stacked">
361 <div class="col-6">
362 <div class="p-form__group">
363 <label for="machine-name" class="p-form__label col-2">Machine name</label>
364 <div class="p-form__group-input col-3">
365 <input type="text" id="machine-name" placeholder="Choose a machine name (optional)"
366 data-ng-model="machine.name">
367 </div>
368 </div>
369 <div class="p-form__group">
370 <label for="domain" class="p-form__label col-2">Domain</label>
371 <div class="p-form__group-input col-3">
372 <select name="domain" id="domain"
373 data-ng-model="machine.domain"
374 data-ng-options="domain as domain.name for domain in domains">
375 <option value="" disabled>Choose a domain</option>
376 </select>
377 </div>
378 </div>
379 <div class="p-form__group">
380 <label for="architecture" class="p-form__label col-2">Architecture</label>
381 <div class="p-form__group-input col-3">
382 <select name="architecture" id="architecture"
383 data-ng-model="machine.architecture"
384 data-ng-options="arch for arch in architectures">
385 <option value="" disabled>Choose an architecture</option>
386 </select>
387 </div>
388 </div>
389 <div class="p-form__group">
390 <label for="min_hwe_kernel" class="p-form__label col-2">Minimum Kernel</label>
391 <div class="p-form__group-input col-3">
392 <select name="min_hwe_kernel" id="min_hwe_kernel"
393 data-ng-model="machine.min_hwe_kernel"
394 data-ng-options="hwe_kernel[0] as hwe_kernel[1] for hwe_kernel in hwe_kernels">
395 <option value="">No minimum kernel</option>
396 </select>
397 </div>
398 </div>
399 <div class="p-form__group">
400 <label for="zone4" class="p-form__label col-2">Zone</label>
401 <select name="zone" id="zone4" class="col-3"
402 data-ng-model="machine.zone"
403 data-ng-options="zone as zone.name for zone in zones">
404 </select>
405 </div>
406 <div class="p-form__group">
407 <label for="pool-select" class="p-form__label col-2">Resource pool</label>
408 <select name="pool" id="pool-select" class="col-3"
409 data-ng-model="machine.pool"
410 data-ng-options="pool as pool.name for pool in pools">
411 </select>
412 </div>
413 <div class="p-form__group" data-ng-repeat="mac in machine.macs">
414 <label for="mac-address" class="p-form__label col-2"><span data-ng-hide="mac !== machine.macs[0]">MAC Address</span>&nbsp;</label>
415 <div class="p-form__group-input col-3 p-search-box">
416 <input type="text" id="mac-address" placeholder="00:00:00:00:00:00" class="p-search-box__input"
417 maxlength="17"
418 data-ng-class="{ 'has-error': mac.error }"
419 data-ng-model="mac.mac"
420 data-ng-pattern="macAddressRegex"
421 data-ng-change="validateMac(mac)"
422 mac-address>
423 <button type="reset" title="Delete MAC" class="p-search-box__button"
424 data-ng-hide="mac === machine.macs[0]" data-ng-click="removeMac(mac)"><i class="p-icon--close"></i></button>
425 </div>
426 </div>
427 <div class="p-form__group">
428 <div class="col-5">
429 <button class="p-button--neutral u-float--right" data-ng-click="addMac()">+ Add MAC Address</a>
430 </div>
431 </div>
432 </div>
433 <div class="col-6"
434 data-maas-power-parameters="power_types"
435 data-ng-model="machine.power">
436 </div>
437 </form>
438 </section>360 </section>
361
439 <section class="page-header__section col-12 ng-hide" data-ng-show="showChassis()">362 <section class="page-header__section col-12 ng-hide" data-ng-show="showChassis()">
440 <h3 class="page-header__dropdown-title">Add chassis</h3>363 <h3 class="page-header__dropdown-title">Add chassis</h3>
441 <form action="post" class="p-form p-form--stacked">364 <form action="post" class="p-form p-form--stacked">
@@ -458,21 +381,6 @@
458 </section>381 </section>
459382
460 <!-- XXX ricgard 2016-06-16 - Need to add e2e test. -->383 <!-- XXX ricgard 2016-06-16 - Need to add e2e test. -->
461 <section class="page-header__section col-12" data-ng-show="showMachine()">
462 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>
463 <div class="page-header__controls p-strip u-align--right u-no-padding--bottom">
464 <hr />
465 <button class="p-button--base" type="button" data-ng-click="cancel()">Cancel</button>
466 <button class="p-button--neutral"
467 data-ng-disabled="machineHasError()"
468 data-ng-click="saveMachine(true)">Save and add another</button>
469 <button class="p-button--positive"
470 data-ng-disabled="machineHasError()"
471 data-ng-click="saveMachine(false)">Save machine</button>
472 </div>
473 </section>
474
475 <!-- XXX ricgard 2016-06-16 - Need to add e2e test. -->
476 <section class="page-header__section col-12 ng-hide" data-ng-show="showChassis()">384 <section class="page-header__section col-12 ng-hide" data-ng-show="showChassis()">
477 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>385 <p class="page-header__message page-header__message--error ng-hide" data-ng-show="error">{$ error $}</p>
478 <div class="page-header__controls p-strip u-align--right u-no-padding--bottom">386 <div class="page-header__controls p-strip u-align--right u-no-padding--bottom">
diff --git a/webpack.config.js b/webpack.config.js
index 00dadcb..34da078 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -13,6 +13,7 @@ module.exports = {
13 glob.sync('./src/maasserver/static/js/angular/*.js'),13 glob.sync('./src/maasserver/static/js/angular/*.js'),
14 glob.sync('./src/maasserver/static/js/angular/controllers/*.js'),14 glob.sync('./src/maasserver/static/js/angular/controllers/*.js'),
15 glob.sync('./src/maasserver/static/js/angular/directives/*.js'),15 glob.sync('./src/maasserver/static/js/angular/directives/*.js'),
16 glob.sync('./src/maasserver/static/js/angular/directives/nodelist/*.js'),
16 glob.sync('./src/maasserver/static/js/angular/filters/*.js'),17 glob.sync('./src/maasserver/static/js/angular/filters/*.js'),
17 glob.sync('./src/maasserver/static/js/angular/services/*.js'),18 glob.sync('./src/maasserver/static/js/angular/services/*.js'),
18 glob.sync('./src/maasserver/static/js/angular/factories/*.js')19 glob.sync('./src/maasserver/static/js/angular/factories/*.js')

Subscribers

People subscribed via source and target branches