--- /dev/null
+<?php
+$event_guid = get_input('event_guid');
+$event = get_entity($event_guid);
+if (elgg_instanceof($event,'object','event_calendar') && $event->canEdit()) {
+ $members = get_input('members');
+ // clear the event from all personal calendars
+ remove_entity_relationships($event_guid, 'personal_event', TRUE);
+ // add event to personal calendars
+ foreach ($members as $user_guid) {
+ add_entity_relationship($user_guid,'personal_event',$event_guid);
+ }
+ system_message(elgg_echo('event_calendar:manage_subscribers:success'));
+ forward($event->getURL());
+} else {
+ register_error(elgg_echo('event_calendar:manage_subscribers:error'));
+ forward();
+}
'event_calendar:listing_title:friends' => "Friends' calendars",
'event_calendar:manage_users:title' => "Manage subscribers for \"%s\"",
'event_calendar:manage_users:breadcrumb' => "Manage subscribers",
- 'event_calendar:manage_users:description' => "You can add or remove events from personal calendars using the buttons below.",
+ 'event_calendar:manage_users:description' => "Add or remove events from personal calendars.",
'event_calendar:manage_users:unauthorized' => "Error: you are not authorised to manage personal calendars for this event.",
'event_calendar:add_to_group_members:success' => "This event has been added to the personal calendars of all group members.",
'event_calendar:add_to_group_members:error' => "Error: could not add this event to the personal calendars of group members.",
'event_calendar:add_to_group_members:button' => "Add to all",
'event_calendar:remove_from_group_members:button' => "Remove from all",
+ 'event_calendar:manage_subscribers:success' => "Personal calendars updated.",
+ 'event_calendar:manage_subscribers:error' => "Error: could not update personal calendars.",
+
/**
* Event calendar river
**/
elgg_push_context('groups');
elgg_set_page_owner_guid($event->container_guid);
elgg_push_breadcrumb(elgg_echo('event_calendar:group_breadcrumb'), 'event_calendar/group/'.$event->container_guid);
- $users = $event_container->getMembers($limit,$offset);
- $count = $event_container->getMembers($limit,$offset,TRUE);
elgg_register_menu_item('title', array(
'name' => 'remove_from_group_members',
'href' => elgg_add_action_tokens_to_url('action/event_calendar/remove_from_group_members?event_guid='.$event_guid),
'text' => elgg_echo('event_calendar:add_to_group_members:button'),
'class' => 'elgg-button elgg-button-action',
));
+ $users = $event_container->getMembers($limit,$offset);
+ $count = $event_container->getMembers($limit,$offset,TRUE);
+ elgg_extend_view('user/default','event_calendar/calendar_toggle');
+ $options = array(
+ 'full_view' => FALSE,
+ 'list_type_toggle' => FALSE,
+ 'limit'=>$limit,
+ 'event_calendar_event'=>$event,
+ 'pagination' => TRUE,
+ 'count'=>$count,
+ );
+ $content .= elgg_view_entity_list($users,$options,$offset,$limit);
} else {
elgg_push_breadcrumb(elgg_echo('event_calendar:show_events_title'),'event_calendar/list');
- $users = elgg_get_entities(array('type'=>'user','limit'=>$limit,'offset'=>$offset));
- $count = elgg_get_entities(array('type'=>'user','count'=>TRUE));
+ $content = '<p>'.elgg_echo('event_calendar:manage_users:description').'</p>';
+ $content .= elgg_view_form('event_calendar/manage_subscribers',array(),array('event'=>$event));
}
elgg_push_breadcrumb($event->title,$event->getURL());
elgg_push_breadcrumb(elgg_echo('event_calendar:manage_users:breadcrumb'));
- $options = array(
- 'full_view' => FALSE,
- 'list_type_toggle' => FALSE,
- 'limit'=>$limit,
- 'event_calendar_event'=>$event,
- 'pagination' => TRUE,
- 'count'=>$count,
- );
- elgg_extend_view('user/default','event_calendar/calendar_toggle');
- $content = '<p>'.elgg_echo('event_calendar:manage_users:description').'</p>';
- $content .= elgg_view_entity_list($users,$options,$offset,$limit);
+
} else {
$content = elgg_echo('event_calendar:manage_users:unauthorized');
}
elgg_register_action("event_calendar/remove_from_group","$action_path/remove_from_group.php");
elgg_register_action("event_calendar/add_to_group_members","$action_path/add_to_group_members.php");
elgg_register_action("event_calendar/remove_from_group_members","$action_path/remove_from_group_members.php");
+ elgg_register_action("event_calendar/manage_subscribers","$action_path/manage_subscribers.php");
}
--- /dev/null
+<?php
+$event = $vars['event'];
+$users = event_calendar_get_users_for_event($event->guid,0);
+$guids = array();
+foreach($users as $user) {
+ $guids[] = $user->guid;
+}
+// TODO: if the event container is a group need to restrict user picker to the members of the group?
+$content = elgg_view('input/userpicker_plus',array('value'=> $guids));
+$content .= '<br /><br />';
+$content .= elgg_view('input/hidden',array('name'=>'event_guid','value'=>$event->guid));
+$content .= elgg_view('input/submit',array('value'=>elgg_echo('submit'),'name'=>'submit_manage_subscribers','id'=>'submit-manage-subscribers'));
+
+echo $content;