@@ -, +, @@
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 | 15 +++
.../prog/en/modules/cataloguing/additem.tt | 140 ++-------------------
.../intranet-tmpl/prog/js/cataloging_additem.js | 119 ++++++++++++++++++
3 files changed, 141 insertions(+), 133 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,15 @@
+
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt
@@ -2,148 +2,21 @@
[% USE Asset %]
[% USE Koha %]
[% USE ColumnsSettings %]
-
[% INCLUDE 'doc-head-open.inc' %]
Koha › Cataloging › [% title | html %] [% IF ( author ) %] by [% author | html %][% END %] (Record #[% biblionumber | html %]) › Items
-[% Asset.css("css/datatables.css") | $raw %]
[% INCLUDE 'doc-head-close.inc' %]
+[% Asset.css("css/datatables.css") | $raw %]
+[% Asset.css("css/addbiblio.css") | $raw %]
[% INCLUDE 'datatables.inc' %]
[% Asset.js("js/cataloging.js") | $raw %]
[% INCLUDE 'columns_settings.inc' %]
[% INCLUDE 'browser-strings.inc' %]
[% Asset.js("js/browser.js") | $raw %]
-
-[% Asset.css("css/addbiblio.css") | $raw %]
-
[% INCLUDE 'select2.inc' %]
-
-
-[% IF ( bidi ) %]
- [% Asset.css("css/right-to-left.css") | $raw %]
-[% END %]
+[% INCLUDE 'str/cataloging_additem.inc' %]
+[% Asset.js("js/cataloging_additem.js") | $raw %]
+
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cataloging-search.inc' %]
@@ -364,7 +237,7 @@ function confirm_deletion() {
Cancel
[% END %]
-
+
[%# Fields for fast cataloging %]
@@ -380,4 +253,5 @@ function confirm_deletion() {
+
[% INCLUDE 'intranet-bottom.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 */
+ var biblionumber = $("input[name='biblionumber']").attr("value");
+ $("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() {
+ 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 );
+}
--