So You permitted
:
index.php
<?php
/* @var $this SiteController */
$this->pageTitle=Yii::app()->name;
?>
<?php
//--------------------- View Dialog Form --------------------------
$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>'deviceInfo',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Информация об оборудовании',
'autoOpen'=>false,
'modal'=>false,
'width'=>550,
'height'=>470,
'resizable'=>false,
'buttons'=>array(
'OK'=>'js:function(){$(this).dialog("close");}',
),
),
));
?>
<div id="id_view_device"></div>
<?$this->endWidget('zii.widgets.jui.CJuiDialog');?>
<?php //--------------------- End of View Dialog Form -------------------------- ?>
<?php
//--------------------- Edit Dialog Form --------------------------
$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>'deviceUpdate',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Информация об оборудовании',
'autoOpen'=>false,
'modal'=>false,
'width'=>570,
'height'=>560,
'resizable'=>false,
'buttons'=>array(
//'OK'=>'js:function(){$(this).dialog("close");}',
),
),
));
?>
<div class="id_update_device"></div>
<?$this->endWidget('zii.widgets.jui.CJuiDialog');?>
<?php //--------------------- End of Edit Dialog Form -------------------------- ?>
<?php
//--------------------- View Dialog Form --------------------------
$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>'portInfo',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Информация порта',
'autoOpen'=>false,
'modal'=>false,
'width'=>550,
'height'=>470,
'resizable'=>false,
'buttons'=>array(
'OK'=>'js:function(){$(this).dialog("close");}',
),
),
));
?>
<div id="id_view_port"></div>
<?$this->endWidget('zii.widgets.jui.CJuiDialog');?>
<?php //--------------------- End of View Dialog Form -------------------------- ?>
<?php
//--------------------- Edit Dialog Form --------------------------
$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>'portUpdate',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Информация порта',
'autoOpen'=>false,
'modal'=>false,
'width'=>550,
'height'=>470,
'resizable'=>false,
'buttons'=>array(
//'OK'=>'js:function(){$(this).dialog("close");}',
),
),
));
?>
<div class="id_update"></div>
<?$this->endWidget('zii.widgets.jui.CJuiDialog');?>
<?php //--------------------- End of Edit Dialog Form -------------------------- ?>
<div class='tree'>
<?php echo $this->renderPartial('/treeMenu/_tree'); ?>
</div>
<div class='mainarea'>
<b>Список оборудований</b>
<div class='notloading'></div>
<div class='device'>
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'fake-grid',
'dataProvider'=>new CArrayDataProvider(array()),
'columns'=>array(
),
'emptyText'=>'',
'selectableRows'=>1,
));
?>
</div>
<div id='ports'>
</div>
</div>
<br>
<script>
//$(function(){
$('.tree').on('click', 'a.tree_ajax_link', function(e, data){
e.preventDefault();
var url=$(this).attr('href')+'&ajax=1';
//alert(url);
$('#ports').empty();
$('.device').load(url);
});
//});
</script>
<?php
$updateJSDevice = CHtml::ajax( array(
'url' => "js:url",
'data' => "js:form.serialize() + action",
'type' => 'post',
'dataType' => 'json',
'success' => "function( data )
{
if( data.status == 'failure' )
{
$( '#deviceUpdate div.id_update_device' ).html( data.content );
$( '#deviceUpdate div.id_update_device form input[type=submit]' )
.die() // Stop from re-binding event handlers
.live( 'click', function( e ){ // Send clicked button value
e.preventDefault();
deviceUpdate( false, $( this ).attr( 'name' ) );
});
}
else
{
$( '#deviceUpdate div.id_update_device' ).html( data.content );
if( data.status == 'success' ) // Update all grid views on success
{
$( 'div.grid-view' ).each( function(){ // Change the selector if you use different class or element
$.fn.yiiGridView.update( $( this ).attr( 'id' ) );
});
}
setTimeout( \"$( '#deviceUpdate' ).dialog( 'close' ).children( ':eq(0)' ).empty();\", 1000 );
}
}"
));
?>
<?php
Yii::app()->clientScript->registerScript( 'deviceUpdate', "
function deviceUpdate( url, act )
{
var action = '';
var form = $( '#deviceUpdate div.id_update_device form' );
if( url == false )
{
action = '&action=' + act;
url = form.attr( 'action' );
}
{$updateJSDevice}
}" );
?>
<?php
$updateJSPort = CHtml::ajax( array(
'url' => "js:url",
'data' => "js:form.serialize() + action",
'type' => 'post',
'dataType' => 'json',
'success' => "function( data )
{
if( data.status == 'failure' )
{
$( '#portUpdate div.id_update' ).html( data.content );
$( '#portUpdate div.id_update form input[type=submit]' )
.die() // Stop from re-binding event handlers
.live( 'click', function( e ){ // Send clicked button value
e.preventDefault();
portUpdate( false, $( this ).attr( 'name' ) );
});
}
else
{
$( '#portUpdate div.id_update' ).html( data.content );
if( data.status == 'success' ) // Update all grid views on success
{
$( 'div.grid-view' ).each( function(){ // Change the selector if you use different class or element
$.fn.yiiGridView.update( $( this ).attr( 'id' ) );
});
}
setTimeout( \"$( '#portUpdate' ).dialog( 'close' ).children( ':eq(0)' ).empty();\", 1000 );
}
}"
));
?>
<?php
Yii::app()->clientScript->registerScript( 'portUpdate', "
function portUpdate( url, act )
{
var action = '';
var form = $( '#portUpdate div.id_update form' );
if( url == false )
{
action = '&action=' + act;
url = form.attr( 'action' );
}
{$updateJSPort}
}" );
?>
_viewbysite.php
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'device-grid',
'dataProvider'=>$model->search(),
'filter'=>null,
'selectableRows'=>1,
'columns'=>array(
//'id',
array(
'header'=>'#',
'value'=>'$this->grid->dataProvider->pagination->currentPage * $this->grid->dataProvider->pagination->pageSize + ($row+1)',
'htmlOptions'=>array('style'=>'text-align:center'),
),
'name',
'ip_address',
'type',
array(
'name'=>'id',
'type'=>'raw',
'value'=>'CHtml::hiddenField("id",$data->id)',
'htmlOptions'=>array('style'=>'display:none'),
'headerHtmlOptions'=>array('style'=>'display:none'),
),
array(
'class'=>'CButtonColumn',
'deleteConfirmation'=>'При удаление оборудования, все связанные порты так же будут удалены. Вы действительно хотиде удалить оборудование?',
//--------------------- begin added --------------------------
'buttons'=>array(
'view'=>
array(
'url'=>'Yii::app()->createUrl("site/viewDevice", array("id"=>$data->id,"asDialog"=>true))',
'options'=>array(
'id'=>'viewDevice',
'ajax'=>array(
'type'=>'POST',
// ajax post will use 'url' specified above
'url'=>"js:$(this).attr('href')",
'update'=>'#id_view_device',
),
),
),
'update'=>
array(
'url'=>'Yii::app()->createUrl("site/updateDevice", array("id"=>$data->id))',
'options'=>array(
'id'=>'updateDevice',
),
'click' => "function( e ){
e.preventDefault();
$( '#deviceUpdate' ).children( ':eq(0)' ).empty(); // Stop auto POST
deviceUpdate( $( this ).attr( 'href' ) );
$( '#deviceUpdate' ).dialog( 'open' );
}"
),
'delete'=>
array(
'url'=>'Yii::app()->createUrl("site/deleteDevice", array("id"=>$data->id))',
'options'=>array(
'id'=>'deleteDevice',
),
),
),
//--------------------- end added --------------------------
),
),
'emptyText'=>'На этом узле нет никаких оборудований',
'selectionChanged'=>'js:function(id){
n = $.fn.yiiGridView.getSelection(id);
if (n>0){
//alert(n);
$.ajax({
url: "'.Yii::app()->urlManager->createUrl('site/showPorts').'",
type: "GET",
data: {"id": parseInt(n)},
dataType: "html",
success: function(data) {
//$(".device").empty();
$(".device").html(data);
}
})
}
}',
'hideHeader'=>false,
));
?>
<?php
echo CHtml::ajaxLink('Добавить оборудование',array('site/createDevice', 'l_id'=>$model->location_id, ), array('update'=>'.device'), array('id'=>'addDevice', 'live'=>false));
?>
showports.php
<?php
/* @var $this PortController */
/* @var $model Port */
$this->breadcrumbs=array(
'Ports'=>array('index'),
'Manage',
);
?>
<!--<h1>Manage Ports</h1>-->
<?php echo CHtml::ajaxLink($model->portLocation, array('site/showDevices', 'l_id'=>$model->device->location_id,), array('update'=>'.device'), array('id'=>'showDevices','live'=>false)).'->'.$model->deviceName?>
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'port-grid',
'dataProvider'=>$model->search(),
'template'=>'{pager}{items}{pager}',
'filter'=>null,
'columns'=>array(
array(
'header'=>'#',
'value'=>'$this->grid->dataProvider->pagination->currentPage * $this->grid->dataProvider->pagination->pageSize + ($row+1)',
'htmlOptions'=>array('style'=>'text-align:center;width:15px'),
),
array(
'name'=>'index_number',
'header'=>'#',
'htmlOptions'=>array('style'=>'text-align:center;width:15px'),
'visible'=>$model->isComplexIndex(),
),
'subscriber',
'subscriber_network',
'subscriber_ip',
array(
'class'=>'CButtonColumn',
//--------------------- begin added --------------------------
'buttons'=>array(
'view'=>
array(
'url'=>'Yii::app()->createUrl("site/viewPort", array("id"=>$data->id, "asDialog"=>true, "index"=>$this->grid->dataProvider->pagination->currentPage * $this->grid->dataProvider->pagination->pageSize + ($row+1)))',
'options'=>array(
'id'=>'viewPort',
'ajax'=>array(
'type'=>'POST',
// ajax post will use 'url' specified above
'url'=>"js:$(this).attr('href')",
'update'=>'#id_view_port',
),
),
),
'update' =>
array(
'url'=>'Yii::app()->createUrl("site/updatePort", array("id"=>$data->id, "index"=>$this->grid->dataProvider->pagination->currentPage * $this->grid->dataProvider->pagination->pageSize + ($row+1)))',
'options'=>array(
'id'=>'updatePort'
),
'click' => "function( e ){
e.preventDefault();
$( '#portUpdate' ).children( ':eq(0)' ).empty(); // Stop auto POST
portUpdate( $( this ).attr( 'href' ) );
$( '#portUpdate' ).dialog( 'open' ); }",
),
'delete' =>
array(
'visible'=> '0',
),
),
//--------------------- end added --------------------------
),
),
'selectableRows'=>1,
)); ?>
<?php
echo CHtml::ajaxLink('Добавить порты',array('site/addports', 'd_id'=>$model->device_id, ), array('beforeSend' => 'function(){$(".notloading").addClass("loading2");}', 'complete' => 'function(){$(".notloading").removeClass("loading2");}', 'update'=>'.device'), array('id'=>'addports'));
?>