@@ -, +, @@
---
admin/preferences.pl | 17 +++++++++++------
.../intranet-tmpl/prog/css/preferences.css | 9 ++++++---
.../prog/en/modules/admin/preferences.tt | 2 ++
.../intranet-tmpl/prog/js/pages/preferences.js | 4 ++++
4 files changed, 23 insertions(+), 9 deletions(-)
--- a/admin/preferences.pl
+++ a/admin/preferences.pl
@@ -59,12 +59,17 @@ sub _get_chunk {
if( $options{'syntax'} ){
$chunk->{'syntax'} = $options{'syntax'};
}
-
- if( $options{'type'} && $options{'type'} eq 'modalselect' ){
- $chunk->{'source'} = $options{'source'};
- $chunk->{'exclusions'} = $options{'exclusions'} // "";
- $chunk->{'required'} = $options{'required'} // "";
- $chunk->{'type'} = 'modalselect';
+ if( $options{'type'} ) {
+ if( $options{'type'} eq 'modalselect' ){
+ $chunk->{'source'} = $options{'source'};
+ $chunk->{'exclusions'} = $options{'exclusions'} // "";
+ $chunk->{'required'} = $options{'required'} // "";
+ $chunk->{'type'} = 'modalselect';
+ } elsif( $options{'type'} eq 'modaljs' ){
+ $chunk->{'type'} = 'modaljs';
+ $chunk->{'initiator'} = $options{'initiator'};
+ $chunk->{'processor'} = $options{'processor'};
+ }
}
if ( $options{'class'} && $options{'class'} eq 'password' ) {
--- a/koha-tmpl/intranet-tmpl/prog/css/preferences.css
+++ a/koha-tmpl/intranet-tmpl/prog/css/preferences.css
@@ -3,7 +3,8 @@
.preference-multi,
.preference-long,
.preference-file,
-.preference-modalselect {
+.preference-modalselect,
+.preference-modaljs {
width: 20em;
}
@@ -15,11 +16,13 @@
width: 5em;
}
-input[type="text"].modalselect {
+input[type="text"].modalselect,
+input[type="text"].modaljs {
cursor: pointer;
}
-input[type="text"].modalselect:hover {
+input[type="text"].modalselect:hover,
+input[type="text"].modaljs:hover {
background-color: #FFC;
}
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt
@@ -131,6 +131,8 @@
[% ELSIF ( CHUNK.type_modalselect ) %]
+ [% ELSIF ( CHUNK.type_modaljs ) %]
+
[% ELSIF ( CHUNK.type_multiple ) %]