From 7f3720504d5517e130e8b6cf78888ec29ce41b47 Mon Sep 17 00:00:00 2001 From: Owen Leonard <oleonard@myacpl.org> Date: Thu, 9 Sep 2021 18:32:20 +0000 Subject: [PATCH] Bug 28988: Reindent calendar template This patch performs general template cleanup to the calendar template: Make indentation consistent and trim trailing whitespace. To test, apply the patch and go to Tools -> Calendar. The page should look correct and work correctly. If you view the diff while ignoring whitespace the only changes should be where line breaks were introduced. Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> --- .../prog/en/modules/tools/holidays.tt | 734 +++++++++++---------- 1 file changed, 384 insertions(+), 350 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt index a25c35501d..a8bdc947d1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt @@ -32,327 +32,361 @@ <div class="col-sm-10 col-sm-push-2"> <main> - <h2>[% Branches.GetName( branch ) | html %] calendar</h2> - - <div class="row"> - <div class="col-sm-6"> - <label for="branch">Define the holidays for:</label> - <select id="branch" name="branch"> - [% PROCESS options_for_libraries libraries => Branches.all( selected => branch ) %] - </select> - - <!-- ******************************** FLAT PANELS ******************************************* --> - <!-- ***** Makes all the flat panel to deal with holidays ***** --> - <!-- **************************************************************************************** --> - - <!-- ********************** Panel for showing already loaded holidays *********************** --> - <div class="panel" id="showHoliday"> - <form action="/cgi-bin/koha/tools/exceptionHolidays.pl" method="post"> - <input type="hidden" id="showHolidayType" name="showHolidayType" value="" /> - <fieldset class="brief"> - <h3>Edit this holiday</h3> - <span id="holtype"></span> - <ol> - <li> - <strong>Library:</strong> <span id="showBranchNameOutput"></span> - <input type="hidden" id="showBranchName" name="showBranchName" /> - </li> - <li> - <strong>From date:</strong> - <span id="showDaynameOutput"></span>, - - [% IF ( dateformat == "us" ) %]<span id="showMonthOutput"></span>/<span id="showDayOutput"></span>/<span id="showYearOutput"></span>[% ELSIF ( dateformat == "metric") %]<span id="showDayOutput"></span>/<span id="showMonthOutput"></span>/<span id="showYearOutput"></span>[% ELSIF ( dateformat == "dmydot") %]<span id="showDayOutput"></span>.<span id="showMonthOutput"></span>.<span id="showYearOutput"></span>[% ELSE %]<span id="showYearOutput"></span>/<span id="showMonthOutput"></span>/<span id="showDayOutput"></span>[% END %] - - <input type="hidden" id="showDayname" name="showDayname" /> - <input type="hidden" id="showWeekday" name="showWeekday" /> - <input type="hidden" id="showDay" name="showDay" /> - <input type="hidden" id="showMonth" name="showMonth" /> - <input type="hidden" id="showYear" name="showYear" /> - </li> - <li class="dateinsert"> - <strong>To date: </strong> - <input type="text" id="datecancelrange" name="datecancelrange" size="20" value="[% datecancelrange | html %]" class="datepicker"/> - </li> - <li><label for="showTitle">Title: </label><input type="text" name="showTitle" id="showTitle" size="35" /></li> - <!-- showTitle is necessary for exception radio button to work properly --> - <li> - <label for="showDescription">Description:</label> - <textarea rows="2" cols="40" id="showDescription" name="showDescription"></textarea> - </li> - <li class="radio"><div class="exceptionPossibility" style="position:static"> - <input type="radio" name="showOperation" id="showOperationExc" value="exception" /> <label for="showOperationExc">Generate an exception for this repeated holiday.</label> - <a href="#" class="helptext">[?]</a> - <div class="hint">You can make an exception for this holiday rule. This means that you will be able to say that for a repeatable holiday there is one day which is going to be an exception.</div> - </div></li> - <li class="radio"><div class="exceptionPossibility" style="position:static"> - <input type="radio" name="showOperation" id="showOperationExcRange" value="exceptionrange" /> - <label for="showOperationExcRange">Generate exceptions on a range of dates.</label> - <a href="#" class="helptext">[?]</a> - <div class="hint">You can make an exception on a range of dates repeated yearly.</div> - </div></li> - <li class="radio"><input type="radio" name="showOperation" id="showOperationDel" value="delete" /> <label for="showOperationDel" id="showOperationDelLabel">Delete this holiday</label> - <a href="#" class="helptext">[?]</a> - <div class="hint">This will delete this holiday rule. If it is a repeatable holiday, this option checks for possible exceptions. If an exception exists, this option will remove the exception and set the date to a regular holiday.</div></li> - <li class="radio"><input type="radio" name="showOperation" id="showOperationDelRange" value="deleterange" /> <label for="showOperationDelRange" id="showOperationDelLabelRange">Delete the single holidays on a range</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">This will delete the single holidays rules only. The repeatable holidays and exceptions will not be deleted.</div> - </li> - <li class="radio"><input type="radio" name="showOperation" id="showOperationDelRangeRepeat" value="deleterangerepeat" /> <label for="showOperationDelRangeRepeat" id="showOperationDelLabelRangeRepeat">Delete the repeated holidays on a range</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">This will delete the repeated holidays rules only. The repeatable holidays will be deleted but not the exceptions.</div> - </li> - <li class="radio"><input type="radio" name="showOperation" id="showOperationDelRangeRepeatExcept" value="deleterangerepeatexcept" /> <label for="showOperationDelRangeRepeatExcept" id="showOperationDelLabelRangeRepeatExcept">Delete the exceptions on a range</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">This will delete the exceptions inside a given range. Be careful about your scope range; if it is oversized you could slow down Koha.</div> - </li> - <li class="radio"><input type="radio" name="showOperation" id="showOperationEdit" value="edit" checked="checked" /> <label for="showOperationEdit">Edit this holiday</label> - <a href="#" class="helptext">[?]</a> - <div class="hint">This will save changes to the holiday's title and description. If the information for a repeatable holiday is modified, it affects all of the dates on which the holiday is repeated.</div></li> - <li class="checkbox"> - <input type="checkbox" name="allBranches" id="allBranches" /> - <label for="allBranches">Copy changes to all libraries</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">If checked, changes for this holiday will be copied to all libraries. If the holiday doesn't exists for a library, no change is made.</div> - </li> - </ol> - <fieldset class="action"> - <input type="submit" name="submit" value="Save" /> - <a href="#" class="cancel hidePanel showHoliday">Cancel</a> - </fieldset> - </fieldset> - </form> - </div> - - <!-- ***************************** Panel to deal with new holidays ********************** --> - <div class="panel" id="newHoliday"> - <form action="/cgi-bin/koha/tools/newHolidays.pl" method="post"> - <fieldset class="brief"> - <h3>Add new holiday</h3> - <ol> - <li> - <strong>Library:</strong> - <span id="newBranchNameOutput"></span> - <input type="hidden" id="newBranchName" name="newBranchName" /> - </li> - <li> - <strong>From date:</strong> - <span id="newDaynameOutput"></span>, - - [% IF ( dateformat == "us" ) %]<span id="newMonthOutput"></span>/<span id="newDayOutput"></span>/<span id="newYearOutput"></span>[% ELSIF ( dateformat == "metric" ) %]<span id="newDayOutput"></span>/<span id="newMonthOutput"></span>/<span id="newYearOutput"></span>[% ELSIF ( dateformat == "dmydot" ) %]<span id="newDayOutput"></span>.<span id="newMonthOutput"></span>.<span id="newYearOutput"></span>[% ELSE %]<span id="newYearOutput"></span>/<span id="newMonthOutput"></span>/<span id="newDayOutput"></span>[% END %] - - <input type="hidden" id="newDayname" name="showDayname" /> - <input type="hidden" id="newWeekday" name="newWeekday" /> - <input type="hidden" id="newDay" name="newDay" /> - <input type="hidden" id="newMonth" name="newMonth" /> - <input type="hidden" id="newYear" name="newYear" /> - </li> - <li class="dateinsert"> - <strong>To date: </strong> - <input type="text" id="dateofrange" name="dateofrange" size="20" value="[% dateofrange | html %]" class="datepicker" /> - </li> - <li><label for="title">Title: </label><input type="text" name="newTitle" id="title" size="35" /></li> - <li><label for="newDescription">Description:</label> - <textarea rows="2" cols="40" id="newDescription" name="newDescription"></textarea> - </li> - <li class="radio"><input type="radio" name="newOperation" id="newOperationOnce" value="holiday" checked="checked" /> - <label for="newOperationOnce">Holiday only on this day</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">Make a single holiday. For example, selecting August 1, 2012 will make it a holiday, but will not affect August 1 in other years.</div> - </li> - <li class="radio"><input type="radio" name="newOperation" id="newOperationDay" value="weekday" /> - <label for="newOperationDay">Holiday repeated every same day of the week</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">Make this weekday a holiday, every week. For example, if your library is closed on Saturdays, use this option to make every Saturday a holiday.</div> - </li> - <li class="radio"><input type="radio" name="newOperation" id="newOperationYear" value="repeatable" /> - <label for="newOperationYear">Holiday repeated yearly on the same date</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">This will take this day and month as a reference to make it a holiday. Through this option, you can repeat this rule for every year. For example, selecting August 1 will make August 1 a holiday every year.</div> - </li> - <li class="radio"><input type="radio" name="newOperation" id="newOperationField" value="holidayrange" /> - <label for="newOperationField">Holidays on a range</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">Make a single holiday on a range. For example, selecting August 1, 2012 and August 10, 2012 will make all days between August 1 and 10 a holiday, but will not affect August 1-10 in other years.</div> - </li> - <li class="radio"><input type="radio" name="newOperation" id="newOperationFieldyear" value="holidayrangerepeat" /> - <label for="newOperationFieldyear">Holidays repeated yearly on a range</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">Make a single holiday on a range repeated yearly. For example, selecting August 1, 2012 and August 10, 2012 will make all days between August 1 and 10 a holiday, and will affect August 1-10 in other years.</div> - </li> - <li class="checkbox"> - <input type="checkbox" name="allBranches" id="allBranches" /> - <label for="allBranches">Copy to all libraries</label>. - <a href="#" class="helptext">[?]</a> - <div class="hint">If checked, this holiday will be copied to all libraries. If the holiday already exists for a library, no change is made.</div> - </li></ol> - <fieldset class="action"> - <input type="submit" name="submit" value="Save" /> - <a href="#" class="cancel hidePanel newHoliday">Cancel</a> - </fieldset> - </fieldset> - </form> - </div> - - <!-- *************************************************************************************** --> - <!-- ****** END OF FLAT PANELS ****** --> - <!-- *************************************************************************************** --> - -<!-- ************************************************************************************** --> -<!-- ****** MAIN SCREEN CODE ****** --> -<!-- ************************************************************************************** --> -<h3>Calendar information</h3> -<div id="jcalendar-container"></div> - -<div style="margin-top: 2em;"> -<form action="copy-holidays.pl" method="post"> - <input type="hidden" name="from_branchcode" value="[% branch | html %]" /> - <label for="branchcode">Copy holidays to:</label> - <select id="branchcode" name="branchcode"> - <option value=""></option> - [% FOREACH l IN Branches.all() %] - <option value="[% l.branchcode | html %]">[% l.branchname | html %]</option> - [% END %] - </select> - <input type="submit" value="Copy" /> -</form> -</div> - -</div> -<div class="col-sm-6"> -<div class="help"> -<h4>Hints</h4> - <ul> - <li>Search in the calendar the day you want to set as holiday.</li> - <li>Click the date to add or edit a holiday.</li> - <li>Enter a title and description for the holiday.</li> - <li>Specify how the holiday should repeat.</li> - <li>Click Save to finish.</li> - </ul> -<h4>Key</h4> - <p> - <span class="key normalday">Working day</span> - <span class="key holiday">Unique holiday</span> - <span class="key repeatableweekly">Holiday repeating weekly</span> - <span class="key repeatableyearly">Holiday repeating yearly</span> - <span class="key exception">Holiday exception</span> - </p> -</div> -<div id="holiday-list"> -<!-- Exceptions First --> -<!-- this will probably always have the least amount of data --> -[% IF ( EXCEPTION_HOLIDAYS_LOOP ) %] -<h3>Exceptions</h3> - <label class="controls"> - <input type="checkbox" name="show_past" id="show_past_holidayexceptions" class="show_past" /> - Show past entries - </label> - <table id="holidayexceptions"> -<thead><tr> - <th class="exception">Date</th> - <th class="exception">Title</th> - <th class="exception">Description</th> -</tr> -</thead> -<tbody> - [% FOREACH EXCEPTION_HOLIDAYS_LOO IN EXCEPTION_HOLIDAYS_LOOP %] - <tr data-date="[% EXCEPTION_HOLIDAYS_LOO.DATE_SORT | html %]"> - <td data-order="[% EXCEPTION_HOLIDAYS_LOO.DATE_SORT | html %]"> - <a href="/cgi-bin/koha/tools/holidays.pl?branch=[% branch | uri %]&calendardate=[% EXCEPTION_HOLIDAYS_LOO.DATE | uri %]"> - [% EXCEPTION_HOLIDAYS_LOO.DATE | html %] - </a> - </td> - <td>[% EXCEPTION_HOLIDAYS_LOO.TITLE | html %]</td> - <td>[% EXCEPTION_HOLIDAYS_LOO.DESCRIPTION | html %]</td> - </tr> - [% END %] -</tbody> -</table> -[% END %] - -[% IF ( WEEK_DAYS_LOOP ) %] -<h3>Weekly - Repeatable holidays</h3> -<table id="holidayweeklyrepeatable"> -<thead> -<tr> - <th class="repeatableweekly">Day of week</th> - <th class="repeatableweekly">Title</th> - <th class="repeatableweekly">Description</th> -</tr> -</thead> -<tbody> - [% FOREACH WEEK_DAYS_LOO IN WEEK_DAYS_LOOP %] - <tr> - <td>[% WEEK_DAYS_LOO.KEY | html %]</td> - </td> - <td>[% WEEK_DAYS_LOO.TITLE | html %]</td> - <td>[% WEEK_DAYS_LOO.DESCRIPTION | html %]</td> - </tr> - [% END %] -</tbody> -</table> -[% END %] - -[% IF ( DAY_MONTH_HOLIDAYS_LOOP ) %] -<h3>Yearly - Repeatable holidays</h3> -<table id="holidaysyearlyrepeatable"> -<thead> -<tr> - [% IF ( dateformat == "metric" ) %] - <th class="repeatableyearly">Day/month</th> - [% ELSE %] - <th class="repeatableyearly">Month/day</th> - [% END %] - <th class="repeatableyearly">Title</th> - <th class="repeatableyearly">Description</th> -</tr> -</thead> -<tbody> - [% FOREACH DAY_MONTH_HOLIDAYS_LOO IN DAY_MONTH_HOLIDAYS_LOOP %] - <tr> - <td data-order="[% DAY_MONTH_HOLIDAYS_LOO.DATE_SORT | html %]"> - [% DAY_MONTH_HOLIDAYS_LOO.DATE | html %] - </td> - <td>[% DAY_MONTH_HOLIDAYS_LOO.TITLE | html %]</td> - <td>[% DAY_MONTH_HOLIDAYS_LOO.DESCRIPTION | html %]</td> - </tr> - [% END %] -</tbody> -</table> -[% END %] - -[% IF ( HOLIDAYS_LOOP ) %] -<h3>Unique holidays</h3> -<label class="controls"> - <input type="checkbox" name="show_past" id="show_past_holidaysunique" class="show_past" /> - Show past entries -</label> -<table id="holidaysunique"> -<thead> -<tr> - <th class="holiday">Date</th> - <th class="holiday">Title</th> - <th class="holiday">Description</th> -</tr> -</thead> -<tbody> - [% FOREACH HOLIDAYS_LOO IN HOLIDAYS_LOOP %] -<tr data-date="[% HOLIDAYS_LOO.DATE_SORT | html %]"> - <td data-order="[% HOLIDAYS_LOO.DATE_SORT | html %]"> - <a href="/cgi-bin/koha/tools/holidays.pl?branch=[% branch | uri %]&calendardate=[% HOLIDAYS_LOO.DATE | uri %]"> - [% HOLIDAYS_LOO.DATE | html %] - </a> - </td> - <td>[% HOLIDAYS_LOO.TITLE | html %]</td> - <td>[% HOLIDAYS_LOO.DESCRIPTION.replace('\\\r\\\n', '<br />') | html %]</td> -</tr> - [% END %] -</tbody> -</table> -[% END %] -</div> -</div> -</div> - + <h2>[% Branches.GetName( branch ) | html %] calendar</h2> + + <div class="row"> + <div class="col-sm-6"> + <label for="branch">Define the holidays for:</label> + <select id="branch" name="branch"> + [% PROCESS options_for_libraries libraries => Branches.all( selected => branch ) %] + </select> + + <!-- ******************************** FLAT PANELS ******************************************* --> + <!-- ***** Makes all the flat panel to deal with holidays ***** --> + <!-- **************************************************************************************** --> + + <!-- ********************** Panel for showing already loaded holidays *********************** --> + <div class="panel" id="showHoliday"> + <form action="/cgi-bin/koha/tools/exceptionHolidays.pl" method="post"> + <input type="hidden" id="showHolidayType" name="showHolidayType" value="" /> + <fieldset class="brief"> + <h3>Edit this holiday</h3> + <span id="holtype"></span> + <ol> + <li> + <strong>Library:</strong> <span id="showBranchNameOutput"></span> + <input type="hidden" id="showBranchName" name="showBranchName" /> + </li> + <li> + <strong>From date:</strong> + <span id="showDaynameOutput"></span>, + [% IF ( dateformat == "us" ) %] + <span id="showMonthOutput"></span>/<span id="showDayOutput"></span>/<span id="showYearOutput"></span> + [% ELSIF ( dateformat == "metric") %] + <span id="showDayOutput"></span>/<span id="showMonthOutput"></span>/<span id="showYearOutput"></span> + [% ELSIF ( dateformat == "dmydot") %] + <span id="showDayOutput"></span>.<span id="showMonthOutput"></span>.<span id="showYearOutput"></span>[% ELSE %]<span id="showYearOutput"></span>/<span id="showMonthOutput"></span>/<span id="showDayOutput"></span> + [% END %] + + <input type="hidden" id="showDayname" name="showDayname" /> + <input type="hidden" id="showWeekday" name="showWeekday" /> + <input type="hidden" id="showDay" name="showDay" /> + <input type="hidden" id="showMonth" name="showMonth" /> + <input type="hidden" id="showYear" name="showYear" /> + </li> + <li class="dateinsert"> + <strong>To date: </strong> + <input type="text" id="datecancelrange" name="datecancelrange" size="20" value="[% datecancelrange | html %]" class="datepicker"/> + </li> + <li> + <label for="showTitle">Title: </label><input type="text" name="showTitle" id="showTitle" size="35" /> + </li> + <!-- showTitle is necessary for exception radio button to work properly --> + <li> + <label for="showDescription">Description:</label> + <textarea rows="2" cols="40" id="showDescription" name="showDescription"></textarea> + </li> + <li class="radio"> + <div class="exceptionPossibility" style="position:static"> + <input type="radio" name="showOperation" id="showOperationExc" value="exception" /> <label for="showOperationExc">Generate an exception for this repeated holiday.</label> + <a href="#" class="helptext">[?]</a> + <div class="hint">You can make an exception for this holiday rule. This means that you will be able to say that for a repeatable holiday there is one day which is going to be an exception.</div> + </div> + </li> + <li class="radio"> + <div class="exceptionPossibility" style="position:static"> + <input type="radio" name="showOperation" id="showOperationExcRange" value="exceptionrange" /> + <label for="showOperationExcRange">Generate exceptions on a range of dates.</label> + <a href="#" class="helptext">[?]</a> + <div class="hint">You can make an exception on a range of dates repeated yearly.</div> + </div> + </li> + <li class="radio"> + <input type="radio" name="showOperation" id="showOperationDel" value="delete" /> + <label for="showOperationDel" id="showOperationDelLabel">Delete this holiday</label> + <a href="#" class="helptext">[?]</a> + <div class="hint">This will delete this holiday rule. If it is a repeatable holiday, this option checks for possible exceptions. If an exception exists, this option will remove the exception and set the date to a regular holiday.</div> + </li> + <li class="radio"> + <input type="radio" name="showOperation" id="showOperationDelRange" value="deleterange" /> <label for="showOperationDelRange" id="showOperationDelLabelRange">Delete the single holidays on a range</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">This will delete the single holidays rules only. The repeatable holidays and exceptions will not be deleted.</div> + </li> + <li class="radio"> + <input type="radio" name="showOperation" id="showOperationDelRangeRepeat" value="deleterangerepeat" /> <label for="showOperationDelRangeRepeat" id="showOperationDelLabelRangeRepeat">Delete the repeated holidays on a range</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">This will delete the repeated holidays rules only. The repeatable holidays will be deleted but not the exceptions.</div> + </li> + <li class="radio"> + <input type="radio" name="showOperation" id="showOperationDelRangeRepeatExcept" value="deleterangerepeatexcept" /> <label for="showOperationDelRangeRepeatExcept" id="showOperationDelLabelRangeRepeatExcept">Delete the exceptions on a range</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">This will delete the exceptions inside a given range. Be careful about your scope range; if it is oversized you could slow down Koha.</div> + </li> + <li class="radio"> + <input type="radio" name="showOperation" id="showOperationEdit" value="edit" checked="checked" /> <label for="showOperationEdit">Edit this holiday</label> + <a href="#" class="helptext">[?]</a> + <div class="hint">This will save changes to the holiday's title and description. If the information for a repeatable holiday is modified, it affects all of the dates on which the holiday is repeated.</div></li> + <li class="checkbox"> + <input type="checkbox" name="allBranches" id="allBranches" /> + <label for="allBranches">Copy changes to all libraries</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">If checked, changes for this holiday will be copied to all libraries. If the holiday doesn't exists for a library, no change is made.</div> + </li> + </ol> + <fieldset class="action"> + <input type="submit" name="submit" value="Save" /> + <a href="#" class="cancel hidePanel showHoliday">Cancel</a> + </fieldset> + </fieldset> + </form> + </div> + + <!-- ***************************** Panel to deal with new holidays ********************** --> + <div class="panel" id="newHoliday"> + <form action="/cgi-bin/koha/tools/newHolidays.pl" method="post"> + <fieldset class="brief"> + <h3>Add new holiday</h3> + <ol> + <li> + <strong>Library:</strong> + <span id="newBranchNameOutput"></span> + <input type="hidden" id="newBranchName" name="newBranchName" /> + </li> + <li> + <strong>From date:</strong> + <span id="newDaynameOutput"></span>, + + [% IF ( dateformat == "us" ) %] + <span id="newMonthOutput"></span>/<span id="newDayOutput"></span>/<span id="newYearOutput"></span> + [% ELSIF ( dateformat == "metric" ) %] + <span id="newDayOutput"></span>/<span id="newMonthOutput"></span>/<span id="newYearOutput"></span> + [% ELSIF ( dateformat == "dmydot" ) %] + <span id="newDayOutput"></span>.<span id="newMonthOutput"></span>.<span id="newYearOutput"></span> + [% ELSE %] + <span id="newYearOutput"></span>/<span id="newMonthOutput"></span>/<span id="newDayOutput"></span> + [% END %] + + <input type="hidden" id="newDayname" name="showDayname" /> + <input type="hidden" id="newWeekday" name="newWeekday" /> + <input type="hidden" id="newDay" name="newDay" /> + <input type="hidden" id="newMonth" name="newMonth" /> + <input type="hidden" id="newYear" name="newYear" /> + </li> + <li class="dateinsert"> + <strong>To date: </strong> + <input type="text" id="dateofrange" name="dateofrange" size="20" value="[% dateofrange | html %]" class="datepicker" /> + </li> + <li> + <label for="title">Title: </label> + <input type="text" name="newTitle" id="title" size="35" /></li> + <li> + <label for="newDescription">Description:</label> + <textarea rows="2" cols="40" id="newDescription" name="newDescription"></textarea> + </li> + <li class="radio"> + <input type="radio" name="newOperation" id="newOperationOnce" value="holiday" checked="checked" /> + <label for="newOperationOnce">Holiday only on this day</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">Make a single holiday. For example, selecting August 1, 2012 will make it a holiday, but will not affect August 1 in other years.</div> + </li> + <li class="radio"> + <input type="radio" name="newOperation" id="newOperationDay" value="weekday" /> + <label for="newOperationDay">Holiday repeated every same day of the week</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">Make this weekday a holiday, every week. For example, if your library is closed on Saturdays, use this option to make every Saturday a holiday.</div> + </li> + <li class="radio"> + <input type="radio" name="newOperation" id="newOperationYear" value="repeatable" /> + <label for="newOperationYear">Holiday repeated yearly on the same date</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">This will take this day and month as a reference to make it a holiday. Through this option, you can repeat this rule for every year. For example, selecting August 1 will make August 1 a holiday every year.</div> + </li> + <li class="radio"> + <input type="radio" name="newOperation" id="newOperationField" value="holidayrange" /> + <label for="newOperationField">Holidays on a range</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">Make a single holiday on a range. For example, selecting August 1, 2012 and August 10, 2012 will make all days between August 1 and 10 a holiday, but will not affect August 1-10 in other years.</div> + </li> + <li class="radio"> + <input type="radio" name="newOperation" id="newOperationFieldyear" value="holidayrangerepeat" /> + <label for="newOperationFieldyear">Holidays repeated yearly on a range</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">Make a single holiday on a range repeated yearly. For example, selecting August 1, 2012 and August 10, 2012 will make all days between August 1 and 10 a holiday, and will affect August 1-10 in other years.</div> + </li> + <li class="checkbox"> + <input type="checkbox" name="allBranches" id="allBranches" /> + <label for="allBranches">Copy to all libraries</label>. + <a href="#" class="helptext">[?]</a> + <div class="hint">If checked, this holiday will be copied to all libraries. If the holiday already exists for a library, no change is made.</div> + </li> + </ol> + <fieldset class="action"> + <input type="submit" name="submit" value="Save" /> + <a href="#" class="cancel hidePanel newHoliday">Cancel</a> + </fieldset> + </fieldset> + </form> + </div> + + <!-- *************************************************************************************** --> + <!-- ****** END OF FLAT PANELS ****** --> + <!-- *************************************************************************************** --> + + <!-- ************************************************************************************** --> + <!-- ****** MAIN SCREEN CODE ****** --> + <!-- ************************************************************************************** --> + <h3>Calendar information</h3> + <div id="jcalendar-container"></div> + <div style="margin-top: 2em;"> + <form action="copy-holidays.pl" method="post"> + <input type="hidden" name="from_branchcode" value="[% branch | html %]" /> + <label for="branchcode">Copy holidays to:</label> + <select id="branchcode" name="branchcode"> + <option value=""></option> + [% FOREACH l IN Branches.all() %] + <option value="[% l.branchcode | html %]">[% l.branchname | html %]</option> + [% END %] + </select> + <input type="submit" value="Copy" /> + </form> + </div> + </div> + + <div class="col-sm-6"> + <div class="help"> + <h4>Hints</h4> + <ul> + <li>Search in the calendar the day you want to set as holiday.</li> + <li>Click the date to add or edit a holiday.</li> + <li>Enter a title and description for the holiday.</li> + <li>Specify how the holiday should repeat.</li> + <li>Click Save to finish.</li> + </ul> + <h4>Key</h4> + <p> + <span class="key normalday">Working day</span> + <span class="key holiday">Unique holiday</span> + <span class="key repeatableweekly">Holiday repeating weekly</span> + <span class="key repeatableyearly">Holiday repeating yearly</span> + <span class="key exception">Holiday exception</span> + </p> + </div> + + <div id="holiday-list"> + <!-- Exceptions First --> + <!-- this will probably always have the least amount of data --> + [% IF ( EXCEPTION_HOLIDAYS_LOOP ) %] + <h3>Exceptions</h3> + <label class="controls"> + <input type="checkbox" name="show_past" id="show_past_holidayexceptions" class="show_past" /> + Show past entries + </label> + <table id="holidayexceptions"> + <thead> + <tr> + <th class="exception">Date</th> + <th class="exception">Title</th> + <th class="exception">Description</th> + </tr> + </thead> + <tbody> + [% FOREACH EXCEPTION_HOLIDAYS_LOO IN EXCEPTION_HOLIDAYS_LOOP %] + <tr data-date="[% EXCEPTION_HOLIDAYS_LOO.DATE_SORT | html %]"> + <td data-order="[% EXCEPTION_HOLIDAYS_LOO.DATE_SORT | html %]"> + <a href="/cgi-bin/koha/tools/holidays.pl?branch=[% branch | uri %]&calendardate=[% EXCEPTION_HOLIDAYS_LOO.DATE | uri %]"> + [% EXCEPTION_HOLIDAYS_LOO.DATE | html %] + </a> + </td> + <td>[% EXCEPTION_HOLIDAYS_LOO.TITLE | html %]</td> + <td>[% EXCEPTION_HOLIDAYS_LOO.DESCRIPTION | html %]</td> + </tr> + [% END %] + </tbody> + </table> + [% END %] + + [% IF ( WEEK_DAYS_LOOP ) %] + <h3>Weekly - Repeatable holidays</h3> + <table id="holidayweeklyrepeatable"> + <thead> + <tr> + <th class="repeatableweekly">Day of week</th> + <th class="repeatableweekly">Title</th> + <th class="repeatableweekly">Description</th> + </tr> + </thead> + <tbody> + [% FOREACH WEEK_DAYS_LOO IN WEEK_DAYS_LOOP %] + <tr> + <td>[% WEEK_DAYS_LOO.KEY | html %]</td> + <td>[% WEEK_DAYS_LOO.TITLE | html %]</td> + <td>[% WEEK_DAYS_LOO.DESCRIPTION | html %]</td> + </tr> + [% END %] + </tbody> + </table> + [% END %] + + [% IF ( DAY_MONTH_HOLIDAYS_LOOP ) %] + <h3>Yearly - Repeatable holidays</h3> + <table id="holidaysyearlyrepeatable"> + <thead> + <tr> + [% IF ( dateformat == "metric" ) %] + <th class="repeatableyearly">Day/month</th> + [% ELSE %] + <th class="repeatableyearly">Month/day</th> + [% END %] + <th class="repeatableyearly">Title</th> + <th class="repeatableyearly">Description</th> + </tr> + </thead> + <tbody> + [% FOREACH DAY_MONTH_HOLIDAYS_LOO IN DAY_MONTH_HOLIDAYS_LOOP %] + <tr> + <td data-order="[% DAY_MONTH_HOLIDAYS_LOO.DATE_SORT | html %]"> + [% DAY_MONTH_HOLIDAYS_LOO.DATE | html %] + </td> + <td>[% DAY_MONTH_HOLIDAYS_LOO.TITLE | html %]</td> + <td>[% DAY_MONTH_HOLIDAYS_LOO.DESCRIPTION | html %]</td> + </tr> + [% END %] + </tbody> + </table> + [% END %] + + [% IF ( HOLIDAYS_LOOP ) %] + <h3>Unique holidays</h3> + <label class="controls"> + <input type="checkbox" name="show_past" id="show_past_holidaysunique" class="show_past" /> + Show past entries + </label> + <table id="holidaysunique"> + <thead> + <tr> + <th class="holiday">Date</th> + <th class="holiday">Title</th> + <th class="holiday">Description</th> + </tr> + </thead> + <tbody> + [% FOREACH HOLIDAYS_LOO IN HOLIDAYS_LOOP %] + <tr data-date="[% HOLIDAYS_LOO.DATE_SORT | html %]"> + <td data-order="[% HOLIDAYS_LOO.DATE_SORT | html %]"> + <a href="/cgi-bin/koha/tools/holidays.pl?branch=[% branch | uri %]&calendardate=[% HOLIDAYS_LOO.DATE | uri %]"> + [% HOLIDAYS_LOO.DATE | html %] + </a> + </td> + <td>[% HOLIDAYS_LOO.TITLE | html %]</td> + <td>[% HOLIDAYS_LOO.DESCRIPTION.replace('\\\r\\\n', '<br />') | html %]</td> + </tr> + [% END %] + </tbody> + </table> + [% END %] + </div> + </div> + </div> </main> </div> <!-- /.col-sm-10.col-sm-push-2 --> @@ -378,17 +412,17 @@ var day_month_holidays = new Array(); var hola= "[% code | html %]"; [% FOREACH WEEK_DAYS_LOO IN WEEK_DAYS_LOOP %] - week_days["[% WEEK_DAYS_LOO.KEY | html %]"] = {title:"[% WEEK_DAYS_LOO.TITLE | replace('"','\"') | html %]", description:"[% WEEK_DAYS_LOO.DESCRIPTION | replace('"','\"') | html %]"}; + week_days["[% WEEK_DAYS_LOO.KEY | html %]"] = {title:"[% WEEK_DAYS_LOO.TITLE | replace('"','\"') | html %]", description:"[% WEEK_DAYS_LOO.DESCRIPTION | replace('"','\"') | html %]"}; [% END %] [% FOREACH HOLIDAYS_LOO IN HOLIDAYS_LOOP %] - holidates.push("[% HOLIDAYS_LOO.KEY | html %]"); - holidays["[% HOLIDAYS_LOO.KEY | html %]"] = {title:"[% HOLIDAYS_LOO.TITLE | replace('"','\"') | html %]", description:"[% HOLIDAYS_LOO.DESCRIPTION | replace('"','\"') | html %]"}; + holidates.push("[% HOLIDAYS_LOO.KEY | html %]"); + holidays["[% HOLIDAYS_LOO.KEY | html %]"] = {title:"[% HOLIDAYS_LOO.TITLE | replace('"','\"') | html %]", description:"[% HOLIDAYS_LOO.DESCRIPTION | replace('"','\"') | html %]"}; [% END %] [% FOREACH EXCEPTION_HOLIDAYS_LOO IN EXCEPTION_HOLIDAYS_LOOP %] - exception_holidays["[% EXCEPTION_HOLIDAYS_LOO.KEY | html %]"] = {title:"[% EXCEPTION_HOLIDAYS_LOO.TITLE | replace('"','\"') | html %]", description:"[% EXCEPTION_HOLIDAYS_LOO.DESCRIPTION | replace('"','\"') | html %]"}; + exception_holidays["[% EXCEPTION_HOLIDAYS_LOO.KEY | html %]"] = {title:"[% EXCEPTION_HOLIDAYS_LOO.TITLE | replace('"','\"') | html %]", description:"[% EXCEPTION_HOLIDAYS_LOO.DESCRIPTION | replace('"','\"') | html %]"}; [% END %] [% FOREACH DAY_MONTH_HOLIDAYS_LOO IN DAY_MONTH_HOLIDAYS_LOOP %] - day_month_holidays["[% DAY_MONTH_HOLIDAYS_LOO.KEY | html %]"] = {title:"[% DAY_MONTH_HOLIDAYS_LOO.TITLE | replace('"','\"') | html %]", description:"[% DAY_MONTH_HOLIDAYS_LOO.DESCRIPTION | replace('"','\"') | html %]"}; + day_month_holidays["[% DAY_MONTH_HOLIDAYS_LOO.KEY | html %]"] = {title:"[% DAY_MONTH_HOLIDAYS_LOO.TITLE | replace('"','\"') | html %]", description:"[% DAY_MONTH_HOLIDAYS_LOO.DESCRIPTION | replace('"','\"') | html %]"}; [% END %] function holidayOperation(formObject, opType) { @@ -499,33 +533,33 @@ var dayName = weekdays[weekDay]; var dayMonth = month + '/' + day; var dateString = year + '/' + month + '/' + day; - if (holidays[dateString] != null) { - showHoliday(0, dayName, day, month, year, weekDay, holidays[dateString].title, holidays[dateString].description, 'ymd'); - } else if (exception_holidays[dateString] != null) { - showHoliday(0, dayName, day, month, year, weekDay, exception_holidays[dateString].title, exception_holidays[dateString].description, 'exception'); - } else if (week_days[weekDay] != null) { - showHoliday(1, dayName, day, month, year, weekDay, week_days[weekDay].title, week_days[weekDay].description, 'weekday'); - } else if (day_month_holidays[dayMonth] != null) { - showHoliday(1, dayName, day, month, year, weekDay, day_month_holidays[dayMonth].title, day_month_holidays[dayMonth].description, 'daymonth'); - } else { - newHoliday(dayName, day, month, year, weekDay); - } + if (holidays[dateString] != null) { + showHoliday(0, dayName, day, month, year, weekDay, holidays[dateString].title, holidays[dateString].description, 'ymd'); + } else if (exception_holidays[dateString] != null) { + showHoliday(0, dayName, day, month, year, weekDay, exception_holidays[dateString].title, exception_holidays[dateString].description, 'exception'); + } else if (week_days[weekDay] != null) { + showHoliday(1, dayName, day, month, year, weekDay, week_days[weekDay].title, week_days[weekDay].description, 'weekday'); + } else if (day_month_holidays[dayMonth] != null) { + showHoliday(1, dayName, day, month, year, weekDay, day_month_holidays[dayMonth].title, day_month_holidays[dayMonth].description, 'daymonth'); + } else { + newHoliday(dayName, day, month, year, weekDay); + } }; - /* 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; - } + /* 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(); -- 2.11.0