Owen Leonard
94f7ad3e60
This patch moves translatable strings out of catalog-strings.inc into catalog.js, wrapped in the double-underscore function for translation. To test that each affected string correctly appears in the interface: - View the details for a bibliographic record which has items attached. - From the Edit menu, choose "Delete record." You should get an alert, "X item(s) are attached to this record. You must delete all items before deleting this record." - From the Edit menu, choose "Delete all items." You should get an alert, "Are you sure you want to delete the X attached items?" - When logged in as a user with acquisitions and cataloging privileges, view the details for a bibliographic record which is used in an order in Acquisitions. Delete any items attached. - Choose "Delete record" from the Edit menu. You should get an alert, "Warning: This record is used in X order(s). Deleting it could cause serious issues on acquisition module. Are you sure you want to delete this record?" - In Acquisitions, view a basket containing orders. Cancel the order for a title in the basket. Open the detail page for the title in the cancelled order. Try to delete it. You should get an confirmation, "X deleted order(s) are using this record. Are you sure you want to delete this record?" - Perform the same test as a user with cataloging but not acquisitions privileges. The alert should say "X deleted order(s) are using this record. You need order managing permissions to delete this record." - When logged in as a user with cataloging but not acquisitions privileges, view the details for a bibliographic record which is used in an order in Acquisitions. Delete any items attached. - Choose "Delete record" from the Edit menu. You should get an alert, "X order(s) are using this record. You need order managing permissions to delete this record." - View the details for a bibliographic record which has a hold. - Choose "Delete all items" from the Edit menu. You should get an alert, "X hold(s) on this record. You must delete all holds before deleting all items." - View the details for a bibliographic record which has no items. - Choose "Delete record" from the Edit menu. You should get an alert, "Are you sure you want to delete this record?" - Choose "Edit items in a batch" from the Edit menu. You should get an alert, "This record has no items." I could not find any instance of the PopupZ3950Confirmed function in catalog.js being triggered so I don't think the associated string can be tested. TESTING TRANSLATABILITY - Update a translation, e.g. fr-FR: > cd misc/translator > perl translate update fr-FR - Open the corresponding .po file for JavaScript strings, e.g. misc/translator/po/fr-FR-messages-js.po - Locate strings pulled from koha-tmpl/intranet-tmpl/prog/js/catalog.js for translation, e.g.: msgid "This record has no items." msgstr "" - Edit the "msgstr" string however you want (it's just for testing). - Install the updated translation: > perl translate install fr-FR - Switch to your newly translated language in the staff client and repeat the test plan above. The translated strings should appear. Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
115 lines
4.9 KiB
JavaScript
115 lines
4.9 KiB
JavaScript
/* global __ biblionumber count holdcount countorders countdeletedorders searchid addRecord */
|
|
/* exported GetZ3950Terms PopupZ3950Confirmed */
|
|
/* IF ( CAN_user_editcatalogue_edit_catalogue ) */
|
|
/* this function open a popup to search on z3950 server. */
|
|
function PopupZ3950() {
|
|
var strQuery = GetZ3950Terms();
|
|
if(strQuery){
|
|
window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=" + biblionumber + strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
|
|
}
|
|
}
|
|
function PopupZ3950Confirmed() {
|
|
if (confirm( __("Please note that this external search could replace the current record.") )) {
|
|
PopupZ3950();
|
|
}
|
|
}
|
|
/* END IF( CAN_user_editcatalogue_edit_catalogue ) */
|
|
|
|
function addToCart() { addRecord( biblionumber ); }
|
|
function addToShelf() { window.open('/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?biblionumber=' + biblionumber,'Add_to_virtualshelf','width=500,height=400,toolbar=false,scrollbars=yes');
|
|
}
|
|
function printBiblio() {window.print(); }
|
|
|
|
/* IF CAN_user_editcatalogue_edit_catalogue or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) */
|
|
|
|
function confirm_deletion(link) {
|
|
var order_manage_permission = $(link).data("order-manage");
|
|
var is_confirmed;
|
|
if (count > 0){
|
|
is_confirmed = alert(__("%s item(s) are attached to this record. You must delete all items before deleting this record.").format(count));
|
|
} else if (countorders > 0){
|
|
if( order_manage_permission ){
|
|
is_confirmed = confirm(__("Warning: This record is used in %s order(s). Deleting it could cause serious issues on acquisition module. Are you sure you want to delete this record?").format(countorders));
|
|
} else {
|
|
is_confirmed = alert(__("%s order(s) are using this record. You need order managing permissions to delete this record.").format(countorders));
|
|
}
|
|
} else if (countdeletedorders > 0){
|
|
if( order_manage_permission ){
|
|
is_confirmed = confirm(__("%s deleted order(s) are using this record. Are you sure you want to delete this record?").format(countdeletedorders));
|
|
} else {
|
|
is_confirmed = alert(__("%s deleted order(s) are using this record. You need order managing permissions to delete this record.").format(countdeletedorders));
|
|
}
|
|
} else if ( holdcount > 0 ) {
|
|
is_confirmed = confirm( __("%s holds(s) for this record. Are you sure you want to delete this record?").format(holdcount));
|
|
} else {
|
|
is_confirmed = confirm( __("Are you sure you want to delete this record?") );
|
|
}
|
|
if (is_confirmed) {
|
|
$("#deletebiblio").unbind('click');
|
|
window.location="/cgi-bin/koha/cataloguing/addbiblio.pl?op=delete&biblionumber=" + biblionumber + (searchid ? "&searchid="+searchid : "");
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/* END IF CAN_user_editcatalogue_edit_catalogue or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) */
|
|
|
|
/* IF CAN_user_editcatalogue_edit_items or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) */
|
|
|
|
function confirm_items_deletion() {
|
|
if ( holdcount > 0 ) {
|
|
alert(__("%s hold(s) on this record. You must delete all holds before deleting all items.").format(holdcount));
|
|
} else if ( count > 0 ) {
|
|
if (confirm(__("Are you sure you want to delete the %s attached items?").format(count))) {
|
|
window.location="/cgi-bin/koha/cataloguing/additem.pl?op=delallitems&biblionumber=" + biblionumber + (searchid ? "&searchid="+searchid : "");
|
|
} else {
|
|
return false;
|
|
}
|
|
} else {
|
|
alertNoItems();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function alertNoItems(){
|
|
alert( __("This record has no items.") );
|
|
}
|
|
|
|
/* END IF CAN_user_editcatalogue_edit_items or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) */
|
|
|
|
$(document).ready(function() {
|
|
$("#z3950copy").click(function(){
|
|
PopupZ3950();
|
|
return false;
|
|
});
|
|
$("#deletebiblio").click(function(){
|
|
confirm_deletion(this);
|
|
return false;
|
|
});
|
|
$("#deleteallitems").click(function(){
|
|
confirm_items_deletion();
|
|
return false;
|
|
});
|
|
$("#printbiblio").click(function(){
|
|
printBiblio();
|
|
return false;
|
|
});
|
|
$("#addtocart").click(function(){
|
|
addToCart();
|
|
$(".btn-group").removeClass("open");
|
|
return false;
|
|
});
|
|
$("#addtoshelf").click(function(){
|
|
addToShelf();
|
|
$(".btn-group").removeClass("open");
|
|
return false;
|
|
});
|
|
$("#export").remove(); // Hide embedded export form if JS menus available
|
|
$("#deletebiblio").tooltip();
|
|
$("#batchedit-disabled,#batchdelete-disabled,#deleteallitems-disabled")
|
|
.on("click",function(e){
|
|
e.preventDefault();
|
|
alertNoItems();
|
|
})
|
|
.tooltip();
|
|
});
|