app_demo_calendar.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. "use strict";
  2. $(function(){
  3. function new_external_event(){
  4. var et = $("#new-event-text").val();
  5. if (et != '') {
  6. $("#external-events").prepend('<a class="list-group-item external-event">' + et + '</a>');
  7. prepare_external_list();
  8. }
  9. }
  10. function prepare_external_list(){
  11. $('#external-events .external-event').each(function () {
  12. var eventObject = {title: $.trim($(this).text())};
  13. $(this).data('eventObject', eventObject);
  14. $(this).draggable({
  15. zIndex: 999,
  16. revert: true,
  17. revertDuration: 0
  18. });
  19. });
  20. }
  21. var date = new Date();
  22. var d = date.getDate();
  23. var m = date.getMonth();
  24. var y = date.getFullYear();
  25. prepare_external_list();
  26. var calendar = $('#calendar').fullCalendar({
  27. header: {
  28. left: 'prev,next today',
  29. center: 'title',
  30. right: 'month,agendaWeek,agendaDay'
  31. },
  32. buttonIcons: {
  33. prev: 'icon-chevron-left',
  34. next: 'icon-chevron-right',
  35. prevYear: 'icon-chevron-left',
  36. nextYear: 'icon-chevron-right'
  37. },
  38. editable: true,
  39. eventSources: {url: "assets/php/ajax_fullcalendar.php"},
  40. droppable: true,
  41. selectable: true,
  42. selectHelper: true,
  43. select: function (start, end, allDay) {
  44. var title = prompt('Event Title:');
  45. if (title) {
  46. calendar.fullCalendar('renderEvent',{title: title,start: start,end: end,allDay: allDay},true);
  47. }
  48. calendar.fullCalendar('unselect');
  49. },
  50. drop: function (date, allDay) {
  51. var originalEventObject = $(this).data('eventObject');
  52. var copiedEventObject = $.extend({}, originalEventObject);
  53. copiedEventObject.start = date;
  54. copiedEventObject.allDay = allDay;
  55. $('#calendar').fullCalendar('renderEvent', copiedEventObject, true);
  56. if ($('#drop-remove').is(':checked')) {
  57. $(this).remove();
  58. }
  59. }
  60. });
  61. $("#new-event").on("click", function () {
  62. new_external_event();
  63. return false;
  64. });
  65. $("#new-event-form").on("submit",function(){
  66. new_external_event();
  67. return false;
  68. });
  69. });