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

(-)a/admin/preferences.pl (+6 lines)
Lines 64-69 sub _get_chunk { Link Here
64
    if( $options{'syntax'} ){
64
    if( $options{'syntax'} ){
65
        $chunk->{'syntax'} = $options{'syntax'};
65
        $chunk->{'syntax'} = $options{'syntax'};
66
    }
66
    }
67
68
    if( $options{'type'} && $options{'type'} eq 'modalselect' ){
69
        $chunk->{'source'} = $options{'source'};
70
        $chunk->{'type'} = 'modalselect';
71
    }
72
67
    if ( $options{'class'} && $options{'class'} eq 'password' ) {
73
    if ( $options{'class'} && $options{'class'} eq 'password' ) {
68
        $chunk->{'input_type'} = 'password';
74
        $chunk->{'input_type'} = 'password';
69
    } elsif ( $options{'class'} && $options{'class'} eq 'date' ) {
75
    } elsif ( $options{'class'} && $options{'class'} eq 'date' ) {
(-)a/koha-tmpl/intranet-tmpl/prog/css/preferences.css (-1 / +25 lines)
Lines 1-4 Link Here
1
.preference-url, .preference-multi, .preference-long, .preference-file {
1
.preference-url,
2
.preference-multi,
3
.preference-long,
4
.preference-file,
5
.preference-modalselect {
2
    width: 20em;
6
    width: 20em;
3
}
7
}
4
8
Lines 10-15 Link Here
10
    width: 5em;
14
    width: 5em;
11
}
15
}
12
16
17
input[type="text"].modalselect {
18
    cursor: pointer;
19
}
20
21
input[type="text"].modalselect:hover {
22
    background-color: #FFC;
23
}
24
13
textarea.preference {
25
textarea.preference {
14
    width: 35em;
26
    width: 35em;
15
	height: 20em;
27
	height: 20em;
Lines 134-137 span.overridden { Link Here
134
    border: 1px solid #EEE;
146
    border: 1px solid #EEE;
135
    margin: 1em 1em 1em 0;
147
    margin: 1em 1em 1em 0;
136
    resize:  vertical;
148
    resize:  vertical;
149
}
150
151
#prefModal label {
152
    display: block;
153
    font-weight: bold;
154
    line-height: 1.5em;
155
}
156
157
.dbcolumn {
158
    font-weight: normal;
159
    font-family: monospace;
160
    color: #666;
137
}
161
}
(-)a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss (+5 lines)
Lines 4004-4009 input.renew { Link Here
4004
    margin:  .5em 0;
4004
    margin:  .5em 0;
4005
}
4005
}
4006
4006
4007
.columns-2 {
4008
    columns: 2 auto;
4009
    column-gap: 2.5em;
4010
}
4011
4007
.columns-3 {
4012
.columns-3 {
4008
    columns: 3 auto;
4013
    columns: 3 auto;
4009
    column-gap: 2.5em;
4014
    column-gap: 2.5em;
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt (-1 / +28 lines)
Lines 92-97 Link Here
92
                        </option>
92
                        </option>
93
                        [% END %]
93
                        [% END %]
94
                    </select>
94
                    </select>
95
                    [% ELSIF ( CHUNK.type_modalselect ) %]
96
                        <input type="text" name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]" class="modalselect preference preference-[% CHUNK.type | html %]" data-source="[% CHUNK.source | html %]" readonly="readonly" value="[% CHUNK.value | html %]"/>
95
                    [% ELSIF ( CHUNK.type_multiple ) %]
97
                    [% ELSIF ( CHUNK.type_multiple ) %]
96
                    <select name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]" class="preference preference-[% CHUNK.class or "choice" | html %]" multiple="multiple">
98
                    <select name="pref_[% CHUNK.name | html %]" id="pref_[% CHUNK.name | html %]" class="preference preference-[% CHUNK.class or "choice" | html %]" multiple="multiple">
