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)">×</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",