PageRenderTime 42ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/assets/js/dashboard/calendar.js

https://gitlab.com/oytunistrator/92five
JavaScript | 80 lines | 80 code | 0 blank | 0 comment | 2 complexity | cbb4932f1502be089c77a73971d32dc8 MD5 | raw file
  1. var EventModel = Backbone.Model.extend({
  2. urlRoot: 'calendar/event'
  3. });
  4. var url = window.location.href;
  5. var tempurl = url.split('dashboard')[0];
  6. var EventView = Backbone.View.extend({
  7. el: $('.time_listing'),
  8. model: EventModel,
  9. initialize: function() {
  10. _.bindAll(this, "postClicked");
  11. this.model.bind('change', this.render, this);
  12. },
  13. events: {
  14. "click .cal_event_title": "postClicked",
  15. },
  16. render: function() {},
  17. postClicked: function(e) {
  18. var eventid = $(e.target).attr('eventid');
  19. $(e.target).parent().parent().next().slideToggle();
  20. }
  21. });
  22. var EventListModel = Backbone.Model.extend({});
  23. var EventsList = Backbone.Collection.extend({
  24. model: EventListModel,
  25. initialize: function(models, options) {
  26. this.selectedDate = options.selectedDate;
  27. this.fetch({
  28. 'reset': true
  29. });
  30. },
  31. url: function() {
  32. return 'calendar/events/' + this.selectedDate;
  33. }
  34. });
  35. var EventsView = Backbone.View.extend({
  36. template: _.template('<div class=row-fluid><div class="span5 time_listing_1" >' + '<%=start_time%>' + ' - ' + '<%=end_time%>' + '</div><div class="span7 time_listing_1" ><a data-toggle=modal class=cal_event_title eventid=' + '<%=id%>' + ' href=#myModal4>' + '<%=title%>' + '</a></div></div>' + '<div class="calender-viewevent hide">' + '<% if (editdelete != "no") { %>' + '<div class="p-icon-inner"><a class="p-icon-1" title="Edit Event" href=calendar/event/edit/' + '<%=id%>' + '><img alt="" src=' + tempurl + 'assets/images/dashboard/p-edit.png></a><a class="p-icon-1" title="Delete Event" href=' + '#' + '><img alt="" class="delevent" eventid=' + '<%=id%>' + ' src=' + tempurl + 'assets/images/dashboard/p-delete.png></a></div>' + '<% } %>' + '<div class="viewevent-detail-inner"><div class="viewevent-left"><div class="viewevent-detail-1">Category:<span class="viewevent-note">' + '<%=category%>' + '</span></div><div class="viewevent-detail-1">Note: <span class="viewevent-note">' + '<%=notes%>' + '</span></div><div class="viewevent-detail-1">Location: <span class="viewevent-note">' + '<%=location%>' + '</span></div></div><div class="viewevent-right"><div class="viewevent-asignee"><label>People:</label><div class="viewevent-asignee-right">' + '<% _.each(users, function(user) { %>' + '<div class="viewevent-detail-3">' + '<%=user.first_name%> <%=user.last_name%>' + '</div>' + '<% }); %>' + '</div></div></div></div></div>'),
  37. initialize: function() {
  38. this.model.on('change', this.render, this);
  39. },
  40. events: {
  41. "click .delevent": "deleteEvent"
  42. },
  43. deleteEvent: function(e) {
  44. var eventid = $(e.target).attr('eventid');
  45. $('#deleteEventId').attr('value', eventid);
  46. $('#myModal-item-delete').modal('show');
  47. },
  48. render: function() {
  49. this.$el.html(this.template(this.model.toJSON()));
  50. return this;
  51. }
  52. });
  53. var EventsListView = Backbone.View.extend({
  54. el: '#time_listing',
  55. initialize: function() {
  56. _.bindAll(this, "render");
  57. this.collection.bind('reset', this.render, this);
  58. },
  59. render: function() {
  60. $('.cal_date').text(moment(this.collection.selectedDate, "YYYY-MM-DD").format('D'));
  61. $('#cal_month').text(moment(this.collection.selectedDate, "YYYY-MM-DD").format('MMMM'));
  62. $('#cal_year').text(moment(this.collection.selectedDate, "YYYY-MM-DD").format('YYYY'));
  63. $('#time_listing').empty();
  64. this.collection.forEach(this.addOne, this);
  65. },
  66. addOne: function(eventItem) {
  67. var starttimeformat = moment(eventItem.get('start_time'), 'hh:mm:ss').format('h:mm a');
  68. var endtimeformat = moment(eventItem.get('end_time'), 'hh:mm:ss').format('h:mm a');
  69. eventItem.set({
  70. 'start_time': starttimeformat
  71. });
  72. eventItem.set({
  73. 'end_time': endtimeformat
  74. });
  75. var eventsTempView = new EventsView({
  76. model: eventItem
  77. });
  78. this.$el.append(eventsTempView.render().el);
  79. }
  80. });