| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 | 2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2510×
2510×
2510×
93×
2510×
2510×
93×
2510×
2510×
2×
1565×
1565×
1565×
2×
1437×
1437×
1437×
1437×
124×
124×
124×
124×
518×
518×
518×
427×
427×
427×
420×
420×
420×
18×
402×
402×
402×
2×
| var StepPanel, TaskStepStore, TaskStore, _, defaultStep, defaultTask, flux, getPanelsWithStatus, getTaskStepPanels, moment, utils;
_ = require('underscore');
moment = require('moment');
flux = require('flux-react');
TaskStepStore = require('../../flux/task-step').TaskStepStore;
TaskStore = require('../../flux/task').TaskStore;
utils = require('./utils');
defaultTask = {
type: 'default'
};
defaultStep = {
type: 'placeholder'
};
getTaskStepPanels = function(stepId) {
var panels, step, task;
step = TaskStepStore.get(stepId);
if (step == null) {
step = defaultStep;
}
task = TaskStore.get(step.task_id);
if (task == null) {
task = defaultTask;
}
panels = utils._getPanels(task, step);
return {
panels: panels,
step: step,
task: task
};
};
getPanelsWithStatus = function(stepId) {
var panels, panelsWithStatus, ref, step, task;
ref = getTaskStepPanels(stepId), task = ref.task, step = ref.step, panels = ref.panels;
return panelsWithStatus = utils._arePanelsPassed(task, step, panels);
};
StepPanel = {
getPanelsWithStatus: getPanelsWithStatus,
getPanel: function(stepId) {
var panel, panelsWithStatus;
panelsWithStatus = getPanelsWithStatus(stepId);
panel = utils._getPanel(panelsWithStatus);
return panel.name;
},
getRemainingActions: function(stepId) {
var panelsWithStatus, remainingPanels;
panelsWithStatus = getPanelsWithStatus(stepId);
remainingPanels = _.where(panelsWithStatus, {
passed: false
});
return _.chain(remainingPanels).pluck('actions').flatten().value();
},
canReview: function(stepId) {
var panels;
panels = getTaskStepPanels(stepId).panels;
return utils._canReview(panels);
},
canWrite: function(stepId) {
var panels;
panels = getTaskStepPanels(stepId).panels;
return utils._canWrite(panels);
},
canContinue: function(stepId) {
var isMostCurrentStep, mostCurrentStep, step;
step = TaskStepStore.get(stepId);
if (step == null) {
return true;
}
mostCurrentStep = TaskStore.getCurrentStep(step.task_id);
isMostCurrentStep = (mostCurrentStep != null) && (step.id === mostCurrentStep.id);
return this.canWrite(stepId) || !isMostCurrentStep;
}
};
module.exports = {
StepPanel: StepPanel
};
|