c3a95f92da
- Various fixes. Test plan: Once the makePreviousSerialAvailable syspref is enabled, receive a serial, and then another, then check that: - the first received itemtype has been set to the "previous item type" value (set in the subscription). - the first received has been made available. - the last received serial itemtype has been set to the "item type" value (set in the subscription). - 995$l is automatically prefilled. Configure the serialsFieldsToAV syspref. When creating or editing a subscription, check that: - the domain and/or origin and/or support fields are correctly displaying the authorized values configured in the syspref. Signed-off-by: Chris <chris@bigballofwax.co.nz> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
984 lines
52 KiB
Text
984 lines
52 KiB
Text
[% USE KohaDates %]
|
|
[% USE Branches %]
|
|
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Serials › [% IF ( modify ) %][% bibliotitle |html %] › Modify subscription[% ELSE %]New subscription[% END %]</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% INCLUDE 'calendar.inc' %]
|
|
<style type="text/css">
|
|
fieldset.rows li.radio { width: 100%; } /* override staff-global.css */
|
|
.yui-u li p label.widelabel {
|
|
width: 300px; /* not enough for IE7 apparently */
|
|
}
|
|
</style>
|
|
<script type="text/javascript">
|
|
//<![CDATA[
|
|
|
|
var globalnumpatterndata;
|
|
var globalfreqdata;
|
|
var advancedpatternlocked;
|
|
var patternneedtobetested = 0;
|
|
[% IF ( irregularity ) %]patternneedtobetested = 1;[% END %]
|
|
|
|
function check_issues(){
|
|
if (globalfreqdata.unit.length >0) {
|
|
if (document.f.subtype.value == globalfreqdata.unit){
|
|
document.f.issuelengthcount.value=(document.f.sublength.value*globalfreqdata.issuesperunit)/globalfreqdata.unitsperissue;
|
|
} else if (document.f.subtype.value != "issues"){
|
|
alert(_("Frequency and subscription length provided doesn't combine well. Please consider entering an issue count rather than a time period."));
|
|
}
|
|
}
|
|
}
|
|
|
|
function addbiblioPopup(biblionumber) {
|
|
var destination = "/cgi-bin/koha/cataloguing/addbiblio.pl?mode=popup";
|
|
if(biblionumber){
|
|
destination += "&biblionumber="+biblionumber;
|
|
}
|
|
window.open(destination,'AddBiblioPopup','width=1024,height=768,toolbar=no,scrollbars=yes');
|
|
}
|
|
|
|
function Plugin()
|
|
{
|
|
window.open('subscription-bib-search.pl','FindABibIndex','width=800,height=400,toolbar=no,scrollbars=yes');
|
|
}
|
|
|
|
function FindAcqui()
|
|
{
|
|
window.open('acqui-search.pl','FindASupplier','width=800,height=400,toolbar=no,scrollbars=yes');
|
|
}
|
|
|
|
function Find_ISSN(f)
|
|
{
|
|
window.open('issn-search.pl','FindABibIndex','width=800,height=400,toolbar=no,scrollbars=yes');
|
|
}
|
|
|
|
function Clear(id) {
|
|
$("#"+id).val('');
|
|
}
|
|
|
|
function Check_page1() {
|
|
if ( $("#aqbooksellerid").val().length == 0) {
|
|
input_box = confirm(_("If you wish to claim late or missing issues you must link this subscription to a vendor. Click OK to ignore or Cancel to return and enter a vendor"));
|
|
if (input_box==false) {
|
|
return false;
|
|
}
|
|
}
|
|
if ($("#biblionumber").val().length == 0) {
|
|
alert(_("You must choose or create a biblio"));
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function Check_page2(){
|
|
[% UNLESS (more_than_one_serial) %]
|
|
if($("#acqui_date").val().length == 0){
|
|
alert(_("You must choose a first publication date"));
|
|
return false;
|
|
}
|
|
[% END %]
|
|
if($("#sublength").val().length == 0 && $("input[name='enddate']").val().length == 0){
|
|
alert(_("You must choose a subscription length or an end date."));
|
|
return false;
|
|
}
|
|
if(advancedpatternlocked == 0){
|
|
alert(_("You have modified the advanced prediction pattern. Please save your work or cancel modifications."));
|
|
return false;
|
|
}
|
|
if(patternneedtobetested){
|
|
[% IF (irregularity) %]
|
|
alert(_("Warning! Present pattern has planned irregularities. Click on 'Test prediction pattern' to check if it's still valid"));
|
|
[% ELSE %]alert(_("Please click on 'Test prediction pattern' before saving subscription."));[% END %]
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function frequencyload(){
|
|
$.getJSON("subscription-frequency.pl",{"frequency_id":document.f.frequency.value,ajax:'true'},
|
|
function(freqdata){
|
|
globalfreqdata=freqdata;
|
|
if ( globalfreqdata.unit && globalfreqdata.unit.length == 0 ) {
|
|
var option = $("#subtype option[value='issues']");
|
|
$(option).attr('selected', 'selected');
|
|
$("#subtype option[value!='issues']").prop('disabled', true)
|
|
} else {
|
|
$("#subtype option").prop('disabled', false)
|
|
}
|
|
}
|
|
)
|
|
}
|
|
|
|
function numberpatternload(){
|
|
$.getJSON("subscription-numberpattern.pl",{"numberpattern_id":document.f.numbering_pattern.value,ajax:'true'},
|
|
function(numpatterndata){
|
|
globalnumpatterndata=numpatterndata;
|
|
if (globalnumpatterndata==undefined){
|
|
return false;
|
|
}
|
|
displaymoreoptions();
|
|
restoreAdvancedPattern();
|
|
}
|
|
);
|
|
}
|
|
|
|
function displaymoreoptions() {
|
|
if(globalnumpatterndata == undefined){
|
|
$("#moreoptionst").hide();
|
|
return false;
|
|
}
|
|
|
|
var X = 0, Y = 0, Z = 0;
|
|
var numberingmethod = globalnumpatterndata.numberingmethod;
|
|
if(numberingmethod.match(/{X}/)) X = 1;
|
|
if(numberingmethod.match(/{Y}/)) Y = 1;
|
|
if(numberingmethod.match(/{Z}/)) Z = 1;
|
|
|
|
if(X || Y || Z) {
|
|
$("#moreoptionst").show();
|
|
} else {
|
|
$("#moreoptionst").hide();
|
|
}
|
|
|
|
if(X) {
|
|
if(globalnumpatterndata.label1) {
|
|
$("#headerX").html(globalnumpatterndata.label1);
|
|
} else {
|
|
$("#headerX").html("X");
|
|
}
|
|
$("#headerX").show();
|
|
$("#beginsX").show();
|
|
$("#innerX").show();
|
|
} else {
|
|
$("#headerX").hide();
|
|
$("#beginsX").hide();
|
|
$("#innerX").hide();
|
|
$("#lastvaluetemp1").val('');
|
|
$("#innerlooptemp1").val('');
|
|
}
|
|
if(Y) {
|
|
if(globalnumpatterndata.label2) {
|
|
$("#headerY").html(globalnumpatterndata.label2);
|
|
} else {
|
|
$("#headerY").html("Y");
|
|
}
|
|
$("#headerY").show();
|
|
$("#beginsY").show();
|
|
$("#innerY").show();
|
|
} else {
|
|
$("#headerY").hide();
|
|
$("#beginsY").hide();
|
|
$("#innerY").hide();
|
|
$("#lastvaluetemp2").val('');
|
|
$("#innerlooptemp2").val('');
|
|
}
|
|
if(Z) {
|
|
if(globalnumpatterndata.label3) {
|
|
$("#headerZ").html(globalnumpatterndata.label3);
|
|
} else {
|
|
$("#headerZ").html("Z");
|
|
}
|
|
$("#headerZ").show();
|
|
$("#beginsZ").show();
|
|
$("#innerZ").show();
|
|
} else {
|
|
$("#headerZ").hide();
|
|
$("#beginsZ").hide();
|
|
$("#innerZ").hide();
|
|
$("#lastvaluetemp3").val('');
|
|
$("#innerlooptemp3").val('');
|
|
}
|
|
}
|
|
|
|
function modifyAdvancedPattern() {
|
|
$("#patternname").prop('readOnly', false).val('');
|
|
$("#numberingmethod").prop('readOnly', false);
|
|
|
|
$("#advancedpredictionpatternt input").each(function() {
|
|
$(this).prop('readOnly', false);
|
|
});
|
|
$("#advancedpredictionpatternt select").each(function() {
|
|
$(this).prop('disabled', false);
|
|
});
|
|
|
|
$("#restoreadvancedpatternbutton").show();
|
|
$("#saveadvancedpatternbutton").show();
|
|
$("#modifyadvancedpatternbutton").hide();
|
|
|
|
advancedpatternlocked = 0;
|
|
}
|
|
|
|
function restoreAdvancedPattern() {
|
|
$("#patternname").prop('readOnly', true).val(globalnumpatterndata.label);
|
|
$("#numberingmethod").prop('readOnly', true).val(globalnumpatterndata.numberingmethod);
|
|
|
|
$("#advancedpredictionpatternt input").each(function() {
|
|
$(this).prop('readOnly', true);
|
|
var id = $(this).attr('id');
|
|
if(id.match(/lastvalue/) || id.match(/innerloop/)) {
|
|
var tempid = id.replace(/(\d)/, "temp$1");
|
|
$(this).val($("#"+tempid).val());
|
|
} else {
|
|
$(this).val(globalnumpatterndata[id]);
|
|
}
|
|
});
|
|
$("#advancedpredictionpatternt select").each(function() {
|
|
$(this).prop('disabled', true);
|
|
var id = $(this).attr('id');
|
|
$(this).val(globalnumpatterndata[id]);
|
|
});
|
|
|
|
$("#restoreadvancedpatternbutton").hide();
|
|
$("#saveadvancedpatternbutton").hide();
|
|
$("#modifyadvancedpatternbutton").show();
|
|
|
|
advancedpatternlocked = 1;
|
|
}
|
|
|
|
function testPredictionPattern() {
|
|
var frequencyid = $("#frequency").val();
|
|
var acquidate;
|
|
var error = 0;
|
|
var error_msg = "";
|
|
if(frequencyid == undefined || frequencyid == ""){
|
|
error_msg += _("- Frequency is not defined") + "\n";
|
|
error ++;
|
|
}
|
|
acquidate = $("#acqui_date").val();
|
|
if(acquidate == undefined || acquidate == ""){
|
|
error_msg += _("- First publication date is not defined") + "\n";
|
|
error ++;
|
|
}
|
|
[% IF (more_than_one_serial) %]
|
|
var nextacquidate = $("#nextacquidate").val();
|
|
if(nextacquidate == undefined || nextacquidate == ""){
|
|
error_msg += _("- Next issue publication date is not defined") + "\n";
|
|
error ++;
|
|
}
|
|
[% END %]
|
|
|
|
if(error){
|
|
alert(_("Cannot test prediction pattern for the following reason(s): %s").format(error_msg));
|
|
return false;
|
|
}
|
|
|
|
var custompattern = 0;
|
|
if(advancedpatternlocked == 0) {
|
|
custompattern = 1;
|
|
}
|
|
|
|
var ajaxData = {
|
|
'custompattern': custompattern,
|
|
[% IF (subscriptionid) %]
|
|
'subscriptionid': [% subscriptionid %],
|
|
[% END %]
|
|
[% IF (more_than_one_serial) %]
|
|
'nextacquidate': nextacquidate,
|
|
[% END %]
|
|
'firstacquidate': acquidate
|
|
};
|
|
var ajaxParams = [
|
|
'to', '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,
|
|
success: function(data) {
|
|
$("#displayexample").html(data);
|
|
patternneedtobetested = 0;
|
|
}
|
|
});
|
|
}
|
|
|
|
function saveAdvancedPattern() {
|
|
if ($("#patternname").val().length == 0) {
|
|
alert(_("Please enter a name for this pattern"));
|
|
return false;
|
|
}
|
|
|
|
// Check if patternname already exists, and modify pattern
|
|
// instead of creating it if so
|
|
var found = 0;
|
|
$("#numberpattern option").each(function(){
|
|
if($(this).text() == $("#patternname").val()){
|
|
found = 1;
|
|
return false;
|
|
}
|
|
});
|
|
var cnfrm = 1;
|
|
if(found){
|
|
var msg = _("This pattern name already exists. Do you want to modify it?")
|
|
+ "\n" + _("Warning: it will modify the pattern for all subscriptions that are using it.");
|
|
cnfrm = confirm(msg);
|
|
}
|
|
|
|
if(cnfrm) {
|
|
var ajaxData = {};
|
|
var ajaxParams = [
|
|
'patternname', 'numberingmethod', 'label1', 'label2', 'label3',
|
|
'add1', 'add2', 'add3', 'every1', 'every2', 'every3',
|
|
'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;
|
|
}
|
|
|
|
$.getJSON(
|
|
"/cgi-bin/koha/serials/create-numberpattern.pl",
|
|
ajaxData,
|
|
function(data){
|
|
if (data.numberpatternid) {
|
|
if(found == 0){
|
|
$("#numberpattern").append("<option value=\""+data.numberpatternid+"\">"+$("#patternname").val()+"</option>");
|
|
}
|
|
$("#numberpattern").val(data.numberpatternid);
|
|
numberpatternload();
|
|
} else {
|
|
alert(_("Something went wrong. Unable to create a new numbering pattern."));
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
function show_page_1() {
|
|
$("#page_1").show();
|
|
$("#page_2").hide();
|
|
$("#page_number").text("1/2");
|
|
}
|
|
|
|
function show_page_2() {
|
|
$("#page_1").hide();
|
|
$("#page_2").show();
|
|
$("#page_number").text("2/2");
|
|
displaymoreoptions();
|
|
}
|
|
|
|
|
|
$(document).ready(function() {
|
|
$("#aqbooksellerid").on('keypress', function(e) {
|
|
if (e.keyCode == 13) {
|
|
e.preventDefault();
|
|
FindAcqui();
|
|
}
|
|
});
|
|
$("#biblionumber").on('keypress', function(e) {
|
|
if (e.keyCode == 13) {
|
|
e.preventDefault();
|
|
Plugin();
|
|
}
|
|
});
|
|
$("select#frequency").change(function(){
|
|
patternneedtobetested = 1;
|
|
$("input[name='enddate']").val('');
|
|
frequencyload();
|
|
});
|
|
$("select#numberpattern").change(function(){
|
|
patternneedtobetested = 1;
|
|
numberpatternload();
|
|
});
|
|
$("#subtype").change(function(){
|
|
$("input[name='enddate']").val('');
|
|
});
|
|
$("#sublength").change(function(){
|
|
$("input[name='enddate']").val('');
|
|
});
|
|
$("#lastvaluetemp1").keyup(function(){
|
|
$("#lastvalue1").val($(this).val());
|
|
});
|
|
$("#lastvaluetemp2").keyup(function(){
|
|
$("#lastvalue2").val($(this).val());
|
|
});
|
|
$("#lastvaluetemp3").keyup(function(){
|
|
$("#lastvalue3").val($(this).val());
|
|
});
|
|
$("#lastvalue1").keyup(function(){
|
|
$("#lastvaluetemp1").val($(this).val());
|
|
});
|
|
$("#lastvalue2").keyup(function(){
|
|
$("#lastvaluetemp2").val($(this).val());
|
|
});
|
|
$("#lastvalue3").keyup(function(){
|
|
$("#lastvaluetemp3").val($(this).val());
|
|
});
|
|
|
|
$("#innerlooptemp1").keyup(function(){
|
|
$("#innerloop1").val($(this).val());
|
|
});
|
|
$("#innerlooptemp2").keyup(function(){
|
|
$("#innerloop2").val($(this).val());
|
|
});
|
|
$("#innerlooptemp3").keyup(function(){
|
|
$("#innerloop3").val($(this).val());
|
|
});
|
|
$("#innerloop1").keyup(function(){
|
|
$("#innerlooptemp1").val($(this).val());
|
|
});
|
|
$("#innerloop2").keyup(function(){
|
|
$("#innerlooptemp2").val($(this).val());
|
|
});
|
|
$("#innerloop3").keyup(function(){
|
|
$("#innerlooptemp3").val($(this).val());
|
|
});
|
|
|
|
if($("#frequency").val() != ""){
|
|
frequencyload();
|
|
}
|
|
if($("#numberpattern").val() != ""){
|
|
numberpatternload();
|
|
}
|
|
|
|
var node;
|
|
[% FOREACH field IN dont_export_field_loop %]
|
|
node = $("[name='[% field.fieldid %]']");
|
|
if ( $(node).is('input') || $(node).is('textarea') ) {
|
|
$(node).val("");
|
|
} else if ( $(node).is('select') ) {
|
|
$(node).find("option:first").attr('selected','selected');
|
|
}
|
|
[% END %]
|
|
|
|
show_page_1();
|
|
$("#subscription_add_form").on("submit",function(){
|
|
return Check_page2();
|
|
});
|
|
$("#vendor_search").on("click",function(e){
|
|
e.preventDefault();
|
|
FindAcqui();
|
|
});
|
|
$("#record_search").on("click",function(e){
|
|
e.preventDefault();
|
|
Plugin();
|
|
});
|
|
$("#biblio_add_edit").on("click",function(e){
|
|
e.preventDefault();
|
|
if( $(this).data("biblionumber") ){
|
|
addbiblioPopup( $(this).data("biblionumber") );
|
|
} else {
|
|
addbiblioPopup();
|
|
}
|
|
});
|
|
$("#subscription_add_next").on("click",function(){
|
|
if ( Check_page1() ){
|
|
show_page_2();
|
|
}
|
|
});
|
|
$("#subscription_add_previous").on("click",function(){
|
|
show_page_1();
|
|
});
|
|
$(".toggle_advanced_pattern").on("click",function(e){
|
|
e.preventDefault();
|
|
$("#advancedpredictionpattern").toggle();
|
|
$(".toggle_advanced_pattern").toggle();
|
|
});
|
|
$("#modifyadvancedpatternbutton").on("click",function(e){
|
|
e.preventDefault();
|
|
modifyAdvancedPattern();
|
|
});
|
|
$("#restoreadvancedpatternbutton").on("click",function(e){
|
|
e.preventDefault();
|
|
restoreAdvancedPattern();
|
|
});
|
|
$("#saveadvancedpatternbutton").on("click",function(e){
|
|
e.preventDefault();
|
|
saveAdvancedPattern();
|
|
});
|
|
$("#testpatternbutton").on("click",function(e){
|
|
e.preventDefault();
|
|
testPredictionPattern();
|
|
});
|
|
});
|
|
//]]>
|
|
</script>
|
|
</head>
|
|
<body id="ser_subscription-add" class="ser">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'serials-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> › [% IF ( modify ) %]<a href="/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=[% subscriptionid %]"><i>[% bibliotitle |html %]</i></a> › Modify subscription[% ELSE %]New subscription[% END %]</div>
|
|
|
|
<div id="doc3" class="yui-t7">
|
|
<div id="bd">
|
|
<div class="yui-g">
|
|
<h1>[% IF ( modify ) %] Modify subscription for <i>[% bibliotitle |html %]</i>[% ELSE %]Add a new subscription[% END %] (<span id="page_number">1/2</span>)</h1>
|
|
<form method="post" id="subscription_add_form" name="f" action="/cgi-bin/koha/serials/subscription-add.pl" class="validated">
|
|
[% IF ( modify ) %]
|
|
<input type="hidden" name="op" value="modsubscription" />
|
|
<input type="hidden" name="subscriptionid" value="[% subscriptionid %]" />
|
|
[% ELSE %]
|
|
<input type="hidden" name="op" value="addsubscription" />
|
|
[% END %]
|
|
<input type="hidden" name="user" value="[% loggedinusername %]" />
|
|
<input type="hidden" name="irreg_check" value="0" />
|
|
|
|
<div id="page_1">
|
|
<div class="yui-u first">
|
|
<fieldset id="subscription_add_information" class="rows">
|
|
<legend>Subscription details</legend>
|
|
<ol>
|
|
[% IF ( subscriptionid ) %]
|
|
<li><span class="label">Subscription #</span> [% subscriptionid %]</li>
|
|
[% END %]
|
|
<li>
|
|
<label for="aqbooksellerid">Vendor: </label>
|
|
<input type="text" name="aqbooksellerid" id="aqbooksellerid" value="[% aqbooksellerid %]" size="8" /> (<input type="text" name="aqbooksellername" id="aqbooksellername" value="[% aqbooksellername %]" disabled="disabled" readonly="readonly" />) <a href="#" id="vendor_search"><i class="fa fa-search"></i> Search for a vendor</a>
|
|
</li>
|
|
<li>
|
|
<label for="biblionumber" class="required" title="Subscriptions must be associated with a bibliographic record">Record:</label>
|
|
<input type="text" name="biblionumber" id="biblionumber" value="[% bibnum %]" size="8" />
|
|
(<input type="text" name="title" value="[% bibliotitle %]" disabled="disabled" readonly="readonly" />) <span class="required" title="Subscriptions must be associated with a bibliographic record">Required</span>
|
|
<div class="inputnote"> <a href="#" id="record_search"><i class="fa fa-search"></i> Search for record</a>
|
|
[% IF ( CAN_user_editcatalogue ) %]
|
|
[% IF ( modify ) %]
|
|
| <a href="#" id="biblio_add_edit" data-biblionumber="[% bibnum %]"><i class="fa fa-pencil"></i> Edit record</a>
|
|
[% ELSE %]
|
|
| <a href="#" id="biblio_add_edit"><i class="fa fa-plus"></i> Create record</a>
|
|
[% END %]
|
|
[% END %]
|
|
</div>
|
|
</li>
|
|
<li class="radio">
|
|
[% IF ( serialsadditems ) %]
|
|
<p><input type="radio" id="serialsadditems-yes" name="serialsadditems" value="1" checked="checked" /><label class="widelabel" for="serialsadditems-yes">create an item record when receiving this serial</label></p>
|
|
<p><input type="radio" id="serialsadditems-no" name="serialsadditems" value="0" /><label class="widelabel" for="serialsadditems-no">do not create an item record when receiving this serial </label></p>
|
|
[% ELSE %]
|
|
<p><input type="radio" id="serialsadditems-yes" name="serialsadditems" value="1"/><label class="widelabel" for="serialsadditems-yes">create an item record when receiving this serial</label></p>
|
|
<p><input type="radio" id="serialsadditems-no" name="serialsadditems" value="0" checked="checked" /><label class="widelabel" for="serialsadditems-no">do not create an item record when receiving this serial</label></p>
|
|
[% END %]
|
|
</li>
|
|
<li class="radio">
|
|
<p>When there is an irregular issue:</p>
|
|
[% IF (skip_serialseq) %]
|
|
<p>
|
|
<input type="radio" id="skip_serialseq_yes" name="skip_serialseq" value="1" checked="checked" />
|
|
<label for="skip_serialseq_yes">Skip issue number</label>
|
|
</p>
|
|
<p>
|
|
<input type="radio" id="skip_serialseq_no" name="skip_serialseq" value="0" />
|
|
<label for="skip_serialseq_no">Keep issue number</label>
|
|
</p>
|
|
[% ELSE %]
|
|
<p>
|
|
<input type="radio" id="skip_serialseq_yes" name="skip_serialseq" value="1" />
|
|
<label for="skip_serialseq_yes">Skip issue number</label>
|
|
</p>
|
|
<p>
|
|
<input type="radio" id="skip_serialseq_no" name="skip_serialseq" value="0" checked="checked" />
|
|
<label for="skip_serialseq_no">Keep issue number</label>
|
|
</p>
|
|
[% END %]
|
|
</li>
|
|
<li>
|
|
<label for="manualhistory">Manual history:</label>
|
|
[% IF (manualhistory) %]
|
|
<input type="checkbox" id="manualhistory" name="manualhist" checked="checked" />
|
|
[% ELSE %]
|
|
<input type="checkbox" id="manualhistory" name="manualhist" />
|
|
[% END %]
|
|
</li>
|
|
<li>
|
|
<label for="callnumber">Call number:</label>
|
|
<input type="text" name="callnumber" id="callnumber" value="[% callnumber %]" size="20" />
|
|
</li>
|
|
<li>
|
|
<label for="branchcode">Library:</label>
|
|
<select name="branchcode" id="branchcode" style="width: 20em;">
|
|
[% UNLESS ( Independentbranches ) %]
|
|
<option value="">None</option>
|
|
[% END %]
|
|
[% IF CAN_user_serials_superserials %]
|
|
[% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode, unfiltered => 1 ) %]
|
|
[% ELSE %]
|
|
[% PROCESS options_for_libraries libraries => Branches.all( selected => branchcode ) %]
|
|
[% END %]
|
|
</select> (select a library)
|
|
</li>
|
|
<li>
|
|
<label for="notes">Public note:</label>
|
|
<textarea name="notes" id="notes" cols="30" rows="2">[% notes %]</textarea>
|
|
</li>
|
|
<li>
|
|
<label for="internalnotes">Nonpublic note:</label>
|
|
<textarea name="internalnotes" id="internalnotes" cols="30" rows="2">[% internalnotes %]</textarea>
|
|
</li>
|
|
<li>
|
|
[% IF ( letterloop ) %]
|
|
<label for="letter">Patron notification: </label>
|
|
<select name="letter" id="letter">
|
|
<option value="">None</option>
|
|
[% FOREACH letterloo IN letterloop %]
|
|
[% IF ( letterloo.selected ) %]
|
|
<option value="[% letterloo.value %]" selected="selected">[% letterloo.lettername %]</option>
|
|
[% ELSE %]
|
|
<option value="[% letterloo.value %]">[% letterloo.lettername %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select>
|
|
<div class="hint">Selecting a notice will allow patrons to subscribe to notifications when a new issue is received.</div>
|
|
[% ELSE %]
|
|
<span class="label">Patron notification: </span>
|
|
<div class="hint">To notify patrons of new serial issues, you must <a href="/cgi-bin/koha/tools/letter.pl">define a notice</a>.</div>
|
|
[% END %]
|
|
</li>
|
|
<li>
|
|
<label for="location">Location:</label>
|
|
<select name="location" id="location">
|
|
<option value="">None</option>
|
|
[% FOREACH locations_loo IN locations_loop %]
|
|
[% IF locations_loo.authorised_value == location %]
|
|
<option value="[% locations_loo.authorised_value %]" selected="selected">[% locations_loo.lib %]</option>
|
|
[% ELSE %]
|
|
<option value="[% locations_loo.authorised_value %]">[% locations_loo.lib %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<label for="itemtype">Item type:</label>
|
|
<select name="itemtype" id="itemtype">
|
|
<option value=""></option>
|
|
[% FOREACH type IN typeloop %]
|
|
[% IF ( type.selected ) %]
|
|
<option value="[% type.code %]" selected="selected">[% type.value %]</option>
|
|
[% ELSE %]
|
|
<option value="[% type.code %]">[% type.value %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
[%IF makePreviousSerialAvailable %]
|
|
<li>
|
|
<label for="previousitemtype">item type for older issues:</label>
|
|
<select name="previousitemtype" id="previousitemtype">
|
|
<option value=""></option>
|
|
[% FOREACH previous IN previoustypeloop %]
|
|
[% IF ( previous.selected ) %]
|
|
<option value="[% previous.code %]" selected="selected">[% previous.value %]</option>
|
|
[% ELSE %]
|
|
<option value="[% previous.code %]">[% previous.value %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
[% END %]
|
|
<li>
|
|
<label for="graceperiod">Grace period:</label>
|
|
<input type="text" name="graceperiod" id="graceperiod" value="[% graceperiod %]" size="5"/> day(s)
|
|
</li>
|
|
<li>
|
|
<label class="widelabel" for="staffdisplaycount">Number of issues to display to staff: </label>
|
|
<input type="text" name="staffdisplaycount" id="staffdisplaycount" value="[% staffdisplaycount %]" size="4"/>
|
|
</li>
|
|
<li>
|
|
<label class="widelabel" for="opacdisplaycount">Number of issues to display to the public: </label>
|
|
<input type="text" name="opacdisplaycount" id="opacdisplaycount" value="[% opacdisplaycount %]" size="4"/>
|
|
</li>
|
|
</ol>
|
|
</fieldset>
|
|
<fieldset class="action">
|
|
<input type="button" value="Next >>" id="subscription_add_next" style="float:right;" />
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="page_2">
|
|
<div class="yui-u first">
|
|
<div id="subscription_form_planning">
|
|
<fieldset class="rows">
|
|
<legend>Serials planning</legend>
|
|
<ol>
|
|
<li>
|
|
<label for="firstacquidate" class="required">First issue publication date:</label>
|
|
[% UNLESS (more_than_one_serial) %]
|
|
<input type="text" size="10" id="acqui_date" name="firstacquidate" value="[% firstacquidate | $KohaDates %]" class="datepicker required" required="required" />
|
|
[% ELSE %]
|
|
[% firstacquidate | $KohaDates %]
|
|
<input type="hidden" size="10" id="acqui_date" name="firstacquidate" value="[% firstacquidate | $KohaDates %]"/>
|
|
[% END %]
|
|
</li>
|
|
[% IF (more_than_one_serial) %]
|
|
<li>
|
|
<label for="nextacquidate">Next issue publication date:</label>
|
|
<input type="text" size="10" id="nextacquidate" name="nextacquidate" value="[% nextacquidate | $KohaDates %]" class="datepicker" />
|
|
</li>
|
|
[% END %]
|
|
<li>
|
|
<label for="frequency" class="required">Frequency:</label>
|
|
<select name="frequency" size="1" id="frequency" class="required" required="required">
|
|
<option value="">-- please choose --</option>
|
|
[% FOREACH frequency IN frequencies %]
|
|
[% IF (frequency.selected) %]
|
|
<option value="[% frequency.id %]" selected="selected">
|
|
[% ELSE %]
|
|
<option value="[% frequency.id %]">
|
|
[% END %]
|
|
[% frequency.label %]
|
|
</option>
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<label for="subtype">Subscription length:</label>
|
|
<select name="subtype" id="subtype">
|
|
[% FOREACH st IN subtypes %]
|
|
[% SWITCH st %]
|
|
[% CASE 'numberlength' %]
|
|
[% IF st == subtype %]
|
|
<option value="issues" selected="selected">
|
|
[% ELSE %]
|
|
<option value="issues">
|
|
[% END %]
|
|
issues
|
|
[% CASE 'weeklength' %]
|
|
[% IF st == subtype %]
|
|
<option value="weeks" selected="selected">
|
|
[% ELSE %]
|
|
<option value="weeks">
|
|
[% END %]
|
|
weeks
|
|
[% CASE 'monthlength' %]
|
|
[% IF st == subtype %]
|
|
<option value="months" selected="selected">
|
|
[% ELSE %]
|
|
<option value="months">
|
|
[% END %]
|
|
months
|
|
[% CASE %][% st %]
|
|
[% END %]
|
|
</option>
|
|
[% END %]
|
|
</select>
|
|
<input type="text" name="sublength" id="sublength" value="[% sublength %]" size="3" /> (enter amount in numerals)
|
|
<input type="hidden" name="issuelengthcount">
|
|
</li>
|
|
<li>
|
|
<label for="startdate" class="required"> Subscription start date:</label>
|
|
<input type="text" size="10" id="from" name="startdate" value="[% startdate | $KohaDates %]" class="datepickerfrom required" required="required" />
|
|
</li>
|
|
<li>
|
|
<label for="enddate">Subscription end date:</label>
|
|
<input type="text" size="10" id="to" name="enddate" value="[% enddate | $KohaDates %]" class="datepickerto" />
|
|
</li>
|
|
<li>
|
|
<label for="numberpattern" class="required">Numbering pattern:</label>
|
|
<select name="numbering_pattern" size="1" id="numberpattern" class="required" required="required">
|
|
<option value="">-- please choose --</option>
|
|
[% FOREACH numberpattern IN numberpatterns %]
|
|
[% IF (numberpattern.selected) %]
|
|
<option value="[% numberpattern.id %]" selected="selected">
|
|
[% ELSE %]
|
|
<option value="[% numberpattern.id %]">
|
|
[% END %]
|
|
[% numberpattern.label %]
|
|
</option>
|
|
[% END %]
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<label for="locale">Locale:</label>
|
|
<select id="locale" name="locale">
|
|
<option value=""></option>
|
|
[% FOREACH l IN locales %]
|
|
[% IF l.language == locale %]
|
|
<option value="[% l.language %]" selected="selected">[% l.description %]</option>
|
|
[% ELSE %]
|
|
<option value="[% l.language %]">[% l.description %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select>
|
|
<span class="hint">If empty, English is used</span>
|
|
</li>
|
|
<li id="more_options">
|
|
<table id="moreoptionst">
|
|
<thead>
|
|
<tr>
|
|
<th> </th>
|
|
<th id="headerX"> </th>
|
|
<th id="headerY"> </th>
|
|
<th id="headerZ"> </th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>
|
|
[% IF (more_than_one_serial) %]
|
|
Last value
|
|
[% ELSE %]
|
|
Begins with
|
|
[% END %]
|
|
</td>
|
|
<td id="beginsX"><input type="text" id="lastvaluetemp1" name="lastvaluetemp1" value="[% lastvalue1 %]" /></td>
|
|
<td id="beginsY"><input type="text" id="lastvaluetemp2" name="lastvaluetemp2" value="[% lastvalue2 %]" /></td>
|
|
<td id="beginsZ"><input type="text" id="lastvaluetemp3" name="lastvaluetemp3" value="[% lastvalue3 %]" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Inner counter</td>
|
|
<td id="innerX"><input type="text" id="innerlooptemp1" name="innerlooptemp1" value="[% innerloop1 %]" /></td>
|
|
<td id="innerY"><input type="text" id="innerlooptemp2" name="innerlooptemp2" value="[% innerloop2 %]" /></td>
|
|
<td id="innerZ"><input type="text" id="innerlooptemp3" name="innerlooptemp3" value="[% innerloop3 %]" /></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</li>
|
|
<li>
|
|
<a href="#" class="toggle_advanced_pattern show_advanced_pattern"><i class="fa fa-plus-square"></i> Show advanced pattern</a>
|
|
<a href="#" style="display:none;" class="toggle_advanced_pattern hide_advanced_pattern"><i class="fa fa-minus-square"></i> Hide advanced pattern</a>
|
|
</li>
|
|
<div id="advancedpredictionpattern" style="display:none">
|
|
<li>
|
|
<label for="patternname" class="required">Pattern name:</label>
|
|
<input id="patternname" name="patternname" type="text" readonly="readonly" class="required" required="required" />
|
|
</li>
|
|
<li>
|
|
<label for="numberingmethod">Numbering formula:</label>
|
|
<input readonly="readonly" type="text" name="numberingmethod" id="numberingmethod" size="50" value="[% numberingmethod %]" />
|
|
</li>
|
|
<table id="advancedpredictionpatternt">
|
|
<thead>
|
|
<tr>
|
|
<th colspan="4">Advanced prediction pattern</td>
|
|
</tr>
|
|
<tr>
|
|
<th> </th>
|
|
<th>X</th>
|
|
<th>Y</th>
|
|
<th>Z</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Label</td>
|
|
<td><input type="text" readonly="readonly" id="label1" name="label1" /></td>
|
|
<td><input type="text" readonly="readonly" id="label2" name="label2" /></td>
|
|
<td><input type="text" readonly="readonly" id="label3" name="label3" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Begins with</td>
|
|
<td><input type="text" readonly="readonly" id="lastvalue1" name="lastvalue1" /></td>
|
|
<td><input type="text" readonly="readonly" id="lastvalue2" name="lastvalue2" /></td>
|
|
<td><input type="text" readonly="readonly" id="lastvalue3" name="lastvalue3" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Add</td>
|
|
<td><input type="text" readonly="readonly" id="add1" name="add1" /></td>
|
|
<td><input type="text" readonly="readonly" id="add2" name="add2" /></td>
|
|
<td><input type="text" readonly="readonly" id="add3" name="add3" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Every</td>
|
|
<td><input type="text" readonly="readonly" id="every1" name="every1" /></td>
|
|
<td><input type="text" readonly="readonly" id="every2" name="every2" /></td>
|
|
<td><input type="text" readonly="readonly" id="every3" name="every3" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Set back to</td>
|
|
<td><input type="text" readonly="readonly" id="setto1" name="setto1" /></td>
|
|
<td><input type="text" readonly="readonly" id="setto2" name="setto2" /></td>
|
|
<td><input type="text" readonly="readonly" id="setto3" name="setto3" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td>When more than</td>
|
|
<td><input type="text" readonly="readonly" id="whenmorethan1" name="whenmorethan1" /></td>
|
|
<td><input type="text" readonly="readonly" id="whenmorethan2" name="whenmorethan2" /></td>
|
|
<td><input type="text" readonly="readonly" id="whenmorethan3" name="whenmorethan3" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Inner counter</td>
|
|
<td><input type="text" readonly="readonly" id="innerloop1" name="innerloop1" /></td>
|
|
<td><input type="text" readonly="readonly" id="innerloop2" name="innerloop2" /></td>
|
|
<td><input type="text" readonly="readonly" id="innerloop3" name="innerloop3" /></td>
|
|
</tr>
|
|
<tr>
|
|
[% BLOCK numbering_select %]
|
|
<select disabled="disabled" id="[% name %]" name="[% name %]" />
|
|
<option value=""></option>
|
|
<option value="dayname">Name of day</option>
|
|
<option value="dayabrv">Name of day (abbreviated)</option>
|
|
<option value="monthname">Name of month</option>
|
|
<option value="monthabrv">Name of month (abbreviated)</option>
|
|
<option value="season">Name of season</option>
|
|
<option value="seasonabrv">Name of season (abbreviated)</option>
|
|
</select>
|
|
[% END %]
|
|
<td>Formatting</td>
|
|
<td>[% PROCESS numbering_select name="numbering1" %]</td>
|
|
<td>[% PROCESS numbering_select name="numbering2" %]</td>
|
|
<td>[% PROCESS numbering_select name="numbering3" %]</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<input id="modifyadvancedpatternbutton" type="button" value="Modify pattern" />
|
|
<input id="restoreadvancedpatternbutton" type="button" value="Cancel modifications" style="display:none" />
|
|
<input id="saveadvancedpatternbutton" type="button" value="Save as new pattern" style="display:none" />
|
|
</div>
|
|
</ol>
|
|
</fieldset>
|
|
|
|
[% IF additional_fields_for_subscription %]
|
|
<div id="subscription_additional_fields">
|
|
<fieldset class="rows">
|
|
<legend>Additional fields</legend>
|
|
<ol>
|
|
[% FOR field IN additional_fields_for_subscription %]
|
|
<li>
|
|
<label for="additional_field_[% field.id %]"> [% field.name %]: </label>
|
|
[% IF field.authorised_value_choices %]
|
|
<select name="additional_field_[% field.id %]" id="additional_field_[% field.id %]">
|
|
[% FOREACH av IN field.authorised_value_choices %]
|
|
[% IF av.authorised_value == additional_fields.${field.name} %]
|
|
<option value="[% av.authorised_value %]" selected="selected">[% av.lib %]</option>
|
|
[% ELSE %]
|
|
<option value="[% av.authorised_value %]">[% av.lib %]</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select> (Authorised values for [% field.authorised_value_category %])
|
|
[% ELSE %]
|
|
[% IF field.marcfield %]
|
|
<input type="text" value="[% additional_fields.${field.name} %]" id="additional_field_[% field.id %]" name="additional_field_[% field.id %]" readonly="readonly" />
|
|
This value will be filled with the [% field.marcfield %] subfield of the selected biblio.
|
|
[% ELSE %]
|
|
<input type="text" value="[% additional_fields.${field.name} %]" id="additional_field_[% field.id %]" name="additional_field_[% field.id %]" />
|
|
[% END %]
|
|
[% END %]
|
|
</li>
|
|
[% END %]
|
|
</ol>
|
|
</fieldset>
|
|
</div>
|
|
[% END %]
|
|
|
|
<fieldset class="action">
|
|
<input type="button" id="subscription_add_previous" value="<< Previous" style="float:left;"/>
|
|
<input id="testpatternbutton" type="button" value="Test prediction pattern" />
|
|
<input type="submit" value="Save subscription" style="float:right;" accesskey="w" />
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="yui-u">
|
|
<li id="displayexample"></li>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|