/* * Globle variable * */ var XcatmonTableId="XcatMonsettingTable"; var dataTables=new Object(); /* * set datatable * */ function setDatatable(id,obj){ dataTables[id]=obj; } /* * get datatable from the given id * * */ function getDatatable(id){ return dataTables[id]; } /* * * */ function loadXcatMon(){ //find the xcat mon tab var xcatMonTab = $('#xcatmon'); xcatMonTab.append("
"); // show the content of the table monsetting $.ajax({ url:'lib/cmd.php', dataType: 'json', data:{ cmd : 'tabdump', tgt :'', args : 'monsetting', msg : '' }, success: loadXcatMonSetting }); } function loadXcatMonSetting(data){ var apps;// contain the xcatmon apps config var rsp=data.rsp; var apps_flag=0;// Is the apps is stored? var ping; // contain the xcatmon ping-interval setting var ping_flag=0; //create a infoBar var infoBar=createInfoBar('Click on a cell to edit,Click outside the table to write to the cell.
Once you finish the xCATmon config.click on Apply.'); $('#xcatmonTable').append(infoBar); //create xcatmonTable var XcatmonTable= new DataTable(XcatmonTableId); //create Datatable var dTable; // create the xcatmonTable header var header=rsp[0].split(","); header.splice(3,2); header.splice(0,1); header[0]="apps name"; header[1]="configure"; header.push(''); header.unshift(''); XcatmonTable.init(header);//create the table header // create container of original table contents var origCont= new Array(); origCont[0]=header;// table header //create contariner for new contents use for update the monsetting table var newCont =new Object(); newCont[0]=rsp[0].split(",");// table header // create container for other monsetting lines not xcatmon var otherCont =new Array(); $('#xcatmonTable').append(XcatmonTable.object());// add table object var m=1;// the count for origCont var n=0; for( var i=1;i'); cols.unshift(''); //add teh column tho the table. XcatmonTable.add(cols); origCont[m++]=cols; }else{ if(!apps_flag){//check the apps setting if(rsp[i].indexOf("apps") > -1){// check for is apps or not apps=rsp[i].split(',');// for(var j=0;j -1){ ping=rsp[i].split(','); // pair the semicolon for(var j=0;j'); } } } $(":checkbox").tooltip(); /* $(':checkbox').hover( function(){ $(this).append($("***")); }, function(){ $(this).find("span:last").remove(); } ); */ //make the table editable $('#'+XcatmonTableId+' td:not(td:nth-child(1),td:last-child)').editable( function(value,settings){ var colPos=this.cellIndex; var rowPos=dTable.fnGetPosition(this.parentNode); dTable.fnUpdate(value,rowPos,colPos); return (value); },{ onblur : 'submit', type : 'textarea', placeholder: ' ', height : '30px' } ); //save the datatable dTable=$('#'+XcatmonTableId).dataTable(); // set the datatable to the global variables datatables setDatatable(XcatmonTableId,dTable); //create button bar var addBar = $('
'); $('#xcatmon').append(addBar); // create the button add row var addRowBtn=createButton('Add row'); // add the button to the page addBar.append(addRowBtn); // create the button apply var ApplyBtn=createButton('Apply'); // add the apply button to the page addBar.append(ApplyBtn); // create the button Cancel var CancelBtn=createButton('Cancel'); // add the cancel to the page addBar.append(CancelBtn); // button click function //create a empty row addRowBtn.bind('click',function(event){ // create the container of the new row var row = new Array(); // add the delete button to the row row.push(''); // add the xcatmon // add the contain of the setting for(var i =0;i'); // get the datatable of the table var dTable=getDatatable(XcatmonTableId); // add the new row to the datatable dTable.fnAddData(row); // make the datatable editable $(":checkbox[title]").tooltip(); $('#'+XcatmonTableId+' td:not(td:nth-child(1),td:last-child)').editable( function(value,settings){ var colPos=this.cellIndex; var rowPos=dTable.fnGetPosition(this.parentNode); dTable.fnUpdate(value,rowPos,colPos); return (value); },{ onblur : 'submit', type : 'textarea', placeholder: ' ', height : '30px' } ); }); /* * apply button * * * * The Apply button is used to store the contain of the table in the page to the monsetting table * on the MN. * */ ApplyBtn.bind('click',function(event){ // get the datatable of the page var dTable=getDatatable(XcatmonTableId); // get the rows of the datatable var dRows=dTable.fnGetNodes(); var count=0; // create the new container of the apps' value. var appValue=""; var tableName="monsetting"; var tmp; var tmp1; // get the contain of the rows for (var i =0; i< dRows.length;i++){ if(dRows[i]){ // get the columns fo the row var cols=dRows[i].childNodes; // create the container of the new column var vals = new Array(); for(var j=1;j'); }else{ vals_orig.push(''); } // push the delete button to the row vals_orig.unshift(''); // add the row to the orignCont origCont[i+1]=vals_orig; //tmp1=origCont; //tmp=newCont; count=i+1; // check the checkbox fo everyrow for merging the appName to the apps values if(cols.item(cols.length-1).firstChild.checked){ // the new value for the apps.get the name fo every app. appValue=appValue.concat(cols.item(2).firstChild.nodeValue+","); } } } count++; // delete the last "," of the apps value appValue=appValue.substring(0,(appValue.length-1)); apps[2]=appValue; // tmp =apps; // newCont add the apps row newCont[count++]=apps; // newCont add the ping-interval row newCont[count++]=ping; //tmp=otherCont; // add the other monitor setting of the mosetting for(var j=0;j