97
                        [% FOREACH CHOICE IN CHUNK.CHOICES %][% IF ( CHOICE.selected ) %]<option value="[% CHOICE.value | html %]" selected="selected">[% ELSE %]<option value="[% CHOICE.value | html %]">[% END %][% CHOICE.text | html %]</option>[% END %]
99
                        [% FOREACH CHOICE IN CHUNK.CHOICES %][% IF ( CHOICE.selected ) %]<option value="[% CHOICE.value | html %]" selected="selected">[% ELSE %]<option value="[% CHOICE.value | html %]">[% END %][% CHOICE.text | html %]</option>[% END %]
Lines 163-168 Link Here
163
        </div> <!-- /.col-sm-2.col-sm-pull-10 -->
165
        </div> <!-- /.col-sm-2.col-sm-pull-10 -->
164
     </div> <!-- /.row -->
166
     </div> <!-- /.row -->
165
167
168
<!-- Modal -->
169
<div class="modal" id="prefModal" tabindex="-1" role="dialog" aria-labelledby="prefModalLabel">
170
    <div class="modal-dialog modal-wide" role="document">
171
        <div class="modal-content">
172
            <div class="modal-header">
173
                <button type="button" class="closebtn" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
174
                <h4 class="modal-title" id="prefModalLabel">Modal title</h4>
175
            </div>
176
            <div class="modal-body">
177
                <p>
178
                    <a href="#" id="select_all"><i class="fa fa-check"></i> Select all</a>
179
                    |
180
                    <a href="#" id="clear_all"><i class="fa fa-remove"></i> Clear all</a>
181
                </p>
182
                <form action="#" id="prefModalForm">
183
                </form>
184
            </div>
185
            <div class="modal-footer">
186
                <button id="saveModalPrefs" data-target="" type="button" class="btn btn-default">Save</button>
187
                <button type="button" class="btn btn-link cancel" data-dismiss="modal">Cancel</button>
188
            </div>
189
        </div>
190
    </div>
191
</div>
192
166
[% MACRO jsinclude BLOCK %]
193
[% MACRO jsinclude BLOCK %]
167
    [% INCLUDE 'datatables.inc' %]
194
    [% INCLUDE 'datatables.inc' %]
168
    [% Asset.js("lib/hc-sticky.js") | $raw %]
195
    [% Asset.js("lib/hc-sticky.js") | $raw %]
Lines 174-179 Link Here
174
    [% Asset.js( "lib/codemirror/yaml.min.js" ) | $raw %]
201
    [% Asset.js( "lib/codemirror/yaml.min.js" ) | $raw %]
175
    <script>
202
    <script>
176
        var Sticky;
203
        var Sticky;
204
        var themelang = "[% themelang | html %]";
177
        $(document).ready(function(){
205
        $(document).ready(function(){
178
            [% UNLESS ( searchfield ) %]
206
            [% UNLESS ( searchfield ) %]
179
                Sticky = $("#toolbar");
207
                Sticky = $("#toolbar");
Lines 193-199 Link Here
193
                e.preventDefault();
221
                e.preventDefault();
194
                window.location.reload(true);
222
                window.location.reload(true);
195
            });
223
            });
196
197
        });
224
        });
198
        // This is here because of its dependence on template variables, everything else should go in js/pages/preferences.js - jpw
225
        // This is here because of its dependence on template variables, everything else should go in js/pages/preferences.js - jpw
199
        var to_highlight = "[% searchfield |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') | html %]";
