Author: smarru
Date: Mon Jul 29 11:35:46 2013
New Revision: 1508002

URL: http://svn.apache.org/r1508002
Log:
commiting patch from sanchit

Added:
    airavata/sandbox/gsoc2013/app/scripts/controllers/Alert.js
    airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryConnection.js
    airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryDescriptors.js
    airavata/sandbox/gsoc2013/app/views/exec.canvas.html
    airavata/sandbox/gsoc2013/app/views/exec.launchWorkflow.html
    airavata/sandbox/gsoc2013/app/views/exec.navbar.html
    airavata/sandbox/gsoc2013/app/views/exec.sidenavbar.html
Removed:
    airavata/sandbox/gsoc2013/app/views/addHost.html
    airavata/sandbox/gsoc2013/app/views/launchWorkflow.html
    airavata/sandbox/gsoc2013/app/views/newApplicationDeployement.html
    airavata/sandbox/gsoc2013/css/
Modified:
    airavata/sandbox/gsoc2013/app/index.html
    airavata/sandbox/gsoc2013/app/scripts/app.js
    airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js
    airavata/sandbox/gsoc2013/app/scripts/controllers/main.js
    airavata/sandbox/gsoc2013/app/scripts/registryAPI.js
    airavata/sandbox/gsoc2013/app/views/index.sidenavbar.html
    airavata/sandbox/gsoc2013/bower.json

Modified: airavata/sandbox/gsoc2013/app/index.html
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/index.html?rev=1508002&r1=1508001&r2=1508002&view=diff
==============================================================================
--- airavata/sandbox/gsoc2013/app/index.html (original)
+++ airavata/sandbox/gsoc2013/app/index.html Mon Jul 29 11:35:46 2013
@@ -23,85 +23,100 @@ under the License.
 <!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
 <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
 <head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <title>Apache Airavata WebUI</title>
-  <title>Execution Interface, Apache Airavata</title>
-  <meta name="description" content="WebUI for Apache Airavata">
-  <meta name="viewport" content="width=device-width">
-
-  <!-- build:css({.tmp,app}) styles/main.css -->
-  <link rel="stylesheet" href="styles/main.css">
-  <!-- endbuild -->
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Apache Airavata WebUI</title>
+    <title>Execution Interface, Apache Airavata</title>
+    <meta name="description" content="WebUI for Apache Airavata">
+    <meta name="viewport" content="width=device-width">
+
+    <!-- build:css({.tmp,app}) styles/main.css -->
+    <link rel="stylesheet" href="styles/main.css">
+    <!-- endbuild -->
 </head>
 
 <body ng-app="WebUI">
-  <!--[if lt IE 7]>
-    <p class="chromeframe">You are using an outdated browser. <a 
href="http://browsehappy.com/";>Upgrade your browser today</a> or <a 
href="http://www.google.com/chromeframe/?redirect=true";>install Google Chrome 
Frame</a> to better experience this site.</p>
-  <![endif]-->
-
-  <!--[if lt IE 9]>
-    <script src="bower_components/es5-shim/es5-shim.js"></script>
-    <script src="bower_components/json3/lib/json3.min.js"></script>
-  <![endif]-->
+<!--[if lt IE 7]>
+<p class="chromeframe">You are using an outdated browser. <a 
href="http://browsehappy.com/";>Upgrade your browser today</a> or <a 
href="http://www.google.com/chromeframe/?redirect=true";>install Google Chrome 
Frame</a> to better experience this site.</p>
+<![endif]-->
+
+<!--[if lt IE 9]>
+<script src="bower_components/es5-shim/es5-shim.js"></script>
+<script src="bower_components/json3/lib/json3.min.js"></script>
+<![endif]-->
 
-  <!-- The Navbar -->
-  <div class="navbar navbar-fixed-top">
+<!-- The Navbar -->
+<div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
-      <div class="container">
-        <!-- Responsive Navbar -->
-        <a class="btn btn-navbar" data-toggle="collapse" 
data-target=".nav-collapse">
-          <span class="icon-bar"></span><span class="icon-bar"></span><span 
class="icon-bar"></span>
-        </a>
-        <!-- Brand -->
-        <span class="brand" href="#">Apache Airavata WebUI</span>
-        <!-- Navbar -->
-        <div class="nav-collapse collapse" ui-view="navbar"></div>
-      </div>
+        <div class="container">
+            <!-- Responsive Navbar -->
+            <a class="btn btn-navbar" data-toggle="collapse" 
data-target=".nav-collapse">
+                <span class="icon-bar"></span><span 
class="icon-bar"></span><span class="icon-bar"></span>
+            </a>
+            <!-- Brand -->
+            <span class="brand" href="#">Apache Airavata WebUI</span>
+            <!-- Navbar -->
+            <div class="nav-collapse collapse" ui-view="navbar"></div>
+        </div>
     </div>
