mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 03:12:30 +00:00 
			
		
		
		
	git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@4758 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			225 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			225 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
 | |
| 
 | |
| jQuery.fn.customInput = function(){//from http://www.filamentgroup.com/examples/customInput/customInput.jquery.js
 | |
| 	$(this).each(function(i){
 | |
| 		if($(this).is('[type=checkbox],[type=radio]')){
 | |
| 			var input = $(this);
 | |
| 
 | |
| 			// get the associated label using the input's id
 | |
| 			var label = $('label[for='+input.attr('id')+']');
 | |
| 
 | |
| 			//get type, for classname suffix
 | |
| 			var inputType = (input.is('[type=checkbox]')) ? 'checkbox' : 'radio';
 | |
| 
 | |
| 			// wrap the input + label in a div
 | |
| 			$('<div class="custom-'+ inputType +'"></div>').insertBefore(input).append(input, label);
 | |
| 
 | |
| 			// find all inputs in this set using the shared name attribute
 | |
| 			var allInputs = $('input[name='+input.attr('name')+']');
 | |
| 
 | |
| 			// necessary for browsers that don't support the :hover pseudo class on labels
 | |
| 			label.hover(
 | |
| 				function(){
 | |
| 					$(this).addClass('hover');
 | |
| 					if(inputType == 'checkbox' && input.is(':checked')){
 | |
| 						$(this).addClass('checkedHover');
 | |
| 					}
 | |
| 				},
 | |
| 				function(){$(this).removeClass('hover checkedHover');}
 | |
| 			);
 | |
| 
 | |
| 			//bind custom event, trigger it, bind click,focus,blur events
 | |
| 			input.bind('updateState', function(){
 | |
| 				if (input.is(':checked')) {
 | |
| 					if (input.is(':radio')) {
 | |
| 						allInputs.each(function(){
 | |
| 							$('label[for='+$(this).attr('id')+']').removeClass('checked');
 | |
| 						});
 | |
| 					};
 | |
| 					label.addClass('checked');
 | |
| 				}
 | |
| 				else {label.removeClass('checked checkedHover checkedFocus');}
 | |
| 
 | |
| 			})
 | |
| 			.trigger('updateState')
 | |
| 			.click(function(){
 | |
| 				$(this).trigger('updateState');
 | |
| 			})
 | |
| 			.focus(function(){
 | |
| 				label.addClass('focus');
 | |
| 				if(inputType == 'checkbox' && input.is(':checked')){
 | |
| 					$(this).addClass('checkedFocus');
 | |
| 				}
 | |
| 			})
 | |
| 			.blur(function(){label.removeClass('focus checkedFocus');});
 | |
| 		}
 | |
| 	});
 | |
| };
 | |
| 
 | |
| function monPluginSetStat()
 | |
| {
 | |
|     $('.fg-button:not(.ui-state-disabled)')
 | |
|     .hover(
 | |
|         function() {
 | |
|             $(this).addClass('ui-state-hover');
 | |
|         },
 | |
|         function() {
 | |
|             $(this).removeClass('ui-state-hover');
 | |
|         }
 | |
|     )
 | |
|     .click(
 | |
|         function() {
 | |
| //            if($(this).hasClass("ui-state-active")) {
 | |
|                 var plugin=$('.pluginstat.ui-state-active').attr('id');
 | |
|                 var todo = $(this).html();
 | |
|                 //$("#settings").tabs('select',2);
 | |
|                 //for the noderange, we have to check the <div> with id "nrtree-input", and also the 'custom-nr' textarea
 | |
|                 var value = "";
 | |
|                 //we check the textarea firstly,
 | |
|                 value = $("#custom-nr").val();
 | |
|                 //then, if the textarea is empty, we have to get the selection from nrtree
 | |
|                 if(!value) {
 | |
|                     var i=0;
 | |
|                     var node_selected = nrtree.selected_arr;
 | |
|                     for(; i< node_selected.length; i++) {
 | |
|                         value += node_selected[i].attr('id');
 | |
|                     }
 | |
|                     //remove the "," at the front
 | |
|                     value = value.substr(1);
 | |
|                 }
 | |
|                 //get the value for "node status monitoring"
 | |
| 
 | |
|                 //$("#feedback").html(value); //used for debug
 | |
|                 if(value == "") {value="all";}
 | |
|                 $.post("monitor/setup.php",{name:plugin,action:todo,nm:$("#stat1 form fieldset input:checked").attr('value'),nr:value},function(data) {
 | |
|                     if(data=='successful') {
 | |
|                         //update the status of the selected plugin
 | |
|                         //reload the tabs for enable/disable
 | |
|                         var tmp = $("#"+plugin).children();
 | |
|                         $.get("monitor/options.php",{name:plugin,opt:"status"},function(stat){
 | |
|                             if(stat == "Disabled") {
 | |
|                                 $(tmp[1]).html(plugin+"<br>"+stat);
 | |
|                                 $(tmp[0].firstChild).removeClass("ui-icon-circle-check").addClass("ui-icon-circle-close");
 | |
|                                 $("#settings").tabs('url',3,'monitor/options.php?name='+plugin+'&opt=enable').tabs("load",3);
 | |
|                             }else {
 | |
|                                 $(tmp[1]).html(plugin+"<br>"+stat);
 | |
|                                 $(tmp[0].firstChild).removeClass("ui-icon-circle-close").addClass("ui-icon-circle-check");
 | |
|                                 $("#settings").tabs('url',3,'monitor/options.php?name='+plugin+'&opt=disable').tabs("load",3);
 | |
|                             }
 | |
|                         })
 | |
|                     }
 | |
|                 });
 | |
|             }
 | |
| //        }
 | |
|     );
 | |
| }
 | |
