Advertisement
Guest User

Untitled

a guest
Oct 13th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.71 KB | None | 0 0
  1. {{#each sortedTasks as |task|}}
  2. {{task-list-item name=task.name steps=model.steps taskLeader=task.admin.name admins=model.admins step=task.step dueDate=task.dueDate this=this store=store id=task.id complete=task.completed}}
  3. {{/each}}
  4.  
  5. {{#if taskComplete}}
  6. <div class="todo-list-completed">
  7. <div class="squaredThree">
  8. <input type="checkbox" id={{name}} name="check" value={{id}} onclick={{action "toggleTask"}} checked/>
  9. <label for={{name}}></label>
  10. </div>
  11. <div class="todo-name-completed">
  12. <p>{{name}}</p>
  13. </div>
  14. <div class="todo-date-completed">
  15. <p>Completed</p>
  16. </div>
  17. <div class="todo-member-completed">
  18. <p>{{taskLeader}}</p>
  19. </div>
  20. </div>
  21. {{else}}
  22. <div class="todo-list" {{action "hoverOver" on="mouseEnter"}} {{action "hoverOff" on="mouseLeave"}}>
  23. <div class="squaredThree">
  24. <input type="checkbox" id={{name}} name="check" value={{id}} onclick={{action "toggleTask"}}/>
  25. <label for={{name}}></label>
  26. </div>
  27. <div class="todo-name">
  28. <p>{{name}}</p>
  29. </div>
  30. {{#unless taskAdmin}}
  31. <div class="todo-date">
  32. <p>{{moment-from-now dueDate interval=60000}}</p>
  33. </div>
  34. <div class="todo-member">
  35. <p>{{taskLeader}}</p>
  36. </div>
  37. {{/unless}}
  38. {{#if taskAdmin}}
  39. <div class="todo-delete">
  40. <svg {{action 'deleteTask' id}} class="icon-padding" width="25px" height="25px" viewBox="0 0 612 612" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  41. <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
  42. <g id="x-button" fill="#cc1818">
  43. <g id="Capa_1">
  44. <g id="Cross">
  45. <path d="M306,0 C137.012,0 0,136.992 0,306 C0,475.008 137.012,612 306,612 C474.988,612 612,475.008 612,306 C612,136.992 474.988,0 306,0 L306,0 Z M306,535.5 C179.45,535.5 76.5,432.55 76.5,306 C76.5,179.45 179.45,76.5 306,76.5 C432.55,76.5 535.5,179.45 535.5,306 C535.5,432.55 432.55,535.5 306,535.5 L306,535.5 Z M410.098,202.419 L409.581,201.902 C395.391,187.712 372.363,187.712 358.173,201.902 L306,254.076 L253.808,201.903 C239.617,187.712 216.61,187.712 202.4,201.903 L201.883,202.419 C187.693,216.61 187.693,239.617 201.883,253.827 L254.076,306 L201.884,358.192 C187.694,372.381 187.694,395.389 201.884,409.599 L202.401,410.116 C216.592,424.306 239.618,424.306 253.809,410.116 L306,357.925 L358.173,410.116 C372.363,424.306 395.371,424.306 409.581,410.116 L410.098,409.599 C424.288,395.409 424.288,372.381 410.098,358.192 L357.925,306 L410.116,253.808 C424.308,239.617 424.308,216.61 410.098,202.419 L410.098,202.419 Z" id="Shape"></path>
  46. </g>
  47. </g>
  48. </g>
  49. </g>
  50. </svg>
  51. </div>
  52. <div class="todo-member">
  53. <p>{{taskLeader}}</p>
  54. </div>
  55. {{/if}}
  56. </div>
  57. {{/if}}
  58.  
  59. import Ember from 'ember';
  60.  
  61. export default Ember.Component.extend({
  62. classNameBindings: ['taskComplete'],
  63. user: Ember.inject.service(),
  64. //completed: false,
  65. taskComplete: false,
  66. taskAdmin: false,
  67. init: function() {
  68. this._super();
  69. this.setTaskStatus();
  70. },
  71. setTaskStatus: function() {
  72. this.set('taskComplete', this.get('complete'));
  73. },
  74.  
  75. actions: {
  76.  
  77. deleteTask: function(taskId) {
  78. this.store.findRecord('task', taskId).then(function(task) {
  79. task.destroyRecord();
  80. });
  81. },
  82. toggleTask: function() {
  83. self = this;
  84. this.set('taskComplete', !this.get('complete'));
  85. //this.toggleProperty('completed');
  86. this.store.findRecord('task', this.get('id')).then(function(currentTask) {
  87. currentTask.set('completed', self.get('taskComplete'));
  88. currentTask.save();
  89. })
  90.  
  91. },
  92. hoverOver: function() {
  93. this.set('taskAdmin', true);
  94. },
  95. hoverOff: function() {
  96. this.set('taskAdmin', false);
  97. }
  98. }
  99. });
  100.  
  101. export default DS.Model.extend({
  102. name: DS.attr('string'),
  103. description: DS.attr('string'),
  104. process: DS.belongsTo('process'),
  105. createdOn: DS.attr('date', {
  106. defaultValue() {
  107. return new Date();
  108. }
  109. }),
  110. dueDate: DS.attr('date'),
  111. completedOn: DS.attr('date'),
  112. onTime: DS.attr('boolean', { defaultValue: true }),
  113. completed: DS.attr('boolean'),
  114. optional: DS.attr('boolean'),
  115. step: DS.belongsTo('step'),
  116. firstInStep: DS.attr('boolean'),
  117. users: DS.hasMany('user'),
  118. admins: DS.hasMany('user', { inverse: 'tasksLead' }),
  119. members: DS.hasMany('user', { inverse: 'taskMember' })
  120. });
  121.  
  122. export default Model.extend({
  123. firstName: DS.attr('string'),
  124. lastName: DS.attr('string'),
  125. name: Ember.computed('firstName', 'lastName', function() {
  126. return `${this.get('firstName')} ${this.get('lastName')}`;
  127. }),
  128. email: DS.attr('string'),
  129. password: DS.attr('string'),
  130. totalTeams: DS.attr('number'),
  131. totalProcesses: DS.attr('number'),
  132. completedProcesses: DS.attr('number'),
  133. totalTasks: DS.attr('number'),
  134. completedTasks: DS.attr('number'),
  135. teams: DS.hasMany('team'),
  136. processes: DS.hasMany('process'),
  137. tasks: DS.hasMany('task'),
  138. processesLead: DS.hasMany('process', { inverse: 'admins' }),
  139. teamsLead: DS.hasMany('team', { inverse: 'admins' }),
  140. tasksLead: DS.hasMany('task', { inverse: 'admins' }),
  141. processMember: DS.hasMany('process', { inverse: 'members' }),
  142. teamMember: DS.hasMany('team', { inverse: 'members' }),
  143. taskMember: DS.hasMany('task', { inverse: 'members' })
  144. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement