You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by jo...@apache.org on 2014/07/01 16:49:55 UTC
[31/56] [partial] gh-pages clean up
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/font/fontawesome-webfont.woff
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/font/fontawesome-webfont.woff b/ocw-ui/frontend/app/font/fontawesome-webfont.woff
deleted file mode 100755
index b9bd17e..0000000
Binary files a/ocw-ui/frontend/app/font/fontawesome-webfont.woff and /dev/null differ
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/img/globe.png
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/img/globe.png b/ocw-ui/frontend/app/img/globe.png
deleted file mode 100644
index 5099b4e..0000000
Binary files a/ocw-ui/frontend/app/img/globe.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/img/glyphicons-halflings-white.png
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/img/glyphicons-halflings-white.png b/ocw-ui/frontend/app/img/glyphicons-halflings-white.png
deleted file mode 100644
index 3bf6484..0000000
Binary files a/ocw-ui/frontend/app/img/glyphicons-halflings-white.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/img/glyphicons-halflings.png
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/img/glyphicons-halflings.png b/ocw-ui/frontend/app/img/glyphicons-halflings.png
deleted file mode 100644
index a996999..0000000
Binary files a/ocw-ui/frontend/app/img/glyphicons-halflings.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/index.html
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/index.html b/ocw-ui/frontend/app/index.html
deleted file mode 100755
index 1c2b398..0000000
--- a/ocw-ui/frontend/app/index.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<!doctype html>
-<html lang="en" ng-app="ocw">
-<head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>OCW UI</title>
- <link rel="stylesheet" href="css/lib/bootstrap.min.css"/>
- <link rel="stylesheet" href="css/lib/bootstrap-responsive.min.css"/>
- <link rel="stylesheet" href="css/lib/font-awesome.min.css"/>
- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.5/leaflet.css" />
- <link rel="stylesheet" href="css/lib/timeline.css"/>
- <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/ui-lightness/jquery-ui.min.css" type="text/css"/>
- <!--[if lte IE 8]>
- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.5/leaflet.ie.css" />
- <![endif]-->
- <link rel="stylesheet" href="css/app.css"/>
-</head>
-<body ng-cloak>
-
-<div class="container">
- <div class="row-fluid">
- <div class="span12">
- <!-- Title -->
- <div class="row-fluid">
- <div class="span12">
- <br><br>
- <div id="header">
- <img id="header-img" src=""/>
- <h3 id="header-title">Project Name</h3>
- <h5 id="OCW-powered">Powered by Apache Open Climate Workbench</h5>
- </div>
- </div>
- </div>
- <!-- Navigation bar -->
- <div class="row-fluid">
- <div class="navbar navbar-fixed-top">
- <div class="navbar-inner">
- <div class="container">
- <a class="brand" href="#">OCW UI</a>
- <ul class="nav">
- <li ng-class="{ active: $state.includes('main') }"><a href="#">Evaluate</a></li>
- <li ng-class="{ active: $state.includes('results') }"><a href="#/results">Results</a></li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- Main Content -->
- <div id="main-container" class="container" ui-view ng-animate="{enter:'fade-enter'}"></div>
-</div>
-
- <!--Libraries-->
- <script src="js/lib/jquery/jquery-1.10.1.js"></script>
- <script src="js/lib/jquery/jquery-ui/jquery-ui-1.10.3.min.js"></script>
- <script src="js/lib/angular/angular.min.js"></script>
- <script src="js/lib/angular-ui/angular-ui-0.4-tpls.js"></script>
- <script src="js/lib/jquery/jquery-ui/datepicker-wrapper/date.js"></script>
- <script src="js/lib/bootstrap/bootstrap.js"></script>
- <script src="js/lib/leaflet/leaflet-0.5.js"></script>
- <script src="http://www.google.com/jsapi"></script>
- <script src="js/lib/timeline/timeline.js"></script>
- <script src="js/lib/angular-ui/angular-ui-router.min.js"></script>
- <script src="js/lib/angular-ui/ui-bootstrap-tpls-0.5.0.min.js"></script>
- <!--Timeline refuses to initialize nicely so we're doing this as a workaround-->
- <script type="text/javascript">google.load("visualization", "1");</script>
-
- <!--General-->
- <script src="js/app.js"></script>
-
- <!--Services-->
- <script src="js/services/SelectedDatasetInformation.js"></script>
- <script src="js/services/RegionSelectParams.js"></script>
- <script src="js/services/EvaluationSettings.js"></script>
-
- <!--Controllers-->
- <script src="js/controllers/WorldMapCtrl.js"></script>
- <script src="js/controllers/ParameterSelectCtrl.js"></script>
- <script src="js/controllers/DatasetDisplayCtrl.js"></script>
- <script src="js/controllers/ObservationSelectCtrl.js"></script>
- <script src="js/controllers/RcmedSelectionCtrl.js"></script>
- <script src="js/controllers/SettingsCtrl.js"></script>
- <script src="js/controllers/TimelineCtrl.js"></script>
- <script src="js/controllers/DatasetSelectCtrl.js"></script>
- <script src="js/controllers/ResultCtrl.js"></script>
- <script src="js/controllers/ResultDetailCtrl.js"></script>
-
- <!--Directives-->
- <script src="js/directives/LeafletMap.js"></script>
- <script src="js/directives/PreviewMap.js"></script>
- <script src="js/directives/BootstrapModal.js"></script>
- <script src="js/directives/BootstrapModalOpen.js"></script>
- <script src="js/directives/PredictiveFileBrowserInput.js"></script>
- <script src="js/directives/OnBlur.js"></script>
- <script src="js/directives/Timeline.js"></script>
-
- <!--Filters-->
- <script src="js/filters/ISODateToMiddleEndian.js"></script>
-</body>
-<footer class="container well well-small" style="margin-top: 40px">
- <div class="span4 offset1">
- <h6>Powered by Apache Open Climate Workbench</h6>
- </div>
-</footer>
-</html>
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/app.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/app.js b/ocw-ui/frontend/app/js/app.js
deleted file mode 100755
index 2645e27..0000000
--- a/ocw-ui/frontend/app/js/app.js
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * 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';
-
-// We're creating a "global" application object. This allows us to keep module
-// names isolated to a single location as well as simplifying future init code.
-var App = App || {};
-
-App.Services = angular.module('ocw.services', []);
-App.Directives = angular.module('ocw.directives', []);
-App.Controllers = angular.module('ocw.controllers', []);
-App.Filters = angular.module('ocw.filters', []);
-
-angular.module('ocw', ['ocw.services', 'ocw.directives', 'ocw.controllers', 'ocw.filters', 'ui.date', 'ui.bootstrap', 'ui.compat', 'ui.state'])
-.config(
- [ '$stateProvider', '$routeProvider', '$urlRouterProvider',
- function ($stateProvider, $routeProvider, $urlRouterProvider) {
- $urlRouterProvider
- .when('/r?id', '/results/:id')
- .otherwise('/');
-
- $routeProvider
- .when('/evaluation/:id', {
- redirectTo: '/results/:id',
- })
- .when('/', {
- redirectTo: '/evaluate',
- });
-
- $stateProvider
- .state('main',{
- url: '/evaluate',
- templateUrl: 'partials/main.html',
- })
- .state('results', {
- url: '/results',
- abstract: true,
- templateUrl: 'partials/results.html',
- controller: 'ResultCtrl'
- })
- .state('results.list', {
- // parent: 'results',
- url: '',
- templateUrl: 'partials/results.list.html',
- })
- .state('results.detail', {
- // parent: 'results',
- url: '/{resultId}',
- views: {
- '': {
- templateUrl: 'partials/results.detail.html',
- controller: 'ResultDetailCtrl'
- },
- 'menu': {
- templateProvider:
- [ '$stateParams',
- function ($stateParams){
- return '<hr><small class="muted">result ID: ' + $stateParams.resultId + '</small>';
- }],
- },
- },
- });
- }])
-.run(
- [ '$rootScope', '$state', '$stateParams',
- function ($rootScope, $state, $stateParams) {
- $rootScope.$state = $state;
- $rootScope.$stateParams = $stateParams;
- $rootScope.evalResults = "";
- $rootScope.fillColors = ['#ff0000', '#00c90d', '#cd0074', '#f3fd00'];
- $rootScope.surroundColors = ['#a60000', '#008209', '#8f004b', '#93a400']
- $rootScope.baseURL = 'http://localhost:8082';
-}]);
-
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/DatasetDisplayCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/DatasetDisplayCtrl.js b/ocw-ui/frontend/app/js/controllers/DatasetDisplayCtrl.js
deleted file mode 100644
index b98ff3f..0000000
--- a/ocw-ui/frontend/app/js/controllers/DatasetDisplayCtrl.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.
-**/
-
-// Controller for dataset display
-App.Controllers.controller('DatasetDisplayCtrl', ['$rootScope', '$scope', 'selectedDatasetInformation',
-function($rootScope, $scope, selectedDatasetInformation) {
- $scope.datasets = selectedDatasetInformation.getDatasets();
-
- $scope.removeDataset = function($index) {
- selectedDatasetInformation.removeDataset($index);
- }
-
- $scope.setRegridBase = function(index) {
- for (var i = 0; i < $scope.datasets.length; i++) {
- $scope.datasets[i].regrid = ((i == index) ? $scope.datasets[i].regrid : false);
- }
- }
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/DatasetSelectCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/DatasetSelectCtrl.js b/ocw-ui/frontend/app/js/controllers/DatasetSelectCtrl.js
deleted file mode 100644
index 14c5ea9..0000000
--- a/ocw-ui/frontend/app/js/controllers/DatasetSelectCtrl.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.
-**/
-
-// Controller for dataset selection/modification
-App.Controllers.controller('DatasetSelectCtrl', ['$scope', 'selectedDatasetInformation',
-function($scope, selectedDatasetInformation) {
-
- // Grab a copy of the datasets so we can display a count to the user!
- $scope.datasetCount = selectedDatasetInformation.getDatasets();
-
- $scope.shouldDisableClearButton = function() {
- return (selectedDatasetInformation.getDatasetCount() == 0);
- }
-
- $scope.clearDatasets = function() {
- selectedDatasetInformation.clearDatasets();
- }
-
- $scope.open = function () {
- $scope.datasetSelect = true;
- }
-
- $scope.close = function () {
- $scope.datasetSelect = false;
- }
-
- $scope.opts = {
- backdropFade: true,
- dialogFade:true
- };
-
- $scope.templates =
- [ { title:'Local File', url: 'partials/selectObservation.html'}
- , { title:'RCMED', url: 'partials/selectRcmed.html'}
- , { title:'ESG', disabled: true } ];
-
- $scope.template = $scope.templates[0];
-
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/ObservationSelectCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/ObservationSelectCtrl.js b/ocw-ui/frontend/app/js/controllers/ObservationSelectCtrl.js
deleted file mode 100644
index cec04bb..0000000
--- a/ocw-ui/frontend/app/js/controllers/ObservationSelectCtrl.js
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * 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.
-**/
-
-// Controller for observation selection in modal
-App.Controllers.controller('ObservationSelectCtrl', ['$rootScope', '$scope', '$http', '$q', '$timeout', 'selectedDatasetInformation',
-function($rootScope, $scope, $http, $q, $timeout, selectedDatasetInformation) {
- // Grab a copy of the datasets so we can display a count to the user!
- $scope.datasetCount = selectedDatasetInformation.getDatasets();
-
- // Initalize the option arrays and default to the first element
- $scope.params = ["Please select a file above"];
- $scope.paramSelect = $scope.params[0];
- $scope.lats = ["Please select a file above"];
- $scope.latsSelect = $scope.lats[0];
- $scope.lons = ["Please select a file above"];
- $scope.lonsSelect = $scope.lons[0];
- $scope.times = ["Please select a file above"];
- $scope.timeSelect = $scope.times[0];
-
- // Grab the path leader information that the webserver is using to limit directory access.
- $scope.pathLeader = 'False';
- $http.jsonp($rootScope.baseURL + '/dir/path_leader/?callback=JSON_CALLBACK').
- success(function(data) {
- $scope.pathLeader = data.leader;
- });
-
- // Toggle load button view depending on upload state of selected files
- $scope.loadingFile = false;
-
- // Toggle display of a confirmation when loading a dataset
- $scope.fileAdded = false;
-
- $scope.latLonVals = [];
- $scope.timeVals = [];
- $scope.localSelectForm = {};
-
- $scope.uploadLocalFile = function() {
- $scope.loadingFile = true;
-
- // TODO: Need to try to validate the input a bit. At least make sure we're not
- // pointing at a directory perhaps?
-
- // TODO: Two-way binding with ng-model isn't being used here because it fails to update
- // properly with the auto-complete that we're using on the input box. So we're doing
- // it the wrong way temporarily...
- var input = $('#observationFileInput').val();
-
- // If the backend is limiting directory access we need to add that leader to our path
- // so it remains valid!
- if ($scope.pathLeader != 'False') {
- input = $scope.pathLeader + input
- }
-
- // TODO: We're not really handling the case where there is a failure here at all.
- // Should check for fails and allow the user to make changes.
- //
- // Get model variables
- var varsPromise = $http.jsonp($rootScope.baseURL + '/lfme/list_vars/' + input + '?callback=JSON_CALLBACK');
- // Get Lat and Lon variables
- var latlonPromise = $http.jsonp($rootScope.baseURL + '/lfme/list_latlon/' + input + '?callback=JSON_CALLBACK');
- // Get Time variables
- var timesPromise = $http.jsonp($rootScope.baseURL + '/lfme/list_time/' + input + '?callback=JSON_CALLBACK');
-
- $q.all([varsPromise, latlonPromise, timesPromise]).then(
- // Handle success fetches!
- function(arrayOfResults) {
- $scope.loadingFile = false;
-
- // Handle lat/lon results
- var data = arrayOfResults[1].data;
- $scope.lats = [data.lat_name];
- $scope.lons = [data.lon_name];
- $scope.latLonVals = [data.lat_min, data.lat_max, data.lon_min, data.lon_max];
-
- // If there is more than one option for the user, tell them they need to pick one!
- if ($scope.lats.length > 1) $scope.lats.splice(0, 0, "Please select an option");
- if ($scope.lons.length > 1) $scope.lons.splice(0, 0, "Please select an option");
- // Default the display to the first available option.
- $scope.latsSelect = $scope.lats[0];
- $scope.lonsSelect = $scope.lons[0];
-
- // Handle time results
- var data = arrayOfResults[2].data
- $scope.times = [data.time_name];
- $scope.timeVals = [data.start_time, data.end_time];
-
- if ($scope.times.length > 1) $scope.times.splice(0, 0, "Please select an option");
- $scope.timeSelect = $scope.times[0];
-
- // Handle parameter results
- var data = arrayOfResults[0].data.variables;
- $scope.params = (data instanceof Array) ? data : [data];
- $scope.params = $.grep($scope.params,
- function(val) {
- return ($.inArray(val, $scope.lats) != 0 &&
- $.inArray(val, $scope.lons) != 0 &&
- $.inArray(val, $scope.times) != 0);
- });
-
- if ($scope.params.length > 1) $scope.params.splice(0, 0, "Please select an option");
- $scope.paramSelect = $scope.params[0];
- },
- // Uh oh! AT LEAST on of our fetches failed
- function(arrayOfFailure) {
- $scope.loadingFile = false;
-
- $scope.params = ["Unable to load variable(s)"];
- $scope.paramSelect = $scope.params[0];
- $scope.lats = ["Unable to load variable(s)"];
- $scope.latsSelect = $scope.lats[0];
- $scope.lons = ["Unable to load variable(s)"];
- $scope.lonsSelect = $scope.lons[0];
- $scope.times = ["Unable to load variable(s)"];
- $scope.timeSelect = $scope.times[0];
- }
- );
- };
-
- $scope.addDataSet = function() {
- // TODO: Need to verify that all the variables selected are correct!!!
- // TODO: We shouldn't allow different parameters to match the same variables!!
-
- var newDataset = {};
- var input = $('#observationFileInput').val();
-
- // If the backend is limiting directory access we need to add that leader to our path
- // so it remains valid!
- if ($scope.pathLeader != 'False') {
- input = $scope.pathLeader + input
- }
-
- newDataset['isObs'] = 0;
- // Save the model path. Note that the path is effectively the "id" for the model.
- newDataset['id'] = input;
- // Grab the file name later for display purposes.
- var splitFilePath = input.split('/');
- newDataset['name'] = splitFilePath[splitFilePath.length - 1];
- // Save the model parameter variable. We save it twice for consistency and display convenience.
- newDataset['param'] = $scope.paramSelect;
- newDataset['paramName'] = newDataset['param'];
- // Save the lat/lon information
- newDataset['lat'] = $scope.latsSelect;
- newDataset['lon'] = $scope.lonsSelect;
-
- newDataset['latlonVals'] = {"latMin": $scope.latLonVals[0], "latMax": $scope.latLonVals[1],
- "lonMin": $scope.latLonVals[2], "lonMax": $scope.latLonVals[3]};
- // Get the time information
- newDataset['time'] = $scope.timeSelect;
- newDataset['timeVals'] = {"start": $scope.timeVals[0], "end": $scope.timeVals[1]};
-
- selectedDatasetInformation.addDataset(newDataset);
-
- // Reset all the fields!!
- $scope.params = ["Please select a file above"];
- $scope.paramSelect = $scope.params[0];
- $scope.lats = ["Please select a file above"];
- $scope.latsSelect = $scope.lats[0];
- $scope.lons = ["Please select a file above"];
- $scope.lonsSelect = $scope.lons[0];
- $scope.times = ["Please select a file above"];
- $scope.timeSelect = $scope.times[0];
- $scope.latLonVals = [];
- $scope.timeVals = [];
-
- // Clear the input box
- $('#observationFileInput').val("");
-
- // Display a confirmation message for a little bit
- $scope.fileAdded = true;
- $timeout(function() {
- $scope.fileAdded = false;
- }, 2000);
- }
-
- $scope.shouldDisableLoadButton = function() {
- return $scope.loadingFile;
- }
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/ParameterSelectCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/ParameterSelectCtrl.js b/ocw-ui/frontend/app/js/controllers/ParameterSelectCtrl.js
deleted file mode 100644
index d75e9d3..0000000
--- a/ocw-ui/frontend/app/js/controllers/ParameterSelectCtrl.js
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * 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.
-**/
-
-// Controller for dataset parameter selection/modification
-App.Controllers.controller('ParameterSelectCtrl', ['$rootScope', '$scope', '$http', '$timeout',
- 'selectedDatasetInformation', 'regionSelectParams', 'evaluationSettings',
-function($rootScope, $scope, $http, $timeout, selectedDatasetInformation, regionSelectParams, evaluationSettings) {
- $scope.datasets = selectedDatasetInformation.getDatasets();
-
- // The min/max lat/lon values from the selected datasets
- $scope.latMin = -90;
- $scope.latMax = 90;
- $scope.lonMin = -180;
- $scope.lonMax = 180;
- $scope.start = "1900-01-01 00:00:00";
- $scope.end = "2030-01-01 00:00:00";
-
- // The min/max lat/lon values that are displayed
- $scope.displayParams = regionSelectParams.getParameters();
-
- $scope.runningEval = false;
-
- // Flag for toggling re-grid controls based on whether or not the user has selected a grid
- // base from the selected datasets. By default we have no datasets so we don't need to show
- // the controls!
- $scope.areInUserRegridState = false;
-
- // Initialization for the lat/lon grid step sliders
- // TODO There has to be a better way of dealing with this. Perhaps a directive??
- $scope.latSliderVal = 0;
- $scope.lonSliderVal = 0;
-
- $('#latSlider').slider({
- value: 0,
- step: 0.25,
- min: 0.25,
- max: 180,
- slide: function(event, ui) {
- $scope.updateLatSliderDisplayValue(ui.value);
- },
- });
-
- $('#lonSlider').slider({
- value: 0,
- step: 0.25,
- min: 0.25,
- max: 360,
- slide: function(event, ui) {
- $scope.updateLonSliderDisplayValue(ui.value);
- },
- });
-
- $scope.updateLatSliderDisplayValue = function(value) {
- $scope.latSliderVal = value;
- $scope.$apply();
- };
-
- $scope.updateLonSliderDisplayValue = function(value) {
- $scope.lonSliderVal = value;
- $scope.$apply();
- };
-
- // Settings for jQuery datepicker directives!
- $scope.datepickerSettings = {
- changeMonth: true,
- changeYear: true,
- };
-
- $scope.shouldDisableControls = function() {
- return (selectedDatasetInformation.getDatasetCount() < 2);
- }
-
- $scope.shouldDisableEvaluateButton = function() {
- return ($scope.shouldDisableControls() || $scope.runningEval);
- }
-
- $scope.shouldDisableResultsView = function() {
- var res = false;
-
- if ($rootScope.evalResults == "")
- res = true;
-
- return res;
- }
-
- $scope.runEvaluation = function() {
- $scope.runningEval = true;
-
- var data = {}
- var settings = evaluationSettings.getSettings()
-
- // Set dataset information
-
- // Grab the reference dataset information
- var ref_ds = settings.spatialSelect;
-
- if (ref_ds == null) {
- ref_ds = $scope.datasets[0];
- }
-
- data['reference_dataset'] = null;
- data['target_datasets'] = [];
-
- // Parse all the dataset information and generate the necessary objects for the backend
- for (var i = 0; i < $scope.datasets.length; i++) {
- var dataset = {}
- dataset['dataset_info'] = {}
-
- if ($scope.datasets[i].isObs == 0) {
- dataset['data_source_id'] = 1;
- dataset['dataset_info']['dataset_id'] = $scope.datasets[i]['id'];
- dataset['dataset_info']['var_name'] = $scope.datasets[i]['param'];
- dataset['dataset_info']['lat_name'] = $scope.datasets[i]['lat'];
- dataset['dataset_info']['lon_name'] = $scope.datasets[i]['lon'];
- dataset['dataset_info']['time_name'] = $scope.datasets[i]['time'];
- dataset['dataset_info']['name'] = $scope.datasets[i]['name'];
- } else {
- dataset['data_source_id'] = 2;
- dataset['dataset_info']['dataset_id'] = $scope.datasets[i]['datasetId'];
- dataset['dataset_info']['parameter_id'] = $scope.datasets[i]['param'];
- dataset['dataset_info']['name'] = $scope.datasets[i]['name'];
- }
-
- if ($scope.datasets[i].id === ref_ds.id) {
- data['reference_dataset'] = dataset;
- } else {
- data['target_datasets'].push(dataset);
- }
- }
-
- // TODO: These should be use customizable
- // Set the spatial rebin grid steps
- data['spatial_rebin_lat_step'] = 1;
- data['spatial_rebin_lon_step'] = 1;
-
- // Determine the temporal resolution to use when doing a temporal rebin. The
- // value is used to determine the timedelta in days to use.
- temporal_res = settings.temporal.selected;
-
- if (temporal_res == 'daily') {
- data['temporal_resolution'] = 1;
- } else if (temporal_res == 'monthly') {
- data['temporal_resolution'] = 30;
- } else if (temporal_res == 'yearly') {
- data['temporal_resolution'] = 365;
- } else if (temporal_res == 'full') {
- data['temporal_resolution'] = 999;
- } else {
- // Default to monthly just in case
- data['temporal_resolution'] = 30;
- }
-
- // Load the Metrics for the evaluation
- data['metrics'] = []
- metrics = settings.metrics
- for (var i = 0; i < metrics.length; i++) {
- var metric = metrics[i];
-
- if (metric.select) {
- data['metrics'].push(metric.name)
- }
- }
-
- // Set the bound values for the evaluation
- data['start_time'] = $scope.displayParams.start + " 00:00:00",
- data['end_time'] = $scope.displayParams.end + " 00:00:00",
- data['lat_min'] = $scope.displayParams.latMin,
- data['lat_max'] = $scope.displayParams.latMax,
- data['lon_min'] = $scope.displayParams.lonMin,
- data['lon_max'] = $scope.displayParams.lonMax,
-
- $http.post($rootScope.baseURL + '/processing/run_evaluation/', data).
- success(function(data) {
- var evalWorkDir = data['eval_work_dir'];
-
- $scope.runningEval = false;
-
- $timeout(function() {
- if (evalWorkDir !== undefined) {
- window.location = "#/results/" + evalWorkDir;
- } else {
- window.location = "#/results";
- }
- }, 100);
-
- }).error(function() {
- $scope.runningEval = false;
- });
- };
-
- // Check the Parameter selection boxes after the user has changed input to ensure that valid
- // values were entered
- $scope.checkParameters = function() {
- if (parseFloat($scope.displayParams.latMin) < parseFloat($scope.latMin))
- $scope.displayParams.latMin = $scope.latMin;
-
- if (parseFloat($scope.displayParams.latMax) > parseFloat($scope.latMax))
- $scope.displayParams.latMax = $scope.latMax;
-
- if (parseFloat($scope.displayParams.lonMin) < parseFloat($scope.lonMin))
- $scope.displayParams.lonMin = $scope.lonMin;
-
- if (parseFloat($scope.displayParams.lonMax) > parseFloat($scope.lonMax))
- $scope.displayParams.lonMax = $scope.lonMax;
-
- if ($scope.displayParams.start < $scope.start)
- $scope.displayParams.start = $scope.start;
-
- if ($scope.displayParams.end > $scope.end)
- $scope.displayParams.end = $scope.end;
-
- $scope.displayParams.latMin = $scope.truncateFloat($scope.displayParams.latMin);
- $scope.displayParams.latMax = $scope.truncateFloat($scope.displayParams.latMax);
- $scope.displayParams.lonMin = $scope.truncateFloat($scope.displayParams.lonMin);
- $scope.displayParams.lonMax = $scope.truncateFloat($scope.displayParams.lonMax);
-
- $scope.$apply();
- $rootScope.$broadcast('redrawOverlays', []);
- }
-
- $scope.unwatchDatasets = $scope.$watch('datasets',
- function() {
- var numDatasets = $scope.datasets.length;
- $scope.displayParams.areValid = false;
- $scope.areInUserRegridState = false;
-
- if (numDatasets) {
- var latMin = -90,
- latMax = 90,
- lonMin = -180,
- lonMax = 180,
- start = "1900-01-01 00:00:00",
- end = "2030-01-01 00:00:00",
- datasetRegrid = false;
- // Get the valid lat/lon range in the selected datasets.
- for (var i = 0; i < numDatasets; i++) {
- var curDataset = $scope.datasets[i];
-
- latMin = (curDataset['latlonVals']['latMin'] > latMin) ? curDataset['latlonVals']['latMin'] : latMin;
- latMax = (curDataset['latlonVals']['latMax'] < latMax) ? curDataset['latlonVals']['latMax'] : latMax;
- lonMin = (curDataset['latlonVals']['lonMin'] > lonMin) ? curDataset['latlonVals']['lonMin'] : lonMin;
- lonMax = (curDataset['latlonVals']['lonMax'] < lonMax) ? curDataset['latlonVals']['lonMax'] : lonMax;
- start = (curDataset['timeVals']['start'] > start) ? curDataset['timeVals']['start'] : start;
- end = (curDataset['timeVals']['end'] < end) ? curDataset['timeVals']['end'] : end;
-
- datasetRegrid = datasetRegrid || curDataset.regrid;
-
- }
-
- $scope.areInUserRegridState = !datasetRegrid
- }
-
- // Update the display parameters with the new valid overlap that we've found!
- $scope.displayParams.latMin = $scope.truncateFloat(latMin);
- $scope.displayParams.latMax = $scope.truncateFloat(latMax);
- $scope.displayParams.lonMin = $scope.truncateFloat(lonMin);
- $scope.displayParams.lonMax = $scope.truncateFloat(lonMax);
- $scope.displayParams.start = (typeof start == 'undefined') ? "" : start.split(" ")[0];
- $scope.displayParams.end = (typeof end == 'undefined') ? "" : end.split(" ")[0];
-
- // Update the local store values!
- $scope.latMin = latMin;
- $scope.latMax = latMax;
- $scope.lonMin = lonMin;
- $scope.lonMax = lonMax;
- $scope.start = (typeof start == 'undefined') ? "" : start.split(" ")[0];
- $scope.end = (typeof end == 'undefined') ? "" : end.split(" ")[0];
-
- $scope.displayParams.areValid = true;
- $rootScope.$broadcast('redrawOverlays', []);
- }, true);
-
- $scope.truncateFloat = function(floatVal) {
- if (floatVal > 0) {
- return Math.floor(floatVal);
- } else {
- return Math.ceil(floatVal);
- }
- }
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/RcmedSelectionCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/RcmedSelectionCtrl.js b/ocw-ui/frontend/app/js/controllers/RcmedSelectionCtrl.js
deleted file mode 100644
index 1513d24..0000000
--- a/ocw-ui/frontend/app/js/controllers/RcmedSelectionCtrl.js
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * 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.
-**/
-
-App.Controllers.controller('RcmedSelectionCtrl', ['$rootScope', '$scope', '$http', '$timeout', 'selectedDatasetInformation',
-function($rootScope, $scope, $http, $timeout, selectedDatasetInformation) {
- // Grab a copy of the datasets so we can display a count to the user!
- $scope.datasetCount = selectedDatasetInformation.getDatasets();
- $scope.fileAdded = false;
-
- $scope.getObservations = function() {
- $http.jsonp($rootScope.baseURL + '/rcmed/datasets/?callback=JSON_CALLBACK').
- success(function(data) {
- $scope.availableObs = data;
- $scope.availableObs.splice(0, 0, {longname: 'Please select an option'});
- $scope.datasetSelection = $scope.availableObs[0];
- }).
- error(function(data) {
- $scope.availableObs = ["Unable to query RCMED"]
- });
- };
-
- $scope.getObservationBounds = function() {
- $scope.observationBounds = {};
-
- $http.get($rootScope.baseURL + '/rcmed/parameters/bounds/').
- success(function(data) {
- $scope.observationBounds = data;
- $scope.observationBounds['default'] = {
- 'start': '1900-01-01 00:00:00',
- 'end': '2050-01-01 00:00:00',
- 'latMin': -90,
- 'latMax': 89,
- 'lonMin': -180,
- 'lonMax': 179,
- };
- }).
- error(function(data) {
- $scope.observationBounds['default'] = {
- 'start': '1900-01-01 00:00:00',
- 'end': '2050-01-01 00:00:00',
- 'latMin': -90,
- 'latMax': 89,
- 'lonMin': -180,
- 'lonMax': 179,
- };
- });
- };
-
- $scope.getBoundsByParameterId = function(parameterId) {
- if (parameterId in $scope.observationBounds) {
- return $scope.observationBounds[parameterId];
- } else {
- return $scope.observationBounds['default'];
- }
- };
-
- $scope.dataSelectUpdated = function() {
- var urlString = $rootScope.baseURL + '/rcmed/parameters/?dataset=' +
- $scope.datasetSelection["shortname"] +
- "&callback=JSON_CALLBACK";
- $http.jsonp(urlString).
- success(function(data) {
- $scope.retrievedObsParams = data;
- if ($scope.retrievedObsParams.length > 1)
- $scope.retrievedObsParams.splice(0, 0, {shortname: 'Please select a parameter'});
- $scope.parameterSelection = $scope.retrievedObsParams[0];
- });
- };
-
- $scope.addObservation = function() {
- var newDataset = {};
-
- newDataset['isObs'] = 1;
- // Save the dataset id (the important part) and name (for display purposes)
- newDataset['datasetId'] = $scope.datasetSelection['dataset_id'];
- newDataset['name'] = $scope.datasetSelection['longname'];
- // Save the parameter id (the important part) and name (for display purposes)
- newDataset['id'] = $scope.parameterSelection['parameter_id'];
- newDataset['param'] = $scope.parameterSelection['parameter_id'];
- newDataset['paramName'] = $scope.parameterSelection['longname'];
-
- bounds = $scope.getBoundsByParameterId(newDataset['id']);
- newDataset['latlonVals'] = {
- 'latMin': bounds['lat_min'],
- 'latMax': bounds['lat_max'],
- 'lonMin': bounds['lon_min'],
- 'lonMax': bounds['lon_max'],
- };
- newDataset['timeVals'] = {
- 'start': bounds['start_date'],
- 'end': bounds['end_date'],
- };
-
- // Set some defaults for lat/lon/time variable names. This just helps
- // us display stuff later.
- newDataset['lat'] = "N/A";
- newDataset['lon'] = "N/A";
- newDataset['time'] = "N/A";
-
- selectedDatasetInformation.addDataset(newDataset);
-
- // Clear the user selections by requery-ing RCMED. This is really hacky, but it works for now...
- $scope.availableObs = [];
- $scope.retrievedObsParams = [];
- $scope.getObservations();
-
- // Display a confirmation message for a little bit
- $scope.fileAdded = true;
- $timeout(function() {
- $scope.fileAdded = false;
- }, 2000);
- };
-
- // Grab the available observations from RCMED
- $scope.getObservations();
- $scope.getObservationBounds();
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/ResultCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/ResultCtrl.js b/ocw-ui/frontend/app/js/controllers/ResultCtrl.js
deleted file mode 100644
index 0bd7eaf..0000000
--- a/ocw-ui/frontend/app/js/controllers/ResultCtrl.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.
-**/
-
-// Controller for result page
-App.Controllers.controller('ResultCtrl', ['$rootScope', '$scope', '$http',
-function($rootScope, $scope, $http) {
-
- $scope.results = [];
-
- // Get all evaluation directories
- $http.jsonp($rootScope.baseURL + '/dir/results/?callback=JSON_CALLBACK')
- .success(function(data) {
- data = data['listing']
-
- var cacheDirIndex = data.indexOf("/cache");
- if (cacheDirIndex > -1) {
- data.split(cacheDirIndex, 1)
- }
-
- $scope.results = data.sort().reverse();
- });
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/ResultDetailCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/ResultDetailCtrl.js b/ocw-ui/frontend/app/js/controllers/ResultDetailCtrl.js
deleted file mode 100644
index 30c0d2a..0000000
--- a/ocw-ui/frontend/app/js/controllers/ResultDetailCtrl.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.
-**/
-
-// Controller for result page
-App.Controllers.controller('ResultDetailCtrl', ['$rootScope', '$scope', '$http', '$stateParams',
-function($rootScope, $scope, $http, $stateParams) {
- $scope.result = $stateParams.resultId;
-
- $http.jsonp($rootScope.baseURL + '/dir/results/' + $scope.result + '?callback=JSON_CALLBACK')
- .success(function(data) {
- data = data['listing'];
-
- if (data.length < 1) {
- $scope.figures = null;
- $scope.alertMessage = "No results found.";
- $scope.alertClass = "alert alert-danger";
- } else {
- $scope.figures = data;
- }
- });
-
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/SettingsCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/SettingsCtrl.js b/ocw-ui/frontend/app/js/controllers/SettingsCtrl.js
deleted file mode 100755
index a32a9cb..0000000
--- a/ocw-ui/frontend/app/js/controllers/SettingsCtrl.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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.
-**/
-
-App.Controllers.controller('SettingsCtrl', ['$scope', 'evaluationSettings', 'selectedDatasetInformation',
-function($scope, evaluationSettings, selectedDatasetInformation) {
- $scope.settings = evaluationSettings.getSettings();
- $scope.datasets = selectedDatasetInformation.getDatasets();
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/TimelineCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/TimelineCtrl.js b/ocw-ui/frontend/app/js/controllers/TimelineCtrl.js
deleted file mode 100644
index 9485aa4..0000000
--- a/ocw-ui/frontend/app/js/controllers/TimelineCtrl.js
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// 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.
-//
-
-// Controller for the OCW Timeline Widget
-App.Controllers.controller('TimelineCtrl', ['$rootScope', '$scope', 'selectedDatasetInformation', 'regionSelectParams',
-function($rootScope, $scope, selectedDatasetInformation, regionSelectParams) {
- $scope.datasets = selectedDatasetInformation.getDatasets();
- $scope.regionParams = regionSelectParams.getParameters();
-
- $scope.updateTimeline = function() {
- // Clear timeline data if it exists
- if ("timeline" in $rootScope) {
- $rootScope.timeline.deleteAllItems();
- }
-
- // Don't process if no datasets have been added
- if ($scope.datasets.length == 0 || !("timeline" in $rootScope))
- return;
-
- // Create DataTable to add data to timeline
- var data = new google.visualization.DataTable();
- data.addColumn('datetime', 'start');
- data.addColumn('datetime', 'end');
- data.addColumn('string', 'content');
-
- // Loop through datasets and find the overlapping start/end time range
- var start = $scope.datasets[0].timeVals.start;
- var end = $scope.datasets[0].timeVals.end;
- for (var i = 0; i < $scope.datasets.length; i++) {
- var possibleNewStart = $scope.datasets[i].timeVals.start;
- var possibleNewEnd = $scope.datasets[i].timeVals.end;
-
- start = (possibleNewStart > start) ? possibleNewStart : start;
- end = (possibleNewEnd < end) ? possibleNewEnd : end;
- }
-
- // Set the timeline extent to the overlapping time range
- //
- // NOTE: The month value substring is expected to be 0-based (hence the -1)
- $rootScope.timeline.setVisibleChartRange(new Date(start.substr(0, 4), start.substr(5, 2) - 1, start.substr(8, 2)),
- new Date(end.substr(0, 4), end.substr(5, 2) - 1, end.substr(8, 2)));
-
- // Add user selected bounds to timeline
- if ($scope.regionParams.areValid) {
-
- var userStart = $scope.regionParams.start;
- var userEnd = $scope.regionParams.end;
-
- // Add color to user selected bounds
- var style = 'background-color: #000000; border: 2px solid;';
- var ocwBar = '<div class="ocw-bar timeline-event-range" style="' + style + '"></div>';
-
- // Add row to DataTable: object with start and end date
- // note: subtract one from month since indexes from 0 to 11
- data.addRow([new Date(userStart.substr(0,4), userStart.substr(5,2)-1, userStart.substr(8,2)),
- new Date(userEnd.substr(0,4), userEnd.substr(5,2)-1, userEnd.substr(8,2)),
- ocwBar ]);
- }
-
- var options = {
- "width": "100%",
- "showCurrentTime": false,
- "moveable": false,
- "zoomable": false,
- };
-
- // Draw timeline with data (DataTable) and options (a name-value map)
- $rootScope.timeline.draw(data, options);
- };
-
- $scope.$on('redrawOverlays', function(event, parameters) {
- $scope.updateTimeline();
- });
-
- $scope.$watch('datasets', function() {
- $scope.updateTimeline();
- }, true);
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/controllers/WorldMapCtrl.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/controllers/WorldMapCtrl.js b/ocw-ui/frontend/app/js/controllers/WorldMapCtrl.js
deleted file mode 100644
index 3de155c..0000000
--- a/ocw-ui/frontend/app/js/controllers/WorldMapCtrl.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.
-**/
-
-// Controller for the world map
-App.Controllers.controller('WorldMapCtrl', ['$rootScope', '$scope', 'selectedDatasetInformation', 'regionSelectParams',
-function($rootScope, $scope, selectedDatasetInformation, regionSelectParams) {
- $scope.datasets = selectedDatasetInformation.getDatasets();
- $scope.regionParams = regionSelectParams.getParameters();
-
- $scope.updateMap = function() {
- // Clear Group of layers from map if it exists
- if ("rectangleGroup" in $rootScope) {
- $rootScope.rectangleGroup.clearLayers();
- }
-
- // Don't process if we don't have any datasets added or if the map doesn't exist!!
- if ($scope.datasets.length == 0 || !("map" in $rootScope))
- return;
-
- // Create a group that we'll draw overlays to
- $rootScope.rectangleGroup = L.layerGroup();
- // Add rectangle Group to map
- $rootScope.rectangleGroup.addTo($rootScope.map);
-
- // Calculate the overlap region and set the map to show the new overlap
- var latMin = -90,
- latMax = 90,
- lonMin = -180,
- lonMax = 180;
-
- // Get the valid lat/lon range in the selected datasets.
- for (var i = 0; i < selectedDatasetInformation.getDatasetCount(); i++) {
- var curDataset = $scope.datasets[i];
-
- latMin = (curDataset['latlonVals']['latMin'] > latMin) ? curDataset['latlonVals']['latMin'] : latMin;
- latMax = (curDataset['latlonVals']['latMax'] < latMax) ? curDataset['latlonVals']['latMax'] : latMax;
- lonMin = (curDataset['latlonVals']['lonMin'] > lonMin) ? curDataset['latlonVals']['lonMin'] : lonMin;
- lonMax = (curDataset['latlonVals']['lonMax'] < lonMax) ? curDataset['latlonVals']['lonMax'] : lonMax;
- }
-
- var overlapBounds = [[latMax, lonMin], [latMin, lonMax]];
- $rootScope.map.fitBounds(overlapBounds, {padding: [0, 0]});
-
- // Draw border around overlap region
- var overlapBorder = L.rectangle(overlapBounds, {
- color: '#000000',
- opacity: 1.0,
- fill: false,
- weight: 2,
- dashArray: "10 10",
- });
-
- $rootScope.rectangleGroup.addLayer(overlapBorder);
-
- // Draw user selected region
- if ($scope.regionParams.areValid) {
-
- var bounds = [[$scope.regionParams.latMax, $scope.regionParams.lonMin],
- [$scope.regionParams.latMin, $scope.regionParams.lonMax]];
-
- var polygon = L.rectangle(bounds, {
- color: '#000000',
- opacity: .3,
- stroke: false,
- fill: true,
- });
-
- $rootScope.rectangleGroup.addLayer(polygon);
- }
- };
-
- $scope.$on('redrawOverlays', function(event, parameters) {
- $scope.updateMap();
- });
-
- $scope.$watch('datasets', function() {
- $scope.updateMap();
- }, true);
-}]);
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/directives/BootstrapModal.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/directives/BootstrapModal.js b/ocw-ui/frontend/app/js/directives/BootstrapModal.js
deleted file mode 100644
index d7c2432..0000000
--- a/ocw-ui/frontend/app/js/directives/BootstrapModal.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.
-**/
-
-// Directive for inserting bootstrap modals
-App.Directives.directive('bootstrapModal', function($timeout) {
- var link = function(scope, elem, attrs) {
- var escapeEvent;
- var openModal;
- var closeModal;
-
- escapeEvent = function(e) {
- if (e.which == 27)
- closeModal();
- }
-
- openModal = function(event, toggleBackground, toggleKeyboardEscape) {
- // Grab the current modal tag based on the modalId attribute in the bootstrapModal tag
- var modal = $('#' + attrs.modalId);
-
- // Make all the modal's children of class "close" call the appropriate function for closing!
- $('.close', modal).bind('click', closeModal);
-
- modal.modal({
- show: true,
- backdrop: toggleBackground,
- keyboard: toggleKeyboardEscape,
- });
- };
-
- closeModal = function(event) {
- $('#' + attrs.modalId).modal('hide');
-
- };
-
- // We need to bind the close and open modal events so outside elements can trigger the modal.
- // This has to wait until the template has been fully inserted, so just wait a bit of time
- // before we set them. I'm sure there's a better way of handling this...
- $timeout(function() {
- $('#' + attrs.modalId).
- bind('modalOpen', openModal).
- bind('modalClose', closeModal);
- }, 100);
- };
-
- return {
- link: link,
- replace: true,
- restrict: 'E',
- scope: {
- modalId: '@'
- },
- template: '<div id="{{modalId}}" class="modal hide fade" tabindex="-1"><div ng-transclude></div></div>',
- transclude: true
- };
-});
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/directives/BootstrapModalOpen.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/directives/BootstrapModalOpen.js b/ocw-ui/frontend/app/js/directives/BootstrapModalOpen.js
deleted file mode 100644
index 8acd0e3..0000000
--- a/ocw-ui/frontend/app/js/directives/BootstrapModalOpen.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.
-**/
-
-// This directive processes bootstrap-modal-open attributes. This lets the user bind
-// the opening of a specific modal to a button/link. It also lets the user specify
-// what features the modal should have. The user can turn off the semi-opaque background
-// by having the background attribute set to 'false'. The user can also turn off the
-// ability to close the modal with ESC by having the keyboard attribute set to 'false'.
-App.Directives.directive('bootstrapModalOpen', function() {
- return {
- restrict: 'A',
- link: function(scope, elem, attrs) {
- // Default to showing the background if the user didn't specify a value for this.
- var hasBackground = (attrs.background === undefined ? true : (attrs.background == "true"));
- // Enable keyboard closing of modal with escape key.
- var hasKeyboardEscape = (attrs.keyboard === undefined ? true : (attrs.keyboard == "true"));
-
- $(elem).bind('click', function() {
- $('#' + attrs.bootstrapModalOpen).trigger('modalOpen', [hasBackground, hasKeyboardEscape]);
- });
- }
- };
-});
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/directives/LeafletMap.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/directives/LeafletMap.js b/ocw-ui/frontend/app/js/directives/LeafletMap.js
deleted file mode 100644
index 0076179..0000000
--- a/ocw-ui/frontend/app/js/directives/LeafletMap.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.
-**/
-
-// Directive for dealing with the Leaflet map
-App.Directives.directive('leafletMap', function($rootScope) {
- return {
- restrict: 'E',
- replace: true,
- template: '<div></div>',
- link: function(scope, element, attrs) {
- $rootScope.map = L.map(attrs.id, {
- center: [40, 0],
- zoom: 2,
- scrollWheelZoom: false,
- attributionControl: false,
- worldCopyJump: true,
- });
-
- L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {}).addTo($rootScope.map);
- }
- };
-});
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/directives/OnBlur.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/directives/OnBlur.js b/ocw-ui/frontend/app/js/directives/OnBlur.js
deleted file mode 100755
index 554ad0c..0000000
--- a/ocw-ui/frontend/app/js/directives/OnBlur.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.
-**/
-
-// The onBlur directive calls a passed function when a field's "blur" event is called.
-// The function should be passed as part of the "on-blur" attribute and be defined in
-// the containing scope.
-//
-// Consider the test function "testFunc". If you wanted this to run on the blur event
-// for an input box you would use the following:
-// <input type="text" on-blur="testFunc();" />
-App.Directives.directive('onBlur', function() {
- return {
- restrict: 'A',
- link: function($scope, $elem, $attrs) {
- $elem.bind('blur', function() {
- $scope.$eval($attrs.onBlur);
- });
- },
- };
- });
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/directives/PredictiveFileBrowserInput.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/directives/PredictiveFileBrowserInput.js b/ocw-ui/frontend/app/js/directives/PredictiveFileBrowserInput.js
deleted file mode 100644
index 11bcc6f..0000000
--- a/ocw-ui/frontend/app/js/directives/PredictiveFileBrowserInput.js
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * 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.
-**/
-
-// Setup a text input that the user will use to input a path to a local file.
-App.Directives.directive('predictiveFileBrowserInput', function() {
- var link = function($scope, $elem, $attrs) {
- $scope.autocomplete = [];
-
- // Set id to use this directive correctly in multiple places
- $scope.id = 'autoCompletePath'+ $elem.context.id
- /*
- * We need a place to dump our auto-completion options
- */
- $($elem).parent().append('<ul id="' + $scope.id +'"><ul>');
-
- // Handle user clicks on auto-complete path options
- $(document).on('click', '#' +$scope.id+ ' li span', function(e) {
- // Set the input text box's value to that of the user selected path
- var val = $(e.target).text();
- $($elem).val(val);
- // Need to trigger the input box's "input" event so Angular updates the model!
- $elem.trigger('input');
-
- // If the user selected a directory, find more results..
- if (val[val.length - 1] == '/') {
- $scope.fetchFiles($($elem).val());
- // Otherwise, remove the auto-complete options...
- } else {
- $('#' +$scope.id+ ' li').remove();
- }
- });
-
- /*
- * Handle key-down events on the input box
- *
- * We need to ignore <TAB> presses here so we can auto-complete with <TAB>.
- * If we don't ignore here then <TAB> will move the user to the next field
- * in the form and our common-prefix-fill won't work later.
- */
- $($elem).keydown(function(e) {
- var code = e.keyCode || e.which;
- var BACKSPACE = 8,
- TAB = 9;
-
- if (code == TAB)
- return false;
- });
-
- /*
- * Handle key-up events on the input box
- */
- $($elem).keyup(function(e) {
- var code = e.keyCode || e.which;
- var BACKSPACE = 8,
- TAB = 9,
- FORWARD_SLASH = 191;
-
- if (code === FORWARD_SLASH) {
- // Fetch new directory information from the server.
- $scope.fetchFiles($(this).val());
- } else if (code === TAB) {
- // Attempt to auto-fill for the user.
- $scope.handleTabPress();
- } else if (code == BACKSPACE) {
- // Need to properly handle the removal of directory information
- // and the displaying of auto-complete options
- $scope.handleBackSpace();
- } else {
- // Filter auto-complete options based on user input..
- $scope.handleMiscKeyPress();
- }
-
- // This is being used so we can handle backspacing. The user might hold
- // down the backspace key or select a section of text and delete. This allows
- // us to compare the result to its prior state, which makes handling
- // backspaces easier.
- $scope.lastInputContents = $elem.val();
- });
-
- /*
- * Grab additional path information from the web-server
- *
- * Params:
- * path - The path to get a directory listing of.
- */
- // TODO Make this use $HTTP
- $scope.fetchFiles = function(path) {
- $.get($scope.baseURL + '/dir/list/' + path, {},
- function(data) {
- data = data['listing']
- $scope.setNewData(data);
- $scope.updateAutoComplete();
- }, 'json');
- };
-
- /*
- * Grab additional path information from the web-server and filter the
- * results based on the current input text.
- *
- * Params:
- * path - The path to get a directory listing of.
- *
- * This is needed to handle deletion of selected text. It is possible that
- * the user will select text and delete only part of a word. The results
- * need to be filtered based on this partial input.
- */
- // TODO Why isn't this using $http?!?!?! Because I copy and pasted!!!!
- $scope.fetchFilesAndFilter = function(path) {
- $.get($scope.baseURL + '/dir/list/' + path, {},
- function(data) {
- data = data['listing']
- $scope.setNewData(data);
- $scope.filterResults();
- $scope.updateAutoComplete();
- }, 'json');
- };
-
- /*
- * Handle directory data from the server.
- *
- * We store the entire directory information along with the remaining
- * possible options given the users current input. This lets us avoid
- * unnecessary calls to the server for directory information every time
- * the user deletes something.
- */
- $scope.setNewData = function(data) {
- $scope.autocomplete = data.sort();
- $scope.possibleCompletes = $scope.autocomplete;
- };
-
- /*
- * Handle <TAB> presses.
- *
- * Attempt to auto-complete options when the user presses <TAB>.
- */
- $scope.handleTabPress = function() {
- // If there's only one option available there's no points in trying to
- // find a common prefix! Just set the value!
- if ($scope.possibleCompletes.length === 1) {
- $elem.val($scope.possibleCompletes[0]);
-
- // Make sure more options are displayed if a directory was selected.
- $scope.checkForMoreOptions();
- $scope.updateAutoComplete();
- return;
- }
-
- // Find the greatest common prefix amongst the remaining choices and set
- // the input text to it.
- var prefix = $scope.getLargestCommonPrefix($scope.possibleCompletes);
- $elem.val(prefix);
- $scope.updateAutoComplete();
- };
-
- /*
- * Handle Backspacing and option displaying.
- *
- * The auto-complete options needs to be displayed correctly when the user
- * removes directory information.
- */
- $scope.handleBackSpace = function() {
- var curInputVal = $elem.val();
-
- // If the user deletes everything in the input box all we need to do
- // is make sure that the auto-complete options aren't displayed.
- if (curInputVal.length === 0) {
- $('#' +$scope.id+ ' li').remove();
- return;
- }
-
- // Figure out how much text the user removed from the input box.
- var lengthDiff = $scope.lastInputContents.length - curInputVal.length;
- // Grab the removed text.
- var removedText = $scope.lastInputContents.substr(-lengthDiff);
-
- // If the user deleted over a directory we need to fetch information on the
- // previous directory for auto-completion.
- if (removedText.indexOf('/') !== -1) {
- var lastSlashIndex = curInputVal.lastIndexOf('/');
-
- // If the remaining path still contains a directory...
- if (lastSlashIndex !== -1) {
- // Grab the section of the path that points to a valid directory,
- // fetch the listing, and update the results.
- var pathToSearch = curInputVal.slice(0, lastSlashIndex + 1);
- $scope.fetchFilesAndFilter(pathToSearch);
- } else {
- // Delete the old auto-complete information in the case where the user
- // completely removed path information.
- $('#' +$scope.id+ ' li').remove();
- }
- } else {
- // Otherwise, we just need to filter results based on the remaining input.
- $scope.filterResults();
- $scope.updateAutoComplete();
- }
- };
-
- /*
- * Handle all other key presses in the input box
- *
- * Filter the auto-complete options as the user types to ensure that only options
- * which are possible given the current input text are still displayed.
- */
- $scope.handleMiscKeyPress = function() {
- // Safely exit when there are no options available.
- if ($scope.autocomplete === [])
- return;
-
- // Otherwise, filter the results.
- $scope.filterResults();
- $scope.updateAutoComplete();
- };
-
- /*
- * When a path is auto-completed with <TAB> we need to check to see if it points
- * to a directory. If it does, we still need to fetch results!
- */
- $scope.checkForMoreOptions = function() {
- var path = $elem.val();
- if (path[path.length - 1] === '/') {
- $scope.fetchFiles(path);
- }
- };
-
- /*
- * Calculate the greatest common prefix of the passed options.
- *
- * Params:
- * Options - An array of strings in which the greatest common prefix
- * should be found
- *
- * Returns:
- * The greatest common prefix of the strings.
- *
- *
- * Note - For us, there will always be a prefix of at least '/' since this can't
- * possible be called without the users entering a starting directory. As a result,
- * we don't explicitly handle the case where there is 0 length common prefix.
- */
- $scope.getLargestCommonPrefix = function(options) {
- var index = 1;
- var shortestString = options.reduce(function(a, b) { return a.length < b.length ? a : b; });
- var longestString = options.reduce(function(a, b) { return a.length > b.length ? a : b; });
- var substringToCheck = shortestString[0];
-
- while (longestString.indexOf(substringToCheck) !== -1) {
- substringToCheck = shortestString.slice(0, ++index);
- }
-
- return longestString.slice(0, index - 1);
- };
-
- /*
- * Filter the auto-complete options based on the current input.
- */
- $scope.filterResults = function() {
- $scope.possibleCompletes = $scope.autocomplete.filter(function(item, index, array) {
- return (~item.indexOf($($elem).val()));
- });
-
- $scope.possibleCompletes.sort();
- };
-
- /*
- * Update the display of auto-complete options.
- */
- $scope.updateAutoComplete = function() {
- // Remove all the existing options
- $('#' +$scope.id+ ' li').remove();
-
- // We don't need to show anything if the user has completely selected
- // the only existing option available.
- if ($scope.possibleCompletes.length === 1) {
- if ($scope.possibleCompletes[0] === $elem.val()) {
- return;
- }
- }
-
- // Display all the possible completes
- $.each($scope.possibleCompletes, function(i, v) {
- $('#' +$scope.id+ '').append($('<li>').html($('<span>').text(v)));
- });
- };
- };
-
- return {
- link: link,
- scope: true,
- restrict: 'A'
- };
-});
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/directives/PreviewMap.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/directives/PreviewMap.js b/ocw-ui/frontend/app/js/directives/PreviewMap.js
deleted file mode 100644
index b172fe7..0000000
--- a/ocw-ui/frontend/app/js/directives/PreviewMap.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.
-**/
-
-App.Directives.directive('previewMap', function($rootScope) {
- return {
- restrict: 'A',
- replace: true,
- scope: {dataset: '=previewMap', index: '=index'},
- template: '<div id="{{dataset.name}}" class="preview-map"></div>',
- replace: true,
- link: function(scope, element, attrs) {
-
- // Any attribute that contains {{}} interpolation will be set to null in the attrs
- // parameter during the link function since the first $digest since the compilation
- // has yet to run to evaluate it! We can't run a $digest in the middle of compilation,
- // so using an $observe (or $watch) is the best way to get the values.
- attrs.$observe('id', function(newId) {
- var map = L.map(attrs.id, {
- zoom: 0,
- scrollWheelZoom: false,
- zoomControl: false,
- attributionControl: false,
- worldCopyJump: true,
- });
-
- L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {}).addTo(map);
-
- // Zoom the map to the dataset bound regions (or at least try our best to do so)
- var datasetBounds = [[scope.dataset.latlonVals.latMax, scope.dataset.latlonVals.lonMin],
- [scope.dataset.latlonVals.latMin, scope.dataset.latlonVals.lonMax]];
- map.fitBounds(datasetBounds, {});
-
- // Draw a colored overlay on the region of the map
- var maplatlon = scope.dataset.latlonVals;
- var bounds = [[maplatlon.latMax, maplatlon.lonMin], [maplatlon.latMin, maplatlon.lonMax]];
-
- var polygon = L.rectangle(bounds,{
- stroke: false,
- fillColor: $rootScope.fillColors[1],
- fillOpacity: 0.6
- });
-
- // Add layer to Group
- var rectangleGroup = L.layerGroup();
- rectangleGroup.addLayer(polygon);
-
- // Add the overlay to the map
- rectangleGroup.addTo(map);
- });
- }
- };
-});
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/directives/Timeline.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/directives/Timeline.js b/ocw-ui/frontend/app/js/directives/Timeline.js
deleted file mode 100644
index d29f85e..0000000
--- a/ocw-ui/frontend/app/js/directives/Timeline.js
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// 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.
-//
-
-// Directive for dealing with the Leaflet map
-App.Directives.directive('timeline', function($rootScope, $window) {
- return {
- restrict: 'C',
- replace: true,
- transclude: true,
- template: '<div id="OCWtimeline"></div>',
- link: function(scope, element, attrs) {
- // Instantiate timeline object.
- $rootScope.timeline = new links.Timeline(document.getElementById('OCWtimeline'));
-
- // Redraw the timeline whenever the window is resized
- angular.element($window).bind('resize', function() {
- $rootScope.timeline.checkResize();
- });
-
- var options = {
- "width": "100%",
- "showCurrentTime": false,
- "moveable": false,
- "zoomable": false
- };
-
- $rootScope.timeline.draw([], options);
- }
- }
-});
http://git-wip-us.apache.org/repos/asf/climate/blob/a53e3af5/ocw-ui/frontend/app/js/filters/ISODateToMiddleEndian.js
----------------------------------------------------------------------
diff --git a/ocw-ui/frontend/app/js/filters/ISODateToMiddleEndian.js b/ocw-ui/frontend/app/js/filters/ISODateToMiddleEndian.js
deleted file mode 100644
index 50ed37b..0000000
--- a/ocw-ui/frontend/app/js/filters/ISODateToMiddleEndian.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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';
-
-// Convert a date in ISO format (or slightly modified such that 'T' is replace by ' ') into
-// a 'Middle Endian'/U.S. style date.
-App.Filters.filter('ISODateToMiddleEndian', function() {
- return function(input) {
- var original = input;
-
- // Strip whitespace from the start and end of the string
- input = input.replace(/(^\s+|\s+$)/g, '');
-
- // ISO Standard says time is separated from Date with a 'T'. Our timestamps
- // slightly modify that and use a space. We'll check for both here and prefer
- // to split on a 'T' if it's available.
- if (input.indexOf('T') != -1 || input.indexOf(' ') != -1) {
- input = (input.indexOf('T') != -1) ? input.split('T')[0] : input.split(' ')[0];
- }
-
- // The components of the date should be split with hyphens. If we can't find them
- // then the string is poorly formed.
- if (input.indexOf('-') == -1 || input.split('-').length - 1 != 2) {
- return original;
- }
-
- // At this point the date is probably valid and we should try to convert it!
- var components = input.split('-');
- return (components[1] + "/" + components[2] + "/" + components[0]);
- };
-});