You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2015/03/12 04:55:08 UTC
[36/51] [partial] airavata-php-gateway git commit: importing PGA into
new repo - details are discussed at AIRAVATA-1627
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/views/resource/create-step3.blade.php
----------------------------------------------------------------------
diff --git a/app/views/resource/create-step3.blade.php b/app/views/resource/create-step3.blade.php
new file mode 100644
index 0000000..39f6bfe
--- /dev/null
+++ b/app/views/resource/create-step3.blade.php
@@ -0,0 +1,32 @@
+@extends('layout.basic')
+
+@section('page-header')
+ @parent
+ {{ HTML::style('css/style.css') }}
+@stop
+
+@section('content')
+
+<div class="container">
+ <div class="col-md-offset-2 col-md-8">
+ <h3>Add Resource Data</h3>
+ <form role="form" method="POST" action="{{ URL::to('/') }}/cr/create">
+
+
+ </form>
+ </div>
+</div>
+
+@stop
+
+@section('scripts')
+ @parent
+ {{ HTML::script('js/script.js') }}
+
+ <script>
+ $(document).ready( function(){
+
+
+ });
+ </script>
+@stop
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/views/resource/create.blade.php
----------------------------------------------------------------------
diff --git a/app/views/resource/create.blade.php b/app/views/resource/create.blade.php
new file mode 100644
index 0000000..df301c4
--- /dev/null
+++ b/app/views/resource/create.blade.php
@@ -0,0 +1,44 @@
+@extends('layout.basic')
+
+@section('page-header')
+ @parent
+@stop
+
+@section('content')
+
+<div class="container">
+ <div class="col-md-offset-2 col-md-8">
+ <h3>Create a Resource</h3>
+ <form role="form" method="POST" action="{{ URL::to('/') }}/cr/create">
+ <div class="form-group required">
+ <label class="control-label">Host Name</label>
+ <input class="form-control hostName" maxlength="100" name="hostname" required="required"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Host Aliases</label>
+ <input class="form-control" maxlength="30" name="hostaliases[]"/>
+ <button type="button" class="btn btn-sm btn-default add-alias">Add More Aliases</button>
+ </div>
+ <div class="form-group">
+ <label class="control-label">IP Addresses</label>
+ <input class="form-control" maxlength="30" name="ips[]"/>
+ <button type="button" class="btn btn-sm btn-default add-ip">Add More IP Addresses</button>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Resource Description</label>
+ <textarea class="form-control" maxlength="255" name="description"></textarea>
+ </div>
+ <div class="form-group">
+ <input type="submit" class="btn btn-lg btn-primary" name="step1" value="Create"/>
+ <input type="reset" class="btn btn-lg btn-success" value="Reset"/>
+ </div>
+ </form>
+ </div>
+</div>
+
+@stop
+
+@section('scripts')
+ @parent
+ {{ HTML::script('js/script.js') }}
+@stop
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/views/resource/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/resource/edit.blade.php b/app/views/resource/edit.blade.php
new file mode 100644
index 0000000..53f8a22
--- /dev/null
+++ b/app/views/resource/edit.blade.php
@@ -0,0 +1,712 @@
+@extends('layout.basic')
+
+@section('page-header')
+ @parent
+ {{ HTML::style('css/style.css') }}
+@stop
+
+@section('content')
+
+<div class="container">
+ <div class="col-md-offset-2 col-md-8">
+
+ <input type="hidden" class="base-url" value="{{URL::to('/')}}"/>
+
+ <div class="well">
+ <h4>Compute Resource : {{ $computeResource->hostName }}</h4>
+ </div>
+ @if( Session::has("message"))
+ <span class="alert alert-success col-md-12">{{Session::get("message")}}</span>
+ {{Session::forget("message") }}
+ @endif
+
+ <div class="col-md-12">
+ <ul class="nav nav-tabs nav-justified" id="tabs" role="tablist">
+ <li class="active"><a href="#tab-desc" data-toggle="tab">Description</a></li>
+ <li><a href="#tab-queues" data-toggle="tab">Queues</a></a></li>
+ <li><a href="#tab-filesystem" data-toggle="tab">FileSystem</a></li>
+ <li><a href="#tab-jobSubmission" data-toggle="tab">Job Submission Interfaces</a></li>
+ <li><a href="#tab-dataMovement" data-toggle="tab">Data Movement Interfaces</a></li>
+ </ul>
+ </div>
+
+ <div class="tab-content">
+
+ <div class="tab-pane active" id="tab-desc">
+
+ <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="cr-edit" value="resDesc"/>
+ <div class="form-group required">
+ <label class="control-label">Host Name</label>
+ <input class="form-control hostName" value="{{ $computeResource->hostName }}" maxlength="100" name="hostname" required="required"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Host Aliases</label>
+ @if( count( $computeResource->hostAliases) )
+ @foreach( $computeResource->hostAliases as $hostAlias )
+ <input class="form-control" value="{{$hostAlias}}" maxlength="30" name="hostaliases[]"/>
+ @endforeach
+ @else
+ <input class="form-control" value="" maxlength="30" name="hostaliases[]"/>
+ @endif
+ <button type="button" class="btn btn-sm btn-default add-alias">Add Aliases</button>
+ </div>
+ <div class="form-group">
+ <label class="control-label">IP Addresses</label>
+ @if( count( $computeResource->ipAddresses))
+ @foreach( $computeResource->ipAddresses as $ip )
+ <input class="form-control" value="{{ $ip }}" maxlength="30" name="ips[]"/>
+ @endforeach
+ @else
+ <input class="form-control" value="" maxlength="30" name="ips[]"/>
+ @endif
+ <button type="button" class="btn btn-sm btn-default add-ip">Add IP Addresses</button>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Resource Description</label>
+ <textarea class="form-control" maxlength="255" name="description">{{ $computeResource->resourceDescription }}</textarea>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Maximum Memory Per Node ( In MB )</label>
+ <input type="number" min="0" class="form-control" value="{{ $computeResource->maxMemoryPerNode }}" maxlength="30" name="maxMemoryPerNode"/>
+ </div>
+ <div class="form-group">
+ <input type="submit" class="btn btn-primary" name="step1" value="Save changes"/>
+ </div>
+
+ </form>
+
+ </div>
+
+ <div class="tab-pane" id="tab-queues">
+
+ @if( is_array( $computeResource->batchQueues) )
+ <h3>Existing Queues :</h3>
+ <div class="panel-group" id="accordion">
+ @foreach( $computeResource->batchQueues as $index => $queue)
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h4 class="panel-title">
+ <a class="accordion-toggle collapsed existing-queue-name" data-toggle="collapse" data-parent="#accordion" href="#collapse-{{$index}}">{{ $queue->queueName }}</a>
+ <div class="pull-right col-md-1">
+ <span class="glyphicon glyphicon-trash delete-queue" style="cursor:pointer;" data-toggle="modal" data-target="#delete-queue" data-queue-name="{{ $queue->queueName }}"></span>
+ </div>
+ </h4>
+ </div>
+ <div id="collapse-{{$index}}" class="panel-collapse collapse">
+ <div class="panel-body">
+ <form role="form" method="POST" action="{{ URL::to('/')}}/cr/edit">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <div class="queue">
+ <input type="hidden" name="cr-edit" value="queue"/>
+ <div class="form-group required">
+ <label class="control-label">Queue Name <small> ( cannot be changed.) </small></label>
+ <input class="form-control" value="{{ $queue->queueName }}" maxlength="30" name="qname" placeholder="Queue Name" readonly />
+ </div>
+ @include('partials/queue-block', array('queueData'=>$queue))
+ <div class="form-group">
+ <input type="submit" min="0" class="btn" name="step1" value="Update"/>
+ </div>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ @endforeach
+ </div>
+ @endif
+ <div class="queue-block hide">
+ <form role="form" method="POST" action="{{ URL::to('/')}}/cr/edit">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <div class="queue">
+ <div class="queue">
+ <input type="hidden" name="cr-edit" value="queue"/>
+ <div class="form-group required">
+ <label class="control-label">Queue Name<small> ( A queue name is unique and cannot be changed later.)</small></label>
+ <input class="form-control create-queue-name" maxlength="30" name="qname" placeholder="Queue Name" required="required"/>
+ </div>
+ @include('partials/queue-block')
+
+ </div>
+ <div class="form-group">
+ <input type="button" class="btn create-queue-form btn-primary" name="step1" value="Create"/>
+ <input type="reset" class="btn btn-success" value="Reset"/>
+ </div>
+ </div>
+ </form>
+ </div>
+ <div class="form-group well add-queue-block">
+ <button type="button" class="btn btn-sm btn-default add-queue">Add a Queue</button>
+ </div>
+
+ </div>
+
+ <div class="tab-pane" id="tab-filesystem">
+
+ <form role="form" method="POST" action="{{URL::to('/')}}/cr/edit">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="cr-edit" value="fileSystems"/>
+ <div class="form-group">
+ <h3>FileSystem</h3>
+ @foreach( $fileSystems as $index => $fileSystem)
+ <label class="control-label">{{ $fileSystem }}</label>
+ <input class="form-control" name="fileSystems[{{ $index }}]" placeholder="{{ $fileSystem }}" value="@if( isset( $computeResource->fileSystems[ $index]) ){{ $computeResource->fileSystems[ $index] }} @endif"/>
+ @endforeach
+ </select>
+ </div>
+ <div class="form-group">
+ <button class="btn btn-prim">Update</button>
+ </div>
+ </form>
+
+ </div>
+
+ <div class="tab-pane" id="tab-jobSubmission">
+
+ <div class="form-group">
+ <div class="job-submission-info row hide"></div>
+ <button type="button" class="btn btn-sm btn-default add-job-submission">Add a new Job Submission Interface</button>
+ @if( count( $jobSubmissionInterfaces ) > 1)
+ <button type="button" class="btn btn-sm btn-default update-priority" data-type="jsi" data-toggle="modal" data-target="#update-jsi-priority">Update Priority</button>
+ @endif
+ </div>
+
+ @if( count( $jobSubmissionInterfaces ) )
+ <div class="job-edit-info">
+ @foreach( $jobSubmissionInterfaces as $index => $JSI )
+
+ <div class="job-protocol-block">
+ <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="cr-edit" value="edit-jsp"/>
+ <input type="hidden" name="jsiId" value="{{ $JSI->jobSubmissionInterfaceId }}"/>
+ <?php $selectedJspIndex = $computeResource->jobSubmissionInterfaces[ $index]->jobSubmissionProtocol; ?>
+
+ <h4>Job Submission Protocol : {{ $jobSubmissionProtocols[ $selectedJspIndex] }}
+ <button type='button' class='close delete-jsi' data-toggle="modal" data-target="#confirm-delete-jsi" data-jsi-id="{{ $JSI->jobSubmissionInterfaceId }}">
+ <span class="glyphicon glyphicon-trash delete-jsi" data-toggle="modal" data-target="#confirm-delete-jsi" data-jsi-id="{{ $JSI->jobSubmissionInterfaceId }}"></span>
+ </button>
+ </h4>
+ <input type="hidden" name="jobSubmissionProtocol" value="{{ $selectedJspIndex }}"/>
+ @if( $selectedJspIndex == $jobSubmissionProtocolsObject::LOCAL)
+ <div class="select-resource-manager-type">
+ <div class="form-group required">
+ <label class="control-label">Select resource manager type</label>
+ <select name="resourceJobManagerType" class="form-control selected-resource-manager" required="required">
+ @foreach( $resourceJobManagerTypes as $index => $rJmT)
+ <option value="{{ $index }}" @if( $JSI->resourceJobManager->resourceJobManagerType == $index ) selected @endif >{{ $rJmT }}</option>
+ @endforeach
+ </select>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Push Monitoring End Point</label>
+ <input type="text" class="form-control" name="pushMonitoringEndpoint" value="{{ $JSI->resourceJobManager->pushMonitoringEndpoint }}"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Job Manager Bin Path</label>
+ <input type="text" class="form-control" name="jobManagerBinPath" value="{{ $JSI->resourceJobManager->jobManagerBinPath }}"/>
+ </div>
+ <div class="form-group">
+ <h3>Job Manager Commands</h3>
+ @foreach( $jobManagerCommands as $index => $jmc)
+ <label class="control-label">{{ $jmc }}</label>
+ <input class="form-control" name="jobManagerCommands[{{ $index }}]" placeholder="{{ $jmc }}" value="@if( isset( $JSI->resourceJobManager->jobManagerCommands[$index] ) ) {{ $JSI->resourceJobManager->jobManagerCommands[$index] }} @endif"/>
+ @endforeach
+ </select>
+ </div>
+ </div>
+ @elseif( $selectedJspIndex == $jobSubmissionProtocolsObject::SSH)
+ <div class="form-group required">
+ <label class="control-label">Select Security Protocol</label>
+ <select name="securityProtocol" required="required">
+ @foreach( $securityProtocols as $index => $sp)
+ <option value="{{ $index }}" @if( $JSI->securityProtocol == $index ) selected @endif>{{ $sp }}</option>
+ @endforeach
+ </select>
+ </div>
+
+ <div class="form-group">
+ <label class="control-label">Alternate SSH Host Name</label>
+ <input class='form-control' name='alternativeSSHHostName' value="{{ $JSI->alternativeSSHHostName}}"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">SSH Port</label>
+ <input class='form-control' name='sshPort' value="{{ $JSI->sshPort }}"/>
+ </div>
+
+ <div class="form-group">
+ <div class="select-resource-manager-type">
+ <div class="form-group required">
+ <label class="control-label">Select resource manager type</label>
+ <select name="resourceJobManagerType" class="form-control selected-resource-manager" required="required">
+ @foreach( $resourceJobManagerTypes as $index => $rJmT)
+ <option value="{{ $index }}" @if( $JSI->resourceJobManager->resourceJobManagerType == $index ) selected @endif >{{ $rJmT }}</option>
+ @endforeach
+ </select>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Push Monitoring End Point</label>
+ <input type="text" class="form-control" name="pushMonitoringEndpoint" value="{{ $JSI->resourceJobManager->pushMonitoringEndpoint }}"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Job Manager Bin Path</label>
+ <input type="text" class="form-control" name="jobManagerBinPath" value="{{ $JSI->resourceJobManager->jobManagerBinPath }}"/>
+ </div>
+ <div class="form-group">
+ <h3>Job Manager Commands</h3>
+ @foreach( $jobManagerCommands as $index => $jmc)
+ <label class="control-label">{{ $jmc }}</label>
+ <input class="form-control" name="jobManagerCommands[{{ $index }}]" placeholder="{{ $jmc }}" value="@if( isset( $JSI->resourceJobManager->jobManagerCommands[$index] ) ) {{ $JSI->resourceJobManager->jobManagerCommands[$index] }} @endif"/>
+ @endforeach
+ </select>
+ </div>
+ </div>
+ </div>
+ @elseif( $selectedJspIndex == $jobSubmissionProtocolsObject::UNICORE)
+ <div class="form-group required">
+ <label class="control-label">Select Security Protocol</label>
+ <select name="securityProtocol" required="required">
+ @foreach( $securityProtocols as $index => $sp)
+ <option value="{{ $index }}" @if( $JSI->securityProtocol == $index ) selected @endif>{{ $sp }}</option>
+ @endforeach
+ </select>
+ </div>
+ <div class="form-group">
+ <label class="form-label">Unicore End Point URL</label>
+ <input class='form-control' name='unicoreEndPointURL' value="{{ $JSI->unicoreEndPointURL }}"/>
+ </div>
+ @endif
+ <div class="form-group">
+ <button type="submit" class="btn">Update</button>
+ </div>
+ </form>
+
+ </div>
+ @endforeach
+ </div>
+ @endif
+
+ <div class="select-job-protocol hide">
+ <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="cr-edit" value="jsp"/>
+
+ <div class="form-group">
+ <label class="control-label">Job Submission Protocol:</label>
+ <select name="jobSubmissionProtocol" class="form-control selected-job-protocol" required="required">
+ <option></option>
+ @foreach( $jobSubmissionProtocols as $index => $jobSubmissionProtocol)
+ @if( ! in_array( $index, $addedJSP))
+ <option value="{{ $index }}">{{ $jobSubmissionProtocol }}</option>
+ @endif
+ @endforeach
+ </select>
+ </div>
+
+ <div class="form-group">
+ <button type="submit" class="btn btn-primary jspSubmit hide">Add Job Submission Protocol</button>
+ </div>
+ </form>
+ </div>
+
+ </div>
+
+ <div class="tab-pane" id="tab-dataMovement">
+
+ <div class="form-group">
+ <div class="data-movement-info row hide"></div>
+ <button type="button" class="btn btn-sm btn-default add-data-movement">Add a new Data Movement Interface</button>
+ @if( count( $dataMovementInterfaces ) > 1)
+ <button type="button" class="btn btn-sm btn-default update-priority" data-type="dmi" data-toggle="modal" data-target="#update-dmi-priority">Update Priority</button>
+ @endif
+ </div>
+
+ @if( count( $dataMovementInterfaces ) )
+ <div class="job-edit-info">
+ @foreach( $dataMovementInterfaces as $index => $DMI )
+ <div class="data-movement-block">
+ <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit">
+ <input type="hidden" name="crId" class="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="cr-edit" value="edit-dmi"/>
+ <input type="hidden" name="dmiId" value="{{ $DMI->dataMovementInterfaceId }}"/>
+
+ <?php $selectedDMIIndex = $computeResource->dataMovementInterfaces[ $index]->dataMovementProtocol; ?>
+
+ <h4>Data Movement Protocol : {{ $dataMovementProtocols[ $selectedDMIIndex] }}
+ <button type='button' class='close delete-dmi' data-toggle="modal" data-target="#confirm-delete-dmi" data-dmi-id="{{ $DMI->dataMovementInterfaceId }}">
+ <span class="glyphicon glyphicon-trash delete-dmi" data-toggle="modal" data-target="#confirm-delete-dmi" data-dmi-id="{{ $DMI->dataMovementInterfaceId }}"></span>
+ </button>
+ </h4>
+ <input type="hidden" name="dataMovementProtocol" value="{{ $selectedDMIIndex }}"/>
+ @if( $selectedDMIIndex == $dataMovementProtocolsObject::LOCAL)
+ <!-- Nothing here on local UI -->
+ @elseif( $selectedDMIIndex == $dataMovementProtocolsObject::SCP)
+ <div class="form-group">
+ <label class="control-label">Select Security Protocol</label>
+ <select name="securityProtocol">
+ @foreach( $securityProtocols as $index => $sp)
+ <option value="{{ $index }}" @if( $DMI->securityProtocol == $index ) selected @endif>{{ $sp }}</option>
+ @endforeach
+ </select>
+ </div>
+
+ <div class="form-group">
+ <label class="control-label">Alternate SSH Host Name</label>
+ <input class='form-control' name='alternativeSSHHostName' value="{{ $DMI->alternativeSCPHostName }}"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">SSH Port</label>
+ <input class='form-control' name='sshPort' value="{{ $DMI->sshPort }}"/>
+ </div>
+ <div class="form-group">
+ <button type="submit" class="btn">Update</button>
+ </div>
+ @elseif( $selectedDMIIndex == $dataMovementProtocolsObject::GridFTP)
+ <div class="form-group">
+ <label class="control-label">Select Security Protocol</label>
+ <select name="securityProtocol">
+ @foreach( $securityProtocols as $index => $sp)
+ <option value="{{ $index }}" @if( $DMI->securityProtocol == $index ) selected @endif>{{ $sp }}</option>
+ @endforeach
+ </select>
+ <div>
+ <div class="form-group required">
+ <label class="control-label">Grid FTP End Points</label>
+ @foreach( $DMI->gridFTPEndPoints as $endPoint)
+ <input class="form-control" maxlength="30" name="gridFTPEndPoints[]" required="required" value="{{$endPoint}}"/>
+ @endforeach
+ <button type="button" class="btn btn-sm btn-default add-gridFTPEndPoint">Add More Grid FTP End Points</button>
+ </div>
+ </div>
+ <div class="form-group">
+ <button type="submit" class="btn">Update</button>
+ </div>
+ </div>
+ @elseif( $selectedDMIIndex == $dataMovementProtocolsObject::UNICORE_STORAGE_SERVICE)
+ <div class="form-group">
+ <label class="control-label">Select Security Protocol</label>
+ <select name="securityProtocol">
+ @foreach( $securityProtocols as $index => $sp)
+ <option value="{{ $index }}" @if( $DMI->securityProtocol == $index ) selected @endif>{{ $sp }}</option>
+ @endforeach
+ </select>
+ <div>
+ <div class="form-group required">
+ <label class="control-label">Unicore End Point URL</label>
+ <input class="form-control" maxlength="30" name="unicoreEndPointURL" required="required" value="{{ $DMI->unicoreEndPointURL }}"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <button type="submit" class="btn">Update</button>
+ </div>
+ </div>
+ @endif
+ </form>
+ </div>
+ @endforeach
+ </div>
+ @endif
+ <div class="select-data-movement hide">
+
+ <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit">
+ <input type="hidden" name="crId" class="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="cr-edit" value="dmp"/>
+ <h4>
+ Select the Data Movement Protocol
+ </h4>
+
+ <select name="dataMovementProtocol" class="form-control selected-data-movement-protocol">
+ <option></option>
+ @foreach( $dataMovementProtocols as $index => $dmp)
+ @if( ! in_array( $index, $addedDMI))
+ <option value="{{ $index }}">{{ $dmp }}</option>
+ @endif
+ @endforeach
+ </select>
+
+ <div class="form-group">
+ <button type="submit" class="btn btn-primary dmpSubmit hide">Add Data Movement Protocol</button>
+ </div>
+
+ </form>
+
+ </div>
+
+ </div>
+
+
+ </div>
+
+
+ <div class="resource-manager-block hide">
+ <div class="select-resource-manager-type">
+ <div class="form-group required">
+ <label class="control-label">Select resource manager type</label>
+ <select name="resourceJobManagerType" class="form-control selected-resource-manager" required="required">
+ @foreach( $resourceJobManagerTypes as $index => $rJmT)
+ <option value="{{ $index }}">{{ $rJmT }}</option>
+ @endforeach
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Push Monitoring End Point</label>
+ <input type="text" class="form-control" name="pushMonitoringEndpoint"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Job Manager Bin Path</label>
+ <input type="text" class="form-control" name="jobManagerBinPath"/>
+ </div>
+ <div class="form-group">
+ <h3>Job Manager Commands</h3>
+ @foreach( $jobManagerCommands as $index => $jmc)
+ <label class="control-label">{{ $jmc }}</label>
+ <input class="form-control" name="jobManagerCommands[{{ $index }}]" placeholder="{{ $jmc }}"/>
+ @endforeach
+ </select>
+ </div>
+ </div>
+
+ <div class="ssh-block hide">
+ <div class="form-group required">
+ <label class="control-label">Select Security Protocol</label>
+ <select name="securityProtocol" required>
+ @foreach( $securityProtocols as $index => $sp)
+ <option value="{{ $index }}">{{ $sp }}</option>
+ @endforeach
+ </select>
+ </div>
+
+ <div class="form-group addedScpValue hide">
+ <label class="control-label">Alternate SSH Host Name</label>
+ <input class='form-control' name='alternativeSSHHostName'/>
+ </div>
+ <div class="form-group addedScpValue hide">
+ <label class="control-label">SSH Port</label>
+ <input class='form-control' name='sshPort'/>
+ </div>
+ </div>
+
+ <div class="cloud-block hide">
+ <div class="form-group">
+ <label class="control-label">Node Id</label>
+ <input class="form-control" name="nodeId" placeholder="nodId"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Node Id</label>
+ <input class="form-control" name="nodeId" placeholder="nodId"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Executable Type</label>
+ <input class="form-control" name="nodeId" placeholder="executableType"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Select Provider Name</label>
+ <select class="form-control">
+ <option name="EC2">EC2</option>
+ <option name="AWSEC2">AWEC2</option>
+ <option name="RACKSPACE">RACKSPACE</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="dm-gridftp hide">
+ <div class="form-group required">
+ <label class="control-label">Grid FTP End Points</label>
+ <input class="form-control" maxlength="30" name="gridFTPEndPoints[]" required/>
+ <button type="button" class="btn btn-sm btn-default add-gridFTPEndPoint">Add More Grid FTP End Points</button>
+ </div>
+ </div>
+
+ <!--
+ <div class="form-group">
+ <input type="submit" class="btn btn-primary" name="step2" value="Continue"/>
+ <input type="reset" class="btn btn-success" value="Reset"/>
+ </div>
+
+ -->
+ </div>
+</div>
+
+<!-- modals -->
+
+<div class="modal fade" id="confirm-delete-jsi" tabindex="-1" role="dialog" aria-labelledby="delete-modal" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form action="{{ URL::to('cr/delete-jsi') }}" method="POST">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="jsiId" value="" class="delete-jsi-confirm"/>
+ <div class="modal-header">
+ Confirmation
+ </div>
+ <div class="modal-body">
+ Do you really want to delete this Job Submission Interface ?
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+ <button type="submit" class="btn btn-danger danger">Delete</button>
+ </div>
+ </form>
+
+ </div>
+ </div>
+</div>
+
+<div class="modal fade" id="confirm-delete-dmi" tabindex="-1" role="dialog" aria-labelledby="delete-modal" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form action="{{ URL::to('cr/delete-jsi') }}" method="POST">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="dmiId" value="" class="delete-dmi-confirm"/>
+ <div class="modal-header">
+ Confirmation
+ </div>
+ <div class="modal-body">
+ Do you really want to delete this Data Movement Interface ?
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+ <button type="submit" class="btn btn-danger danger">Delete</button>
+ </div>
+ </div>
+ </div>
+</div>
+
+
+<div class="modal fade" id="add-jsi" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ Add a Job Submission Interface
+ </div>
+ <div class="modal-body add-jsi-body row">
+
+ </div>
+ </div>
+ </div>
+</div>
+
+@if( count( $jobSubmissionInterfaces ) > 1)
+<div class="modal fade" id="update-jsi-priority" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ Update the Priority Order
+ </div>
+ <div class="modal-body">
+ <!-- dirty hack to avoid some code that removes the form tag below this. Needs better fix. -->
+ <form></form>
+
+ <form action="{{URL::to('/')}}/cr/edit" method="POST" id="jsi-priority-form">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="cr-edit" value="jsi-priority"/>
+ @foreach( $computeResource->jobSubmissionInterfaces as $index => $JSI )
+ <div class="row">
+ <div class="col-md-offset-2 col-md-2">
+ <label>
+ {{ $jobSubmissionProtocols[ $JSI->jobSubmissionProtocol] }}
+ </label>
+ </div>
+ <input type="hidden" name="jsi-id[]" maxlength="2" value="{{ $JSI->jobSubmissionInterfaceId }}"/>
+ <div class="col-md-4">
+ <input type="number" name="jsi-priority[]" min="0" max="{{ count( $jobSubmissionInterfaces) }}" value="{{ $JSI->priorityOrder }}" required/>
+ </div>
+ </div>
+ @endforeach
+ <button type="submit" class="btn btn-update">Update</button>
+ <div class='priority-updated alert alert-success hide'>
+ The Job Submission Interface Priority has been updated.
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+</div>
+@endif
+
+<div class="modal fade" id="add-dmi" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ Add a Data Model Interface
+ </div>
+ <div class="modal-body add-dmi-body row">
+
+ </div>
+ </div>
+ </div>
+</div>
+
+@if( count( $dataMovementInterfaces ) > 1)
+<div class="modal fade" id="update-dmi-priority" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ Update the Priority Order
+ </div>
+ <div class="modal-body">
+ <form action="{{URL::to('/')}}/cr/edit" method="POST" id="dmi-priority-form">
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="cr-edit" value="dmi-priority"/>
+ @foreach( $computeResource->dataMovementInterfaces as $index => $DMI )
+ <div class="row">
+ <div class="col-md-offset-2 col-md-2">
+ <label>
+ {{ $dataMovementProtocols[ $DMI->dataMovementProtocol] }}
+ </label>
+ </div>
+ <input type="hidden" name="dmi-id[]" maxlength="2" value="{{ $DMI->dataMovementInterfaceId }}"/>
+ <div class="col-md-4">
+ <input type="number" min="0" name="dmi-priority[]" value="{{ $DMI->priorityOrder }}" required/>
+ </div>
+ </div>
+ @endforeach
+ <button type="submit" class="btn btn-update">Update</button>
+ <div class='priority-updated alert alert-success hide'>
+ The Data Movement Interface Priority has been updated.
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+</div>
+@endif
+
+
+<div class="modal fade" id="delete-queue" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <!-- dirty hack to neutralise form problem in code by just adding an empty form tag before the actual form. Needs fix.-->
+ <form></form>
+ <form action="{{URL::to('/')}}/cr/edit" method="POST"/>
+ <input type="hidden" name="crId" value="{{Input::get('crId') }}"/>
+ <input type="hidden" name="cr-edit" value="delete-queue"/>
+ <input type="hidden" name="queueName" class="delete-queueName" value=""/>
+ <div class="modal-header">
+ Confirmation to Delete Queue
+ </div>
+ <div class="modal-body">
+ Do you really want to delete the Batch Queue - <span class="delete-queueName"></span>?
+ </div>
+ <div class="modal-footer">
+ <button type="submit" class="btn btn-danger">Delete</button>
+ <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+@stop
+
+@section('scripts')
+ @parent
+ {{ HTML::script('js/script.js') }}
+
+ <script type="text/javascript">
+ $(".delete-queue").click( function(){
+ $(".delete-queueName").val( $(this).data("queue-name") );
+ $(".delete-queueName").html( $(this).data("queue-name") );
+ })
+ </script>
+@stop
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/views/resource/view.blade.php
----------------------------------------------------------------------
diff --git a/app/views/resource/view.blade.php b/app/views/resource/view.blade.php
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/views/server-down.blade.php
----------------------------------------------------------------------
diff --git a/app/views/server-down.blade.php b/app/views/server-down.blade.php
new file mode 100644
index 0000000..6e901f7
--- /dev/null
+++ b/app/views/server-down.blade.php
@@ -0,0 +1,16 @@
+@extends('layout.basic')
+
+@section('page-header')
+ @parent
+@stop
+
+@section('content')
+
+
+ <div class="container">
+ <div class="alert alert-danger">
+ <p class="text-center">Our servers are down at the moment. Please try after some time. Thank you for your patience.</p>
+ </div>
+ </div>
+
+@stop
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/artisan
----------------------------------------------------------------------
diff --git a/artisan b/artisan
new file mode 100755
index 0000000..5c408ad
--- /dev/null
+++ b/artisan
@@ -0,0 +1,74 @@
+#!/usr/bin/env php
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Register The Auto Loader
+|--------------------------------------------------------------------------
+|
+| Composer provides a convenient, automatically generated class loader
+| for our application. We just need to utilize it! We'll require it
+| into the script here so that we do not have to worry about the
+| loading of any our classes "manually". Feels great to relax.
+|
+*/
+
+require __DIR__.'/bootstrap/autoload.php';
+
+/*
+|--------------------------------------------------------------------------
+| Turn On The Lights
+|--------------------------------------------------------------------------
+|
+| We need to illuminate PHP development, so let's turn on the lights.
+| This bootstraps the framework and gets it ready for and then it
+| will load up this application so that we can run it and send
+| the responses back to the browser and delight these users.
+|
+*/
+
+$app = require_once __DIR__.'/bootstrap/start.php';
+
+/*
+|--------------------------------------------------------------------------
+| Load The Artisan Console Application
+|--------------------------------------------------------------------------
+|
+| We'll need to run the script to load and return the Artisan console
+| application. We keep this in its own script so that we will load
+| the console application independent of running commands which
+| will allow us to fire commands from Routes when we want to.
+|
+*/
+
+$app->setRequestForConsoleEnvironment();
+
+$artisan = Illuminate\Console\Application::start($app);
+
+/*
+|--------------------------------------------------------------------------
+| Run The Artisan Application
+|--------------------------------------------------------------------------
+|
+| When we run the console application, the current CLI command will be
+| executed in this console and the response sent back to a terminal
+| or another output device for the developers. Here goes nothing!
+|
+*/
+
+$status = $artisan->run();
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once Artisan has finished running. We will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$app->shutdown();
+
+exit($status);
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/bootstrap/autoload.php
----------------------------------------------------------------------
diff --git a/bootstrap/autoload.php b/bootstrap/autoload.php
new file mode 100755
index 0000000..6b32931
--- /dev/null
+++ b/bootstrap/autoload.php
@@ -0,0 +1,75 @@
+<?php
+
+define('LARAVEL_START', microtime(true));
+
+/*
+|--------------------------------------------------------------------------
+| Register The Composer Auto Loader
+|--------------------------------------------------------------------------
+|
+| Composer provides a convenient, automatically generated class loader
+| for our application. We just need to utilize it! We'll require it
+| into the script here so that we do not have to worry about the
+| loading of any our classes "manually". Feels great to relax.
+|
+*/
+
+require __DIR__.'/../vendor/autoload.php';
+
+/*
+|--------------------------------------------------------------------------
+| Include The Compiled Class File
+|--------------------------------------------------------------------------
+|
+| To dramatically increase your application's performance, you may use a
+| compiled class file which contains all of the classes commonly used
+| by a request. The Artisan "optimize" is used to create this file.
+|
+*/
+
+if (file_exists($compiled = __DIR__.'/compiled.php'))
+{
+ require $compiled;
+}
+
+/*
+|--------------------------------------------------------------------------
+| Setup Patchwork UTF-8 Handling
+|--------------------------------------------------------------------------
+|
+| The Patchwork library provides solid handling of UTF-8 strings as well
+| as provides replacements for all mb_* and iconv type functions that
+| are not available by default in PHP. We'll setup this stuff here.
+|
+*/
+
+Patchwork\Utf8\Bootup::initMbstring();
+
+/*
+|--------------------------------------------------------------------------
+| Register The Laravel Auto Loader
+|--------------------------------------------------------------------------
+|
+| We register an auto-loader "behind" the Composer loader that can load
+| model classes on the fly, even if the autoload files have not been
+| regenerated for the application. We'll add it to the stack here.
+|
+*/
+
+Illuminate\Support\ClassLoader::register();
+
+/*
+|--------------------------------------------------------------------------
+| Register The Workbench Loaders
+|--------------------------------------------------------------------------
+|
+| The Laravel workbench provides a convenient place to develop packages
+| when working locally. However we will need to load in the Composer
+| auto-load files for the packages so that these can be used here.
+|
+*/
+
+if (is_dir($workbench = __DIR__.'/../workbench'))
+{
+ Illuminate\Workbench\Starter::start($workbench);
+}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/bootstrap/paths.php
----------------------------------------------------------------------
diff --git a/bootstrap/paths.php b/bootstrap/paths.php
new file mode 100755
index 0000000..5a1f640
--- /dev/null
+++ b/bootstrap/paths.php
@@ -0,0 +1,57 @@
+<?php
+
+return array(
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Path
+ |--------------------------------------------------------------------------
+ |
+ | Here we just defined the path to the application directory. Most likely
+ | you will never need to change this value as the default setup should
+ | work perfectly fine for the vast majority of all our applications.
+ |
+ */
+
+ 'app' => __DIR__.'/../app',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Public Path
+ |--------------------------------------------------------------------------
+ |
+ | The public path contains the assets for your web application, such as
+ | your JavaScript and CSS files, and also contains the primary entry
+ | point for web requests into these applications from the outside.
+ |
+ */
+
+ 'public' => __DIR__.'/../public',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Base Path
+ |--------------------------------------------------------------------------
+ |
+ | The base path is the root of the Laravel installation. Most likely you
+ | will not need to change this value. But, if for some wild reason it
+ | is necessary you will do so here, just proceed with some caution.
+ |
+ */
+
+ 'base' => __DIR__.'/..',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Storage Path
+ |--------------------------------------------------------------------------
+ |
+ | The storage path is used by Laravel to store cached Blade views, logs
+ | and other pieces of information. You may modify the path here when
+ | you want to change the location of this directory for your apps.
+ |
+ */
+
+ 'storage' => __DIR__.'/../app/storage',
+
+);
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/bootstrap/start.php
----------------------------------------------------------------------
diff --git a/bootstrap/start.php b/bootstrap/start.php
new file mode 100755
index 0000000..84559be
--- /dev/null
+++ b/bootstrap/start.php
@@ -0,0 +1,73 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Create The Application
+|--------------------------------------------------------------------------
+|
+| The first thing we will do is create a new Laravel application instance
+| which serves as the "glue" for all the components of Laravel, and is
+| the IoC container for the system binding all of the various parts.
+|
+*/
+
+$app = new Illuminate\Foundation\Application;
+
+/*
+|--------------------------------------------------------------------------
+| Detect The Application Environment
+|--------------------------------------------------------------------------
+|
+| Laravel takes a dead simple approach to your application environments
+| so you can just specify a machine name for the host that matches a
+| given environment, then we will automatically detect it for you.
+|
+*/
+
+$env = $app->detectEnvironment(array(
+
+ 'local' => array('homestead'),
+
+));
+
+/*
+|--------------------------------------------------------------------------
+| Bind Paths
+|--------------------------------------------------------------------------
+|
+| Here we are binding the paths configured in paths.php to the app. You
+| should not be changing these here. If you need to change these you
+| may do so within the paths.php file and they will be bound here.
+|
+*/
+
+$app->bindInstallPaths(require __DIR__.'/paths.php');
+
+/*
+|--------------------------------------------------------------------------
+| Load The Application
+|--------------------------------------------------------------------------
+|
+| Here we will load this Illuminate application. We will keep this in a
+| separate location so we can isolate the creation of an application
+| from the actual running of the application with a given request.
+|
+*/
+
+$framework = $app['path.base'].
+ '/vendor/laravel/framework/src';
+
+require $framework.'/Illuminate/Foundation/start.php';
+
+/*
+|--------------------------------------------------------------------------
+| Return The Application
+|--------------------------------------------------------------------------
+|
+| This script returns the application instance. The instance is given to
+| the calling script so we can separate the building of the instances
+| from the actual running of the application and sending responses.
+|
+*/
+
+return $app;
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/composer.json
----------------------------------------------------------------------
diff --git a/composer.json b/composer.json
new file mode 100755
index 0000000..97a580d
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,38 @@
+{
+ "name": "laravel/laravel",
+ "description": "The Laravel Framework.",
+ "keywords": ["framework", "laravel"],
+ "license": "MIT",
+ "require": {
+ "laravel/framework": "4.2.*",
+ "apache/thrift": "1.0.*@dev"
+ },
+ "autoload": {
+ "classmap": [
+ "app/commands",
+ "app/controllers",
+ "app/models",
+ "app/database/migrations",
+ "app/database/seeds",
+ "app/tests/TestCase.php",
+ "app/libraries"
+ ]
+ },
+ "scripts": {
+ "post-install-cmd": [
+ "php artisan clear-compiled",
+ "php artisan optimize"
+ ],
+ "post-update-cmd": [
+ "php artisan clear-compiled",
+ "php artisan optimize"
+ ],
+ "post-create-project-cmd": [
+ "php artisan key:generate"
+ ]
+ },
+ "config": {
+ "preferred-install": "dist"
+ },
+ "minimum-stability": "stable"
+}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/phpunit.xml
----------------------------------------------------------------------
diff --git a/phpunit.xml b/phpunit.xml
new file mode 100755
index 0000000..c330420
--- /dev/null
+++ b/phpunit.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit backupGlobals="false"
+ backupStaticAttributes="false"
+ bootstrap="bootstrap/autoload.php"
+ colors="true"
+ convertErrorsToExceptions="true"
+ convertNoticesToExceptions="true"
+ convertWarningsToExceptions="true"
+ processIsolation="false"
+ stopOnFailure="false"
+ syntaxCheck="false"
+>
+ <testsuites>
+ <testsuite name="Application Test Suite">
+ <directory>./app/tests/</directory>
+ </testsuite>
+ </testsuites>
+</phpunit>
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/public/.htaccess
----------------------------------------------------------------------
diff --git a/public/.htaccess b/public/.htaccess
new file mode 100755
index 0000000..77827ae
--- /dev/null
+++ b/public/.htaccess
@@ -0,0 +1,15 @@
+<IfModule mod_rewrite.c>
+ <IfModule mod_negotiation.c>
+ Options -MultiViews
+ </IfModule>
+
+ RewriteEngine On
+
+ # Redirect Trailing Slashes...
+ RewriteRule ^(.*)/$ /$1 [L,R=301]
+
+ # Handle Front Controller...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^ index.php [L]
+</IfModule>
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/public/assets/PoweredbyAiravata_Small.png
----------------------------------------------------------------------
diff --git a/public/assets/PoweredbyAiravata_Small.png b/public/assets/PoweredbyAiravata_Small.png
new file mode 100755
index 0000000..7178e31
Binary files /dev/null and b/public/assets/PoweredbyAiravata_Small.png differ
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/public/assets/favicon.ico
----------------------------------------------------------------------
diff --git a/public/assets/favicon.ico b/public/assets/favicon.ico
new file mode 100755
index 0000000..541659e
Binary files /dev/null and b/public/assets/favicon.ico differ
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/public/assets/scigap-header-logo.png
----------------------------------------------------------------------
diff --git a/public/assets/scigap-header-logo.png b/public/assets/scigap-header-logo.png
new file mode 100755
index 0000000..6e8bf4a
Binary files /dev/null and b/public/assets/scigap-header-logo.png differ
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/public/css/admin.css
----------------------------------------------------------------------
diff --git a/public/css/admin.css b/public/css/admin.css
new file mode 100644
index 0000000..49dd40c
--- /dev/null
+++ b/public/css/admin.css
@@ -0,0 +1,238 @@
+/*!
+ * Start Bootstrap - SB Admin Bootstrap Admin Template (http://startbootstrap.com)
+ * Code licensed under the Apache License v2.0.
+ * For details, see http://www.apache.org/licenses/LICENSE-2.0.
+ */
+
+/* Global Styles */
+
+body {
+ /*margin-top: 100px;*/
+ background-color: #222;
+}
+
+@media(min-width:768px) {
+ body {
+ /*margin-top: 50px;*/
+ }
+}
+
+#wrapper {
+ padding-left: 0;
+}
+
+#page-wrapper {
+ width: 100%;
+ padding: 0;
+ background-color: #fff;
+}
+
+.huge {
+ font-size: 50px;
+ line-height: normal;
+}
+
+@media(min-width:768px) {
+ #wrapper {
+ padding-left: 225px;
+ }
+
+ #page-wrapper {
+ padding: 10px;
+ }
+}
+
+/* Top Navigation */
+
+.top-nav {
+ padding: 0 15px;
+}
+
+.top-nav>li {
+ display: inline-block;
+ float: left;
+}
+
+.top-nav>li>a {
+ padding-top: 15px;
+ padding-bottom: 15px;
+ line-height: 20px;
+ color: #999;
+}
+
+.top-nav>li>a:hover,
+.top-nav>li>a:focus,
+.top-nav>.open>a,
+.top-nav>.open>a:hover,
+.top-nav>.open>a:focus {
+ color: #fff;
+ background-color: #000;
+}
+
+.top-nav>.open>.dropdown-menu {
+ float: left;
+ position: absolute;
+ margin-top: 0;
+ border: 1px solid rgba(0,0,0,.15);
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ background-color: #fff;
+ -webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175);
+ box-shadow: 0 6px 12px rgba(0,0,0,.175);
+}
+
+.top-nav>.open>.dropdown-menu>li>a {
+ white-space: normal;
+}
+
+ul.message-dropdown {
+ padding: 0;
+ max-height: 250px;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+li.message-preview {
+ width: 275px;
+ border-bottom: 1px solid rgba(0,0,0,.15);
+}
+
+li.message-preview>a {
+ padding-top: 15px;
+ padding-bottom: 15px;
+}
+
+li.message-footer {
+ margin: 5px 0;
+}
+
+ul.alert-dropdown {
+ width: 200px;
+}
+
+/* Side Navigation */
+
+@media(min-width:768px) {
+ .side-nav {
+ position: fixed;
+ top: 51px;
+ left: 225px;
+ width: 225px;
+ margin-left: -225px;
+ border: none;
+ border-radius: 0;
+ overflow-y: auto;
+ background-color: #222;
+ }
+
+ .side-nav>li>a {
+ width: 225px;
+ }
+
+ .side-nav li a:hover,
+ .side-nav li a:focus {
+ outline: none;
+ background-color: #000 !important;
+ }
+}
+
+.side-nav>li>ul {
+ padding: 0;
+}
+
+.side-nav>li>ul>li>a {
+ display: block;
+ padding: 10px 15px 10px 38px;
+ text-decoration: none;
+ color: #999;
+}
+
+.side-nav>li>ul>li>a:hover {
+ color: #fff;
+}
+
+/* Flot Chart Containers */
+
+.flot-chart {
+ display: block;
+ height: 400px;
+}
+
+.flot-chart-content {
+ width: 100%;
+ height: 100%;
+}
+
+/* Custom Colored Panels */
+
+.huge {
+ font-size: 40px;
+}
+
+.panel-green {
+ border-color: #5cb85c;
+}
+
+.panel-green .panel-heading {
+ border-color: #5cb85c;
+ color: #fff;
+ background-color: #5cb85c;
+}
+
+.panel-green a {
+ color: #5cb85c;
+}
+
+.panel-green a:hover {
+ color: #3d8b3d;
+}
+
+.panel-red {
+ border-color: #d9534f;
+}
+
+.panel-red .panel-heading {
+ border-color: #d9534f;
+ color: #fff;
+ background-color: #d9534f;
+}
+
+.panel-red a {
+ color: #d9534f;
+}
+
+.panel-red a:hover {
+ color: #b52b27;
+}
+
+.panel-yellow {
+ border-color: #f0ad4e;
+}
+
+.panel-yellow .panel-heading {
+ border-color: #f0ad4e;
+ color: #fff;
+ background-color: #f0ad4e;
+}
+
+.panel-yellow a {
+ color: #f0ad4e;
+}
+
+.panel-yellow a:hover {
+ color: #df8a13;
+}
+
+/* ------------------------------------ css addition ------------------*/
+
+.navbar {
+ margin-bottom: 0;
+}
+.navbar-ex1-collapse li a{
+ color: #9d9d9d;
+}
+
+.navbar-ex1-collapse .active a{
+ background-color: #000;
+ color: #fff;
+}
\ No newline at end of file