import Ember from 'ember' import config from 'ember-get-config' export default Ember.Controller.extend session: Ember.inject.service('session') filters: {} scope_project: null scope_scenario: null scope_organization: null filter_query: Ember.computed 'filters.filter_calls', -> @get('filters')?.toProperties() || {} export_human_url: Ember.computed 'filters.filter_calls', -> model_name = 'panda/project-instance-action' base_url = @store.adapterFor(model_name).buildURL(model_name) filter_addition = $.param q: @get('filter_query') "#{base_url}/export_human.csv?#{filter_addition}" export_technical_url: Ember.computed 'filters.filter_calls', -> model_name = 'panda/project-instance-action' base_url = @store.adapterFor(model_name).buildURL(model_name) filter_addition = $.param q: @get('filter_query') "#{base_url}/export_technical.csv?#{filter_addition}" apply_filters: -> @incrementProperty 'filters.filter_calls' @set 'model.project_instance_actions.page', 1 @set 'model.project_instance_actions.lastPage', null @get('model.project_instance_actions').setOtherParam('q', @get('filter_query')) false actions: refresh_list: -> @apply_filters() edit_project_instance_action: (project_instance_action) -> @modal 'project/edit-instance-action', model: project_instance_action toggle_filter: (key, value, checked) -> new_value = [] if checked new_value = new_value.concat(@get("filters.#{key}")).concat(value) else @get("filters.#{key}").forEach (present_in_filter) -> new_value.push present_in_filter unless present_in_filter is value @set "filters.#{key}", new_value @apply_filters() clear_filter: (keys...) -> keys.forEach (key) => if Ember.isArray(@get("filters.#{key}")) @set "filters.#{key}", [] else @set "filters.#{key}", null @apply_filters()