import Ember from 'ember' export default Ember.Mixin.create get_active_workflow_groups: (workflow_groups, project_scenarios, set_operation = 'union')-> project_scenarios = Ember.makeArray(project_scenarios) workflow_groups = workflow_groups.toArray() # initialize unused working workflow-groups if project_scenarios.length if set_operation is 'intersection' @get_active_workflow_groups_using_intersection(workflow_groups, project_scenarios) else @get_active_workflow_groups_using_union(project_scenarios) else workflow_groups #@set 'active_workflow_groups', workflow_groups || [] #@set 'active_workflow_group_ids', @get('active_workflow_groups').mapBy('id').toArray() get_active_workflow_groups_using_union: (project_scenarios) -> selected_project_scenario_workflow_group_ids = [] working_workflow_groups = [] project_scenarios.forEach (selected_project_scenario) -> selected_project_scenario.get('workflow_groups').forEach (workflow_group) -> if selected_project_scenario_workflow_group_ids.indexOf(workflow_group.get('id')) < 0 selected_project_scenario_workflow_group_ids.push workflow_group.get('id') working_workflow_groups.push workflow_group #working_workflow_groups = working_workflow_groups #@set 'active_workflow_groups', working_workflow_groups #@set 'active_workflow_group_ids', selected_project_scenario_workflow_group_ids working_workflow_groups get_active_workflow_groups_using_intersection: (workflow_groups, project_scenarios) -> selected_project_scenario_workflow_group_ids = [] first_run = true project_scenarios.forEach (selected_project_scenario) -> current_workflow_group_ids = selected_project_scenario.get('workflow_groups').mapBy('id').toArray() if first_run selected_project_scenario_workflow_group_ids = current_workflow_group_ids first_run = false return selected_project_scenario_workflow_group_ids = selected_project_scenario_workflow_group_ids.filter (id) -> id in current_workflow_group_ids #@set 'active_workflow_group_ids', selected_project_scenario_workflow_group_ids #@set 'active_workflow_groups', workflow_groups.filter((r) -> r.get('id') in selected_project_scenario_workflow_group_ids) workflow_groups.filter((r) -> r.get('id') in selected_project_scenario_workflow_group_ids)