bunlongheng
4/7/2016 - 2:51 PM

Wifi SSDI, Passphrase, and State

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