2017-02-13 14:17:49 -08:00
|
|
|
import Ember from 'ember';
|
|
|
|
|
2017-09-18 16:31:47 -07:00
|
|
|
const { Controller, computed, get, set, String: { capitalize } } = Ember;
|
2017-03-24 20:59:43 -07:00
|
|
|
|
2017-09-18 16:31:47 -07:00
|
|
|
const sources = ['all', 'dali', 'espresso', 'hive', 'hdfs', 'kafka', 'oracle', 'teradata', 'voldemort'];
|
2017-03-24 20:59:43 -07:00
|
|
|
|
|
|
|
export default Controller.extend({
|
2017-09-18 16:31:47 -07:00
|
|
|
queryParams: ['keyword', 'category', 'source', 'page'],
|
2017-03-24 20:59:43 -07:00
|
|
|
keyword: '',
|
|
|
|
category: 'datasets',
|
|
|
|
source: 'all',
|
|
|
|
page: 1,
|
2017-09-18 16:31:47 -07:00
|
|
|
header: 'Refine By',
|
2017-03-24 20:59:43 -07:00
|
|
|
|
2017-09-18 16:31:47 -07:00
|
|
|
sources: computed('source', function() {
|
2017-03-24 20:59:43 -07:00
|
|
|
return sources.map(source => ({
|
|
|
|
name: 'source',
|
|
|
|
value: source,
|
|
|
|
label: capitalize(source),
|
|
|
|
group: String(get(this, 'source')).toLowerCase()
|
2017-09-18 16:31:47 -07:00
|
|
|
}));
|
2017-03-24 20:59:43 -07:00
|
|
|
}),
|
|
|
|
|
|
|
|
isMetric: false,
|
|
|
|
|
2017-09-18 16:31:47 -07:00
|
|
|
datasetTitle: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.source) {
|
|
|
|
if (model.source.toLocaleLowerCase() != 'all') {
|
|
|
|
return model.source;
|
|
|
|
}
|
|
|
|
}
|
2017-09-18 16:31:47 -07:00
|
|
|
return 'Datasets';
|
2017-02-13 14:17:49 -08:00
|
|
|
}.property('model.source'),
|
2017-09-18 16:31:47 -07:00
|
|
|
isDatasets: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.category) {
|
|
|
|
if (model.category.toLocaleLowerCase() === 'datasets') {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}.property('model.category'),
|
2017-09-18 16:31:47 -07:00
|
|
|
isComments: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.category) {
|
|
|
|
if (model.category.toLocaleLowerCase() === 'comments') {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}.property('model.category'),
|
2017-09-18 16:31:47 -07:00
|
|
|
isMetrics: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.category) {
|
|
|
|
if (model.category.toLocaleLowerCase() === 'metrics') {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}.property('model.category'),
|
2017-09-18 16:31:47 -07:00
|
|
|
isFlows: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.category) {
|
|
|
|
if (model.category.toLocaleLowerCase() === 'flows') {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}.property('model.category'),
|
2017-09-18 16:31:47 -07:00
|
|
|
isJobs: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.category) {
|
|
|
|
if (model.category.toLocaleLowerCase() === 'jobs') {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}.property('model.category'),
|
2017-09-18 16:31:47 -07:00
|
|
|
previousPage: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.page) {
|
|
|
|
var currentPage = model.page;
|
|
|
|
if (currentPage <= 1) {
|
|
|
|
return currentPage;
|
2017-09-18 16:31:47 -07:00
|
|
|
} else {
|
2017-02-13 14:17:49 -08:00
|
|
|
return currentPage - 1;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}.property('model.page'),
|
2017-09-18 16:31:47 -07:00
|
|
|
nextPage: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.page) {
|
|
|
|
var currentPage = model.page;
|
|
|
|
var totalPages = model.totalPages;
|
|
|
|
if (currentPage >= totalPages) {
|
|
|
|
return totalPages;
|
2017-09-18 16:31:47 -07:00
|
|
|
} else {
|
2017-02-13 14:17:49 -08:00
|
|
|
return currentPage + 1;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}.property('model.page'),
|
2017-09-18 16:31:47 -07:00
|
|
|
first: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.page) {
|
|
|
|
var currentPage = model.page;
|
|
|
|
if (currentPage <= 1) {
|
|
|
|
return true;
|
2017-09-18 16:31:47 -07:00
|
|
|
} else {
|
|
|
|
return false;
|
2017-02-13 14:17:49 -08:00
|
|
|
}
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}.property('model.page'),
|
2017-09-18 16:31:47 -07:00
|
|
|
last: function() {
|
|
|
|
var model = this.get('model');
|
2017-02-13 14:17:49 -08:00
|
|
|
if (model && model.page) {
|
|
|
|
var currentPage = model.page;
|
|
|
|
var totalPages = model.totalPages;
|
|
|
|
if (currentPage >= totalPages) {
|
|
|
|
return true;
|
2017-09-18 16:31:47 -07:00
|
|
|
} else {
|
|
|
|
return false;
|
2017-02-13 14:17:49 -08:00
|
|
|
}
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}.property('model.page'),
|
2017-03-24 20:59:43 -07:00
|
|
|
|
2017-02-13 14:17:49 -08:00
|
|
|
actions: {
|
2017-03-24 20:59:43 -07:00
|
|
|
sourceDidChange(groupName, value) {
|
|
|
|
set(this, groupName, value);
|
2017-02-13 14:17:49 -08:00
|
|
|
},
|
2017-03-24 20:59:43 -07:00
|
|
|
|
|
|
|
startDateDidChange(date = null) {
|
|
|
|
set(this, 'startDate', date);
|
2017-02-13 14:17:49 -08:00
|
|
|
},
|
2017-03-24 20:59:43 -07:00
|
|
|
|
|
|
|
endDateDidChange(date = null) {
|
|
|
|
set(this, 'endDate', date);
|
2017-02-13 14:17:49 -08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|