http://git-wip-us.apache.org/repos/asf/climate/blob/652ea657/ocw-ui/frontend-new/app/scripts/controllers/parameterselect.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/controllers/parameterselect.js b/ocw-ui/frontend-new/app/scripts/controllers/parameterselect.js deleted file mode 100644 index cad97e0..0000000 --- a/ocw-ui/frontend-new/app/scripts/controllers/parameterselect.js +++ /dev/null @@ -1,275 +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'; - -/** - * @ngdoc function - * @name ocwUiApp.controller:ParameterSelectCtrl - * @description - * # ParameterSelectCtrl - * Controller of the ocwUiApp - */ -angular.module('ocwUiApp') -.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; - - // 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. - var 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'] = [] - var 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/652ea657/ocw-ui/frontend-new/app/scripts/controllers/rcmedselection.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/controllers/rcmedselection.js b/ocw-ui/frontend-new/app/scripts/controllers/rcmedselection.js deleted file mode 100644 index a3b3801..0000000 --- a/ocw-ui/frontend-new/app/scripts/controllers/rcmedselection.js +++ /dev/null @@ -1,144 +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'; - -/** - * @ngdoc function - * @name ocwUiApp.controller:RcmedSelectionCtrl - * @description - * # RcmedSelectionCtrl - * Controller of the ocwUiApp - */ -angular.module('ocwUiApp') - .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']; - - var 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/652ea657/ocw-ui/frontend-new/app/scripts/controllers/result.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/controllers/result.js b/ocw-ui/frontend-new/app/scripts/controllers/result.js deleted file mode 100644 index 39b94b9..0000000 --- a/ocw-ui/frontend-new/app/scripts/controllers/result.js +++ /dev/null @@ -1,47 +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'; - -/** - * @ngdoc function - * @name ocwUiApp.controller:ResultCtrl - * @description - * # ResultCtrl - * Controller of the ocwUiApp - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/controllers/resultdetail.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/controllers/resultdetail.js b/ocw-ui/frontend-new/app/scripts/controllers/resultdetail.js deleted file mode 100644 index 952516c..0000000 --- a/ocw-ui/frontend-new/app/scripts/controllers/resultdetail.js +++ /dev/null @@ -1,46 +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'; - -/** - * @ngdoc function - * @name ocwUiApp.controller:ResultDetailCtrl - * @description - * # ResultDetailCtrl - * Controller of the ocwUiApp - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/controllers/settings.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/controllers/settings.js b/ocw-ui/frontend-new/app/scripts/controllers/settings.js deleted file mode 100644 index ca62fd8..0000000 --- a/ocw-ui/frontend-new/app/scripts/controllers/settings.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. - */ - -'use strict'; - -/** - * @ngdoc function - * @name ocwUiApp.controller:SettingsCtrl - * @description - * # SettingsCtrl - * Controller of the ocwUiApp - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/controllers/timeline.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/controllers/timeline.js b/ocw-ui/frontend-new/app/scripts/controllers/timeline.js deleted file mode 100644 index 2546ede..0000000 --- a/ocw-ui/frontend-new/app/scripts/controllers/timeline.js +++ /dev/null @@ -1,103 +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'; - -/** - * @ngdoc function - * @name ocwUiApp.controller:TimelineCtrl - * @description - * # TimelineCtrl - * Controller of the ocwUiApp - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/controllers/worldmap.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/controllers/worldmap.js b/ocw-ui/frontend-new/app/scripts/controllers/worldmap.js deleted file mode 100644 index 0d28d6c..0000000 --- a/ocw-ui/frontend-new/app/scripts/controllers/worldmap.js +++ /dev/null @@ -1,104 +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'; - -/** - * @ngdoc function - * @name ocwUiApp.controller:WorldMapCtrl - * @description - * # WorldMapCtrl - * Controller of the ocwUiApp - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/directives/bootstrapmodal.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/directives/bootstrapmodal.js b/ocw-ui/frontend-new/app/scripts/directives/bootstrapmodal.js deleted file mode 100644 index 26d0a46..0000000 --- a/ocw-ui/frontend-new/app/scripts/directives/bootstrapmodal.js +++ /dev/null @@ -1,79 +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'; - -/** - * @ngdoc directive - * @name ocwUiApp.directive:bootstrapModal - * @description - * # bootstrapModal - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/directives/bootstrapmodalopen.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/directives/bootstrapmodalopen.js b/ocw-ui/frontend-new/app/scripts/directives/bootstrapmodalopen.js deleted file mode 100644 index dca4005..0000000 --- a/ocw-ui/frontend-new/app/scripts/directives/bootstrapmodalopen.js +++ /dev/null @@ -1,43 +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'; - -/** - * @ngdoc directive - * @name ocwUiApp.directive:bootstrapModalOpen - * @description - * # bootstrapModalOpen - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/directives/leafletmap.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/directives/leafletmap.js b/ocw-ui/frontend-new/app/scripts/directives/leafletmap.js deleted file mode 100644 index 9b0a6eb..0000000 --- a/ocw-ui/frontend-new/app/scripts/directives/leafletmap.js +++ /dev/null @@ -1,46 +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'; - -/** - * @ngdoc directive - * @name ocwUiApp.directive:leafletMap - * @description - * # leafletMap - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/directives/onblur.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/directives/onblur.js b/ocw-ui/frontend-new/app/scripts/directives/onblur.js deleted file mode 100644 index 313dbe0..0000000 --- a/ocw-ui/frontend-new/app/scripts/directives/onblur.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. - */ - -'use strict'; - -/** - * @ngdoc directive - * @name ocwUiApp.directive:onBlur - * @description - * # onBlur - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/directives/predictivefilebrowserinput.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/directives/predictivefilebrowserinput.js b/ocw-ui/frontend-new/app/scripts/directives/predictivefilebrowserinput.js deleted file mode 100644 index 7142c15..0000000 --- a/ocw-ui/frontend-new/app/scripts/directives/predictivefilebrowserinput.js +++ /dev/null @@ -1,316 +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'; - -/** - * @ngdoc directive - * @name ocwUiApp.directive:predictiveFileBrowserInput - * @description - * # predictiveFileBrowserInput - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/directives/previewmap.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/directives/previewmap.js b/ocw-ui/frontend-new/app/scripts/directives/previewmap.js deleted file mode 100644 index 78aae8c..0000000 --- a/ocw-ui/frontend-new/app/scripts/directives/previewmap.js +++ /dev/null @@ -1,76 +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'; - -/** - * @ngdoc directive - * @name ocwUiApp.directive:previewMap - * @description - * # previewMap - */ -angular.module('ocwUiApp') -.directive('previewMap', function($rootScope) { - return { - restrict: 'A', - 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/652ea657/ocw-ui/frontend-new/app/scripts/directives/timeline.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/directives/timeline.js b/ocw-ui/frontend-new/app/scripts/directives/timeline.js deleted file mode 100644 index 760a819..0000000 --- a/ocw-ui/frontend-new/app/scripts/directives/timeline.js +++ /dev/null @@ -1,54 +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'; - -/** - * @ngdoc directive - * @name ocwUiApp.directive:timeline - * @description - * # timeline - */ -angular.module('ocwUiApp') -.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/652ea657/ocw-ui/frontend-new/app/scripts/filters/isodatetomiddleendian.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/filters/isodatetomiddleendian.js b/ocw-ui/frontend-new/app/scripts/filters/isodatetomiddleendian.js deleted file mode 100644 index 7fcd2a9..0000000 --- a/ocw-ui/frontend-new/app/scripts/filters/isodatetomiddleendian.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. - */ - -'use strict'; - -/** - * @ngdoc filter - * @name ocwUiApp.filter:ISODateToMiddleEndian - * @function - * @description - * # ISODateToMiddleEndian - * Filter in the ocwUiApp. - */ -angular.module('ocwUiApp') -.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]); - }; -}); http://git-wip-us.apache.org/repos/asf/climate/blob/652ea657/ocw-ui/frontend-new/app/scripts/services/evaluationsettings.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/services/evaluationsettings.js b/ocw-ui/frontend-new/app/scripts/services/evaluationsettings.js deleted file mode 100644 index b53842c..0000000 --- a/ocw-ui/frontend-new/app/scripts/services/evaluationsettings.js +++ /dev/null @@ -1,56 +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'; - -/** - * @ngdoc service - * @name ocwUiApp.evaluationSettings - * @description - * # evaluationSettings - * Service in the ocwUiApp. - */ -angular.module('ocwUiApp') - .service('evaluationSettings', function($rootScope, $http) { - $http.get($rootScope.baseURL + '/processing/metrics/').then(function(data) { - var metrics_data = data['data']['metrics']; - var metrics = []; - - for (var i = 0; i < metrics_data.length; ++i) { - metrics.push({'name': metrics_data[i], 'select': false}); - } - - settings['metrics'] = metrics; - }); - - var settings = { - 'metrics': [], - 'temporal': { - 'options': ['daily', 'monthly', 'yearly'], - 'selected': 'yearly', - }, - 'spatialSelect': null, - }; - - return { - getSettings: function() { - return settings; - } - }; - }); http://git-wip-us.apache.org/repos/asf/climate/blob/652ea657/ocw-ui/frontend-new/app/scripts/services/regionselectparams.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/services/regionselectparams.js b/ocw-ui/frontend-new/app/scripts/services/regionselectparams.js deleted file mode 100644 index cb3f4f8..0000000 --- a/ocw-ui/frontend-new/app/scripts/services/regionselectparams.js +++ /dev/null @@ -1,46 +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'; - -/** - * @ngdoc service - * @name ocwUiApp.regionSelectParams - * @description - * # regionSelectParams - * Service in the ocwUiApp. - */ -angular.module('ocwUiApp') -.service('regionSelectParams', function() { - var parameters = { - "areValid" : true, - "latMin" : "", - "latMax" : "", - "lonMin" : "", - "lonMax" : "", - "start" : "", - "end" : "", - }; - - return { - getParameters: function() { - return parameters; - }, - }; -}); http://git-wip-us.apache.org/repos/asf/climate/blob/652ea657/ocw-ui/frontend-new/app/scripts/services/selecteddatasetinformation.js ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/scripts/services/selecteddatasetinformation.js b/ocw-ui/frontend-new/app/scripts/services/selecteddatasetinformation.js deleted file mode 100644 index 613cfb8..0000000 --- a/ocw-ui/frontend-new/app/scripts/services/selecteddatasetinformation.js +++ /dev/null @@ -1,57 +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'; - -/** - * @ngdoc service - * @name ocwUiApp.selectedDatasetInformation - * @description - * # selectedDatasetInformation - * Service in the ocwUiApp. - */ -angular.module('ocwUiApp') -.service('selectedDatasetInformation', function() { - var datasets = []; - - return { - getDatasets: function() { - return datasets; - }, - getDatasetCount: function() { - return datasets.length; - }, - // TODO: Define the structure of the objects that are added with addDataset. - addDataset: function(dataset) { - // All datasets need a shouldDisplay attribute that is used when rendering - // the overlays on the map! - dataset.shouldDisplay = false; - // The regrid attribute indicates which dataset should be used for spatial regridding - dataset.regrid = false; - - datasets.push(dataset); - }, - removeDataset: function(index) { - datasets.splice(index, 1); - }, - clearDatasets: function() { - datasets.length = 0; - }, - }; -}); http://git-wip-us.apache.org/repos/asf/climate/blob/652ea657/ocw-ui/frontend-new/app/styles/main.css ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/styles/main.css b/ocw-ui/frontend-new/app/styles/main.css deleted file mode 100644 index fb42ccd..0000000 --- a/ocw-ui/frontend-new/app/styles/main.css +++ /dev/null @@ -1,120 +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. - */ - -body { - -} - -#header-img { - -} - -#header-title { - -} - -#OCW-powered { - -} - -#main-container { - margin-top: 20px; - min-height: 400px; - height: auto !important; - height: 400px; -} - -#datasetDiv { - height: 750px; - overflow-y: auto; - overflow-x: hidden; -} - -#ocw-navbar { - margin-bottom: 0; -} - -#map { height: 500px; } - -/* Small preview map that is displayed alongside dataset information */ -.preview-map { - height: 100px; - width: 100px; -} - -.small-alert { - font-size: 12px; - color: green; - margin-top: 4px; - margin-left: 10px; -} - -.colorSquare { - margin-top: 3px; - height: 10px; - width: 10px; -} - -ul { list-style-type: none; } - -.no-color-link { color: #000000; } -.no-color-link:hover { color: #000000; text-decoration: none; } -.no-color-link:visited { color: #000000; } -.no-color-link:active { color: #000000; } - -/* Remove the grayed out close button in modal headers */ -.modal-header .close { opacity: 1; } - -/* Remove the grayed out close button in modal footers */ -.modal-footer .close { opacity: 1; } - -/** - * Timeline - */ -div#OCWtimeline { - margin-top: 20px; - padding-bottom: 20px; -} - -div.timeline-event { - border: none; - background: none; -} - -div.timeline-event-content { margin: 0; } - -div.ocw-bar { height: 5px; } - -/** - * Results - */ -#results-sidebar { - min-height: 400px; - height: auto !important; - height: 400px; -} - -#results-sidebar-header { font-size: 14px; } - -/* Helpers for vertical offsets */ -.top3 { margin-top: 3%; } -.top7 { margin-top: 7%; } -.top14 { margin-top:14%; } -.top21 { margin-top:21%; } -.top42 { margin-top:42%; } http://git-wip-us.apache.org/repos/asf/climate/blob/652ea657/ocw-ui/frontend-new/app/views/main.html ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/views/main.html b/ocw-ui/frontend-new/app/views/main.html deleted file mode 100644 index 2f428e5..0000000 --- a/ocw-ui/frontend-new/app/views/main.html +++ /dev/null @@ -1,274 +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. ---> - -<!-- Modal for evaluation settings --> -<div class="modal fade" id="evaluationSettingsModal" role="dialog" aria-labelledby="datasetSelectModalLabel" aria-hidden="true"> - <div class="modal-dialog"> - <div class="modal-content"> - <div class="modal-header"> - <button class="close" data-dismiss="modal">×</button> - <h3>Settings</h3> - </div> - <div class="modal-body" ng-controller="SettingsCtrl"> - <h4>Select the metrics you would like to run.</h4> - <div ng-repeat="metric in settings.metrics"> - <label><input type="checkbox" ng-model="metric.select"> {{metric.name}}</label> - </div> - <hr /> - <h4>Select how you would like to temporally re-grid the datasets.</h4> - <select class="form-control" ng-model="settings.temporal.selected" ng-options="opt for opt in settings.temporal.options"></select> - <hr /> - <h4>Select which dataset to use as the reference.</h4> - <select class="form-control" ng-model="settings.spatialSelect" ng-options="dataset as dataset.name for dataset in datasets"></select> - <hr /> - <!-- Temporarily hidden for work on CLIMATE-365.--> - <div ng-hide=true> - <h4>Select a file which will define the bounds of subregions.</h4> - <form class="form-inline" autocomplete="off"> - <input id="subregionFileInput" predictive-file-browser-input ng-model="settings.subregionFile" type="text" class="input-xlarge" autocomplete="off" /> - </form> - </div> - <!--End hidden section for CLIMATE-365--> - </div> - <div class="modal-footer"> - <button class="btn btn-warning cancel" data-dismiss="modal">Close</button> - </div> - </div> - </div> -</div> -<!-- END - Modal for evaluation settings --> - -<div class="row"> - <div class="col-md-12"> - <div class="row"> - <!-- Dataset Select and Display Column --> - <div class="col-md-6"> - <!--Dataset Select Controls--> - <div ng-controller="DatasetSelectCtrl"> - <div class="row"> - <div class="col-md-1 col-md-offset-10"> - <button class="btn btn-link no-color-link" ng-click="clearDatasets()" ng-disabled="shouldDisableClearButton()"> - <span tooltip-placement="left" tooltip-popup-delay="700" tooltip="Clear Datasets"> - <i class="fa fa-trash-o fa-2x"></i> - </span> - </button> - </div> - <div class="col-md-1"> - <button class="btn btn-link no-color-link" data-toggle="modal" data-target="#datasetSelect"> - <span tooltip-placement="left" tooltip-popup-delay="700" tooltip="Add Dataset"> - <i class="fa fa-plus fa-2x"></i> - </span> - </button> - </div> - </div> - <!-- Modal for dataset selection --> - <div class="modal fade" id="datasetSelect" role="dialog" aria-labelledby="datasetSelectModalLabel" aria-hidden="true"> - <div class="modal-dialog"> - <div class="modal-content"> - <div class="modal-header"> - <h3>Dataset Select</h3> - </div> - <div class="modal-body"> - <tabset> - <tab ng-repeat="tab in templates" heading="{{tab.title}}" active="tab.active" disabled="tab.disabled"> - <div ng-include src="tab.url"></div> - </tab> - <li class="pull-right">Queued Datasets: {{datasetCount.length}}</li> - </tabset> - </div> - <div class="modal-footer"> - <button class="btn btn-warning cancel" data-dismiss="modal">Close</button> - </div> - </div> - </div> - </div> - <!-- END - Modal for dataset selection --> - <div class="row"> - <div class="col-md-12"> - <hr /> - </div> - </div> - </div> - <!--Dataset display--> - <div ng-controller="DatasetDisplayCtrl" id="datasetDiv"> - <div ng-repeat="dataset in datasets"> - <div class="row"> - <!--Data section--> - <div class="col-md-8 col-md-offset-1 muted"> - {{dataset.name}} - </div> - <div class="col-md-1 col-md-offset-2"> - <span tooltip-placement="left" tooltip-popup-delay="700" tooltip="Remove Dataset"> - <a class="no-color-link" href="#" ng-click="removeDataset($index)"> - <i class="fa fa-remove"></i> - </a> - </span> - </div> - </div> - <!--Time Values!--> - <div class="row"> - <!--Dataset Info Section--> - <div class="col-md-9"> - <div class="row"> - <div class="col-md-2 col-md-offset-1 text-center">Start:</div> - <div class="col-md-2"> - <div class="col-md-2 text-center">{{dataset.timeVals.start | ISODateToMiddleEndian}}</div> - </div> - <div class="col-md-2 text-center">End:</div> - <div class="col-md-2"> - <div class="col-md-2 text-center">{{dataset.timeVals.end | ISODateToMiddleEndian}}</div> - </div> - </div> - <!--Lat/Long Values!--> - <div class="row"> - <div class="col-md-2 col-md-offset-1 text-center">North:</div> - <div class="col-md-2 text-center"> - {{dataset.latlonVals.latMax | number:2}} - </div> - <div class="col-md-2 text-center">West:</div> - <div class="col-md-2 text-center"> - {{dataset.latlonVals.lonMin | number:2}} - </div> - </div> - <div class="row"> - <div class="col-md-2 col-md-offset-1 text-center">South:</div> - <div class="col-md-2 text-center"> - {{dataset.latlonVals.latMin | number:2}} - </div> - <div class="col-md-2 text-center">East:</div> - <div class="col-md-2 text-center"> - {{dataset.latlonVals.lonMax | number:2}} - </div> - </div> - </div> - <!--Preview Map Section--> - <div class="col-md-3"> - <!--If the dataset is global we show a picture of a globe instead of the actual map--> - <div ng-hide="dataset.latlonVals.lonMin == -180 && dataset.latlonVals.lonMax == 180 && - dataset.latlonVals.latMin == -90 && dataset.latlonVals.latMax == 90" - preview-map="dataset" index="$index"></div> - <div ng-show="dataset.latlonVals.lonMin == -180 && dataset.latlonVals.lonMax == 180 && - dataset.latlonVals.latMin == -90 && dataset.latlonVals.latMax == 90"> - <img src="img/globe.png" class="preview-map"> - </div> - </div> - </div> - <div class="row"> - <div class="col-md-6 col-md-offset-3"><hr /></div> - </div> - </div> - </div> - </div> - - <!-- Map, Timeline, and Parameter Control Column --> - <div class="col-md-6"> - <!--Map--> - <div class="row" ng-controller="WorldMapCtrl"> - <div class="col-md-12"> - <leaflet-map id="map"></leaflet-map> - </div> - </div> - - <!--Timeline--> - <div class="row"> - <div class="col-md-12" ng-controller="TimelineCtrl"> - <div class="timeline"></div> - </div> - </div> - - <div class="row"> - <div class="col-md-12" ng-controller="ParameterSelectCtrl"> - <div class="row top3"> - <div class="col-md-2 text-center">Start Date:</div> - <div class="col-md-4"> - <form> - <!--This styling HAD to be done inline. Using a class wouldn't work and for some --> - <!--reason the input boxes refused to be 100% wide when their span size was set.--> - <input ng-disabled="shouldDisableControls()" on-blur="checkParameters();" ng-model="displayParams.start" ui-date="datepickerSettings" ui-date-format="yy-mm-dd" type="text" class="col-md-4 text-center" style="width:100%" /> - </form> - </div> - <div class="col-md-2 text-center">End Date:</div> - <div class="col-md-4"> - <form> - <!--This styling HAD to be done inline. Using a class wouldn't work and for some --> - <!--reason the input boxes refused to be 100% wide when their span size was set.--> - <input ng-disabled="shouldDisableControls()" on-blur="checkParameters();" ng-model="displayParams.end" ui-date="datepickerSettings" ui-date-format="yy-mm-dd" type="text" class="col-md-4 text-center" style="width:100%"/> - </form> - </div> - </div> - <div class="row top3"> - <div class="col-md-2 text-center">North:</div> - <div class="col-md-4"> - <form action=""> - <input ng-disabled="shouldDisableControls()" ng-model="displayParams.latMax" on-blur="checkParameters();" type="text" class="col-md-4 text-center" style="width:100%"/> - </form> - </div> - <div class="col-md-2 text-center">South:</div> - <div class="col-md-4"> - <form action=""> - <!--This styling HAD to be done inline. Using a class wouldn't work and for some --> - <!--reason the input boxes refused to be 100% wide when their span size was set.--> - <input ng-disabled="shouldDisableControls()" ng-model="displayParams.latMin" on-blur="checkParameters();" type="text" class="col-md-4 text-center" style="width:100%"/> - </form> - </div> - </div> - <div class="row top3"> - <div class="col-md-2 text-center">East:</div> - <div class="col-md-4"> - <form> - <!--This styling HAD to be done inline. Using a class wouldn't work and for some --> - <!--reason the input boxes refused to be 100% wide when their span size was set.--> - <input ng-disabled="shouldDisableControls()" ng-model="displayParams.lonMax" on-blur="checkParameters();" type="text" class="col-md-4 text-center" style="width:100%"/> - </form> - </div> - <div class="col-md-2 text-center">West:</div> - <div class="col-md-4"> - <form> - <!--This styling HAD to be done inline. Using a class wouldn't work and for some --> - <!--reason the input boxes refused to be 100% wide when their span size was set.--> - <input ng-disabled="shouldDisableControls()" ng-model="displayParams.lonMin" on-blur="checkParameters();"; type="text" class="col-md-4 text-center" style="width:100%"/> - </form> - </div> - </div> - <div class="row top3"> - <div class="col-md-2 col-md-offset-6"> - <!--<button class="btn btn-link no-color-link pull-right" bootstrap-modal-open="evaluationSettings">--> - <button class="btn btn-link no-color-link pull-right" data-toggle="modal" data-target="#evaluationSettingsModal"> - <span tooltip-placement="left" tooltip-popup-delay="700" tooltip="Settings"> - <span class="fa-stack fa-lg"> - <i class="fa fa-square-o fa-stack-2x"></i> - <i class="fa fa-cogs fa-stack-1x"></i> - </span> - </span> - </button> - </div> - <div class="col-md-4"> - <button ng-click="runEvaluation()" ng-disabled="shouldDisableEvaluateButton()" class="btn btn-block btn-primary"> - <div ng-hide="runningEval">Evaluate</div> - <div ng-show="runningEval"><i class="fa fa-spinner fa-spin"></i></div> - </button> - </div> - </div> - </div> - </div> - </div> - </div> - </div> -</div> - http://git-wip-us.apache.org/repos/asf/climate/blob/652ea657/ocw-ui/frontend-new/app/views/modelselect.html ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/views/modelselect.html b/ocw-ui/frontend-new/app/views/modelselect.html deleted file mode 100644 index 9bc128f..0000000 --- a/ocw-ui/frontend-new/app/views/modelselect.html +++ /dev/null @@ -1,87 +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. ---> - -<div class="container"> - <div class="row"> - <div class="span10 offset1 columns"> - <div class="row"> - <div class="span10"> - <center> - <form id="modelSelectorForm"> - <input type="file" name="modelSelector"> - </form> - </center> - </div> - </div> - <div class="row"> - <div class="span10 offset2"> - <form class="form-horizontal" id="parameterSelectorForm"> - <div class="control-group"> - <label class="control-label" for="paramSelect">Parameter Value</label> - <div class="controls"> - <select id="paramSelect"> - <option ng-repeat="param in modelParameters"> - {{param.text}} - </option> - </select> - </div> - </div> - <div class="control-group"> - <label class="control-label" for="latSelect">Latitude Variable</label> - <div class="controls"> - <select id="latSelect"> - <option ng-repeat="lat in latVariables"> - {{lat.text}} - </option> - </select> - </div> - </div> - <div class="control-group"> - <label class="control-label" for="lonSelect">Longitude Variable</label> - <div class"controls"> - <select id="lonSelect"> - <option ng-repeat="lon in lonVariables"> - {{lon.text}} - </option> - </select> - </div> - </div> - <div class="control-group"> - <label class="control-label" for="dateTimeSelect">Date/Time Variable</label> - <div class="controls"> - <select id="dateTimeSelect"> - <option ng-repeat="dateTime in dateTimeVariables"> - {{dateTime.text}} - </option> - </select> - </div> - </div> - <div class="control-group"> - <div class="controls"> - <button type="submit" class="btn btn-warn">Cancel</button> - <button type="submit" class="btn">Add Model</button> - </div> - </div> - </form> - </div> - </div> - </div> - </div> -</div> - http://git-wip-us.apache.org/repos/asf/climate/blob/652ea657/ocw-ui/frontend-new/app/views/results.html ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/views/results.html b/ocw-ui/frontend-new/app/views/results.html deleted file mode 100644 index 432bba1..0000000 --- a/ocw-ui/frontend-new/app/views/results.html +++ /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. ---> - -<div class="row"> - <div class="col-md-3"> - <div id="results-sidebar" class="pa-sidebar well well-small"> - <ul class="nav nav-list"> - <li id="results-sidebar-header" class="nav-header">Latest Run Results</li> - <li ng-repeat="result in results" - ng-class="{ active: $state.includes('results.detail') && $stateParams.resultId == result }"> - <a href="#/results/{{result.replace('/', '')}}" >{{result}}</a> - </li> - </ul> - <div ui-view="menu"></div> - </div> - </div> - <div class="col-md-9" ui-view ng-animate="{enter:'fade-enter'}"></div> -</div> http://git-wip-us.apache.org/repos/asf/climate/blob/652ea657/ocw-ui/frontend-new/app/views/resultsdetail.html ---------------------------------------------------------------------- diff --git a/ocw-ui/frontend-new/app/views/resultsdetail.html b/ocw-ui/frontend-new/app/views/resultsdetail.html deleted file mode 100644 index 4083ff3..0000000 --- a/ocw-ui/frontend-new/app/views/resultsdetail.html +++ /dev/null @@ -1,30 +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. ---> - -<div> - <h2>{{result}}</h2> - <div class="row text-center"> - <div class="{{alertClass}}">{{alertMessage}}</div> - <ul> - <li ng-repeat="figure in figures"> - <img class="img-responsive" ng-src="{{baseURL}}/static/eval_results/{{figure}}" alt="" /> - </li> - </ul> - </div> -</div>
