From 7066713e62c338dd747059af3d3d4b94f7744964 Mon Sep 17 00:00:00 2001 From: Agustin Moyano Date: Fri, 17 Jan 2020 16:19:30 -0300 Subject: [PATCH] Bug 24455: Add JS functions to format date and datetime strings This patch adds the a js-date-format.inc file on each opac and staff interface (date-format.inc whas not available as name) When you include that file in your TT, you'll get the following functions available: 1. $date(raw_date_string, options) This function parses a date string, as produced by an api call, and returns the corresponding date formatted according to 'dateformat' and 'TimeFormat' parameters. For example: // dateformat: us // timeformat: 12hr // Timezone: UTC $date('2020-03-23T15:00:00+01:00') // You will get '03/23/2020' $date('2020-03-23T15:00:00+01:00', {withtime: true}) // You will get '03/23/2020 14:00' $date('2020-03-23T15:00:00+01:00', {withtime: true, tz: 'Europe/Paris'}) // You will get '03/23/2020 15:00+01:00' Options: * dateformat: override date format as configured in staff interface (accepts also 'rfc3339') * timeformat: override time format as configured in staff client (available options are '12hr' and '24hr') * withtime: also print the time part (default false) * tz: set the timezone 2. $datetime(raw_date_string, option) The same as $date but sets withtime to true 3. $time(raw_date_string, option) The same as $datetime but shows only the time part To test you must implement and test bug 20936, where it will be used --- Koha/Template/Plugin/KohaDates.pm | 5 ++ .../prog/en/includes/js-date-format.inc | 62 +++++++++++++++++++ .../bootstrap/en/includes/js-date-format.inc | 62 +++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/js-date-format.inc create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/includes/js-date-format.inc diff --git a/Koha/Template/Plugin/KohaDates.pm b/Koha/Template/Plugin/KohaDates.pm index e87d478adc..042268fc97 100644 --- a/Koha/Template/Plugin/KohaDates.pm +++ b/Koha/Template/Plugin/KohaDates.pm @@ -23,6 +23,7 @@ use Template::Plugin::Filter; use base qw( Template::Plugin::Filter ); use Koha::DateUtils; +use C4::Context; our $DYNAMIC = 1; sub filter { @@ -42,4 +43,8 @@ sub output_preference { return output_pref( @params ); } +sub tz { + return C4::Context->tz->name; +} + 1; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/js-date-format.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/js-date-format.inc new file mode 100644 index 0000000000..8c09858d36 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/js-date-format.inc @@ -0,0 +1,62 @@ +[% USE Koha %] +[% USE raw %] +[% USE Asset %] +[% USE KohaDates %] +[% Asset.js("lib/moment/moment.min.js") | $raw %] +[% Asset.js("lib/moment/moment-timezone-with-data-10-year-range.min.js") | $raw %] + \ No newline at end of file diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/js-date-format.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/js-date-format.inc new file mode 100644 index 0000000000..9381684bc6 --- /dev/null +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/js-date-format.inc @@ -0,0 +1,62 @@ +[% USE Koha %] +[% USE raw %] +[% USE Asset %] +[% USE KohaDates %] +[% Asset.js("lib/moment.min.js") | $raw %] +[% Asset.js("lib/moment-timezone-with-data-10-year-range.min.js") | $raw %] + \ No newline at end of file -- 2.17.1