|  |  |  | @ -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 <creocoder@gmail.com> | 
			
		
	
		
			
				
					|  |  |  |  |  * @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); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |