@@ -, +, @@
file
- Table sorting
- Table column configuration
- Table searching
- Table inline edit/delete links (click anywhere in the table row)
- Add multiple item form show/hide
- Add multiple item warning when adding 100+ items
---
.../prog/en/includes/str/cataloging_additem.inc | 16 +++
.../prog/en/modules/cataloguing/additem.tt | 136 +--------------------
.../intranet-tmpl/prog/js/cataloging_additem.js | 119 ++++++++++++++++++
3 files changed, 140 insertions(+), 131 deletions(-)
create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/str/cataloging_additem.inc
create mode 100644 koha-tmpl/intranet-tmpl/prog/js/cataloging_additem.js
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/str/cataloging_additem.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/str/cataloging_additem.inc
@@ -0,0 +1,16 @@
+
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt
@@ -4,145 +4,19 @@
[% INCLUDE 'doc-head-open.inc' %]
Koha › Cataloging › [% title |html %] [% IF ( author ) %] by [% author | html %][% END %] (Record #[% biblionumber %]) › Items
-[% Asset.css("css/datatables.css") %]
[% INCLUDE 'doc-head-close.inc' %]
+[% Asset.css("css/datatables.css") %]
[% INCLUDE 'datatables.inc' %]
[% Asset.js("js/cataloging.js") %]
[% INCLUDE 'columns_settings.inc' %]
[% INCLUDE 'browser-strings.inc' %]
+[% INCLUDE 'select2.inc' %]
+[% INCLUDE 'str/cataloging_additem.inc' %]
[% Asset.js("js/browser.js") %]
-
+[% Asset.js("js/cataloging_additem.js") %]
[% Asset.css("css/addbiblio.css") %]
-
-[% INCLUDE 'select2.inc' %]
-
-
-[% IF ( bidi ) %]
- [% Asset.css("css/right-to-left.css") %]
-[% END %]
+
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cataloging-search.inc' %]
--- a/koha-tmpl/intranet-tmpl/prog/js/cataloging_additem.js
+++ a/koha-tmpl/intranet-tmpl/prog/js/cataloging_additem.js
@@ -0,0 +1,119 @@
+/* global KOHA searchid biblionumber frameworkcode popup opisadd LABEL_EDIT_ITEM LABEL_DELETE_ITEM MSG_FORM_NOT_SUBMITTED MSG_MANDATORY_FIELDS_EMPTY MSG_ADD_MULTIPLE_ITEMS MSG_ENTER_NUM_ITEMS MSG_CONFIRM_DELETE_ITEM MSG_CONFIRM_ADD_ITEM columns_settings CheckMandatorySubfields CheckMultipleAdd */
+
+var browser = KOHA.browser(searchid, parseInt(biblionumber, 10));
+browser.show();
+
+$(document).ready(function(){
+
+ // Remove the onclick event defined in browser.js,
+ // otherwise the deletion confirmation will not work correctly
+ $('a[href*="biblionumber="]').off('click');
+
+ if( popup ){
+ if( opisadd ){
+ window.close();
+ }
+ }
+
+ $("fieldset.rows input, fieldset.rows select").addClass("noEnterSubmit");
+ /* Inline edit/delete links */
+ $("tr.editable").each(function(){
+ $(this).find("td:not(:first)").on('click', function(){
+ var rowid = $(this).parent().attr("id");
+ var num_rowid = rowid.replace("row","");
+ $(".linktools").remove();
+ var edit_link = $('');
+ $(edit_link).text( LABEL_EDIT_ITEM );
+ var delete_link = $('');
+ $(delete_link).text( LABEL_DELETE_ITEM );
+ $(delete_link).on('click', function(e) {
+ e.preventDefault();
+ return confirm_deletion();
+ });
+ var tools_node = $('');
+ $(tools_node).append(edit_link);
+ $(tools_node).append(delete_link);
+ $(this).append(tools_node);
+ });
+ });
+
+ $("#addnewitem").click(function(){
+ if ( confirm( MSG_CONFIRM_ADD_ITEM ) ){
+ window.location.href = "/cgi-bin/koha/cataloguing/additem.pl?biblionumber=" + biblionumber;
+ }
+ });
+
+ // Skip the first column
+ columns_settings.unshift( { cannot_be_toggled: "1" } );
+
+ var itemst = KohaTable("itemst", {
+ "aoColumnDefs": [
+ { "aTargets": [ 0 ], "bSortable": false, "bSearchable": false },
+ ],
+ 'bPaginate': false,
+ 'bInfo': false,
+ "bAutoWidth": false,
+ "bKohaColumnsUseNames": true
+ }, columns_settings);
+
+ var multiCopyControl = $("#add_multiple_copies_span");
+ var addMultipleBlock = $("#addmultiple");
+ var addSingleBlock = $("#addsingle");
+ multiCopyControl.hide();
+ $("#add_multiple_copies").on("click",function(e){
+ e.preventDefault;
+ addMultipleBlock.toggle();
+ addSingleBlock.toggle();
+ multiCopyControl.toggle();
+ $('body,html').animate({ scrollTop: $('body').height() }, 100);
+ });
+ $("#cancel_add_multiple").on("click",function(e){
+ e.preventDefault();
+ addMultipleBlock.toggle();
+ addSingleBlock.toggle();
+ multiCopyControl.toggle();
+ });
+
+ $('.subfield_line select').select2();
+});
+
+function Check(f) {
+ var total_errors = CheckMandatorySubfields(f);
+ if (total_errors==0) {
+ // Explanation about this line:
+ // In case of limited edition permission, we have to prevent user from modifying some fields.
+ // But there is no such thing as readonly attribute for select elements.
+ // So we use disabled instead. But disabled prevent values from being passed through the form at submit.
+ // So we "un-disable" the elements just before submitting.
+ // That's a bit clumsy, and if someone comes up with a better solution, feel free to improve that.
+ $("select[name=field_value]").prop('disabled', false);
+ return true;
+ } else {
+ var alertString2 = MSG_FORM_NOT_SUBMITTED;
+ alertString2 += "\n------------------------------------------------------------------------------------\n";
+ alertString2 += "\n- " + "%s " + MSG_MANDATORY_FIELDS_EMPTY.format(total_errors);
+ alert(alertString2);
+ return false;
+ }
+}
+
+function CheckMultipleAdd(f) {
+
+ if (!f || isNaN(f) || !parseInt(f) == f || f <= 0) {
+ alert( MSG_ENTER_NUM_ITEMS );
+ return false;
+ }
+ // Add a soft-limit of 99 with a reminder about potential data entry error
+ if (f>99) {
+ return confirm( MSG_ADD_MULTIPLE_ITEMS.format(f));
+ }
+}
+
+function Dopop(link,i) {
+ var defaultvalue=document.forms[0].field_value[i].value;
+ var newin=window.open(link+"&result="+defaultvalue,"valuebuilder",'width=500,height=400,toolbar=false,scrollbars=yes');
+}
+
+function confirm_deletion() {
+ return confirm( MSG_CONFIRM_DELETE_ITEM );
+}
--