Files
ember-panda/addon/controllers/action-list.coffee
T

53 lines
2.3 KiB
CoffeeScript

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
show_completed_at: Ember.computed 'filters.state_in.[]', 'filters.completed_at_gteq', 'filters.completed_at_lteq', ->
return true if @get('filters.completed_at_lteq') or @get('filters.completed_at_gteq')
JSON.stringify(@get('filters.state_in')) is '["completed"]'
show_inquiry_at: Ember.computed 'filters.state_in.[]', 'filters.inquiry_at_gteq', 'filters.inquiry_at_lteq', ->
return true if @get('filters.inquiry_at_lteq') or @get('filters.inquiry_at_gteq')
JSON.stringify(@get('filters.state_in')) is '["inquiry"]'
filter_query: Ember.computed 'filters.filter_calls', ->
@get('filters')?.toProperties() || {}
export_human_url: Ember.computed 'filter_query', ->
model_name = 'panda/project-instance-action'
base_url = @store.adapterFor(model_name).buildURL(model_name)
filter_addition = Ember.$.param q: @get('filter_query'), include_pointing: true
"#{base_url}/export_human.csv?#{filter_addition}"
export_technical_url: Ember.computed 'filter_query', ->
model_name = 'panda/project-instance-action'
base_url = @store.adapterFor(model_name).buildURL(model_name)
filter_addition = Ember.$.param q: @get('filter_query'), include_pointing: true
"#{base_url}/export_technical.csv?#{filter_addition}"
apply_filters: ->
@incrementProperty 'filters.filter_calls'
@get('model.project_instance_actions')?.reload()
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()