Bugzilla – Attachment 108360 Details for
Bug 25728
Add the ability to create a new authorised value within the cataloguing module
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 25728: Fix the clone field feature
Bug-25728-Fix-the-clone-field-feature.patch (text/plain), 9.07 KB, created by
Jonathan Druart
on 2020-08-16 11:43:09 UTC
(
hide
)
Description:
Bug 25728: Fix the clone field feature
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2020-08-16 11:43:09 UTC
Size:
9.07 KB
patch
obsolete
>From ad1d2257cd53cbb9ebb071339ea56ed083370f7e Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Tue, 9 Jun 2020 17:57:19 +0200 >Subject: [PATCH] Bug 25728: Fix the clone field feature > >Sponsored-by: Orex Digital > >Signed-off-by: Hugo Agud <hagud@orex.es> >--- > koha-tmpl/intranet-tmpl/prog/js/cataloging.js | 150 +++++++++--------- > 1 file changed, 71 insertions(+), 79 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/js/cataloging.js b/koha-tmpl/intranet-tmpl/prog/js/cataloging.js >index 4d775bc8a2..14371b1c60 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/cataloging.js >+++ b/koha-tmpl/intranet-tmpl/prog/js/cataloging.js >@@ -77,21 +77,49 @@ function ExpandField(index) { > } > } > >+var current_select2; > var Select2Utils = { >- removeSelect2: function(element) { >+ removeSelect2: function(selects) { > if ($.fn.select2) { >- var selects = element.getElementsByTagName('select'); >- for (var i=0; i < selects.length; i++) { >- $(selects[i]).select2('destroy'); >- } >+ $(selects).each(function(){ >+ $(this).select2('destroy'); >+ }); > } > }, > >- initSelect2: function(element) { >+ initSelect2: function(selects) { > if ($.fn.select2) { >- var selects = element.getElementsByTagName('select'); >- for (var i=0; i < selects.length; i++) { >- $(selects[i]).select2(); >+ if ( ! CAN_user_parameters_manage_auth_values ) { >+ $(selects).select2(); >+ } else { >+ $(selects).select2({ >+ tags: true, >+ createTag: function (tag) { >+ return { >+ id: tag.term, >+ text: tag.term, >+ newTag: true >+ }; >+ }, >+ templateResult: function(state) { >+ if (state.newTag) { >+ return state.text + " " + "(select to create)"; >+ } >+ return state.text; >+ } >+ }).on("select2:select", function(e) { >+ if(e.params.data.newTag){ >+ current_select2 = this; >+ var category = $(this).data("category"); >+ $("#avCreate #new_av_category").html(category); >+ $("#avCreate input[name='category']").val(category); >+ $("#avCreate input[name='value']").val(e.params.data.text); >+ $("#avCreate input[name='description']").val(e.params.data.text); >+ >+ $(this).val($(this).find("option:first").val()).trigger('change'); >+ $('#avCreate').modal({show:true}); >+ } >+ }); > } > } > } >@@ -104,7 +132,7 @@ var Select2Utils = { > */ > function CloneField(index, hideMarc, advancedMARCEditor) { > var original = document.getElementById(index); //original <li> >- Select2Utils.removeSelect2(original); >+ Select2Utils.removeSelect2($(original).find('select')); > > var clone = original.cloneNode(true); > var new_key = CreateKey(); >@@ -262,8 +290,8 @@ function CloneField(index, hideMarc, advancedMARCEditor) { > > $("ul.sortable_subfield", clone).sortable(); > >- Select2Utils.initSelect2(original); >- Select2Utils.initSelect2(clone); >+ Select2Utils.initSelect2($(original).find('select')); >+ Select2Utils.initSelect2($(clone).find('select')); > } > > >@@ -274,7 +302,7 @@ function CloneField(index, hideMarc, advancedMARCEditor) { > */ > function CloneSubfield(index, advancedMARCEditor){ > var original = document.getElementById(index); //original <div> >- Select2Utils.removeSelect2(original); >+ Select2Utils.removeSelect2($(original).find('select')); > var clone = original.cloneNode(true); > var new_key = CreateKey(); > // set the attribute for the new 'li' subfields >@@ -357,8 +385,8 @@ function CloneSubfield(index, advancedMARCEditor){ > original.parentNode.insertBefore(clone,original.nextSibling); > > //Restablish select2 for the cloned elements. >- Select2Utils.initSelect2(original); >- Select2Utils.initSelect2(clone); >+ Select2Utils.initSelect2($(original).find('select')); >+ Select2Utils.initSelect2($(clone).find('select')); > > // delete data of cloned subfield > clone.querySelectorAll('input.input_marceditor').value = ""; >@@ -442,7 +470,7 @@ function CreateKey(){ > * @param original subfield div to clone > */ > function CloneItemSubfield(original){ >- Select2Utils.removeSelect2(original); >+ Select2Utils.removeSelect2($(original).find('select')); > var clone = original.cloneNode(true); > var new_key = CreateKey(); > >@@ -482,8 +510,8 @@ function CloneItemSubfield(original){ > > // insert this line on the page > original.parentNode.insertBefore(clone,original.nextSibling); >- Select2Utils.initSelect2(original); >- Select2Utils.initSelect2(clone); >+ Select2Utils.initSelect2($(original).find('select')); >+ Select2Utils.initSelect2($(clone).find('select')); > } > > /** >@@ -522,66 +550,30 @@ $(document).ready(function() { > }); > > if ( window.editor === undefined ) { // TODO This does not work with the advanced editor >- $('.subfield_line select[data-category=""]').select2(); // branches, itemtypes and cn_source >- >- if ( ! CAN_user_parameters_manage_auth_values ) { >- $('.subfield_line select[data-category!=""]').select2(); >- } else { >- var current_select2; >- $('.subfield_line select[data-category!=""]').select2({ >- tags: true, >- createTag: function (tag) { >- return { >- id: tag.term, >- text: tag.term, >- newTag: true >- }; >- }, >- templateResult: function(state) { >- if (state.newTag) { >- return state.text + " " + "(select to create)"; >- } >- return state.text; >- } >- }).on("select2:select", function(e) { >- if(e.params.data.newTag){ >- >- var category = $(this).data("category"); >- $("#avCreate #new_av_category").html(category); >- $("#avCreate input[name='category']").val(category); >- $("#avCreate input[name='value']").val(e.params.data.text); >- $("#avCreate input[name='description']").val(e.params.data.text); >- $('#avCreate').modal({show:true}); >- >- $(current_select2).val($(current_select2).find("option:first").val()).trigger('change'); >- >- current_select2 = this; >- >- } >- }); >- >- $("#add_new_av").on("submit", function(){ >- var data = { >- category: $(this).find('input[name="category"]').val(), >- value: $(this).find('input[name="value"]').val(), >- description: $(this).find('input[name="description"]').val(), >- opac_description: $(this).find('input[name="opac_description"]').val(), >- }; >- $.ajax({ >- type: "POST", >- url: "/api/v1/authorised_values", >- data:JSON.stringify(data), >- success: function(response) { >- $('#avCreate').modal('hide'); >- >- $(current_select2).append('<option selected value="'+data['value']+'">'+data['description']+'</option>'); >- }, >- error: function(err) { >- $("#avCreate .error").html(_("Something went wrong, maybe the value already exists?")) >- } >- }); >- return false; >- }); >- } >+ Select2Utils.initSelect2($('.subfield_line select[data-category=""]')); // branches, itemtypes and cn_source >+ Select2Utils.initSelect2($('.subfield_line select[data-category!=""]')); > } >+ >+ $("#add_new_av").on("submit", function(){ >+ var data = { >+ category: $(this).find('input[name="category"]').val(), >+ value: $(this).find('input[name="value"]').val(), >+ description: $(this).find('input[name="description"]').val(), >+ opac_description: $(this).find('input[name="opac_description"]').val(), >+ }; >+ $.ajax({ >+ type: "POST", >+ url: "/api/v1/authorised_values", >+ data:JSON.stringify(data), >+ success: function(response) { >+ $('#avCreate').modal('hide'); >+ >+ $(current_select2).append('<option selected value="'+data['value']+'">'+data['description']+'</option>'); >+ }, >+ error: function(err) { >+ $("#avCreate .error").html(_("Something went wrong, maybe the value already exists?")) >+ } >+ }); >+ return false; >+ }); > }); >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 25728
:
105837
|
105838
|
105839
|
105840
|
105841
|
105842
|
105852
|
106696
|
106697
|
106698
|
106699
|
106700
|
106701
|
106702
|
108356
|
108357
|
108358
|
108359
|
108360
|
108361
|
108362
|
108883
|
108884
|
108885
|
108886
|
108887
|
108888
|
108889
|
108890
|
108922
|
108923
|
108924
|
108925
|
108926
|
108927
|
108928
|
108929
|
108930
|
108931