|  |  |  | function msgShow(retcode,msg) { | 
					
						
							|  |  |  |     if(retcode == 0) { | 
					
						
							|  |  |  |         var alertType = 'success'; | 
					
						
							|  |  |  |     } else if(retcode == 2 || retcode == 1) { | 
					
						
							|  |  |  |         var alertType = 'danger'; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     var htmlMsg = '<div class="alert alert-'+alertType+' alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+msg+'</div>'; | 
					
						
							|  |  |  |     return htmlMsg; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function createNetmaskAddr(bitCount) { | 
					
						
							|  |  |  |   var mask=[]; | 
					
						
							|  |  |  |   for(i=0;i<4;i++) { | 
					
						
							|  |  |  |     var n = Math.min(bitCount, 8); | 
					
						
							|  |  |  |     mask.push(256 - Math.pow(2, 8-n)); | 
					
						
							|  |  |  |     bitCount -= n; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   return mask.join('.'); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function loadSummary(strInterface) { | 
					
						
							|  |  |  |     $.post('/ajax/networking/get_ip_summary.php',{interface:strInterface,csrf_token:csrf},function(data){ | 
					
						
							|  |  |  |         jsonData = JSON.parse(data); | 
					
						
							|  |  |  |         console.log(jsonData); | 
					
						
							|  |  |  |         if(jsonData['return'] == 0) { | 
					
						
							|  |  |  |             $('#'+strInterface+'-summary').html(jsonData['output'].join('<br />')); | 
					
						
							|  |  |  |         } else if(jsonData['return'] == 2) { | 
					
						
							|  |  |  |             $('#'+strInterface+'-summary').append('<div class="alert alert-danger alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+jsonData['output'].join('<br />')+'</div>'); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function getAllInterfaces() { | 
					
						
							|  |  |  |     $.get('/ajax/networking/get_all_interfaces.php',function(data){ | 
					
						
							|  |  |  |         jsonData = JSON.parse(data); | 
					
						
							|  |  |  |         $.each(jsonData,function(ind,value){ | 
					
						
							|  |  |  |             loadSummary(value) | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function setupTabs() { | 
					
						
							|  |  |  |     $('a[data-toggle="tab"]').on('shown.bs.tab',function(e){ | 
					
						
							|  |  |  |         var target = $(e.target).attr('href'); | 
					
						
							|  |  |  |         if(!target.match('summary')) { | 
					
						
							|  |  |  |             var int = target.replace("#",""); | 
					
						
							|  |  |  |             loadCurrentSettings(int); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function loadCurrentSettings(strInterface) { | 
					
						
							|  |  |  |     $.post('/ajax/networking/get_int_config.php',{interface:strInterface,csrf_token:csrf},function(data){ | 
					
						
							|  |  |  |         jsonData = JSON.parse(data); | 
					
						
							|  |  |  |         $.each(jsonData['output'],function(i,v) { | 
					
						
							|  |  |  |             var int = v['interface']; | 
					
						
							|  |  |  |             $.each(v,function(i2,v2) { | 
					
						
							|  |  |  |                 switch(i2) { | 
					
						
							|  |  |  |                     case "static": | 
					
						
							|  |  |  |                         if(v2 == 'true') { | 
					
						
							|  |  |  |                             $('#'+int+'-static').click(); | 
					
						
							|  |  |  |                             $('#'+int+'-nofailover').click(); | 
					
						
							|  |  |  |                         } else { | 
					
						
							|  |  |  |                             $('#'+int+'-dhcp').click(); | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                     case "failover": | 
					
						
							|  |  |  |                         if(v2 === 'true') { | 
					
						
							|  |  |  |                             $('#'+int+'-failover').click(); | 
					
						
							|  |  |  |                         } else { | 
					
						
							|  |  |  |                             $('#'+int+'-nofailover').click(); | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                     case "ip_address": | 
					
						
							|  |  |  |                         var arrIPNetmask = v2.split('/'); | 
					
						
							|  |  |  |                         $('#'+int+'-ipaddress').val(arrIPNetmask[0]); | 
					
						
							|  |  |  |                         $('#'+int+'-netmask').val(createNetmaskAddr(arrIPNetmask[1])); | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                     case "routers": | 
					
						
							|  |  |  |                         $('#'+int+'-gateway').val(v2); | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                     case "domain_name_server": | 
					
						
							|  |  |  |                         svrsDNS = v2.split(" "); | 
					
						
							|  |  |  |                         $('#'+int+'-dnssvr').val(svrsDNS[0]); | 
					
						
							|  |  |  |                         $('#'+int+'-dnssvralt').val(svrsDNS[1]); | 
					
						
							|  |  |  |                     break; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function saveNetworkSettings(int) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var frmInt = $('#frm-'+int).find(':input'); | 
					
						
							|  |  |  |         var arrFormData = {}; | 
					
						
							|  |  |  |         $.each(frmInt,function(i3,v3){ | 
					
						
							|  |  |  |             if($(v3).attr('type') == 'radio') { | 
					
						
							|  |  |  |                 arrFormData[$(v3).attr('id')] = $(v3).prop('checked'); | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 arrFormData[$(v3).attr('id')] = $(v3).val(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |         arrFormData['interface'] = int; | 
					
						
							|  |  |  |         arrFormData['csrf_token'] = csrf; | 
					
						
							|  |  |  |         $.post('/ajax/networking/save_int_config.php',arrFormData,function(data){ | 
					
						
							|  |  |  |             //console.log(data);
 | 
					
						
							|  |  |  |             var jsonData = JSON.parse(data); | 
					
						
							|  |  |  |             $('#msgNetworking').html(msgShow(jsonData['return'],jsonData['output'])); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function applyNetworkSettings() { | 
					
						
							|  |  |  |         var int = $(this).data('int'); | 
					
						
							|  |  |  |         arrFormData = {}; | 
					
						
							|  |  |  |         arrFormData['csrf_token'] = csrf; | 
					
						
							|  |  |  |         arrFormData['generate'] = ''; | 
					
						
							|  |  |  |         $.post('/ajax/networking/gen_int_config.php',arrFormData,function(data){ | 
					
						
							|  |  |  |             console.log(data); | 
					
						
							|  |  |  |             var jsonData = JSON.parse(data); | 
					
						
							|  |  |  |             $('#msgNetworking').html(msgShow(jsonData['return'],jsonData['output'])); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function setupBtns() { | 
					
						
							|  |  |  |     $('#btnSummaryRefresh').click(function(){getAllInterfaces();}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $('.intsave').click(function(){ | 
					
						
							|  |  |  |         var int = $(this).data('int'); | 
					
						
							|  |  |  |         saveNetworkSettings(int); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $('.intapply').click(function(){ | 
					
						
							|  |  |  |         applyNetworkSettings(); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $().ready(function(){ | 
					
						
							|  |  |  |     csrf = $('#csrf_token').val(); | 
					
						
							|  |  |  |     pageCurrent = window.location.href.split("?")[1].split("=")[1]; | 
					
						
							|  |  |  |     pageCurrent = pageCurrent.replace("#",""); | 
					
						
							|  |  |  |     $('#side-menu').metisMenu(); | 
					
						
							|  |  |  |     switch(pageCurrent) { | 
					
						
							|  |  |  |         case "network_conf": | 
					
						
							|  |  |  |             getAllInterfaces(); | 
					
						
							|  |  |  |             setupTabs(); | 
					
						
							|  |  |  |             setupBtns(); | 
					
						
							|  |  |  |         break; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |