View | Details | Raw Unified | Return to bug 20447
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addholding.tt (-142 / +300 lines)
Lines 4-23 Link Here
4
[% INCLUDE 'doc-head-open.inc' %]
4
[% INCLUDE 'doc-head-open.inc' %]
5
<title>Koha &rsaquo; Cataloging &rsaquo; [% title | html %] [% IF ( author ) %] by [% author | html %][% END %] (Record #[% biblionumber | html %]) &rsaquo; Holdings</title>
5
<title>Koha &rsaquo; Cataloging &rsaquo; [% title | html %] [% IF ( author ) %] by [% author | html %][% END %] (Record #[% biblionumber | html %]) &rsaquo; 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('"','&quot;') | 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> &rsaquo;
532
        <ol>
394
        <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a> &rsaquo;
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> &rsaquo;
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;">&nbsp;?</a>[% END %]
707
                                                <a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag | html %]'); return false;">&nbsp;?</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
- 

Return to bug 20447