aboutsummaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
Diffstat (limited to 'actions')
-rw-r--r--actions/event_calendar/add_to_group.php11
-rw-r--r--actions/event_calendar/addtocalendar.php33
-rw-r--r--actions/event_calendar/edit.php4
-rw-r--r--actions/event_calendar/killrequest.php23
-rw-r--r--actions/event_calendar/remove_from_group.php8
-rw-r--r--actions/event_calendar/toggle_personal_calendar.php32
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;