From fadaa853507b89edeeb17cfa0bc0865d933d9223 Mon Sep 17 00:00:00 2001 From: Alexander Kochetov Date: Sun, 26 May 2013 00:59:05 +0400 Subject: [PATCH] jQuery UI autocomplete widget rework --- framework/yii/jui/AutoComplete.php | 38 ++++++-------------------------------- 1 file changed, 6 insertions(+), 32 deletions(-) diff --git a/framework/yii/jui/AutoComplete.php b/framework/yii/jui/AutoComplete.php index f5bbae9..44ca23d 100644 --- a/framework/yii/jui/AutoComplete.php +++ b/framework/yii/jui/AutoComplete.php @@ -8,8 +8,6 @@ namespace yii\jui; use Yii; -use yii\base\InvalidConfigException; -use yii\base\Model; use yii\helpers\Html; /** @@ -42,51 +40,27 @@ use yii\helpers\Html; * @author Alexander Kochetov * @since 2.0 */ -class AutoComplete extends Widget +class AutoComplete extends InputWidget { /** - * @var \yii\base\Model the data model that this widget is associated with. - */ - public $model; - /** - * @var string the model attribute that this widget is associated with. - */ - public $attribute; - /** - * @var string the input name. This must be set if [[model]] and [[attribute]] are not set. - */ - public $name; - /** - * @var string the input value. - */ - public $value; - - - /** * Renders the widget. */ public function run() { - echo $this->renderField(); + echo $this->renderWidget(); $this->registerWidget('autocomplete'); } /** - * Renders the AutoComplete field. If [[model]] has been specified then it will render an active field. - * If [[model]] is null or not from an [[Model]] instance, then the field will be rendered according to - * the [[name]] attribute. + * Renders the AutoComplete widget. * @return string the rendering result. - * @throws InvalidConfigException when none of the required attributes are set to render the textInput. - * That is, if [[model]] and [[attribute]] are not set, then [[name]] is required. */ - public function renderField() + public function renderWidget() { - if ($this->model instanceof Model && $this->attribute !== null) { + if ($this->hasModel()) { return Html::activeTextInput($this->model, $this->attribute, $this->options); - } elseif ($this->name !== null) { - return Html::textInput($this->name, $this->value, $this->options); } else { - throw new InvalidConfigException("Either 'name' or 'model' and 'attribute' properties must be specified."); + return Html::textInput($this->name, $this->value, $this->options); } } }