@@ -, +, @@ passed - Apply the patch and go to Tools -> Calendar - In the tables of existing holidays, check that no dates in the past appear in the "Exceptions" or "Unique holidays" tables. - Checking the checkbox at the top of each of these tables should trigger the display of the hidden rows. --- koha-tmpl/intranet-tmpl/prog/css/calendar.css | 160 +++++++++++++++++++++ .../prog/en/modules/tools/holidays.tt | 78 ++++++---- 2 files changed, 209 insertions(+), 29 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/css/calendar.css --- a/koha-tmpl/intranet-tmpl/prog/css/calendar.css +++ a/koha-tmpl/intranet-tmpl/prog/css/calendar.css @@ -0,0 +1,160 @@ +.controls { + display: block; + padding: 3px 0; +} + +.key { + padding: 3px; + white-space: nowrap; + line-height: 230%; + } + + .ui-datepicker { + font-size: 150%; + } + + .ui-datepicker th, + .ui-datepicker .ui-datepicker-title select { + font-size: 80%; + } + + .ui-datepicker td a { + padding: .5em; + } + + .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + font-size: 80%; + } + + .key { + padding: 3px; + white-space: nowrap; + line-height: 230%; + } + + .normalday { + background-color: #EDEDED; + color: Black; + border: 1px solid #BCBCBC; + } + + .exception { + background-color: #b3d4ff; + color: Black; + border: 1px solid #BCBCBC; + } + + .holiday { + background-color: #ffaeae; + color: Black; + border: 1px solid #BCBCBC; + } + + .repeatableweekly { + background-color: #FFFF99; + color: Black; + border: 1px solid #BCBCBC; + } + + .repeatableyearly { + background-color: #FFCC66; + color: Black; + border: 1px solid #BCBCBC; + } + + td.exception a.ui-state-default { + background: #b3d4ff none; + color: Black; + border: 1px solid #BCBCBC; + } + + td.holiday a.ui-state-default { + background: #ffaeae none; + color: Black; + border: 1px solid #BCBCBC; + } + + td.repeatableweekly a.ui-state-default { + background: #FFFF99 none; + color: Black; + border: 1px solid #BCBCBC; + } + + td.repeatableyearly a.ui-state-default { + background: #FFCC66 none; + color: Black; + border: 1px solid #BCBCBC; + } + + .information { + z-index: 1; + background-color: #DCD2F1; + width: 300px; + display: none; + border: 1px solid #000000; + color: #000000; + font-size: 8pt; + font-weight: bold; + background-color: #FFD700; + cursor: pointer; + padding: 2px; + } + + .panel { + z-index: 1; + display: none; + border: 3px solid #CCC; + padding: 3px; + margin-top: .3em; + background-color: #FEFEFE; + } + + fieldset.brief { + border: 0; + margin-top: 0; + } + + #showHoliday { + margin: .5em 0; + } + + h1 select { + width: 20em; + } + + fieldset.brief ol { + font-size: 100%; + } + + fieldset.brief li, + fieldset.brief li.radio { + padding: 0.2em 0; + } + + .help { + margin: .3em 0; + border: 1px solid #EEE; + padding: .3em .7em; + font-size: 90%; + } + + #holidayweeklyrepeatable, + #holidaysyearlyrepeatable, + #holidaysunique, + #holidayexceptions { + font-size: 90%; + margin-bottom: 1em; + } + + .calendar td, + .calendar th, + .calendar .button, + .calendar tbody .day { + padding: .7em; + font-size: 110%; + } + + .calendar { + width: auto; + border: 0; + } --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt @@ -5,25 +5,7 @@ [% INCLUDE 'doc-head-open.inc' %] Koha › Tools › [% Branches.GetName( branch ) | html %] calendar [% INCLUDE 'doc-head-close.inc' %] - +[% Asset.css("css/calendar.css") %] [% INCLUDE 'header.inc' %] @@ -246,16 +228,20 @@ td.repeatableyearly a.ui-state-default { background: #FFCC66 none; color : Bl [% IF ( EXCEPTION_HOLIDAYS_LOOP ) %]

Exceptions

+ - + [% FOREACH EXCEPTION_HOLIDAYS_LOO IN EXCEPTION_HOLIDAYS_LOOP %] - + @@ -294,9 +280,9 @@ td.repeatableyearly a.ui-state-default { background: #FFCC66 none; color : Bl [% IF ( dateformat == "metric" ) %] - + [% ELSE %] - + [% END %] @@ -316,17 +302,21 @@ td.repeatableyearly a.ui-state-default { background: #FFCC66 none; color : Bl [% IF ( HOLIDAYS_LOOP ) %]

Unique holidays

+
DateDate Title Description
[% EXCEPTION_HOLIDAYS_LOO.DATE | html %] [% EXCEPTION_HOLIDAYS_LOO.TITLE | html %] [% EXCEPTION_HOLIDAYS_LOO.DESCRIPTION | html %]
Day/monthDay/monthMonth/dayMonth/dayTitle Description
- + [% FOREACH HOLIDAYS_LOO IN HOLIDAYS_LOOP %] - + @@ -498,6 +488,25 @@ td.repeatableyearly a.ui-state-default { background: #FFCC66 none; color : Bl } }; + /* Custom table search configuration: If a table row + has an "expired" class, hide it UNLESS the + show_expired checkbox is checked */ + $.fn.dataTable.ext.search.push( + function( settings, searchData, index, rowData, counter ) { + var table = settings.nTable.id; + var row = $(settings.aoData[index].nTr); + if( row.hasClass("date_past") && !$("#show_past_" + table ).prop("checked") ){ + return false; + } else { + return true; + } + } + ); + + // Create current date variable + var date = new Date(); + var datestring = date.toISOString().substring(0, 10); + $(document).ready(function() { $(".hint").hide(); @@ -512,13 +521,24 @@ td.repeatableyearly a.ui-state-default { background: #FFCC66 none; color : Bl "sDom": 't', "bPaginate": false })); - $("#holidayexceptions,#holidaysyearlyrepeatable,#holidaysunique").dataTable($.extend(true, {}, dataTablesDefaults, { + var tables = $("#holidayexceptions,#holidaysyearlyrepeatable,#holidaysunique").DataTable($.extend(true, {}, dataTablesDefaults, { "sDom": 't', - "aoColumns": [ - { "sType": "title-string" },null,null + "aoColumnDefs": [ + { "type": "title-string", "targets" : [ "title-string" ] }, ], - "bPaginate": false + "bPaginate": false, + "createdRow": function( row, data, dataIndex ) { + var holiday = $(row).data("date"); + if( holiday < datestring ){ + $(row).addClass("date_past"); + } + } })); + + $(".show_past").on("change", function(){ + tables.draw(); + }); + $("a.helptext").click(function(){ $(this).parent().find(".hint").toggle(); return false; }); --
DateDate Title Description
[% HOLIDAYS_LOO.DATE | html %] [% HOLIDAYS_LOO.TITLE | html %] [% HOLIDAYS_LOO.DESCRIPTION.replace('\\\r\\\n', '
') | html %]