/** * Registers necessary client scripts. */ public function registerClientScript() { parent::registerClientScript(); $cs=Yii::app()->getClientScript(); $cs->registerScriptFile($this->baseJuiUrl.'/jquery.ui.core.min.js',CClientScript::POS_END); $cs->registerScriptFile($this->baseJuiUrl.'/jquery.ui.widget.min.js',CClientScript::POS_END); $cs->registerScriptFile($this->baseJuiUrl.'/jquery.ui.mouse.min.js',CClientScript::POS_END); $cs->registerScriptFile($this->baseJuiUrl.'/jquery.ui.droppable.min.js',CClientScript::POS_END); $cs->registerScriptFile($this->baseJuiUrl.'/jquery.ui.draggable.min.js',CClientScript::POS_END); $baseUrl = Y::curBaseUrl(); $cs->registerScript('draganddrop', ' $(document).ready(function() { $("#'.$this->getId().' tbody tr").live("mouseenter", function() { var $this = $(this); if($this.is(":data(draggable)")) return; $this.draggable({ helper: "clone", opacity: .75, refreshPositions: true, // Performance? revert: "invalid", revertDuration: 300, scroll: true }); }); $("#'.$this->getId().' tbody tr").live("mouseenter", function() { var $this = $(this); if ($this.is(":data(droppable)")) return; $(this).droppable({ drop: function(e, ui) { $("#'.$this->getId().'").addClass("grid-views-loading"); $.get( "'.$baseUrl.'/movePosition", { pk : $(ui.draggable).attr("id"), to : $(this).attr("id") }, function() { $.fn.yiiGridView.update("'.$this->getId().'"); } ); }, hoverClass: "accept", }); }); }); '); }