Koha/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-numberpatterns.tt
Owen Leonard 04d79ba063 Bug 19778: Move template JavaScript to the footer: Serials, part 4
This patch modifies more and more staff client serials templates so
that JavaScript is included in the footer instead of the header.

This patch adds a new JavaScript include, showpredictionpattern.js,
which is used by subscription-add.tt and subscription-numberpatterns.tt.
it also adds subscription-add.js, moving most of the JS embedded in
subscription-add.tt into an external file.

To test, apply the patch and test the JavaScript-driven features of the
modified templates: All button controls, DataTables functionality, tabs,
etc.

 - Serials -> New subscription
   - Date pickers
   - Popup search windows for vendors and bibliographic
     records
   - Next / Previous buttons
   - Form validation
   - Prediction pattern operations

   Test with new subscriptions, editing existing subscriptions, and
   duplicating subscriptions.

 - Serials -> Manage Numbering Patterns
   - Datatable
   - Delete confirmation
   -> Edit
      - Datepicker, test pattern
 - Serials -> Manage frequencies
   - Delete confirmation
   -> Edit
      - Form validation
 - Serials -> Subscription details -> Planning tab
   -> Edit history
      -> Datepicker
 - Serials -> Subscription details -> Renew
   - Datepicker

Signed-off-by: Dominic Pichette <dominic@inlibro.com>

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2017-12-14 16:58:13 -03:00

389 lines
17 KiB
Text

[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Serials &rsaquo; Numbering patterns</title>
[% INCLUDE 'doc-head-close.inc' %]
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
</head>
<body id="ser_subscription_numberpatterns" class="ser">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'serials-search.inc' %]
<div id="breadcrumbs">
<a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo;
<a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> &rsaquo;
<a href="/cgi-bin/koha/serials/subscription-numberpatterns.pl">Numbering patterns</a>
[% IF ( new ) %]
&rsaquo; New numbering pattern
[% ELSIF ( modify ) %]
&rsaquo; Modifying numbering pattern '[% label %]'
[% END %]
</div>
<div id="doc3" class="yui-t2">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
[% IF (new or modify) %]
<div class="yui-g">
[% IF (new) %]
<h1>New numbering pattern</h1>
[% IF (error_existing_numberpattern) %]
<div class="dialog alert">
<p>A pattern with this name already exists.</p>
</div>
[% END %]
[% ELSE %]
<h1>Modify pattern: [% label %]</h1>
[% IF (error_existing_numberpattern) %]
<div class="dialog alert">
<p>Another pattern with this name already exists.</p>
</div>
[% END %]
[% END %]
</div>
<div class="yui-g">
<form action="/cgi-bin/koha/serials/subscription-numberpatterns.pl" method="post">
[% IF (new) %]
<input type="hidden" name="op" value="savenew" />
[% ELSE %]
<input type="hidden" name="op" value="savemod" />
<input type="hidden" name="id" value="[% id %]" />
[% END %]
<fieldset class="rows">
<ol>
<li>
<label for="label">Name:</label>
<input type="text" id="label" name="label" value="[% label %]" />
</li>
<li>
<label for="description">Description:</label>
<input type="text" id="description" name="description" value="[% description %]" />
</li>
<li>
<label for="numberingmethod">Numbering formula:</label>
<input type="text" id="numberingmethod" name="numberingmethod" value="[% numberingmethod %]" />
</li>
<li>
<label for="displayorder">Display order:</label>
<input type="text" id="displayorder" name="displayorder" value="[% displayorder %]" />
</li>
</ol>
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>X</th>
<th>Y</th>
<th>Z</th>
</tr>
</thead>
<tbody>
<tr>
<td>Label</td>
<td><input type="text" id="label1" name="label1" value="[% label1 %]" /></td>
<td><input type="text" id="label2" name="label2" value="[% label2 %]" /></td>
<td><input type="text" id="label3" name="label3" value="[% label3 %]" /></td>
</tr>
<tr>
<td>Add</td>
<td><input type="text" id="add1" name="add1" value="[% add1 %]" /></td>
<td><input type="text" id="add2" name="add2" value="[% add2 %]" /></td>
<td><input type="text" id="add3" name="add3" value="[% add3 %]" /></td>
</tr>
<tr>
<td>Every</td>
<td><input type="text" id="every1" name="every1" value="[% every1 %]" /></td>
<td><input type="text" id="every2" name="every2" value="[% every2 %]" /></td>
<td><input type="text" id="every3" name="every3" value="[% every3 %]" /></td>
</tr>
<tr>
<td>Set back to</td>
<td><input type="text" id="setto1" name="setto1" value="[% setto1 %]" /></td>
<td><input type="text" id="setto2" name="setto2" value="[% setto2 %]" /></td>
<td><input type="text" id="setto3" name="setto3" value="[% setto3 %]" /></td>
</tr>
<tr>
<td>When more than</td>
<td><input type="text" id="whenmorethan1" name="whenmorethan1" value="[% whenmorethan1 %]" /></td>
<td><input type="text" id="whenmorethan2" name="whenmorethan2" value="[% whenmorethan2 %]" /></td>
<td><input type="text" id="whenmorethan3" name="whenmorethan3" value="[% whenmorethan3 %]" /></td>
</tr>
<tr>
[% BLOCK numbering_select %]
<select id="[% name %]" name="[% name %]">
<option value=""></option>
[% IF (value == "dayname") %]
<option selected="selected" value="dayname">Name of day</option>
[% ELSE %]
<option value="dayname">Name of day</option>
[% END %]
[% IF (value == "dayabrv") %]
<option selected="selected" value="dayabrv">Name of day (abbreviated)</option>
[% ELSE %]
<option value="dayabrv">Name of day (abbreviated)</option>
[% END %]
[% IF (value == "monthname") %]
<option selected="selected" value="monthname">Name of month</option>
[% ELSE %]
<option value="monthname">Name of month</option>
[% END %]
[% IF (value == "monthabrv") %]
<option selected="selected" value="monthabrv">Name of month (abbreviated)</option>
[% ELSE %]
<option value="monthabrv">Name of month (abbreviated)</option>
[% END %]
[% IF (value == "season") %]
<option selected="selected" value="season">Name of season</option>
[% ELSE %]
<option value="season">Name of season</option>
[% END %]
[% IF (value == "seasonabrv") %]
<option selected="selected" value="seasonabrv">Name of season (abbreviated)</option>
[% ELSE %]
<option value="seasonabrv">Name of season (abbreviated)</option>
[% END %]
</select>
[% END %]
<td>Formatting</td>
<td>[% PROCESS numbering_select name="numbering1" value=numbering1 %]</td>
<td>[% PROCESS numbering_select name="numbering2" value=numbering2 %]</td>
<td>[% PROCESS numbering_select name="numbering3" value=numbering3 %]</td>
</tr>
</tbody>
</table>
</fieldset>
<fieldset class="action">
<button type="submit" class="btn btn-default btn-sm">Save</button>
<button type="reset" class="btn btn-default btn-sm">Reset</button>
<a class="cancel" href="/cgi-bin/koha/serials/subscription-numberpatterns.pl">Cancel</a>
</fieldset>
</form>
</div>
<div class="yui-g">
<form>
<fieldset class="rows">
<legend>Test prediction pattern</legend>
<ol>
<li>
<label for="frequency">Frequency: </label>
<select id="frequency">
[% FOREACH frequency IN frequencies_loop %]
<option value="[% frequency.id %]">[% frequency.description %]</option>
[% END %]
</select>
</li>
<li>
<label for="firstacquidate">First issue publication date: </label>
<input type="text" id="firstacquidate" class="datepicker" size="10" />
</li>
<li>
<label for="sublength">Subscription length:</label>
<select id="subtype">
[% FOREACH subtype IN subtypes_loop %]
<option value="[% subtype.value %]">[% subtype.value %]</option>
[% END %]
</select>
<input type="text" id="sublength" size="3" />
</li>
<li>
<label for="locale">Locale: </label>
<select id="locale" name="locale">
<option value=""></option>
[% FOREACH locale IN locales %]
<option value="[% locale.language %]">[% locale.description %]</option>
[% END %]
</select>
<span class="hint">If empty, English is used</span>
</li>
</ol>
<table>
<thead>
<tr>
<th>&nbsp;</th>
<th>X</th>
<th>Y</th>
<th>Z</th>
</tr>
</thead>
<tbody>
<tr>
<td>Begins with</td>
<td><input type="text" id="lastvalue1" name="lastvalue1" value="[% lastvalue1 %]" /></td>
<td><input type="text" id="lastvalue2" name="lastvalue2" value="[% lastvalue2 %]" /></td>
<td><input type="text" id="lastvalue3" name="lastvalue3" value="[% lastvalue3 %]" /></td>
</tr>
<tr>
<td>Inner counter</td>
<td><input type="text" id="innerloop1" name="innerloop1" value="[% innerloop1 %]" /></td>
<td><input type="text" id="innerloop2" name="innerloop2" value="[% innerloop2 %]" /></td>
<td><input type="text" id="innerloop3" name="innerloop3" value="[% innerloop3 %]" /></td>
</tr>
</tbody>
</table>
<fieldset class="action">
<button type="button" id="test_pattern" class="btn btn-default btn-sm">Test pattern</button>
</fieldset>
<div id="predictionpattern"></div>
</fieldset>
</form>
</div>
[% ELSE %]
<h1>Numbering patterns</h1>
[% IF still_used %]
<div class="dialog alert">
<p>
This pattern is still used by [% subscriptions.size %]
subscription(s). Do you still want to delete it?
</p>
<p><a href="#" id="show_blocking_subs">Show subscriptions</a></p>
<ul id="blocking_subs" style="display:none">
[% FOREACH sub IN subscriptions %]
<li style="list-style-type:none">
<a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% sub.subscriptionid %]">[% sub.title %]</a>
</li>
[% END %]
</ul>
<form action="/cgi-bin/koha/serials/subscription-numberpatterns.pl" method="get">
<input type="hidden" name="op" value="del" />
<input type="hidden" name="confirm" value="1" />
<input type="hidden" name="id" value="[% id %]" />
<button type="submit" class="approve"><i class="fa fa-fw fa-check"></i> Yes, delete</button>
</form>
<form action="/cgi-bin/koha/serials/subscription-numberpatterns.pl" method="get">
<button type="submit" class="deny"><i class="fa fa-fw fa-remove"></i> No, do not delete</button>
</form>
</div>
[% END %]
<div id="toolbar" class="btn-toolbar">
<a class="btn btn-default btn-sm" id="newnumberpattern" href="/cgi-bin/koha/serials/subscription-numberpatterns.pl?op=new"><i class="fa fa-plus"></i> New numbering pattern</a>
</div>
[% IF (numberpatterns_loop.size) %]
<table id="numberpatternst">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>Numbering formula</th>
<th>Display order</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
[% FOREACH numberpattern IN numberpatterns_loop %]
<tr>
<td>[% numberpattern.label %]</td>
<td>[% numberpattern.description %]</td>
<td>[% numberpattern.numberingmethod %]</td>
<td>[% numberpattern.displayorder %]</td>
<td class="actions">
<a class="btn btn-default btn-xs" href="/cgi-bin/koha/serials/subscription-numberpatterns.pl?op=modify&id=[% numberpattern.id %]"><i class="fa fa-pencil"></i> Edit</a>
<a class="delete_pattern btn btn-default btn-xs" href="/cgi-bin/koha/serials/subscription-numberpatterns.pl?op=del&id=[% numberpattern.id %]"><i class="fa fa-trash"></i> Delete</a>
</td>
</tr>
[% END %]
</tbody>
</table>
[% ELSE %]
<p>There are no existing numbering patterns.</p>
[% END %]
[% END %]
</div>
</div>
<div class="yui-b">
[% INCLUDE 'serials-menu.inc' %]
</div>
</div>
[% MACRO jsinclude BLOCK %]
[% IF (daily_options) %]
<script type="text/javascript" src="[% interface %]/[% theme %]/js/showpredictionpattern.js"></script>
[% END %]
[% INCLUDE 'calendar.inc' %]
[% INCLUDE 'datatables.inc' %]
<script type="text/javascript">
function confirmDelete() {
return confirm(_("Are you sure you want to delete this numbering pattern?"));
}
[% IF (new or modify) %]
function testPattern() {
var frequencyid = $("#frequency").val();
var firstacquidate = $("#firstacquidate").val();
var error = 0;
var error_msg = "";
if(frequencyid == undefined || frequencyid == "") {
error_msg += _("- Frequency is not defined") + "\n";
error ++;
}
if(firstacquidate == undefined || firstacquidate == "") {
error_msg += _("- First publication date is not defined") + "\n";
error ++;
}
if(error){
alert(_("Cannot test prediction pattern for the following reason(s):") + "\n\n"
+ error_msg);
return false;
}
var ajaxData = {
'custompattern': true,
};
var ajaxParams = [
'firstacquidate', 'subtype', 'sublength', 'frequency', 'numberingmethod',
'lastvalue1', 'lastvalue2', 'lastvalue3', 'add1', 'add2', 'add3',
'every1', 'every2', 'every3', 'innerloop1', 'innerloop2', 'innerloop3',
'setto1', 'setto2', 'setto3', 'numbering1', 'numbering2', 'numbering3',
'whenmorethan1', 'whenmorethan2', 'whenmorethan3', 'locale'
];
for(i in ajaxParams) {
var param = ajaxParams[i];
var value = $("#"+param).val();
if(value.length > 0)
ajaxData[param] = value;
}
$.ajax({
url: "/cgi-bin/koha/serials/showpredictionpattern.pl",
data: ajaxData,
async: false,
dataType: "text",
success: function(data) {
$("#predictionpattern").html(data);
}
});
}
[% END %]
function show_blocking_subs() {
$("#blocking_subs").show();
}
$(document).ready(function(){
$("#numberpatternst").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumnDefs": [
{ "aTargets": [ -1 ], "bSortable": false, "bSearchable": false },
],
"sPaginationType": "four_button"
}));
$(".delete_pattern").on("click",function(){
return confirmDelete();
});
$("#show_blocking_subs").on("click",function(e){
e.preventDefault();
$("#blocking_subs").show();
});
$("#test_pattern").on("click",function(){
testPattern();
});
});
</script>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]