Sv.js 7.93 KB


function renderercell(value, metaData, record, row, col, store, gridView) {
	return '<div style="font-size: 14px; color:#3892d3;  text-align:center;">'+value+'</div>';	
}


function rendererstatusimg(value, metaData, record, rowIndex, colIndex, store) {
    if(value) {
    //	return '<div style="font-size: 14px; color:#3892d3;  text-align:center;">'+'Запущен'+'</div>';	
    return	'<span><img src="resources/img/up.png" height="18" width="18"/> </span>';
    }else {
    	 return	'<span><img src="resources/img/down.png" height="18" width="18"/> </span>'; 
    }
 }

function rendererstatustitle(value, metaData, record, rowIndex, colIndex, store) {
    if(value) {
    	return '<div style="font-size: 14px; color:#3892d3;  text-align:center;">'+'Запущен'+'</div>';	
 
         }else {
     	return '<div style="font-size: 14px; color:#3892d3;  text-align:center;">'+'Остановлен'+'</div>';	 
    }
 }

Ext.define('App.view.Sv', {
    extend : 'Ext.grid.Panel',
    xtype  : 'mvvm-SvView',
    title : 'Управление службами',
    store : 'Sv',
    bbar: {
    	    items: [ 
    			          {
    			                xtype: 'button',
    			                iconCls:'load',
    			                itemId: 'LoadSvButton',
    			                text: 'Обновить',
    			                action: 'loadSv',
    			                disabled:false
    			            }
    	            ]
    	    		},		
    		  
          	 selType: 'rowmodel',
             plugins: [new 	Ext.create('Ext.grid.plugin.RowEditing', {
                    	   		clicksToEdit: 2,
                    	   		pluginId: 'modelSvEditPlagin'
                       	})
             ],
             columns: [{ 
				            text      : '№',  
				            dataIndex : 'id', 
				            width: 50,
				            hidden:true
             			},
             			
             			
             		      { 
				            text      : 'Статус', 
				            dataIndex : 'isrun', 
				            width      : 100,
				            renderer:rendererstatusimg,
				           // editor: new Ext.form.TextField({
				            //	allowBlank: true
				           // })
				       },
             			
             			
				       { 
				            text      : 'Процесс', 
				            dataIndex : 'process', 
				            width      : 150,
				            renderer:renderercell,
				           // editor: new Ext.form.TextField({
				          //  	allowBlank: true
				           // })
				       },
				       
				       { 
				            text      : 'Примечание', 
				            dataIndex : 'isrun', 
				            width      : 170,
				            renderer:rendererstatustitle,
				           // editor: new Ext.form.TextField({
				            	allowBlank: true
				           // })
				       },
				       
				       { 
				            text      : 'Автозагрузка', 
				            dataIndex : 'autostart', 
				            width      : 100,
				            xtype: 'checkcolumn',
				            hidden:true
				       },
				       
				       {
				            xtype:'actioncolumn', 
				            width:170,
				              items: [{
				                icon: 'resources/img/start.png',  
				                tooltip: 'Запустить',
				                handler: function(grid, rowIndex, colIndex) {
				                   var rec = grid.getStore().getAt(rowIndex);
				                   var data=Ext.util.JSON.encode(rec.data);
					               
				                   grid.mask("Запуск...");
				                   
					               Ext.Ajax.request({
					               	  method: "POST",
					                     url: 'api/sv/start',
					                     timeout: 60000,
					                     headers: {
					                         'Accept': 'application/json',
					                         'Content-Type': 'application/json'
					                     },
					                     params:data,
					                     success: function(response, opts) {
					                  
					                    	 grid.unmask();
					                    	 
					                      	 grid.store.load();
					                    	 grid.getView().refresh();
					                    	 
					                    	 var result = Ext.JSON.decode(response.responseText);
					                    	 
					                    	 
					                    	 Ext.Msg.alert(result.type+" "+"Код-"+result.code,result.message);
					                     	 
					                     }, failure: function(response, opts) {
					                    	 grid.unmask();
					                    	  Ext.Msg.alert('Failure', 'Ошибка соединения');
					                     }
					                });
				                   
				                }
				            },{
				                icon: 'resources/img/stop.png',
				                tooltip: 'Остановить',
				                handler: function(grid, rowIndex, colIndex) {
				                	  var rec = grid.getStore().getAt(rowIndex);
					                   var data=Ext.util.JSON.encode(rec.data);
						               grid.mask("Остановка...");
					                   Ext.Ajax.request({
						               	  method: "POST",
						                     url: 'api/sv/stop',
						                     timeout: 60000,
						                     headers: {
						                         'Accept': 'application/json',
						                         'Content-Type': 'application/json'
						                     },
						                     params:data,
						                     success: function(response, opts) {
						                  	 grid.unmask();
						                      	 grid.store.load();
						                    	 grid.getView().refresh();
						                    	 var result = Ext.JSON.decode(response.responseText);
						                    	 Ext.Msg.alert(result.type+" "+"Код-"+result.code,result.message);
						                     }, failure: function(response, opts) {
						                    	 grid.unmask();
						                    	  Ext.Msg.alert('Failure', 'Ошибка соединения');
						                     }
						                });
				                }                
				            },
				            {
				                icon: 'resources/img/replay.png',
				                tooltip: 'Перезапустить',
				                handler: function(grid, rowIndex, colIndex) {
				                	  var rec = grid.getStore().getAt(rowIndex);
				                	  
				                	
					                   var data=Ext.util.JSON.encode(rec.data);
					                   console.log(data);
					                   grid.mask("Перезапуск...");
					                   
						               Ext.Ajax.request({
						               	  method: "POST",
						                     url: 'api/sv/restart',
						                     timeout: 60000,
						                     headers: {
						                         'Accept': 'application/json',
						                         'Content-Type': 'application/json'
						                     },
						                     params:data,
						                     success: function(response, opts) {
						                    	 grid.unmask();
						                    	 grid.store.load();
						                    	 grid.getView().refresh();
						                    	 
						                    	 var result = Ext.JSON.decode(response.responseText);
						                    	 
						                    	 Ext.Msg.alert(result.type+" "+"Код-"+result.code,result.message);
						                     	 
						                     }, failure: function(response, opts) {
						                    	 grid.unmask();
						                    	  Ext.Msg.alert('Failure', 'Ошибка соединения');
						                     }
						                });
				                }                
				            }
				            
				            ]
				        }
		
      		  ]
});