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/04/25 00:25:25 UTC

airavata-php-gateway git commit: Addition of monitor mode Addition of Advanced Options in Experiments Addition of Admin Dashboard can view Experiment

Repository: airavata-php-gateway
Updated Branches:
  refs/heads/master 42878c1f6 -> f02b58ea3


Addition of monitor mode
Addition of Advanced Options in Experiments
Addition of Admin Dashboard can view Experiment


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/f02b58ea
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/f02b58ea
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/f02b58ea

Branch: refs/heads/master
Commit: f02b58ea3789a90e06ec2a60effe29685b085e8e
Parents: 42878c1
Author: Nipurn Doshi <ni...@gmail.com>
Authored: Fri Apr 24 18:25:12 2015 -0400
Committer: Nipurn Doshi <ni...@gmail.com>
Committed: Fri Apr 24 18:25:12 2015 -0400

----------------------------------------------------------------------
 app/controllers/ComputeResource.php            |   2 +-
 app/controllers/ExperimentController.php       |  38 ++++---
 app/libraries/CRUtilities.php                  |  10 +-
 app/libraries/utilities.php                    |  25 ++---
 app/routes.php                                 |   4 +
 app/views/admin/manage-experiments.blade.php   |  38 ++++++-
 app/views/experiment/create-complete.blade.php |   2 +-
 app/views/experiment/summary.blade.php         | 114 +-------------------
 app/views/partials/experiment-info.blade.php   | 114 ++++++++++++++++++++
 app/views/partials/experiment-inputs.blade.php |   9 ++
 app/views/resource/edit.blade.php              |  34 ++++--
 public/assets/ajax-loader.gif                  | Bin 0 -> 3208 bytes
 12 files changed, 236 insertions(+), 154 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/app/controllers/ComputeResource.php
