#!/usr/bin/perl
+# Converted to new plugin style (Bug 13437)
+
# Copyright 2000-2002 Katipo Communications
+# Parts copyright Athens County Public Libraries 2019
#
# This file is part of Koha.
#
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
#
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-use strict;
-#use warnings; FIXME - Bug 2505
-
-=head1
-
-plugin_parameters : useless here
-
-=cut
-
-sub plugin_parameters {
- # my ($dbh,$record,$tagslib,$i,$tabloop) = @_;
- return "";
-}
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
-=head1
+use Modern::Perl;
+use Koha::DateUtils qw( dt_from_string output_pref );
-plugin_javascript : the javascript function called when the user enters the subfield.
-contain 3 javascript functions :
-* one called when the field is entered (OnFocus) named FocusXXX
-* one called when the field is left (onBlur ) named BlurXXX
-* one called when the ... link is clicked (onClick) named ClicXXX
+my $builder = sub {
+ my ( $params ) = @_;
+ my $function_name = $params->{id};
-returns :
-* XXX
-* a variable containing the 3 scripts.
-the 3 scripts are inserted after the <input> in the html code
+ my $date = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
-=cut
+ my $res = <<END_OF_JS;
+<script>
+/* from: cataloguing/value_builder/dateaccessioned.pl */
-sub plugin_javascript {
- # my ($dbh,$record,$tagslib,$field_number,$tabloop) = @_;
- my $function_name = "dateaccessioned".(int(rand(100000))+1);
+\$(document).ready(function(){
+ \$("#$function_name").datepicker({
+ dateFormat: "yy-mm-dd"
+ });
+});
- require C4::Dates;
- my $date = C4::Dates->today('iso');
+function Focus$function_name(event) {
+ set_to_today(event.data.id);
+ \$("#$function_name").datepicker("show");
- # find the tag/subfield mapped to items.dateaccessioned
- my ($tag,$subfield) = GetMarcFromKohaField("items.dateaccessioned","");
- my $res = <<END_OF_JS;
-<script type="text/javascript">
-//<![CDATA[
-//
-// from: cataloguing/value_builder/dateaccessioned.pl
-
-function Blur$function_name(index) {
- //date validation could go here
}
-function Focus$function_name(subfield_managed, id, force) {
- //var summary = "";
- //for (i=0 ; i<document.f.field_value.length ; i++) {
- // summary += i + ": " + document.f.tag[i].value + " " + document.f.subfield[i].value + ": " + document.f.field_value[i].value + "\\n";
- //}
- //alert("Got focus, subfieldmanaged: " + subfield_managed + "\\n" + summary);
- set_to_today(id); // defined in additem.pl HEAD
- return 0;
+function Click$function_name(event) {
+ event.preventDefault();
+ set_to_today(event.data.id, 1);
}
-function Clic$function_name(id) {
- set_to_today(id, 1); // defined in additem.pl HEAD
- return 0;
+function set_to_today( id, force ) {
+ /* The force parameter is used in Click but not in Focus ! */
+ if (! id) { alert(_("Bad id ") + id + _(" sent to set_to_today()")); return 0; }
+ if (\$("#" + id).val() == '' || force ) {
+ \$("#" + id).val("$date");
+ }
}
-//]]>
</script>
END_OF_JS
- return ($function_name, $res);
-}
-
-=head1
-
-plugin: useless here.
-
-=cut
-
-sub plugin {
-# my ($input) = @_;
- return "";
-}
+ return $res;
+};
-1;
+return { builder => $builder };