@@ -, +, @@ --- admin/preferences.pl | 6 +- .../prog/en/modules/admin/preferences.tt | 1 + .../prog/js/pages/preferences.js | 60 +++++++++---------- 3 files changed, 35 insertions(+), 32 deletions(-) --- a/admin/preferences.pl +++ a/admin/preferences.pl @@ -28,6 +28,7 @@ use C4::ClassSource qw( GetClassSources GetClassSource ); use C4::Output qw( output_html_with_http_headers ); use C4::Templates; use Koha::Acquisition::Currencies; +use Koha::Database::Columns; use IO::File; use YAML::XS; use Encode; @@ -401,6 +402,9 @@ if ( $tab ) { ); } -$template->param( TABS => \@TABS ); +$template->param( + TABS => \@TABS, + db_columns => Koha::Database::Columns->columns, +); output_html_with_http_headers $input, $cookie, $template->output; --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt @@ -282,6 +282,7 @@ // This is here because of its dependence on template variables, everything else should go in js/pages/preferences.js - jpw var to_highlight = "[% To.json( searchfield ) | $raw %]"; var search_jumped = [% IF ( search_jumped ) %]true[% ELSE %]false[% END %]; + var db_columns = [% To.json( db_columns ) | $raw %]; [% Asset.js("lib/jquery/plugins/humanmsg.js") | $raw %] [% Asset.js("js/ajax.js") | $raw %] --- a/koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js +++ a/koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js @@ -231,38 +231,36 @@ $( document ).ready( function () { var pref_value = this.value; var prefs = pref_value.split("|"); - - - $.getJSON( themelang + "/modules/admin/preferences/" + datasource + ".json", function( data ){ - var items = []; - var checked = ""; - var readonly = ""; - var disabled = ""; - var style = ""; - $.each( data, function( key, val ){ - if( prefs.indexOf( val ) >= 0 ){ - checked = ' checked="checked" '; - } else { - checked = ""; - } - if( required.indexOf( val ) >= 0 ){ - style = "required"; - checked = ' checked="checked" '; - } else if( exclusions.indexOf( val ) >= 0 ){ - style = "disabled"; - disabled = ' disabled="disabled" '; - checked = ""; - } else { - style = ""; - disabled = ""; - } - items.push(''); - }); - $("
", { - "class": "columns-2", - html: items.join("") - }).appendTo("#prefModalForm"); + let data = db_columns[datasource]; + var items = []; + var checked = ""; + var readonly = ""; + var disabled = ""; + var style = ""; + $.each( Object.keys(data).sort(), function( i, key ){ + if( prefs.indexOf( key ) >= 0 ){ + checked = ' checked="checked" '; + } else { + checked = ""; + } + if( required.indexOf( key ) >= 0 ){ + style = "required"; + checked = ' checked="checked" '; + } else if( exclusions.indexOf( key ) >= 0 ){ + style = "disabled"; + disabled = ' disabled="disabled" '; + checked = ""; + } else { + style = ""; + disabled = ""; + } + items.push(''); }); + $("
", { + "class": "columns-2", + html: items.join("") + }).appendTo("#prefModalForm"); + $("#saveModalPrefs").data("target", this.id ); $("#prefModalLabel").text( pref_name ); $("#prefModal").modal("show"); --