-  </div>
+</div>
 
-  <!-- The Content -->
-  <div class="container-fluid" style="padding-top: 60px">
+<!-- The Content -->
+<div class="container-fluid" style="padding-top: 60px">
     <div class="row-fluid">
-      <div class="span3">
-        <div class="well sidebar-nav" ui-view="sidenavbar"></div>
-      </div>
-      <div class="span9" ui-view="canvas"></div>
+        <div class="span3">
+            <div class="well sidebar-nav" ui-view="sidenavbar"></div>
+        </div>
+        <div class="span9">
+            <!-- Alerts -->
+            <div class="row" ng-controller="Alert">
+                <div ng-repeat="alert in alerts" class="alert alert-block 
alert-{{alert.type}} fade in">
+                    <button type="button" class="close" data-dismiss="alert" 
ng-click="closeAlert($index)">&times;</button>
+                    <h4 class="alert-heading">{{alert.head}}</h4>
+                    <p>{{alert.msg}}</p>
+                </div>
+            </div>
+            <!-- Canvas -->
+            <div class="row" ui-view="canvas"></div>
+        </div>
     </div>
-  </div>
 
-  <script 
src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
-  <script>window.angular || document.write('<script 
src="bower_components/angular/angular.js"><\/script>')</script>
+    <script 
src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
+    <script>window.angular || document.write('<script 
src="bower_components/angular/angular.js"><\/script>')</script>
 
-  <!-- build:js({.tmp,app}) scripts/scripts.js -->
-  <script src="scripts/app.js"></script>
-  <script src="scripts/controllers/main.js"></script>
-  <!-- endbuild -->
-
-  <!-- build:js scripts/plugins.js -->
-  <script src="bower_components/jquery/jquery.js"></script>
-  <script src="bower_components/bootstrap-sass/js/bootstrap-affix.js"></script>
-  <script src="bower_components/bootstrap-sass/js/bootstrap-alert.js"></script>
-  <script 
src="bower_components/bootstrap-sass/js/bootstrap-dropdown.js"></script>
-  <script 
src="bower_components/bootstrap-sass/js/bootstrap-tooltip.js"></script>
-  <script src="bower_components/bootstrap-sass/js/bootstrap-modal.js"></script>
-  <script 
src="bower_components/bootstrap-sass/js/bootstrap-transition.js"></script>
-  <script 
src="bower_components/bootstrap-sass/js/bootstrap-button.js"></script>
-  <script 
src="bower_components/bootstrap-sass/js/bootstrap-popover.js"></script>
-  <script 
src="bower_components/bootstrap-sass/js/bootstrap-typeahead.js"></script>
-  <script 
src="bower_components/bootstrap-sass/js/bootstrap-carousel.js"></script>
-  <script 
src="bower_components/bootstrap-sass/js/bootstrap-scrollspy.js"></script>
-  <script 
src="bower_components/bootstrap-sass/js/bootstrap-collapse.js"></script>
-  <script src="bower_components/bootstrap-sass/js/bootstrap-tab.js"></script>
-  <!-- endbuild -->
-
-  <!-- build:js scripts/modules.js -->
-  <script src="bower_components/angular-resource/angular-resource.js"></script>
-  <script src="bower_components/angular-cookies/angular-cookies.js"></script>
-  <script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
-  <script 
src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
-  <!-- endbuild -->
+    <!-- build:js({.tmp,app}) scripts/scripts.js -->
+    <script src="scripts/app.js"></script>
+    <script src="scripts/controllers/Alert.js"></script>
+    <script src="scripts/controllers/RegistryConnection.js"></script>
+    <script src="scripts/registryAPI.js"></script>
+    <script src="scripts/controllers/executionInterfaceCntl.js"></script>
+    <script src="scripts/model/workflow_execution_context.json"></script>
+    <!-- endbuild -->
+
+    <!-- build:js scripts/plugins.js -->
+    <script src="bower_components/jquery/jquery.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-affix.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-alert.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-dropdown.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-tooltip.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-modal.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-transition.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-button.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-popover.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-typeahead.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-carousel.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-scrollspy.js"></script>
+    <script 
src="bower_components/bootstrap-sass/js/bootstrap-collapse.js"></script>
+    <script src="bower_components/bootstrap-sass/js/bootstrap-tab.js"></script>
+    <!-- endbuild -->
+
+    <!-- build:js scripts/modules.js -->
+    <script 
src="bower_components/angular-resource/angular-resource.js"></script>
+    <script src="bower_components/angular-cookies/angular-cookies.js"></script>
+    <script 
src="bower_components/angular-sanitize/angular-sanitize.js"></script>
+    <script 
src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
+    <script src="bower_components/tv4/tv4.js"></script>
+    <!-- endbuild -->
 
 </body>
 

Modified: airavata/sandbox/gsoc2013/app/scripts/app.js
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/app.js?rev=1508002&r1=1508001&r2=1508002&view=diff
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/app.js (original)
+++ airavata/sandbox/gsoc2013/app/scripts/app.js Mon Jul 29 11:35:46 2013
@@ -1,9 +1,36 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
 'use strict';
 
 var app = angular.module('WebUI', ['ui.state']);
 
-// Configure the routing information for the webapp
-app.config(function ($stateProvider, $routeProvider) {
+//_______________________________________________________________________________
+// Configuration
+//_______________________________________________________________________________
+
+app.config(function ($stateProvider, $routeProvider) { // Setup views in the 
webapp
+  //To enable the Cross Origin Resource Sharing in application
+  //$httpProvider.defaults.useXDomain = true;
+  //delete $httpProvider.defaults.headers.common['X-Requested-With'];
   // Views corresponding to the state of the application when just loaded
   $stateProvider.state('index', {
     url: '',
@@ -34,7 +61,7 @@ app.config(function ($stateProvider, $ro
       }
     }
   });
-  // Views corresponding to the workflow execution and monitoring interface
+  // Views corresponding to the workflow execution interface
   $stateProvider.state('exec', {
     url: '/exec',
     views: {
@@ -49,17 +76,73 @@ app.config(function ($stateProvider, $ro
       }
     }
   });
+  // Views corresponding to the workflow monitoring interface
+  $stateProvider.state('monitor', {
+     url: '/monitor',
+     views: {
+        'navbar': {
+          templateUrl: 'views/monitor.navbar.html'
+        },
+        'sidenavbar': {
+          templateUrl: 'views/monitor.sidenavbar.html'
+        },
+        'canvas': {
+          templateUrl: 'views/monitor.canvas.html'
+        }
+     }
+    });
+
+
 });
+//_______________________________________________________________________________
+// Services
+//_______________________________________________________________________________
+
+app.factory('MessageQueue', function () { // A message queue to communicate 
between different controllers
+  // Inspired from 
https://github.com/phiggins42/bloody-jquery-plugins/blob/master/pubsub.js
+  var cache = {};
+  return {
+    // Publish a message to the queue's specified topic
+    // All subscribed listeners are notified of pusblication
+    publish: function (topic, args) {
+      cache[topic] && $.each(cache[topic], function () {
+        this.apply(null, args || []);
+      });
+    },
+
+    // Subscribe to a specific topic in the queue and specify the callback 
that needs to be called
+    // on publication in that topic
+    subscribe: function (topic, callback) {
+      if (!cache[topic]) {
+        cache[topic] = [];
+      }
+      cache[topic].push(callback);
+      return [topic, callback];
+    },
+
+    // Remove a listener from the list of callback functions
+    unsubscribe: function (handle) {
+      var t = handle[0];
+      cache[t] && $.each(cache[t], function (idx) {
+        if (this === handle[1]) {
+          cache[t].splice(idx, 1);
+        }
+      });
+    }
+  };
+});
+
+//_______________________________________________________________________________
+// Directives
+//_______________________________________________________________________________
 
-// Render markdown in the HTML page
-// Use as - <markdown>....</markdown> or <markdown src="foo.md"></markdown>
-app.directive("markdown", function ($compile, $http, $interpolate) {
+app.directive('markdown', function ($compile, $http) { // Render markdown in 
HTML`
   var converter = new Showdown.converter();
   return {
     restrict: 'E',
     replace: true,
     link: function (scope, element, attrs) {
-      if ("src" in attrs) {
+      if ('src' in attrs) {
         attrs.$observe('src', function (value) {
           if (value) {
             $http.get(attrs.src).then(function (data) {

Added: airavata/sandbox/gsoc2013/app/scripts/controllers/Alert.js
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/controllers/Alert.js?rev=1508002&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/controllers/Alert.js (added)
+++ airavata/sandbox/gsoc2013/app/scripts/controllers/Alert.js Mon Jul 29 
11:35:46 2013
@@ -0,0 +1,41 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+'use strict';
+
+/* Controller to show alerts to screen
+ * An alert is structured as {"msg": "...", "head": "...", "type": 
"fromBootstrap"}
+ * All alerts are communicated through the MessageQueue service under the 
topic 'alerts'
+ */
+
+angular.module('WebUI').controller('Alert', function ($scope, MessageQueue) {
+  // Local copy of all alerts
+  $scope.alerts = [];
+
+  // Subscribe to the MessageQueue topic "alerts"
+  MessageQueue.subscribe('alerts', function(alert) {
+    $scope.alerts.push(alert);
+  });
+
+  // Remove the local copy of the alert when it is closed
+  $scope.closeAlert = function(index) {
+    $scope.alerts.splice(index, 1);
+  };
+});

Added: airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryConnection.js
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryConnection.js?rev=1508002&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryConnection.js 
(added)
+++ airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryConnection.js Mon 
Jul 29 11:35:46 2013
@@ -0,0 +1,84 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+'use strict';
+
+// Controller to connect to an Airavata registry
+angular.module('WebUI').controller('RegistryConnection', function 
($scope,$http, MessageQueue) {
+  //$httpProvider.defaults.useXDomain = true;
+  $http.defaults.useXDomain = true;
+  // Data required to connect to the registry
+  $scope.registry =  {
+    'url': 'http://localhost:8080/airavata-registry/api',
+    'gateway': 'default',
+    'username': 'admin',
+    'password': 'admin'
+  };
+
+  // Data required to add new user to the registry
+  $scope.newUser={
+    'username':'',
+    'password':'',
+    'confirmPassword':''
+  };
+
+  // Callback to test connection
+  $scope.connectToRegistry = function () {
+    // Test connection to registry
+
+    //$scope.basicRegistry= new BasicRegistry();
+    
//$scope.res=$scope.basicRegistry.setAiravataUser($scope.registry.username);
+    $http({ // Load the initial data
+      url: 
"http://localhost:8080/airavata-registry/api/basicregistry/set/serviceURL"+"?connectionurl="+$scope.registry.url,
+      method: 'GET',
+      headers:{"Authorization": "Basic YWRtaW46YWRtaW4=",
+          "Accept": "*/*", "Content-Type": "application/x-www-form-urlencoded"}
+    }).success(function (data) {
+      $scope.res = data;
+    }).error(function(data, status) {
+      //alert(data)
+      $scope.res = data || "Request failed";
+      $scope.status = status;
+    });
+
+    // Alert user to the successful connection and on success notify all other 
controlers
+    MessageQueue.publish('registry', $scope.registry);
+    MessageQueue.publish('alerts',[ {
+      'head': 'Conntected',
+      'msg': 'Successful connection made to '+$scope.res,
+      'type': 'success'
+    }]);
+  };
+
+  // Callback to Register New User
+  $scope.newUserRegistry = function () {
+    // Test connection to register new user
+    // TODO: Call some API method to make HTTP request
+    // Alert user to the successful creation and on success notify all other 
controlers
+    $('#createNweUserModal').modal('hide');
+    MessageQueue.publish('new user', $scope.newUser);
+    MessageQueue.publish('alerts', [{
+      'head': 'New User Added',
+      'msg': $scope.newUser.username +' added successfully',
+      'type': 'success'
+    }]);
+  };
+});
\ No newline at end of file

Added: airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryDescriptors.js
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryDescriptors.js?rev=1508002&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryDescriptors.js 
(added)
+++ airavata/sandbox/gsoc2013/app/scripts/controllers/RegistryDescriptors.js 
Mon Jul 29 11:35:46 2013
@@ -0,0 +1,54 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+'use strict';
+
+/*
+ * Controller for descriptors registry resource , deals with host,service and 
application descriptors
+ *
+ */
+angular.module('WebUI').controller('RegistryDescriptors', function 
($scope,$http, MessageQueue) {
+
+  //To enable the Cross Origin Resource Sharing in application
+  $http.defaults.useXDomain = true;
+
+  // Data required to add new host descriptor to the registry
+  $scope.addHost={
+    'hostId':'',
+    'hostAddress':'',
+    'resourceProtocol':["Local","SSH","Globus","Unicore","Amazone 
EC2","Hadoop"],
+    'gramEndpoint':'',
+    'gridFTPEndpoint':''
+  };
+
+  // Callback to Add Host Descriptor to Registry
+  $scope.saveHostDescriptor = function () {
+    // Test connection to register new user
+    // TODO: Call some API method to make HTTP request
+
+    // Alert user to the successful creation and on success notify all other 
controlers
+    MessageQueue.publish('Host Descriptor', $scope.addHost);
+    MessageQueue.publish('alerts', [{
+      'head': 'New Host Descriptor Added',
+      'msg': $scope.addHost.hostId +' added successfully',
+      'type': 'success'
+    }]);
+  };
+});
\ No newline at end of file

Modified: 
airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js?rev=1508002&r1=1508001&r2=1508002&view=diff
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js 
(original)
+++ airavata/sandbox/gsoc2013/app/scripts/controllers/executionInterfaceCntl.js 
Mon Jul 29 11:35:46 2013
@@ -1,20 +1,22 @@
-/**
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
  */
 
 /*
@@ -23,43 +25,37 @@
  *
  */
 
-// The angular module for the execution interface which depends on Angular-UI
-var executionInterface = angular.module('executionInterface',['ui']).
-    config(function($routeProvider) {
-        $routeProvider.
-            when('/', {controller:executionInterfaceCntl, 
templateUrl:'launchWorkflow.html'});
-    });
-
 //Main Controller for execution Interface
-var executionInterfaceCntl=function ($scope,$routeParams,$http) {
 
-    //Variables related to Run Workflow
+angular.module('WebUI').controller('executionInterfaceCntl', function ($scope) 
{
 
-    $scope.isWorkflowOpen=true;
-    $scope.isWorkflowRunning=false;
-    $scope.workflowInputs=[];
-    $scope.experimentName='';
-    $scope.workflowInterpreterURL='';
-    $scope.gfacURL='';
-    $scope.templateId=$routeParams.templateId;
-
-    
//$scope.workflowInputs.push({"id":$scope.experimentName,"name":$scope.experimentName,"datatype":"","value":"Experiment
 Name"});
-    
//$scope.workflowInputs.push({"id":$scope.workflowInterpreterURL,"name":$scope.workflowInterpreterURL,"datatype":"","value":"Workflow
 Interpreter URL"});
-    
//$scope.workflowInputs.push({"id":$scope.gfacURL,"name":$scope.gfacURL,"datatype":"","value":"gfacURL"});
-
-    //get the inputs for the open workflow to render run workflow modal
-    $scope.getWorkflowInputs=function($scope){
-          //Airavata Client API call to get number of inputs for given 
template id
-    };
-
-    //validate the inputs
-    $scope.validateInputs=function($scope){
-
-    };
-
-    //run experiment
-    $scope.runExperiment=function($scope){
-         //Airavata client API call to run experiment with
-    };
+        //Variables related to Run Workflow
 
-}
+        $scope.isWorkflowOpen=true;
+        $scope.isWorkflowRunning=false;
+        $scope.workflowInputs=[];
+        $scope.experimentName='';
+        $scope.workflowInterpreterURL='';
+        $scope.gfacURL='';
+        $scope.templateId=$routeParams.templateId;
+
+        
//$scope.workflowInputs.push({"id":$scope.experimentName,"name":$scope.experimentName,"datatype":"","value":"Experiment
 Name"});
+        
//$scope.workflowInputs.push({"id":$scope.workflowInterpreterURL,"name":$scope.workflowInterpreterURL,"datatype":"","value":"Workflow
 Interpreter URL"});
+        
//$scope.workflowInputs.push({"id":$scope.gfacURL,"name":$scope.gfacURL,"datatype":"","value":"gfacURL"});
+
+        //get the inputs for the open workflow to render run workflow modal
+        $scope.getWorkflowInputs=function($scope){
+            //Airavata Client API call to get number of inputs for given 
template id
+        };
+
+        //validate the inputs
+        $scope.validateInputs=function($scope){
+
+        };
+
+        //run experiment
+        $scope.runExperiment=function($scope){
+            //Airavata client API call to run experiment with
+        };
+
+    });

Modified: airavata/sandbox/gsoc2013/app/scripts/controllers/main.js
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/controllers/main.js?rev=1508002&r1=1508001&r2=1508002&view=diff
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/controllers/main.js (original)
+++ airavata/sandbox/gsoc2013/app/scripts/controllers/main.js Mon Jul 29 
11:35:46 2013
@@ -1,3 +1,23 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
 'use strict';
 
 angular.module('WebUI')

Modified: airavata/sandbox/gsoc2013/app/scripts/registryAPI.js
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/scripts/registryAPI.js?rev=1508002&r1=1508001&r2=1508002&view=diff
==============================================================================
--- airavata/sandbox/gsoc2013/app/scripts/registryAPI.js (original)
+++ airavata/sandbox/gsoc2013/app/scripts/registryAPI.js Mon Jul 29 11:35:46 
2013
@@ -1,4 +1,23 @@
-
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
 
 function  test(){
     alert("Test works and mount also works");

Added: airavata/sandbox/gsoc2013/app/views/exec.canvas.html
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/views/exec.canvas.html?rev=1508002&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/views/exec.canvas.html (added)
+++ airavata/sandbox/gsoc2013/app/views/exec.canvas.html Mon Jul 29 11:35:46 
2013
@@ -0,0 +1,20 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+canvas for composed workflow
\ No newline at end of file

Added: airavata/sandbox/gsoc2013/app/views/exec.launchWorkflow.html
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/views/exec.launchWorkflow.html?rev=1508002&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/views/exec.launchWorkflow.html (added)
+++ airavata/sandbox/gsoc2013/app/views/exec.launchWorkflow.html Mon Jul 29 
11:35:46 2013
@@ -0,0 +1,53 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<div class="modal hide fade" id="newApplicationDeploy" 
aria-labelledby="newApplicationDeploy" tabindex="-1" role="dialog" 
aria-hidden="true">
+  <div class="modal-header">
+    <button type="button" class="close" data-dismiss="modal" 
aria-hidden="true">×</button>
+    <h3>New Application Deployment</h3>
+  </div>
+  <div class="modal-body">
+    <form class="form-horizontal">
+      <div class="control-group">
+        <label class="control-label" for="applicationHost">Application Host: 
</label>
+        <div class="controls">
+          <select id="applicationHost"  ng-model="applicationHost" 
ng-options="host.name for host in hostList"></select> <a href="#addHost" 
role="button" data-toggle="modal" title="Create New Host"><i 
class="icon-plus-sign icon-white"></i></a>
+        </div>
+      </div>
+      <div class="control-group">
+        <label class="control-label" for="executablePath">Executable 
Path</label>
+        <div class="controls">
+          <input type="url" id="executablePath" placeholder="Executable Path" 
ng-model="executablePath" required> <i class=" icon-folder-open icon-white"></i>
+        </div>
+      </div>
+      <div class="control-group">
+        <label class="control-label" for="scratchWorkingDirectory">Scratch 
Working Directory</label>
+        <div class="controls">
+          <input type="url" id="scratchWorkingDirectory" placeholder="Scratch 
Working Directory" ng-model="scratchWorkingDirectory" required> <i class=" 
icon-folder-open icon-white"></i>
+        </div>
+      </div>
+      <div>
+        <a href="#" class="btn btn-primary">Advance Application 
Configuration</a>
+      </div>
+    </form>
+  </div>
+  <div class="modal-footer">
+    <a href="#" class="btn btn-primary">Add</a>
+    <a href="#" class="btn " data-dismiss="modal" aria-hidden="true">Cancel</a>
+  </div>
+</div>

Added: airavata/sandbox/gsoc2013/app/views/exec.navbar.html
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/views/exec.navbar.html?rev=1508002&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/views/exec.navbar.html (added)
+++ airavata/sandbox/gsoc2013/app/views/exec.navbar.html Mon Jul 29 11:35:46 
2013
@@ -0,0 +1,54 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<ul class="nav">
+  <li class="active"><a href="#"><i class="icon-home"></i> Home</a></li>
+  <li class="dropdown"><a href="#" class="dropdown-toggle" 
data-toggle="dropdown"><i class="icon-edit"></i> Edit</a>
+    <ul class="dropdown-menu">
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-gears"></i> Workflow Properties</a></li>
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-star"></i> Parameter Properties</a></li>
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-desktop"></i> Host</a></li>
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-gear"></i> Applications</a></li>
+    </ul>
+  </li>
+  <li class="dropdown"><a href="#" class="dropdown-toggle" 
data-toggle="dropdown"><i class="icon-bullseye"></i> View</a>
+    <ul class="dropdown-menu">
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-caret-right"></i> Airavata Registry</a></li>
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-caret-right"></i> Components</a></li>
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-caret-right"></i> Monitoring</a></li>
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-caret-right"></i> Paramaeters</a></li>
+    </ul>
+  </li>
+  <li class="dropdown"><a href="#" class="dropdown-toggle" 
data-toggle="dropdown"><i class="icon-caret-right"></i> Run</a>
+    <ul class="dropdown-menu">
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-play"></i> Run On Interpreter Server</a></li>
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-pause"></i> Stop Running Workflow</a></li>
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-eye-open"></i> Configure Monitoring</a></li>
+    </ul>
+  </li>
+  <li class="dropdown"><a href="#" class="dropdown-toggle" 
data-toggle="dropdown"><i class="icon-wrench"></i> Tools</a>
+    <ul class="dropdown-menu">
+      <li><a href="#" role="button" data-toggle="modal"><i 
class="icon-file"></i> Globus File Transfer</a></li>
+    </ul>
+  </li>
+  <li><a href="#"><i class="icon-question"></i> Help</a></li>
+</ul>
+<ul class="nav pull-right">
+  <li><a href="http://airavata.apache.org/";><i class="icon-globe"></i> 
Airavata</a></li>
+</ul>

Added: airavata/sandbox/gsoc2013/app/views/exec.sidenavbar.html
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/views/exec.sidenavbar.html?rev=1508002&view=auto
==============================================================================
--- airavata/sandbox/gsoc2013/app/views/exec.sidenavbar.html (added)
+++ airavata/sandbox/gsoc2013/app/views/exec.sidenavbar.html Mon Jul 29 
11:35:46 2013
@@ -0,0 +1,54 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<div class="accordion" id="executionSidebar" 
ng-controller="RegistryDescriptors">
+  <ul class="nav nav-list">
+  <li>
+    <div class="accordion-group">
+      <div class="accordion-heading">
+        <a class="accordion-toggle" data-toggle="collapse" 
data-parent="#executionSidebar" href="#addHost">
+          <i class="icon-plus-sign"></i> Add Host
+        </a>
+      </div>
+      <div id="addHost" class="accordion-body collapse">
+        <div class="accordion-inner">
+          <form style="padding:10px;" >
+            <fieldset>
+              <legend>Register Host</legend>
+              <label for="inputHostId">Host Id</label>
+              <input type="text" id="inputHostId" placeholder="Host Id" 
ng-model="addHost.hostId" required>
+              <label for="inputHostAddress">Host Address</label>
+              <input type="url" id="inputHostAddress" placeholder="Host 
Address" ng-model="addHost.hostAddress">
+              <label for="resourceProtocol">Resource Protocol</label>
+              <select id="resourceProtocol" 
ng-model="addHost.resourceProtocol" ng-options="k as p for (k,p) in 
addHost.resourceProtocol"></select>
+              <label for="gramEndpoint">Gram Endpoint</label>
+              <input type="url" id="gramEndpoint" placeholder="Gram Endpoint" 
ng-model="addHost.gramEndpoint">
+              <label for="gridFTPEndpoint">Grid FTP Endpoint</label>
+              <input type="url" id="gridFTPEndpoint" placeholder="Grid FTP 
Endpoint" ng-model="addHost.gridFTPEndpoint">
+              <br>
+              <button type="submit" class="btn" 
ng-click="saveHostDescriptor()">Save</button>
+              <a class="accordion-toggle btn" data-toggle="collapse" 
data-parent="#executionSidebar" href="#addHost">Cancel</a>
+            </fieldset>
+          </form>
+        </div>
+      </div>
+    </div>
+  <li><a href="#newApplicationDeploy" role="button" data-toggle="modal"><i 
class="icon-plus-sign"></i> New Application Deployment</a></li>
+</ul>
+</div>
\ No newline at end of file

Modified: airavata/sandbox/gsoc2013/app/views/index.sidenavbar.html
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/app/views/index.sidenavbar.html?rev=1508002&r1=1508001&r2=1508002&view=diff
==============================================================================
--- airavata/sandbox/gsoc2013/app/views/index.sidenavbar.html (original)
+++ airavata/sandbox/gsoc2013/app/views/index.sidenavbar.html Mon Jul 29 
11:35:46 2013
@@ -1,15 +1,68 @@
-<form style="padding:10px;">
-  <fieldset>
-    <legend>Connect to Airavata</legend>
-    <label>Registry URL</label>
-    <input type="text" 
placeholder="http://localhost:8080/airavata-registry/api";>
-    <label>Gateway</label>
-    <input type="text" placeholder="default">
-    <label>Username</label>
-    <input type="text" placeholder="admin">
-    <label>Password</label>
-    <input type="password" placeholder="Password">
-    <br>
-    <button type="submit" class="btn">Connect</button>
-  </fieldset>
-</form>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<div ng-controller="RegistryConnection">
+  <form style="padding:10px;" ng-model="ConnectionParams">
+    <fieldset>
+      <legend>Connect to Airavata</legend>
+      <label for="field-registryUrl">Registry URL</label>
+      <input id="field-registryUrl" type="text" 
placeholder="http://localhost:8080/airavata-registry/api"; 
ng-model="registry.url" required>
+      <label for="field-gateway">Gateway</label>
+      <input id="field-gateway" type="text" placeholder="default" 
ng-model="registry.gateway" required>
+      <label for="field-username">Username</label>
+      <input id="field-username" type="text" placeholder="admin" 
ng-model="registry.username" required>
+      <label for="field-password">Password</label>
+      <input id="field-password" type="password" placeholder="Password" 
ng-model="registry.password" required>
+      <br>
+      <button type="submit" class="btn" 
ng-click="connectToRegistry()">Connect</button>
+      <a href="#createNweUserModal" role="button" data-toggle="modal"><i 
class="icon-user"></i> Create New User</a>
+    </fieldset>
+  </form>
+</div>
+<div class="modal hide fade" id="createNweUserModal" 
aria-labelledby="createNweUserModal" tabindex="-1" role="dialog" 
aria-hidden="true" ng-controller="RegistryConnection">
+  <div class="modal-header">
+    <button type="button" class="close" data-dismiss="modal" 
aria-hidden="true">×</button>
+    <h3>Register New User</h3>
+  </div>
+  <div class="modal-body">
+    <form class="form-horizontal">
+      <div class="control-group">
+        <label class="control-label" for="field-newUserName"><i class=" 
icon-pencil"></i></label>
+        <div class="controls">
+          <input type="text" id="field-newUserName" placeholder="User Name" 
ng-model="newUser.username" required>
+        </div>
+      </div>
+      <div class="control-group">
+        <label class="control-label" for="field-password2"><i class=" 
icon-key"></i></label>
+        <div class="controls">
+          <input type="password" id="field-password2" placeholder="Password" 
ng-model="newUser.password" required>
+        </div>
+      </div>
+      <div class="control-group">
+        <label class="control-label" for="field-confirmPassword"><i class=" 
icon-key"></i></label>
+        <div class="controls">
+          <input type="password" id="field-confirmPassword" 
placeholder="Confirm Password" ng-model="newUser.confirmPassword" required>
+        </div>
+      </div>
+    </form>
+  </div>
+  <div class="modal-footer">
+    <button type="submit" class="btn btn-primary" 
ng-click="newUserRegistry()">Add</button>
+    <a href="#" class="btn " data-dismiss="modal" aria-hidden="true">Cancel</a>
+  </div>
+</div>
\ No newline at end of file

Modified: airavata/sandbox/gsoc2013/bower.json
URL: 
http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/bower.json?rev=1508002&r1=1508001&r2=1508002&view=diff
==============================================================================
--- airavata/sandbox/gsoc2013/bower.json (original)
+++ airavata/sandbox/gsoc2013/bower.json Mon Jul 29 11:35:46 2013
@@ -3,16 +3,18 @@
   "version": "0.0.0",
   "dependencies": {
     "angular": "~1.0.7",
-    "json3": "~3.2.4",
-    "jquery": "~1.9.1",
-    "bootstrap-sass": "~2.3.1",
-    "es5-shim": "~2.0.8",
     "angular-resource": "~1.0.7",
     "angular-cookies": "~1.0.7",
     "angular-sanitize": "~1.0.7",
+    "json3": "~3.2.4",
+    "jquery": "~1.10.2",
+    "bootstrap-sass": "~2.3.1",
+    "es5-shim": "~2.0.8",
     "font-awesome": "~3.2.1",
     "tv4": "*",
-    "angular-ui-router": "~0.0.1"
+    "angular-ui-router": "~0.0.1",
+    "raphael": "~2.1.0",
+    "jquery-ui": "~1.10.3"
   },
   "devDependencies": {
     "angular-mocks": "~1.0.7",


Reply via email to