Skip to content
Snippets Groups Projects
Commit 1f3f25b4 authored by c10266's avatar c10266
Browse files

OPENOLAT-358: added inputClear and inputReadonly options to autocomplete controller

parent 60c90065
No related branches found
No related tags found
No related merge requests found
...@@ -114,6 +114,8 @@ public class AutoCompleterController extends BasicController { ...@@ -114,6 +114,8 @@ public class AutoCompleterController extends BasicController {
myContent.contextPut("inputWidth", Integer.valueOf(inputWidth)); myContent.contextPut("inputWidth", Integer.valueOf(inputWidth));
myContent.contextPut("minChars", Integer.valueOf(minChars)); myContent.contextPut("minChars", Integer.valueOf(minChars));
myContent.contextPut("inputValue", ""); myContent.contextPut("inputValue", "");
myContent.contextPut("inputClear", Boolean.FALSE);
myContent.contextPut("inputReadonly", Boolean.FALSE);
// Create a mapper for the server responses for a given input // Create a mapper for the server responses for a given input
mapper = new AutoCompleterMapper(noResults, showDisplayKey, gprovider); mapper = new AutoCompleterMapper(noResults, showDisplayKey, gprovider);
......
...@@ -157,6 +157,8 @@ public class FlexiAutoCompleterController extends FormBasicController { ...@@ -157,6 +157,8 @@ public class FlexiAutoCompleterController extends FormBasicController {
layoutCont.contextPut("minChars", Integer.valueOf(minChars)); layoutCont.contextPut("minChars", Integer.valueOf(minChars));
layoutCont.contextPut("flexi", Boolean.TRUE); layoutCont.contextPut("flexi", Boolean.TRUE);
layoutCont.contextPut("inputValue", ""); layoutCont.contextPut("inputValue", "");
layoutCont.contextPut("inputClear", Boolean.FALSE);
layoutCont.contextPut("inputReadonly", Boolean.FALSE);
layoutCont.getComponent().addListener(this); layoutCont.getComponent().addListener(this);
// Create a mapper for the server responses for a given input // Create a mapper for the server responses for a given input
...@@ -186,8 +188,10 @@ public class FlexiAutoCompleterController extends FormBasicController { ...@@ -186,8 +188,10 @@ public class FlexiAutoCompleterController extends FormBasicController {
if (event.getCommand().equals(COMMAND_SELECT)) { if (event.getCommand().equals(COMMAND_SELECT)) {
doSelect(ureq); doSelect(ureq);
} else if (event.getCommand().equals(COMMAND_CHANGE)) { } else if (event.getCommand().equals(COMMAND_CHANGE)) {
flc.contextPut("inputReadonly", Boolean.FALSE);
flc.contextPut("inputClear", Boolean.FALSE);
if(allowNewValues) { if(allowNewValues) {
fireEvent(ureq, new NewValueChosenEvent(value)); fireEvent(ureq, new NewValueChosenEvent(value));
} else { } else {
super.event(ureq, source, event); super.event(ureq, source, event);
} }
...@@ -235,7 +239,11 @@ public class FlexiAutoCompleterController extends FormBasicController { ...@@ -235,7 +239,11 @@ public class FlexiAutoCompleterController extends FormBasicController {
if (!key.equals("") && !key.equals(AUTOCOMPLETER_NO_RESULT)) { if (!key.equals("") && !key.equals(AUTOCOMPLETER_NO_RESULT)) {
// Normal case, add entry // Normal case, add entry
selectedEntries.add(key); selectedEntries.add(key);
flc.contextPut("inputReadonly", Boolean.TRUE);
flc.contextPut("inputClear", Boolean.TRUE);
} else if (key.equals(AUTOCOMPLETER_NO_RESULT)) { } else if (key.equals(AUTOCOMPLETER_NO_RESULT)) {
flc.contextPut("inputReadonly", Boolean.FALSE);
flc.contextPut("inputClear", Boolean.FALSE);
return; return;
} }
doFireSelection(ureq, selectedEntries); doFireSelection(ureq, selectedEntries);
......
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
$autocompleter_label $autocompleter_label
#end #end
<div class="$formElementClass"> <div class="$formElementClass">
<input type="text" size="$inputWidth" value="$inputValue" class="form-control" name='$r.getId("o_autocomplete_input")' id='$r.getId("o_autocomplete_input")' /> <input type="text" size="$inputWidth" #if($inputReadonly)readonly="true"#{end} value="$inputValue" class="form-control" name='$r.getId("o_autocomplete_input")' id='$r.getId("o_autocomplete_input")' />
<i id='$r.getId("o_autocomplete_input")_remove' class="#if(!$inputClear)hidden #{end}o_icon o_icon-fw o_icon_remove"></i>
</div> </div>
#if($flexi) #if($flexi)
</div> </div>
...@@ -62,7 +63,9 @@ jQuery(function(){ ...@@ -62,7 +63,9 @@ jQuery(function(){
}).on('typeahead:render', function (e) { }).on('typeahead:render', function (e) {
// disabled and error items should not be selectable // disabled and error items should not be selectable
jQuery("div.o_disabled.tt-selectable, div.o_icon_error.tt-selectable").removeClass("tt-selectable"); jQuery("div.o_disabled.tt-selectable, div.o_icon_error.tt-selectable").removeClass("tt-selectable");
}).on('typeahead:selected', function (e, object) { }).on('typeahead:selected', function (e, object) {
jQuery('#$r.getId("o_autocomplete_input")').attr('readonly', true);
jQuery('#$r.getId("o_autocomplete_input")_remove').removeClass('hidden');
$r.openJavaScriptCommand("select"),'key',object.value, $r.openJavaScriptCommand("select"),'key',object.value,
'$r.getId("o_autocomplete_input")',jQuery('#$r.getId("o_autocomplete_input")').val()); '$r.getId("o_autocomplete_input")',jQuery('#$r.getId("o_autocomplete_input")').val());
}).on('typeahead:change', function(e, value) { }).on('typeahead:change', function(e, value) {
...@@ -77,6 +80,13 @@ jQuery(function(){ ...@@ -77,6 +80,13 @@ jQuery(function(){
return false; return false;
} }
}); });
jQuery('#$r.getId("o_autocomplete_input")_remove').on('click', function(e) {
jQuery('#$r.getId("o_autocomplete_input")').val('');
jQuery('#$r.getId("o_autocomplete_input")').attr('readonly', false);
jQuery('#$r.getId("o_autocomplete_input")_remove').addClass('hidden');
$r.openJavaScriptCommand("change"),'key','',
'$r.getId("o_autocomplete_input")','');
});
}); });
/* ]]> */ /* ]]> */
</script> </script>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment