jQuery( document ).ready( function( $ ) {
var last_selected, subgrid_lastsel;
var base_url = acm_url;
var grid_selector = jQuery("#acm-codes-list"); //avoid unnecessary selector calls
var subgrid_selector = jQuery( '#acm-codes-conditionals-list' );
// this is ghetto
var actions = {
codes_datasource: ajaxurl + '?acm-action=datasource&action=acm_ajax_handler&nonce=' + acm_ajax_nonce,
codes_edit: ajaxurl + '?acm-action=edit&action=acm_ajax_handler&nonce=' + acm_ajax_nonce,
conditionals_datasource: ajaxurl + '?acm-action=datasource-conditionals&action=acm_ajax_handler&nonce=' + acm_ajax_nonce,
conditionals_edit: ajaxurl + '?acm-action=edit-conditionals&action=acm_ajax_handler&nonce=' + acm_ajax_nonce
};
var conditionals_options = acm_conditionals;
grid_selector.jqGrid({
datatype: "json",
url: actions.codes_datasource,
editurl: actions.codes_edit,
height: 400,
width: 600,
colNames:['Id','Site Name', 'Zone1', 'Actions'],
colModel:[
{name:'id',index:'id', width:60, sorttype:"int"},
{name:'site_name',index:'site_name', width:200, editable: true, edittype:'text'},
{name:'zone1',index:'zone1', width:100, editable: true},
{name:'act',index:'act', width:125,sortable:false, align: 'center'},
],
prmNames:{ page: 'acm-grid-page' },
rowNum:10,
rowList:[10,20,30],
pager: '#acm-codes-pager',
sortname: 'id',
viewrecords: true,
sortorder: "desc",
caption:"Ad Codes",
jsonReader : { repeatitems: false }, // workaround for jqGrid issue
gridComplete: function(){
var ids = grid_selector.jqGrid( 'getDataIDs' );
for(var i=0;i < ids.length;i++){
var cl = ids[i];
be = "";
se = "";
grid_selector.jqGrid( 'setRowData',ids[i],{act:be+se});
}
},
onSelectRow: function(ids) {
if(ids == null) {
ids=0;
if(subgrid_selector.jqGrid( 'getGridParam','records' ) >0 )
{
subgrid_selector.jqGrid( 'setGridParam',{ url:actions.conditionals_datasource + "&id="+ids, page:1, editurl: actions.conditionals_edit + "&id="+ids } );
subgrid_selector.jqGrid( 'setCaption',"Conditionals for Ad Code #: "+ids)
.trigger( 'reloadGrid' );
}
} else {
subgrid_selector.jqGrid( 'setGridParam',{ url:actions.conditionals_datasource + "&id="+ids, page:1, editurl: actions.conditionals_edit + "&id="+ids } );
subgrid_selector.jqGrid( 'setCaption',"Conditionals for Ad Code # "+ids)
.trigger( 'reloadGrid' );
}
}
});
grid_selector.jqGrid( 'navGrid','#acm-codes-pager',{edit:true,add:true,del:true});
subgrid_selector.jqGrid({
height: 100,
url: actions.conditionals_datasource,
editurl: actions.conditionals_edit,
prmNames:{ page: 'acm-grid-page' },
datatype: "json",
colNames:['Conditional', 'Value'],
colModel:[
{name:'function',index:'function', width:180, editable: true, edittype: 'select', editoptions: {value: conditionals_options}},
{name:'arguments',index:'arguments', width:80, align:"left", editable: true, edittype: 'text'},
],
onSelectRow: function(id){
if(id && id!==subgrid_lastsel){
subgrid_selector.jqGrid('restoreRow',subgrid_lastsel);
subgrid_selector.jqGrid('editRow',id,true);
subgrid_lastsel=id;
}},
rowNum:5,
rowList:[5,10,20,50,100],
pager: '#acm-codes-conditionals-pager',
sortname: 'item',
jsonReader : { repeatitems: false }, // workaround for jqGrid issue
viewrecords: true,
sortorder: "asc",
multiselect: true,
caption:"Conditionals for Ad Code"
}).navGrid( '#acm-codes-conditionals-pager',{ add:true,edit:true,del:true } );
} );