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>
413 lines
12 KiB
JavaScript
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;
|
|
}
|
|
}
|
|
}
|