You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/09/14 19:45:30 UTC

airavata-php-gateway git commit: making data sharing configurable in PGA

Repository: airavata-php-gateway
Updated Branches:
  refs/heads/develop 7b69b1459 -> 5e6bca460


making data sharing configurable in PGA


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

Branch: refs/heads/develop
Commit: 5e6bca460320a4dd3e988ed693c3d1a4112127b9
Parents: 7b69b14
Author: scnakandala <su...@gmail.com>
Authored: Wed Sep 14 15:45:25 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Wed Sep 14 15:45:25 2016 -0400

----------------------------------------------------------------------
 app/config/pga_config.php.template              |   7 +-
 app/controllers/ExperimentController.php        | 188 +++++++++-------
 app/controllers/ProjectController.php           | 151 +++++++------
 app/libraries/ExperimentUtilities.php           |  17 +-
 app/libraries/ProjectUtilities.php              |  14 +-
 .../experiment/no-sharing-browse.blade.php      | 214 +++++++++++++++++++
 .../no-sharing-create-complete.blade.php        | 168 +++++++++++++++
 app/views/experiment/no-sharing-edit.blade.php  |  96 +++++++++
 .../partials/experiment-container.blade.php     |   6 +-
 app/views/partials/experiment-info.blade.php    |  38 ++--
 app/views/project/no-sharing-browse.blade.php   | 146 +++++++++++++
 app/views/project/no-sharing-create.blade.php   |  33 +++
 app/views/project/no-sharing-edit.blade.php     |  49 +++++
 app/views/project/no-sharing-summary.blade.php  | 103 +++++++++
 app/views/project/no-summary.blade.php          | 119 +++++++++++
 app/views/project/summary.blade.php             | 119 -----------
 16 files changed, 1187 insertions(+), 281 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/config/pga_config.php.template
----------------------------------------------------------------------
diff --git a/app/config/pga_config.php.template b/app/config/pga_config.php.template
index 532a612..0a707aa 100644
--- a/app/config/pga_config.php.template
+++ b/app/config/pga_config.php.template
@@ -161,7 +161,12 @@ return array(
          /**
          * Gateway data store resource id
          */
-         'gateway-data-store-resource-id' => ''
+         'gateway-data-store-resource-id' => '',
+
+         /**
+          * Data Sharing enabled
+          */
+          'data-sharing-enabled' = false
     ],
 
     /**

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index e760cee..7da421b 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -73,10 +73,15 @@ class ExperimentController extends BaseController
                 "allowedFileSize" => $allowedFileSize
             );
 
-            $users = SharingUtilities::getProfilesForSharedUsers($_POST['project'], ResourceType::PROJECT);
-            $owner = array();
+            if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+                $users = SharingUtilities::getProfilesForSharedUsers($_POST['project'], ResourceType::PROJECT);
+                $owner = array();
+
+                return View::make("experiment/create-complete", array("expInputs" => $experimentInputs, "users" => json_encode($users), "owner" => json_encode($owner)));
+            }else{
+                return View::make("experiment/no-sharing-create-complete", array("expInputs" => $experimentInputs));
+            }
 
-            return View::make("experiment/create-complete", array("expInputs" => $experimentInputs, "users" => json_encode($users), "owner" => json_encode($owner)));
         } else if (isset($_POST['save']) || isset($_POST['launch'])) {
             $expId = ExperimentUtilities::create_experiment();
 
@@ -91,7 +96,6 @@ class ExperimentController extends BaseController
                     <a href=' . URL::to('/') . '"/experiment/summary?expId=' . $expId . '">go directly</a> to experiment summary page.</p>');
 
             }*/
-            $users = SharingUtilities::getProfilesForSharedUsers($expId, ResourceType::EXPERIMENT);
             return Redirect::to('experiment/summary?expId=' . $expId);
         } else
             return Redirect::to("home")->with("message", "Something went wrong here. Please file a bug report using the link in the Help menu.");
@@ -134,13 +138,7 @@ class ExperimentController extends BaseController
             }
             $expVal["jobDetails"] = $jobDetails;
 
-            $users = SharingUtilities::getProfilesForSharedUsers(Input::get("expId"), ResourceType::EXPERIMENT);
 
-            $owner = array();
-            if (strcmp(Session::get("username"), $experiment->userName) !== 0) {
-                $owner[$experiment->userName] = $users[$experiment->userName];
-                $users = array_diff_key($users, $owner);
-            }
 
             $data = array(
                 "expId" => Input::get("expId"),
@@ -148,11 +146,21 @@ class ExperimentController extends BaseController
                 "project" => $project,
                 "jobDetails" => $jobDetails,
                 "expVal" => $expVal,
-                "autoRefresh"=> $autoRefresh,
-                "users" => json_encode($users),
-                "owner" => json_encode($owner),
-                "can_write" => SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT)
+                "autoRefresh"=> $autoRefresh
             );
