Code coverage report for src/components/task-plan/external/index.cjsx

Statements: 38.24% (13 / 34)      Branches: 0% (0 / 18)      Functions: 0% (0 / 3)      Lines: 38.24% (13 / 34)      Ignored: none     

All files » src/components/task-plan/external/ » index.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                                                                                                                                                                      
var BS, ExternalPlan, PlanFooter, PlanMixin, React, Router, TaskPlanActions, TaskPlanBuilder, TaskPlanStore, TutorDateInput, TutorInput, TutorTextArea, _, ref, ref1, validator;
 
React = require('react');
 
_ = require('underscore');
 
BS = require('react-bootstrap');
 
Router = require('react-router');
 
validator = require('validator');
 
ref = require('../../tutor-input'), TutorInput = ref.TutorInput, TutorDateInput = ref.TutorDateInput, TutorTextArea = ref.TutorTextArea;
 
ref1 = require('../../../flux/task-plan'), TaskPlanStore = ref1.TaskPlanStore, TaskPlanActions = ref1.TaskPlanActions;
 
PlanFooter = require('../footer');
 
PlanMixin = require('../plan-mixin');
 
TaskPlanBuilder = require('../builder');
 
ExternalPlan = React.createClass({
  displayName: 'ExternalPlan',
  mixins: [PlanMixin],
  setUrl: function(url) {
    var id;
    id = this.props.id;
    return TaskPlanActions.updateUrl(id, url);
  },
  validate: function(inputValue) {
    if (!((inputValue != null) && inputValue.length > 0)) {
      return ['required'];
    }
    if (!validator.isURL(inputValue)) {
      return ['url'];
    }
  },
  render: function() {
    var courseId, externalUrl, footer, formClasses, header, id, isURLLocked, label, plan, ref2, ref3, ref4;
    ref2 = this.props, id = ref2.id, courseId = ref2.courseId;
    plan = TaskPlanStore.get(id);
    externalUrl = plan != null ? (ref3 = plan.settings) != null ? ref3.external_url : void 0 : void 0;
    formClasses = ['edit-external', 'dialog'];
    footer = React.createElement(PlanFooter, {
      "id": id,
      "courseId": courseId,
      "onPublish": this.publish,
      "onSave": this.save,
      "onCancel": this.cancel,
      "getBackToCalendarParams": this.getBackToCalendarParams,
      "goBackToCalendar": this.goBackToCalendar
    });
    header = this.builderHeader('external');
    label = 'Assignment URL';
    if ((ref4 = this.state) != null ? ref4.invalid : void 0) {
      formClasses.push('is-invalid-form');
    }
    isURLLocked = TaskPlanStore.isOpened(id) && TaskPlanStore.isPublished(id);
    if (isURLLocked) {
      label = label + " (Cannot be changed once assignment is opened and published)";
    }
    return React.createElement("div", {
      "className": 'external-plan task-plan',
      "data-assignment-type": 'external'
    }, React.createElement(BS.Panel, {
      "bsStyle": 'primary',
      "className": formClasses.join(' '),
      "footer": footer,
      "header": header
    }, React.createElement(BS.Grid, {
      "fluid": true
    }, React.createElement(TaskPlanBuilder, {
      "courseId": courseId,
      "id": id
    }), React.createElement(BS.Row, null, React.createElement(BS.Col, {
      "xs": 12.,
      "md": 12.
    }, React.createElement(TutorInput, {
      "disabled": isURLLocked,
      "label": label,
      "className": 'external-url',
      "id": 'external-url',
      "default": externalUrl,
      "required": true,
      "validate": this.validate,
      "onChange": this.setUrl
    }))))));
  }
});
 
module.exports = {
  ExternalPlan: ExternalPlan
};