----------------------------------------------------------------------
diff --git a/app/controllers/ComputeResource.php b/app/controllers/ComputeResource.php
index f6d6eaf..6644c73 100755
--- a/app/controllers/ComputeResource.php
+++ b/app/controllers/ComputeResource.php
@@ -75,7 +75,7 @@ class ComputeResource extends BaseController{
 			$data["dataMovementInterfaces"] = $dataMovementInterfaces;
 			$data["addedJSP"] = $addedJSP;
 			$data["addedDMI"] = $addedDMI;
-
+			//var_dump($data["jobSubmissionInterfaces"]); exit;
 			return View::make("resource/edit", $data);
 		}
 		else

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index b82a706..6f2fc5f 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -25,7 +25,7 @@ class ExperimentController extends BaseController {
 		if( isset( $_POST['continue'] ))
 		{
 			Session::put( 'exp_create_continue', true);
-
+			
 			$app_config = Utilities::read_config();
 			$experimentInputs = array( 
 								"disabled" => ' disabled',
@@ -39,7 +39,8 @@ class ExperimentController extends BaseController {
 						        "queueName" => $app_config["queue-name"],
 						        "nodeCount" => $app_config["node-count"],
 						        "cpuCount" => $app_config["total-cpu-count"],
-						        "wallTimeLimit" => $app_config["wall-time-limit"]
+						        "wallTimeLimit" => $app_config["wall-time-limit"],
+						        "advancedOptions" => $app_config["advanced-experiment-options"]
 					        );
 			return View::make( "experiment/create-complete", array( "expInputs" => $experimentInputs) );
 		}
@@ -81,25 +82,36 @@ class ExperimentController extends BaseController {
 			if( $expVal["experimentStatusString"] == "LAUNCHED" || $expVal["experimentStatusString"] == "EXECUTING" )
 				$expVal["cancelable"] = true;
 
-			if( Request::ajax() )
-			{
-				return json_encode( $experiment);
-			}
-			else
-			{
-				return View::make( "experiment/summary", 
-									array(
+			$data = array(
 										"expId" => Input::get("expId"),
 										"experiment" => $experiment,
 										"project" => $project,
 										"expVal" => $expVal
+						);
 
-									)
-								);
+			if( Request::ajax() )
+			{
+				//admin wants to see an experiment summary
+				if( Input::has("dashboard"))
+				{
+					$data["dashboard"] = true;
+					return View::make("partials/experiment-info", $data);
+				}
+				else
+					return json_encode( $experiment);
+			}
+			else
+			{
+				return View::make( "experiment/summary", $data);
 			}
 		}
 		else
-			return View::make( "experiment/summary", array("invalidExperimentId" => 1));
+		{
+			if( Input::has("dashboard"))
+				return View::make( "partials/experiment-info", array("invalidExperimentId" => 1)); 
+			else
+				return View::make( "experiment/summary", array("invalidExperimentId" => 1));
+		}
 	}
 
 	public function expCancel()

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/app/libraries/CRUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/CRUtilities.php b/app/libraries/CRUtilities.php
index f380eba..8f55099 100644
--- a/app/libraries/CRUtilities.php
+++ b/app/libraries/CRUtilities.php
@@ -23,6 +23,7 @@ use Airavata\Model\AppCatalog\ComputeResource\SCPDataMovement;
 use Airavata\Model\AppCatalog\ComputeResource\GridFTPDataMovement;
 use Airavata\Model\AppCatalog\ComputeResource\LOCALDataMovement;
 use Airavata\Model\AppCatalog\ComputeResource\UnicoreDataMovement;
+use Airavata\Model\AppCatalog\ComputeResource\MonitorMode;
 
 
 //Gateway Classes
@@ -85,6 +86,7 @@ public static function getEditCRData(){
     $sp = new SecurityProtocol();
     $dmp = new DataMovementProtocol();
     $jmc = new JobManagerCommand();
+    $mm = new MonitorMode();
     return array(
                     "fileSystemsObject" => $files,
                     "fileSystems" => $files::$__names,
@@ -96,7 +98,8 @@ public static function getEditCRData(){
                     "securityProtocols" => $sp::$__names,
                     "dataMovementProtocolsObject" => $dmp,
                     "dataMovementProtocols" => $dmp::$__names,
-                    "jobManagerCommands" => $jmc::$__names
+                    "jobManagerCommands" => $jmc::$__names,
+                    "monitorModes" => $mm::$__names
                 );
 }
 
@@ -172,9 +175,11 @@ public static function create_or_update_JSIObject( $inputs, $update = false){
                                                         "securityProtocol" => intval( $inputs["securityProtocol"]),
                                                         "resourceJobManager" => $resourceManager,
                                                         "alternativeSSHHostName" => $inputs["alternativeSSHHostName"],
-                                                        "sshPort" => intval( $inputs["sshPort"] )
+                                                        "sshPort" => intval( $inputs["sshPort"] ),
+                                                        "monitorMode" => intval( $inputs["monitorMode"] )
                                                     )
                                                 );
+        //var_dump( $sshJobSubmission); exit;
         if( $update) //update Local JSP
         {
             $jsiObject = $airavataclient->getSSHJobSubmission( $jsiId);
@@ -187,6 +192,7 @@ public static function create_or_update_JSIObject( $inputs, $update = false){
             $jsiObject->securityProtocol = intval( $inputs["securityProtocol"] );
             $jsiObject->alternativeSSHHostName = $inputs["alternativeSSHHostName"];
             $jsiObject->sshPort = intval( $inputs["sshPort"] );
+            $jsiObject->monitorMode = intval( $inputs["monitorMode"] );
             $jsiObject->resourceJobManager = $airavataclient->getresourceJobManager( $rmjId);
             //var_dump( $jsiObject); exit;
             //add updated resource job manager to ssh job submission object.

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/app/libraries/utilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/utilities.php b/app/libraries/utilities.php
index 8d53f02..946abdd 100644
--- a/app/libraries/utilities.php
+++ b/app/libraries/utilities.php
@@ -759,6 +759,8 @@ public static function assemble_experiment()
 
     $userConfigData = new UserConfigurationData();
     $userConfigData->computationalResourceScheduling = $scheduling;
+    if( isset( $_POST["userDN"]) )
+        $userConfigData->userDN = $_POST["userDN"];
 
     $applicationInputs = Utilities::get_application_inputs($_POST['application']);
     $experimentInputs = Utilities::process_inputs($applicationInputs, $experimentInputs);
@@ -785,9 +787,9 @@ public static function assemble_experiment()
     $experiment->applicationId = $_POST['application'];
     $experiment->userConfigurationData = $userConfigData;
     $experiment->experimentInputs = $experimentInputs;
-    if( isset( $_POST["emailNotification"]))
+    if( isset( $_POST["enableEmailNotification"]))
     {
-        $experiment->emailNotification = intval( $_POST["emailNotification"] );
+        $experiment->enableEmailNotification = intval( $_POST["enableEmailNotification"] );
         $experiment->emailAddresses = array_unique( array_filter( $_POST["emailAddresses"], "trim") );
     }
 
@@ -1504,16 +1506,16 @@ public static function create_nav_bar()
             if( "user-console" == Session::get("nav-active"))
                 $active = " active ";
         }
-        echo '<li class="dropdown ' . $active . '">
-
-                <a href="#" class="dropdown-toggle" data-toggle="dropdown">' . Session::get("username") . ' <span class="caret"></span></a>
-                <ul class="dropdown-menu" role="menu">';
-
         if( Session::has("admin"))
-            echo '<li><a href="' . URL::to("/") . '/admin/console"><span class="glyphicon glyphicon-user"></span> Dashboard</a></li>';
+            echo '<li><a href="' . URL::to("/") . '/admin/dashboard"><span class="glyphicon glyphicon-user"></span> Dashboard</a></li>';
         else
             echo '<li><a href="' . URL::to("/") . '/user/profile"><span class="glyphicon glyphicon-user"></span> Profile</a></li>';
 
+        echo '<li class="dropdown ' . $active . '">
+
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown">' . Session::get("username") . ' <span class="caret"></span></a>';
+        echo '<ul class="dropdown-menu" role="menu">';
+
         echo '<li><a href="' . URL::to('/') . '/logout"><span class="glyphicon glyphicon-log-out"></span> Log out</a></li>';
         echo    '</ul></li></ul>';
     }
@@ -1705,7 +1707,6 @@ public static function create_experiment()
     $airavataclient = Session::get("airavataClient");
 
     $experiment = Utilities::assemble_experiment();
-    //var_dump($experiment); exit;
     $expId = null;
 
     try
@@ -2038,10 +2039,10 @@ public static function apply_changes_to_experiment($experiment, $input)
     */
 
     $userConfigDataUpdated->computationalResourceScheduling = $schedulingUpdated;
-    $experiment->userConfigurationData = $userConfigDataUpdated;
-
-
+    if( isset( $input["userDN"]) )
+        $userConfigDataUpdated->userDN = $input["userDN"];
 
+    $experiment->userConfigurationData = $userConfigDataUpdated;
 
     $applicationInputs = Utilities::get_application_inputs($experiment->applicationId);
 

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/app/routes.php
----------------------------------------------------------------------
diff --git a/app/routes.php b/app/routes.php
index 5689f5c..ad7ea27 100755
--- a/app/routes.php
+++ b/app/routes.php
@@ -154,6 +154,10 @@ Route::get("admin/dashboard/roles", "AdminController@rolesView");
 
 Route::get("admin/dashboard/experiments", "AdminController@experimentsView");
 
+Route::get("admin/dashboard/experiment/summary", function(){
+	return Redirect::to("experiment/summary?expId=" . $_GET["expId"] . "&dashboard=true");
+});
+
 Route::get("admin/dashboard/credential-store", "AdminController@credentialStoreView");
 
 Route::get("manage/users", "AdminController@usersView");

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/app/views/admin/manage-experiments.blade.php
----------------------------------------------------------------------
diff --git a/app/views/admin/manage-experiments.blade.php b/app/views/admin/manage-experiments.blade.php
index b18670a..0aaddc5 100644
--- a/app/views/admin/manage-experiments.blade.php
+++ b/app/views/admin/manage-experiments.blade.php
@@ -17,12 +17,23 @@
             <div class="container-fluid">
 
                 <div class="row">
-
-
-                    <div class="well col-md-2 text-center">
-                        Total 500
+                    <!--
+                        <div class="well col-md-2 text-center">
+                            Total 500
+                        </div>
+                    -->
+
+                    <div class="well form-group form-horizontal col-md-12">
+                        <label class="col-md-3">Enter Experiment Id to View Summary :</label>
+                        <div class="col-md-6">
+                            <input type="text" class="form-control experimentId"/>
+                        </div>
+                        <button class="col-md-3 btn btn-primary get-experiment">Get</button>
+                        <div class="loading-img hide text-center"><img src="{{URL::to('/')}}/assets/ajax-loader.gif"/></div>
+
+                        <div class="experiment-info col-md-12">
+                        </div>
                     </div>
-
                 </div>
 
                 <div class="row">
@@ -136,6 +147,23 @@
                 }
                 e.stopPropagation();
             });
