From 3599537e428ddc89fb3c207c8a0ed8b4ee4c67e8 Mon Sep 17 00:00:00 2001 From: Luka Murn Date: Wed, 1 Mar 2017 09:09:44 +0100 Subject: [PATCH] Fix sample type groups edit color script so it works properly now Closes SCI-1078. --- .../samples/sample_types_groups.js | 50 +++++++++++-------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/app/assets/javascripts/samples/sample_types_groups.js b/app/assets/javascripts/samples/sample_types_groups.js index 78e602e7e..bf708d596 100644 --- a/app/assets/javascripts/samples/sample_types_groups.js +++ b/app/assets/javascripts/samples/sample_types_groups.js @@ -45,7 +45,6 @@ destroySampleTypeGroup(); initSampleColorPicker(newLi); appendCarretToColorPickerDropdown(); - editSampleGroupColor(); editSampleGroupForm(); } }); @@ -111,17 +110,6 @@ }); } - function editSampleGroupColor() { - $('.edit_sample_group a.color-btn').off(); - $('.edit_sample_group a.color-btn').on('click', function() { - var color = $(this).attr('data-value'); - var form = $(this).closest('form'); - $('select[name="sample_group[color]"]') - .val(color); - form.submit(); - }); - } - function bindNewSampleGroupAction() { $('#new_sample_group').off(); $('#new_sample_group').bind('ajax:success', function(ev, data) { @@ -131,7 +119,6 @@ $(li).insertAfter('.new-resource-form'); initSampleColorPicker(li); appendCarretToColorPickerDropdown(); - editSampleGroupColor(); editSampleGroupForm(); destroySampleTypeGroup(); $('#new_sample_group').clearFormErrors(); @@ -194,7 +181,6 @@ destroySampleTypeGroup(); initSampleColorPicker(newLi); appendCarretToColorPickerDropdown(); - editSampleGroupColor(); $('#edit_sample_group_' + data.id) .find('[name="sample_group[name]"]') @@ -209,7 +195,6 @@ destroySampleTypeGroup(); initSampleColorPicker(newLi); appendCarretToColorPickerDropdown(); - editSampleGroupColor(); }).bind('ajax:error', function(ev, error){ $(this).clearFormErrors(); var msg = $.parseJSON(error.responseText); @@ -225,16 +210,42 @@ function initSampleGroupColor() { var elements = $('.edit-sample-group-color'); _.each(elements, function(el) { - var color = $(el).closest('[data-color]') - .attr('data-color'); - $(el).colorselector('setColor', color); + initSampleColorPicker(el); }); } function initSampleColorPicker(el) { - var element = $(el).find('.edit-sample-group-color'); + var element; + if ($(el).is('.edit-sample-group-color')) { + element = $(el); + } else { + element = $(el).find('.edit-sample-group-color'); + } var color = $(element).closest('[data-color]').attr('data-color'); $(element).colorselector('setColor', color); + + // Bind on buttons + var btns = $(element).closest('.edit_sample_group').find('a.color-btn'); + btns.off(); + btns.on('click', function() { + var color = $(this).attr('data-value'); + $('select[name="sample_group[color]"]').val(color); + + var form = $(this).closest('form'); + form + .off('ajax:success ajax:error') + .on('ajax:success', function() { + }) + .on('ajax:error', function() { + form + .find('select') + .colorselector( + 'setColor', + form.closest('[data-color]').attr('data-color') + ); + }); + form.submit(); + }); } /** @@ -254,7 +265,6 @@ editSampleTypeForm(); destroySampleTypeGroup(); editSampleGroupForm(); - editSampleGroupColor(); initSampleGroupColor(); bindNewSampleGroupAction(); appendCarretToColorPickerDropdown();