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

Reply via email to