You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
5.3 KiB

​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. $(document).ready(function(t, e, i) {
  2. function t(t) {
  3. t.each(function() {
  4. var t = {
  5. title: $.trim($(this).text())
  6. };
  7. $(this).data("eventObject", t), $(this).draggable({
  8. zIndex: 1070,
  9. revert: !0,
  10. revertDuration: 0
  11. })
  12. })
  13. }
  14. t($("#external-events div.external-event"));
  15. var e = new Date,
  16. i = e.getDate(),
  17. n = e.getMonth(),
  18. r = e.getFullYear();
  19. $("#calendar").fullCalendar({
  20. header: {
  21. left: "prev,next today",
  22. center: "title",
  23. right: "month,agendaWeek,agendaDay"
  24. },
  25. buttonText: {
  26. today: "today",
  27. month: "month",
  28. week: "week",
  29. day: "day"
  30. },
  31. events: [{
  32. title: "All Day Event",
  33. start: new Date(r, n, 1),
  34. className: "bg-purple"
  35. }, {
  36. title: "Long Event",
  37. start: new Date(r, n, i - 5),
  38. end: new Date(r, n, i - 2),
  39. className: "bg-yellow"
  40. }, {
  41. title: "Meeting",
  42. start: new Date(r, n, i, 10, 30),
  43. allDay: !1,
  44. className: "bg-red"
  45. }, {
  46. title: "Lunch",
  47. start: new Date(r, n, i, 12, 0),
  48. end: new Date(r, n, i, 14, 0),
  49. allDay: !1,
  50. className: "bg-navy"
  51. }, {
  52. title: "Birthday Party",
  53. start: new Date(r, n, i + 1, 19, 0),
  54. end: new Date(r, n, i + 1, 22, 30),
  55. allDay: !1,
  56. className: "bg-green"
  57. }, {
  58. title: "Click for Google",
  59. start: new Date(r, n, 28),
  60. end: new Date(r, n, 29),
  61. url: "http://google.com/",
  62. className: "bg-lime"
  63. }],
  64. editable: !0,
  65. selectable: !0,
  66. droppable: !0,
  67. drop: function(t, e) {
  68. var i = $(this).data("eventObject"),
  69. n = $.extend({}, i);
  70. n.start = t, n.allDay = e, n.backgroundColor = $(this).css("background-color"), n.borderColor = $(this).css("border-color"), $("#calendar").fullCalendar("renderEvent", n, !0), $("#drop-remove").is(":checked") && $(this).remove()
  71. },
  72. eventClick: function(calEvent, jsEvent, view) {
  73. var $this = this;
  74. $("#editEname").val(calEvent.title)
  75. $("#editStarts").datetimepicker("date", calEvent.start._d)
  76. $("#editEvent").modal({
  77. backdrop: 'static'
  78. });
  79. $("#editEvent").find('.delete-event').show().end().find('.delete-event').unbind('click').click(function() {
  80. $("#calendar").fullCalendar('removeEvents', function(ev) {
  81. return (ev._id == calEvent._id);
  82. });
  83. $("#editEvent").modal('hide');
  84. });
  85. $("#editEvent").find('form').on('submit', function() {
  86. calEvent.title = $("#editEname").val();
  87. calEvent.start = new Date($("#editStarts").data("datetimepicker").date())
  88. $("#calendar").fullCalendar('updateEvent', calEvent);
  89. $("#editEvent").modal('hide');
  90. return false;
  91. });
  92. },
  93. select: function(start, end, allDay) {
  94. var $this = this;
  95. $("#addEvent").modal({
  96. backdrop: 'static'
  97. });
  98. $("#eventStarts").datetimepicker("date", start)
  99. var form = $("#addEventForm");
  100. $("#addEvent").find('.delete-event').hide().end().find('.save-event').show().end().find('.save-event').unbind('click').click(function() {
  101. form.submit();
  102. });
  103. $("#addEvent").find('form').on('submit', function() {
  104. var title = form.find("#eventName").val();
  105. var start = form.find("#eventStarts").val();
  106. var end = form.find("input[name='ending']").val();
  107. var categoryClass = form.find("#addColor [type=radio]:checked").data("color");
  108. if (title !== null && title.length != 0) {
  109. $("#calendar").fullCalendar('renderEvent', {
  110. title: title,
  111. start: start,
  112. end: end,
  113. allDay: false,
  114. className: categoryClass
  115. }, true);
  116. $("#addEvent").modal('hide');
  117. } else {
  118. alert('You have to give a title to your event');
  119. }
  120. return false;
  121. });
  122. $("#calendar").fullCalendar('unselect');
  123. }
  124. });
  125. var a = "#3c8dbc";
  126. $("#color-chooser-btn");
  127. $("#color-chooser > li > a").on("click", function(t) {
  128. t.preventDefault(), a = $(this).css("color"), $("#add-new-event").css({
  129. "background-color": a,
  130. "border-color": a
  131. })
  132. }), $("#add-new-event").on("click", function(e) {
  133. e.preventDefault();
  134. var i = $("#new-event").val();
  135. if (0 != i.length) {
  136. var n = $("<div />");
  137. n.css({
  138. "background-color": a,
  139. "border-color": a,
  140. color: "#fff"
  141. }).addClass("external-event"), n.html(i), $("#external-events").prepend(n), t(n), $("#new-event").val("")
  142. }
  143. });
  144. })