| 
 | |
| /*setMonsettingTab is used to initialize the configuration of monsetting in the monlist */
 | |
| function setMonsettingTab()
 | |
| {
 | |
|     makeEditable('monsetting','.editme', '.Ximg', '.Xlink');
 | |
|     $("#reset").click(function() {
 | |
|         alert('You sure you want to discard changes?');
 | |
|         $("#settings").tabs("load",1);  //reload the "config" tabs
 | |
|         $("#settings .ui-tabs-panel #accordion").accordion('activate',1);//activate the "monsetting" accordion
 | |
|     });
 | |
|     $("#monsettingaddrow").click(function() {
 | |
|         var line = $(".mContent #tabTable tbody tr").length + 1;
 | |
|         var newrow = formRow(line, 6, line%2);
 | |
|         $(".mContent #tabTable tbody").append($(newrow));
 | |
|         makeEditable('monsetting', '.editme2', '.Ximg2', '.Xlink2');
 | |
|     });
 | |
|     $("#saveit").click(function() {
 | |
|         var plugin=$('.pluginstat.ui-state-active').attr('id');
 | |
|         $.get("monitor/options.php",{name:plugin, opt:"savetab"},function(data){
 | |
|             $("#settings").tabs("load",1);  //reload the "config" tabs
 | |
|             $("#settings .ui-tabs-panel #accordion").accordion('activate',1);//activate the "monsetting" accordion
 | |
|         });
 | |
|     });
 | |
| }
 | |
| 
 | |
| function nodemonSetStat()
 | |
| {
 | |
|     //enable/disable buttons for setting of the Node monitoring status
 | |
|     $("#nodemonset .fg-buttonset .fg-button").hover(function() {
 | |
|         $(this).addClass("ui-state-hover");
 | |
|     },function() {
 | |
|         $(this).removeClass("ui-state-hover");
 | |
|     }).click(function(){
 | |
|         //TODO
 | |
|     });
 | |
| }
 | |
| function appmonSetStat()
 | |
| {
 | |
|     //TODO
 | |
| }
 | |
| 
 | |
| //create the associations for the condition & response
 | |
| //which is be used in the PHP function displayCondResp() in rmc_event_define.php
 | |
| function mkCondResp()
 | |
| {
 | |
|     //get the name of the selected condition
 | |
|     //then, get the selected noderange
 | |
|     //then, get the response in "checked" status
 | |
|     //then, run the command "mkcondresp"
 | |
|     var cond_val = $(':input[name=conditions][checked]').val();
 | |
|     var value="";//the noderange selected from the osi tree
 | |
|     var i=0;
 | |
|     var node_selected = nrtree.selected_arr;
 | |
|     for(; i< node_selected.length; i++) {
 | |
|         value += node_selected[i].attr('id');
 | |
|     }
 | |
|     //remove the "," at the front
 | |
|     value = value.substr(1);
 | |
|     var resps_obj = $(':input[name=responses][checked]');
 | |
|     if(cond_val && resps_obj && value) {
 | |
|         $.each(resps_obj,function(i,n) {
 | |
|             //i is the index
 | |
|             //n is the content
 | |
|             //TODO:add one new php file to handle "mkcondresp" command
 | |
|             $.get("monitor/makecondresp.php", {cond: cond_val, resp: n.value, nr: value}, function(data) {
 | |
|                     //nothing to do right now.
 | |
|             });
 | |
|         });
 | |
|         $("#notify_me").html("<p>The associations are created!</p>");
 | |
|         $("#notify_me").addClass("ui-state-highlight");
 | |
|         $("#association table tbody").load("monitor/updateCondRespTable.php");
 | |
|     }
 | |
| }
 | |
| 
 | |
| //clearEventDisplay()
 | |
| //is used to clear the selection in the page for configuring the condtion&response association
 | |
| function clearEventDisplay()
 | |
| {
 | |
|     $(':input[name=conditions][checked]').attr('checked', false);
 | |
|     $(':input[name=responses][checked]').attr('checked', false);
 | |
| }
 | |
| 
 | |
| //function control_RMCAssoc()
 | |
| //is used to update the association table in rmc_event_define.php
 | |
| function control_RMCAssoc(cond, node, resp, action)
 | |
| {
 | |
|     //TODO:for define_rmc_event
 | |
|     //control the RMC Association: startcondresp & stopcondresp;
 | |
|     $.get("monitor/updateCondResp.php",
 | |
|         {c: cond, n: node, r: resp, a: action},
 | |
|         function(data) {
 | |
|             $("#association table tbody").load("monitor/updateCondRespTable.php");
 | |
|         }
 | |
|     );
 | |
| }
 | |
| 
 | |
| /*when one RMC Resource is selected, this function is called to display its attributes*/
 | |
| function showRMCAttrib()
 | |
| {
 | |
|     var class_val = $('input[name=classGrp]:checked').val();
 | |
|     if(class_val) {
 | |
|         $.get("monitor/rmc_resource_attr.php", {name: class_val}, function(data) {
 | |
|             $("#rmcSrcAttr").html(data);
 | |
|         });
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| // for the progress bar
 | |
| myBar.loaded('monitor.js'); |