226
        var to_highlight = "[% searchfield |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') | html %]";
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/borrowers.json (+53 lines)
Line 0 Link Here
1
{
2
    "cardnumber": "cardnumber",
3
    "surname": "surname",
4
    "firstname": "firstname",
5
    "title": "title",
6
    "othernames": "othernames",
7
    "initials": "initials",
8
    "streetnumber": "streetnumber",
9
    "streettype": "streettype",
10
    "address": "address",
11
    "address2": "address2",
12
    "city": "city",
13
    "state": "state",
14
    "zipcode": "zipcode",
15
    "country": "country",
16
    "email": "email",
17
    "phone": "phone",
18
    "mobile": "mobile",
19
    "fax": "fax",
20
    "emailpro": "emailpro",
21
    "phonepro": "phonepro",
22
    "B_streetnumber": "B_streetnumber",
23
    "B_streettype": "B_streettype",
24
    "B_address": "B_address",
25
    "B_address2": "B_address2",
26
    "B_city": "B_city",
27
    "B_state": "B_state",
28
    "B_zipcode": "B_zipcode",
29
    "B_country": "B_country",
30
    "B_email": "B_email",
31
    "B_phone": "B_phone",
32
    "dateofbirth": "dateofbirth",
33
    "branchcode": "branchcode",
34
    "categorycode": "categorycode",
35
    "contactname": "contactname",
36
    "contactfirstname": "contactfirstname",
37
    "borrowernotes": "borrowernotes",
38
    "sex": "sex",
39
    "password": "password",
40
    "userid": "userid",
41
    "opacnote": "opacnote",
42
    "contactnote": "contactnote",
43
    "altcontactfirstname": "altcontactfirstname",
44
    "altcontactsurname": "altcontactsurname",
45
    "altcontactaddress1": "altcontactaddress1",
46
    "altcontactaddress2": "altcontactaddress2",
47
    "altcontactaddress3": "altcontactaddress3",
48
    "altcontactstate": "altcontactstate",
49
    "altcontactzipcode": "altcontactzipcode",
50
    "altcontactcountry": "altcontactcountry",
51
    "altcontactphone": "altcontactphone",
52
    "smsalertnumber": "smsalertnumber"
53
}
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref (-6 / +6 lines)
Lines 829-846 OPAC: Link Here
829
        -
829
        -
830
            - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> must be filled in on the patron entry screen:"
830
            - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> must be filled in on the patron entry screen:"
831
            - pref: PatronSelfRegistrationBorrowerMandatoryField
831
            - pref: PatronSelfRegistrationBorrowerMandatoryField
832
              class: multi
832
              type: modalselect
833
            - (separate columns with |)
833
              source: borrowers
834
        -
834
        -
835
            - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> will not appear on the patron self-registration screen:"
835
            - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> will not appear on the patron self-registration screen:"
836
            - pref: PatronSelfRegistrationBorrowerUnwantedField
836
            - pref: PatronSelfRegistrationBorrowerUnwantedField
837
              class: multi
837
              type: modalselect
838
            - (separate columns with |)
838
              source: borrowers
839
        -
839
        -
840
            - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> will not appear on the patron self-modification screen:"
840
            - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> will not appear on the patron self-modification screen:"
841
            - pref: PatronSelfModificationBorrowerUnwantedField
841
            - pref: PatronSelfModificationBorrowerUnwantedField
842
              class: multi
842
              type: modalselect
843
            - (separate columns with |)
843
              source: borrowers
844
        -
844
        -
845
            - "Display the following additional instructions for patrons who self register via the OPAC ( HTML is allowed ):"
845
            - "Display the following additional instructions for patrons who self register via the OPAC ( HTML is allowed ):"
846
            - pref: PatronSelfRegistrationAdditionalInstructions
846
            - pref: PatronSelfRegistrationAdditionalInstructions
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref (-3 / +4 lines)
Lines 39-51 Patrons: Link Here
39
     -
39
     -
40
         - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> must be filled in on the patron entry screen:"
40
         - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> must be filled in on the patron entry screen:"
41
         - pref: BorrowerMandatoryField
41
         - pref: BorrowerMandatoryField
42
           class: multi
42
           type: modalselect
43
         - (separate columns with |)
43
           source: borrowers
44
         - "<strong>NOTE:</strong> If autoMemberNum is enabled, the system preference BorrowerMandatoryField must not contain the field cardnumber."
44
         - "<strong>NOTE:</strong> If autoMemberNum is enabled, the system preference BorrowerMandatoryField must not contain the field cardnumber."
45
     -
