Lines 77-97
function ExpandField(index) {
Link Here
|
77 |
} |
77 |
} |
78 |
} |
78 |
} |
79 |
|
79 |
|
|
|
80 |
var current_select2; |
80 |
var Select2Utils = { |
81 |
var Select2Utils = { |
81 |
removeSelect2: function(element) { |
82 |
removeSelect2: function(selects) { |
82 |
if ($.fn.select2) { |
83 |
if ($.fn.select2) { |
83 |
var selects = element.getElementsByTagName('select'); |
84 |
$(selects).each(function(){ |
84 |
for (var i=0; i < selects.length; i++) { |
85 |
$(this).select2('destroy'); |
85 |
$(selects[i]).select2('destroy'); |
86 |
}); |
86 |
} |
|
|
87 |
} |
87 |
} |
88 |
}, |
88 |
}, |
89 |
|
89 |
|
90 |
initSelect2: function(element) { |
90 |
initSelect2: function(selects) { |
91 |
if ($.fn.select2) { |
91 |
if ($.fn.select2) { |
92 |
var selects = element.getElementsByTagName('select'); |
92 |
if ( ! CAN_user_parameters_manage_auth_values ) { |
93 |
for (var i=0; i < selects.length; i++) { |
93 |
$(selects).select2(); |
94 |
$(selects[i]).select2(); |
94 |
} else { |
|
|
95 |
$(selects).select2({ |
96 |
tags: true, |
97 |
createTag: function (tag) { |
98 |
return { |
99 |
id: tag.term, |
100 |
text: tag.term, |
101 |
newTag: true |
102 |
}; |
103 |
}, |
104 |
templateResult: function(state) { |
105 |
if (state.newTag) { |
106 |
return state.text + " " + "(select to create)"; |
107 |
} |
108 |
return state.text; |
109 |
} |
110 |
}).on("select2:select", function(e) { |
111 |
if(e.params.data.newTag){ |
112 |
current_select2 = this; |
113 |
var category = $(this).data("category"); |
114 |
$("#avCreate #new_av_category").html(category); |
115 |
$("#avCreate input[name='category']").val(category); |
116 |
$("#avCreate input[name='value']").val(e.params.data.text); |
117 |
$("#avCreate input[name='description']").val(e.params.data.text); |
118 |
|
119 |
$(this).val($(this).find("option:first").val()).trigger('change'); |
120 |
$('#avCreate').modal({show:true}); |
121 |
} |
122 |
}); |
95 |
} |
123 |
} |
96 |
} |
124 |
} |
97 |
} |
125 |
} |
Lines 104-110
var Select2Utils = {
Link Here
|
104 |
*/ |
132 |
*/ |
105 |
function CloneField(index, hideMarc, advancedMARCEditor) { |
133 |
function CloneField(index, hideMarc, advancedMARCEditor) { |
106 |
var original = document.getElementById(index); //original <li> |
134 |
var original = document.getElementById(index); //original <li> |
107 |
Select2Utils.removeSelect2(original); |
135 |
Select2Utils.removeSelect2($(original).find('select')); |
108 |
|
136 |
|
109 |
var clone = original.cloneNode(true); |
137 |
var clone = original.cloneNode(true); |
110 |
var new_key = CreateKey(); |
138 |
var new_key = CreateKey(); |
Lines 262-269
function CloneField(index, hideMarc, advancedMARCEditor) {
Link Here
|
262 |
|
290 |
|
263 |
$("ul.sortable_subfield", clone).sortable(); |
291 |
$("ul.sortable_subfield", clone).sortable(); |
264 |
|
292 |
|
265 |
Select2Utils.initSelect2(original); |
293 |
Select2Utils.initSelect2($(original).find('select')); |
266 |
Select2Utils.initSelect2(clone); |
294 |
Select2Utils.initSelect2($(clone).find('select')); |
267 |
} |
295 |
} |
268 |
|
296 |
|
269 |
|
297 |
|
Lines 274-280
function CloneField(index, hideMarc, advancedMARCEditor) {
Link Here
|
274 |
*/ |
302 |
*/ |
275 |
function CloneSubfield(index, advancedMARCEditor){ |
303 |
function CloneSubfield(index, advancedMARCEditor){ |
276 |
var original = document.getElementById(index); //original <div> |
304 |
var original = document.getElementById(index); //original <div> |
277 |
Select2Utils.removeSelect2(original); |
305 |
Select2Utils.removeSelect2($(original).find('select')); |
278 |
var clone = original.cloneNode(true); |
306 |
var clone = original.cloneNode(true); |
279 |
var new_key = CreateKey(); |
307 |
var new_key = CreateKey(); |
280 |
// set the attribute for the new 'li' subfields |
308 |
// set the attribute for the new 'li' subfields |
Lines 357-364
function CloneSubfield(index, advancedMARCEditor){
Link Here
|
357 |
original.parentNode.insertBefore(clone,original.nextSibling); |
385 |
original.parentNode.insertBefore(clone,original.nextSibling); |
358 |
|
386 |
|
359 |
//Restablish select2 for the cloned elements. |
387 |
//Restablish select2 for the cloned elements. |
360 |
Select2Utils.initSelect2(original); |
388 |
Select2Utils.initSelect2($(original).find('select')); |
361 |
Select2Utils.initSelect2(clone); |
389 |
Select2Utils.initSelect2($(clone).find('select')); |
362 |
|
390 |
|
363 |
// delete data of cloned subfield |
391 |
// delete data of cloned subfield |
364 |
clone.querySelectorAll('input.input_marceditor').value = ""; |
392 |
clone.querySelectorAll('input.input_marceditor').value = ""; |
Lines 442-448
function CreateKey(){
Link Here
|
442 |
* @param original subfield div to clone |
470 |
* @param original subfield div to clone |
443 |
*/ |
471 |
*/ |
444 |
function CloneItemSubfield(original){ |
472 |
function CloneItemSubfield(original){ |
445 |
Select2Utils.removeSelect2(original); |
473 |
Select2Utils.removeSelect2($(original).find('select')); |
446 |
var clone = original.cloneNode(true); |
474 |
var clone = original.cloneNode(true); |
447 |
var new_key = CreateKey(); |
475 |
var new_key = CreateKey(); |
448 |
|
476 |
|
Lines 482-489
function CloneItemSubfield(original){
Link Here
|
482 |
|
510 |
|
483 |
// insert this line on the page |
511 |
// insert this line on the page |
484 |
original.parentNode.insertBefore(clone,original.nextSibling); |
512 |
original.parentNode.insertBefore(clone,original.nextSibling); |
485 |
Select2Utils.initSelect2(original); |
513 |
Select2Utils.initSelect2($(original).find('select')); |
486 |
Select2Utils.initSelect2(clone); |
514 |
Select2Utils.initSelect2($(clone).find('select')); |
487 |
} |
515 |
} |
488 |
|
516 |
|
489 |
/** |
517 |
/** |
Lines 522-587
$(document).ready(function() {
Link Here
|
522 |
}); |
550 |
}); |
523 |
|
551 |
|
524 |
if ( window.editor === undefined ) { // TODO This does not work with the advanced editor |
552 |
if ( window.editor === undefined ) { // TODO This does not work with the advanced editor |
525 |
$('.subfield_line select[data-category=""]').select2(); // branches, itemtypes and cn_source |
553 |
Select2Utils.initSelect2($('.subfield_line select[data-category=""]')); // branches, itemtypes and cn_source |
526 |
|
554 |
Select2Utils.initSelect2($('.subfield_line select[data-category!=""]')); |
527 |
if ( ! CAN_user_parameters_manage_auth_values ) { |
|
|
528 |
$('.subfield_line select[data-category!=""]').select2(); |
529 |
} else { |
530 |
var current_select2; |
531 |
$('.subfield_line select[data-category!=""]').select2({ |
532 |
tags: true, |
533 |
createTag: function (tag) { |
534 |
return { |
535 |
id: tag.term, |
536 |
text: tag.term, |
537 |
newTag: true |
538 |
}; |
539 |
}, |
540 |
templateResult: function(state) { |
541 |
if (state.newTag) { |
542 |
return state.text + " " + "(select to create)"; |
543 |
} |
544 |
return state.text; |
545 |
} |
546 |
}).on("select2:select", function(e) { |
547 |
if(e.params.data.newTag){ |
548 |
|
549 |
var category = $(this).data("category"); |
550 |
$("#avCreate #new_av_category").html(category); |
551 |
$("#avCreate input[name='category']").val(category); |
552 |
$("#avCreate input[name='value']").val(e.params.data.text); |
553 |
$("#avCreate input[name='description']").val(e.params.data.text); |
554 |
$('#avCreate').modal({show:true}); |
555 |
|
556 |
$(current_select2).val($(current_select2).find("option:first").val()).trigger('change'); |
557 |
|
558 |
current_select2 = this; |
559 |
|
560 |
} |
561 |
}); |
562 |
|
563 |
$("#add_new_av").on("submit", function(){ |
564 |
var data = { |
565 |
category: $(this).find('input[name="category"]').val(), |
566 |
value: $(this).find('input[name="value"]').val(), |
567 |
description: $(this).find('input[name="description"]').val(), |
568 |
opac_description: $(this).find('input[name="opac_description"]').val(), |
569 |
}; |
570 |
$.ajax({ |
571 |
type: "POST", |
572 |
url: "/api/v1/authorised_values", |
573 |
data:JSON.stringify(data), |
574 |
success: function(response) { |
575 |
$('#avCreate').modal('hide'); |
576 |
|
577 |
$(current_select2).append('<option selected value="'+data['value']+'">'+data['description']+'</option>'); |
578 |
}, |
579 |
error: function(err) { |
580 |
$("#avCreate .error").html(_("Something went wrong, maybe the value already exists?")) |
581 |
} |
582 |
}); |
583 |
return false; |
584 |
}); |
585 |
} |
586 |
} |
555 |
} |
|
|
556 |
|
557 |
$("#add_new_av").on("submit", function(){ |
558 |
var data = { |
559 |
category: $(this).find('input[name="category"]').val(), |
560 |
value: $(this).find('input[name="value"]').val(), |
561 |
description: $(this).find('input[name="description"]').val(), |
562 |
opac_description: $(this).find('input[name="opac_description"]').val(), |
563 |
}; |
564 |
$.ajax({ |
565 |
type: "POST", |
566 |
url: "/api/v1/authorised_values", |
567 |
data:JSON.stringify(data), |
568 |
success: function(response) { |
569 |
$('#avCreate').modal('hide'); |
570 |
|
571 |
$(current_select2).append('<option selected value="'+data['value']+'">'+data['description']+'</option>'); |
572 |
}, |
573 |
error: function(err) { |
574 |
$("#avCreate .error").html(_("Something went wrong, maybe the value already exists?")) |
575 |
} |
576 |
}); |
577 |
return false; |
578 |
}); |
587 |
}); |
579 |
}); |
588 |
- |
|
|