Code coverage report for src/components/task/details.cjsx

Statements: 93.33% (28 / 30)      Branches: 80% (8 / 10)      Functions: 100% (4 / 4)      Lines: 93.33% (28 / 30)      Ignored: none     

All files » src/components/task/ » details.cjsx
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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108                                             521× 521× 521× 168×   353×           353×     353×                                                 454× 454× 454×     454× 454× 101×   353× 353× 353×                               353×                
var BS, Details, Instructions, Markdown, React, Time, _;
 
React = require('react');
 
BS = require('react-bootstrap');
 
Time = require('../time');
 
Markdown = require('../markdown');
 
_ = require('underscore');
 
Instructions = React.createClass({
  displayName: 'Instructions',
  propTypes: {
    task: React.PropTypes.object.isRequired,
    title: React.PropTypes.string,
    trigger: React.PropTypes.string,
    placement: React.PropTypes.string,
    popverClassName: React.PropTypes.string
  },
  getDefaultProps: function() {
    return {
      title: 'Instructions',
      trigger: 'hover',
      placement: 'top',
      popverClassName: 'task-details-popover'
    };
  },
  render: function() {
    var children, defaultTriggerButton, instructionsPopover, placement, popverClassName, ref, task, title, trigger;
    ref = this.props, task = ref.task, title = ref.title, trigger = ref.trigger, placement = ref.placement, popverClassName = ref.popverClassName, children = ref.children;
    if (task.description == null) {
      return null;
    }
    instructionsPopover = React.createElement(BS.Popover, {
      "className": popverClassName,
      "title": title
    }, React.createElement(Markdown, {
      "text": task.description
    }));
    defaultTriggerButton = React.createElement("button", {
      "className": 'task-details-instructions'
    });
    return React.createElement(BS.OverlayTrigger, {
      "trigger": trigger,
      "placement": placement,
      "overlay": instructionsPopover
    }, children || defaultTriggerButton);
  }
});
 
Details = React.createClass({
  displayName: 'Details',
  propTypes: {
    task: React.PropTypes.object.isRequired,
    title: React.PropTypes.string,
    dateFormat: React.PropTypes.string,
    dateLabel: React.PropTypes.string,
    trigger: React.PropTypes.string,
    placement: React.PropTypes.string,
    className: React.PropTypes.string,
    lateStatus: React.PropTypes.element
  },
  getDefaultProps: function() {
    return {
      dateFormat: 'ddd MMM Do',
      dateLabel: 'Due'
    };
  },
  render: function() {
    var className, dateFormat, dateLabel, details, instructionsProps, lateStatus, ref, task;
    ref = this.props, task = ref.task, dateFormat = ref.dateFormat, dateLabel = ref.dateLabel, lateStatus = ref.lateStatus, className = ref.className;
    Iif (className == null) {
      className = '';
    }
    className += ' task-details';
    if (task.due_at == null) {
      return null;
    }
    Eif (task.description) {
      instructionsProps = _.pick(this.props, 'task', 'title', 'trigger', 'placement');
      details = React.createElement("div", {
        "className": className
      }, React.createElement("div", null, dateLabel, " ", React.createElement(Time, {
        "date": task.due_at,
        "format": dateFormat
      }), lateStatus, React.createElement(Instructions, React.__spread({}, instructionsProps))));
    } else {
      details = React.createElement("div", {
        "className": className
      }, React.createElement("div", {
        "className": 'task-details-due-date'
      }, dateLabel, " ", React.createElement(Time, {
        "date": task.due_at,
        "format": dateFormat
      }), lateStatus));
    }
    return details;
  }
});
 
module.exports = {
  Details: Details,
  Instructions: Instructions
};