ReminderWindow.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /**
  2. * @class SimpleTasks.view.tasks.DefaultTimeWindow
  3. * @extends Ext.window.Window
  4. *
  5. * A window for displaying alerts when the reminder date for a task has passed
  6. */
  7. Ext.define('SimpleTasks.view.tasks.ReminderWindow', {
  8. extend: 'Ext.window.Window',
  9. xtype: 'reminderWindow',
  10. requires: [
  11. 'Ext.form.Panel',
  12. 'Ext.form.field.ComboBox'
  13. ],
  14. width: 400,
  15. layout: 'anchor',
  16. bodyPadding: 5,
  17. items: [
  18. {
  19. xtype: 'box',
  20. cls: 'tasks-reminder-details',
  21. tpl: [
  22. '<div class="tasks-reminder-icon"></div>',
  23. '<p class="tasks-reminder-title">{title}</p>',
  24. '<p class="tasks-reminder-due">Due: {due:date("F j, Y")}</p>'
  25. ]
  26. },
  27. {
  28. xtype: 'combobox',
  29. name: 'snooze_time',
  30. fieldLabel: 'Remind me again in',
  31. labelWidth: 115,
  32. anchor: '100%',
  33. labelSeparator: '',
  34. margin: '10 0 10 20',
  35. forceSelection: true,
  36. value: 5,
  37. store: [
  38. [5, '5 minutes'],
  39. [10, '10 minutes'],
  40. [15, '15 minutes'],
  41. [30, '30 minutes'],
  42. [60, '1 hour'],
  43. [120, '2 hours'],
  44. [240, '4 hours'],
  45. [480, '8 hours'],
  46. [720, '12 hours'],
  47. [1440, '1 day'],
  48. [2880, '2 days'],
  49. [4320, '3 days'],
  50. [5760, '4 days'],
  51. [10080, '1 week'],
  52. [20160, '2 weeks'],
  53. [30240, '3 weeeks'],
  54. [40320, '4 weeks']
  55. ]
  56. }
  57. ],
  58. buttons: [
  59. {
  60. text: 'Snooze',
  61. cls: 'snooze-btn'
  62. },
  63. {
  64. text: 'Dismiss',
  65. cls: 'dismiss-reminder-btn'
  66. }
  67. ],
  68. /**
  69. * Associates this reminder with a specific task.
  70. * @param {SimpleTasks.model.Task} task
  71. */
  72. setTask: function(task) {
  73. this.task = task;
  74. },
  75. /**
  76. * Gets the task associated with this reminder
  77. * @return {Task.model.Task}
  78. */
  79. getTask: function() {
  80. return this.task;
  81. }
  82. });