Repository: airavata-php-gateway Updated Branches: refs/heads/master 40c0ff686 -> 9f1063344
Registering Gateway Capability for Super Admin Signed-off-by: Nipurn Doshi <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/9f106334 Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/9f106334 Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/9f106334 Branch: refs/heads/master Commit: 9f1063344eca09257cf3105ffe52471141e9a192 Parents: 40c0ff6 Author: Nipurn Doshi <[email protected]> Authored: Tue May 12 17:32:35 2015 -0400 Committer: Nipurn Doshi <[email protected]> Committed: Tue May 12 17:32:35 2015 -0400 ---------------------------------------------------------------------- app/config/pga_config.php | 2 +- app/controllers/AdminController.php | 21 +- app/libraries/CRUtilities.php | 2 +- app/libraries/WSISUtilities.php | 6 +- app/views/admin/manage-gateway.blade.php | 226 +++++++------------ app/views/layout/basic.blade.php | 2 +- app/views/partials/dashboard-block.blade.php | 2 +- app/views/scigap-admin/manage-gateway.blade.php | 182 +++++++++++++++ 8 files changed, 279 insertions(+), 164 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f106334/app/config/pga_config.php ---------------------------------------------------------------------- diff --git a/app/config/pga_config.php b/app/config/pga_config.php index 146b236..6447006 100644 --- a/app/config/pga_config.php +++ b/app/config/pga_config.php @@ -16,7 +16,7 @@ return array( /** * Gateway user role */ - 'gateway-admin' => 'Internal/everyone', + 'user-role-name' => 'Internal/everyone', /** * Tenant admin's username http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f106334/app/controllers/AdminController.php ---------------------------------------------------------------------- diff --git a/app/controllers/AdminController.php b/app/controllers/AdminController.php index a20d958..fc0c244 100755 --- a/app/controllers/AdminController.php +++ b/app/controllers/AdminController.php @@ -29,15 +29,22 @@ class AdminController extends BaseController { public function dashboard(){ //only for super admin - Session::put("scigap_admin", true); + //Session::put("scigap_admin", true); $idStore = $this->idStore; $crData = CRUtilities::getEditCRData(); $gateways = CRUtilities::getAllGatewayProfilesData(); - return View::make("admin/manage-gateway", array( + + $gatewayData = array( "gateways" => $gateways, "computeResources" => CRUtilities::getAllCRObjects(), - "crData" => $crData)); + "crData" => $crData); + if( Session::has("scigap_admin")) + $view = "scigap-admin/manage-gateway"; + else + $view = "admin/manage-gateway"; + + return View::make( $view, $gatewayData); } public function addAdminSubmit(){ @@ -130,15 +137,13 @@ class AdminController extends BaseController { public function addGateway(){ - $input = Input::all(); + $inputs = Input::all(); $idStore = $this->idStore; - $tm = TenantManager::addTenant(1, $input["admin-username"], $input["admin-password"], $input["admin-email"], - $firstName, $lastName, $input["domain"]); + $tm = $idStore->createTenant(1, $inputs["admin-username"], $inputs["admin-password"], $inputs["admin-email"], + $inputs["admin-firstname"], $inputs["admin-lastname"], $inputs["domain"]); print_r( $tm); exit; $gateway = AdminUtilities::addGateway(Input::all() ); - - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f106334/app/libraries/CRUtilities.php ---------------------------------------------------------------------- diff --git a/app/libraries/CRUtilities.php b/app/libraries/CRUtilities.php index 92e06f3..308bcdb 100755 --- a/app/libraries/CRUtilities.php +++ b/app/libraries/CRUtilities.php @@ -389,7 +389,7 @@ public static function getAllGatewayProfilesData(){ $gateways = Airavata::getAllGateways(); else { - $gateways[0] = Airavata::getGateway( Config::get('wsis::gateway-id')); + $gateways[0] = Airavata::getGateway( Session::get("gateway_id") ); } $gatewayProfiles = Airavata::getAllGatewayComputeResources(); http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f106334/app/libraries/WSISUtilities.php ---------------------------------------------------------------------- diff --git a/app/libraries/WSISUtilities.php b/app/libraries/WSISUtilities.php index 29804d2..12b49ab 100755 --- a/app/libraries/WSISUtilities.php +++ b/app/libraries/WSISUtilities.php @@ -298,9 +298,11 @@ class WSISUtilities implements IdUtilities{ * @param Tenant $parameters * @return void */ - public function createTenant( $inputs){ + public function createTenant( $active, $adminUsername, $adminPassword, $email, + $firstName, $lastName, $tenantDomain){ try { - return WSIS::create_tenant( $inputs); + return WSIS::create_tenant( $active, $adminUsername, $adminPassword, $email, + $firstName, $lastName, $tenantDomain); } catch (Exception $ex) { var_dump( $ex); //throw new Exception("Unable to create Tenant.", 0, $ex); http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f106334/app/views/admin/manage-gateway.blade.php ---------------------------------------------------------------------- diff --git a/app/views/admin/manage-gateway.blade.php b/app/views/admin/manage-gateway.blade.php index 7617466..167fc36 100644 --- a/app/views/admin/manage-gateway.blade.php +++ b/app/views/admin/manage-gateway.blade.php @@ -24,146 +24,96 @@ </div> <div class="container-fluid"> - <div class="row"> + <div class="row"> - <div class="col-md-6"> - @if( Session::has("scigap_admin") ) - <h3>Existing Gateways :</h3> - @else - <h3>Gateway Settings</h3> - @endif - </div> - @if( Session::has("scigap_admin")) - <div class="col-md-6" style="margin-top:3.5%"> - <input type="text" class="col-md-12 filterinput" placeholder="Search by Gateway Name" /> - </div> - @endif + <div class="col-md-6"> + <h3>Gateway Settings</h3> </div> - <div class="panel-group" id="accordion2"> - @foreach( $gateways as $indexGP => $gp ) - <div class="panel panel-default"> - <div class="panel-heading"> - <h4 class="panel-title"> - <a class="accordion-toggle collapsed gateway-name" data-toggle="collapse" data-parent="#accordion2" href="#collapse-gateway-{{$indexGP}}"> - {{ $gp->gatewayName }} - </a> - <div class="pull-right col-md-2 gateway-options fade"> - <span class="glyphicon glyphicon-pencil edit-gateway" style="cursor:pointer;" data-toggle="modal" data-target="#edit-gateway-block" data-gp-id="{{ $gp->gatewayId }}" data-gp-name="{{ $gp->gatewayName }}"></span> - <span class="glyphicon glyphicon-trash delete-gateway" style="cursor:pointer;" data-toggle="modal" data-target="#delete-gateway-block" data-gp-name="{{$gp->gatewayName}}" data-gp-id="{{ $gp->gatewayId }}"></span> - </div> - </h4> - </div> - <div id="collapse-gateway-{{$indexGP}}" class="panel-collapse collapse"> - <div class="panel-body"> - <div class="app-interface-block"> - <div class="row"> - <div class="col-md-10"> - <button class="btn btn-default add-cr" data-gpid="{{$gp->gatewayId}}"><span class="glyphicon glyphicon-plus"></span> Add a Compute Resource</button> - </div> - <div class="col-md-10"> - @if( isset( $gp->profile->computeResourcePreferences) ) - <div class="col-md-12"> - <h3>Existing Compute Resources :</h3> - </div> - <div class="accordion-inner"> - <div class="panel-group" id="accordion-{{$indexGP}}"> - @foreach( (array)$gp->profile->computeResourcePreferences as $indexCRP => $crp ) - <div class="panel panel-default"> - <div class="panel-heading"> - <h4 class="panel-title"> - <a class="accordion-toggle collapsed gateway-name" data-toggle="collapse" data-parent="#accordion" href="#collapse-crp-{{$indexGP}}-{{$indexCRP}}"> - {{ $crp->crDetails->hostName }} - </a> - <div class="pull-right col-md-2 gateway-options fade"> - <span class="glyphicon glyphicon-remove remove-resource" style="cursor:pointer;" data-toggle="modal" data-target="#remove-resource-block" data-cr-name="{{$crp->crDetails->hostName}}" data-cr-id="{{$crp->computeResourceId}}" data-gp-id="{{ $gp->gatewayId }}"></span> - </div> - </h4> - </div> - <div id="collapse-crp-{{$indexGP}}-{{$indexCRP}}" class="panel-collapse collapse"> - <div class="panel-body"> - <div class="app-compute-resource-preferences-block"> - <form action="{{URL::to('/')}}/gp/update-crp" method="POST"> - <input type="hidden" name="gatewayId" id="gatewayId" value="{{$gp->gatewayId}}"> - <input type="hidden" name="computeResourceId" id="gatewayId" value="{{$crp->computeResourceId}}"> - <div class="form-horizontal"> - @include('partials/gateway-preferences', array('computeResource' => $crp->crDetails, 'crData' => $crData, 'preferences'=>$crp, 'show'=>true)) - </div> - </form> - </div> + @if( Session::has("scigap_admin")) + <div class="col-md-6" style="margin-top:3.5%"> + <input type="text" class="col-md-12 filterinput" placeholder="Search by Gateway Name" /> + </div> + @endif + </div> + <div class="panel-group" id="accordion2"> + @foreach( $gateways as $indexGP => $gp ) + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"> + <a class="accordion-toggle collapsed gateway-name" data-toggle="collapse" data-parent="#accordion2" href="#collapse-gateway-{{$indexGP}}"> + {{ $gp->gatewayName }} + </a> + <div class="pull-right col-md-2 gateway-options fade"> + <span class="glyphicon glyphicon-pencil edit-gateway" style="cursor:pointer;" data-toggle="modal" data-target="#edit-gateway-block" data-gp-id="{{ $gp->gatewayId }}" data-gp-name="{{ $gp->gatewayName }}"></span> + </div> + </h4> + </div> + <div id="collapse-gateway-{{$indexGP}}" class="panel-collapse collapse"> + <div class="panel-body"> + <div class="app-interface-block"> + <div class="row"> + <div class="col-md-10"> + <button class="btn btn-default add-cr" data-gpid="{{$gp->gatewayId}}"><span class="glyphicon glyphicon-plus"></span> Add a Compute Resource</button> + </div> + <div class="col-md-10"> + @if( isset( $gp->profile->computeResourcePreferences) ) + <div class="col-md-12"> + <h3>Existing Compute Resources :</h3> + </div> + <div class="accordion-inner"> + <div class="panel-group" id="accordion-{{$indexGP}}"> + @foreach( (array)$gp->profile->computeResourcePreferences as $indexCRP => $crp ) + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"> + <a class="accordion-toggle collapsed gateway-name" data-toggle="collapse" data-parent="#accordion" href="#collapse-crp-{{$indexGP}}-{{$indexCRP}}"> + {{ $crp->crDetails->hostName }} + </a> + <div class="pull-right col-md-2 gateway-options fade"> + <span class="glyphicon glyphicon-remove remove-resource" style="cursor:pointer;" data-toggle="modal" data-target="#remove-resource-block" data-cr-name="{{$crp->crDetails->hostName}}" data-cr-id="{{$crp->computeResourceId}}" data-gp-id="{{ $gp->gatewayId }}"></span> + </div> + </h4> + </div> + <div id="collapse-crp-{{$indexGP}}-{{$indexCRP}}" class="panel-collapse collapse"> + <div class="panel-body"> + <div class="app-compute-resource-preferences-block"> + <form action="{{URL::to('/')}}/gp/update-crp" method="POST"> + <input type="hidden" name="gatewayId" id="gatewayId" value="{{$gp->gatewayId}}"> + <input type="hidden" name="computeResourceId" id="gatewayId" value="{{$crp->computeResourceId}}"> + <div class="form-horizontal"> + @include('partials/gateway-preferences', array('computeResource' => $crp->crDetails, 'crData' => $crData, 'preferences'=>$crp, 'show'=>true)) + </div> + </form> </div> </div> </div> - @endforeach </div> + @endforeach </div> - @endif - <!-- - Adding a user as admin will shift to roles. Removing from here. - <h4><span class="glyphicon glyphicon-plus"></span> Add a user as Admin to this Gateway</h4> - <form action="{{URL::to('/')}}/admin/addgatewayadmin" method="POST" role="form" enctype="multipart/form-data"> - <div class="form-group required"> - <label for="experiment-name" class="control-label">Enter Username</label> - <input type="text" class="form-control" name="username" id="experiment-name" placeholder="username" autofocus required="required"> - <input type="hidden" name="gateway_name" value="{{ $gp->gatewayName }}"/> - </div> - <div class="btn-toolbar"> - <input name="add" type="submit" class="btn btn-primary" value="Add Admin"/> - </div> - </form> - --> </div> + @endif + <!-- + Adding a user as admin will shift to roles. Removing from here. + <h4><span class="glyphicon glyphicon-plus"></span> Add a user as Admin to this Gateway</h4> + <form action="{{URL::to('/')}}/admin/addgatewayadmin" method="POST" role="form" enctype="multipart/form-data"> + <div class="form-group required"> + <label for="experiment-name" class="control-label">Enter Username</label> + <input type="text" class="form-control" name="username" id="experiment-name" placeholder="username" autofocus required="required"> + <input type="hidden" name="gateway_name" value="{{ $gp->gatewayName }}"/> + </div> + <div class="btn-toolbar"> + <input name="add" type="submit" class="btn btn-primary" value="Add Admin"/> + </div> + </form> + --> </div> </div> </div> </div> </div> - @endforeach - </div> - @if( Session::has("scigap_admin")) - <form type="POST" id="add-tenant-form"> - <div class="col-md-12"> - <button type="button" class="btn btn-default toggle-add-tenant"><span class="glyphicon glyphicon-plus"></span>Add a new gateway</button> </div> - <div class="add-tenant col-md-6"> - <div class="form-group required"> - <label class="control-label">Enter Domain Name</label> - <input type="url" name="gatewayName" class="form-control" required="required"/> - </div> - <div class="form-group required"> - <label class="control-label">Enter Desired Gateway Name</label> - <input type="text" name="gatewayName" class="form-control" required="required"/> - </div> - <div class="form-group required"> - <label class="control-label">Enter Admin Email Address</label> - <input type="text" name="admin-email" class="form-control" required="required"/> - </div> - <div class="form-group required"> - <label class="control-label">Enter Admin First Name</label> - <input type="text" name="admin-firstname" class="form-control" required="required"/> - </div> - <div class="form-group required"> - <label class="control-label">Enter Admin Last Name</label> - <input type="text" name="admin-username" class="form-control" required="required"/> - </div> - <div class="form-group required"> - <label class="control-label">Enter Admin Username</label> - <input type="text" name="admin-username" class="form-control" required="required"/> - </div> - <div class="form-group required"> - <label class="control-label">Enter Admin Password</label> - <input type="password" name="admin-password" class="form-control" required="required"/> - </div> - <div class="form-group required"> - <label class="control-label">Re-enter Admin Password</label> - <input type="password" name="admin-password-confirm" class="form-control" required="required"/> - </div> - <div class="form-group required"> - <input type="submit" class="form-control btn btn-primary" value="Register" /> - </div> - </div> - </form> - @endif - + @endforeach + </div> </div> <!-- /.container-fluid --> @@ -237,29 +187,5 @@ //make first tab of accordion open by default. //temporary fix $("#accordion2").children(".panel").children(".collapse").addClass("in"); - $(".add-tenant").slideUp(); - - $(".toggle-add-tenant").click( function(){ - $('html, body').animate({ - scrollTop: $(".toggle-add-tenant").offset().top - }, 500); - $(".add-tenant").slideDown(); - }); - </script> - - @if( Session::has("scigap_admin")) - <script> - $(".add-tenant-form").submit( function( event){ - var formData = $(".add-tenant-form").serealize(); - $.ajax({ - type: "POST", - data: formData, - url: '"' + {{ URL::to('/') }} + '"' + '/admin/add-gateway', - success:function( data){ - console.log( data); - } - }); - }); </script> - @endif @stop \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f106334/app/views/layout/basic.blade.php ---------------------------------------------------------------------- diff --git a/app/views/layout/basic.blade.php b/app/views/layout/basic.blade.php index 76d22f5..05dd58b 100755 --- a/app/views/layout/basic.blade.php +++ b/app/views/layout/basic.blade.php @@ -101,7 +101,7 @@ var visitortimezone = visitortime.getTimezoneOffset()/60; $.ajax({ type: "GET", - url: "../setUserTimezone", + url: "setUserTimezone", data: 'timezone='+ visitortimezone, success: function(){ //location.reload(); http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f106334/app/views/partials/dashboard-block.blade.php ---------------------------------------------------------------------- diff --git a/app/views/partials/dashboard-block.blade.php b/app/views/partials/dashboard-block.blade.php index b7991d5..ae4bf34 100644 --- a/app/views/partials/dashboard-block.blade.php +++ b/app/views/partials/dashboard-block.blade.php @@ -1,7 +1,7 @@ <div class="collapse navbar-collapse navbar-ex1-collapse"> <ul class="nav navbar-nav side-nav"> <li @if( Session::has("manage")) class="active" @endif> - <a href="{{ URL::to('/')}}/admin/dashboard/gateway"><i class="fa fa-fw fa-dashboard"></i> Gateway @if( Session::has("scigap_admin"))s @endif</a> + <a href="{{ URL::to('/')}}/admin/dashboard/gateway"><i class="fa fa-fw fa-dashboard"></i> Gateway@if( Session::has("scigap_admin"))s@endif</a> </li> <li> <a href="{{ URL::to('/')}}/admin/dashboard/users"><i class="fa fa-fw fa-bar-chart-o"></i> Users</a> http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9f106334/app/views/scigap-admin/manage-gateway.blade.php ---------------------------------------------------------------------- diff --git a/app/views/scigap-admin/manage-gateway.blade.php b/app/views/scigap-admin/manage-gateway.blade.php new file mode 100644 index 0000000..2a7a4d8 --- /dev/null +++ b/app/views/scigap-admin/manage-gateway.blade.php @@ -0,0 +1,182 @@ +@extends('layout.basic') + +@section('page-header') + @parent + {{ HTML::style('css/admin.css')}} +@stop + +@section('content') + + <div id="wrapper"> + <!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens --> + @include( 'partials/dashboard-block') + <div id="page-wrapper"> + <div class="col-md-12"> + @if( Session::has("message")) + <div class="row"> + <div class="alert alert-success alert-dismissible" role="alert"> + <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> + {{ Session::get("message") }} + </div> + </div> + {{ Session::forget("message") }} + @endif + </div> + <div class="container-fluid"> + + <div class="row"> + + <div class="col-md-6"> + <h3>Existing Gateways :</h3> + </div> + <div class="col-md-6" style="margin-top:3.5%"> + <input type="text" class="col-md-12 filterinput" placeholder="Search by Gateway Name" /> + </div> + </div> + <table class="table table-bordered"> + <tr> + <th>No.</th> + <th>Gateway</th> + <th>Admin ( Not implemented yet.)</th> + <th>Actions</th> + </tr> + @foreach( $gateways as $indexGP => $gp) + <tr> + <td>{{ $indexGP }}</td> + <td>{{ $gp->gatewayName }}</td> + <td>--</td> + <td> + <div class="gateway-options"> + <span class="glyphicon glyphicon-pencil edit-gateway" style="cursor:pointer;" data-toggle="modal" data-target="#edit-gateway-block" data-gp-id="{{ $gp->gatewayId }}" data-gp-name="{{ $gp->gatewayName }}"></span> + <span class="glyphicon glyphicon-trash delete-gateway" style="cursor:pointer;" data-toggle="modal" data-target="#delete-gateway-block" data-gp-name="{{$gp->gatewayName}}" data-gp-id="{{ $gp->gatewayId }}"></span> + </div> + </td> + </tr> + @endforeach + </table> + <form id="add-tenant-form"> + <div class="col-md-12"> + <button type="button" class="btn btn-default toggle-add-tenant"><span class="glyphicon glyphicon-plus"></span>Add a new gateway</button> + </div> + <div class="add-tenant col-md-6"> + <div class="form-group required"> + <label class="control-label">Enter Domain Name</label> + <input type="text" name="domain" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Desired Gateway Name</label> + <input type="text" name="gatewayName" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin Email Address</label> + <input type="text" name="admin-email" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin First Name</label> + <input type="text" name="admin-firstname" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin Last Name</label> + <input type="text" name="admin-lastname" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin Username</label> + <input type="text" name="admin-username" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin Password</label> + <input type="password" name="admin-password" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Re-enter Admin Password</label> + <input type="password" name="admin-password-confirm" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <input type="submit" class="col-md-2 form-control btn btn-primary" value="Register" /> + </div> + </div> + <div class="col-md-6 alert alert-danger gateway-error hide"> + </div> + </form> + </div> + <!-- /.container-fluid --> + + </div> + <!-- /#page-wrapper --> + + </div> + + +<div class="add-compute-resource-block hide"> + <div class="well"> + <form action="{{URL::to('/')}}/gp/add-crp" method="POST"> + <input type="hidden" name="gatewayId" id="gatewayId" value=""> + <div class="input-group"> + <select name="computeResourceId" class="cr-select form-control"> + <option value="">Select a compute Resource and set its preferences</option> + @foreach( (array)$computeResources as $index => $cr) + <option value="{{ $cr->computeResourceId}}">{{ $cr->hostName }}</option> + @endforeach + </select> + <span class="input-group-addon remove-cr" style="cursor:pointer;">x</span> + </div> + <div class="pref-space form-horizontal"></div> + </form> + </div> +</div> + + +<!-- Remove a Compute Resource from a Gateway --> +<div class="modal fade" id="add-gateway-loading" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true" data-backdrop="static"> + <div class="modal-dialog"> + + <form action="{{URL::to('/')}}/gp/remove-cr" method="POST"> + <div class="modal-content"> + <div class="modal-header"> + <h3 class="text-center">Registering the gateway</h3> + </div> + <div class="modal-body text-center"> + <h5>Please DO NOT reload the page. This can take a couple of minutes.</h5> + <img src="{{URL::to('/')}}/assets/ajax-loader.gif"/> + </div> + </div> + + </form> + </div> +</div> + +@stop + + +@section('scripts') + @parent + {{ HTML::script('js/gateway.js') }} + <script> + + $(".add-tenant").slideUp(); + + $(".toggle-add-tenant").click( function(){ + $('html, body').animate({ + scrollTop: $(".toggle-add-tenant").offset().top + }, 500); + $(".add-tenant").slideDown(); + }); + + $("#add-tenant-form").submit( function( event){ + event.preventDefault(); + event.stopPropagation(); + var formData = $("#add-tenant-form").serialize(); + $("#add-gateway-loading").modal("show"); + $.ajax({ + type: "POST", + data: formData, + url: '{{ URL::to('/') }}/admin/add-gateway', + success:function( data){ + $(".gateway-error").html(data).removeClass("hide"); + } + }).complete( function(){ + $("add-gateway-loading").modal("hide"); + }); + }); + </script> +@stop \ No newline at end of file
