diff --git a/modules/CmpdRegBulkLoader/src/client/CmpdRegBulkLoader.coffee b/modules/CmpdRegBulkLoader/src/client/CmpdRegBulkLoader.coffee index a85eb931f..ff2de5973 100644 --- a/modules/CmpdRegBulkLoader/src/client/CmpdRegBulkLoader.coffee +++ b/modules/CmpdRegBulkLoader/src/client/CmpdRegBulkLoader.coffee @@ -229,8 +229,20 @@ class AssignedPropertyController extends AbstractFormController events: "change .bv_dbProperty": "handleDbPropertyChanged" "keyup .bv_defaultVal": "handleDefaultValChanged" + "change .bv_defaultVal": "handleDefaultValChanged" + "change .bv_defaultValSelect": "handleDefaultValChanged" "click .bv_deleteProperty": "clear" + dbPropertyUrls: + "Lot Chemist": "scientists" + "Parent Stereo Category": "stereoCategories" + "Project": "projects" + "Lot Physical State": "physicalStates" + "Lot Purity Measured By": "purityMeasuredBys" + "Lot Purity Operator": "operators" + "Lot Solution Amount Units": "solutionUnits" + "Units": "units" + initialize: (options) -> @options = options unless @model? @@ -248,7 +260,11 @@ class AssignedPropertyController extends AbstractFormController $(@el).html @template(@model.attributes) @$('.bv_sdfProperty').html(@model.get('sdfProperty')) @setupDbPropertiesSelect() - @$('.bv_defaultVal').val @model.get('defaultVal') + @setupInput() + if @dbPropertyUrl? + @selectListController.setSelectedCode @model.get('defaultVal') + else + @$('.bv_defaultVal').val @model.get('defaultVal') if @model.get('dbProperty') is "none" @$('.bv_defaultVal').attr 'disabled', 'disabled' @@ -297,15 +313,59 @@ class AssignedPropertyController extends AbstractFormController else @model.set required: false @model.set dbProperty: dbProp + @setupInput() @trigger 'assignedDbPropChanged' handleDefaultValChanged: -> - @model.set defaultVal: UtilityFunctions::getTrimmedInput @$('.bv_defaultVal') + if @dbPropertyUrl? + @model.set defaultVal: @selectListController.getSelectedCode() + else + @model.set defaultVal: UtilityFunctions::getTrimmedInput @$('.bv_defaultVal') clear: => @model.destroy() @trigger 'modelRemoved' + + setupSelect: -> + @selectList = new PickListList() + @selectList.url = "/cmpdreg/" + @dbPropertyUrl + @selectListController = new PickListSelect2Controller + el: @$('.bv_defaultValSelect') + collection: @selectList + insertFirstOption: new PickList + code: "" + name: "Select" + selectedCode: "" + backendSearch: false + + setupInput: => + # Alter input depending on dbProperty + dbProp = @model.get('dbProperty') + if @dbPropertyUrls[dbProp]? || dbProp.includes("Units") + @dbPropertyUrl = @dbPropertyUrls[dbProp] + if !@dbPropertyUrl? + @dbPropertyUrl = @dbPropertyUrls["Units"] + @setupSelect() + @$('.bv_defaultValSelect').show() + @$('.bv_defaultVal').hide() + else + @dbPropertyUrl = null + @$('.bv_defaultValSelect').hide() + if @selectListController? + @$('.bv_defaultValSelect').select2('destroy') + @selectListController.remove() + @selectListController.unbind() + @selectListController = null + @$('.bv_defaultVal').show() + # Show date picker if dbProperty is a date + if dbProp.includes("Lot Synthesis Date") + @$('.bv_defaultVal').datepicker(); + @$('.bv_defaultVal').datepicker( "option", "dateFormat", "yy-mm-dd" ); + @$('.bv_defaultVal').attr('placeholder', 'YYYY-MM-DD') + else + @$('.bv_defaultVal').datepicker('destroy'); + @$('.bv_defaultVal').attr('placeholder', '') class AssignedPropertiesListController extends AbstractFormController template: _.template($("#AssignedPropertiesListView").html()) diff --git a/modules/CmpdRegBulkLoader/src/client/CmpdRegBulkLoader.html b/modules/CmpdRegBulkLoader/src/client/CmpdRegBulkLoader.html index b4f96cd7a..7b0ae2552 100644 --- a/modules/CmpdRegBulkLoader/src/client/CmpdRegBulkLoader.html +++ b/modules/CmpdRegBulkLoader/src/client/CmpdRegBulkLoader.html @@ -216,6 +216,7 @@
+ diff --git a/modules/Components/src/client/PickList.coffee b/modules/Components/src/client/PickList.coffee index d3e27f36e..b29a76673 100644 --- a/modules/Components/src/client/PickList.coffee +++ b/modules/Components/src/client/PickList.coffee @@ -366,8 +366,10 @@ class PickListSelect2Controller extends PickListSelectController allowClear: true width: @width - # Conditionally add the ajax property - if @collection.url? + # Conditionally add the ajax property to enable backend searching + # If a url is provided, backend search is enabled by default but + # can be toggled off by setting the 'backendSearch' option to false + if @collection.url? && (!@options.backendSearch? || @options.backendSearch is true) select2Options.ajax = url: (params) => if !params.term?