Commit 69f0e5be by Alexander Makarov

Merge pull request #2329 from tonydspaniard/1094-modal-generator-autocomplete-fix

1904 modal generator autocomplete fix
parents d438913e 333630ae
...@@ -5,6 +5,7 @@ Yii Framework 2 gii extension Change Log ...@@ -5,6 +5,7 @@ Yii Framework 2 gii extension Change Log
---------------------------- ----------------------------
- Bug #1405: fixed disambiguation of relation names generated by gii (qiangxue) - Bug #1405: fixed disambiguation of relation names generated by gii (qiangxue)
- Bug #1904: Fixed autocomplete to work with underscore inputs "_" (tonydspaniard)
- Bug #2298: Fixed the bug that Gii controller generator did not allow digit in the controller ID (qiangxue) - Bug #2298: Fixed the bug that Gii controller generator did not allow digit in the controller ID (qiangxue)
- Bug: fixed controller in crud template to avoid returning query in findModel() (cebe) - Bug: fixed controller in crud template to avoid returning query in findModel() (cebe)
- Enh #1624: generate rules for unique indexes (lucianobaraglia) - Enh #1624: generate rules for unique indexes (lucianobaraglia)
......
...@@ -71,6 +71,15 @@ yii.gii = (function ($) { ...@@ -71,6 +71,15 @@ yii.gii = (function ($) {
}; };
return { return {
autocomplete: function (counter, data) {
var datum = new Bloodhound({
datumTokenizer: function(d){return Bloodhound.tokenizers.whitespace(d.word);},
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: data
});
datum.initialize();
jQuery('.typeahead-'+counter).typeahead(null,{displayKey: 'word', source: datum.ttAdapter()});
},
init: function () { init: function () {
initHintBlocks(); initHintBlocks();
initStickyInputs(); initStickyInputs();
......
...@@ -63,7 +63,10 @@ class ActiveField extends \yii\widgets\ActiveField ...@@ -63,7 +63,10 @@ class ActiveField extends \yii\widgets\ActiveField
{ {
static $counter = 0; static $counter = 0;
$this->inputOptions['class'] .= ' typeahead-' . (++$counter); $this->inputOptions['class'] .= ' typeahead-' . (++$counter);
$this->form->getView()->registerJs("jQuery('.typeahead-{$counter}').typeahead({local: " . Json::encode($data) . "});"); foreach ($data as &$item) {
$item = array('word' => $item);
}
$this->form->getView()->registerJs("yii.gii.autocomplete($counter, " . Json::encode($data) . ");");
return $this; return $this;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment