AIRAVATA-2152 Initial UI for updating UserComputeResourcePreferences
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/5940f9be Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/5940f9be Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/5940f9be Branch: refs/heads/develop Commit: 5940f9be2bace0cb9e3997047d34cb564d652b27 Parents: 4068347 Author: Marcus Christie <[email protected]> Authored: Thu Oct 13 16:06:27 2016 -0400 Committer: Marcus Christie <[email protected]> Committed: Fri Oct 28 15:03:36 2016 -0400 ---------------------------------------------------------------------- app/controllers/AccountController.php | 19 +++++++- app/libraries/URPUtilities.php | 11 +++-- app/routes.php | 3 +- .../account/user-compute-resources.blade.php | 46 ++++++++++++++++++++ .../user-compute-resource-preferences.blade.php | 5 +++ 5 files changed, 79 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5940f9be/app/controllers/AccountController.php ---------------------------------------------------------------------- diff --git a/app/controllers/AccountController.php b/app/controllers/AccountController.php index 35f8235..1fe9d80 100644 --- a/app/controllers/AccountController.php +++ b/app/controllers/AccountController.php @@ -539,6 +539,14 @@ class AccountController extends BaseController public function getComputeResources(){ $userResourceProfile = URPUtilities::get_or_create_user_resource_profile(); $allCRs = CRUtilities::getAllCRObjects(); + foreach( $allCRs as $index => $crObject) + { + $allCRsById[$crObject->computeResourceId] = $crObject; + } + // Add crDetails to each UserComputeResourcePreference + foreach ($userResourceProfile->userComputeResourcePreferences as $index => $userCompResPref) { + $userCompResPref->crDetails = $allCRsById[$userCompResPref->computeResourceId]; + } // TODO: actually get all of the user's credential store tokens, including description $tokens = array( $userResourceProfile->credentialStoreToken => "Default SSH Key" @@ -552,11 +560,20 @@ class AccountController extends BaseController )); } - public function modifyUserCRP() { + public function addUserComputeResourcePreference() { + // TODO: flash message isn't setup in the view if( URPUtilities::add_or_update_user_CRP( Input::all()) ) { return Redirect::to("account/user-compute-resources")->with("message","Compute Resource Account Settings have been saved."); } } + + public function updateUserComputeResourcePreference() { + + if( URPUtilities::add_or_update_user_CRP( Input::all(), true ) ) + { + return Redirect::to("account/user-compute-resources")->with("message","Compute Resource Account Settings have been updated."); + } + } } http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5940f9be/app/libraries/URPUtilities.php ---------------------------------------------------------------------- diff --git a/app/libraries/URPUtilities.php b/app/libraries/URPUtilities.php index 005b5cf..026b06e 100644 --- a/app/libraries/URPUtilities.php +++ b/app/libraries/URPUtilities.php @@ -70,7 +70,7 @@ class URPUtilities return $credentialSummaryMap; } - public static function add_or_update_user_CRP($inputs) + public static function add_or_update_user_CRP($inputs, $update = false) { $timeDifference = Session::get("user_timezone"); $addOrSubtract = "-"; @@ -84,8 +84,13 @@ class URPUtilities $userComputeResourcePreference = new UserComputeResourcePreference($inputs); $userId = Session::get('username'); - - return Airavata::addUserComputeResourcePreference(Session::get('authz-token'), $userId, $inputs["gatewayId"], $inputs["computeResourceId"], $userComputeResourcePreference); + if ($update) + { + return Airavata::updateUserComputeResourcePreference(Session::get('authz-token'), $userId, $inputs["gatewayId"], $inputs["computeResourceId"], $userComputeResourcePreference); + } else + { + return Airavata::addUserComputeResourcePreference(Session::get('authz-token'), $userId, $inputs["gatewayId"], $inputs["computeResourceId"], $userComputeResourcePreference); + } } // Only used for testing http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5940f9be/app/routes.php ---------------------------------------------------------------------- diff --git a/app/routes.php b/app/routes.php index 8227064..b8b5aeb 100755 --- a/app/routes.php +++ b/app/routes.php @@ -54,7 +54,8 @@ Route::post("account/add-credential", "AccountController@addCredential"); Route::post("account/delete-credential", "AccountController@deleteCredential"); Route::get("account/user-compute-resources", "AccountController@getComputeResources"); -Route::post("account/add-user-crp", "AccountController@modifyUserCRP"); +Route::post("account/add-user-crp", "AccountController@addUserComputeResourcePreference"); +Route::post("account/update-user-crp", "AccountController@updateUserComputeResourcePreference"); /* * The following routes will not work without logging in. http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5940f9be/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 index 7838623..f460a53 100644 --- a/app/views/account/user-compute-resources.blade.php +++ b/app/views/account/user-compute-resources.blade.php @@ -18,6 +18,52 @@ </button> </div> </div> + <div class="row"> + <div class="col-md-12"> + <div class="panel-group" id="accordion"> + @foreach( (array)$userResourceProfile->userComputeResourcePreferences as $indexUserCRP => $user_crp ) + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"> + <a class="accordion-toggle collapsed" + data-toggle="collapse" data-parent="#accordion" + href="#collapse-user-crp-{{$indexUserCRP}}"> + HOSTNAME TODO: {{$user_crp->computeResourceId}} + </a> + <div class="pull-right col-md-2 fade"> + <span class="glyphicon glyphicon-remove remove-compute-resource" + style="cursor:pointer;" data-toggle="modal" + data-target="#remove-compute-resource-block" + data-cr-name="TODO" + data-cr-id="{{$user_crp->computeResourceId}}" + data-gp-id="{{ $userResourceProfile->gatewayID }}"></span> + </div> + </h4> + </div> + <div id="collapse-user-crp-{{$indexUserCRP}}" + class="panel-collapse collapse"> + <div class="panel-body"> + <form class="set-cr-preference" action="{{URL::to('/')}}/account/update-user-crp" + method="POST"> + <input type="hidden" name="gatewayId" id="gatewayId" + value="{{$userResourceProfile->gatewayID}}"> + <input type="hidden" name="computeResourceId" + id="gatewayId" + value="{{$user_crp->computeResourceId}}"> + + <div class="form-horizontal"> + @include('partials/user-compute-resource-preferences', + array('computeResource' => $user_crp->crDetails, + 'preferences'=>$user_crp, 'show'=>true)) + </div> + </form> + </div> + </div> + </div> + @endforeach + </div> + </div> + </div> </div> <div class="add-user-compute-resource-block hide"> <div class="well"> http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5940f9be/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 index e930e53..f045bd0 100644 --- a/app/views/partials/user-compute-resource-preferences.blade.php +++ b/app/views/partials/user-compute-resource-preferences.blade.php @@ -1,3 +1,8 @@ +<!-- partial template variables: + computeResource - (required, ComputeResourceDescription) the compute resource object + preferences - (optional, UserComputeResourcePreference) the saved preference data + show - (optional, boolean) +--> <!-- 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>
