// Generated by CoffeeScript 2.7.0 var indexOf = [].indexOf; import Ember from 'ember'; export default Ember.Mixin.create({ selected_project_scenarios: [], // null selected_project_scenarios_set_operation: 'union', // union or intersection active_workflow_action_definitions: [], active_workflow_action_definition_ids: [], set_active_workflow_action_definitions: function() { // initialize unused working workflow-action-definitions if (this.get('selected_project_scenarios.length')) { if (this.get('selected_project_scenarios_set_operation') === 'intersection') { return this.set_active_workflow_action_definitions_using_intersection(); } else { return this.set_active_workflow_action_definitions_using_union(); } } else { this.set('active_workflow_action_definitions', this.get('project.workflow_action_definitions') || []); return this.set('active_workflow_action_definition_ids', this.get('active_workflow_action_definitions').mapBy('id').toArray()); } }, set_active_workflow_action_definitions_using_union: function() { var selected_project_scenario_workflow_action_definition_ids, working_workflow_action_definitions; selected_project_scenario_workflow_action_definition_ids = []; working_workflow_action_definitions = []; this.get('selected_project_scenarios').forEach(function(selected_project_scenario) { return selected_project_scenario.get('workflow_action_definitions').forEach(function(workflow_action_definition) { if (selected_project_scenario_workflow_action_definition_ids.indexOf(workflow_action_definition.get('id')) < 0) { selected_project_scenario_workflow_action_definition_ids.push(workflow_action_definition.get('id')); return working_workflow_action_definitions.push(workflow_action_definition); } }); }); this.set('active_workflow_action_definitions', working_workflow_action_definitions); return this.set('active_workflow_action_definition_ids', selected_project_scenario_workflow_action_definition_ids); }, set_active_workflow_action_definitions_using_intersection: function() { var first_run, selected_project_scenario_workflow_action_definition_ids; selected_project_scenario_workflow_action_definition_ids = []; first_run = true; this.get('selected_project_scenarios').forEach(function(selected_project_scenario) { var current_workflow_action_definition_ids; current_workflow_action_definition_ids = selected_project_scenario.get('workflow_action_definitions').mapBy('id').toArray(); if (first_run) { selected_project_scenario_workflow_action_definition_ids = current_workflow_action_definition_ids; first_run = false; return; } return selected_project_scenario_workflow_action_definition_ids = selected_project_scenario_workflow_action_definition_ids.filter(function(id) { return indexOf.call(current_workflow_action_definition_ids, id) >= 0; }); }); this.set('active_workflow_action_definition_ids', selected_project_scenario_workflow_action_definition_ids); return this.set('active_workflow_action_definitions', this.get('project.workflow_action_definitions').filter(function(r) { var ref; return ref = r.get('id'), indexOf.call(selected_project_scenario_workflow_action_definition_ids, ref) >= 0; })); } });