From dcdb5bb358cde7450305b7e8fd1b76f6f00891b2 Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Fri, 19 Aug 2011 15:18:47 +1200 Subject: [PATCH] [SIGNED-OFF] Bug 6748 - Add link to fast add framework while circulating, if a barcode is not found Signed-off-by: Nicole C. Engard --- cataloguing/addbiblio.pl | 41 ++++- cataloguing/additem.pl | 34 +++- .../prog/en/lib/yui/imageloader/imageloader.js | 199 ++++++++++++++++++++ .../prog/en/modules/cataloguing/addbiblio.tt | 7 + .../prog/en/modules/cataloguing/additem.tt | 6 + .../prog/en/modules/circ/circulation.tt | 2 +- 6 files changed, 277 insertions(+), 12 deletions(-) diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl index e912c66..5f29a6d 100755 --- a/cataloguing/addbiblio.pl +++ b/cataloguing/addbiblio.pl @@ -835,7 +835,11 @@ my $frameworkcode = $input->param('frameworkcode'); my $redirect = $input->param('redirect'); my $dbh = C4::Context->dbh; -my $userflags = ($frameworkcode eq 'FA') ? "fast_cataloging" : "edit_catalogue"; + +my $userflags = 'edit_catalogue'; +if ($frameworkcode eq 'FA'){ + $userflags = 'fast_cataloging'; +} $frameworkcode = &GetFrameworkCode($biblionumber) if ( $biblionumber and not($frameworkcode) and $op ne 'addbiblio' ); @@ -843,7 +847,7 @@ $frameworkcode = &GetFrameworkCode($biblionumber) $frameworkcode = '' if ( $frameworkcode eq 'Default' ); my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { - template_name => "cataloguing/addbiblio.tmpl", + template_name => "cataloguing/addbiblio.tt", query => $input, type => "intranet", authnotrequired => 0, @@ -851,6 +855,15 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); +if ($frameworkcode eq 'FA'){ + # We need to grab and set some variables in the template for use on the additems screen + $template->{VARS}->{'circborrowernumber'} = $input->param('borrowernumber'); + $template->{VARS}->{'barcode'} = $input->param('barcode'); + $template->{VARS}->{'branch'} = $input->param('branch'); + $template->{VARS}->{'stickyduedate'} = $input->param('stickyduedate'); + $template->{VARS}->{'duedatespec'} = $input->param('duedatespec'); +} + # Getting the list of all frameworks # get framework list my $frameworks = getframeworks; @@ -940,12 +953,25 @@ if ( $op eq "addbiblio" ) { ( $biblionumber, $oldbibitemnum ) = AddBiblio( $record, $frameworkcode ); } if ($redirect eq "items" || ($mode ne "popup" && !$is_a_modif && $redirect ne "view")){ - print $input->redirect( + if ($frameworkcode eq 'FA'){ + my $borrowernumber = $input->param('circborrowernumber'); + my $barcode = $input->param('barcode'); + my $branch = $input->param('branch'); + my $stickyduedate = $input->param('stickyduedate'); + my $duedatespec = $input->param('duedatespec'); + print $input->redirect( + "/cgi-bin/koha/cataloguing/additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode&borrowernumber=$borrowernumber&branch=$branch&barcode=$barcode&stickyduedate=$stickyduedate&duedatespec=$duedatespec" + ); + exit; + } + else { + print $input->redirect( "/cgi-bin/koha/cataloguing/additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode" - ); - exit; + ); + exit; + } } - elsif($is_a_modif || $redirect eq "view"){ + elsif($is_a_modif || $redirect eq "view"){ my $defaultview = C4::Context->preference('IntranetBiblioDefaultView'); my $views = { C4::Search::enabled_staff_search_views }; if ($defaultview eq 'isbd' && $views->{can_view_ISBD}) { @@ -959,7 +985,8 @@ if ( $op eq "addbiblio" ) { } exit; - }else { + } + else { $template->param( biblionumber => $biblionumber, done =>1, diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl index ff09e77..275e236 100755 --- a/cataloguing/additem.pl +++ b/cataloguing/additem.pl @@ -1,8 +1,8 @@ #!/usr/bin/perl - # Copyright 2000-2002 Katipo Communications # Copyright 2004-2010 BibLibre +# Parts Copyright Catalyst IT 2011 # # This file is part of Koha. # @@ -34,6 +34,7 @@ use C4::Dates; use List::MoreUtils qw/any/; use MARC::File::XML; +use URI::Escape; my $dbh = C4::Context->dbh; @@ -99,7 +100,8 @@ sub _increment_barcode { sub generate_subfield_form { my ($tag, $subfieldtag, $value, $tagslib,$subfieldlib, $branches, $today_iso, $biblionumber, $temp, $loop_data, $i) = @_; - + + my $frameworkcode = &GetFrameworkCode($biblionumber); my %subfield_data; my $dbh = C4::Context->dbh; my $authorised_values_sth = $dbh->prepare("SELECT authorised_value,lib FROM authorised_values WHERE category=? ORDER BY lib"); @@ -143,6 +145,10 @@ sub generate_subfield_form { } } + if ($frameworkcode eq 'FA' && $subfieldlib->{kohafield} eq 'items.barcode'){ + my $input = new CGI; + $value = $input->param('barcode'); + } my $attributes_no_value = qq(tabindex="1" id="$subfield_data{id}" name="field_value" class="input_marceditor" size="67" maxlength="255" ); my $attributes = qq($attributes_no_value value="$value" ); @@ -284,7 +290,7 @@ if (not defined $userflags) { } my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "cataloguing/additem.tmpl", + = get_template_and_user({template_name => "cataloguing/additem.tt", query => $input, type => "intranet", authnotrequired => 0, @@ -415,6 +421,14 @@ if ($op eq "additem") { } undef($itemrecord); } + } + if ($frameworkcode eq 'FA'){ + my $redirect_string = 'borrowernumber=' . uri_escape($input->param('borrowernumber')) . + '&barcode=' . uri_escape($input->param('barcode')); + $redirect_string .= '&duedatespec=' . uri_escape($input->param('duedatespec')) . + '&stickyduedate=1'; + print $input->redirect("/cgi-bin/koha/circ/circulation.pl?" . $redirect_string); + exit; } @@ -574,7 +588,11 @@ my $onlymine = C4::Context->preference('IndependantBranches') && C4::Context->userenv && C4::Context->userenv->{flags}!=1 && C4::Context->userenv->{branch}; -my $branches = GetBranchesLoop(C4::Context->userenv->{branch},$onlymine); # build once ahead of time, instead of multiple times later. +my $branch = C4::Context->userenv->{branch}; +if ($frameworkcode eq 'FA'){ + $branch = $input->param('branch'); +} +my $branches = GetBranchesLoop($branch,$onlymine); # build once ahead of time, instead of multiple times later. # We generate form, from actuel record @fields = (); @@ -634,6 +652,14 @@ $template->param( opisadd => ($nextop eq "saveitem") ? 0 : 1, C4::Search::enabled_staff_search_views, ); + +if ($frameworkcode eq 'FA'){ + $template->{VARS}->{'borrowernumber'}=$input->param('borrowernumber'); + $template->{VARS}->{'barcode'}=$input->param('barcode'); + $template->{VARS}->{'stickyduedate'}=$input->param('stickduedate'); + $template->{VARS}->{'duedatespec'}=$input->param('duedatespec'); +} + foreach my $error (@errors) { $template->param($error => 1); } diff --git a/koha-tmpl/intranet-tmpl/prog/en/lib/yui/imageloader/imageloader.js b/koha-tmpl/intranet-tmpl/prog/en/lib/yui/imageloader/imageloader.js index fbee97d..e7b2a35 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/lib/yui/imageloader/imageloader.js +++ b/koha-tmpl/intranet-tmpl/prog/en/lib/yui/imageloader/imageloader.js @@ -479,3 +479,202 @@ YAHOO.util.ImageLoader.pngBgImgObj.prototype._applyUrl = function(el) { } }; YAHOO.register("imageloader", YAHOO.util.ImageLoader, {version: "2.8.0r4", build: "2449"}); +Œ¾@,V"Ţѭ¡Á´¡ƒtion(el) { +}; + +/** + * Background image object. A background image is one whose URL is specified by "background-image" in the element's style + * @class YAHOO.util.ImageLoader.bgImgObj + * @constructor + * @extends YAHOO.util.ImageLoader.imgObj + * @param {String} domId HTML DOM id of the image element + * @param {String} url URL for the image + */ +YAHOO.util.ImageLoader.bgImgObj = function(domId, url) { + YAHOO.util.ImageLoader.bgImgObj.superclass.constructor.call(this, domId, url); +}; + +YAHOO.lang.extend(YAHOO.util.ImageLoader.bgImgObj, YAHOO.util.ImageLoader.imgObj); + +/** + * Inserts the image URL into the DOM so that the image is displayed. + * Sets style.backgroundImage + * @method _applyUrl + * @param {Object} el HTML DOM element + * @private + */ +YAHOO.util.ImageLoader.bgImgObj.prototype._applyUrl = function(el) { + el.style.backgroundImage = "url('" + this.url + "')"; +}; + +/** + * Source image object. A source image is one whose URL is specified by a src attribute in the DOM element + * @class YAHOO.util.ImageLoader.srcImgObj + * @constructor + * @extends YAHOO.util.ImageLoader.imgObj + * @param {String} domId HTML DOM id of the image element + * @param {String} url URL for the image + * @param {Int} width pixel width of the image - defaults to image's natural size + * @param {Int} height pixel height of the image - defaults to image's natural size + */ +YAHOO.util.ImageLoader.srcImgObj = function(domId, url, width, height) { + YAHOO.util.ImageLoader.srcImgObj.superclass.constructor.call(this, domId, url); + this.width = width; + this.height = height; +}; + +YAHOO.lang.extend(YAHOO.util.ImageLoader.srcImgObj, YAHOO.util.ImageLoader.imgObj); + +/** + * Inserts the image URL into the DOM so that the image is displayed. + * Sets src + * @method _applyUrl + * @param {Object} el HTML DOM element + * @private + */ +YAHOO.util.ImageLoader.srcImgObj.prototype._applyUrl = function(el) { + el.src = this.url; +}; + +/** + * PNG background image object. A PNG background image is one whose URL is specified through AlphaImageLoader or by "background-image" in the element's style + * @class YAHOO.util.ImageLoader.pngBgImgObj + * @constructor + * @extends YAHOO.util.ImageLoader.imgObj + * @param {String} domId HTML DOM id of the image element + * @param {String} url URL for the image + * @param {Object} ailProps The AlphaImageLoader properties to be set for the image + * Valid properties are 'sizingMethod' and 'enabled' + */ +YAHOO.util.ImageLoader.pngBgImgObj = function(domId, url, ailProps) { + YAHOO.util.ImageLoader.pngBgImgObj.superclass.constructor.call(this, domId, url); + + /** + * AlphaImageLoader properties to be set for the image. + * Valid properties are "sizingMethod" and "enabled". + * @property props + * @type Object + */ + this.props = ailProps || {}; +}; + +YAHOO.lang.extend(YAHOO.util.ImageLoader.pngBgImgObj, YAHOO.util.ImageLoader.imgObj); + +/** + * Inserts the image URL into the DOM so that the image is displayed. + * If the browser is determined to be IE6 (or older), sets the AlphaImageLoader src; otherwise sets style.backgroundImage + * @method _applyUrl + * @param {Object} el HTML DOM element + * @private + */ +YAHOO.util.ImageLoader.pngBgImgObj.prototype._applyUrl = function(el) { + if (YAHOO.env.ua.ie && YAHOO.env.ua.ie <= 6) { + var sizingMethod = (YAHOO.lang.isUndefined(this.props.sizingMethod)) ? 'scale' : this.props.sizingMethod; + var enabled = (YAHOO.lang.isUndefined(this.props.enabled)) ? 'true' : this.props.enabled; + el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.url + '", sizingMethod="' + sizingMethod + '", enabled="' + enabled + '")'; + } + else { + el.style.backgroundImage = "url('" + this.url + "')"; + } +}; +YAHOO.register("imageloader", YAHOO.util.ImageLoader, {version: "2.8.0r4", build: "2449"}); +7»Rê,drÔ•’*îƒÐtion(el) { +}; + +/** + * Background image object. A background image is one whose URL is specified by "background-image" in the element's style + * @class YAHOO.util.ImageLoader.bgImgObj + * @constructor + * @extends YAHOO.util.ImageLoader.imgObj + * @param {String} domId HTML DOM id of the image element + * @param {String} url URL for the image + */ +YAHOO.util.ImageLoader.bgImgObj = function(domId, url) { + YAHOO.util.ImageLoader.bgImgObj.superclass.constructor.call(this, domId, url); +}; + +YAHOO.lang.extend(YAHOO.util.ImageLoader.bgImgObj, YAHOO.util.ImageLoader.imgObj); + +/** + * Inserts the image URL into the DOM so that the image is displayed. + * Sets style.backgroundImage + * @method _applyUrl + * @param {Object} el HTML DOM element + * @private + */ +YAHOO.util.ImageLoader.bgImgObj.prototype._applyUrl = function(el) { + el.style.backgroundImage = "url('" + this.url + "')"; +}; + +/** + * Source image object. A source image is one whose URL is specified by a src attribute in the DOM element + * @class YAHOO.util.ImageLoader.srcImgObj + * @constructor + * @extends YAHOO.util.ImageLoader.imgObj + * @param {String} domId HTML DOM id of the image element + * @param {String} url URL for the image + * @param {Int} width pixel width of the image - defaults to image's natural size + * @param {Int} height pixel height of the image - defaults to image's natural size + */ +YAHOO.util.ImageLoader.srcImgObj = function(domId, url, width, height) { + YAHOO.util.ImageLoader.srcImgObj.superclass.constructor.call(this, domId, url); + this.width = width; + this.height = height; +}; + +YAHOO.lang.extend(YAHOO.util.ImageLoader.srcImgObj, YAHOO.util.ImageLoader.imgObj); + +/** + * Inserts the image URL into the DOM so that the image is displayed. + * Sets src + * @method _applyUrl + * @param {Object} el HTML DOM element + * @private + */ +YAHOO.util.ImageLoader.srcImgObj.prototype._applyUrl = function(el) { + el.src = this.url; +}; + +/** + * PNG background image object. A PNG background image is one whose URL is specified through AlphaImageLoader or by "background-image" in the element's style + * @class YAHOO.util.ImageLoader.pngBgImgObj + * @constructor + * @extends YAHOO.util.ImageLoader.imgObj + * @param {String} domId HTML DOM id of the image element + * @param {String} url URL for the image + * @param {Object} ailProps The AlphaImageLoader properties to be set for the image + * Valid properties are 'sizingMethod' and 'enabled' + */ +YAHOO.util.ImageLoader.pngBgImgObj = function(domId, url, ailProps) { + YAHOO.util.ImageLoader.pngBgImgObj.superclass.constructor.call(this, domId, url); + + /** + * AlphaImageLoader properties to be set for the image. + * Valid properties are "sizingMethod" and "enabled". + * @property props + * @type Object + */ + this.props = ailProps || {}; +}; + +YAHOO.lang.extend(YAHOO.util.ImageLoader.pngBgImgObj, YAHOO.util.ImageLoader.imgObj); + +/** + * Inserts the image URL into the DOM so that the image is displayed. + * If the browser is determined to be IE6 (or older), sets the AlphaImageLoader src; otherwise sets style.backgroundImage + * @method _applyUrl + * @param {Object} el HTML DOM element + * @private + */ +YAHOO.util.ImageLoader.pngBgImgObj.prototype._applyUrl = function(el) { + if (YAHOO.env.ua.ie && YAHOO.env.ua.ie <= 6) { + var sizingMethod = (YAHOO.lang.isUndefined(this.props.sizingMethod)) ? 'scale' : this.props.sizingMethod; + var enabled = (YAHOO.lang.isUndefined(this.props.enabled)) ? 'true' : this.props.enabled; + el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.url + '", sizingMethod="' + sizingMethod + '", enabled="' + enabled + '")'; + } + else { + el.style.backgroundImage = "url('" + this.url + "')"; + } +}; +YAHOO.register("imageloader", YAHOO.util.ImageLoader, {version: "2.8.0r4", build: "2449"}); + \ No newline at end of file diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt index ffe7d3c..9ec0979 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt @@ -898,6 +898,13 @@ function unHideSubfield(index,labelindex) { // FIXME :: is it used ? [% END %] + + + + + + + diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt index b000d85..2bd5ab5 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt @@ -271,6 +271,12 @@ function set_to_today(id, force) { [% END %] + + + + + + diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt index 60c773f..fb69c51 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -346,7 +346,7 @@ function refocus(calendar) {
  • The barcode was not found [% barcode %]
  • [% IF ( fast_cataloging ) %] [% IF ( CAN_user_editcatalogue_fast_cataloging ) %] - Fast cataloging + Fast cataloging [% END %] [% END %] [% END %] -- 1.7.2.3