Koha/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/supplier.tt
Tomas Cohen Arazi 91bd291953
Bug 33797: Remove extra space
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-05-23 16:54:00 -03:00

679 lines
36 KiB
Text

[% USE raw %]
[% USE To %]
[% USE Asset %]
[% USE KohaDates %]
[% USE AuthorisedValues %]
[% BLOCK edit_contact %]
<ol id="contact-form">
<input type="hidden" name="contact_id" value="[% contact.id | html %]" />
<li><label for="contact_name[% contact.id | html %]">Contact name: </label>
<input type="text" size="40" id="contact_name[% contact.id | html %]" name="contact_name" value="[% contact.name | html %]" /></li>
<li><label for="contact_position[% contact.id | html %]">Position: </label>
<input type="text" size="40" id="contact_position[% contact.id | html %]" name="contact_position" value="[% contact.position | html %]" /></li>
<li><label for="contact_phone[% contact.id | html %]">Phone: </label>
<input type="text" size="20" id="contact_phone[% contact.id | html %]" name="contact_phone" value="[% contact.phone | html %]" /> </li>
<li><label for="contact_altphone[% contact.id | html %]">Alternative phone: </label>
<input type="text" size="20" id="contact_altphone[% contact.id | html %]" name="contact_altphone" value="[% contact.altphone | html %]" /></li>
<li><label for="contact_fax[% contact.id | html %]">Fax: </label>
<input type="text" size="20" id="contact_fax[% contact.id | html %]" name="contact_fax" value="[% contact.fax | html %]" /></li>
<li><label for="contact_email[% contact.id | html %]">Email: </label>
<input type="text" size="40" id="contact_email[% contact.id | html %]" name="contact_email" value="[% contact.email | html %]" class="email" /></li>
<li><label for="contact_notes[% contact.id | html %]">Notes: </label>
<textarea id="contact_notes[% contact.id | html %]" name="contact_notes" cols="40" rows="4">[% contact.notes | html %]</textarea></li>
<li><label for="contact_acqprimary[% contact.id | html %]">Primary acquisitions contact:</label>
[% IF contact.acqprimary %]
<input type="checkbox" id="contact_acqprimary[% contact.id | html %]" class="contact_acqprimary" checked="checked"></input>
[% ELSE %]
<input type="checkbox" id="contact_acqprimary[% contact.id | html %]" class="contact_acqprimary"></input>
[% END %]
<input type="hidden" class="contact_acqprimary_hidden" name="contact_acqprimary" value="[% contact.acqprimary | html %]"></input>
<li><label for="contact_serialsprimary[% contact.id | html %]">Primary serials contact:</label>
[% IF contact.serialsprimary %]
<input type="checkbox" id="contact_serialsprimary[% contact.id | html %]" class="contact_serialsprimary" checked="checked"></input>
[% ELSE %]
<input type="checkbox" id="contact_serialsprimary[% contact.id | html %]" class="contact_serialsprimary"></input>
[% END %]
<input type="hidden" class="contact_serialsprimary_hidden" name="contact_serialsprimary" value="[% contact.serialsprimary | html %]"></input>
<li><label for="contact_orderacquisition[% contact.id | html %]">Contact when ordering?</label>
[% IF contact.orderacquisition %]
<input type="checkbox" id="contact_orderacquisition[% contact.id | html %]" class="contact_orderacquisition" checked="checked"></input>
[% ELSE %]
<input type="checkbox" id="contact_orderacquisition[% contact.id | html %]" class="contact_orderacquisition"></input>
[% END %]
<input type="hidden" class="contact_orderacquisition_hidden" name="contact_orderacquisition" value="[% contact.orderacquisition | html %]"></input>
<li><label for="contact_claimacquisition[% contact.id | html %]">Contact about late orders?</label>
[% IF contact.claimacquisition %]
<input type="checkbox" id="contact_claimacquisition[% contact.id | html %]" class="contact_claimacquisition" checked="checked"></input>
[% ELSE %]
<input type="checkbox" id="contact_claimacquisition[% contact.id | html %]" class="contact_claimacquisition"></input>
[% END %]
<input type="hidden" class="contact_claimacquisition_hidden" name="contact_claimacquisition" value="[% contact.claimacquisition | html %]"></input>
<li><label for="contact_claimissues[% contact.id | html %]">Contact about late issues?</label>
[% IF contact.claimissues %]
<input type="checkbox" id="contact_claimissues[% contact.id | html %]" class="contact_claimissues" checked="checked"></input>
[% ELSE %]
<input type="checkbox" id="contact_claimissues[% contact.id | html %]" class="contact_claimissues"></input>
[% END %]
<input type="hidden" class="contact_claimissues_hidden" name="contact_claimissues" value="[% contact.claimissues | html %]"></input>
</li>
[% IF contact.id %]<li><button class="btn btn-default delete-contact"><i class="fa fa-trash"></i> Delete contact</li>[% END %]
</ol>
[% END %]
[% BLOCK show_contact %]
<h3>[% contact.name | html %]</h3>
<p><span class="label">Position: </span>[% contact.position | html %]</p>
<p><span class="label">Phone: </span>[% contact.phone | html %]</p>
<p><span class="label">Alternative phone: </span>[% contact.altphone | html %]</p>
<p><span class="label">Fax: </span>[% contact.fax | html %]</p>
[% IF ( contact.email ) %]
<p><span class="label">Email: </span><a href="mailto:[% contact.email | uri %]">[% contact.email | html %]</a></p>
[% END %]
[% IF ( contact.notes ) %]
<p><span class="label">Notes: </span>[% contact.notes | html %]</p>
[% END %]
[% IF ( contact.acqprimary ) %]
<p><span class="label">Primary acquisitions contact</span></p>
[% END %]
[% IF ( contact.serialsprimary ) %]
<p><span class="label">Primary serials contact</span></p>
[% END %]
[% IF ( contact.orderacquisition ) %]
<p><span class="label">Receives orders</span></p>
[% END %]
[% IF ( contact.claimacquisition ) %]
<p><span class="label">Receives claims for late orders</span></p>
[% END %]
[% IF ( contact.claimissues ) %]
<p><span class="label">Receives claims for late issues</span></p>
[% END %]
[% END %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Vendor [% name | html %] &rsaquo; Koha</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body id="acq_supplier" class="acq">
[% WRAPPER 'header.inc' %]
[% INCLUDE 'acquisitions-search.inc' %]
[% END %]
[% WRAPPER 'sub-header.inc' %]
[% WRAPPER breadcrumbs %]
[% WRAPPER breadcrumb_item %]
<a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a>
[% END %]
[% IF ( enter ) %]
[% IF ( booksellerid ) %]
[% WRAPPER breadcrumb_item %]
<a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid | uri %]">[% name | html %]</a>
[% END %]
[% WRAPPER breadcrumb_item bc_active= 1 %]
<span>Modify [% name | html %]</span>
[% END %]
[% ELSE %]
[% WRAPPER breadcrumb_item bc_active= 1 %]
<span>Add vendor</span>
[% END %]
[% END %]
[% ELSE %]
[% WRAPPER breadcrumb_item bc_active= 1 %]
[% name | html %]
[% END %]
[% END # /IF (enter) %]
[% END #/ WRAPPER breadcrumbs %]
[% END #/ WRAPPER sub-header.inc %]
<div class="main container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-push-2">
<main>
[% IF ( enter ) %]
[% IF ( booksellerid ) %]
<h1>Update: [% name | html %]</h1>
[% ELSE %]
<h1>Add vendor</h1>
[% END %]
[% END %]
[% UNLESS ( enter ) %][% INCLUDE 'acquisitions-toolbar.inc' %][% END %]
[% IF ( enter ) %]
<form action="updatesupplier.pl" name="updatesupplier" style="display:block" class="validated" method="post">
<div id="toolbar" class="btn-toolbar">
<button class="btn btn-primary" type="submit"><i class="fa fa-save"></i> Save</button>
[% IF ( booksellerid ) %]
<a class="btn btn-default cancel" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid | html %]">
[% ELSE %]
<a class="btn btn-default cancel" href="/cgi-bin/koha/acqui/acqui-home.pl">
[% END %] <i class="fa fa-remove"></i> Cancel</a>
</div>
<input type="hidden" name="booksellerid" value="[% booksellerid | html %]" />
<fieldset class="rows">
<legend>Company details</legend>
<ol><li><label for="company" class="required">Name:</label>
<input type="text" size="40" id="company" name="company" value="[% name | html %]" required="required" class="required focus" /><span class="required">Required</span></li>
<li><label for="company_postal">Postal address: </label>
<textarea id="company_postal" name="company_postal" cols="40" rows="3">[% postal | html %]</textarea></li>
<li><label for="physical">Physical address: </label>
<textarea id="physical" name="physical" cols="40" rows="3">[% address1 | html %][% address2 | html %][% address3 | html %][% address4 | html %]</textarea></li>
<li><label for="company_phone">Phone: </label>
<input type="text" size="20" id="company_phone" name="company_phone" value="[% phone | html %]" /></li>
<li><label for="company_fax">Fax: </label>
<input type="text" size="20" id="company_fax" name="company_fax" value="[% fax | html %]" /></li>
<li><label for="website">Website: </label>
<input type="text" size="40" id="website" name="website" value="[% url | html %]" class="url" /></li>
<li><label for="accountnumber">Account number: </label>
<input type="text" size="40" id="accountnumber" name="accountnumber" value="[% accountnumber | html %]" /></li>
<li>
<label for="vendor_type">Vendor type: </label>
[% PROCESS 'av-build-dropbox.inc' name="vendor_type", category="VENDOR_TYPE", default=type, empty=1, size = 20 %]
</li>
<li>
<label for="aliases">Aliases: </label>
<div id="aliases" style="padding-left: 11rem;"></div>
</li>
</ol>
</fieldset>
<fieldset class="rows">
<legend>Contacts</legend>
<fieldset id="contact-template" class="supplier-contact">
<legend>Contact details</legend>
[% INCLUDE edit_contact %]
</fieldset>
[% FOREACH contact IN contacts %]
<fieldset class="supplier-contact">
<legend>Contact details</legend>
[% INCLUDE edit_contact %]
</fieldset>
[% END %]
<button id="add-contact" class="btn btn-default"><i class="fa fa-plus"></i> Add another contact</button>
</fieldset>
<fieldset class="rows">
<legend>Interfaces</legend>
<div id="interfaces"></div>
</fieldset>
<fieldset class="rows">
<legend>Ordering information</legend>
<ol><li><label for="activestatus">Vendor is:</label>
[% IF ( active ) %]
<input type="radio" id="activestatus" name="status" value="1" checked="checked" />
<label class="radio" for="activestatus">Active</label>
<input type="radio" id="inactivestatus" name="status" value="0" />
<label class="radio" for="inactivestatus">Inactive</label>
[% ELSE %]
<input type="radio" id="activestatus" name="status" value="1" />
<label class="radio" for="activestatus">Active</label>
<input type="radio" id="inactivestatus" name="status" value="0" checked="checked" />
<label class="radio" for="inactivestatus">Inactive</label>
[% END %]</li>
<li><label for="list_currency">List prices are: </label>
<select name="list_currency" id="list_currency">
[% FOREACH c IN currencies %]
[% IF booksellerid and c.currency == listprice or not booksellerid and c.active %]
<option value="[% c.currency | html %]" selected="selected">[% c.currency | html %]</option>
[% ELSIF not c.archived %]
<option value="[% c.currency | html %]">[% c.currency | html %]</option>
[% END %]
[% END %]
</select>
</li>
<li><label for="invoice_currency">Invoice prices are: </label>
<select name="invoice_currency" id="invoice_currency">
[% FOREACH c IN currencies %]
[% IF booksellerid and c.currency == invoiceprice or not booksellerid and c.active %]
<option value="[% c.currency | html %]" selected="selected">[% c.currency | html %]</option>
[% ELSIF not c.archived %]
<option value="[% c.currency | html %]">[% c.currency | html %]</option>
[% END %]
[% END %]
</select>
</li>
<li><label for="gstyes">Tax number registered:</label>
[% IF ( gstreg ) %]
<label class="radio" for="gstyes">Yes</label>
<input type="radio" name="gst" id="gstyes" value="1" checked="checked" />
<label class="radio" for="gstno">No</label>
<input type="radio" name="gst" id="gstno" value="0" />
[% ELSE %]
<label class="radio" for="gstyes">Yes</label>
<input type="radio" name="gst" id="gstyes" value="1" />
<label class="radio" for="gstno">No</label>
<input type="radio" name="gst" id="gstno" value="0" checked="checked" />
[% END %]</li>
<li><label for="list_gstyes">List prices:</label>
[% IF ( listincgst ) %]
<label class="radio" for="list_gstyes">Include tax</label>
<input type="radio" id="list_gstyes" name="list_gst" value="1" checked="checked" />
<label class="radio" for="list_gstno">Don't include tax</label>
<input type="radio" id="list_gstno" name="list_gst" value="0" />
[% ELSE %]
<label class="radio" for="list_gstyes">Include tax</label>
<input type="radio" id="list_gstyes" name="list_gst" value="1" />
<label class="radio" for="list_gstno">Don't include tax</label>
<input type="radio" id="list_gstno" name="list_gst" value="0" checked="checked" />
[% END %]</li>
<li><label for="invoice_gstyes">Invoice prices:</label>
[% IF ( invoiceincgst ) %]
<label class="radio" for="invoice_gstyes">Include tax</label>
<input type="radio" id="invoice_gstyes" name="invoice_gst" value="1" checked="checked" />
<label class="radio" for="invoice_gstno">Don't include tax</label>
<input type="radio" id="invoice_gstno" name="invoice_gst" value="0" />
[% ELSE %]
<label class="radio" for="invoice_gstyes">Include tax</label>
<input type="radio" id="invoice_gstyes" name="invoice_gst" value="1" />
<label class="radio" for="invoice_gstno">Don't include tax</label>
<input type="radio" id="invoice_gstno" name="invoice_gst" value="0" checked="checked" />
[% END %]</li>
[% IF gst_values %]
<li>
<label for="tax_rate">Tax rate: </label>
<select name="tax_rate" id="tax_rate">
[% FOREACH gst IN gst_values %]
[% IF ( tax_rate == gst.option ) %]
<option value="[% gst.option | html %]" selected="selected">[% gst.option * 100 | html %] %</option>
[% ELSE %]
<option value="[% gst.option | html %]">[% gst.option * 100 | html %] %</option>
[% END %]
[% END %]
</select>
</li>
[% ELSE %]
<input type="hidden" name="tax_rate" value="0" />
[% END %]
<li><label for="discount">Discount: </label>
<input type="text" size="6" id="discount" name="discount" value="[% discount | format ('%.1f') %]" />%</li>
<li>
<label for="deliverytime">Delivery time: </label>
<input type="text" size="2" id="deliverytime" name="deliverytime" value="[% deliverytime | html %]" /> days
</li>
<li><label for="notes">Notes: </label>
<textarea cols="40" rows="4" id="notes" name="notes" >[% notes | html %]</textarea></li>
</ol>
</fieldset>
</form>
[% ELSE %]
<h1>[% name | html %]</h1>
<div class="row">
<div class="col-sm-6">
<div id="supplier-company-details" class="page-section">
<h2>Vendor details</h2>
<p>
<span class="label">Type: </span>
[% IF (type) %][% AuthorisedValues.GetByCode( 'VENDOR_TYPE', type ) | html %][% END %]
</p>
<p><span class="label">Company name: </span>[% name | html %]</p>
<p><span class="label">Postal address: </span>[% postal | html %]</p>
<p><span class="label">Physical address: </span>[% address1 | html %][% address2 | html %][% address3 | html %][% address4 | html %]</p>
<p><span class="label">Phone: </span>[% phone | html %]</p>
<p><span class="label">Fax: </span>[% fax | html %]</p>
[% IF ( url ) %]
<p><span class="label">Website: </span><a href="[% url | url %]">[% url | html %]</a></p>
[% END %]
[% IF ( accountnumber ) %]
<p><span class="label">Account number: </span>[% accountnumber | html %]</p>
[% END %]
[% IF vendor.aliases.count %]
<p>
<span class="label">Aliases: </span>
<ul>
[% FOR alias IN vendor.aliases %]
<li>[% alias.alias | html %]</li>
[% END %]
</ul>
</p>
[% END %]
</div> <!-- /#supplier-company-details -->
<div id="supplier-ordering-information" class="page-section">
<h2>Ordering information</h2>
<p><strong>Vendor is: </strong>[% IF ( active ) %]Active[% ELSE %]Inactive[% END %]</p>
<p><strong>List prices are: </strong>[% listprice | html %]</p>
<p><strong>Invoice prices are: </strong>[% invoiceprice | html %]</p>
[% IF ( tax_rate ) %]
<p><strong>Tax number registered: </strong>[% IF ( gstreg ) %]Yes[% ELSE %]No[% END %]</p>
<p><strong>List item price includes tax: </strong>[% IF ( listincgst ) %]Yes[% ELSE %]No[% END %]</p>
<p><strong>Invoice item price includes tax: </strong>[% IF ( invoiceincgst ) %]Yes[% ELSE %]No[% END %]</p>
[% END %]
<p><strong>Discount: </strong>[% discount | format("%.1f") %] %</p>
<p><strong>Tax rate: </strong>[% ( tax_rate || 0 ) * 100 | html %] %</p>
[% IF deliverytime.defined %]
<p><strong>Delivery time: </strong>[% deliverytime | html %] days</p>
[% END %]
[% IF ( notes ) %]
<p><strong>Notes: </strong>[% notes | html %]</p>
[% END %]
</div> <!-- #supplier-ordering-information -->
[% IF vendor.interfaces.count %]
<div id="supplier-interfaces" class="page-section">
<h2>Interfaces</h2>
[% FOR i IN vendor.interfaces %]
<h3>[% i.name | html %]</h3>
[% IF i.type %]
<p><span>Type: [% AuthorisedValues.GetByCode( 'VENDOR_INTERFACE_TYPE', i.type) | html %]</span></p>
[% END %]
[% IF i.uri %]
<p><span>URI: [% i.uri | html %]</span></p>
[% END %]
[% IF i.login %]
<p><span>Login: [% i.login | html %]</span></p>
[% END %]
[% IF i.password %]
<p><span>Password: <span class="password"><a href="#" class="show_password" data-plain-text-password="[% i.plain_text_password | html %]">Show</a></span></span></p>
[% END %]
[% IF i.account_email %]
<p><span>Account email: [% i.account_email | html %]</span></p>
[% END %]
[% IF i.notes %]
<p><span>Notes: [% i.notes | html %]</span></p>
[% END %]
[% END %]
</div>
[% END %]
</div> <!-- /.col-sm-6 -->
<div class="col-sm-6">
<div id="supplier-contact-details" class="page-section">
<h2>Contact</h2>
[% FOREACH contact IN contacts %]
[% INCLUDE show_contact %]
[% END %]
</div> <!-- /#supplier-contact-details -->
<div id="subscription-details" class="page-section">
<h2>Subscription details</h2>
<p><strong>Number of subscriptions: </strong>
[% IF ( CAN_user_serials ) %]
<a href="/cgi-bin/koha/serials/serials-search.pl?bookseller_filter=[% name | uri %]&searched=1">[% subscriptioncount | html %]</a>
[% ELSE %]
[% subscriptioncount | html %]
[% END %]
</p>
</div> <!-- /#subscription-details -->
</div> <!-- /.col-sm-6 -->
</div>
[% IF ( contracts ) %]
<div id="supplier-contracts" class="page-section">
<h2>Contract(s)</h2>
<table id="contractst">
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Description</th>
<th scope="col">Start date</th>
<th scope="col">End date</th>
[% IF CAN_user_acquisition_contracts_manage %]
<th scope="col" class="NoSort noExport">Actions</th>
[% END %]
</tr>
</thead>
<tbody>
[% FOREACH contract IN contracts %]
<tr>
<td>
<a href="/cgi-bin/koha/admin/aqcontract.pl?op=add_form&amp;contractnumber=[% contract.contractnumber | uri %]&amp;booksellerid=[% contract.booksellerid | uri %]">[% contract.contractname | html %]</a>
</td>
<td>[% contract.contractdescription | html %]</td>
<td data-order="[% contract.contractstartdate | html %]">[% contract.contractstartdate | $KohaDates %]</td>
<td data-order="[% contract.contractenddate | html %]">[% contract.contractenddate | $KohaDates %]</td>
[% IF CAN_user_acquisition_contracts_manage %]
<td class="actions">
<a class="btn btn-default btn-xs" href="/cgi-bin/koha/admin/aqcontract.pl?op=add_form&amp;contractnumber=[% contract.contractnumber | html %]&amp;booksellerid=[% contract.booksellerid | html %]"><i class="fa fa-pencil"></i> Edit</a>
<a class="btn btn-default btn-xs" href="/cgi-bin/koha/admin/aqcontract.pl?op=delete_confirm&amp;contractnumber=[% contract.contractnumber | html %]&amp;booksellerid=[% contract.booksellerid | html %]"><i class="fa fa-trash"></i> Delete</a>
</td>
[% END %]
</tr>
[% END %]
</tbody>
</table>
</div> <!-- /#supplier-contracts -->
[% END %]
[% END %]
</main>
</div> <!-- /.col-sm-10.col-sm-push-2 -->
<div class="col-sm-2 col-sm-pull-10">
<aside>
[% INCLUDE 'vendor-menu.inc' %]
</aside>
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
</div> <!-- /.row -->
[% MACRO jsinclude BLOCK %]
[% Asset.js("js/acquisitions-menu.js") | $raw %]
[% Asset.js("lib/hc-sticky.js") | $raw %]
[% Asset.js("js/acq.js") | $raw %]
[% INCLUDE 'datatables.inc' %]
<script>
function confirm_deletion() {
if (confirm(_("Confirm deletion of this vendor ?"))) {
window.location="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid | html %]&op=delete";
}
}
function add_contact() {
var new_contact = $('#contact-template').clone();
var timestamp = new Date().getTime();
$(new_contact).removeAttr('id');
$('input, textarea', new_contact).each(function () {
$(this).attr('id', $(this).attr('id') + '_' + timestamp);
});
$('label', new_contact).each(function () {
$(this).attr('for', $(this).attr('for') + '_' + timestamp);
});
$(new_contact).insertBefore(this);
if ($('.supplier-contact').length === 2) { // First contact
$.each(['.contact_acqprimary', '.contact_serialsprimary', '.contact_orderacquisition', '.contact_claimacquisition', '.contact_claimissues'], function (idx, checkbox) {
$(checkbox, new_contact).click();
});
}
$('input[name="contact_name"]', new_contact).focus();
return false;
}
function delete_contact(ev) {
$(this).parents('.supplier-contact').remove();
ev.preventDefault();
}
[% IF vendor %]
let aliases = [% To.json(vendor.aliases.unblessed) | $raw %];
[% ELSE %]
let aliases = [];
[% END %]
function remove_alias(i){
aliases.splice(i, 1);
refresh_aliases();
}
function encodeHTMLEntities(str){
return str.replace(/[&<>'"]/g,
tag => ({
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
"'": '&#39;',
'"': '&quot;'
}[tag]));
}
function add_alias(){
let alias = $("#new_alias").val();
if ( !alias.length > 0 ) { return }
aliases.push({alias});
refresh_aliases();
}
function refresh_aliases(){
let nodes = $("<div></div>");
aliases.forEach((a, i) => {
let alias_str = encodeHTMLEntities(a.alias);
let n = $("<div></div>").append(alias_str);
let input = $('<input type="hidden" name="alias" />');
input.val(a.alias);
n.append(input);
n.append(` <a style="cursor: pointer;" onclick="remove_alias(${i});"><i class="fa fa-trash" aria-hidden="true"></i> ` + _("Remove") + '</a>');
nodes.append(n);
});
nodes.append("<input id='new_alias' type='text' class='noEnterSubmit' />");
nodes.append(' <a style="cursor: pointer;" onclick="add_alias();"><i class="fa fa-plus" aria-hidden="true"></i> ' + _("Add") + '</a>');
$("#aliases").html(nodes.html());
}
[% IF vendor %]
let interfaces = [];
[% FOR i_object IN vendor.interfaces %]
[% SET i = i_object.unblessed %]
[% SET i.password = i_object.plain_text_password %]
interfaces.push([% To.json(i) | $raw %]);
[% END %]
[% ELSE %]
let interfaces = [];
[% END %]
function serialize_interface_form(){
interfaces = [];
$("#interfaces > fieldset.supplier-interface > ol.interface-form").each( (index, interface_form )=> {
let interface = {};
$(interface_form).find('input,textarea,select').serializeArray().map(attr => {
let name = attr.name.replace(/interface_([\w_]+)_\d+/, "$1");
interface[name] = attr.value
})
interfaces.push(interface);
});
return interfaces;
}
function remove_interface(i){
interfaces = serialize_interface_form();
interfaces.splice(i, 1);
refresh_interfaces();
}
function add_interface(){
interfaces = serialize_interface_form();
interfaces.push({
type: "",
name: "",
uri: "",
login: "",
password: "",
account_email: "",
notes: "",
});
refresh_interfaces();
}
let av_select = {
VENDOR_INTERFACE_TYPE: $("[% PROCESS 'av-build-dropbox.inc', category="VENDOR_INTERFACE_TYPE" empty=1 | replace('\n', '') | replace('"', '\"') %]"),
};
function refresh_interfaces(){
let nodes = $("<div id='interfaces'></div>");
interfaces.forEach((interface, i) => {
let n = $("<fieldset class='supplier-interface'></fieldset>");
n.append("<legend>" + _("Interface details") + "</legend>");
n.append(`<input type="hidden" name="interface_counter" value="${i}" />`);
let ol = $('<ol class="interface-form"></ol>');
let attributes = [
{ label: _("Name"), name: 'name', node: 'input' },
{ label: _("Type"), name: 'type', node: 'av_select', av_cat: 'VENDOR_INTERFACE_TYPE' },
{ label: _("URI"), name: 'uri', node: 'input' },
{ label: _("Login"), name: 'login', node: 'input' },
{ label: _("Password"), name: 'password', node: 'input' },
{ label: _("Account email"), name: 'account_email', node: 'input' },
{ label: _("Notes"), name: 'notes', node: 'textarea' }
];
attributes.forEach((attribute, ii) => {
let li = $('<li></li>');
li.append(`<label for="interface_${attribute.name}_${i}">${attribute.label}</label>`);
if( attribute.node == 'input' ) {
li.append(`<input type="text" size="40" id="interface_${attribute.name}_${i}" name="interface_${attribute.name}_${i}" value="${interface[attribute.name]}" />`);
} else if ( attribute.node == 'textarea' ) {
li.append(`<textarea cols="40" rows="3" id="interface_${attribute.name}_${i}" name="interface_${attribute.name}_${i}">${interface[attribute.name]}</textarea>`);
} else if ( attribute.node == 'av_select' ) {
let select = av_select[attribute.av_cat].clone();
select.attr('name', `interface_${attribute.name}_${i}`);
select.find(`option[value='${interface[attribute.name]}']`).prop("selected", true);
li.append(select);
}
ol.append(li);
});
ol.append(`<li><button class="btn btn-default" onclick="remove_interface(${i});"><i class="fa fa-trash"></i> ` + _("Delete interface") + '</li>');
n.append(ol);
nodes.append(n);
});
nodes.append(`<button onclick="add_interface();" class="btn btn-default"><i class="fa fa-plus"></i> ` + _("Add another interface") + '</button>')
$("#interfaces").replaceWith(nodes);
interfaces.forEach((interface, i) => {
$("#interface_account_email_" + i).rules("add", {
email: true,
});
});
}
var Sticky;
$(document).ready(function() {
var contractst = $("#contractst").dataTable($.extend(true, {}, dataTablesDefaults, {
"aoColumnDefs": [
{ "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] }
],
'sDom': 't'
} ) );
$('body').on('click', '.delete-contact', null, delete_contact);
$('#add-contact').click(add_contact);
$('body').on('click', '.contact_acqprimary', null, function () {
if ($(this).is(':checked')) {
$('.contact_acqprimary').filter(':checked').not(this).prop('checked', false);
$('.contact_acqprimary_hidden').each(function () {
$(this).val('0');
});
}
$(this).next('.contact_acqprimary_hidden').val('1');
});
$('body').on('click', '.contact_serialsprimary', null, function () {
if ($(this).is(':checked')) {
$('.contact_serialsprimary').filter(':checked').not(this).prop('checked', false);
$('.contact_serialsprimary_hidden').each(function () {
$(this).val('0');
});
}
$(this).next('.contact_serialsprimary_hidden').val($(this).is(':checked') ? '1' : '0');
});
$('body').on('click', '.contact_orderacquisition', null, function () {
$(this).next('.contact_orderacquisition_hidden').val($(this).is(':checked') ? '1' : '0');
});
$('body').on('click', '.contact_claimacquisition', null, function () {
$(this).next('.contact_claimacquisition_hidden').val($(this).is(':checked') ? '1' : '0');
});
$('body').on('click', '.contact_claimissues', null, function () {
$(this).next('.contact_claimissues_hidden').val($(this).is(':checked') ? '1' : '0');
});
$('body').on('click', '.show_password', null, function(e){
e.preventDefault();
$(this).parent().replaceWith($(this).data('plain-text-password'));
});
refresh_aliases();
refresh_interfaces();
Sticky = $("#toolbar");
Sticky.hcSticky({
stickTo: "main",
stickyClass: "floating"
});
});
</script>
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]