+
+            $(".get-experiment").click( function(){
+                $(".loading-img").removeClass("hide");
+                $.ajax({
+                    url:'experiment/summary?expId=' + $(".experimentId").val(),
+                    type: 'get',
+                    success:function( data){
+                        $(".experiment-info").html( data);
+
+                    }
+                }).complete( function(){
+                    $(".loading-img").addClass("hide");
+                });
+            });
+
+            //Experiment stages are under development.
+            $(".tree").parent().addClass("hide");
         });
     </script>
 @stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/app/views/experiment/create-complete.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/create-complete.blade.php b/app/views/experiment/create-complete.blade.php
index 90df6ba..a3ee8be 100644
--- a/app/views/experiment/create-complete.blade.php
+++ b/app/views/experiment/create-complete.blade.php
@@ -17,7 +17,7 @@
         
         @include('partials/experiment-inputs', array("expInputs" => $expInputs) )
 
-        <div class="btn-toolbar">
+        <div class="form-group btn-toolbar">
             <div class="btn-group">
                 <button name="save" type="submit" class="btn btn-primary" value="Save">Save</button>
                 <button name="launch" type="submit" class="btn btn-success" id="expLaunch" value="Save and launch">Save and launch</button>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/app/views/experiment/summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/summary.blade.php b/app/views/experiment/summary.blade.php
