You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by nd...@apache.org on 2015/05/01 23:33:22 UTC
[35/57] [partial] airavata-php-gateway git commit: AIRAVATA 1632 +
Job Description for Admin Dashboard
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/experiment-info.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/experiment-info.blade.php b/app/views/partials/experiment-info.blade.php
new file mode 100644
index 0000000..90c7ae7
--- /dev/null
+++ b/app/views/partials/experiment-info.blade.php
@@ -0,0 +1,136 @@
+ <div class="container" style="max-width: 750px;">
+
+ @if(isset( $invalidExperimentId ) )
+ <div class="alert alert-danger">
+ The Experiment ID does not exist. Please go to correct experiment.
+ </div>
+ @else
+ <h1>
+ Experiment Summary
+ @if( !isset($dashboard))
+ <small><a href="{{ URL::to('/') }}/experiment/summary?expId={{ $experiment->experimentID }}"
+ title="Refresh"><span class="glyphicon glyphicon-refresh refresh-exp"></span></a></small>
+ @endif
+ </h1>
+
+
+ <table class="table">
+ <tr>
+ <td><strong>Name</strong></td>
+ <td><?php echo $experiment->name; ?></td>
+ </tr>
+ <tr>
+ <td><strong>Description</strong></td>
+ <td><?php echo $experiment->description; ?></td>
+ </tr>
+ <tr>
+ <td><strong>Project</strong></td>
+ <td><?php echo $project->name; ?></td>
+ </tr>
+ <tr>
+ <td><strong>Application</strong></td>
+ <td><?php echo $expVal["applicationInterface"]->applicationName; ?></td>
+ </tr>
+ <tr>
+ <td><strong>Compute resource</strong></td>
+ <td><?php echo $expVal["computeResource"]->hostName; ?></td>
+ </tr>
+ <tr>
+ <td><strong>Experiment Status</strong></td>
+ <td class="exp-status"><?php echo $expVal["experimentStatusString"]; ?></td>
+ </tr>
+ <?php
+ if ($expVal["jobState"]) echo '
+ <tr>
+ <td><strong>Job Status</strong></td>
+ <td>' . $expVal["jobState"] . '</td>
+ </tr>
+ ';
+ ?>
+
+ @if( isset($dashboard))
+ <tr>
+ <td><strong>Working Dir</strong></td>
+
+ <?php
+ foreach($jobDetails as $job) echo '
+ <td>' . $job->workingDir . '</td>
+ ';
+ ?>
+ </tr>
+ <tr>
+ <td><strong>Job Description</strong></td>
+
+ <?php
+ foreach($jobDetails as $job) echo '
+ <td>' . $job->jobDescription . '</td>
+ ';
+ ?>
+ </tr>
+ @endif
+
+ <tr>
+ <td><strong>Creation time</strong></td>
+ <td><?php echo $expVal["experimentCreationTime"]; ?></td>
+ </tr>
+ <tr>
+ <td><strong>Update time</strong></td>
+ <td><?php echo $expVal["experimentTimeOfStateChange"]; ?></td>
+ </tr>
+ <tr>
+ <td><strong>Inputs</strong></td>
+ <td><?php Utilities::list_input_files($experiment); ?></td>
+ </tr>
+ <tr>
+ <td><strong>Outputs</strong></td>
+ <td><?php Utilities::list_output_files($experiment, $expVal["experimentStatusString"]); ?></td>
+ </tr>
+ @if( $expVal["experimentStatusString"] == "FAILED")
+ <tr>
+ <td><strong>Errors</strong></td>
+ <td>
+ @foreach( (array)$experiment->errors as $error)
+ {{ $error->actualErrorMessage }}
+ @endforeach
+ </td>
+ </tr>
+ @endif
+
+ </table>
+
+ @if( !isset( $dashboard))
+ <form action="{{URL::to('/') }}/experiment/summary" method="post" role="form">
+ <div class="btn-toolbar">
+ <input name="launch"
+ type="submit"
+ class="btn btn-success"
+ value="Launch"
+ title="Launch the experiment" <?php if(!$expVal["editable"] ) echo 'disabled' ?>>
+ <a href="{{URL::to('/') }}/experiment/cancel?expId={{ $experiment->experimentID }}"
+ class="btn btn-default"
+ role="button"
+ title="Edit the experiment's settings" <?php if(!$expVal["cancelable"] ) echo 'disabled' ?>>
+ <input name="cancel" type="submit" class="btn btn-warning" value="Cancel" <?php if(!$expVal["cancelable"]) echo 'disabled'; ?> >
+ </a>
+ <input name="clone"
+ type="submit"
+ class="btn btn-primary"
+ value="Clone"
+ title="Create a clone of the experiment. Cloning is the only way to change an experiment's settings
+ after it has been launched.">
+ <input type="hidden" name="expId" value="{{ Input::get('expId') }}"/>
+ <a href="{{URL::to('/') }}/experiment/edit?expId={{ $experiment->experimentID }}"
+ class="btn btn-default"
+ role="button"
+ title="Edit the experiment's settings" <?php if(!$expVal["editable"] ) echo 'disabled' ?>>
+ <span class="glyphicon glyphicon-pencil"></span>
+ Edit
+ </a>
+ </div>
+ </form>
+ @endif
+ <input type="hidden" id="expObj" value="{{ htmlentities( json_encode( $experiment)) }}"/>
+
+ <!-- check of correct experiment Id ends here -->
+ @endif
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/experiment-inputs.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/experiment-inputs.blade.php b/app/views/partials/experiment-inputs.blade.php
new file mode 100644
index 0000000..475e065
--- /dev/null
+++ b/app/views/partials/experiment-inputs.blade.php
@@ -0,0 +1,111 @@
+<div class="form-group required">
+ <label for="experiment-name" class="control-label">Experiment Name</label>
+ <input type="text" class="form-control" name="experiment-name" id="experiment-name" placeholder="Enter experiment name" autofocus required="required" {{ $expInputs['disabled'] }} value="{{ $expInputs['experimentName'] }}">
+</div>
+<div class="form-group">
+ <label for="experiment-description">Experiment Description</label>
+ <textarea class="form-control" name="experiment-description" id="experiment-description" placeholder="Optional: Enter a short description of the experiment" {{ $expInputs['disabled'] }}>{{ $expInputs['experimentDescription'] }}</textarea>
+</div>
+<div class="form-group required">
+ <label for="project" class="control-label">Project</label>
+ @if( isset( $expInputs['cloning']))
+ {{ Utilities::create_project_select($expInputs['experiment']->projectID, $expInputs['expVal']['editable']) }}
+ @else
+ {{ Utilities::create_project_select($expInputs['project'], !$expInputs['disabled']) }}
+ @endif
+</div>
+ <div class="form-group">
+ <label for="application">Application</label>
+ @if( isset( $expInputs['cloning']))
+ {{ Utilities::create_application_select($expInputs['application'], false)}}
+ @else
+ {{ Utilities::create_application_select($expInputs['application'], !$expInputs['disabled']) }}
+ @endif
+</div>
+
+<div class="panel panel-default">
+ <div class="panel-heading">Application configuration</div>
+ <div class="panel-body">
+ <label>Application input</label>
+ <div class="well">
+ <input type="hidden" id="allowedFileSize" value="{{$expInputs['allowedFileSize']}}"/>
+ @if( isset( $expInputs['cloning']))
+ <div class="form-group">
+ <p><strong>Current inputs</strong></p>
+ {{ Utilities::list_input_files($expInputs['experiment']) }}
+ </div>
+ {{ Utilities::create_inputs($expInputs['application'], false) }}
+ @else
+ {{ Utilities::create_inputs($expInputs['application'], true) }}
+ @endif
+
+ </div>
+ <div class="form-group">
+ <label for="compute-resource">Compute Resource</label>
+ @if( isset( $expInputs['cloning']))
+ {{ Utilities::create_compute_resources_select($expInputs['experiment']->applicationId, $expInputs['expVal']['scheduling']->resourceHostId) }}
+ @else
+ {{ Utilities::create_compute_resources_select($expInputs['application'], null) }}
+ @endif
+ </div>
+
+ <div class="form-group">
+ <label for="node-count">Queue Name</label>
+ <input type="text" class="form-control" name="queue-name" id="queue-name"
+ value="@if(isset($expInputs['expVal']) ){{ $expInputs['expVal']['scheduling']->queueName }} @else{{$expInputs['queueName']}} @endif"
+ @if(isset($expInputs['expVal']) ) @if(!$expInputs['expVal']['editable']){{ disabled }} @endif @endif>
+ </div>
+ <div class="form-group">
+ <label for="node-count">Node Count</label>
+ <input type="number" class="form-control" name="node-count" id="node-count" min="1"
+ value="@if(isset($expInputs['expVal']) ){{ $expInputs['expVal']['scheduling']->nodeCount }}@else{{$expInputs['nodeCount']}}@endif"
+ @if(isset($expInputs['expVal']) ) @if(!$expInputs['expVal']['editable']){{disabled}} @endif @endif>
+ </div>
+ <div class="form-group">
+ <label for="cpu-count">Total Core Count</label>
+ <input type="number" class="form-control" name="cpu-count" id="cpu-count" min="1"
+ value="@if(isset($expInputs['expVal']) ){{ $expInputs['expVal']['scheduling']->totalCPUCount }}@else{{$expInputs['cpuCount']}}@endif"
+ @if(isset($expInputs['expVal'])) @if(!$expInputs['expVal']['editable']){{disabled}} @endif @endif>
+ </div>
+ <div class="form-group">
+ <label for="wall-time">Wall Time Limit</label>
+ <div class="input-group">
+ <input type="number" class="form-control" name="wall-time" id="wall-time" min="0"
+ value="@if(isset($expInputs['expVal']) ){{ $expInputs['expVal']['scheduling']->wallTimeLimit }}@else{{$expInputs['wallTimeLimit']}}@endif"
+ @if(isset($expInputs['expVal'])) @if(!$expInputs['expVal']['editable']){{disabled}} @endif @endif>
+ <span class="input-group-addon">minutes</span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label for="wall-time">Total Physical Memory</label>
+ <div class="input-group">
+ <input type="number" class="form-control" name="total-physical-memory" id="wall-time" min="0"
+ value="@if(isset($expInputs['expVal']) ){{ $expInputs['expVal']['scheduling']->totalPhysicalMemory }}@endif"
+ @if(isset($expInputs['expVal'])) @if(!$expInputs['expVal']['editable']){{disabled}} @endif @endif>
+ <span class="input-group-addon">MB</span>
+ </div>
+ </div>
+ </div>
+</div>
+<h3>Notifications</h3>
+<div class="form-group well">
+ <label for=""></label>
+ <input type="checkbox" id="enableEmail" name="enableEmailNotification" value="1">Do you want to receive email notifications for status changes in the experiment?<br/>
+ <div class="emailSection hide">
+ <h4>Enter Email Address here.</h4>
+ <div class="emailAddresses">
+ <input type="email" id="emailAddresses" class="form-control" name="emailAddresses[]" placeholder="Email"/>
+ </div>
+ <button type="button" class="addEmail btn btn-default">Add another Email</button>
+ </div>
+</div>
+
+@if( $expInputs["advancedOptions"])
+<h3>Advanced Options</h3>
+<div class="form-group well">
+ <h4>Enter UserDN</h4>
+ <div class="userdninfo">
+ <input type="text" class="form-control" name="userDN" placeholder="user"/>
+ </div>
+</div>
+@endif
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/gateway-preferences.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/gateway-preferences.blade.php b/app/views/partials/gateway-preferences.blade.php
new file mode 100644
index 0000000..51889d4
--- /dev/null
+++ b/app/views/partials/gateway-preferences.blade.php
@@ -0,0 +1,67 @@
+<!-- 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">Override by Airavata</label>
+ <div class="col-md-9">
+ <select class="form-control" name="overridebyAiravata">
+ <option value="1" @if( isset( $preferences) ) @if( 1 == $preferences->overridebyAiravata) selected @endif @endif>True</option>
+ <option value="0" @if( isset( $preferences) ) @if( 0 == $preferences->overridebyAiravata) selected @endif @endif>False</option>
+ </select>
+ </div>
+ </div><br/>
+ <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 Job Submission Protocol</label>
+ <div class="col-md-9">
+ <select name="preferredJobSubmissionProtocol" class="form-control">
+ @foreach( (array)$computeResource->jobSubmissionInterfaces as $index => $jsi)
+ <option value="{{$jsi->jobSubmissionProtocol}}" @if( isset( $preferences) ) @if( $preferences->preferredJobSubmissionProtocol == $jsi->jobSubmissionProtocol) selected @endif @endif>{{ $crData["jobSubmissionProtocols"][$jsi->jobSubmissionProtocol] }}</option>
+ @endforeach
+ </select>
+
+ </div>
+ </div>
+ <br/>
+ <div class="form-group">
+ <label class="control-label col-md-3">Preferred Data Movement Protocol</label>
+ <div class="col-md-9">
+ <select name="preferredDataMovementProtocol" class="form-control">
+ @foreach( (array)$computeResource->dataMovementInterfaces as $index => $dmi)
+ <option value="{{ $dmi->dataMovementProtocol}}" @if( isset( $preferences) ) @if( $preferences->preferredDataMovementProtocol == $dmi->dataMovementProtocol) selected @endif @endif>{{ $crData["dataMovementProtocols"][$dmi->dataMovementProtocol] }}</option>
+ @endforeach
+ </select>
+ </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">
+ @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">
+ <input type="submit" class="form-control btn btn-primary" value="Set preferences" />
+ </div>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/interface-block.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/interface-block.blade.php b/app/views/partials/interface-block.blade.php
new file mode 100644
index 0000000..3510bd3
--- /dev/null
+++ b/app/views/partials/interface-block.blade.php
@@ -0,0 +1,49 @@
+@if( isset( $interfaceObject) )
+ <input type="hidden" name="app-interface-id" value="{{$interfaceObject->applicationInterfaceId}}"/>
+@endif
+<div class="appInterfaceInputs">
+ <div class="form-group required">
+ <label class="control-label interface-name">Application Name</label>
+ <input type="text" readonly class="form-control" name="applicationName" required value="@if( isset( $interfaceObject) ){{$interfaceObject->applicationName}}@endif"/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Application Description</label>
+ <input type="text" readonly class="form-control" name="applicationDescription" value="@if( isset( $interfaceObject) ){{ $interfaceObject->applicationDescription}}@endif" />
+ </div>
+ <div class="form-group">
+ <label class="control-label">Application Modules</label>
+ <div class="app-modules">
+ @if( isset( $interfaceObject))
+ @for( $i=0; $i< count( $interfaceObject->applicationModules); $i++ )
+ <div class="input-group">
+ <select name="applicationModules[]" class="app-module-select form-control" readonly>
+ @foreach( $modules as $index => $module)
+ <option value="{{ $module->appModuleId }}" @if( $interfaceObject->applicationModules[$i] == $module->appModuleId) selected @endif>{{ $module->appModuleName}}</option>
+ @endforeach
+ </select>
+ <span class="input-group-addon hide remove-app-module" style="cursor:pointer;">x</span>
+ </div>
+ @endfor
+ @endif
+ </div>
+ <button type="button" class="hide btn btn-default add-app-module">Add Application Module</button>
+ </div>
+ <div class="form-group form-horizontal">
+ @if( isset( $interfaceObject))
+ @foreach( (array)$interfaceObject->applicationInputs as $index => $appInputs)
+ @include( 'partials/interface-input-block', array('dataTypes' => $dataTypes, 'appInputs' => $appInputs) )
+ @endforeach
+ @endif
+ <div class="app-inputs"></div>
+ <button type="button" class=" hide btn btn-default add-input">Add Application Input</button>
+ </div>
+ <div class="form-group form-horizontal">
+ @if( isset( $interfaceObject) )
+ @foreach( (array)$interfaceObject->applicationOutputs as $index => $appOutputs)
+ @include( 'partials/interface-output-block', array('dataTypes' => $dataTypes, 'appOutputs' => $appOutputs) )
+ @endforeach
+ @endif
+ <div class="app-outputs"></div>
+ <button type="button" class="hide btn btn-default add-output">Add Application Output</button>
+ </div>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/interface-input-block.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/interface-input-block.blade.php b/app/views/partials/interface-input-block.blade.php
new file mode 100644
index 0000000..60fde02
--- /dev/null
+++ b/app/views/partials/interface-input-block.blade.php
@@ -0,0 +1,95 @@
+<div class="well app-input-data-block">
+ <span class="glyphicon glyphicon-trash pull-right remove-input-space"></span>
+ <h4>App Input Fields</h4>
+ <div class="form-group required">
+ <label class="control-label col-md-3">Name</label>
+ <div class="col-md-9">
+ <input type="text" readonly class="form-control" name="inputName[]" required value="@if( isset( $appInputs) ){{$appInputs->name}}@endif"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Value</label>
+ <div class="col-md-9">
+ <input type="text" readonly class="form-control" name="inputValue[]" value="@if( isset( $appInputs)){{$appInputs->value}}@endif"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Type</label>
+ <div class="col-md-9">
+ <select class="form-control" name="inputType[]" readonly>
+ @foreach( $dataTypes as $index => $dataType)
+ <option value="{{ $index }}" @if( isset( $appInputs) ) @if( $index == $appInputs->type) selected @endif @endif>{{ $dataType }}</option>
+ @endforeach
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Application Argument</label>
+ <div class="col-md-9">
+ <input type="text" readonly class="form-control" name="applicationArgumentInput[]" value="@if( isset( $appInputs) ){{$appInputs->applicationArgument }}@endif"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Standard Input</label>
+ <div class="col-md-9">
+ <select class="form-control" name="standardInput[]" readonly>
+ <option value="0" @if( isset( $appInputs) ) @if( 0 == $appInputs->standardInput) selected @endif @endif>False</option>
+ <option value="1" @if( isset( $appInputs) ) @if( 1 == $appInputs->standardInput) selected @endif @endif>True</option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">User Friendly Description</label>
+ <div class="col-md-9">
+ <textarea readonly class="form-control" name="userFriendlyDescription[]">@if( isset( $appInputs) ){{$appInputs->userFriendlyDescription}}@endif</textarea>
+ </div>
+ </div>
+ <div class="form-group col-md-6">
+ <label class="control-label col-md-5">Input Order</label>
+ <div class="col-md-7">
+ <input type="number" readonly class="form-control" name="inputOrder[]" value="@if( isset( $appInputs) ){{$appInputs->inputOrder}}@endif"/>
+ </div>
+ </div>
+ <div class="form-group col-md-7">
+ <label class="control-label col-md-4">Data is Staged?</label>
+ <div class="col-md-8">
+ <select name="dataStaged[]" class="form-control">
+ <option>select</option>
+ <option value="1" @if( isset( $appInputs) ) @if( $appInputs->dataStaged == 1) selected @endif @endif>True</option>
+ <option value="0" @if( isset( $appInputs) ) @if( $appInputs->dataStaged == 0) selected @endif @endif>False</option>
+ </select>
+ </div>
+ <!-- Removed Radio button because it creates problems with multiple inputs
+ <label class="radio-inline">
+ <input type="radio" name="dataStaged[]" @if( isset( $appInputs) ) @if( $appInputs->dataStaged == 1) checked @endif @endif>True
+ </label>
+ <label class="radio-inline">
+ <input type="radio" name="dataStaged[]" @if( isset( $appInputs) ) @if( $appInputs->dataStaged == 0) checked @endif @endif>False
+ </label>
+ -->
+ </div>
+ <div class="form-group col-md-6">
+ <label class="control-label col-md-6">Is the Input required?</label>
+ <div class="col-md-6">
+ <select class="form-control" name="isRequiredInput[]" readonly>
+ <option value="0" @if( isset( $appInputs) ) @if( 0 == $appInputs->isRequired) selected @endif @endif>False</option>
+ <option value="1" @if( isset( $appInputs) ) @if( 1 == $appInputs->isRequired) selected @endif @endif>True</option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group col-md-7">
+ <label class="control-label col-md-6">Required on command line?</label>
+ <div class="col-md-6">
+ <select class="form-control" name="requiredToAddedToCommandLineInput[]" readonly>
+ <option value="0" @if( isset( $appInputs) ) @if( 0 == $appInputs->requiredToAddedToCommandLine) selected @endif @endif>False</option>
+ <option value="1" @if( isset( $appInputs) ) @if( 1 == $appInputs->requiredToAddedToCommandLine) selected @endif @endif>True</option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Meta Data</label>
+ <div class="col-md-9">
+ <textarea readonly class="form-control" name="metaData[]">@if( isset( $appInputs) ){{$appInputs->metaData}}@endif</textarea>
+ </div>
+ </div>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/interface-output-block.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/interface-output-block.blade.php b/app/views/partials/interface-output-block.blade.php
new file mode 100644
index 0000000..fe78060
--- /dev/null
+++ b/app/views/partials/interface-output-block.blade.php
@@ -0,0 +1,80 @@
+<div class="well">
+ <span class="glyphicon glyphicon-trash pull-right remove-output-space"></span>
+ <h4>App Output Fields</h4>
+ <div class="form-group required">
+ <label class="control-label col-md-3">Name</label>
+ <div class="col-md-9">
+ <input type="text" readonly class="form-control" name="outputName[]" required value="@if( isset( $appOutputs) ){{$appOutputs->name}}@endif"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Value</label>
+ <div class="col-md-9">
+ <input type="text" readonly class="form-control" name="outputValue[]" value="@if( isset( $appOutputs) ){{$appOutputs->value}}@endif"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Type</label>
+ <div class="col-md-9">
+ <select class="form-control" name="outputType[]" readonly>
+ @foreach( $dataTypes as $index => $dataType)
+ <option value="{{ $index }}" @if( isset( $appOutputs) ) @if( $index == $appOutputs->type ) selected @endif @endif>{{ $dataType }}</option>
+ @endforeach
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Application Argument</label>
+ <div class="col-md-9">
+ <input type="text" readonly class="form-control" name="applicationArgumentOutput[]" value="@if( isset( $appOutputs) ){{$appOutputs->applicationArgument }}@endif"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Data Movement</label>
+ <div class="col-md-9">
+ <select name="dataMovement[]" class="form-control">
+ <option>select</option>
+ <option value="1" @if( isset( $appOutputs) ) @if( $appOutputs->dataMovement == 1) selected @endif @endif>True</option>
+ <option value="0" @if( isset( $appOutputs) ) @if( $appOutputs->dataMovement == 0) selected @endif @endif>False</option>
+ </select>
+ </div>
+ <!--
+ <label class="radio-inline">
+ <input type="radio" name="dataMovement[]" @if( isset( $appOutputs) ) @if( $appOutputs->dataMovement == 1) checked @endif @endif>True
+ </label>
+ <label class="radio-inline">
+ <input type="radio" name="dataMovement[]" @if( isset( $appOutputs) ) @if( $appOutputs->dataMovement == 0) checked @endif @endif>False
+ </label>
+ -->
+ </div>
+ <div class="form-group col-md-6">
+ <label class="control-label col-md-6">Is the Output required?</label>
+ <div class="col-md-6">
+ <select class="form-control" name="isRequiredOutput[]" readonly>
+ <option value="0" @if( isset( $appOutputs) ) @if( 0 == $appOutputs->isRequired) selected @endif @endif>False</option>
+ <option value="1" @if( isset( $appOutputs) ) @if( 1 == $appOutputs->isRequired) selected @endif @endif>True</option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group col-md-7">
+ <label class="control-label col-md-6">Required on command line?</label>
+ <div class="col-md-6">
+ <select class="form-control" name="requiredToAddedToCommandLineOutput[]" readonly>
+ <option value="0" @if( isset( $appOutputs) ) @if( 0 == $appOutputs->requiredToAddedToCommandLine) selected @endif @endif>False</option>
+ <option value="1" @if( isset( $appOutputs) ) @if( 1 == $appOutputs->requiredToAddedToCommandLine) selected @endif @endif>True</option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Location</label>
+ <div class="col-md-9">
+ <input type="text" readonly class="form-control" name="location[]" value="@if( isset( $appOutputs) ){{$appOutputs->location}}@endif"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="control-label col-md-3">Search Query</label>
+ <div class="col-md-9">
+ <input type="text" readonly class="form-control" name="searchQuery[]" value="@if( isset( $appOutputs) ){{$appOutputs->searchQuery}}@endif"/>
+ </div>
+ </div>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/module-block.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/module-block.blade.php b/app/views/partials/module-block.blade.php
new file mode 100644
index 0000000..b30ad27
--- /dev/null
+++ b/app/views/partials/module-block.blade.php
@@ -0,0 +1,16 @@
+<div id="new-app-module-block">
+
+ <div class="form-group required">
+ <label class="control-label">Application Module Name</label>
+ <input type="text" class="form-control edit-name" name="appModuleName" maxlength="150" required/>
+ </div>
+ <div class="form-group">
+ <label class="control-label">Application Module Version</label>
+ <input type="text" class="form-control edit-version" name="appModuleVersion" maxlength="30" />
+ </div>
+ <div class="form-group">
+ <label class="control-label">Description</label>
+ <textarea class="form-control edit-desc" name="appModuleDescription" maxlength="255"></textarea>
+ </div>
+
+</div>
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/queue-block.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/queue-block.blade.php b/app/views/partials/queue-block.blade.php
new file mode 100644
index 0000000..0238b42
--- /dev/null
+++ b/app/views/partials/queue-block.blade.php
@@ -0,0 +1,24 @@
+<div class="form-group">
+ <label class="control-label">Queue Description</label>
+ <textarea class="form-control" maxlength="255" name="qdesc" placeholder="Queue Description">@if( isset( $queueData) ){{ $queueData->queueDescription }}@endif</textarea>
+</div>
+<div class="form-group">
+ <label class="control-label">Queue Max Run Time<small> (In Minutes) </small></label>
+ <input type="number" min="0" class="form-control" value="@if( isset( $queueData) ){{ $queueData->maxRunTime }}@endif" maxlength="30" name="qmaxruntime" placeholder="Queue Max Run Time"/>
+</div>
+<div class="form-group">
+ <label class="control-label">Queue Max Nodes</label>
+ <input type="number" min="0" class="form-control" value="@if( isset( $queueData) ){{ $queueData->maxNodes }}@endif" maxlength="30" name="qmaxnodes" placeholder="Queue Max Nodes"/>
+</div>
+<div class="form-group">
+ <label class="control-label">Queue Max Processors</label>
+ <input type="number" min="0" class="form-control" value="@if( isset( $queueData) ){{ $queueData->maxProcessors }}@endif" maxlength="30" name="qmaxprocessors" placeholder="Queue Max Processors"/>
+</div>
+<div class="form-group">
+ <label class="control-label">Max Jobs in Queue</label>
+ <input type="number" min="0" class="form-control" value="@if( isset( $queueData) ){{ $queueData->maxJobsInQueue }}@endif" maxlength="30" name="qmaxjobsinqueue" placeholder="Max Jobs In Queue"/>
+</div>
+<div class="form-group">
+ <label class="control-label">Max Memory For Queue( In MB )</label>
+ <input type="number" min="0" class="form-control" value="@if( isset( $queueData) ){{ $queueData->maxMemory }}@endif" maxlength="30" name="qmaxmemoryinqueue" placeholder="Max Memory For Queue"/>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/project/create.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/create.blade.php b/app/views/project/create.blade.php
new file mode 100755
index 0000000..0cc28d3
--- /dev/null
+++ b/app/views/project/create.blade.php
@@ -0,0 +1,42 @@
+@extends('layout.basic')
+
+@section('page-header')
+ @parent
+@stop
+
+@section('content')
+
+<div class="container" style="max-width: 750px">
+
+<h1>Create a new project</h1>
+
+
+<form action="create" method="post" role="form" class="project-creation-form">
+ <div class="form-group required">
+ <label for="project-name" class="control-label">Project Name</label>
+ <input type="text" class="form-control projectName" name="project-name" id="project-name" placeholder="Enter project name" autofocus required>
+ </div>
+
+ <div class="form-group">
+ <label for="project-description">Project Description</label>
+ <textarea class="form-control" name="project-description" id="project-description" placeholder="Optional: Enter a short description of the project"></textarea>
+ </div>
+
+ <input name="save" type="submit" class="btn btn-primary create-project" value="Save">
+ <input name="clear" type="reset" class="btn btn-default" value="Clear">
+
+
+</form>
+
+</div>
+
+@stop
+
+@section('scripts')
+ @parent
+ <script>
+ $(".projectName").blur( function(){
+ $(this).val( $.trim( $(this).val() ) );
+ });
+ </script>
+@stop
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/project/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/edit.blade.php b/app/views/project/edit.blade.php
new file mode 100755
index 0000000..e2c40b1
--- /dev/null
+++ b/app/views/project/edit.blade.php
@@ -0,0 +1,50 @@
+@extends('layout.basic')
+
+@section('page-header')
+ @parent
+@stop
+
+@section('content')
+
+<div class="container" style="max-width: 750px;">
+
+ <?php if( Session::has("project_edited")) { ?>
+ <div class="alert alert-success">
+ The project has been edited
+ </div>
+ <?php Session::forget("project_edited");
+
+ }
+ ?>
+
+
+ <h1>Edit Project</h1>
+
+ <form action="edit" method="post" role="form">
+ <div class="form-group">
+ <label for="project-name">Project Name</label>
+ <input type="text"
+ class="form-control"
+ name="project-name"
+ id="project-name"
+ value="{{ $project->name }}">
+ </div>
+ <div class="form-group">
+ <label for="project-description">Project Description</label>
+ <textarea class="form-control"
+ name="project-description"
+ id="project-description">{{ $project->description }}</textarea>
+ <input type="hidden" name="projectId" value="{{ Input::get('projId') }}"/>
+ </div>
+
+ <div class="btn-toolbar">
+ <input name="save" type="submit" class="btn" value="Save">
+ </div>
+
+
+ </form>
+
+
+</div>
+
+@stop
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/project/search.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/search.blade.php b/app/views/project/search.blade.php
new file mode 100755
index 0000000..486fd9d
--- /dev/null
+++ b/app/views/project/search.blade.php
@@ -0,0 +1,103 @@
+
+@extends('layout.basic')
+
+@section('page-header')
+ @parent
+@stop
+
+@section('content')
+
+ <div class="container" style="max-width: 750px;">
+
+ <h1>Search for Projects</h1>
+
+ <form action="{{ URL::to('/') }}/project/search" method="post" class="form-inline" role="form">
+ <div class="form-group">
+ <label for="search-key">Search by</label>
+ <select class="form-control" name="search-key" id="search-key">
+ <option value="project-name">Project Name</option>
+ <option value="project-description">Project description</option>
+ </select>
+ </div>
+
+ <div class="form-group">
+ <label for="search-value">for</label>
+ <input type="search" class="form-control" name="search-value" id="search-value" placeholder="value" required
+ value="<?php if (isset($_POST['search-value'])) echo $_POST['search-value'] ?>">
+ </div>
+
+ <button name="search" type="submit" class="btn btn-primary" value="Search"><span class="glyphicon glyphicon-search"></span> Search</button>
+ <p class="help-block">You can use * as a wildcard character. Tip: search for * alone to retrieve all of your projects.</p>
+ </form>
+
+
+
+
+
+ <?php
+
+ if (isset( $projects))
+ {
+ /**
+ * get results
+ */
+
+ /**
+ * display results
+ */
+ if (sizeof($projects) == 0)
+ {
+ Utilities::print_warning_message('No results found. Please try again.');
+ }
+ else
+ {
+ ?>
+ <div class="table-responsive">
+ <table class="table">
+
+ <tr>
+
+ <th>Name</th>
+ <th>Creation Time</th>
+ <th>Experiments</th>
+
+ </tr>
+ <?php
+
+ foreach ($projects as $project)
+ {
+
+ ?>
+ <tr>
+ <td>
+ <?php echo $project->name; ?>
+ <a href="{{URL::to('/')}}/project/edit?projId=<?php echo $project->projectID; ?>" title="Edit">
+ <span class="glyphicon glyphicon-pencil"></span>
+ </a>
+ </td>
+ <td>
+ <?php echo date('Y-m-d H:i:s', $project->creationTime/1000); ?>
+ </td>
+ <td>
+ <a href="{{URL::to('/')}}/project/summary?projId=<?php echo $project->projectID; ?>">
+ <span class="glyphicon glyphicon-list"></span>
+ </a>
+ <a href="{{URL::to('/')}}/project/summary?projId=<?php echo $project->projectID; ?>"> View</a>
+ </td>
+ </tr>
+ <?php
+
+ }
+
+ echo '</table>';
+ echo '</div>';
+ }
+
+ }
+
+ ?>
+
+
+ </div>
+
+@stop
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/project/summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/summary.blade.php b/app/views/project/summary.blade.php
new file mode 100755
index 0000000..9cb1582
--- /dev/null
+++ b/app/views/project/summary.blade.php
@@ -0,0 +1,121 @@
+@extends('layout.basic')
+
+@section('page-header')
+ @parent
+@stop
+
+@section('content')
+
+<div class="container" style="max-width: 750px;">
+
+
+ <h1>Project Summary</h1>
+
+
+
+ <?php
+
+ $project = Utilities::get_project($_GET['projId']);
+
+
+
+ echo '<div class="panel panel-default">';
+
+ echo '<div class="panel-heading">';
+ echo '<h3>' . $project->name . ' <a href="edit?projId=' .
+ $project->projectID .
+ '" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a></h3>';
+ echo "<p>$project->description</p>";
+ echo '</div>';
+
+ $experiments = Utilities::get_experiments_in_project($project->projectID);
+
+ echo '<div class="table-responsive">';
+ echo '<table class="table">';
+
+ echo '<tr>';
+
+ echo '<th>Name</th>';
+ echo '<th>Application</th>';
+ echo '<th>Time</th>';
+ echo '<th>Status</th>';
+
+ echo '</tr>';
+
+ foreach ($experiments as $experiment)
+ {
+ $expValues = Utilities::get_experiment_values( $experiment, Utilities::get_project($experiment->projectID), true );
+ $applicationInterface = Utilities::get_application_interface($experiment->applicationId);
+
+ echo '<tr>';
+
+ echo '<td>';
+
+
+ switch ($expValues["experimentStatusString"])
+ {
+ case 'SCHEDULED':
+ case 'LAUNCHED':
+ case 'EXECUTING':
+ case 'CANCELING':
+ case 'COMPLETED':
+ echo $experiment->name;
+ break;
+ default:
+ echo $experiment->name .
+ ' <a href="edit?expId=' .
+ $experiment->experimentID .
+ '" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>';
+ break;
+ }
+
+
+
+ echo '</td>';
+
+ echo "<td>$applicationInterface->applicationName</td>";
+
+
+
+ echo '<td>' . $expValues["experimentTimeOfStateChange"] . '</td>';
+
+
+ switch ($expValues["experimentStatusString"])
+ {
+ case 'CANCELING':
+ case 'CANCELED':
+ case 'UNKNOWN':
+ $textClass = 'text-warning';
+ break;
+ case 'FAILED':
+ $textClass = 'text-danger';
+ break;
+ case 'COMPLETED':
+ $textClass = 'text-success';
+ break;
+ default:
+ $textClass = 'text-info';
+ break;
+ }
+
+
+ echo '<td><a class="' .
+ $textClass .
+ '" href="' . URL::to('/') . '/experiment/summary?expId=' .
+ $experiment->experimentID .
+ '">' .
+ $expValues["experimentStatusString"] .
+ '</a></td>';
+
+ echo '</tr>';
+ }
+
+ echo '</table>';
+ echo '</div>';
+ echo '</div>';
+
+ ?>
+
+
+</div>
+@stop
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/resource/browse.blade.php
----------------------------------------------------------------------
diff --git a/app/views/resource/browse.blade.php b/app/views/resource/browse.blade.php
new file mode 100644
index 0000000..1cca0ad
--- /dev/null
+++ b/app/views/resource/browse.blade.php
@@ -0,0 +1,132 @@
+@extends('layout.basic')
+
+@section('page-header')
+ @parent
+@stop
+
+@section('content')
+
+<div class="container">
+ @if( Session::has("message"))
+ <div class="col-md-12">
+ <span class="alert alert-success">{{ Session::get("message") }}</span>
+ </div>
+ {{ Session::forget("message") }}
+ @endif
+
+ @if ( isset( $allCRs) )
+ @if (sizeof($allCRs) == 0)
+ {{ Utilities::print_warning_message('No Compute Resources exist at the moment. Please register compute resources and then try again.') }}
+ @else
+ <div class="col-md-12">
+ <div class="col-md-6">
+ <h3 style="margin:0;">Existing Compute Resources :</h3>
+ </div>
+ <input type="text" class="pull-right filterinput col-md-6" placeholder="Search by Compure Resource Name"/>
+ <div class="table-responsive">
+ <table class="table">
+
+ <tr>
+
+ <th>Name</th>
+ <th>Id</th>
+ <th>Edit</th>
+ <th>View</th>
+ <th>Delete</th>
+ </tr>
+
+ @foreach ($allCRs as $crId => $crName)
+
+ <tr id="crDetails">
+ <td>{{ $crName }}</td>
+ <td>{{ $crId }}</td>
+ <td><a href="{{URL::to('/')}}/cr/edit?crId={{ $crId }}" title="Edit">
+ <span class="glyphicon glyphicon-pencil"></span>
+ </a>
+ </td>
+ <td>
+ <a class="view-cr" href="#" > <!-- {{URL::to('/')}}/cr/summary?crId={{ $crId }}"> -->
+ <span class="glyphicon glyphicon-list"></span>
+ </a>
+ </td>
+ <td>
+ <a href="#" title="Delete">
+ <span class="glyphicon glyphicon-trash del-cr" data-toggle="modal" data-target="#delete-cr-block" data-delete-cr-name="{{$crName}}" data-deployment-count="{{$connectedDeployments[$crId]}}" data-crid="{{$crId}}" ></span>
+ </a>
+ </td>
+ </tr>
+ @endforeach
+
+ </table>
+ </div>
+
+ @endif
+ @endif
+
+<div class="modal fade" id="delete-cr-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+ <div class="modal-dialog">
+
+ <form action="{{URL::to('/')}}/cr/delete-cr" method="POST">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h3 class="text-center">Delete Compute Resource Confirmation</h3>
+ </div>
+ <div class="modal-body">
+ <input type="hidden" class="form-control delete-crId" name="del-crId"/>
+ The Compute Resource, <span class="delete-cr-name"></span> is connected to <span class="deploymentCount">0</span> deployments.
+ Do you really want to delete it? This action cannot be undone.
+ </div>
+ <div class="modal-footer">
+ <div class="form-group">
+ <input type="submit" class="btn btn-danger" value="Delete"/>
+ <input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+ </div>
+ </div>
+ </div>
+
+ </form>
+ </div>
+</div>
+
+</div>
+
+@stop
+@section('scripts')
+ @parent
+ <script type="text/javascript">
+ $(".view-cr").click( function(){
+ alert("The functionality to view a Compute Resource is under construction.");
+ });
+ $('.filterinput').keyup(function() {
+ var value = $(this).val();
+ if (value.length > 0) {
+ $("table tr").each(function(index) {
+ if (index != 0) {
+
+ $row = $(this);
+
+ var id = $row.find("td:first").text();
+ id = $.trim( id);
+ id = id.substr( 0, value.length);
+ if (id == value )
+ {
+ $(this).slideDown();
+ }
+ else {
+ $(this).slideUp();
+ }
+ }
+ });
+ } else {
+ $("table tr").slideDown();
+ }
+ return false;
+ });
+
+ $(".del-cr").click( function(){
+ $(".delete-cr-name").html( "'" + $(this).data("delete-cr-name") + "'");
+ $(".delete-crId").val( $(this).data("crid"));
+ $(".deploymentCount").html( $(this).data("deployment-count"));
+ });
+ </script>
+@stop
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/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/01413d65/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/01413d65/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..5cd33cc
--- /dev/null
+++ b/app/views/resource/edit.blade.php
@@ -0,0 +1,730 @@
+@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 required">
+ <label class="control-label">Select Monitoring Mode</label>
+ <select name="monitorMode" required>
+ @foreach( $monitorModes as $index => $mode)
+ <option value="{{ $index }}" @if( $JSI->monitorMode == $index ) selected @endif>{{ $mode}}</option>
+ @endforeach
+ </select>
+ </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
+ </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 required">
+ <label class="control-label">Select Monitoring Mode </label>
+ <select name="monitorMode" required>
+ @foreach( $monitorModes as $index => $mode)
+ <option value="{{ $index }}">{{ $mode}}</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/01413d65/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/01413d65/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/01413d65/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/01413d65/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);
+}