Skip to content

Instantly share code, notes, and snippets.

@bunlongheng
Last active May 2, 2018 21:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bunlongheng/2e52f7287b4765fcf95ddfe4a40f6231 to your computer and use it in GitHub Desktop.
Save bunlongheng/2e52f7287b4765fcf95ddfe4a40f6231 to your computer and use it in GitHub Desktop.
Wifi SSDI, Passphrase, and State
// MHN Network Sub-Pages
public function create() {
$cpe_mac = Request::segment(1);
$p_24_wi = 10001 ;
$g_24_wi = 10101 ;
$p_50_wi = 10002 ;
$g_50_wi = 10102 ;
$cpe_name = VSE::cpe_name($cpe_mac)['cpe_name'];
$p_24_device_state = VSE::wifi_device_state($cpe_mac,$p_24_wi)['wifi_device_state'];
$p_24_device_ssid = VSE::wifi_device_ssid($cpe_mac,$p_24_wi)['wifi_device_ssid'];
$p_24_device_passphrase = VSE::wifi_device_passphrase($cpe_mac,$p_24_wi)['wifi_device_passphrase'];
$g_24_device_state = VSE::wifi_device_state($cpe_mac,$g_24_wi)['wifi_device_state'];
$g_24_device_ssid = VSE::wifi_device_ssid($cpe_mac,$g_24_wi)['wifi_device_ssid'];
$g_24_device_passphrase = VSE::wifi_device_passphrase($cpe_mac,$g_24_wi)['wifi_device_passphrase'];
$p_50_device_state = VSE::wifi_device_state($cpe_mac,$p_50_wi)['wifi_device_state'];
$p_50_device_ssid = VSE::wifi_device_ssid($cpe_mac,$p_50_wi)['wifi_device_ssid'];
$p_50_device_passphrase = VSE::wifi_device_passphrase($cpe_mac,$p_50_wi)['wifi_device_passphrase'];
$g_50_device_state = VSE::wifi_device_state($cpe_mac,$g_50_wi)['wifi_device_state'];
$g_50_device_ssid = VSE::wifi_device_ssid($cpe_mac,$g_50_wi)['wifi_device_ssid'];
$g_50_device_passphrase = VSE::wifi_device_passphrase($cpe_mac,$g_50_wi)['wifi_device_passphrase'];
// dd(get_defined_vars());
if($p_24_device_state == null){
$error = 'TR069 Protocol is not configure on this Access Point. Can\'t change any WiFi Settings.';
return view('network.create', get_defined_vars())->with('error', $error);
}else{
$error = '';
return view('network.create', get_defined_vars());
}
}
public function updatePrivateWifi($cpe_mac){
$request = Request::instance();
$content = $request->getContent();
$inputs = json_decode($content);
$wifi_device_ssid = $inputs->wifi_device_ssid;
$wifi_device_passphrase = $inputs->wifi_device_passphrase;
$wi = $inputs->wi;
$url = env('API_HOST').'vse/vcpe/'.$cpe_mac.'/wifi_index/'.$wi.'/wifi_device_ssid';
$data = [];
$data['wifi_device_ssid'] = $wifi_device_ssid;
$json = json_encode($data);
$result1 = CURLlog::put($url,$json);
$url = env('API_HOST').'vse/vcpe/'.$cpe_mac.'/wifi_index/'.$wi.'/wifi_device_passphrase';
$data = [];
$data['wifi_device_passphrase'] = $wifi_device_passphrase;
$json = json_encode($data);
$result2 = CURLlog::put($url,$json);
return $results = ['updatePrivateWifi', $result1,$result2,$wi];
}
public function updateGuestWifi($cpe_mac){
$request = Request::instance();
$content = $request->getContent();
$inputs = json_decode($content);
$wifi_device_ssid = $inputs->wifi_device_ssid;
$wifi_device_passphrase = $inputs->wifi_device_passphrase;
$wi = $inputs->wi;
$url = env('API_HOST').'vse/vcpe/'.$cpe_mac.'/wifi_index/'.$wi.'/wifi_device_ssid';
$data = [];
$data['wifi_device_ssid'] = $wifi_device_ssid;
$json = json_encode($data);
$result1 = CURLlog::put($url,$json);
$url = env('API_HOST').'vse/vcpe/'.$cpe_mac.'/wifi_index/'.$wi.'/wifi_device_passphrase';
$data = [];
$data['wifi_device_passphrase'] = $wifi_device_passphrase;
$json = json_encode($data);
// dd($json);
$result2 = CURLlog::put($url,$json);
return $results = ['updateGuestWifi', $result1,$result2,$wi];
}
public function updateState($cpe_mac){
$request = Request::instance();
$content = $request->getContent();
$inputs = json_decode($content);
$wifi_state = $inputs->wifi_state;
$wi = $inputs->wi;
$url = env('API_HOST').'vse/vcpe/'.$cpe_mac.'/wifi_index/'.$wi.'/wifi_device_state';
$data = [];
$data['wifi_device_state'] = $wifi_state;
$json = json_encode($data);
$result = CURLlog::put($url,$json);
return $results = ['updateState',$wi,$wifi_state,$result];
}
--- View
@extends('layouts.internal.master')
@section('content')
<link href="/css/bootstrap-switch.css" rel="stylesheet">
<style>
#create_network_form p {
margin-top: 4px;
}
.tooltips {
cursor: pointer;
}
</style>
{{-- Modals --}}
<!--=============================
= 2.4 GHz =
==============================-->
<div id="private_24_modal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Private WiFi (2.4 GHz)</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label for="private_24_modal_name">Private WiFi Name</label>
<input type="text" class="form-control" id="private_24_modal_name" value="{{ $p_24_device_ssid or ''}}">
</div>
<div class="form-group">
<label for="private_24_modal_passphrase">Passphrase</label>
<input type="text" class="form-control" id="private_24_modal_passphrase" value="{{ $p_24_device_passphrase or ''}}">
</div>
</div>
<div class="modal-footer">
<button id="private_24_modal_cancel" type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button id="private_24_modal_save" type="button" class="btn btn-primary" data-dismiss="modal">Save changes</button>
</div>
</div>
</div>
</div>
<div id="guest_24_modal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Guest WiFi (2.4 GHz)</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label for="guest_24_modal_name">Guest WiFi Name</label>
<input type="text" class="form-control" id="guest_24_modal_name" value="{{ $g_24_device_ssid or ''}}">
</div>
<div class="form-group">
<label for="guest_24_modal_passphrase">Passphrase</label>
<input type="text" class="form-control" id="guest_24_modal_passphrase" value="{{ $g_24_device_passphrase or ''}}">
</div>
</div>
<div class="modal-footer">
<button id="guest_24_modal_cancel" type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button id="guest_24_modal_save" type="button" class="btn btn-primary" data-dismiss="modal">Save changes</button>
</div>
</div>
</div>
</div>
<!--=============================
= 5.0 GHz =
==============================-->
<div id="private_50_modal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Private WiFi (5.0 GHz)</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label for="private_50_modal_name">Private WiFi Name</label>
<input type="text" class="form-control" id="private_50_modal_name" value="{{ $p_50_device_ssid or ''}}">
</div>
<div class="form-group">
<label for="private_50_modal_passphrase">Passphrase</label>
<input type="text" class="form-control" id="private_50_modal_passphrase" value="{{ $p_50_device_passphrase or ''}}">
</div>
</div>
<div class="modal-footer">
<button id="private_50_modal_cancel" type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button id="private_50_modal_save" type="button" class="btn btn-primary" data-dismiss="modal">Save changes</button>
</div>
</div>
</div>
</div>
<div id="guest_50_modal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Guest WiFi (5.0 GHz)</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label for="guest_50_modal_name">Guest WiFi Name</label>
<input type="text" class="form-control" id="guest_50_modal_name" value="{{ $g_50_device_ssid or ''}}">
</div>
<div class="form-group">
<label for="guest_50_modal_passphrase">Passphrase</label>
<input type="text" class="form-control" id="guest_50_modal_passphrase" value="{{ $g_50_device_passphrase or ''}}">
</div>
</div>
<div class="modal-footer">
<button id="guest_50_modal_cancel" type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button id="guest_50_modal_save" type="button" class="btn btn-primary" data-dismiss="modal">Save changes</button>
</div>
</div>
</div>
</div>
<!-- End of modal -->
<div class="panel panel-primary">
<div class="panel-heading">
<h4 class="panel-title">My Network</h4>
<p>Activate or deactivate your networks, or make changes</p>
</div>
<div class="panel-body panel-body-nopadding">
<div id="create_network_form" class="form form-horizontal form-bordered">
<div class="form-group">
<label class="col-sm-3 control-label">Home Gateway:</label>
<div class="col-sm-3">
<p id="home_gateway_name" class="form-control-static text-primary">{{$cpe_name or ''}}</p>
<input id="home_gateway_name_input" class="form-control input-sm" style="display:none;">
</div>
<div class="col-sm-2 tool-buttons">
<ul class="button-list">
<li><a class="name_edit tooltips" data-original-title="Edit" data-placement="top" data-toggle="tooltip"><i class="fa fa-edit"></i></a></li>
<li><a class="name_cancel tooltips" data-original-title="Cancel" data-placement="top" data-toggle="tooltip" style="display:none;"><i class="fa fa-remove"></i></a>
</li>
<li><a class="name_save tooltips" data-original-title="Save" data-placement="top" data-toggle="tooltip" style="display:none;"><i class="fa fa-save"></i></a></li>
</ul>
</div>
</div>
<!--=========================
= 2.4 =
==========================-->
<div class="form-group">
<label class="col-sm-3 control-label">Private WiFi (2.4 GHz):</label>
<div class="col-sm-3">
<p id="private_24_name" class="form-control-static text-primary">{{ $p_24_device_ssid or ''}}</p>
<input id="private_24_name_input" class="form-control input-sm" style="display:none;">
</div>
<div class="col-sm-2 tool-buttons">
<ul class="button-list">
<li data-toggle="modal" data-target="#private_24_modal"><a class="tooltips" data-original-title="Edit" data-placement="top" data-toggle="tooltip"><i class="fa fa-edit"></i></a></li>
</ul>
</div>
<div class="col-sm-3 control-label" style="text-align:left; margin-left:6px;">
<input id="private_24_switch" type="checkbox">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">Guest WiFi (2.4 GHz):</label>
<div class="col-sm-3">
<p id="guest_24_name" class="form-control-static text-primary">{{ $g_24_device_ssid or ''}}</p>
<input id="guest_24_name_input" class="form-control input-sm" style="display:none;">
</div>
<div class="col-sm-2 tool-buttons">
<ul class="button-list">
<li data-toggle="modal" data-target="#guest_24_modal"><a class="tooltips" data-original-title="Edit" data-placement="top" data-toggle="tooltip"><i class="fa fa-edit"></i></a></li>
</ul>
</div>
<div class="col-sm-3 control-label" style="text-align:left; margin-left:6px;">
<input id="guest_24_switch" type="checkbox">
</div>
</div>
<!--=========================
= 5.0 =
==========================-->
<div class="form-group">
<label class="col-sm-3 control-label">Private WiFi (5.0 GHz):</label>
<div class="col-sm-3">
<p id="private_50_name" class="form-control-static text-primary">{{ $p_50_device_ssid or ''}}</p>
<input id="private_50_name_input" class="form-control input-sm" style="display:none;">
</div>
<div class="col-sm-2 tool-buttons">
<ul class="button-list">
<li data-toggle="modal" data-target="#private_50_modal"><a class="tooltips" data-original-title="Edit" data-placement="top" data-toggle="tooltip"><i class="fa fa-edit"></i></a></li>
</ul>
</div>
<div class="col-sm-3 control-label" style="text-align:left; margin-left:6px;">
<input id="private_50_switch" type="checkbox">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">Guest WiFi (5.0 GHz):</label>
<div class="col-sm-3">
<p id="guest_50_name" class="form-control-static text-primary">{{ $g_50_device_ssid or ''}}</p>
<input id="guest_50_name_input" class="form-control input-sm" style="display:none;">
</div>
<div class="col-sm-2 tool-buttons">
<ul class="button-list">
<li data-toggle="modal" data-target="#guest_50_modal"><a class="tooltips" data-original-title="Edit" data-placement="top" data-toggle="tooltip"><i class="fa fa-edit"></i></a></li>
</ul>
</div>
<div class="col-sm-3 control-label" style="text-align:left; margin-left:6px;">
<input id="guest_50_switch" type="checkbox">
</div>
</div>
</div>
</div>
</div>
@stop
{{-- Page-specific scripts --}}
@section('pagescripts')
<script src="/js/bootstrap-switch.js"></script>
<script type="text/javascript">
// Save
$('.name_edit').on('click', function(){
$('#home_gateway_name').hide();
$('#home_gateway_name_input').val($('#home_gateway_name').text());
$('#home_gateway_name_input').fadeIn();
// Toggle
$('.name_cancel, .name_save').fadeIn();
$('.name_edit').hide();
});
//Cancel
$('.name_cancel, .name_save').on('click', function(){
$('#home_gateway_name_input').hide();
$('#home_gateway_name').fadeIn();
$('.name_cancel, .name_save').hide();
$('.name_edit').fadeIn();
});
$('.name_save').on('click', function(){
var $url = '/'+'{{$cpe_mac}}'+'/cpe_name/update';
var $type = 'PUT';
var $headers = {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('value')};
var $data = {"cpe_name": $('#home_gateway_name_input').val()};
$.ajax({
type: $type,
headers: $headers,
url: $url,
data: JSON.stringify($data),
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
$('body').notificationJs({
'position': 2,
'type': 'Success',
'background': '#384049',
'color' : '#FFF',
'message': "Home Gateway Name saved",
'timeout': 3000
});
}).fail(function (jqXHR, textStatus) {
$('body').notificationJs({
'position': 2,
'type': 'Error',
'background': '#384049',
'color' : '#FFF',
'message': textStatus,
'timeout': 3000
});
console.error(errorThrown, textStatus);
});
// Success
$('#home_gateway_name').text($('#home_gateway_name_input').val());
$('.pageheader h2').html('<i class="fa fa-hdd-o text-green"></i>'+$('#home_gateway_name').text());
$('.headermenu').find('.dropdown-toggle:first').html($('#home_gateway_name').text() + '<span class="caret"></span>');
});
/*===========================
= 2.4 =
===========================*/
$('#private_24_modal_save').on('click', function(){
var $url = '/'+'{{$cpe_mac}}'+'/network/wifi/private/update';
var $type = 'PUT';
var $headers = {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('value')};
var $data = {
'wifi_device_ssid':$('#private_24_modal_name').val(),
'wifi_device_passphrase': $('#private_24_modal_passphrase').val(),
'wi': '{!! $p_24_wi !!}'
};
$.ajax({
type: $type,
headers: $headers,
url: $url,
data: JSON.stringify($data),
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
$('body').notificationJs({
'position': 2,
'type': 'Success',
'background': '#384049',
'color' : '#FFF',
'message': "Private Wifi Updated",
'timeout': 3000
});
}).fail(function (jqXHR, textStatus) {
$('body').notificationJs({
'position': 2,
'type': 'Error',
'background': '#384049',
'color' : '#FFF',
'message': textStatus,
'timeout': 3000
});
console.error(errorThrown, textStatus);
});
});
$('#guest_24_modal_save').on('click', function(){
var $url = '/'+'{{$cpe_mac}}'+'/network/wifi/guest/update';
var $type = 'PUT';
var $headers = {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('value')};
var $data = {
'wifi_device_ssid':$('#guest_24_modal_name').val(),
'wifi_device_passphrase': $('#guest_24_modal_passphrase').val(),
'wi': '{!! $g_24_wi !!}'
};
$.ajax({
type: $type,
headers: $headers,
url: $url,
data: JSON.stringify($data),
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
$('body').notificationJs({
'position': 2,
'type': 'Success',
'background': '#384049',
'color' : '#FFF',
'message': "Guest Wifi Updated",
'timeout': 3000
});
}).fail(function (jqXHR, textStatus) {
$('body').notificationJs({
'position': 2,
'type': 'Error',
'background': '#384049',
'color' : '#FFF',
'message': textStatus,
'timeout': 3000
});
console.error(errorThrown, textStatus);
});
});
/*===========================
= 5.0 =
===========================*/
$('#private_50_modal_save').on('click', function(){
var $url = '/'+'{{$cpe_mac}}'+'/network/wifi/private/update';
var $type = 'PUT';
var $headers = {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('value')};
var $data = {
'wifi_device_ssid':$('#private_50_modal_name').val(),
'wifi_device_passphrase': $('#private_50_modal_passphrase').val(),
'wi': '{!! $p_50_wi !!}'
};
$.ajax({
type: $type,
headers: $headers,
url: $url,
data: JSON.stringify($data),
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
$('body').notificationJs({
'position': 2,
'type': 'Success',
'background': '#384049',
'color' : '#FFF',
'message': "Private Wifi (5.0 GHz) Updated",
'timeout': 3000
});
}).fail(function (jqXHR, textStatus) {
$('body').notificationJs({
'position': 2,
'type': 'Error',
'background': '#384049',
'color' : '#FFF',
'message': textStatus,
'timeout': 3000
});
console.error(errorThrown, textStatus);
});
});
$('#guest_50_modal_save').on('click', function(){
var $url = '/'+'{{$cpe_mac}}'+'/network/wifi/guest/update';
var $type = 'PUT';
var $headers = {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('value')};
var $data = {
'wifi_device_ssid':$('#guest_50_modal_name').val(),
'wifi_device_passphrase': $('#guest_50_modal_passphrase').val(),
'wi': '{!! $g_50_wi !!}'
};
$.ajax({
type: $type,
headers: $headers,
url: $url,
data: JSON.stringify($data),
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
$('body').notificationJs({
'position': 2,
'type': 'Success',
'background': '#384049',
'color' : '#FFF',
'message': "Guest Wifi (5.0 GHz) Updated",
'timeout': 3000
});
}).fail(function (jqXHR, textStatus) {
$('body').notificationJs({
'position': 2,
'type': 'Error',
'background': '#384049',
'color' : '#FFF',
'message': textStatus,
'timeout': 3000
});
console.error(errorThrown, textStatus);
});
});
// Switches
$('#private_24_switch').bootstrapSwitch({'size': 'mini', 'state': true});
$('#guest_24_switch').bootstrapSwitch({'size': 'mini', 'state': true});
$('#private_50_switch').bootstrapSwitch({'size': 'mini', 'state': true});
$('#guest_50_switch').bootstrapSwitch({'size': 'mini', 'state': true});
// Clear all buttons when you close a modal
// $('.modal-footer button').on('click', function(){
// $('.modal-body input').val('');
// });
function updateState(object, wi, vlanName, frequency) {
object.on('switchChange.bootstrapSwitch', function (event) {
if (object.is(':checked')) {
object.val(true);
console.log(object.val());
var $url = '/'+'{{$cpe_mac}}'+'/network/wifi/state/update';
var $type = 'PUT';
var $headers = {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('value')};
var $data = {
'wifi_state': object.val(),
'wi': wi
};
$.ajax({
type: $type,
headers: $headers,
url: $url,
data: JSON.stringify($data),
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
$('body').notificationJs({
'position': 2,
'type': 'Success',
'background': '#384049',
'color' : '#FFF',
'message': vlanName + " Wifi ( " + frequency + " GHz ) Updated",
'timeout': 3000
});
}).fail(function (jqXHR, textStatus) {
$('body').notificationJs({
'position': 2,
'type': 'Error',
'background': '#384049',
'color' : '#FFF',
'message': textStatus,
'timeout': 3000
});
console.error(errorThrown, textStatus);
});
} else {
object.val(false);
console.log(object.val());
var $url = '/'+'{{$cpe_mac}}'+'/network/wifi/state/update';
var $type = 'PUT';
var $headers = {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('value')};
var $data = {
'wifi_state': object.val(),
'wi': wi
};
$.ajax({
type: $type,
headers: $headers,
url: $url,
data: JSON.stringify($data),
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
$('body').notificationJs({
'position': 2,
'type': 'Success',
'background': '#384049',
'color' : '#FFF',
'message': vlanName + " Wifi ( " + frequency + " GHz ) Updated",
'timeout': 3000
});
}).fail(function (jqXHR, textStatus) {
$('body').notificationJs({
'position': 2,
'type': 'Error',
'background': '#384049',
'color' : '#FFF',
'message': textStatus,
'timeout': 3000
});
console.error(errorThrown, textStatus);
});
}
});
}
updateState($('#private_24_switch'), '{!! $p_24_wi !!}', 'Private', '2.4');
updateState($('#guest_24_switch'), '{!! $g_24_wi !!}', 'Guest', '2.4');
updateState($('#private_50_switch'), '{!! $p_50_wi !!}', 'Private', '5.0');
updateState($('#guest_50_switch'), '{!! $g_50_wi !!}', 'Guest', '5.0');
</script>
@stop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment