diff --git a/src/js/widgets/query_info/query_info_template.html b/src/js/widgets/query_info/query_info_template.html
index e1cb38beb..92145f4db 100644
--- a/src/js/widgets/query_info/query_info_template.html
+++ b/src/js/widgets/query_info/query_info_template.html
@@ -50,27 +50,30 @@
-
OR
{{/if}}
-
-
-
-
+
+
+
+
+
+
+
@@ -107,7 +110,9 @@
{{feedback.name}} was not created, error occured.
{{feedback.error}}
{{else}}
+ {{#if feedback.name}}
Records were not added to {{feedback.name}}, error occurred.
+ {{/if}}
{{feedback.error}}
{{/if}}
diff --git a/src/js/widgets/query_info/query_info_widget.js b/src/js/widgets/query_info/query_info_widget.js
index 61e1bd796..a5f39a653 100644
--- a/src/js/widgets/query_info/query_info_widget.js
+++ b/src/js/widgets/query_info/query_info_widget.js
@@ -68,8 +68,7 @@ define([
'change #library-select': 'recordLibrarySelection',
'keyup .new-library-name': 'recordNewLibraryName',
'click .library-add-title': 'toggleLibraryDrawer',
- 'click .submit-add-to-library': 'libraryAdd',
- 'click .submit-create-library': 'libraryCreate',
+ 'click .submit-add-to-library': 'libraryAddOrCreate',
},
recordLibrarySelection: function(e) {
@@ -84,42 +83,60 @@ define([
this.model.set('selectedVsAll', $(e.currentTarget).val());
},
- libraryAdd: function() {
- // show loading view
- this.$('.submit-add-to-library').html(
- ''
- );
-
+ libraryAddOrCreate: function() {
var data = {};
- // we have the selected library in the model but only if there was a select event, so query DOM
- data.libraryID = this.$('#library-select').val();
+ const selected = this.$('#library-select').val();
+ const createNew = this.model.get('newLibraryName');
- if (this.model.get('selected')) {
- data.recordsToAdd = this.$('#all-vs-selected').val();
- } else {
- data.recordsToAdd = 'all';
+ // if selected existing library
+ if (selected !== '0' && !createNew) {
+ data.libraryID = this.$('#library-select').val();
+ if (this.model.get('selected')) {
+ data.recordsToAdd = this.$('#all-vs-selected').val();
+ } else {
+ data.recordsToAdd = 'all';
+ }
+ // show loading view
+ this.$('.submit-add-to-library').html(
+ ''
+ );
+ this.trigger('library-add', data);
}
- this.trigger('library-add', data);
- },
- libraryCreate: function() {
- // show loading view
- this.$('.submit-create-library').html(
- ''
- );
+ // else if creating new library
+ else if (selected === '0' && createNew) {
+ data.name = this.model.get('newLibraryName');
+ if (this.model.get('selected')) {
+ data.recordsToAdd = this.$('#all-vs-selected').val();
+ } else {
+ data.recordsToAdd = 'all';
+ }
- var data = {};
+ data.name = this.model.get('newLibraryName') || '';
+ data.name = data.name.trim();
+ // show loading view
+ this.$('.submit-add-to-library').html(
+ ''
+ );
+ this.trigger('library-create', data);
+ }
- if (this.model.get('selected')) {
- data.recordsToAdd = this.$('#all-vs-selected').val();
- } else {
- data.recordsToAdd = 'all';
+ // both selected, invalid
+ else if (selected !== '0' && createNew) {
+ this.model.set('feedback', {
+ success: false,
+ error: 'Either select from an existing or create a new one',
+ });
}
- data.name = this.model.get('newLibraryName') || '';
- data.name = data.name.trim();
- this.trigger('library-create', data);
+ // none selected, invalid
+ else {
+ this.model.set('feedback', {
+ success: false,
+ error: 'Select from an existing library or create a new one',
+ });
+ }
},
toggleLibraryDrawer: function() {
@@ -269,6 +286,7 @@ define([
.done(function(response, status) {
var numAlreadyInLib =
response.numBibcodesRequested - parseInt(response.number_added);
+ that.model.set('selectedLibrary', undefined);
that.model.set('feedback', {
success: true,
name: name,
diff --git a/src/js/wraps/abstract_page_library_add/template.html b/src/js/wraps/abstract_page_library_add/template.html
index 36c182849..3d96783a7 100644
--- a/src/js/wraps/abstract_page_library_add/template.html
+++ b/src/js/wraps/abstract_page_library_add/template.html
@@ -27,22 +27,24 @@
-
OR
{{/if}}
+
+
+
+
+
+
-
-
-
-
-
+
diff --git a/src/styles/sass/ads-sass/results-page-widgets.scss b/src/styles/sass/ads-sass/results-page-widgets.scss
index 50eebc38d..33d88aa8a 100644
--- a/src/styles/sass/ads-sass/results-page-widgets.scss
+++ b/src/styles/sass/ads-sass/results-page-widgets.scss
@@ -126,8 +126,8 @@
}
.s-library-select {
display: inline;
- width: 70%;
- max-width: 166px;
+ // width: 70%;
+ // max-width: 166px;
}
}
diff --git a/test/mocha/js/widgets/query_info_widget.spec.js b/test/mocha/js/widgets/query_info_widget.spec.js
index 96cf3de04..79712b7a3 100644
--- a/test/mocha/js/widgets/query_info_widget.spec.js
+++ b/test/mocha/js/widgets/query_info_widget.spec.js
@@ -120,18 +120,19 @@ define([
expect($("#test #all-vs-selected")[0].options[0].value).to.eql("selected");
expect($("#test #all-vs-selected")[0].options[1].value).to.eql("all");
- expect($("#test #library-select")[0].options[1].value).to.eql("1");
- expect($("#test #library-select")[0].options[1].textContent).to.eql("Stars? Stars!!! ()");
-
+ expect($("#test #library-select")[0].options[1].value).to.eql("2");
+ expect($("#test #library-select")[0].options[1].textContent).to.eql("I See the Moon ()");
+ $('#test #library-select').val('2');
$("#test .submit-add-to-library").click();
- expect(fakeLibraryController.addBibcodesToLib.args[0][0]).to.eql({library: "2", bibcodes: "selected"});
+ expect(fakeLibraryController.addBibcodesToLib.args[0][0]).to.eql({ library: '2', bibcodes: 'selected' });
$("#test input[name=new-library-name]").val("fakeName");
$("#test input[name=new-library-name]").trigger("keyup");
- $("#test .submit-create-library").click();
+ $('#test #library-select').val('0');
+ $('#test .submit-add-to-library').click();
expect(fakeLibraryController.createLibAndAddBibcodes.args[0][0]).to.eql({ bibcodes: "selected", name : "fakeName" });