Koha/koha-tmpl/intranet-tmpl/prog/js/marc_modification_templates.js
Jonathan Druart 54e744d5ec
Bug 26553: Replace KohaTable with kohaTable
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>

JD Amended patch: replace wrong occurrences of "kohatable" with "kohaTable"

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-02-24 14:29:54 +01:00

413 lines
12 KiB
JavaScript

/* global __ kohaTable table_settings */
$(document).ready(function () {
window.modaction_legend_innerhtml = $("#modaction_legend").text();
window.action_submit_value = $("#action_submit").val();
$("#select_template").find("input:submit").hide();
$("#select_template").change(function () {
$("#select_template").submit();
});
$("span.match_regex_prefix").hide();
$("span.match_regex_suffix").hide();
$("#add_action").submit(function () {
var action = $("#action").val();
if (
action == "move_field" ||
action == "copy_field" ||
action == "copy_and_replace_field"
) {
if (
$("#from_subfield").val().length !=
$("#to_subfield").val().length
) {
if (
$("#to_field").val() >= 10 &&
$("#to_subfield").val().length > 0 &&
$("#from_field").val() >= 10 &&
$("#from_subfield").val().length > 0
) {
alert(
__("Both subfield values should be filled or empty.")
);
return false;
}
}
if ($("#to_field").val().length <= 0) {
alert(__("The destination should be filled."));
return false;
}
if (
($("#to_field").val() < 10 &&
$("#to_subfield").val().length > 0) ||
($("#from_field").val() < 10 &&
$("#from_subfield").val().length > 0)
) {
alert(
__(
"If the field is a control field, the subfield should be empty"
)
);
return false;
}
}
if (action == "update_field") {
if ($("#from_subfield").val().length <= 0) {
alert(__("The source subfield should be filled for update."));
return false;
}
}
if ($("#from_field").val().length <= 0) {
alert(__("The source field should be filled."));
return false;
}
if (
$("#conditional").val() == "if" ||
$("#conditional").val() == "unless"
) {
if ($("#conditional_field").val() == "") {
alert(__("The conditional field should be filled."));
return false;
}
if ($("#conditional_comparison").val() == "") {
alert(
__("The conditional comparison operator should be filled.")
);
return false;
}
if (
$("#conditional_value").val() == "" &&
($("#conditional_comparison").val() == "equals" ||
$("#conditional_comparison").val() == "not_equals")
) {
if (
document.getElementById("conditional_regex").checked == true
) {
alert(
__(
"The conditional regular expression should be filled."
)
);
return false;
} else {
alert(__("The conditional value should be filled."));
return false;
}
}
}
});
$("#conditional_field,#from_field").change(function () {
updateAllEvery();
});
$(".new_action").on("click", function (e) {
e.preventDefault();
cancelEditAction();
$("#no_defined_actions").hide();
$("#add_action").show();
$("#action").focus();
});
$(".duplicate_template").on("click", function (e) {
e.preventDefault();
var template_id = $(this).data("template_id");
$("#duplicate_a_template").val(template_id);
$("#duplicate_current_template").val(1);
});
$("#createTemplate").on("shown.bs.modal", function (e) {
e.preventDefault();
$("#template_name").focus();
});
$("#duplicate_a_template").on("change", function (e) {
e.preventDefault();
if (this.value === "") {
$("#duplicate_current_template").val("");
} else {
$("#duplicate_current_template").val(1);
}
});
$(".edit_action").on("click", function () {
var mmta_id = $(this).data("mmta_id");
var mmta = $.grep(mmtas, function (elt, id) {
return elt["mmta_id"] == mmta_id;
});
editAction(mmta[0]);
updateAllEvery();
});
$("#templatest").kohaTable({}, table_settings);
$(".confirm-delete-action").on("click", function () {
return confirm(
__("Are you sure you wish to delete this template action?")
);
});
$(".confirm-delete-template").on("click", function () {
return confirm(__("Are you sure you wish to delete this template?"));
});
});
function updateAllEvery() {
if ($("#conditional_field").is(":visible")) {
if (
$("#conditional_field").val() == $("#from_field").val() &&
$("#from_field").val().length > 0
) {
$("#field_number option[value='0']").html(__("Every"));
} else {
$("#field_number option[value='0']").html(__("All"));
}
}
}
function onActionChange(selectObj) {
// get the index of the selected option
var idx = selectObj.selectedIndex;
// get the value of the selected option
var action = selectObj.options[idx].value;
switch (action) {
case "delete_field":
show("field_number_block");
hide("with_value_block");
hide("to_field_block");
break;
case "add_field":
hide("field_number_block");
show("with_value_block");
hide("to_field_block");
break;
case "update_field":
hide("field_number_block");
show("with_value_block");
hide("to_field_block");
break;
case "move_field":
show("field_number_block");
hide("with_value_block");
show("to_field_block");
break;
case "copy_field":
show("field_number_block");
hide("with_value_block");
show("to_field_block");
break;
case "copy_and_replace_field":
show("field_number_block");
hide("with_value_block");
show("to_field_block");
break;
}
}
function onConditionalChange(selectObj) {
// get the index of the selected option
var idx = selectObj.selectedIndex;
// get the value of the selected option
var action = selectObj.options[idx].value;
switch (action) {
case "":
hide("conditional_block");
break;
case "if":
case "unless":
show("conditional_block");
break;
}
}
function onConditionalComparisonChange(selectObj) {
// get the index of the selected option
var idx = selectObj.selectedIndex;
// get the value of the selected option
var action = selectObj.options[idx].value;
switch (action) {
case "equals":
case "not_equals":
show("conditional_comparison_block");
break;
default:
hide("conditional_comparison_block");
break;
}
}
function onToFieldRegexChange(checkboxObj) {
if (checkboxObj.checked) {
show("to_field_regex_value_block");
} else {
hide("to_field_regex_value_block");
}
}
function onConditionalRegexChange(checkboxObj) {
if (checkboxObj.checked) {
$("span.match_regex_prefix").show();
$("span.match_regex_suffix").show();
} else {
$("span.match_regex_prefix").hide();
$("span.match_regex_suffix").hide();
}
}
function show(eltId) {
elt = document.getElementById(eltId);
elt.style.display = "inline";
}
function hide(eltId) {
clearFormElements(eltId);
elt = document.getElementById(eltId);
elt.style.display = "none";
}
function clearFormElements(divId) {
myBlock = document.getElementById(divId);
var inputElements = myBlock.getElementsByTagName("input");
for (var i = 0; i < inputElements.length; i++) {
switch (inputElements[i].type) {
case "text":
inputElements[i].value = "";
break;
case "checkbox":
inputElements[i].checked = false;
break;
}
}
var selectElements = myBlock.getElementsByTagName("select");
for (var i = 0; i < selectElements.length; i++) {
selectElements[i].selectedIndex = 0;
}
}
var modaction_legend_innerhtml;
var action_submit_value;
function editAction(mmta) {
$("#add_action").show();
document.getElementById("mmta_id").value = mmta["mmta_id"];
setSelectByValue("action", mmta["action"]);
$("#action").change();
setSelectByValue("field_number", mmta["field_number"]);
document.getElementById("from_field").value = mmta["from_field"];
document.getElementById("from_subfield").value = mmta["from_subfield"];
document.getElementById("field_value").value = mmta["field_value"];
document.getElementById("to_field").value = mmta["to_field"];
document.getElementById("to_subfield").value = mmta["to_subfield"];
if (
mmta["regex_search"] == "" &&
mmta["to_regex_replace"] == "" &&
mmta["to_regex_modifiers"] == ""
) {
$("#to_field_regex").prop("checked", false).change();
} else {
$("#to_field_regex").prop("checked", true).change();
$("#to_regex_search").val(mmta["to_regex_search"]);
$("#to_regex_replace").val(mmta["to_regex_replace"]);
$("#to_regex_modifiers").val(mmta["to_regex_modifiers"]);
}
setSelectByValue("conditional", mmta["conditional"]);
$("#conditional").change();
document.getElementById("conditional_field").value =
mmta["conditional_field"];
document.getElementById("conditional_subfield").value =
mmta["conditional_subfield"];
setSelectByValue("conditional_comparison", mmta["conditional_comparison"]);
$("#conditional_comparison").change();
document.getElementById("conditional_value").value =
mmta["conditional_value"];
document.getElementById("conditional_regex").checked = parseInt(
mmta["conditional_regex"]
);
$("#conditional_regex").change();
document.getElementById("description").value = mmta["description"];
window.modaction_legend_innerhtml =
document.getElementById("modaction_legend").innerHTML;
document.getElementById("modaction_legend").innerHTML = __(
"Edit action %s"
).format(mmta["ordering"]);
window.action_submit_value = document.getElementById("action_submit").value;
document.getElementById("action_submit").value = __("Update action");
}
function cancelEditAction() {
document.getElementById("mmta_id").value = "";
setSelectByValue("action", "delete_field");
$("#action").change();
document.getElementById("from_field").value = "";
document.getElementById("from_subfield").value = "";
document.getElementById("field_value").value = "";
document.getElementById("to_field").value = "";
document.getElementById("to_subfield").value = "";
$("#to_regex_search").val("");
$("#to_regex_replace").val("");
$("#to_regex_modifiers").val("");
$("#description").val("");
$("#to_field_regex").prop("checked", false).change();
setSelectByValue("conditional", "");
$("#conditional").change();
document.getElementById("conditional_field").value = "";
document.getElementById("conditional_subfield").value = "";
setSelectByValue("conditional_comparison", "");
$("#conditional_comparison").change();
document.getElementById("conditional_value").value = "";
document.getElementById("conditional_regex").checked = false;
document.getElementById("modaction_legend").innerHTML =
window.modaction_legend_innerhtml;
document.getElementById("action_submit").value = window.action_submit_value;
if ($("#template_actions").length < 1) {
$("#no_defined_actions").show();
}
$("#add_action").hide();
}
function setSelectByValue(selectId, value) {
s = document.getElementById(selectId);
for (i = 0; i < s.options.length; i++) {
if (s.options[i].value == value) {
s.selectedIndex = i;
}
}
}