Repository: airavata-php-gateway Updated Branches: refs/heads/develop e47baa67a -> 6d121230c
AIRAVATA-2152 Initial attempt at user compute resources page 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/0be549c6 Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/0be549c6 Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/0be549c6 Branch: refs/heads/develop Commit: 0be549c613690aae7b55dd0b72c1e3ac1d0d2d97 Parents: e47baa6 Author: Marcus Christie <[email protected]> Authored: Wed Oct 12 17:19:22 2016 -0400 Committer: Marcus Christie <[email protected]> Committed: Fri Oct 28 13:11:11 2016 -0400 ---------------------------------------------------------------------- app/controllers/AccountController.php | 13 +- app/views/account/compute-resources.blade.php | 17 --- .../account/user-compute-resources.blade.php | 62 +++++++++ .../user-compute-resource-preferences.blade.php | 128 +++++++++++++++++++ 4 files changed, 201 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/0be549c6/app/controllers/AccountController.php ---------------------------------------------------------------------- diff --git a/app/controllers/AccountController.php b/app/controllers/AccountController.php index 2b3eced..183a427 100644 --- a/app/controllers/AccountController.php +++ b/app/controllers/AccountController.php @@ -537,8 +537,17 @@ class AccountController extends BaseController public function getComputeResources(){ $userResourceProfile = URPUtilities::get_or_create_user_resource_profile(); - return View::make("account/compute-resources", array( - "userResourceProfile" => $userResourceProfile + $allCRs = CRUtilities::getAllCRObjects(); + // TODO: actually get all of the user's credential store tokens, including description + $tokens = array( + $userResourceProfile->credentialStoreToken => "Default SSH Key" + ); + return View::make("account/user-compute-resources", array( + "userResourceProfile" => $userResourceProfile, + "computeResources" => $allCRs, + // TODO: only show compute resources that user hasn't already configured with an account + "unselectedCRs" => $allCRs, + "tokens" => $tokens )); } } http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/0be549c6/app/views/account/compute-resources.blade.php ---------------------------------------------------------------------- diff --git a/app/views/account/compute-resources.blade.php b/app/views/account/compute-resources.blade.php deleted file mode 100644 index 89d64a8..0000000 --- a/app/views/account/compute-resources.blade.php +++ /dev/null @@ -1,17 +0,0 @@ -@extends('layout.basic') - -@section('page-header') -@parent -@stop - -@section('content') -<div class="container"> -{{var_dump($userResourceProfile)}} -</div> - -@stop - -@section('scripts') -@parent -<script></script> -@stop \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/0be549c6/app/views/account/user-compute-resources.blade.php ---------------------------------------------------------------------- diff --git a/app/views/account/user-compute-resources.blade.php b/app/views/account/user-compute-resources.blade.php new file mode 100644 index 0000000..7838623 --- /dev/null +++ b/app/views/account/user-compute-resources.blade.php @@ -0,0 +1,62 @@ +@extends('layout.basic') + +@section('page-header') +@parent +@stop + +@section('content') +<!-- TODO: datepicker for reservation date doesn't work yet --> +@foreach( (array)$computeResources as $index => $cr) +@include('partials/user-compute-resource-preferences', array('computeResource' => $cr)) +@endforeach +<div class="container"> + <h1>Compute Resource Accounts</h1> + <div class="row"> + <div class="col-md-12"> + <button class="btn btn-default add-user-cr"> + <span class="glyphicon glyphicon-plus"></span> Add a Compute Resource Account + </button> + </div> + </div> +</div> +<div class="add-user-compute-resource-block hide"> + <div class="well"> + <!-- TODO: need to implement /add-user-crp --> + <form action="{{URL::to('/')}}/account/add-user-crp" method="POST"> + <input type="hidden" name="gatewayId" id="gatewayId" value="{{$userResourceProfile->gatewayID}}"> + + <div class="input-group"> + <select name="computeResourceId" class="cr-select form-control"> + <option value="">Select a Compute Resource and configure your account</option> + @foreach( (array)$unselectedCRs as $index => $cr) + <option value="{{ $cr->computeResourceId}}">{{ $cr->hostName }}</option> + @endforeach + </select> + <!-- TODO: implement the remove behavior --> + <span class="input-group-addon remove-cr" style="cursor:pointer;">x</span> + </div> + <div class="user-cr-pref-space form-horizontal"></div> + </form> + </div> +</div> +<pre> + {{var_dump($userResourceProfile)}} +</pre> +@stop + +@section('scripts') +@parent +<script> + +$('.add-user-cr').on('click', function(){ + + $(this).after( $(".add-user-compute-resource-block").html() ); +}); +$("body").on("change", ".cr-select", function(){ + crId = $(this).val(); + //This is done as Jquery creates problems when using period(.) in id or class. + crId = crId.replace(/\./g,"_"); + $(".user-cr-pref-space").html($("#cr-" + crId).html()); +}); +</script> +@stop \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/0be549c6/app/views/partials/user-compute-resource-preferences.blade.php ---------------------------------------------------------------------- diff --git a/app/views/partials/user-compute-resource-preferences.blade.php b/app/views/partials/user-compute-resource-preferences.blade.php new file mode 100644 index 0000000..e930e53 --- /dev/null +++ b/app/views/partials/user-compute-resource-preferences.blade.php @@ -0,0 +1,128 @@ +<!-- String replace is done as Jquery creates problems when using period(.) in id or class. --> +<div id="cr-{{ str_replace( '.', "_", $computeResource->computeResourceId) }}" class="@if(isset( $show) ) @if( !$show) hide @endif @else hide @endif"> +<h3 class="text-center">Set Preferences</h3> +<div class="form-group"> + <label class="control-label col-md-3">Login Username</label> + + <div class="col-md-9"> + <input type="text" name="loginUserName" class="form-control" + value="@if( isset( $preferences) ){{$preferences->loginUserName}}@endif"/> + </div> +</div> +<div class="form-group"> + <label class="control-label col-md-3">Preferred Batch Queue</label> + + <div class="col-md-9"> + <select name="preferredBatchQueue" class="form-control"> + <option value="">Select a Queue from list</option> + @foreach( (array)$computeResource->batchQueues as $index => $queue) + <option value="{{ $queue->queueName}}" + @if( isset( $preferences) ) @if( $preferences->preferredBatchQueue == $queue->queueName) selected @endif + @endif>{{ $queue->queueName}}</option> + @endforeach + </select> + </div> +</div> +<div class="form-group"> + <label class="control-label col-md-3">Scratch Location</label> + + <div class="col-md-9"> + <input type="text" name="scratchLocation" class="form-control" + value="@if( isset( $preferences) ){{$preferences->scratchLocation}}@endif"/> + </div> +</div> + +<div class="form-group"> + <label class="control-label col-md-3">Allocation Project Number</label> + + <div class="col-md-9"> + <input type="text" name="allocationProjectNumber" class="form-control" + value="@if( isset( $preferences) ){{$preferences->allocationProjectNumber}}@endif"/> + </div> +</div> + +<div class="form-group"> + <label class="control-label col-md-3">Resource Specific Credential Store Token</label> + + <div class="col-md-9"> + <select class="form-control gateway-credential-store-token" name="resourceSpecificCredentialStoreToken" > + <option value="">Select a Credential Token from Store</option> + @foreach( $tokens as $token => $description ) + <option value="{{$token}}" @if( isset( $preferences) ) @if( $token == $preferences->resourceSpecificCredentialStoreToken) selected @endif @endif>{{$description}}</option> + @endforeach + <option value="">DO-NO-SET</option> + </select> + <!-- + <input type="text" name="resourceSpecificCredentialStoreToken" class="form-control" + value="@if( isset( $preferences) ){{$preferences->resourceSpecificCredentialStoreToken}}@endif"/> + --> + </div> +</div> + +<div class="form-group"> + <label class="control-label col-md-3">Quality of Service</label> + + <div class="col-md-9"> + <input type="text" name="qualityOfService" class="qualityOfService form-control" + value="@if( isset( $preferences) ){{$preferences->qualityOfService}}@endif" data-toggle="popover" data-placement="bottom" data-content="Format: <queue name1>=<qos1>,<queue name2>=<qos2>"/> + </div> +</div> + +<div class="form-group"> + <label class="control-label col-md-3">Reservation Name</label> + + <div class="col-md-9"> + <input type="text" name="reservation" class="form-control" + value="@if( isset( $preferences) ){{$preferences->reservation}}@endif"/> + </div> +</div> +<?php +//to add or remove time according to local hours. +$timeDifference = Session::get("user_timezone"); +$addOrSubtract = "-"; +if( $timeDifference < 0) + $addOrSubtract = "+"; + +$reservationStartTime = ""; +if( isset( $preferences) && $preferences->reservationStartTime != '') + $reservationStartTime = strtotime( $addOrSubtract . " " . Session::get("user_timezone") . " hours", $preferences->reservationStartTime/1000); + +$reservationEndTime = ""; +if( isset( $preferences) && $preferences->reservationEndTime != '') + $reservationEndTime = strtotime( $addOrSubtract . " " . Session::get("user_timezone") . " hours", $preferences->reservationEndTime/1000); + +?> +<div class="form-group col-md-6"> + <label class="control-label col-md-3">Reservation Start Time</label> + + <div class="input-group date datetimepicker1"> + <input type="text" name="reservationStartTime" class="form-control" + value="@if( isset( $preferences) )@if( trim($preferences->reservationStartTime) != '' || $preferences->reservationStartTime != null){{date('m/d/Y h:i:s A', intval( $reservationStartTime))}}@endif @endif"/> + <span class="input-group-addon"> + <span class="glyphicon glyphicon-calendar"></span> + </span> + </div> +</div> + +<div class="form-group col-md-6"> + <label class="control-label col-md-3">Reservation End Time</label> + + <div class="input-group date datetimepicker2"> + <input type="text" name="reservationEndTime" class="form-control" + value="@if( isset( $preferences) )@if( trim($preferences->reservationEndTime) != ''|| $preferences->reservationStartTime != null){{date('m/d/Y h:i:s A', intval($reservationEndTime))}}@endif @endif"/> + <span class="input-group-addon"> + <span class="glyphicon glyphicon-calendar"></span> + </span> + </div> +</div> + +<div class="form-group text-center"> + <input type="submit" class="btn btn-primary submit-user-crp-form" value="Save"/> +</div> +</div> + +<div class="loading-gif text-center hide"> + <img src='{{URL::to('/')}}/assets/ajax-loader.gif'/> +</div> +<div class="col-md-offset-2 col-md-8 alert alert-success hide">Compute Resource Preferences have been updated.</div> +<div class="col-md-offset-2 col-md-8 alert alert-danger hide">An error has occurred.</div> \ No newline at end of file
