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