|
Lines 4-23
Link Here
|
| 4 |
[% INCLUDE 'doc-head-open.inc' %] |
4 |
[% INCLUDE 'doc-head-open.inc' %] |
| 5 |
<title>Koha › Cataloging › [% title | html %] [% IF ( author ) %] by [% author | html %][% END %] (Record #[% biblionumber | html %]) › Holdings</title> |
5 |
<title>Koha › Cataloging › [% title | html %] [% IF ( author ) %] by [% author | html %][% END %] (Record #[% biblionumber | html %]) › Holdings</title> |
| 6 |
[% INCLUDE 'doc-head-close.inc' %] |
6 |
[% INCLUDE 'doc-head-close.inc' %] |
|
|
7 |
[% INCLUDE 'calendar.inc' %] |
| 7 |
[% Asset.js("lib/hc-sticky.js") | $raw %] |
8 |
[% Asset.js("lib/hc-sticky.js") | $raw %] |
|
|
9 |
[% INCLUDE 'select2.inc' %] |
| 10 |
<script> |
| 11 |
[% IF Koha.Preference('CreateAVFromCataloguing') && CAN_user_parameters_manage_auth_values %] |
| 12 |
var auth_values_creation = 1; |
| 13 |
[% ELSE %] |
| 14 |
var auth_values_creation = 0; |
| 15 |
[% END %] |
| 16 |
$.fn.select2.defaults.set("width", "100%" ); |
| 17 |
</script> |
| 8 |
[% Asset.js("js/cataloging.js") | $raw %] |
18 |
[% Asset.js("js/cataloging.js") | $raw %] |
| 9 |
[% Asset.js("js/browser.js") | $raw %] |
19 |
[% Asset.js("js/browser.js") | $raw %] |
| 10 |
[% Asset.css("css/addholding.css") | $raw %] |
|
|
| 11 |
[% INCLUDE 'select2.inc' %] |
| 12 |
</head> |
| 13 |
|
| 14 |
<body id="cat_addholding" class="cat"> |
| 15 |
|
| 16 |
<script> |
20 |
<script> |
| 17 |
var browser = KOHA.browser('[% searchid | html %]', parseInt('[% biblionumber | html %]', 10)); |
21 |
var browser = KOHA.browser('[% searchid | html %]', parseInt('[% biblionumber | html %]', 10)); |
| 18 |
browser.show(); |
22 |
browser.show(); |
| 19 |
|
23 |
|
| 20 |
$(window).load(function() { |
24 |
$(window).load(function(){ |
| 21 |
$("#loading").hide(); |
25 |
$("#loading").hide(); |
| 22 |
}); |
26 |
}); |
| 23 |
var Sticky; |
27 |
var Sticky; |
|
Lines 39-45
Link Here
|
| 39 |
selectTab( link ); |
43 |
selectTab( link ); |
| 40 |
[% END %] |
44 |
[% END %] |
| 41 |
|
45 |
|
| 42 |
|
|
|
| 43 |
Sticky = $("#toolbar"); |
46 |
Sticky = $("#toolbar"); |
| 44 |
Sticky.hcSticky({ |
47 |
Sticky.hcSticky({ |
| 45 |
stickTo: "#f", |
48 |
stickTo: "#f", |
|
Lines 83-88
Link Here
|
| 83 |
} |
86 |
} |
| 84 |
}); |
87 |
}); |
| 85 |
|
88 |
|
|
|
89 |
$("#z3950search").click(function(){ |
| 90 |
PopupZ3950(); |
| 91 |
}); |
| 92 |
|
| 93 |
$("#linkerbutton").click(function(){ |
| 94 |
AutomaticLinker(); |
| 95 |
}); |
| 96 |
|
| 86 |
$("#saverecord").click(function(){ |
97 |
$("#saverecord").click(function(){ |
| 87 |
$(".btn-group").removeClass("open"); |
98 |
$(".btn-group").removeClass("open"); |
| 88 |
onOption(); |
99 |
onOption(); |
|
Lines 110-121
Link Here
|
| 110 |
}); |
121 |
}); |
| 111 |
|
122 |
|
| 112 |
$( '#switcheditor' ).click( function() { |
123 |
$( '#switcheditor' ).click( function() { |
|
|
124 |
var breedingid = [% breedingid || "null" | html %]; |
| 125 |
|
| 126 |
if ( !confirm( breedingid ? _("This record cannot be transferred to the advanced editor. Continue?") : _("Any changes will not be saved. Continue?") ) ) return false; |
| 113 |
|
127 |
|
| 114 |
if ( !confirm( _("Any changes will not be saved. Continue?") ) ) return false; |
128 |
Cookies.set( 'catalogue_editor_[% logged_in_user.borrowernumber | html %]', 'advanced', { expires: 365, path: '/', sameSite: 'Lax' } ); |
| 115 |
|
129 |
|
| 116 |
Cookies.set( 'catalogue_editor_[% logged_in_user.borrowernumber | html %]', 'advanced', { expires: 365, path: '/' } ); |
130 |
var holding_id = [% holding_id || "null" | html %]; |
| 117 |
|
131 |
|
| 118 |
var holding_id = [% holding_id || "''" | html %]; |
|
|
| 119 |
window.location = '/cgi-bin/koha/cataloguing/editor.pl#catalog/' + biblionumber + '/holdings/' + holding_id; |
132 |
window.location = '/cgi-bin/koha/cataloguing/editor.pl#catalog/' + biblionumber + '/holdings/' + holding_id; |
| 120 |
|
133 |
|
| 121 |
return false; |
134 |
return false; |
|
Lines 133-146
Link Here
|
| 133 |
|
146 |
|
| 134 |
$(".tag_anchor").on("click", function(e){ |
147 |
$(".tag_anchor").on("click", function(e){ |
| 135 |
e.preventDefault(); |
148 |
e.preventDefault(); |
| 136 |
var toolbar_height = $("#toolbar").outerHeight(); |
|
|
| 137 |
$(".tag_anchor").removeClass("selected"); |
149 |
$(".tag_anchor").removeClass("selected"); |
| 138 |
$(this).addClass("selected"); |
150 |
$(this).addClass("selected"); |
| 139 |
var link = this.href; |
151 |
var link = this.href; |
| 140 |
var linkid = link.substring( link.indexOf("#") + 1 ); |
152 |
var linkid = link.substring( link.indexOf("#") + 1 ); |
| 141 |
var dest = $("#" + linkid ); |
153 |
window.scrollTo( 0, getScrollto( linkid, "toolbar" ) ); |
| 142 |
var yoffset = dest.offset(); |
154 |
}); |
| 143 |
window.scrollTo( 0, yoffset.top - toolbar_height - 20 ); |
155 |
|
|
|
156 |
$("body").on("click", ".linkfield", function(e){ |
| 157 |
e.preventDefault(); |
| 158 |
var tab = $(this).data("tab"); |
| 159 |
var field = $(this).data("field"); |
| 160 |
var tablink = $("a[data-tabid='" + tab + "']" ); |
| 161 |
selectTab( tablink ); |
| 162 |
window.scrollTo( 0, getScrollto( field, "toolbar" ) ); |
| 163 |
}); |
| 164 |
|
| 165 |
$("body").on("click", ".show-errors", function(e){ |
| 166 |
document.getElementById("form-errors").scrollIntoView(); |
| 144 |
}); |
167 |
}); |
| 145 |
|
168 |
|
| 146 |
}); |
169 |
}); |
|
Lines 154-159
Link Here
|
| 154 |
$(".tag_anchors_" + tabid ).addClass("tab_selected").show(); |
177 |
$(".tag_anchors_" + tabid ).addClass("tab_selected").show(); |
| 155 |
} |
178 |
} |
| 156 |
|
179 |
|
|
|
180 |
/** |
| 181 |
* Returns a roughly ideal position to scroll an element into view |
| 182 |
* @param {string} target - The HTML id of the element to scroll into view |
| 183 |
* @param {string} elemid - The HTML id of the element which might obscure |
| 184 |
* the view of the target element e.g. a floating toolbar |
| 185 |
* @return {number} - The y-coordinate to pass to window.scrollTo() |
| 186 |
*/ |
| 187 |
function getScrollto( target, elemid ){ |
| 188 |
var dest = $("#" + target ); |
| 189 |
var yoffset = dest.offset(); |
| 190 |
|
| 191 |
if( elemid != "" ){ |
| 192 |
var element = $("#" + elemid ); |
| 193 |
var elem_height = element.outerHeight(); |
| 194 |
} else { |
| 195 |
elem_height = 0; |
| 196 |
} |
| 197 |
return yoffset.top - elem_height - 20; |
| 198 |
} |
| 199 |
|
| 157 |
function redirect(dest){ |
200 |
function redirect(dest){ |
| 158 |
$("#redirect").attr("value",dest); |
201 |
$("#redirect").attr("value",dest); |
| 159 |
return Check(); |
202 |
return Check(); |
|
Lines 165-181
Link Here
|
| 165 |
} |
208 |
} |
| 166 |
[% END %] |
209 |
[% END %] |
| 167 |
|
210 |
|
|
|
211 |
function PopupMARCFieldDoc(field) { |
| 212 |
[% IF Koha.Preference('marcfielddocurl') %] |
| 213 |
var docurl = "[% Koha.Preference('marcfielddocurl').replace('"','"') | html %]"; |
| 214 |
docurl = docurl.replace("{MARC}", "[% marcflavour | html %]"); |
| 215 |
docurl = docurl.replace("{FIELD}", ""+field); |
| 216 |
docurl = docurl.replace("{LANG}", "[% lang | html %]"); |
| 217 |
window.open(docurl); |
| 218 |
[% ELSIF ( marcflavour == 'MARC21' ) %] |
| 219 |
_MARC21FieldDoc(field); |
| 220 |
[% ELSIF ( marcflavour == 'UNIMARC' ) %] |
| 221 |
_UNIMARCFieldDoc(field); |
| 222 |
[% END %] |
| 223 |
} |
| 224 |
function confirmnotdup(redirect){ |
| 225 |
$("#confirm_not_duplicate").attr("value","1"); |
| 226 |
$("#redirect").attr("value",redirect); |
| 227 |
Check(); |
| 228 |
} |
| 229 |
|
| 168 |
function Dopop(link,i) { |
230 |
function Dopop(link,i) { |
| 169 |
defaultvalue = document.getElementById(i).value; |
231 |
defaultvalue = document.getElementById(i).value; |
| 170 |
window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes'); |
232 |
window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes'); |
| 171 |
} |
233 |
} |
| 172 |
|
234 |
|
| 173 |
function PopupMARCFieldDoc(field) { |
235 |
/** |
| 174 |
[% IF ( marcflavour == 'MARC21' ) %] |
236 |
* this function open a popup to search on z3950 server. |
| 175 |
_MARC21FieldDoc(field); |
237 |
*/ |
| 176 |
[% ELSIF ( marcflavour == 'UNIMARC' ) %] |
238 |
function PopupZ3950() { |
| 177 |
_UNIMARCFieldDoc(field); |
239 |
var strQuery = GetZ3950Terms(); |
| 178 |
[% END %] |
240 |
if(strQuery){ |
|
|
241 |
window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=[% biblionumber | html %]"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes'); |
| 242 |
} |
| 179 |
} |
243 |
} |
| 180 |
|
244 |
|
| 181 |
function _MARC21FieldDoc(field) { |
245 |
function _MARC21FieldDoc(field) { |
|
Lines 190-198
Link Here
|
| 190 |
|
254 |
|
| 191 |
function _UNIMARCFieldDoc(field) { |
255 |
function _UNIMARCFieldDoc(field) { |
| 192 |
/* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but |
256 |
/* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but |
| 193 |
seems to be the only version available that can be linked to per tag. More recent |
257 |
seems to be the only version available that can be linked to per tag. More recent |
| 194 |
versions of the UNIMARC standard are available on the IFLA website only as |
258 |
versions of the UNIMARC standard are available on the IFLA website only as |
| 195 |
PDFs! |
259 |
PDFs! |
| 196 |
*/ |
260 |
*/ |
| 197 |
var url; |
261 |
var url; |
| 198 |
if (field == 0) { |
262 |
if (field == 0) { |
|
Lines 202-225
Link Here
|
| 202 |
url = "http://archive.ifla.org/VI/3/p1996-1/uni" + first + ".htm#"; |
266 |
url = "http://archive.ifla.org/VI/3/p1996-1/uni" + first + ".htm#"; |
| 203 |
if (first == 0) url = url + "b"; |
267 |
if (first == 0) url = url + "b"; |
| 204 |
url = first == 9 |
268 |
url = first == 9 |
| 205 |
? "http://archive.ifla.org/VI/3/p1996-1/uni9.htm" |
269 |
? "http://archive.ifla.org/VI/3/p1996-1/uni9.htm" |
| 206 |
: url + field; |
270 |
: url + field; |
| 207 |
} |
271 |
} |
| 208 |
window.open(url); |
272 |
window.open(url); |
| 209 |
} |
273 |
} |
| 210 |
|
274 |
|
| 211 |
/* |
275 |
/* |
| 212 |
* Functions to hide/show marc docs and tags links |
276 |
* Functions to hide/show marc docs and tags links |
| 213 |
*/ |
277 |
*/ |
| 214 |
|
278 |
|
| 215 |
function toggleMARCdocLinks(flag){ |
279 |
function toggleMARCdocLinks(flag){ |
| 216 |
if( flag === true ){ |
280 |
if( flag === true ){ |
| 217 |
$(".marcdocs").show(); |
281 |
$(".marcdocs").show(); |
| 218 |
$.cookie("marcdocs_[% borrowernumber | html %]",'show', { path: "/", expires: 365 }); |
282 |
Cookies.set("marcdocs_[% borrowernumber | html %]",'show', { path: "/", expires: 365, sameSite: 'Lax' }); |
| 219 |
$("#marcDocsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o'); |
283 |
$("#marcDocsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o'); |
| 220 |
} else { |
284 |
} else { |
| 221 |
$(".marcdocs").hide(); |
285 |
$(".marcdocs").hide(); |
| 222 |
$.cookie("marcdocs_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 }); |
286 |
Cookies.set("marcdocs_[% borrowernumber | html %]",'hide', { path: "/", expires: 365, sameSite: 'Lax' }); |
| 223 |
$("#marcDocsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o'); |
287 |
$("#marcDocsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o'); |
| 224 |
} |
288 |
} |
| 225 |
} |
289 |
} |
|
Lines 228-247
Link Here
|
| 228 |
if( flag === true ){ |
292 |
if( flag === true ){ |
| 229 |
$(".tagnum").show(); |
293 |
$(".tagnum").show(); |
| 230 |
$(".subfieldcode").show(); |
294 |
$(".subfieldcode").show(); |
| 231 |
$.cookie("marctags_[% borrowernumber | html %]",'show', { path: "/", expires: 365 }); |
295 |
Cookies.set("marctags_[% borrowernumber | html %]",'show', { path: "/", expires: 365, sameSite: 'Lax' }); |
| 232 |
$("#marcTagsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o'); |
296 |
$("#marcTagsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o'); |
| 233 |
} else { |
297 |
} else { |
| 234 |
$(".tagnum").hide(); |
298 |
$(".tagnum").hide(); |
| 235 |
$(".subfieldcode").hide(); |
299 |
$(".subfieldcode").hide(); |
| 236 |
$.cookie("marctags_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 }); |
300 |
Cookies.set("marctags_[% borrowernumber | html %]",'hide', { path: "/", expires: 365, sameSite: 'Lax' }); |
| 237 |
$("#marcTagsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o'); |
301 |
$("#marcTagsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o'); |
| 238 |
} |
302 |
} |
| 239 |
} |
303 |
} |
| 240 |
|
304 |
|
| 241 |
/** |
305 |
/** |
| 242 |
* check if mandatory subfields are written |
306 |
* check if mandatory/important subfields are written |
| 243 |
*/ |
307 |
* @param mandatory true to check for mandatories, false for importants |
| 244 |
function AreFieldsNotOk(){ |
308 |
*/ |
|
|
309 |
function AreFieldsNotOk (mandatory = true) { |
| 245 |
var mandatories = new Array(); |
310 |
var mandatories = new Array(); |
| 246 |
var mandatoriesfields = new Array(); |
311 |
var mandatoriesfields = new Array(); |
| 247 |
var tab = new Array(); |
312 |
var tab = new Array(); |
|
Lines 333-345
Link Here
|
| 333 |
isempty = false; |
398 |
isempty = false; |
| 334 |
} |
399 |
} |
| 335 |
|
400 |
|
| 336 |
if (isempty) { |
401 |
if(isempty){ |
| 337 |
flag = 1; |
402 |
flag = true; |
| 338 |
StrAlert += "\t* " + _("Field %s is mandatory, at least one of its subfields must be filled.").format(arr[0]) + "\n"; |
403 |
if (mandatory) { |
|
|
404 |
mandatoryFields[ arr[0] ] = { |
| 405 |
importance: "mandatory", |
| 406 |
elemid: "div_indicator_" + divid, |
| 407 |
tab: arr[3] |
| 408 |
} |
| 409 |
} else { |
| 410 |
mandatoryFields[ arr[0] ] = { |
| 411 |
importance: "important", |
| 412 |
elemid: "div_indicator_" + divid, |
| 413 |
tab: arr[3] |
| 414 |
} |
| 415 |
} |
| 339 |
} |
416 |
} |
|
|
417 |
|
| 340 |
} |
418 |
} |
| 341 |
|
419 |
|
| 342 |
if (flag) { |
420 |
if( Object.entries(mandatoryFields).length > 0 ){ |
|
|
421 |
StrAlert += "<h4>" + _("The following fields aren't filled:") + "</h4>"; |
| 422 |
StrAlert += "<ul>"; |
| 423 |
for( var prop in mandatoryFields ){ |
| 424 |
if( mandatoryFields[prop]["importance"] == "mandatory" ){ |
| 425 |
StrAlert += "<li>" + _("Field %s is mandatory, at least one of its subfields must be filled.").format( prop ) + ' <a class="linkfield btn btn-link" href="#" data-tab="' + mandatoryFields[prop]["tab"] + '" data-field="' + mandatoryFields[prop]["elemid"] + '"><i class="fa fa-arrow-right" aria-hidden="true"></i> ' + _("Go to field") + '</a></li>'; |
| 426 |
} else { |
| 427 |
StrAlert += "<li>" + _("Field %s is important, at least one of its subfields must be filled.").format(prop) + ' <a class="linkfield btn btn-link" href="#" data-tab="' + mandatoryFields[prop]["tab"] + '" data-field="' + mandatoryFields[prop]["elemid"] + '"><i class="fa fa-arrow-right" aria-hidden="true"></i> ' + _("Go to field") + '</a></li>'; |
| 428 |
} |
| 429 |
} |
| 430 |
StrAlert += "</ul>"; |
| 431 |
} |
| 432 |
StrAlert += "</div>"; |
| 433 |
if ( flag ) { |
| 434 |
$("#show-errors").html('<button type="button" class="btn btn-danger show-errors"><i class="fa fa-warning"></i> ' + _("Errors") + '</span>'); |
| 343 |
return StrAlert; |
435 |
return StrAlert; |
| 344 |
} else { |
436 |
} else { |
| 345 |
return flag; |
437 |
return flag; |
|
Lines 347-374
Link Here
|
| 347 |
} |
439 |
} |
| 348 |
|
440 |
|
| 349 |
/** |
441 |
/** |
| 350 |
* |
442 |
* Run checks for mandatory and important fields |
| 351 |
* |
443 |
* Output errors if necessary, or submit the form |
| 352 |
*/ |
444 |
*/ |
| 353 |
function Check(){ |
445 |
function Check(){ |
| 354 |
var StrAlert = AreFieldsNotOk(); |
446 |
var StrAlert = AreFieldsNotOk(); |
| 355 |
if( ! StrAlert ){ |
447 |
var StrWarning = AreFieldsNotOk( false ); |
| 356 |
var StrWarning = AreFieldsNotOk(false); |
448 |
if( !StrAlert && StrWarning ){ |
| 357 |
if (StrWarning){ |
449 |
// Check important fields |
| 358 |
StrWarning += "\n" + _("Are you sure you want to save?"); |
450 |
$("#check_errors").html( StrWarning ); |
| 359 |
var r=confirm(StrWarning); |
451 |
$('html, body').animate({ scrollTop: 0 }, 'fast'); |
| 360 |
if (! r){ |
452 |
|
| 361 |
return false; |
453 |
var r=confirm( _("Important fields(s) are not filled. Are you sure you want to save?" ) ); |
| 362 |
} |
454 |
if (! r){ |
|
|
455 |
return false; |
| 456 |
} else { |
| 457 |
document.f.submit(); |
| 458 |
return true; |
| 459 |
} |
| 460 |
} else if( StrAlert ){ |
| 461 |
var strAll = StrAlert; |
| 462 |
if( StrWarning ){ |
| 463 |
strAll += StrWarning; |
| 363 |
} |
464 |
} |
|
|
465 |
$("#check_errors").html( strAll ); |
| 466 |
$('html, body').animate({ scrollTop: 0 }, 'fast'); |
| 467 |
Sticky.hcSticky('refresh'); |
| 468 |
return false; |
| 469 |
} else if( !StrAlert && !StrWarning ){ |
| 364 |
document.f.submit(); |
470 |
document.f.submit(); |
| 365 |
return true; |
471 |
return true; |
| 366 |
} else { |
|
|
| 367 |
alert(StrAlert); |
| 368 |
return false; |
| 369 |
} |
472 |
} |
| 370 |
} |
473 |
} |
| 371 |
|
474 |
|
|
|
475 |
/** |
| 476 |
* check if z3950 mandatories are set or not |
| 477 |
*/ |
| 478 |
function GetZ3950Terms(){ |
| 479 |
var frameworkcode = document.getElementById("frameworkcode").value; |
| 480 |
var strQuery = "&frameworkcode=" + encodeURIComponent(frameworkcode); |
| 481 |
var mandatories = new Array(); |
| 482 |
var mandatories_label = new Array(); |
| 483 |
[% FOREACH BIG_LOO IN BIG_LOOP %] |
| 484 |
[% FOREACH innerloo IN BIG_LOO.innerloop %] |
| 485 |
[% FOREACH subfield_loo IN innerloo.subfield_loop %] |
| 486 |
[% IF ( subfield_loo.z3950_mandatory ) %] |
| 487 |
mandatories.push("[% subfield_loo.id | html %]"); |
| 488 |
mandatories_label.push("[% subfield_loo.z3950_mandatory | html %]"); |
| 489 |
[% END %] |
| 490 |
[% END %] |
| 491 |
[% END %] |
| 492 |
[% END %] |
| 493 |
|
| 494 |
for(var i=0,len=mandatories.length; i<len ; i++){ |
| 495 |
var field_value = document.getElementById(mandatories[i]).value; |
| 496 |
if( field_value ){ |
| 497 |
strQuery += "&"+encodeURIComponent(mandatories_label[i])+"="+encodeURIComponent(field_value); |
| 498 |
} |
| 499 |
} |
| 500 |
return strQuery; |
| 501 |
} |
| 502 |
|
| 372 |
function Changefwk() { |
503 |
function Changefwk() { |
| 373 |
var f = document.f; |
504 |
var f = document.f; |
| 374 |
f.op.value = "[% op | html %]"; |
505 |
f.op.value = "[% op | html %]"; |
|
Lines 378-387
Link Here
|
| 378 |
f.submit(); |
509 |
f.submit(); |
| 379 |
} |
510 |
} |
| 380 |
|
511 |
|
| 381 |
$(document).ready(function() { |
512 |
/* Wrap a value in HTML without putting HTML in translatable string */ |
| 382 |
$('.subfield_line select').select2(); |
513 |
function formatFieldName( string ){ |
| 383 |
}); |
514 |
return "<strong><em>" + string + "</em></strong>"; |
|
|
515 |
} |
| 516 |
|
| 517 |
// $(document).ready(function() { |
| 518 |
// $('.subfield_line select').select2(); |
| 519 |
// }); |
| 384 |
</script> |
520 |
</script> |
|
|
521 |
[% Asset.css("css/addholding.css") | $raw %] |
| 522 |
</head> |
| 523 |
<body id="cat_addholding" class="cat"> |
| 385 |
|
524 |
|
| 386 |
<div id="loading"> |
525 |
<div id="loading"> |
| 387 |
<div>Loading, please wait...</div> |
526 |
<div>Loading, please wait...</div> |
|
Lines 389-400
Link Here
|
| 389 |
|
528 |
|
| 390 |
[% INCLUDE 'header.inc' %] |
529 |
[% INCLUDE 'header.inc' %] |
| 391 |
|
530 |
|
| 392 |
<div id="breadcrumbs"> |
531 |
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb"> |
| 393 |
<a href="/cgi-bin/koha/mainpage.pl">Home</a> › |
532 |
<ol> |
| 394 |
<a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a> › |
533 |
<li> |
| 395 |
Edit <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | uri %]">[% title | html %] [% IF ( author ) %] by [% author | html %][% END %] (Record #[% biblionumber | html %])</a> › |
534 |
<a href="/cgi-bin/koha/mainpage.pl">Home</a> |
| 396 |
<a href="/cgi-bin/koha/cataloguing/addholding.pl?biblionumber=[% biblionumber | uri %]">Holdings</a> |
535 |
</li> |
| 397 |
</div> |
536 |
<li> |
|
|
537 |
<a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a> |
| 538 |
</li> |
| 539 |
<li> |
| 540 |
Editing <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | uri %]"> |
| 541 |
<em>[% title | html %]</em> (Record number [% biblionumber | html %])</a> |
| 542 |
[% IF ( author ) %] by [% author | html %][% END %] |
| 543 |
</li> |
| 544 |
<li> |
| 545 |
<a aria-current="page" href="/cgi-bin/koha/cataloguing/addholding.pl?biblionumber=[% biblionumber | uri %]">Holdings</a> |
| 546 |
</li> |
| 547 |
</ol> |
| 548 |
</nav> |
| 398 |
|
549 |
|
| 399 |
<div class="main container-fluid"> |
550 |
<div class="main container-fluid"> |
| 400 |
<div class="row"> |
551 |
<div class="row"> |
|
Lines 440-449
Link Here
|
| 440 |
<div class="btn-group"> |
591 |
<div class="btn-group"> |
| 441 |
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i> Settings <span class="caret"></span></button> |
592 |
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i> Settings <span class="caret"></span></button> |
| 442 |
<ul id="settings-menu" class="dropdown-menu"> |
593 |
<ul id="settings-menu" class="dropdown-menu"> |
| 443 |
[% IF Koha.Preference( 'EnableAdvancedCatalogingEditor' ) == 1 %] |
594 |
[% IF Koha.Preference( 'EnableAdvancedCatalogingEditor' ) == 1 && CAN_user_editcatalogue_advanced_editor %] |
| 444 |
[% # disabled until supported <li><a href="#" id="switcheditor">Switch to advanced editor</a></li> %] |
595 |
<li><a href="#" id="switcheditor">Switch to advanced editor</a></li> |
| 445 |
[% END %] |
596 |
[% END %] |
| 446 |
[% IF marcflavour != 'NORMARC' AND NOT advancedMARCEditor %] |
597 |
[% UNLESS advancedMARCEditor %] |
| 447 |
<li> |
598 |
<li> |
| 448 |
<a href="#" id="marcDocsSelect"><i class="fa fa-check-square-o"></i> Show MARC tag documentation links</a> |
599 |
<a href="#" id="marcDocsSelect"><i class="fa fa-check-square-o"></i> Show MARC tag documentation links</a> |
| 449 |
<li> |
600 |
<li> |
|
Lines 479-485
Link Here
|
| 479 |
<a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | url %]">Cancel</a> |
630 |
<a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | url %]">Cancel</a> |
| 480 |
</div> |
631 |
</div> |
| 481 |
<div class="toolbar-tabs-container"> |
632 |
<div class="toolbar-tabs-container"> |
| 482 |
[% IF ( BIG_LOOP.size > 1 ) %] |
633 |
[% IF ( BIG_LOOP && BIG_LOOP.size > 1 ) %] |
| 483 |
<ul class="toolbar-tabs"> |
634 |
<ul class="toolbar-tabs"> |
| 484 |
[%- FOREACH BIG_LOO IN BIG_LOOP -%] |
635 |
[%- FOREACH BIG_LOO IN BIG_LOOP -%] |
| 485 |
[% IF loop.first %] |
636 |
[% IF loop.first %] |
|
Lines 532-548
Link Here
|
| 532 |
[% previous = "" %] |
683 |
[% previous = "" %] |
| 533 |
[% FOREACH innerloo IN BIG_LOO.innerloop %] |
684 |
[% FOREACH innerloo IN BIG_LOO.innerloop %] |
| 534 |
[% IF ( innerloo.tag ) %] |
685 |
[% IF ( innerloo.tag ) %] |
| 535 |
[% IF innerloo.tag != previous %] |
686 |
[% IF innerloo.tag != previous %] |
| 536 |
[% IF previous != "" %] |
687 |
[% IF previous != "" %] |
| 537 |
</ul> |
688 |
</ul> |
| 538 |
[% END %] |
689 |
[% END %] |
| 539 |
[% previous = innerloo.tag %] |
690 |
[% previous = innerloo.tag %] |
| 540 |
[% IF ( innerloo.repeatable ) %] |
691 |
[% IF ( innerloo.repeatable ) %] |
| 541 |
<ul class="sortable_field"> |
692 |
<ul class="sortable_field"> |
| 542 |
[% ELSE %] |
693 |
[% ELSE %] |
| 543 |
<ul> |
694 |
<ul> |
| 544 |
[% END %] |
|
|
| 545 |
[% END %] |
695 |
[% END %] |
|
|
696 |
[% END %] |
| 546 |
[% IF ( innerloo.repeatable ) %] |
697 |
[% IF ( innerloo.repeatable ) %] |
| 547 |
<li class="tag sortable_tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]"> |
698 |
<li class="tag sortable_tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]"> |
| 548 |
[% ELSE %] |
699 |
[% ELSE %] |
|
Lines 553-559
Link Here
|
| 553 |
<a href="#" tabindex="1" class="tagnum" title="[% innerloo.tag_lib | html %] - Click to Expand this Tag" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;">[% innerloo.tag | html %]</a> |
704 |
<a href="#" tabindex="1" class="tagnum" title="[% innerloo.tag_lib | html %] - Click to Expand this Tag" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;">[% innerloo.tag | html %]</a> |
| 554 |
[% ELSE %] |
705 |
[% ELSE %] |
| 555 |
<span class="tagnum" title="[% innerloo.tag_lib | html %]">[% innerloo.tag | html %]</span> |
706 |
<span class="tagnum" title="[% innerloo.tag_lib | html %]">[% innerloo.tag | html %]</span> |
| 556 |
[% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag | html %]'); return false;"> ?</a>[% END %] |
707 |
<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag | html %]'); return false;"> ?</a> |
| 557 |
[% END %] |
708 |
[% END %] |
| 558 |
|
709 |
|
| 559 |
[% IF ( innerloo.fixedfield ) %] |
710 |
[% IF ( innerloo.fixedfield ) %] |
|
Lines 610-694
Link Here
|
| 610 |
[% FOREACH subfield_loo IN innerloo.subfield_loop %] |
761 |
[% FOREACH subfield_loo IN innerloo.subfield_loop %] |
| 611 |
<!-- One line on the marc editor --> |
762 |
<!-- One line on the marc editor --> |
| 612 |
<li class="subfield_line" style="[% subfield_loo.visibility | html %]" id="subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]"> |
763 |
<li class="subfield_line" style="[% subfield_loo.visibility | html %]" id="subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]"> |
|
|
764 |
<div class="subfieldcode"> |
| 765 |
<input type="text" |
| 766 |
title="[% subfield_loo.marc_lib | html %]" |
| 767 |
style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;" |
| 768 |
name="tag_[% subfield_loo.tag | html %]_code_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" |
| 769 |
value="[% subfield_loo.subfield | html %]" |
| 770 |
size="1" |
| 771 |
maxlength="1" |
| 772 |
class="flat" |
| 773 |
tabindex="0" /> |
| 774 |
</div> |
| 613 |
[% UNLESS advancedMARCEditor %] |
775 |
[% UNLESS advancedMARCEditor %] |
| 614 |
[% IF ( subfield_loo.fixedfield ) %] |
776 |
[% IF ( subfield_loo.mandatory ) %] |
| 615 |
<label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" style="display:none;" class="labelsubfield"> |
777 |
<div class="subfield subfield_mandatory"> |
|
|
778 |
[% ELSIF ( subfield_loo.important ) %] |
| 779 |
<div class="subfield subfield_important"> |
| 616 |
[% ELSE %] |
780 |
[% ELSE %] |
| 617 |
<label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" class="labelsubfield"> |
781 |
<div class="subfield"> |
| 618 |
[% END %] |
782 |
[% END %] |
| 619 |
[% END %] |
783 |
[% IF ( subfield_loo.fixedfield ) %] |
| 620 |
|
784 |
<label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" style="display:none;" class="labelsubfield"> |
| 621 |
<span class="subfieldcode"> |
|
|
| 622 |
<input type="text" |
| 623 |
title="[% subfield_loo.marc_lib | html %]" |
| 624 |
style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;" |
| 625 |
name="tag_[% subfield_loo.tag | html %]_code_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" |
| 626 |
value="[% subfield_loo.subfield | html %]" |
| 627 |
size="1" |
| 628 |
maxlength="1" |
| 629 |
class="flat" |
| 630 |
tabindex="0" /> |
| 631 |
</span> |
| 632 |
|
| 633 |
[% UNLESS advancedMARCEditor %] |
| 634 |
[% IF ( subfield_loo.mandatory ) %] |
| 635 |
<span class="subfield subfield_mandatory"> |
| 636 |
[% ELSIF ( subfield_loo.important ) %] |
| 637 |
<span class="subfield subfield_important"> |
| 638 |
[% ELSE %] |
785 |
[% ELSE %] |
| 639 |
<span class="subfield"> |
786 |
<label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" class="labelsubfield"> |
| 640 |
[% END %] |
787 |
[% END %] |
| 641 |
[% subfield_loo.marc_lib | $raw %] |
788 |
[% subfield_loo.marc_lib | $raw %] |
| 642 |
</span> |
789 |
</label> |
| 643 |
</label> |
790 |
</div> |
| 644 |
[% END %] |
791 |
[% END %] |
| 645 |
|
792 |
|
| 646 |
[% SET mv = subfield_loo.marc_value %] |
793 |
[% SET mv = subfield_loo.marc_value %] |
| 647 |
[% IF ( mv.type == 'text' ) %] |
794 |
<div id="field_marceditor[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]" class="field_marceditor"> |
| 648 |
[% IF ( mv.readonly == 1 ) %] |
795 |
[% IF ( mv.type == 'text' ) %] |
| 649 |
<input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor readonly" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" readonly="readonly" /> |
796 |
[% IF ( mv.readonly == 1 ) %] |
| 650 |
[% ELSE %] |
797 |
<input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor readonly" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" readonly="readonly" /> |
| 651 |
<input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" /> |
798 |
[% ELSE %] |
| 652 |
[% END %] |
799 |
<input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" /> |
|
|
800 |
[% END %] |
| 653 |
|
801 |
|
| 654 |
[% IF ( mv.authtype ) %] |
802 |
[% ELSIF ( mv.type == 'text_complex' ) %] |
| 655 |
<span class="subfield_controls"><a href="#" class="buttonDot tag_editor" onclick="openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'[%- mv.authtype | html -%]','holding'); return false;" tabindex="1" title="Tag editor">Tag editor</a></span> |
803 |
<input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor framework_plugin" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" /> |
|
|
804 |
[% mv.javascript | $raw %] |
| 805 |
[% ELSIF ( mv.type == 'hidden' ) %] |
| 806 |
<input tabindex="1" type="hidden" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" /> |
| 807 |
[% ELSIF ( mv.type == 'textarea' ) %] |
| 808 |
<textarea cols="70" rows="4" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" class="input_marceditor" tabindex="1">[%- mv.value | html -%]</textarea> |
| 809 |
[% ELSIF ( mv.type == 'select' ) %] |
| 810 |
[% IF mv.category AND CAN_user_parameters_manage_auth_values %] |
| 811 |
<select name="[%- mv.name | html -%]" tabindex="1" class="input_marceditor" id="[%- mv.id | html -%]" data-category="[% mv.category | html %]"> |
| 812 |
[% ELSE %] |
| 813 |
<select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor select2" id="[%- mv.id | html -%]"> |
| 656 |
[% END %] |
814 |
[% END %] |
| 657 |
[% ELSIF ( mv.type == 'text_complex' ) %] |
815 |
[% FOREACH aval IN mv.values %] |
| 658 |
<input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor framework_plugin" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" /> |
816 |
[% IF aval == mv.default %] |
| 659 |
<span class="subfield_controls"> |
817 |
<option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option> |
| 660 |
[% IF mv.noclick %] |
818 |
[% ELSE %] |
| 661 |
<span class="buttonDot tag_editor disabled" tabindex="-1" title="Field autofilled by plugin"></span> |
819 |
<option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option> |
| 662 |
[% ELSE %] |
820 |
[% END %] |
|
|
821 |
[% END %] |
| 822 |
</select> |
| 823 |
[% END # /IF (mv.type...) %] |
| 824 |
</div> |
| 825 |
[% IF ( subfield_loo.mandatory ) %] |
| 826 |
<div class="subfield_loop_mandatory"> |
| 827 |
<span class="required">Required</span> |
| 828 |
</div> |
| 829 |
[% ELSIF ( subfield_loo.important ) %] |
| 830 |
<div class="subfield_loop_mandatory"> |
| 831 |
<span class="important">Important</span> |
| 832 |
</div> |
| 833 |
[% END %] |
| 834 |
<div class="subfield_controls"> |
| 835 |
[% IF ( mv.type == 'text' ) %] |
| 836 |
[% IF ( mv.authtype ) %] |
| 837 |
<a href="#" class="buttonDot tag_editor" onclick="openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'[%- mv.authtype | html -%]','holding'); return false;" tabindex="1" title="Tag editor">Tag editor</a> |
| 838 |
[% END %] |
| 839 |
[% ELSIF ( mv.type == 'text_complex' ) %] |
| 840 |
[% IF mv.noclick %] |
| 841 |
<span class="buttonDot tag_editor disabled" tabindex="-1" title="Field autofilled by plugin"></span> |
| 842 |
[% ELSE %] |
| 663 |
[% IF mv.plugin == "upload.pl" %] |
843 |
[% IF mv.plugin == "upload.pl" %] |
| 664 |
<a href="#" id="buttonDot_[% mv.id | html %]" class="tag_editor upload framework_plugin" tabindex="1"><i class="fa fa-upload" aria-hidden="true"></i> Upload</a> |
844 |
<a href="#" id="buttonDot_[% mv.id | html %]" class="tag_editor upload framework_plugin" tabindex="1"><i class="fa fa-upload" aria-hidden="true"></i> Upload</a> |
| 665 |
[% ELSE %] |
845 |
[% ELSE %] |
| 666 |
<a href="#" id="buttonDot_[% mv.id | html %]" class="buttonDot tag_editor framework_plugin" tabindex="1" title="Tag editor">Tag editor</a> |
846 |
<a href="#" id="buttonDot_[% mv.id | html %]" class="buttonDot tag_editor framework_plugin" tabindex="1" title="Tag editor">Tag editor</a> |
| 667 |
[% END %] |
847 |
[% END %] |
| 668 |
[% END %] |
848 |
[% END %] |
| 669 |
</span> |
849 |
</span> |
| 670 |
[% mv.javascript | $raw %] |
|
|
| 671 |
[% ELSIF ( mv.type == 'hidden' ) %] |
| 672 |
<input tabindex="1" type="hidden" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" /> |
| 673 |
[% ELSIF ( mv.type == 'textarea' ) %] |
| 674 |
<textarea cols="70" rows="4" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" class="input_marceditor" tabindex="1">[%- mv.value | html -%]</textarea> |
| 675 |
[% ELSIF ( mv.type == 'select' ) %] |
| 676 |
<select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor select2" id="[%- mv.id | html -%]"> |
| 677 |
[% FOREACH aval IN mv.values %] |
| 678 |
[% IF aval == mv.default %] |
| 679 |
<option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option> |
| 680 |
[% ELSE %] |
| 681 |
<option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option> |
| 682 |
[% END %] |
| 683 |
[% END %] |
850 |
[% END %] |
| 684 |
</select> |
|
|
| 685 |
[% END # /IF (mv.type...) %] |
| 686 |
[% IF ( subfield_loo.mandatory ) %] |
| 687 |
<span class="required">Required</span> |
| 688 |
[% ELSIF ( subfield_loo.important ) %] |
| 689 |
<span class="important">Important</span> |
| 690 |
[% END %] |
| 691 |
<span class="subfield_controls"> |
| 692 |
[% IF ( subfield_loo.repeatable ) %] |
851 |
[% IF ( subfield_loo.repeatable ) %] |
| 693 |
<a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]','[% advancedMARCEditor | html %]'); return false;"> |
852 |
<a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]','[% advancedMARCEditor | html %]'); return false;"> |
| 694 |
<img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" /> |
853 |
<img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" /> |
|
Lines 697-713
Link Here
|
| 697 |
<img src="[% interface | html %]/[% theme | html %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" /> |
856 |
<img src="[% interface | html %]/[% theme | html %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" /> |
| 698 |
</a> |
857 |
</a> |
| 699 |
[% END %] |
858 |
[% END %] |
| 700 |
</span> |
859 |
</div> |
| 701 |
</li> <!-- /.subfield_line --> |
860 |
</li> <!-- /.subfield_line --> |
| 702 |
<!-- End of the line --> |
861 |
<!-- End of the line --> |
| 703 |
[% END # /FOREACH subfield_loop %] |
862 |
[% END # /FOREACH subfield_loop %] |
| 704 |
</ul> <!-- /.sortable_subfield --> |
863 |
</ul> <!-- /.sortable_subfield --> |
| 705 |
</li> <!-- /.tag.clearfix --> |
864 |
</li> <!-- /.tag.clearfix --> |
| 706 |
[% END %]<!-- if innerloo.tag --> |
865 |
[% END %]<!-- if innerloo.tag --> |
| 707 |
[% END %]<!-- BIG_LOO.innerloop --> |
866 |
[% END # /FOREACH BIG_LOO.innerloop %] |
| 708 |
</ul> <!-- /.sortable_field --> |
867 |
</ul> <!-- /.sortable_field --> |
| 709 |
</div> <!-- /#tabXXX --> |
868 |
</div> <!-- /#tabXXX --> |
| 710 |
[% END %]<!-- BIG_LOOP --> |
869 |
[% END # /FOREACH BIG_LOOP %] |
| 711 |
</div><!-- /#addholdingtabs --> |
870 |
</div><!-- /#addholdingtabs --> |
| 712 |
</form> <!-- /name=f --> |
871 |
</form> <!-- /name=f --> |
| 713 |
</div> <!-- /.col-md-10.col-md-offset-1 --> |
872 |
</div> <!-- /.col-md-10.col-md-offset-1 --> |
| 714 |
- |
|
|