diff options
Diffstat (limited to 'actions')
-rw-r--r-- | actions/event_calendar/add_to_group.php | 11 | ||||
-rw-r--r-- | actions/event_calendar/addtocalendar.php | 33 | ||||
-rw-r--r-- | actions/event_calendar/edit.php | 4 | ||||
-rw-r--r-- | actions/event_calendar/killrequest.php | 23 | ||||
-rw-r--r-- | actions/event_calendar/remove_from_group.php | 8 | ||||
-rw-r--r-- | actions/event_calendar/toggle_personal_calendar.php | 32 |
6 files changed, 109 insertions, 2 deletions
diff --git a/actions/event_calendar/add_to_group.php b/actions/event_calendar/add_to_group.php new file mode 100644 index 000000000..b8c18ebb0 --- /dev/null +++ b/actions/event_calendar/add_to_group.php @@ -0,0 +1,11 @@ +<?php +$event_id = get_input("event_id",0); +$group_id = get_input("group_id",0); +$event = get_entity($event_id); +$group = get_entity($group_id); +if ($group && $group->canEdit()) { + add_entity_relationship($event_id, "display_on_group", $group_id ); + system_message(elgg_echo('event_calendar:add_to_group:success')); +} +forward($event->getUrl()); +?>
\ No newline at end of file diff --git a/actions/event_calendar/addtocalendar.php b/actions/event_calendar/addtocalendar.php new file mode 100644 index 000000000..e5b689d73 --- /dev/null +++ b/actions/event_calendar/addtocalendar.php @@ -0,0 +1,33 @@ +<?php +// this action allows an admin or event owner to approve a calendar request + +elgg_load_library('elgg:event_calendar'); + +$user_guid = get_input('user_guid', elgg_get_logged_in_user_guid()); +$event_guid = get_input('event_guid'); + +$user = get_entity($user_guid); +$event = get_entity($event_guid); + +if (elgg_instanceof($event, 'object', 'event_calendar') + && elgg_instanceof($user, 'user') + && event_calendar_personal_can_manage($event,$user_guid) + && check_entity_relationship($user_guid, 'event_calendar_request', $event_guid)) { + + if (event_calendar_add_personal_event($event_guid,$user_guid)) { + remove_entity_relationship($user_guid, 'event_calendar_request', $event_guid); + notify_user($user_guid, $CONFIG->site->guid, elgg_echo('event_calendar:add_users_notify:subject'), + sprintf( + elgg_echo('event_calendar:add_users_notify:body'), + $user->name, + $event->title, + $event->getURL() + ) + ); + system_message(elgg_echo('event_calendar:request_approved')); + } +} else { + register_error(elgg_echo('event_calendar:review_requests:error:approve')); +} + +forward(REFERER); diff --git a/actions/event_calendar/edit.php b/actions/event_calendar/edit.php index 2365d3965..0cc956d73 100644 --- a/actions/event_calendar/edit.php +++ b/actions/event_calendar/edit.php @@ -29,9 +29,9 @@ if ($event) { } else { $event_calendar_autopersonal = elgg_get_plugin_setting('autopersonal', 'event_calendar'); if (!$event_calendar_autopersonal || ($event_calendar_autopersonal == 'yes')) { - event_calendar_add_personal_event($event_guid,$user_guid); + event_calendar_add_personal_event($event->guid,$user_guid); } - add_to_river('river/object/event_calendar/create','create',$user_guid,$event_guid); + add_to_river('river/object/event_calendar/create','create',$user_guid,$event->guid); system_message(elgg_echo('event_calendar:add_event_response')); } diff --git a/actions/event_calendar/killrequest.php b/actions/event_calendar/killrequest.php new file mode 100644 index 000000000..b58e804cd --- /dev/null +++ b/actions/event_calendar/killrequest.php @@ -0,0 +1,23 @@ +<?php +// this action allows an admin or event owner to reject a calendar request + +elgg_load_library('elgg:event_calendar'); + +$user_guid = get_input('user_guid', elgg_get_logged_in_user_guid()); +$event_guid = get_input('event_guid'); + +$user = get_entity($user_guid); +$event = get_entity($event_guid); + +if (elgg_instanceof($event, 'object', 'event_calendar') + && elgg_instanceof($user, 'user') + && event_calendar_personal_can_manage($event,$user_guid) + && check_entity_relationship($user_guid, 'event_calendar_request', $event_guid)) { + + remove_entity_relationship($user->guid, 'event_calendar_request', $event_guid); + system_message(elgg_echo('event_calendar:requestkilled')); +} else { + register_error(elgg_echo('event_calendar:review_requests:error:reject')); +} + +forward(REFERER); diff --git a/actions/event_calendar/remove_from_group.php b/actions/event_calendar/remove_from_group.php new file mode 100644 index 000000000..4a7185245 --- /dev/null +++ b/actions/event_calendar/remove_from_group.php @@ -0,0 +1,8 @@ +<?php +$event_id = get_input("event_id",0); +$group_id = get_input("group_id",0); +$event = get_entity($event_id); +remove_entity_relationship($event_id, "display_on_group", $group_id ); +system_message(elgg_echo('event_calendar:remove_from_group:success')); +forward($event->getUrl()); +?>
\ No newline at end of file diff --git a/actions/event_calendar/toggle_personal_calendar.php b/actions/event_calendar/toggle_personal_calendar.php new file mode 100644 index 000000000..26192953f --- /dev/null +++ b/actions/event_calendar/toggle_personal_calendar.php @@ -0,0 +1,32 @@ +<?php +elgg_load_library('elgg:event_calendar'); +$event_guid = get_input('event_guid',0); +$user_guid = get_input('user_id',elgg_get_logged_in_user_guid()); +$other = get_input('other',''); +if ($other) { + $remove_response = elgg_echo('event_calendar:added_to_the_calendar'); + $add_response = elgg_echo('event_calendar:removed_from_the_calendar'); + $add_error = elgg_echo('event_calendar:add_to_the_calendar_error'); +} else { + $remove_response = elgg_echo('event_calendar:remove_from_my_calendar_response'); + $add_response = elgg_echo('event_calendar:add_to_my_calendar_response'); + $add_error = elgg_echo('event_calendar:add_to_my_calendar_error'); +} +// three character prefix to indicate success or failure + +if (event_calendar_has_personal_event($event_guid,$user_guid)) { + $button_text = elgg_echo('event_calendar:add_to_the_calendar'); + event_calendar_remove_personal_event($event_guid,$user_guid); + $response = array('success'=>TRUE, 'message' => $remove_response, 'button_text'=>$button_text); +} else { + if (event_calendar_add_personal_event($event_guid,$user_guid)) { + $button_text = elgg_echo('event_calendar:remove_from_the_calendar_button'); + $response = array('success'=>TRUE, 'message' => $add_response, 'button_text'=>$button_text); + } else { + $response = array('success'=>FALSE, 'message' =>$add_error); + } +} + +echo json_encode($response); + +exit; |