initial github commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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: ->
|
||||
# initialize unused working workflow-action-definitions
|
||||
if @get('selected_project_scenarios.length')
|
||||
if @get('selected_project_scenarios_set_operation') is 'intersection'
|
||||
@set_active_workflow_action_definitions_using_intersection()
|
||||
else
|
||||
@set_active_workflow_action_definitions_using_union()
|
||||
else
|
||||
@set 'active_workflow_action_definitions', @get('project.workflow_action_definitions') || []
|
||||
@set 'active_workflow_action_definition_ids', @get('active_workflow_action_definitions').mapBy('id').toArray()
|
||||
|
||||
set_active_workflow_action_definitions_using_union: ->
|
||||
selected_project_scenario_workflow_action_definition_ids = []
|
||||
working_workflow_action_definitions = []
|
||||
@get('selected_project_scenarios').forEach (selected_project_scenario) ->
|
||||
selected_project_scenario.get('workflow_action_definitions').forEach (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')
|
||||
working_workflow_action_definitions.push workflow_action_definition
|
||||
@set 'active_workflow_action_definitions', working_workflow_action_definitions
|
||||
@set 'active_workflow_action_definition_ids', selected_project_scenario_workflow_action_definition_ids
|
||||
|
||||
set_active_workflow_action_definitions_using_intersection: ->
|
||||
selected_project_scenario_workflow_action_definition_ids = []
|
||||
first_run = true
|
||||
@get('selected_project_scenarios').forEach (selected_project_scenario) ->
|
||||
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
|
||||
selected_project_scenario_workflow_action_definition_ids = selected_project_scenario_workflow_action_definition_ids.filter (id) -> id in current_workflow_action_definition_ids
|
||||
|
||||
@set 'active_workflow_action_definition_ids', selected_project_scenario_workflow_action_definition_ids
|
||||
@set 'active_workflow_action_definitions', @get('project.workflow_action_definitions').filter((r) -> r.get('id') in selected_project_scenario_workflow_action_definition_ids)
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
// Generated by CoffeeScript 1.12.5
|
||||
var indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
|
||||
|
||||
import Ember from 'ember';
|
||||
|
||||
export default Ember.Mixin.create({
|
||||
selected_project_scenarios: [],
|
||||
selected_project_scenarios_set_operation: 'union',
|
||||
active_workflow_action_definitions: [],
|
||||
active_workflow_action_definition_ids: [],
|
||||
set_active_workflow_action_definitions: function() {
|
||||
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;
|
||||
}));
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,46 @@
|
||||
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)
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
// Generated by CoffeeScript 1.12.5
|
||||
var indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
|
||||
|
||||
import Ember from 'ember';
|
||||
|
||||
export default Ember.Mixin.create({
|
||||
get_active_workflow_groups: function(workflow_groups, project_scenarios, set_operation) {
|
||||
if (set_operation == null) {
|
||||
set_operation = 'union';
|
||||
}
|
||||
project_scenarios = Ember.makeArray(project_scenarios);
|
||||
workflow_groups = workflow_groups.toArray();
|
||||
if (project_scenarios.length) {
|
||||
if (set_operation === 'intersection') {
|
||||
return this.get_active_workflow_groups_using_intersection(workflow_groups, project_scenarios);
|
||||
} else {
|
||||
return this.get_active_workflow_groups_using_union(project_scenarios);
|
||||
}
|
||||
} else {
|
||||
return workflow_groups;
|
||||
}
|
||||
},
|
||||
get_active_workflow_groups_using_union: function(project_scenarios) {
|
||||
var selected_project_scenario_workflow_group_ids, working_workflow_groups;
|
||||
selected_project_scenario_workflow_group_ids = [];
|
||||
working_workflow_groups = [];
|
||||
project_scenarios.forEach(function(selected_project_scenario) {
|
||||
return selected_project_scenario.get('workflow_groups').forEach(function(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'));
|
||||
return working_workflow_groups.push(workflow_group);
|
||||
}
|
||||
});
|
||||
});
|
||||
return working_workflow_groups;
|
||||
},
|
||||
get_active_workflow_groups_using_intersection: function(workflow_groups, project_scenarios) {
|
||||
var first_run, selected_project_scenario_workflow_group_ids;
|
||||
selected_project_scenario_workflow_group_ids = [];
|
||||
first_run = true;
|
||||
project_scenarios.forEach(function(selected_project_scenario) {
|
||||
var current_workflow_group_ids;
|
||||
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;
|
||||
}
|
||||
return selected_project_scenario_workflow_group_ids = selected_project_scenario_workflow_group_ids.filter(function(id) {
|
||||
return indexOf.call(current_workflow_group_ids, id) >= 0;
|
||||
});
|
||||
});
|
||||
return workflow_groups.filter(function(r) {
|
||||
var ref;
|
||||
return ref = r.get('id'), indexOf.call(selected_project_scenario_workflow_group_ids, ref) >= 0;
|
||||
});
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user