From 54de13de828499add95ced1591e8c76c287d56a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Zrim=C5=A1ek?= Date: Fri, 9 Dec 2016 17:22:09 +0100 Subject: [PATCH] Upon redirection when clicking the new sample type or group link, you're automatically in adding mode. [Fixes SCI-701] --- app/assets/javascripts/samples/sample_datatable.js | 4 ++-- .../javascripts/samples/sample_types_groups.js | 12 ++++++++++++ app/assets/javascripts/sitewide/utils.js | 6 ++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/samples/sample_datatable.js b/app/assets/javascripts/samples/sample_datatable.js index b6f914518..9e27d3d8f 100644 --- a/app/assets/javascripts/samples/sample_datatable.js +++ b/app/assets/javascripts/samples/sample_datatable.js @@ -759,7 +759,7 @@ function createSampleTypeSelect(data, selected) { .attr('value', val.id).text(val.name); $selectType.append($option); }); - $selectType.makeDropdownOptionsLinks(selected); + $selectType.makeDropdownOptionsLinks(selected, 'add-mode'); return $selectType; } @@ -791,7 +791,7 @@ function createSampleGroupSelect(data, selected) { $selectGroup.append($option); }); - $selectGroup.makeDropdownOptionsLinks(selected); + $selectGroup.makeDropdownOptionsLinks(selected, 'add-mode'); return $selectGroup; } diff --git a/app/assets/javascripts/samples/sample_types_groups.js b/app/assets/javascripts/samples/sample_types_groups.js index 386a31c59..ff1fd89f7 100644 --- a/app/assets/javascripts/samples/sample_types_groups.js +++ b/app/assets/javascripts/samples/sample_types_groups.js @@ -4,6 +4,7 @@ function showNewSampleTypeGroupForm() { $('#create-resource').on('click', function() { $('.new-resource-form').slideDown(); + $('#name-input').focus(); }); } @@ -211,6 +212,16 @@ }); } +/** + * Opens adding mode when redirected from samples page, when clicking link for + * adding sample type or group link + */ + function sampleTypeGroupEditMode() { + if (getParam('add-mode')) { + $('#create-resource').click(); + } + } + function initSampleTypesGroups() { showNewSampleTypeGroupForm(); newSampleTypeFormCancel(); @@ -223,6 +234,7 @@ initSampleGroupColor(); bindNewSampleGroupAction(); appendCarretToColorPickerDropdown(); + sampleTypeGroupEditMode(); } // initialize sample types/groups actions diff --git a/app/assets/javascripts/sitewide/utils.js b/app/assets/javascripts/sitewide/utils.js index ccef397d8..50224bb57 100644 --- a/app/assets/javascripts/sitewide/utils.js +++ b/app/assets/javascripts/sitewide/utils.js @@ -221,13 +221,15 @@ function initPageTutorialSteps(pageFirstStepN, pageLastStepN, nextPagePath, * attribute yourself, and the dropdown elments which don't have them, will get * '#' by default. * @param {number} selectedIdx Index of element to be selected + * @param {string} urlParam URL parameter to pass to the link URLs * @return {Object} This */ -$.fn.makeDropdownOptionsLinks = function(selectedIdx) { +$.fn.makeDropdownOptionsLinks = function(selectedIdx, urlParam) { selectedIdx = _.isUndefined(selectedIdx) ? 1 : selectedIdx; $(this).change(function() { - location = $(this).find('option:selected').attr('href'); + window.location.href = addParam($(this).find('option:selected') + .attr('href'), urlParam); }); $(this).find('option')