Repository: ambari Updated Branches: refs/heads/trunk aa3b00d9c -> d3e0602c4
AMBARI-5102. Mirroring: instance table should be shown most recent first. (akovalenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d3e0602c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d3e0602c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d3e0602c Branch: refs/heads/trunk Commit: d3e0602c49aa3f65453cbec2a523387cd8bca382 Parents: aa3b00d Author: Aleksandr Kovalenko <[email protected]> Authored: Mon Mar 17 14:19:36 2014 +0200 Committer: Aleksandr Kovalenko <[email protected]> Committed: Mon Mar 17 14:45:54 2014 +0200 ---------------------------------------------------------------------- .../main/mirroring/edit_dataset_controller.js | 2 +- .../controllers/main/mirroring_controller.js | 40 ++++++++++---------- ambari-web/app/views/common/sort_view.js | 17 +++++++++ ambari-web/app/views/common/table_view.js | 2 +- .../app/views/main/mirroring/jobs_view.js | 12 +++++- 5 files changed, 51 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/d3e0602c/ambari-web/app/controllers/main/mirroring/edit_dataset_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/mirroring/edit_dataset_controller.js b/ambari-web/app/controllers/main/mirroring/edit_dataset_controller.js index 224583b..cbf21d1 100644 --- a/ambari-web/app/controllers/main/mirroring/edit_dataset_controller.js +++ b/ambari-web/app/controllers/main/mirroring/edit_dataset_controller.js @@ -199,7 +199,7 @@ App.MainMirroringEditDataSetController = Ember.Controller.extend({ // Convert date to TZ format toTZFormat: function (date) { - return date.getFullYear() + '-' + this.addZero(date.getMonth() + 1) + '-' + this.addZero(date.getDate()) + 'T' + this.addZero(date.getHours()) + ':' + this.addZero(date.getMinutes()) + 'Z'; + return date.toISOString().replace(/\:\d{2}\.\d{3}/,''); }, // Converts hours value from 24-hours format to AM/PM format http://git-wip-us.apache.org/repos/asf/ambari/blob/d3e0602c/ambari-web/app/controllers/main/mirroring_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/mirroring_controller.js b/ambari-web/app/controllers/main/mirroring_controller.js index e7e9a51..dd8cdf0 100644 --- a/ambari-web/app/controllers/main/mirroring_controller.js +++ b/ambari-web/app/controllers/main/mirroring_controller.js @@ -139,18 +139,23 @@ App.MainMirroringController = Em.ArrayController.extend({ instances: [] }) ); - App.ajax.send({ - name: 'mirroring.dataset.get_all_instances', - sender: this, - data: { - dataset: parsedData.feed['@attributes'].name, - start: sourceCluster.validity['@attributes'].start, - end: sourceCluster.validity['@attributes'].end, - falconServer: App.get('falconServerURL') - }, - success: 'onLoadDatasetInstancesSuccess', - error: 'onLoadDatasetsInstancesError' - }); + var currentDate = new Date(App.dateTime()); + if (currentDate > new Date(sourceCluster.validity['@attributes'].start)) { + App.ajax.send({ + name: 'mirroring.dataset.get_all_instances', + sender: this, + data: { + dataset: parsedData.feed['@attributes'].name, + start: sourceCluster.validity['@attributes'].start, + end: App.router.get('mainMirroringEditDataSetController').toTZFormat(currentDate), + falconServer: App.get('falconServerURL') + }, + success: 'onLoadDatasetInstancesSuccess', + error: 'onLoadDatasetsInstancesError' + }); + } else { + this.saveDataset(); + } }, onLoadDatasetDefinitionError: function () { @@ -173,8 +178,6 @@ App.MainMirroringController = Em.ArrayController.extend({ }); }, this); datasetsData.findProperty('name', opts.dataset).set('instances', datasetJobs); - } else { - datasetsData.findProperty('name', opts.dataset).set('instances', []); } this.saveDataset(); }, @@ -194,8 +197,6 @@ App.MainMirroringController = Em.ArrayController.extend({ onLoadDatasetsInstancesError: function () { console.error('Failed to load dataset instances.'); - var datasetName = arguments[4].dataset; - this.get('datasetsData').findProperty('name', datasetName).set('instances', []); this.saveDataset(); }, @@ -235,14 +236,15 @@ App.MainMirroringController = Em.ArrayController.extend({ }, this); } else { var defaultFS = this.loadDefaultFS(); + var clusterName = App.get('clusterName'); var sourceCluster = Ember.Object.create({ - name: App.get('clusterName'), + name: clusterName, execute: App.HostComponent.find().findProperty('componentName', 'RESOURCEMANAGER').get('host.hostName') + ':8050', readonly: 'hftp://' + App.HostComponent.find().findProperty('componentName', 'NAMENODE').get('host.hostName') + ':50070', workflow: 'http://' + App.HostComponent.find().findProperty('componentName', 'OOZIE_SERVER').get('host.hostName') + ':11000/oozie', write: defaultFS, - staging: '/apps/falcon/sandbox/staging', - working: '/apps/falcon/sandbox/working', + staging: '/apps/falcon/' + clusterName + '/staging', + working: '/apps/falcon/' + clusterName + '/working', temp: '/tmp' }); var sourceClusterData = App.router.get('mainMirroringManageClustersController').formatClusterXML(sourceCluster); http://git-wip-us.apache.org/repos/asf/ambari/blob/d3e0602c/ambari-web/app/views/common/sort_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/common/sort_view.js b/ambari-web/app/views/common/sort_view.js index 3d970d6..690d9d1 100644 --- a/ambari-web/app/views/common/sort_view.js +++ b/ambari-web/app/views/common/sort_view.js @@ -98,6 +98,23 @@ var wrapperView = Em.View.extend({ this.set('content', content); } }, + + isSorting: false, + + onContentChange: function () { + if (!this.get('isSorting') && this.get('content.length')) { + this.get('childViews').forEach(function (view) { + if (view.status !== 'sorting') { + var status = view.get('status'); + this.set('isSorting', true); + this.sort(view, status == 'sorting_desc'); + this.set('isSorting', false); + view.set('status', status); + } + }, this); + } + }.observes('content.length'), + /** * reset all sorts fields */ http://git-wip-us.apache.org/repos/asf/ambari/blob/d3e0602c/ambari-web/app/views/common/table_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/common/table_view.js b/ambari-web/app/views/common/table_view.js index faa56d5..4e4eb90 100644 --- a/ambari-web/app/views/common/table_view.js +++ b/ambari-web/app/views/common/table_view.js @@ -353,7 +353,7 @@ App.TableView = Em.View.extend(App.UserPref, { } else { this.set('filteredContent', content.toArray()); } - }.observes('content'), + }.observes('content.length'), /** * Does any filter is used on the page http://git-wip-us.apache.org/repos/asf/ambari/blob/d3e0602c/ambari-web/app/views/main/mirroring/jobs_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/mirroring/jobs_view.js b/ambari-web/app/views/main/mirroring/jobs_view.js index b8f1bfa..f4a0661 100644 --- a/ambari-web/app/views/main/mirroring/jobs_view.js +++ b/ambari-web/app/views/main/mirroring/jobs_view.js @@ -37,7 +37,17 @@ App.MainDatasetJobsView = App.TableView.extend({ return this.get('controller.content'); }.property('controller.content'), - sortView: sort.wrapperView, + sortView: sort.wrapperView.extend({ + loadSortStatuses: function(){ + this._super(); + var statuses = App.db.getSortingStatuses(this.get('controller.name')); + if (!statuses || statuses.everyProperty('status', 'sorting')) { + var sorting = this.get('childViews').findProperty('name', 'startDate'); + this.sort(sorting, true); + sorting.set('status', 'sorting_desc'); + } + }.observes('parentView.filteringComplete') + }), idSort: sort.fieldView.extend({ column: 1, name: 'name',
