Koha/koha-tmpl/intranet-tmpl/prog/en/js/merge-record.js
Pasi Kallinen a30f9e3d65 Bug 12150 - Use more javascript string formatting in intranet for translated strings.
http://bugs.koha-community.org/show_bug.cgi?id=12150

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>

No bug number on description
No commit message
No test plan
No koha-qa errors

I only signed this because it's useful for translations
but we can live without it, so is up to QA now

Tested some easy messages (e.g. syspref saving), and
updated PO files to check new strings.
Inspected the code, I think that there are no errors.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
2014-07-03 09:52:48 -03:00

139 lines
4.6 KiB
JavaScript

/*
* Merging 2 source records into a destination record
*/
/**
* Check or uncheck a field or subfield in a source record
* @param pField the checkbox clicked
*/
function toggleField(pField) {
// Getting the key of the clicked checkbox
var ckid = $(pField).attr("id");
var tab = ckid.split('_');
var source = tab[1]; // From which record the click came from
var key = tab[2];
var type = $(pField).attr("class");
// Getting field/subfield
var field;
var subfield;
if (type == "subfieldpick") {
field = $(pField).parent().parent().parent().find("span.field").text();
subfield = $(pField).parent().find("span.subfield").text();
} else {
field = $(pField).parent().find("span.field").text();
}
// If the field has just been checked
if (pField.checked) {
// We check for repeatability
var canbeadded = true;
if (type == "subfieldpick") {
var repeatable = 1;
var alreadyexists = 0;
if (tagslib[field] && tagslib[field][subfield]) {
// Note : we can't use the dot notation here (tagslib.021) because the key is a number
repeatable = tagslib[field][subfield].repeatable;
// TODO : Checking for subfields
}
} else {
if (tagslib[field]) {
repeatable = tagslib[field].repeatable;
alreadyexists = $("#resultul span.field:contains(" + field + ")");
if (repeatable == 0 && alreadyexists.length != 0) {
canbeadded = false;
}
}
}
// If the field is not repeatable, we check if it already exists in the result table
if (canbeadded == false) {
alert(MSG_MERGEREC_ALREADY_EXISTS);
pField.checked = 0;
} else {
// Cloning the field or subfield we picked
var clone = $(pField).parent().clone();
// Removing the checkboxes from it
$(clone).find("input.subfieldpick, input.fieldpick").each(function() {
$(this).remove();
});
// If we are a subfield
if (type == "subfieldpick") {
// then we need to find who is our parent field...
fieldkey = $(pField).parent().parent().parent().attr("id");
// Find where to add the subfield
// First, check if the field is not already in the destination record
if ($("#resultul li#" + fieldkey).length > 0) {
// If so, we add our field to it
$("#resultul li#" + fieldkey + " ul").append(clone);
} else {
// If not, we add the subfield to the first matching field
var where = 0;
$("#resultul li span.field").each(function() {
if (where == 0 && $(this).text() == field) {
where = this;
}
});
// If there is no matching field in the destination record
if (where == 0) {
// TODO:
// We select the whole field and removing non-selected subfields, instead of...
// Alerting the user
alert(MSG_MERGEREC_SUBFIELD.format(field));
pField.checked = false;
} else {
$(where).nextAll("ul").append(clone);
}
}
} else {
// If we are a field
var where = 0;
// Find where to add the field
$("#resultul li span.field").each(function() {
if (where == 0 && $(this).text() > field) {
where = this;
}
});
$(where).parent().before(clone);
}
}
} else {
// Else, we remove it from the results tab
$("ul#resultul li#k" + key).remove();
}
}
/*
* Add actions on field and subfields checkboxes
*/
$(document).ready(function(){
// When a field is checked / unchecked
$('input.fieldpick').click(function() {
toggleField(this);
// (un)check all subfields
var ischecked = this.checked;
$(this).parent().find("input.subfieldpick").each(function() {
this.checked = ischecked;
});
});
// When a field or subfield is checked / unchecked
$("input.subfieldpick").click(function() {
toggleField(this);
});
});