Code coverage report for src/helpers/policies/index.coffee

Statements: 100% (46 / 46)      Branches: 90% (9 / 10)      Functions: 100% (7 / 7)      Lines: 100% (46 / 46)      Ignored: none     

All files » src/helpers/policies/ » index.coffee
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                           2510× 2510× 2510× 93×   2510× 2510× 93×   2510× 2510×             1565× 1565× 1565×         1437× 1437× 1437× 1437×     124× 124× 124×     124×     518× 518× 518×     427× 427× 427×     420× 420× 420× 18×   402× 402× 402×              
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
};