aboutsummaryrefslogtreecommitdiff
path: root/mod/event_calendar/views/default/js/event_calendar/event_calendar.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/event_calendar/views/default/js/event_calendar/event_calendar.php')
-rw-r--r--mod/event_calendar/views/default/js/event_calendar/event_calendar.php171
1 files changed, 171 insertions, 0 deletions
diff --git a/mod/event_calendar/views/default/js/event_calendar/event_calendar.php b/mod/event_calendar/views/default/js/event_calendar/event_calendar.php
new file mode 100644
index 000000000..efa1dc1dd
--- /dev/null
+++ b/mod/event_calendar/views/default/js/event_calendar/event_calendar.php
@@ -0,0 +1,171 @@
+//<script type="text/javascript">
+elgg.provide('elgg.event_calendar');
+
+elgg.event_calendar.init = function () {
+ $('.event_calendar_paged_checkbox').click(elgg.event_calendar.handlePagedPersonalCalendarToggle);
+ $('.event-calendar-personal-calendar-toggle').click(elgg.event_calendar.handleDisplayPagePersonalCalendarToggle);
+ $('#event-calendar-region').change(elgg.event_calendar.handleRegionChange);
+ $('#event-calendar-ical-link').click(elgg.event_calendar.handleIcalPopup);
+ $('.event-calendar-repeating-unselected').each(elgg.event_calendar.setRepeatingClass);
+ $('.event-calendar-repeating-unselected').live('click',elgg.event_calendar.handleRepeatingSelect);
+ $('.event-calendar-repeating-selected').live('click',elgg.event_calendar.handleRepeatingUnselect);
+ $('#event-calendar-edit').submit(elgg.event_calendar.handleEditFormSubmit);
+ $('input.elgg-input-radio[name="schedule_type"]').click(elgg.event_calendar.handleScheduleType);
+ elgg.event_calendar.handleScheduleType();
+
+ var all_day_field = $('[name="all_day"][type="checkbox"]');
+ if (all_day_field.is(':checked')) {
+ //$('[name="start_time"]').val(0);
+ $('#event-calendar-start-time-wrapper').attr('disabled','disabled');
+ //$('[name="end_time"]').val(0);
+ $('#event-calendar-end-time-wrapper').attr('disabled','disabled');
+ }
+ all_day_field.change(elgg.event_calendar.handleAllDayField);
+
+ $('.elgg-input-date[name="start_date"], .elgg-input-date[name="end_date"]').datepicker({
+ dateFormat: 'yy-mm-dd',
+ numberOfMonths: 3,
+ onSelect: elgg.event_calendar.handleDateRangeSelect,
+ });
+}
+
+elgg.event_calendar.handleScheduleType = function(e) {
+ var st = $('input.elgg-input-radio[name="schedule_type"]:checked').val();
+ if (st == 'poll') {
+ $(".event-calendar-edit-date-wrapper").hide();
+ $(".event-calendar-edit-reminder-wrapper").hide();
+ $(".event-calendar-edit-form-membership-block").hide();
+ $(".event-calendar-edit-form-share-block").hide();
+ } else {
+ $(".event-calendar-edit-date-wrapper").show();
+ $(".event-calendar-edit-reminder-wrapper").show();
+ $(".event-calendar-edit-form-membership-block").show();
+ $(".event-calendar-edit-form-share-block").show();
+ if (st == 'all_day') {
+ $("#event-calendar-start-time-wrapper").hide();
+ $("#event-calendar-end-time-wrapper").hide();
+ } else {
+ $("#event-calendar-start-time-wrapper").show();
+ $("#event-calendar-end-time-wrapper").show();
+ }
+ }
+}
+
+elgg.event_calendar.handleAllDayField = function(e) {
+ var field = $('[name="start_time"]');
+ if (field.attr('disabled') == 'disabled') {
+ field.removeAttr('disabled');
+ } else {
+ field.attr('disabled','disabled');
+ }
+
+ field = $('[name="end_time"]');
+ if (field.attr('disabled') == 'disabled') {
+ field.removeAttr('disabled');
+ } else {
+ field.attr('disabled','disabled');
+ }
+}
+
+elgg.event_calendar.handleDateRangeSelect = function(selectedDate) {
+ if (this.name == 'start_date') {
+ $('.elgg-input-date[name="end_date"]').datepicker("option", "minDate", selectedDate);
+ } else {
+ $('.elgg-input-date[name="start_date"]').datepicker("option", "maxDate", selectedDate);
+ }
+}
+
+elgg.event_calendar.handleEditFormSubmit = function(e) {
+ if ($.trim($('[name="title"]').val()) == '') {
+ alert(elgg.echo('event_calendar:edit_form:error:missing_title'));
+ e.preventDefault();
+ }
+}
+
+elgg.event_calendar.setRepeatingClass = function(e) {
+ var id = $(this).attr('id');
+ if ($("[name='"+id+"-value']").val() == 1) {
+ $(this).removeClass('event-calendar-repeating-unselected');
+ $(this).addClass('event-calendar-repeating-selected');
+ }
+}
+
+elgg.event_calendar.handleRepeatingSelect = function(e) {
+ $(this).removeClass('event-calendar-repeating-unselected');
+ $(this).addClass('event-calendar-repeating-selected');
+ var id = $(this).attr('id');
+ $("[name='"+id+"-value']").val(1);
+}
+
+elgg.event_calendar.handleRepeatingUnselect = function(e) {
+ $(this).removeClass('event-calendar-repeating-selected');
+ $(this).addClass('event-calendar-repeating-unselected');
+ var id = $(this).attr('id');
+ $("[name='"+id+"-value']").val(0);
+}
+
+elgg.event_calendar.handleRegionChange = function(e) {
+ url = $('#event-calendar-region-url-start').val()+"/"+escape($('#event-calendar-region').val());
+ elgg.forward(url);
+}
+
+elgg.event_calendar.handleIcalPopup = function(e) {
+ this.href = '#event-calendar-ical';
+ e.preventDefault();
+}
+
+elgg.event_calendar.handlePagedPersonalCalendarToggle = function() {
+ guid = parseInt($(this).attr('id').substring('event_calendar_paged_checkbox_'.length));
+ elgg.event_calendar.togglePagedPersonalCalendar(guid);
+}
+elgg.event_calendar.togglePagedPersonalCalendar = function(guid) {
+ elgg.action('event_calendar/toggle_personal_calendar',
+ {
+ data: {event_guid: guid},
+ success: function (res) {
+ var success = res.success;
+ var msg = res.message;
+ if (success) {
+ elgg.system_message(msg,2000);
+ } else {
+ elgg.register_error(msg,2000);
+ }
+ //$('#event_calendar_paged_messages').html(msg);
+ if (!success) {
+ // action failed so toggle checkbox
+ $("#event_calendar_paged_checkbox_"+guid).attr('checked',!$("#event_calendar_paged_checkbox_"+guid).attr('checked'));
+ }
+ }
+ }
+ );
+}
+
+elgg.event_calendar.handleDisplayPagePersonalCalendarToggle = function() {
+ var guidBit = $(this).attr('id').substring('event_calendar_user_data_'.length);
+ var guids = guidBit.split('_');
+ var event_guid = parseInt(guids[0]);
+ var user_guid = parseInt(guids[1]);
+ elgg.event_calendar.toggleDisplayPagePersonalCalendar(event_guid,user_guid);
+}
+
+elgg.event_calendar.toggleDisplayPagePersonalCalendar = function(event_guid,user_guid) {
+ elgg.action('event_calendar/toggle_personal_calendar',
+ {
+ data: {event_guid: event_guid,user_guid: user_guid, other: 'yes'},
+ success: function (res) {
+ var success = res.success;
+ var msg = res.message;
+ if (success) {
+ var button_text = res.button_text;
+ $('#event_calendar_user_data_'+event_guid+'_'+user_guid).val(button_text);
+ //elgg.system_message(msg,2000);
+ } else {
+ elgg.register_error(msg,2000);
+ }
+ }
+ }
+ );
+}
+
+elgg.register_hook_handler('init', 'system', elgg.event_calendar.init);
+//</script> \ No newline at end of file