45
     -
46
         - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> will not appear on the patron entry screen:"
46
         - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> will not appear on the patron entry screen:"
47
         - pref: BorrowerUnwantedField
47
         - pref: BorrowerUnwantedField
48
           class: multi
48
           type: modalselect
49
           source: borrowers
49
         - (separate columns with |)
50
         - (separate columns with |)
50
     -
51
     -
51
         - "Guarantors can be the following of those they guarantee:"
52
         - "Guarantors can be the following of those they guarantee:"
(-)a/koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js (-2 / +60 lines)
Lines 1-4 Link Here
1
/* global KOHA MSG_MADE_CHANGES CodeMirror MSG_CLICK_TO_EXPAND MSG_CLICK_TO_COLLAPSE to_highlight search_jumped humanMsg MSG_NOTHING_TO_SAVE MSG_MODIFIED MSG_SAVING MSG_SAVED_PREFERENCE dataTablesDefaults */
1
/* global KOHA MSG_MADE_CHANGES CodeMirror MSG_CLICK_TO_EXPAND MSG_CLICK_TO_COLLAPSE to_highlight search_jumped humanMsg MSG_NOTHING_TO_SAVE MSG_MODIFIED MSG_SAVING MSG_SAVED_PREFERENCE dataTablesDefaults themelang */
2
// We can assume 'KOHA' exists, as we depend on KOHA.AJAX
2
// We can assume 'KOHA' exists, as we depend on KOHA.AJAX
3
3
4
KOHA.Preferences = {
4
KOHA.Preferences = {
Lines 206-209 $( document ).ready( function () { Link Here
206
            email: true
206
            email: true
207
        });
207
        });
208
    });
208
    });
209
210
211
    $(".modalselect").on("click", function(){
212
        var datasource = $(this).data("source");
213
        var pref_name = this.id.replace(/pref_/, '');
214
        var pref_value = this.value;
215
        var prefs = pref_value.split("|");
216
217
        $.getJSON( themelang + "/modules/admin/preferences/" + datasource + ".json", function( data ){
218
            var items = [];
219
            var checked = "";
220
            $.each( data, function( key, val ){
221
                if( prefs.indexOf( val ) >= 0 ){
222
                    checked = ' checked="checked" ';
223
                } else {
224
                    checked = "";
225
                }
226
                items.push('<label><input class="dbcolumn_selection" type="checkbox" id="' + key + '"' + checked + ' name="pref" value="' + val + '" /> ' + key + '</label>');
227
            });
228
            $("<div/>", {
229
                "class": "columns-2",
230
                html: items.join("")
231
            }).appendTo("#prefModalForm");
232
        });
233
        $("#saveModalPrefs").data("target", this.id );
234
        $("#prefModalLabel").text( pref_name );
235
        $("#prefModal").modal("show");
236
    });
237
238
    $("#saveModalPrefs").on("click", function(){
239
        var formfieldid = $("#" + $(this).data("target") );
240
        var prefs = [];
241
        $("#prefModal input[type='checkbox']").each(function(){
242
            if( $(this).prop("checked") ){
243
                prefs.push( this.value );
244
            }
245
        });
246
247
        formfieldid.val( prefs.join("|") )
248
            .addClass("modified");
249
        mark_modified.call( formfieldid );
250
        KOHA.Preferences.Save( formfieldid.closest("form") );
251
        $("#prefModal").modal("hide");
252
    });
253
254
    $("#prefModal").on("hide.bs.modal", function(){
255
        $("#prefModalLabel,#prefModalForm").html("");
256
        $("#saveModalPrefs").data("target", "" );
257
    });
258
259
    $("#select_all").on("click",function(e){
260
        e.preventDefault();
261
        $(".dbcolumn_selection").prop("checked", true);
262
    });
263
    $("#clear_all").on("click",function(e){
264
        e.preventDefault();
265
        $(".dbcolumn_selection").prop("checked", false);
266
    });
267
209
} );
268
} );
210
- 

Return to bug 22844