Filtering and preloading

This commit is contained in:
2018-11-20 12:14:08 -03:00
parent 262d0b5590
commit 3bd7c06e60
6 changed files with 30 additions and 15 deletions
+2 -1
View File
@@ -3,7 +3,8 @@ import Ember from 'ember'
export default Ember.Controller.extend export default Ember.Controller.extend
session: Ember.inject.service('session') session: Ember.inject.service('session')
filters: {filter_calls: 0} # will be overwritten in route #filters: {filter_calls: 0} # will be overwritten in route
#filters: Ember.computed.alias 'model.project_instance_actions.filters'
scope_project: null scope_project: null
scope_scenario: null scope_scenario: null
scope_organization: null scope_organization: null
-3
View File
@@ -5,9 +5,6 @@ import Ember from 'ember';
export default Ember.Controller.extend({ export default Ember.Controller.extend({
session: Ember.inject.service('session'), session: Ember.inject.service('session'),
filters: {
filter_calls: 0
},
scope_project: null, scope_project: null,
scope_scenario: null, scope_scenario: null,
scope_organization: null, scope_organization: null,
@@ -61,9 +61,7 @@ Model = {
dependent_workflow_action_offsets: DS.hasMany('panda/workflow-action-offset', { dependent_workflow_action_offsets: DS.hasMany('panda/workflow-action-offset', {
inverse: 'base_workflow_action_definition' inverse: 'base_workflow_action_definition'
}), }),
project_scenarios: DS.hasMany('panda/project-scenario', { project_scenarios: DS.hasMany('panda/project-scenario'),
inverse: null
}),
project_instance_actions: DS.hasMany('panda/project-instance-action', { project_instance_actions: DS.hasMany('panda/project-instance-action', {
inverse: 'workflow_action_definition' inverse: 'workflow_action_definition'
}), }),
+10 -4
View File
@@ -1,6 +1,7 @@
import Ember from 'ember' import Ember from 'ember'
import PagedRemoteArray from 'ember-cli-dunlop/utils/paged-remote-array' import PagedRemoteArray from 'ember-cli-dunlop/utils/paged-remote-array'
export filters = Ember.Object.create {get} = Ember
export default_filters = Ember.Object.create
filter_calls: 0 filter_calls: 0
workflow_action_definition_identifier_in: [] workflow_action_definition_identifier_in: []
project_instance_group_workflow_group_id: '' project_instance_group_workflow_group_id: ''
@@ -26,11 +27,16 @@ export default Ember.Route.extend
perPage: {refreshModel: true} perPage: {refreshModel: true}
organization_id: {refreshModel: true} organization_id: {refreshModel: true}
modelName: 'panda/project-instance-action' modelName: 'panda/project-instance-action'
setupController: (controller) -> setupController: (controller, model) ->
controller.set 'filters', filters controller.set('filters', model.project_instance_actions.get('filters'))
@_super arguments... @_super(arguments...)
model: (params) -> model: (params) ->
scope_key = 'panda/action-list'
if user_default = @store.peekAll('dunlop/user-filter').find((r) -> r.get('scope_key') is scope_key and r.get('is_default'))
filters = Ember.Object.create(user_default.get('filters'))
else
filters = default_filters
#@store.findAll('epots/migration-window-planning') #@store.findAll('epots/migration-window-planning')
#includes = [ #includes = [
# 'workflow_action_definition.~workflow_action_connections' # 'workflow_action_definition.~workflow_action_connections'
+16 -3
View File
@@ -1,9 +1,13 @@
// Generated by CoffeeScript 1.12.5 // Generated by CoffeeScript 1.12.5
var get;
import Ember from 'ember'; import Ember from 'ember';
import PagedRemoteArray from 'ember-cli-dunlop/utils/paged-remote-array'; import PagedRemoteArray from 'ember-cli-dunlop/utils/paged-remote-array';
export var filters = Ember.Object.create({ get = Ember.get;
export var default_filters = Ember.Object.create({
filter_calls: 0, filter_calls: 0,
workflow_action_definition_identifier_in: [], workflow_action_definition_identifier_in: [],
project_instance_group_workflow_group_id: '', project_instance_group_workflow_group_id: '',
@@ -41,11 +45,20 @@ export default Ember.Route.extend({
} }
}, },
modelName: 'panda/project-instance-action', modelName: 'panda/project-instance-action',
setupController: function(controller) { setupController: function(controller, model) {
controller.set('filters', filters); controller.set('filters', model.project_instance_actions.get('filters'));
return this._super.apply(this, arguments); return this._super.apply(this, arguments);
}, },
model: function(params) { model: function(params) {
var filters, scope_key, user_default;
scope_key = 'panda/action-list';
if (user_default = this.store.peekAll('dunlop/user-filter').find(function(r) {
return r.get('scope_key') === scope_key && r.get('is_default');
})) {
filters = Ember.Object.create(user_default.get('filters'));
} else {
filters = default_filters;
}
if (params.state) { if (params.state) {
filters.set('state_in', params.state.split(',')); filters.set('state_in', params.state.split(','));
} }
+1 -1
View File
@@ -35,7 +35,7 @@ table.ui.attached.stiped.sortable.table
= sortable-table-header filters=filters key='inquiry_at' model=model.project_instance_actions defaultDirection='desc' = sortable-table-header filters=filters key='inquiry_at' model=model.project_instance_actions defaultDirection='desc'
= t 'attributes.project_instance_action.inquiry_at' = t 'attributes.project_instance_action.inquiry_at'
th= t 'attributes.project_instance_action.value' th= t 'attributes.project_instance_action.value'
table-filters content=model.project_instance_actions filters=filters apply_filters=(action 'apply_filters') as |filter| table-filters content=model.project_instance_actions apply_filters=(action 'apply_filters') as |filter|
= filter.dropdown-select-multiple key='workflow_action_definition_organization_id_in' options=model.organizations labelPath='name' = filter.dropdown-select-multiple key='workflow_action_definition_organization_id_in' options=model.organizations labelPath='name'
= filter.dropdown-select-multiple key='project_id_in' options=sorted_projects labelPath='name' = filter.dropdown-select-multiple key='project_id_in' options=sorted_projects labelPath='name'
if (and scope_project scope_project.isLoaded) if (and scope_project scope_project.isLoaded)