aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSawyer Bergeron <sbergeron@iol.unh.edu>2021-03-29 18:05:56 +0000
committerGerrit Code Review <gerrit@opnfv.org>2021-03-29 18:05:56 +0000
commit7addb00710a5865a9e6bc38f1d826aa0323ee67e (patch)
treec88b37333675ffcc759480a0dd6d90aa42a50fbc /src
parentf6472a3cca58ca428200265acf720174ed36ea7e (diff)
parentf6753ae2c5f54fb79375214590e565218b1bf0d7 (diff)
Merge "Fixes error on installer fail"
Diffstat (limited to 'src')
-rw-r--r--src/booking/views.py3
-rw-r--r--src/static/js/dashboard.js58
2 files changed, 43 insertions, 18 deletions
diff --git a/src/booking/views.py b/src/booking/views.py
index c41a7d6..66cb594 100644
--- a/src/booking/views.py
+++ b/src/booking/views.py
@@ -63,9 +63,12 @@ def quick_create(request):
return redirect(reverse('booking:booking_detail', kwargs={'booking_id': booking.id}))
except Exception as e:
messages.error(request, "Whoops, an error occurred: " + str(e))
+ context.update(drop_filter(request.user))
return render(request, 'booking/quick_deploy.html', context)
else:
messages.error(request, "Looks like the form didn't validate. Check that you entered everything correctly")
+ context['status'] = 'false'
+ context.update(drop_filter(request.user))
return render(request, 'booking/quick_deploy.html', context)
diff --git a/src/static/js/dashboard.js b/src/static/js/dashboard.js
index 12d8ee6..b0d2b6b 100644
--- a/src/static/js/dashboard.js
+++ b/src/static/js/dashboard.js
@@ -225,19 +225,35 @@ class MultipleSelectFilterWidget {
make_selection(initial_data){
if(!initial_data || jQuery.isEmptyObject(initial_data))
return;
- for(let item_class in initial_data) {
- const selected_items = initial_data[item_class];
- for( let node_id in selected_items ){
- const node = this.filter_items[node_id];
- const selection_data = selected_items[node_id]
- if( selection_data.selected ) {
- this.select(node);
- this.markAndSweep(node);
- this.updateResult(node);
- }
- if(node['multiple']){
- this.make_multiple_selection(node, selection_data);
- }
+
+ // Need to sort through labs first
+ let initial_lab = initial_data['lab'];
+ let initial_resources = initial_data['resource'];
+
+ for( let node_id in initial_lab) { // This should only be length one
+ const node = this.filter_items[node_id];
+ const selection_data = initial_lab[node_id];
+ if( selection_data.selected ) {
+ this.select(node);
+ this.markAndSweep(node);
+ this.updateResult(node);
+ }
+ if(node['multiple']){
+ this.make_multiple_selection(node, selection_data);
+ }
+ this.currentLab = node;
+ }
+
+ for( let node_id in initial_resources){
+ const node = this.filter_items[node_id];
+ const selection_data = initial_resources[node_id];
+ if( selection_data.selected ) {
+ this.select(node);
+ this.markAndSweep(node);
+ this.updateResult(node);
+ }
+ if(node['multiple']){
+ this.make_multiple_selection(node, selection_data);
}
}
}
@@ -338,10 +354,13 @@ class MultipleSelectFilterWidget {
this.available_resources = JSON.parse(node['available_resources']);
this.updateAvailibility();
} else {
- // a lab is already selected, clear already selected resources
- if(confirm('Unselecting a lab will reset all selected resources, are you sure?'))
+ // a lab is already selected, clear already selected resources
+ if(confirm('Unselecting a lab will reset all selected resources, are you sure?')) {
location.reload();
+ return false;
+ }
}
+ return true;
}
updateAvailibility() {
@@ -357,7 +376,6 @@ class MultipleSelectFilterWidget {
let quantityDescription;
let quantityNode;
- // console.log(this.available_resources);
for(let resource in required_resources) {
currCount = Math.floor(this.available_resources[resource] / required_resources[resource]);
if(currCount < leastAvailable)
@@ -416,13 +434,17 @@ class MultipleSelectFilterWidget {
}
processClick(id){
+ let lab_check;
const node = this.filter_items[id];
if(!node['selectable'])
return;
// If they are selecting a lab, update accordingly
- if (node['class'] == 'lab')
- this.labCheck(node);
+ if (node['class'] == 'lab') {
+ lab_check = this.labCheck(node);
+ if (!lab_check)
+ return;
+ }
// Can only select a resource if a lab is selected
if (!this.currentLab) {