index f101782..c3f3d4e 100755
--- a/app/views/experiment/summary.blade.php
+++ b/app/views/experiment/summary.blade.php
@@ -5,120 +5,10 @@
 @stop
 
 @section('content')
-
-<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
-        <small><a href="{{ URL::to('/') }}/experiment/summary?expId={{ $experiment->experimentID }}"
-                  title="Refresh"><span class="glyphicon glyphicon-refresh refresh-exp"></span></a></small>
-    </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>
-        ';
-        ?>
-        <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>
-
-    <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>
-    <input type="hidden" id="expObj" value="{{ htmlentities( json_encode( $experiment)) }}"/>
-
-    <!-- check of correct experiment Id ends here -->
-    @endif
-</div>
-
+    @include('partials/experiment-info')
 @stop
 
+
 @section('scripts')
     @parent
     <script>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/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..21c8031
--- /dev/null
+++ b/app/views/partials/experiment-info.blade.php
@@ -0,0 +1,114 @@
+    <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>
+        ';
+        ?>
+        <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/f02b58ea/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
index 6a8f595..475e065 100644
--- a/app/views/partials/experiment-inputs.blade.php
+++ b/app/views/partials/experiment-inputs.blade.php
@@ -100,3 +100,12 @@
 	</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/f02b58ea/app/views/resource/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/resource/edit.blade.php b/app/views/resource/edit.blade.php
index 53f8a22..5cd33cc 100644
--- a/app/views/resource/edit.blade.php
+++ b/app/views/resource/edit.blade.php
@@ -235,6 +235,15 @@
 						                <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">
@@ -254,15 +263,15 @@
 												<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>
+												<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>
@@ -470,7 +479,7 @@
 
 		<div class="ssh-block hide">
 			<div class="form-group required">		
-				<label class="control-label">Select Security Protocol</label>
+				<label class="control-label">Select Security Protocol  </label>
 				<select name="securityProtocol" required>
 				@foreach( $securityProtocols as $index => $sp)
 					<option value="{{ $index }}">{{ $sp }}</option>
@@ -478,6 +487,15 @@
 				</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'/>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f02b58ea/public/assets/ajax-loader.gif
----------------------------------------------------------------------
diff --git a/public/assets/ajax-loader.gif b/public/assets/ajax-loader.gif
new file mode 100644
index 0000000..39f1cdf
Binary files /dev/null and b/public/assets/ajax-loader.gif differ