+            if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+                $users = SharingUtilities::getProfilesForSharedUsers(Input::get("expId"), ResourceType::EXPERIMENT);
+
+                $owner = array();
+                if (strcmp(Session::get("username"), $experiment->userName) !== 0) {
+                    $owner[$experiment->userName] = $users[$experiment->userName];
+                    $users = array_diff_key($users, $owner);
+                }
+                $data['can_write'] = SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT);
+                $data["users"] = json_encode($users);
+                $data["owner"] = json_encode($owner);
+            }
+
             if( Input::has("dashboard"))
             {
                 $detailedExperiment = ExperimentUtilities::get_detailed_experiment( $_GET['expId']);
@@ -208,57 +216,61 @@ class ExperimentController extends BaseController
 
     public function editView()
     {
-        if (SharingUtilities::userCanWrite(Session::get("username"), $_GET['expId'], ResourceType::EXPERIMENT) === true) {
-            $queueDefaults = array("queueName" => Config::get('pga_config.airavata')["queue-name"],
-                "nodeCount" => Config::get('pga_config.airavata')["node-count"],
-                "cpuCount" => Config::get('pga_config.airavata')["total-cpu-count"],
-                "wallTimeLimit" => Config::get('pga_config.airavata')["wall-time-limit"]
-            );
-
-            $experiment = ExperimentUtilities::get_experiment($_GET['expId']);
-            $expVal = ExperimentUtilities::get_experiment_values($experiment);
-            $expVal["jobState"] = ExperimentUtilities::get_job_status($experiment);
+        $queueDefaults = array("queueName" => Config::get('pga_config.airavata')["queue-name"],
+            "nodeCount" => Config::get('pga_config.airavata')["node-count"],
+            "cpuCount" => Config::get('pga_config.airavata')["total-cpu-count"],
+            "wallTimeLimit" => Config::get('pga_config.airavata')["wall-time-limit"]
+        );
 
-            $computeResources = CRUtilities::create_compute_resources_select($experiment->executionId, $expVal['scheduling']->resourceHostId);
+        $experiment = ExperimentUtilities::get_experiment($_GET['expId']);
+        $expVal = ExperimentUtilities::get_experiment_values($experiment);
+        $expVal["jobState"] = ExperimentUtilities::get_job_status($experiment);
 
-            $clonedExp = false; $savedExp = false;
-            if( Input::has("clonedExp"))
-                $clonedExp = true;
-            if( Input::has("savedExp"))
-                $savedExp = true;
+        $computeResources = CRUtilities::create_compute_resources_select($experiment->executionId, $expVal['scheduling']->resourceHostId);
+
+        $clonedExp = false; $savedExp = false;
+        if( Input::has("clonedExp"))
+            $clonedExp = true;
+        if( Input::has("savedExp"))
+            $savedExp = true;
+
+        $experimentInputs = array(
+            "clonedExp" => $clonedExp,
+            "savedExp" => $savedExp,
+            "disabled" => ' ',
+            "experimentName" => $experiment->experimentName,
+            "experimentDescription" => $experiment->description,
+            "application" => $experiment->executionId,
+            "autoSchedule" => $experiment->userConfigurationData->airavataAutoSchedule,
+            "userDN" => $experiment->userConfigurationData->userDN,
+            "allowedFileSize" => Config::get('pga_config.airavata')["server-allowed-file-size"],
+            'experiment' => $experiment,
+            "queueDefaults" => $queueDefaults,
+            'computeResources' => $computeResources,
+            "resourceHostId" => $expVal['scheduling']->resourceHostId,
+            'project' => $experiment->projectId,
+            'expVal' => $expVal,
+            'cloning' => true,
+            'advancedOptions' => Config::get('pga_config.airavata')["advanced-experiment-options"]
+        );
 
-            $experimentInputs = array(
-                "clonedExp" => $clonedExp,
-                "savedExp" => $savedExp,
-                "disabled" => ' ',
-                "experimentName" => $experiment->experimentName,
-                "experimentDescription" => $experiment->description,
-                "application" => $experiment->executionId,
-                "autoSchedule" => $experiment->userConfigurationData->airavataAutoSchedule,
-                "userDN" => $experiment->userConfigurationData->userDN,
-                "allowedFileSize" => Config::get('pga_config.airavata')["server-allowed-file-size"],
-                'experiment' => $experiment,
-                "queueDefaults" => $queueDefaults,
-                'computeResources' => $computeResources,
-                "resourceHostId" => $expVal['scheduling']->resourceHostId,
-                'project' => $experiment->projectId,
-                'expVal' => $expVal,
-                'cloning' => true,
-                'advancedOptions' => Config::get('pga_config.airavata')["advanced-experiment-options"]
-            );
+        if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+            if (SharingUtilities::userCanWrite(Session::get("username"), $_GET['expId'], ResourceType::EXPERIMENT) === true) {
+                $users = SharingUtilities::getProfilesForSharedUsers($_GET['expId'], ResourceType::EXPERIMENT);
 
-            $users = SharingUtilities::getProfilesForSharedUsers($_GET['expId'], ResourceType::EXPERIMENT);
+                $owner = array();
+                if (strcmp(Session::get("username"), $experiment->userName) !== 0) {
+                    $owner[$experiment->userName] = $users[$experiment->userName];
+                    $users = array_diff_key($users, $owner);
+                }
 
-            $owner = array();
-            if (strcmp(Session::get("username"), $experiment->userName) !== 0) {
-                $owner[$experiment->userName] = $users[$experiment->userName];
-                $users = array_diff_key($users, $owner);
+                return View::make("experiment/edit", array("expInputs" => $experimentInputs, "users" => json_encode($users), "owner" => json_encode($owner)));
             }
-
-            return View::make("experiment/edit", array("expInputs" => $experimentInputs, "users" => json_encode($users), "owner" => json_encode($owner)));
-        }
-        else {
-            Redirect::to("experiment/summary?expId=" . $experiment->experimentId)->with("error", "You do not have permission to edit this experiment");
+            else {
+                Redirect::to("experiment/summary?expId=" . $experiment->experimentId)->with("error", "You do not have permission to edit this experiment");
+            }
+        }else {
+            return View::make("experiment/no-sharing-edit", array("expInputs" => $experimentInputs));
         }
     }
 
@@ -278,10 +290,28 @@ class ExperimentController extends BaseController
 
     public function editSubmit()
     {
-        if (SharingUtilities::userCanWrite(Session::get("username"), Input::get('expId'), ResourceType::EXPERIMENT)) {
+        $experiment = ExperimentUtilities::get_experiment(Input::get('expId')); // update local experiment variable
+        $updatedExperiment = ExperimentUtilities::apply_changes_to_experiment($experiment, Input::all());
+
+        if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+            if (SharingUtilities::userCanWrite(Session::get("username"), Input::get('expId'), ResourceType::EXPERIMENT)) {
+                if (isset($_POST['save']) || isset($_POST['launch'])) {
+
+                    ExperimentUtilities::update_experiment($experiment->experimentId, $updatedExperiment);
+
+                    if (isset($_POST['save'])) {
+                        $experiment = ExperimentUtilities::get_experiment(Input::get('expId')); // update local experiment variable
+                    }
+                    if (isset($_POST['launch'])) {
+                        ExperimentUtilities::launch_experiment($experiment->experimentId);
+                    }
+
+                    return Redirect::to('experiment/summary?expId=' . $experiment->experimentId);
+                } else
+                    return View::make("home");
+            }
+        }else{
             if (isset($_POST['save']) || isset($_POST['launch'])) {
-                $experiment = ExperimentUtilities::get_experiment(Input::get('expId')); // update local experiment variable
-                $updatedExperiment = ExperimentUtilities::apply_changes_to_experiment($experiment, Input::all());
 
                 ExperimentUtilities::update_experiment($experiment->experimentId, $updatedExperiment);
 
@@ -328,19 +358,29 @@ class ExperimentController extends BaseController
             ($pageNo - 1) * $this->limit);
         $experimentStates = ExperimentUtilities::getExpStates();
 
-        $can_write = array();
-        foreach ($expContainer as $experiment) {
-            $can_write[$experiment['experiment']->experimentId] = SharingUtilities::userCanWrite(Session::get("username"), $experiment['experiment']->experimentId, ResourceType::EXPERIMENT);
-        }
+        if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+            $can_write = array();
+            foreach ($expContainer as $experiment) {
+                $can_write[$experiment['experiment']->experimentId] = SharingUtilities::userCanWrite(Session::get("username"), $experiment['experiment']->experimentId, ResourceType::EXPERIMENT);
+            }
 
-        return View::make('experiment/browse', array(
-            'input' => Input::all(),
-            'pageNo' => $pageNo,
-            'limit' => $this->limit,
-            'expStates' => $experimentStates,
-            'expContainer' => $expContainer,
-            'can_write' => $can_write
-        ));
+            return View::make('experiment/browse', array(
+                'input' => Input::all(),
+                'pageNo' => $pageNo,
+                'limit' => $this->limit,
+                'expStates' => $experimentStates,
+                'expContainer' => $expContainer,
+                'can_write' => $can_write
+            ));
+        }else{
+            return View::make('experiment/no-sharing-browse', array(
+                'input' => Input::all(),
+                'pageNo' => $pageNo,
+                'limit' => $this->limit,
+                'expStates' => $experimentStates,
+                'expContainer' => $expContainer
+            ));
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/controllers/ProjectController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ProjectController.php b/app/controllers/ProjectController.php
index 966f36a..701e266 100755
--- a/app/controllers/ProjectController.php
+++ b/app/controllers/ProjectController.php
@@ -25,8 +25,13 @@ class ProjectController extends BaseController
 
     public function createView()
     {
-        $users = SharingUtilities::getAllUserProfiles();
-        return View::make("project/create", array("users" => json_encode($users), "owner" => json_encode(array())));
+        if (Config::get('pga_config.airavata')["data-sharing-enabled"]){
+            $users = SharingUtilities::getAllUserProfiles();
+            return View::make("project/create", array("users" => json_encode($users), "owner" => json_encode(array())));
+        }else{
+            return View::make("project/no-sharing-create");
+        }
+
     }
 
     public function createSubmit()
@@ -45,35 +50,42 @@ class ProjectController extends BaseController
             Session::put("projId", Input::get("projId"));
 
             $project = ProjectUtilities::get_project(Input::get('projId'));
-
-            $users = SharingUtilities::getProfilesForSharedUsers(Input::get('projId'), ResourceType::PROJECT);
-
-            $owner = array();
-            if (strcmp(Session::get("username"), $project->owner) !== 0) {
-                $owner[$project->owner] = $users[$project->owner];
-                $users = array_diff_key($users, $owner);
-            }
-
             $experiments = ProjectUtilities::get_experiments_in_project(Input::get("projId"));
 
-            $experiment_can_write = array();
-            foreach($experiments as $experiment) {
-                if (SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT)) {
-                    $experiment_can_write[$experiment->experimentId] = true;
+            if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+                $users = SharingUtilities::getProfilesForSharedUsers(Input::get('projId'), ResourceType::PROJECT);
+
+                $owner = array();
+                if (strcmp(Session::get("username"), $project->owner) !== 0) {
+                    $owner[$project->owner] = $users[$project->owner];
+                    $users = array_diff_key($users, $owner);
                 }
-                else {
-                    $experiment_can_write[$experiment->experimentId] = false;
+
+                $experiment_can_write = array();
+                foreach($experiments as $experiment) {
+                    if (SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT)) {
+                        $experiment_can_write[$experiment->experimentId] = true;
+                    }
+                    else {
+                        $experiment_can_write[$experiment->experimentId] = false;
+                    }
                 }
+
+                return View::make("project/summary",
+                    array("projectId" => Input::get("projId"),
+                        "experiments" => $experiments,
+                        "users" => json_encode($users),
+                        "owner" => json_encode($owner),
+                        "project_can_write" => SharingUtxilities::userCanWrite(Session::get("username"), Input::get("projId"), ResourceType::PROJECT),
+                        "experiment_can_write" => $experiment_can_write
+                    ));
+            }else{
+                return View::make("project/no-sharing-summary",
+                    array("projectId" => Input::get("projId"),
+                        "experiments" => $experiments
+                    ));
             }
 
-            return View::make("project/summary",
-                array("projectId" => Input::get("projId"),
-                      "experiments" => $experiments,
-                      "users" => json_encode($users),
-                      "owner" => json_encode($owner),
-                      "project_can_write" => SharingUtilities::userCanWrite(Session::get("username"), Input::get("projId"), ResourceType::PROJECT),
-                      "experiment_can_write" => $experiment_can_write
-                  ));
         } else
             return Redirect::to("home");
     }
@@ -81,25 +93,29 @@ class ProjectController extends BaseController
     public function editView()
     {
         if (Input::has("projId")) {
-            if (SharingUtilities::userCanWrite(Session::get("username"), Input::get("projId"), ResourceType::PROJECT)) {
-                $project = ProjectUtilities::get_project($_GET['projId']);
-                $users = SharingUtilities::getProfilesForSharedUsers(Input::get('projId'), ResourceType::PROJECT);
-                $owner = array();
-
-                if (strcmp(Session::get("username"), $project->owner) !== 0) {
-                    $owner[$project->owner] = $users[$project->owner];
-                    $users = array_diff_key($users, $owner);
+            $project = ProjectUtilities::get_project($_GET['projId']);
+            if (Config::get('pga_config.airavata')["data-sharing-enabled"]) {
+                if (SharingUtilities::userCanWrite(Session::get("username"), Input::get("projId"), ResourceType::PROJECT)) {
+                    $users = SharingUtilities::getProfilesForSharedUsers(Input::get('projId'), ResourceType::PROJECT);
+                    $owner = array();
+                    if (strcmp(Session::get("username"), $project->owner) !== 0) {
+                        $owner[$project->owner] = $users[$project->owner];
+                        $users = array_diff_key($users, $owner);
+                    }
+                    return View::make("project/edit",
+                        array("projectId" => Input::get("projId"),
+                            "project" => $project,
+                            "users" => json_encode($users),
+                            "owner" => json_encode($owner)
+                        ));
+                }else {
+                    return Redirect::to('project/summary?projId=' . Input::get("projId"))->with("error", "You do not have permission to edit this project.");
                 }
-
-                return View::make("project/edit",
+            } else {
+                return View::make("project/no-sharing-edit",
                     array("projectId" => Input::get("projId"),
                         "project" => $project,
-                        "users" => json_encode($users),
-                        "owner" => json_encode($owner)
                     ));
-                }
-            else {
-                return Redirect::to('project/summary?projId=' . Input::get("projId"))->with("error", "You do not have permission to edit this project.");
             }
         } else
             return Redirect::to("home");
@@ -107,16 +123,20 @@ class ProjectController extends BaseController
 
     public function editSubmit()
     {
-        if (isset($_POST['save']) && SharingUtilities::userCanWrite(Session::get("username"), Input::get("projectId"), ResourceType::PROJECT)) {
-            $projectDetails = array();
-            $projectDetails["owner"] = Session::get("username");
-            $projectDetails["name"] = Input::get("project-name");
-            $projectDetails["description"] = Input::get("project-description");
+        $projectDetails = array();
+        $projectDetails["owner"] = Session::get("username");
+        $projectDetails["name"] = Input::get("project-name");
+        $projectDetails["description"] = Input::get("project-description");
 
-            ProjectUtilities::update_project(Input::get("projectId"), $projectDetails);
+        if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+            if (isset($_POST['save']) && SharingUtilities::userCanWrite(Session::get("username"), Input::get("projectId"), ResourceType::PROJECT)) {
 
-            return Redirect::to("project/summary?projId=" . Input::get("projectId"))->with("project_edited", true);
+                ProjectUtilities::update_project(Input::get("projectId"), $projectDetails);
+            }
+        }else{
+            ProjectUtilities::update_project(Input::get("projectId"), $projectDetails);
         }
+        return Redirect::to("project/summary?projId=" . Input::get("projectId"))->with("project_edited", true);
     }
 
     public function browseView()
@@ -142,23 +162,32 @@ class ProjectController extends BaseController
             $projects = ProjectUtilities::get_all_user_accessible_projects_with_pagination($this->limit, ($pageNo - 1) * $this->limit);
         }
 
-        $can_write = array();
-        $user = Session::get("username");
-        foreach($projects as $project) {
-            if (SharingUtilities::userCanWrite($user, $project->projectID, ResourceType::PROJECT)) {
-                $can_write[$project->projectID] = true;
-            }
-            else {
-                $can_write[$project->projectID] = false;
+        if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+            $can_write = array();
+            $user = Session::get("username");
+            foreach($projects as $project) {
+                if (SharingUtilities::userCanWrite($user, $project->projectID, ResourceType::PROJECT)) {
+                    $can_write[$project->projectID] = true;
+                }
+                else {
+                    $can_write[$project->projectID] = false;
+                }
             }
+
+            return View::make('project/browse', array(
+                'pageNo' => $pageNo,
+                'limit' => $this->limit,
+                'projects' => $projects,
+                'can_write' => $can_write
+            ));
+        }else{
+            return View::make('project/no-sharing-browse', array(
+                'pageNo' => $pageNo,
+                'limit' => $this->limit,
+                'projects' => $projects
+            ));
         }
 
-        return View::make('project/browse', array(
-            'pageNo' => $pageNo,
-            'limit' => $this->limit,
-            'projects' => $projects,
-            'can_write' => $can_write
-        ));
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/libraries/ExperimentUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ExperimentUtilities.php b/app/libraries/ExperimentUtilities.php
index 4d38c7c..8b4b195 100755
--- a/app/libraries/ExperimentUtilities.php
+++ b/app/libraries/ExperimentUtilities.php
@@ -550,7 +550,6 @@ class ExperimentUtilities
      */
     public static function update_experiment($expId, $updatedExperiment)
     {
-        $share = $_POST['share-settings'];
         try {
             Airavata::updateExperiment(Session::get('authz-token'), $expId, $updatedExperiment);
         } catch (InvalidRequestException $ire) {
@@ -571,7 +570,10 @@ class ExperimentUtilities
                 '<p>AiravataSystemException: ' . $ase->getMessage() . '</p>');
         }
 
-        ExperimentUtilities::share_experiment($expId, json_decode($share));
+        if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+            $share = $_POST['share-settings'];
+            ExperimentUtilities::share_experiment($expId, json_decode($share));
+        }
     }
 
 
@@ -1128,7 +1130,16 @@ class ExperimentUtilities
         $expContainer = array();
         $expNum = 0;
         foreach ($experiments as $experiment) {
-            if (SharingUtilities::userCanRead(Session::get('username'), $experiment->experimentId, ResourceType::EXPERIMENT)) {
+            if(Config::get('pga_config.airavata')["data-sharing-enabled"]){
+                if (SharingUtilities::userCanRead(Session::get('username'), $experiment->experimentId, ResourceType::EXPERIMENT)) {
+                    $expValue = ExperimentUtilities::get_experiment_values($experiment, true);
+                    $expContainer[$expNum]['experiment'] = $experiment;
+                    if ($expValue["experimentStatusString"] == "FAILED")
+                        $expValue["editable"] = false;
+                    $expContainer[$expNum]['expValue'] = $expValue;
+                    $expNum++;
+                }
+            }else{
                 $expValue = ExperimentUtilities::get_experiment_values($experiment, true);
                 $expContainer[$expNum]['experiment'] = $experiment;
                 if ($expValue["experimentStatusString"] == "FAILED")

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/libraries/ProjectUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ProjectUtilities.php b/app/libraries/ProjectUtilities.php
index ca8081e..ea65ddb 100755
--- a/app/libraries/ProjectUtilities.php
+++ b/app/libraries/ProjectUtilities.php
@@ -105,8 +105,6 @@ class ProjectUtilities
         $project->description = $_POST['project-description'];
         $project->gatewayId = Config::get('pga_config.airavata')['gateway-id'];
 
-        $share = $_POST['share-settings'];
-
         $projectId = null;
 
         try {
@@ -127,7 +125,10 @@ class ProjectUtilities
             CommonUtilities::print_error_message('AiravataSystemException!<br><br>' . $ase->getMessage());
         }
 
-        ProjectUtilities::share_project($projectId, json_decode($share));
+        if (Config::get('pga_config.airavata')["data-sharing-enabled"]){
+            $share = $_POST['share-settings'];
+            ProjectUtilities::share_project($projectId, json_decode($share));
+        }
 
         return $projectId;
     }
@@ -203,8 +204,6 @@ class ProjectUtilities
         $updatedProject->description = $projectDetails["description"];
         $updatedProject->gatewayId = Config::get('pga_config.airavata')['gateway-id'];
 
-        $share = $_POST['share-settings'];
-
         try {
             Airavata::updateProject(Session::get('authz-token'), $projectId, $updatedProject);
 
@@ -219,7 +218,10 @@ class ProjectUtilities
             CommonUtilities::print_error_message('AiravataSystemException!<br><br>' . $ase->getMessage());
         }
 
-        ProjectUtilities::share_project($projectId, json_decode($share));
+        if (Config::get('pga_config.airavata')["data-sharing-enabled"]){
+            $share = $_POST['share-settings'];
+            ProjectUtilities::share_project($projectId, json_decode($share));
+        }
     }
 
 

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/experiment/no-sharing-browse.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/no-sharing-browse.blade.php b/app/views/experiment/no-sharing-browse.blade.php
new file mode 100755
index 0000000..5b76914
--- /dev/null
+++ b/app/views/experiment/no-sharing-browse.blade.php
@@ -0,0 +1,214 @@
+@extends('layout.basic')
+
+@section('page-header')
+@parent
+{{ HTML::style('css/datetimepicker.css')}}
+
+@stop
+
+@section('content')
+
+<div class="container" style="max-width: 80%;">
+    <form action="{{URL::to('/')}}/experiment/browse" method="post" class="form-inline" role="form">
+        <div class="panel panel-default">
+            <div class="panel-heading">
+                <h3>Search for Experiments</h3>
+            </div>
+            <div class="panel-body">
+                <div class="form-group">
+                    <label for="search-key">Search by</label>
+                    <select class="form-control" name="search-key" id="search-key">
+                        <?php
+
+                        // set up options for select input
+                        $values = array('experiment-name', 'experiment-description', 'application', 'creation-time');
+                        $labels = array('Experiment Name', 'Experiment Description', 'Application', 'Creation Time');
+                        $disabled = array('', '', '', '');
+
+                        ExperimentUtilities::create_options($values, $labels, $disabled);
+
+                        ?>
+                    </select>
+                </div>
+
+                <div class="form-group search-text-block">
+                    <label for="search-value">for</label>
+                    <input type="search" class="form-control" name="search-value" id="search-value" placeholder="value"
+                           value="<?php if (isset($_POST['search-value'])) echo $_POST['search-value'] ?>">
+                </div>
+
+                <select name="status-type" class="form-control select-status">
+                    <option value="ALL">Status</option>
+                    <?php
+                    foreach ($expStates as $index => $state) {
+                        if (isset($input) && isset($input["status-type"]) && $state == $input["status-type"]) {
+                            echo '<option value="' . $state . '" selected>' . $state . '</option>';
+                        } else {
+                            echo '<option value="' . $state . '">' . $state . '</option>';
+                        }
+                    }
+                    ?>
+                </select>
+
+                <div class="container select-dates hide">
+                    <div class="col-md-12">
+                        Select dates between which you want to search for experiments.
+                    </div>
+                    <div class="col-sm-8" style="height:75px;">
+                        <div class='col-md-6'>
+                            <div class="form-group">
+                                <div class='input-group date' id='datetimepicker9'>
+                                    <input type='text' class="form-control" placeholder="From Date" name="from-date"
+                                           value="<?php if (isset($_POST['from-date'])) echo $_POST['from-date'] ?>"/>
+                        <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
+                        </span>
+                                </div>
+                            </div>
+                        </div>
+                        <div class='col-md-6'>
+                            <div class="form-group">
+                                <div class='input-group date' id='datetimepicker10'>
+                                    <input type='text' class="form-control" placeholder="To Date" name="to-date"
+                                           value="<?php if (isset($_POST['to-date'])) echo $_POST['to-date'] ?>"/>
+                        <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
+                        </span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <button name="search" type="submit" class="btn btn-primary pull-right" 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
+                    experiments.</p>
+
+            </div>
+        </div>
+
+        <!-- Pagination Handling -->
+        <?php
+        if (isset($expContainer)) {
+            ?>
+            <div class="pull-right btn-toolbar" style="padding-bottom: 5px">
+                <?php
+                if ($pageNo != 1) {
+                    echo '<input class="btn btn-primary btn-xs" type="submit" style="cursor: pointer" name="prev" value="Previous"/>';
+                }
+                if (sizeof($expContainer) > 0) {
+                    echo '<input class="btn btn-primary btn-xs" type="submit" style="cursor: pointer" name="next" value="Next"/>';
+                }
+                ?>
+            </div>
+            <div class="pull-left">
+                <?php if (sizeof($expContainer) != 0) echo 'Showing experiments from ' . strval(($pageNo - 1) * $limit + 1)
+                    . ' to ' . strval(min($pageNo * $limit, ($pageNo - 1) * $limit + sizeof($expContainer))); ?>
+            </div>
+            <input type="hidden" name="pageNo" value="<?php echo($pageNo) ?>"/>
+            <div style="clear: both"></div>
+        <?php
+        }
+        ?>
+    </form>
+
+    @include('partials/experiment-container')
+
+</div>
+
+@stop
+
+@section('scripts')
+@parent
+{{ HTML::script('js/moment.js')}}
+{{ HTML::script('js/datetimepicker.js')}}
+
+<script type="text/javascript">
+
+    $(document).ready(function () {
+
+//------------------------Commenting Client Side filtering--------------------------------------
+//            /* script to make status select work on the UI side itself. */
+//
+//            $(".select-status").on("change", function(){
+//                selectedStatus = this.value;
+//
+//                if( selectedStatus == "ALL")
+//                {
+//                    $("table tr").slideDown();
+//                }
+//                else
+//                {
+//                    $("table tr").each(function(index) {
+//                        if (index != 0) {
+//
+//                            $row = $(this);
+//
+//                            var status = $.trim( $row.find("td:last").text() );
+//                            if (status == selectedStatus )
+//                            {
+//                                $(this).slideDown();
+//                            }
+//                            else {
+//                                $(this).slideUp();
+//                            }
+//                        }
+//                    });
+//                }
+//            });
+
+        /* making datetimepicker work for exp search */
+
+        $('#datetimepicker9').datetimepicker({
+            pick12HourFormat: false
+        });
+        $('#datetimepicker10').datetimepicker({
+            pick12HourFormat: false
+        });
+        $("#datetimepicker9").on("dp.change", function (e) {
+            $('#datetimepicker10').data("DateTimePicker").setMinDate(e.date);
+
+            //hack to close calendar on selecting date
+            $(this).find(".glyphicon-calendar").click();
+        });
+        $("#datetimepicker10").on("dp.change", function (e) {
+            $('#datetimepicker9').data("DateTimePicker").setMaxDate(e.date);
+
+            //hack to close calendar on selecting date
+            $(this).find(".glyphicon-calendar").click();
+        });
+
+        /* selecting creation time */
+        $("#search-key").on("change", function () {
+            if (this.value == "creation-time") {
+                $(".search-text-block").addClass("hide");
+                $(".select-dates").removeClass("hide");
+                $("#search-value").removeAttr("required");
+
+            }
+            else {
+                $(".search-text-block").removeClass("hide");
+                $(".select-dates").addClass("hide");
+                $("#search-value").attr("required");
+            }
+        });
+
+        changeInputVisibility($("#search-key").val());
+
+    });
+
+    function changeInputVisibility(selectedStatus) {
+        if (selectedStatus == "creation-time") {
+            $(".search-text-block").addClass("hide");
+            $(".select-dates").removeClass("hide");
+            $("#search-value").removeAttr("required");
+
+        }
+        else {
+            $(".search-text-block").removeClass("hide");
+            $(".select-dates").addClass("hide");
+            $("#search-value").attr("required");
+        }
+    }
+</script>
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/experiment/no-sharing-create-complete.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/no-sharing-create-complete.blade.php b/app/views/experiment/no-sharing-create-complete.blade.php
new file mode 100755
index 0000000..31ed895
--- /dev/null
+++ b/app/views/experiment/no-sharing-create-complete.blade.php
@@ -0,0 +1,168 @@
+@extends('layout.basic')
+
+@section('page-header')
+@parent
+{{ HTML::style('css/sharing.css') }}
+@stop
+
+@section('content')
+<div class="col-md-offset-3 col-md-6">
+
+    <h1>Create a new experiment</h1>
+
+    <form action="{{URL::to('/')}}/experiment/create" method="POST" role="form" enctype="multipart/form-data">
+
+        <input type="hidden" name="experiment-name" value="{{$expInputs['experimentName']}}">
+        <input type="hidden" name="experiment-description" value="{{$expInputs['experimentDescription']}}">
+        <input type="hidden" name="project" value="{{$expInputs['project']}}">
+        <input type="hidden" name="application" value="{{$expInputs['application']}}">
+
+        @include('partials/experiment-inputs', array("expInputs" => $expInputs, "queueDefaults" =>
+        $expInputs['queueDefaults']) )
+
+        <div class="form-group btn-toolbar">
+            <div class="btn-group">
+                <button onclick="disableWarn()" name="save" type="submit" class="btn btn-primary" value="Save">Save</button>
+                <button onclick="disableWarn()" name="launch" type="submit" class="btn btn-success" id="expLaunch" value="Save and launch">Save
+                    and launch
+                </button>
+            </div>
+
+            <a onclick="disableWarn()" href="{{URL::to('/')}}/experiment/create" class="btn btn-default" role="button">Start over</a>
+        </div>
+
+    </form>
+
+<input type="hidden" id="allowedFileSize" value="{{ $expInputs['allowedFileSize'] }}"/>
+</div>
+
+
+@stop
+
+@section('scripts')
+@parent
+<script>
+    var warn = true;
+
+    function disableWarn(){
+        warn = false;
+        return false;
+    }
+
+    $('.file-input').bind('change', function () {
+
+        var inputFileSize = Math.round(this.files[0].size / (1024 * 1024));
+        if (inputFileSize > $("#allowedFileSize").val()) {
+            alert("The input file size is greater than the allowed file size (" + $("#allowedFileSize").val() + " MB) in a form. Please upload another file.");
+            $(this).val("");
+        }
+
+    });
+
+    $("#enableEmail").change(function () {
+        if (this.checked) {
+            $("#emailAddresses").attr("required", "required");
+            $(this).parent().children(".emailSection").removeClass("hide");
+        }
+        else {
+            $(this).parent().children(".emailSection").addClass("hide");
+            $("#emailAddresses").removeAttr("required");
+        }
+
+    });
+
+    $(".addEmail").click(function () {
+        var emailInput = $(this).parent().find("#emailAddresses").clone();
+        emailInput.removeAttr("id").removeAttr("required").val("").appendTo(".emailAddresses");
+    });
+
+    $("#compute-resource").change(function () {
+        var crId = $(this).val();
+        $(".loading-img ").removeClass("hide");
+        $.ajax({
+            url: '../experiment/getQueueView',
+            type: 'get',
+            data: {crId: crId},
+            success: function (data) {
+                $(".queue-view").html(data);
+                $(".loading-img ").addClass("hide");
+            }
+        });
+    });
+
+    window.onbeforeunload = function() {
+        if(warn){
+            return "Are you sure you want to navigate to other page ? (you will loose all unsaved data)";
+        }
+        warn = true;
+    }
+
+    //Selecting the first option as the default
+    $( document ).ready(function() {
+        var crId = $("#compute-resource").val();
+        $(".loading-img ").removeClass("hide");
+        $.ajax({
+            url: '../experiment/getQueueView',
+            type: 'get',
+            data: {crId: crId},
+            success: function (data) {
+                $(".queue-view").html(data);
+                $(".loading-img ").addClass("hide");
+            },error : function(data){
+                $(".loading-img ").addClass("hide");
+            }
+        });
+    });
+
+    //Setting the file input view JS code
+    $( document ).ready(function() {
+        function readBlob(opt_startByte, opt_stopByte, fileId) {
+
+            var files = document.getElementById(fileId).files;
+            if (!files.length) {
+                alert('Please select a file!');
+                return;
+            }
+
+            var file = files[0];
+            var start = 0;
+            var stop = Math.min(512*1024,file.size - 1);
+
+            var reader = new FileReader();
+
+            // If we use onloadend, we need to check the readyState.
+            reader.onloadend = function(evt) {
+                if (evt.target.readyState == FileReader.DONE) { // DONE == 2
+                    $('#byte_content').html(evt.target.result.replace(/(?:\r\n|\r|\n)/g, '<br />'));
+                    $('#byte_range').html(
+                            ['Read bytes: ', start + 1, ' - ', stop + 1,
+                                ' of ', file.size, ' byte file'].join(''));
+                }
+            };
+
+            var blob = file.slice(start, stop + 1);
+            reader.readAsBinaryString(blob);
+
+            $('#input-file-view').modal('show');
+        }
+
+        $( ".readBytesButtons" ).click(function() {
+            var startByte = $(this).data('startbyte');
+            var endByte = $(this).data('endbyte');
+            var fileId = $(this).data('file-id');
+            readBlob(startByte, endByte, fileId);
+        });
+    });
+
+    updateList = function() {
+        var input = document.getElementById('optInputFiles');
+        var output = document.getElementById('optFileList');
+
+        output.innerHTML = '<ul>';
+        for (var i = 0; i < input.files.length; ++i) {
+            output.innerHTML += '<li>' + input.files.item(i).name + '</li>';
+        }
+        output.innerHTML += '</ul>';
+    }
+</script>
+@stop

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/experiment/no-sharing-edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/no-sharing-edit.blade.php b/app/views/experiment/no-sharing-edit.blade.php
new file mode 100755
index 0000000..f9042b5
--- /dev/null
+++ b/app/views/experiment/no-sharing-edit.blade.php
@@ -0,0 +1,96 @@
+@extends('layout.basic')
+
+@section('page-header')
+@parent
+@stop
+
+@section('content')
+
+<?php
+//$echoResources = array('localhost', 'trestles.sdsc.edu', 'lonestar.tacc.utexas.edu');
+//$wrfResources = array('trestles.sdsc.edu');
+
+//$appResources = array('Echo' => $echoResources, 'WRF' => $wrfResources);
+?>
+
+
+<div class="container">
+
+    <div class="col-md-offset-3 col-md-6">
+        <h1>Edit Experiment</h1>
+
+        <form action="{{URL::to('/')}}/experiment/edit" method="POST" role="form" enctype="multipart/form-data">
+            <input type="hidden" name="expId" value="<?php echo Input::get('expId'); ?>"/>
+
+            @include('partials/experiment-inputs', array( "expInputs", $expInputs))
+
+            @if( count( $expInputs['computeResources']) > 0)
+            <div class="btn-toolbar">
+                <div class="btn-group">
+                    <input name="save" type="submit" class="btn btn-primary"
+                           value="Save" <?php if (!$expInputs['expVal']['editable']) echo 'disabled' ?>>
+                    <input name="launch" type="submit" class="btn btn-success"
+                           value="Save and launch" <?php if (!$expInputs['expVal']['editable']) echo 'disabled' ?>>
+                </div>
+            </div>
+            @else
+            <p class="well alert alert-danger">
+                This experiment is connected with an Application which is currently not deployed on any Resource. The experiment cannot be launched at the moment.
+            </p>
+            @endif
+        </form>
+    </div>
+
+</div>
+
+{{ HTML::image("assets/Profile_avatar_placeholder_large.png", 'placeholder image', array('class' => 'baseimage')) }}
+
+@include('partials/sharing-form-modal')
+@stop
+
+
+@section('scripts')
+@parent
+<script>
+    $('.file-input').bind('change', function () {
+
+        var inputFileSize = Math.round(this.files[0].size / (1024 * 1024));
+        if (inputFileSize > $("#allowedFileSize").val()) {
+            alert("The input file size is greater than the allowed file size (" + $("#allowedFileSize").val() + " MB) in a form. Please upload another file.");
+            $(this).val("");
+        }
+
+    });
+
+    $("#enableEmail").change(function () {
+        if (this.checked) {
+            $("#emailAddresses").attr("required", "required");
+            $(this).parent().children(".emailSection").removeClass("hide");
+        }
+        else {
+            $(this).parent().children(".emailSection").addClass("hide");
+            $("#emailAddresses").removeAttr("required");
+        }
+
+    });
+
+    $(".addEmail").click(function () {
+        var emailInput = $(this).parent().find("#emailAddresses").clone();
+        emailInput.removeAttr("id").removeAttr("required").val("").appendTo(".emailAddresses");
+    });
+
+    $("#compute-resource").change(function () {
+        var crId = $(this).val();
+        $(".loading-img ").removeClass("hide");
+        $.ajax({
+            url: '../experiment/getQueueView',
+            type: 'get',
+            data: {crId: crId},
+            success: function (data) {
+                $(".queue-view").html(data);
+                $(".loading-img ").addClass("hide");
+            }
+        });
+    });
+</script>
+@stop

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/partials/experiment-container.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/experiment-container.blade.php b/app/views/partials/experiment-container.blade.php
index 561063e..dd86c98 100644
--- a/app/views/partials/experiment-container.blade.php
+++ b/app/views/partials/experiment-container.blade.php
@@ -28,8 +28,10 @@
                         <a href="{{URL::to('/')}}/experiment/summary?expId={{$experiment['experiment']->experimentId}}" target="_blank">
                         {{ $experiment['experiment']->name }}
                         </a>
-                        @if( $experiment['expValue']['editable'] and $can_write[$experiment['experiment']->experimentId] === true)
-                            <a href="{{URL::to('/')}}/experiment/edit?expId={{$experiment['experiment']->experimentId}}" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>
+                        @if(Config::get('pga_config.airavata')["data-sharing-enabled"])
+                            @if( $experiment['expValue']['editable'] and $can_write[$experiment['experiment']->experimentId] === true)
+                                <a href="{{URL::to('/')}}/experiment/edit?expId={{$experiment['experiment']->experimentId}}" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>
+                            @endif
                         @endif
                     </td>
                     <td>{{$experiment['experiment']->userName}}</td>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/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
index 80fcf55..dbdf579 100644
--- a/app/views/partials/experiment-info.blade.php
+++ b/app/views/partials/experiment-info.blade.php
@@ -77,7 +77,7 @@
                         <tr>
                             <td>Name</td>
                             <td>ID</td>
-                            <td>Status</td>
+                            <td>Status</td>SharingUtilities::userCanWrite(Session::get("username"), $experiment->experimentId, ResourceType::EXPERIMENT)
                             <td>Creation Time</td>
                         </tr>
                         <tr>
@@ -204,10 +204,12 @@
     </table>
 
     <div class="form-group">
-    @if($can_write === true)
-    @include('partials/sharing-display-body', array("form" => true))
-    @else
-    @include('partials/sharing-display-body', array("form" => false))
+    @if(Config::get('pga_config.airavata')["data-sharing-enabled"])
+        @if($can_write === true)
+        @include('partials/sharing-display-body', array("form" => true))
+        @else
+        @include('partials/sharing-display-body', array("form" => false))
+        @endif
     @endif
     </div>
 
@@ -245,6 +247,7 @@
                 Clone
             </a>
             <input type="hidden" name="expId" value="{{ Input::get('expId') }}"/>
+            @if(Config::get('pga_config.airavata')["data-sharing-enabled"])
             @if($can_write === true)
             <a href="{{URL::to('/') }}/experiment/edit?expId={{ $experiment->experimentId }}&savedExp=true"
                class="btn btn-default"
@@ -254,6 +257,7 @@
                 Edit
             </a>
             @endif
+            @endif
         </div>
     </form>
     @endif
@@ -340,20 +344,24 @@
 </div>
 @endif
 
-@if($can_write === true)
-@include('partials/sharing-form-modal')
+@if(Config::get('pga_config.airavata')["data-sharing-enabled"])
+    @if($can_write === true)
+    @include('partials/sharing-form-modal')
+    @endif
 @endif
-
 @section('scripts')
 @parent
 {{ HTML::script('js/time-conversion.js')}}
-<script>
-    var users = {{ $users }};
-    var owner = {{ $owner }};
-    $('#project-share').data({url: "{{URL::to('/')}}/experiment/unshared-users", resourceId: "{{Input::get('expId')}}"})
-</script>
-{{ HTML::script('js/sharing/sharing_utils.js') }}
-{{ HTML::script('js/sharing/share.js') }}
+@if(Config::get('pga_config.airavata')["data-sharing-enabled"])
+    <script>
+        var users = {{ $users }};
+        var owner = {{ $owner }};
+        $('#project-share').data({url: "{{URL::to('/')}}/experiment/unshared-users", resourceId: "{{Input::get('expId')}}"})
+    </script>
+    {{ HTML::script('js/sharing/sharing_utils.js') }}
+    {{ HTML::script('js/sharing/share.js') }}
+@endif
+
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.1/Chart.bundle.min.js"></script>
 {{ HTML::script('js/simstream.js') }}
 <script>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/project/no-sharing-browse.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/no-sharing-browse.blade.php b/app/views/project/no-sharing-browse.blade.php
new file mode 100755
index 0000000..4dc8efb
--- /dev/null
+++ b/app/views/project/no-sharing-browse.blade.php
@@ -0,0 +1,146 @@
+@extends('layout.basic')
+
+@section('page-header')
+@parent
+@stop
+
+@section('content')
+
+<div class="container" style="max-width: 80%;">
+
+    <form action="{{ URL::to('/') }}/project/browse" method="post" class="form-inline" role="form">
+        <div class="panel panel-default">
+            <div class="panel-heading">
+                <h3>Search for Projects</h3>
+            </div>
+            <div class="panel-body">
+                <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"
+                           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>
+            </div>
+        </div>
+
+
+        <!-- Pagination Handling -->
+        <?php
+        if (isset($projects)) {
+            ?>
+            <div class="pull-right btn-toolbar" style="padding-bottom: 5px">
+                <?php
+                if ($pageNo != 1) {
+                    echo '<input class="btn btn-primary btn-xs" type="submit" style="cursor: pointer" name="prev" value="Previous"/>';
+                }
+                if (sizeof($projects) > 0) {
+                    echo '<input class="btn btn-primary btn-xs" type="submit" style="cursor: pointer" name="next" value="Next"/>';
+                }
+                ?>
+            </div>
+            <div class="pull-left">
+                <?php if (sizeof($projects) != 0) echo 'Showing projects from ' . strval(($pageNo - 1) * $limit + 1)
+                    . ' to ' . strval(min($pageNo * $limit, ($pageNo - 1) * $limit + sizeof($projects))); ?>
+            </div>
+            <input type="hidden" name="pageNo" value="<?php echo($pageNo) ?>"/>
+            <div style="clear: both"></div>
+        <?php
+        }
+        ?>
+    </form>
+
+
+
+
+
+    <?php
+
+    if (isset($projects))
+    {
+    /**
+     * get results
+     */
+
+    /**
+     * display results
+     */
+    if (sizeof($projects) == 0)
+    {
+        if ($pageNo == 1) {
+            CommonUtilities::print_warning_message('No results found. Please try again.');
+        } else {
+            CommonUtilities::print_warning_message('No more results found.');
+        }
+    }
+    else
+    {
+    ?>
+    <div class="table-responsive">
+        <table class="table">
+
+            <tr>
+
+                <th>Name</th>
+                <th>Owner</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>
+                        {{$project->owner}}
+                    </td>
+                    <td class="time" unix-time="
+                            <?php echo $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
+    @section('scripts')
+    @parent
+    {{ HTML::script('js/time-conversion.js')}}
+    @stop

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/project/no-sharing-create.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/no-sharing-create.blade.php b/app/views/project/no-sharing-create.blade.php
new file mode 100755
index 0000000..665fe78
--- /dev/null
+++ b/app/views/project/no-sharing-create.blade.php
@@ -0,0 +1,33 @@
+@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 maxlength="50">
+        </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" maxlength="200"></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
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/project/no-sharing-edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/no-sharing-edit.blade.php b/app/views/project/no-sharing-edit.blade.php
new file mode 100755
index 0000000..8e17b72
--- /dev/null
+++ b/app/views/project/no-sharing-edit.blade.php
@@ -0,0 +1,49 @@
+@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 }}" required maxlength="50">
+        </div>
+        <div class="form-group">
+            <label for="project-description">Project Description</label>
+            <textarea class="form-control"
+                      name="project-description"
+                      id="project-description" maxlength="200">{{ $project->description }}</textarea>
+            <input type="hidden" name="projectId" value="{{ Input::get('projId') }}"/>
+        </div>
+
+        <div class="btn-toolbar">
+            <input name="save" type="submit" class="btn btn-primary" value="Save">
+        </div>
+
+
+    </form>
+
+
+</div>
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/project/no-sharing-summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/no-sharing-summary.blade.php b/app/views/project/no-sharing-summary.blade.php
new file mode 100755
index 0000000..3cfe606
--- /dev/null
+++ b/app/views/project/no-sharing-summary.blade.php
@@ -0,0 +1,103 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+@stop
+
+@section('content')
+
+<div class="container" style="max-width: 80%;">
+    <?php
+        $project = ProjectUtilities::get_project($_GET['projId']);
+    ?>
+    <h1>Project Summary
+        @if( !isset($dashboard))
+        <small><a href="{{ URL::to('/') }}/project/summary?projId={{ $project->projectID }}"
+                  title="Refresh"><span class="glyphicon glyphicon-refresh refresh-exp"></span></a></small>
+        @endif
+    </h1>
+    <div>
+        <div>
+            <h3>{{ $project->name }}
+                <a href="edit?projId={{ $project->projectID }}" title="Edit">
+                    <span class="glyphicon glyphicon-pencil"></span>
+                </a>
+            </h3>
+            <p>{{ $project->description }}</p>
+        </div>
+        <div class="table-responsive">
+            <table class="table">
+                <tr>
+
+                    <th>Name</th>
+                    <th>Owner</th>
+                    <th>Application</th>
+                    <th>Compute Resource</th>
+                    <th>Last Modified Time</th>
+                    <th>Experiment Status</th>
+                    <th>Job Status</th>
+
+                </tr>
+                <?php
+
+                foreach ($experiments as $experiment) {
+                    $expValues = ExperimentUtilities::get_experiment_values($experiment, true);
+                    $expValues["jobState"] = ExperimentUtilities::get_job_status($experiment);
+                    $applicationInterface = AppUtilities::get_application_interface($experiment->executionId);
+
+                    try {
+                        $cr = CRUtilities::get_compute_resource($experiment->userConfigurationData->computationalResourceScheduling->resourceHostId);
+                        if (!empty($cr)) {
+                            $resourceName = $cr->hostName;
+                        }
+                    } catch (Exception $ex) {
+                        $resourceName = 'Error while retrieving the CR';
+                    }
+                    ?>
+
+                <tr>
+                    <td>
+                        <a href="{{URL::to('/')}}/experiment/summary?expId={{$experiment->experimentId}}">
+                        {{ $experiment->experimentName }}
+                        </a>
+                        @if( $expValues['editable'] and $experiment_can_write[$experiment->experimentId] === true)
+                            <a href="{{URL::to('/')}}/experiment/edit?expId={{$experiment->experimentId}}" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>
+                        @endif
+                    </td>
+                    <td>{{ $experiment->userName }}</td>
+                    <td>
+                        @if( $applicationInterface != null )
+                            {{ $applicationInterface->applicationName }}
+                        @else
+                            <span class='text-danger'>Removed</span>
+                        @endif
+                    </td>
+
+                    <td>{{ $resourceName }}</td>
+                    <td class="time" unix-time="{{$expValues["experimentTimeOfStateChange"]}}"></td>
+                    <td>
+                        <div class="{{ExperimentUtilities::get_status_color_class( $expValues["experimentStatusString"])}}">
+                            {{ $expValues["experimentStatusString"] }}
+                        </div>
+                    </td>
+
+                    <td>
+                    @if (isset($expValues["jobState"]) )
+                        <div class="{{ ExperimentUtilities::get_status_color_class( $expValues["jobState"]) }}">
+                            {{ $expValues["jobState"] }}
+                        </div>
+                    @endif
+                    </td>
+                </tr>
+                <?php
+                }
+                ?>
+            </table>
+        </div>
+    </div>
+</div>
+@stop
+@section('scripts')
+@parent
+{{ HTML::script('js/time-conversion.js')}}
+@stop

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/project/no-summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/no-summary.blade.php b/app/views/project/no-summary.blade.php
new file mode 100755
index 0000000..a307a63
--- /dev/null
+++ b/app/views/project/no-summary.blade.php
@@ -0,0 +1,119 @@
+@extends('layout.basic')
+
+@section('page-header')
+@parent
+{{ HTML::style('css/sharing.css') }}
+@stop
+
+@section('content')
+
+<div class="container" style="max-width: 80%;">
+    <?php
+        $project = ProjectUtilities::get_project($_GET['projId']);
+    ?>
+    <h1>Project Summary
+        @if( !isset($dashboard))
+        <small><a href="{{ URL::to('/') }}/project/summary?projId={{ $project->projectID }}"
+                  title="Refresh"><span class="glyphicon glyphicon-refresh refresh-exp"></span></a></small>
+        @endif
+    </h1>
+    <div>
+        <div>
+            <h3>{{ $project->name }}
+                @if($project_can_write === true)
+                <a href="edit?projId={{ $project->projectID }}" title="Edit">
+                    <span class="glyphicon glyphicon-pencil"></span>
+                </a>
+                @endif
+            </h3>
+            <p>{{ $project->description }}</p>
+        </div>
+        <div class="table-responsive">
+            <table class="table">
+                <tr>
+
+                    <th>Name</th>
+                    <th>Owner</th>
+                    <th>Application</th>
+                    <th>Compute Resource</th>
+                    <th>Last Modified Time</th>
+                    <th>Experiment Status</th>
+                    <th>Job Status</th>
+
+                </tr>
+                <?php
+
+                foreach ($experiments as $experiment) {
+                    $expValues = ExperimentUtilities::get_experiment_values($experiment, true);
+                    $expValues["jobState"] = ExperimentUtilities::get_job_status($experiment);
+                    $applicationInterface = AppUtilities::get_application_interface($experiment->executionId);
+
+                    try {
+                        $cr = CRUtilities::get_compute_resource($experiment->userConfigurationData->computationalResourceScheduling->resourceHostId);
+                        if (!empty($cr)) {
+                            $resourceName = $cr->hostName;
+                        }
+                    } catch (Exception $ex) {
+                        $resourceName = 'Error while retrieving the CR';
+                    }
+                    ?>
+
+                <tr>
+                    <td>
+                        <a href="{{URL::to('/')}}/experiment/summary?expId={{$experiment->experimentId}}">
+                        {{ $experiment->experimentName }}
+                        </a>
+                        @if( $expValues['editable'] and $experiment_can_write[$experiment->experimentId] === true)
+                            <a href="{{URL::to('/')}}/experiment/edit?expId={{$experiment->experimentId}}" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>
+                        @endif
+                    </td>
+                    <td>{{ $experiment->userName }}</td>
+                    <td>
+                        @if( $applicationInterface != null )
+                            {{ $applicationInterface->applicationName }}
+                        @else
+                            <span class='text-danger'>Removed</span>
+                        @endif
+                    </td>
+
+                    <td>{{ $resourceName }}</td>
+                    <td class="time" unix-time="{{$expValues["experimentTimeOfStateChange"]}}"></td>
+                    <td>
+                        <div class="{{ExperimentUtilities::get_status_color_class( $expValues["experimentStatusString"])}}">
+                            {{ $expValues["experimentStatusString"] }}
+                        </div>
+                    </td>
+
+                    <td>
+                    @if (isset($expValues["jobState"]) )
+                        <div class="{{ ExperimentUtilities::get_status_color_class( $expValues["jobState"]) }}">
+                            {{ $expValues["jobState"] }}
+                        </div>
+                    @endif
+                    </td>
+                </tr>
+                <?php
+                }
+                ?>
+            </table>
+        </div>
+    </div>
+    <div style="margin-top: 10%;">
+        @include('partials/sharing-display-body', array('form' => false))
+    </div>
+</div>
+
+{{ HTML::image("assets/Profile_avatar_placeholder_large.png", 'placeholder image', array('class' => 'baseimage')) }}
+
+@stop
+@section('scripts')
+@parent
+<script>
+var users = {{ $users }};
+var owner = {{ $owner }};
+</script>
+{{ HTML::script('js/time-conversion.js')}}
+{{ HTML::script('js/sharing/sharing_utils.js') }}
+{{ HTML::script('js/sharing/share.js') }}
+
+@stop

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/5e6bca46/app/views/project/summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/project/summary.blade.php b/app/views/project/summary.blade.php
deleted file mode 100755
index a307a63..0000000
--- a/app/views/project/summary.blade.php
+++ /dev/null
@@ -1,119 +0,0 @@
-@extends('layout.basic')
-
-@section('page-header')
-@parent
-{{ HTML::style('css/sharing.css') }}
-@stop
-
-@section('content')
-
-<div class="container" style="max-width: 80%;">
-    <?php
-        $project = ProjectUtilities::get_project($_GET['projId']);
-    ?>
-    <h1>Project Summary
-        @if( !isset($dashboard))
-        <small><a href="{{ URL::to('/') }}/project/summary?projId={{ $project->projectID }}"
-                  title="Refresh"><span class="glyphicon glyphicon-refresh refresh-exp"></span></a></small>
-        @endif
-    </h1>
-    <div>
-        <div>
-            <h3>{{ $project->name }}
-                @if($project_can_write === true)
-                <a href="edit?projId={{ $project->projectID }}" title="Edit">
-                    <span class="glyphicon glyphicon-pencil"></span>
-                </a>
-                @endif
-            </h3>
-            <p>{{ $project->description }}</p>
-        </div>
-        <div class="table-responsive">
-            <table class="table">
-                <tr>
-
-                    <th>Name</th>
-                    <th>Owner</th>
-                    <th>Application</th>
-                    <th>Compute Resource</th>
-                    <th>Last Modified Time</th>
-                    <th>Experiment Status</th>
-                    <th>Job Status</th>
-
-                </tr>
-                <?php
-
-                foreach ($experiments as $experiment) {
-                    $expValues = ExperimentUtilities::get_experiment_values($experiment, true);
-                    $expValues["jobState"] = ExperimentUtilities::get_job_status($experiment);
-                    $applicationInterface = AppUtilities::get_application_interface($experiment->executionId);
-
-                    try {
-                        $cr = CRUtilities::get_compute_resource($experiment->userConfigurationData->computationalResourceScheduling->resourceHostId);
-                        if (!empty($cr)) {
-                            $resourceName = $cr->hostName;
-                        }
-                    } catch (Exception $ex) {
-                        $resourceName = 'Error while retrieving the CR';
-                    }
-                    ?>
-
-                <tr>
-                    <td>
-                        <a href="{{URL::to('/')}}/experiment/summary?expId={{$experiment->experimentId}}">
-                        {{ $experiment->experimentName }}
-                        </a>
-                        @if( $expValues['editable'] and $experiment_can_write[$experiment->experimentId] === true)
-                            <a href="{{URL::to('/')}}/experiment/edit?expId={{$experiment->experimentId}}" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>
-                        @endif
-                    </td>
-                    <td>{{ $experiment->userName }}</td>
-                    <td>
-                        @if( $applicationInterface != null )
-                            {{ $applicationInterface->applicationName }}
-                        @else
-                            <span class='text-danger'>Removed</span>
-                        @endif
-                    </td>
-
-                    <td>{{ $resourceName }}</td>
-                    <td class="time" unix-time="{{$expValues["experimentTimeOfStateChange"]}}"></td>
-                    <td>
-                        <div class="{{ExperimentUtilities::get_status_color_class( $expValues["experimentStatusString"])}}">
-                            {{ $expValues["experimentStatusString"] }}
-                        </div>
-                    </td>
-
-                    <td>
-                    @if (isset($expValues["jobState"]) )
-                        <div class="{{ ExperimentUtilities::get_status_color_class( $expValues["jobState"]) }}">
-                            {{ $expValues["jobState"] }}
-                        </div>
-                    @endif
-                    </td>
-                </tr>
-                <?php
-                }
-                ?>
-            </table>
-        </div>
-    </div>
-    <div style="margin-top: 10%;">
-        @include('partials/sharing-display-body', array('form' => false))
-    </div>
-</div>
-
-{{ HTML::image("assets/Profile_avatar_placeholder_large.png", 'placeholder image', array('class' => 'baseimage')) }}
-
-@stop
-@section('scripts')
-@parent
-<script>
-var users = {{ $users }};
-var owner = {{ $owner }};
-</script>
-{{ HTML::script('js/time-conversion.js')}}
-{{ HTML::script('js/sharing/sharing_utils.js') }}
-{{ HTML::script('js/sharing/share.js') }}
-
-@stop