]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
added new userpicker for site-wide event user management
authorKevin Jardine <kevinjardine@yahoo.com>
Mon, 2 Jan 2012 14:09:06 +0000 (15:09 +0100)
committerKevin Jardine <kevinjardine@yahoo.com>
Mon, 2 Jan 2012 14:09:06 +0000 (15:09 +0100)
actions/event_calendar/manage_subscribers.php [new file with mode: 0644]
languages/en.php
models/model.php
start.php
views/default/forms/event_calendar/manage_subscribers.php [new file with mode: 0644]

diff --git a/actions/event_calendar/manage_subscribers.php b/actions/event_calendar/manage_subscribers.php
new file mode 100644 (file)
index 0000000..2121500
--- /dev/null
@@ -0,0 +1,17 @@
+<?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();
+}
index 285392e62e0747238e76b1b864d8c733263d94e9..d160859949296c466e51f6c77a62d506bb797ce9 100644 (file)
@@ -230,7 +230,7 @@ You can manage calendar requests for this event here:
        '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.",
@@ -239,6 +239,9 @@ You can manage calendar requests for this event here:
        '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
         **/
index db2bdf95dfbbcbfa73c047883782eddb594da67a..65a9215af8fe85d5cf256e01d32b2919a0c0f84a 100644 (file)
@@ -1561,8 +1561,6 @@ function event_calendar_get_page_content_manage_users($event_guid) {
                                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),
@@ -1575,24 +1573,26 @@ function event_calendar_get_page_content_manage_users($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');
                }
index b8c79ca3715a36dc871e72693ce0be7af32476e3..5cfc9fd3a4d72a7b89d8c2208129aa3f8b308d7d 100644 (file)
--- a/start.php
+++ b/start.php
@@ -99,6 +99,7 @@ function event_calendar_init() {
        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");
 
 }
 
diff --git a/views/default/forms/event_calendar/manage_subscribers.php b/views/default/forms/event_calendar/manage_subscribers.php
new file mode 100644 (file)
index 0000000..8039c50
--- /dev/null
@@ -0,0 +1,14 @@
+<?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;