diff options
author | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-02-26 14:23:32 +0000 |
---|---|---|
committer | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-02-26 14:23:32 +0000 |
commit | c1411ffc81908882edaace315c46e500419d2aba (patch) | |
tree | 73ea8aa0a8a10c2a2a85977409f5ff4ae8968115 | |
parent | 1ab250f2a8e90c4aa24ada873f98c81dbdd4ae93 (diff) | |
download | elgg-c1411ffc81908882edaace315c46e500419d2aba.tar.gz elgg-c1411ffc81908882edaace315c46e500419d2aba.tar.bz2 |
Refs #2982 adding and deleting friend collections works - editing does not
git-svn-id: http://code.elgg.org/elgg/trunk@8490 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r-- | actions/friends/collections/add.php (renamed from actions/friends/addcollection.php) | 0 | ||||
-rw-r--r-- | actions/friends/collections/delete.php (renamed from actions/friends/deletecollection.php) | 0 | ||||
-rw-r--r-- | actions/friends/collections/edit.php (renamed from actions/friends/editcollection.php) | 0 | ||||
-rw-r--r-- | engine/lib/users.php | 14 | ||||
-rw-r--r-- | pages/friends/collections/add.php (renamed from pages/friends/add.php) | 9 | ||||
-rw-r--r-- | pages/friends/collections/pickercallback.php (renamed from pages/friends/pickercallback.php) | 32 | ||||
-rw-r--r-- | pages/friends/collections/view.php (renamed from pages/friends/collections.php) | 0 | ||||
-rw-r--r-- | pages/friends/edit.php | 30 | ||||
-rw-r--r-- | views/default/core/friends/collection.php | 32 | ||||
-rw-r--r-- | views/default/core/friends/collections.php | 13 | ||||
-rw-r--r-- | views/default/core/friends/collectiontabs.php | 31 | ||||
-rw-r--r-- | views/default/forms/friends/collectionfields.php | 15 | ||||
-rw-r--r-- | views/default/forms/friends/collections/edit.php | 53 | ||||
-rw-r--r-- | views/default/forms/friends/edit.php | 53 |
14 files changed, 136 insertions, 146 deletions
diff --git a/actions/friends/addcollection.php b/actions/friends/collections/add.php index eac8bced8..eac8bced8 100644 --- a/actions/friends/addcollection.php +++ b/actions/friends/collections/add.php diff --git a/actions/friends/deletecollection.php b/actions/friends/collections/delete.php index f0ceaf023..f0ceaf023 100644 --- a/actions/friends/deletecollection.php +++ b/actions/friends/collections/delete.php diff --git a/actions/friends/editcollection.php b/actions/friends/collections/edit.php index 8fd1eae18..8fd1eae18 100644 --- a/actions/friends/editcollection.php +++ b/actions/friends/collections/edit.php diff --git a/engine/lib/users.php b/engine/lib/users.php index fd68ef276..1b9a6128b 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -1145,18 +1145,20 @@ function friends_of_page_handler($page_elements) { */ function collections_page_handler($page_elements) { elgg_set_context('friends'); + $base = elgg_get_config('path'); if (isset($page_elements[0])) { if ($page_elements[0] == "add") { set_page_owner(elgg_get_logged_in_user_guid()); collections_submenu_items(); - require_once(dirname(dirname(dirname(__FILE__))) . "/pages/friends/add.php"); + require_once "{$base}pages/friends/collections/add.php"; } else { - if ($user = get_user_by_username($page_elements[0])) { + $user = get_user_by_username($page_elements[0]); + if ($user) { set_page_owner($user->getGUID()); if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) { collections_submenu_items(); } - require_once(dirname(dirname(dirname(__FILE__))) . "/pages/friends/collections.php"); + require_once "{$base}pages/friends/collections/view.php"; } } } @@ -1566,9 +1568,9 @@ function users_init() { elgg_register_action('avatar/crop'); elgg_register_action('profile/edit'); - elgg_register_action('friends/addcollection'); - elgg_register_action('friends/deletecollection'); - elgg_register_action('friends/editcollection'); + elgg_register_action('friends/collections/add'); + elgg_register_action('friends/collections/delete'); + elgg_register_action('friends/collections/edit'); elgg_register_plugin_hook_handler('entity:icon:url', 'user', 'user_avatar_hook'); diff --git a/pages/friends/add.php b/pages/friends/collections/add.php index 96da26ae1..51425db37 100644 --- a/pages/friends/add.php +++ b/pages/friends/collections/add.php @@ -13,10 +13,13 @@ $title = elgg_echo('friends:collections:add'); $content = elgg_view_title($title); -$content .= elgg_view_form('friends/edit', array(), array( +$form_body = elgg_view('forms/friends/collections/edit', array( 'friends' => get_user_friends(elgg_get_logged_in_user_guid(), "", 9999) - ) -); +)); +$content .= elgg_view('input/form', array( + 'action' => 'action/friends/collections/add', + 'body' => $form_body, +)); $body = elgg_view_layout('one_sidebar', array('content' => $content)); diff --git a/pages/friends/pickercallback.php b/pages/friends/collections/pickercallback.php index f613f1ae1..8da44d8c0 100644 --- a/pages/friends/pickercallback.php +++ b/pages/friends/collections/pickercallback.php @@ -7,7 +7,7 @@ */ // Load Elgg engine -require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); +require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/engine/start.php"); $site_url = elgg_get_site_url(); @@ -32,22 +32,38 @@ if (!$pageowner) { // Depending on the view type, launch a different view switch($type) { case 'list': - $js_segment = elgg_view('core/friends/tablelistcountupdate', - array('friendspicker' => $friendspicker, 'count' => sizeof($members))); - $content = elgg_view('core/friends/tablelist', - array('entities' => $members, 'content' => $js_segment)); + $js_segment = elgg_view('core/friends/tablelistcountupdate', array( + 'friendspicker' => $friendspicker, + 'count' => sizeof($members), + )); + $content = elgg_view('core/friends/tablelist', array( + 'entities' => $members, + 'content' => $js_segment, + )); break; default: $friends = $pageowner->getFriends('', 9999); + $params = array( + 'collection' => get_access_collection($collection), + 'friends' => $friends, + 'friendspicker' => $friendspicker, + ); + $content = elgg_view_form('friends/collections/edit', array(), $params); + /* + $form_body = elgg_view('input/hidden', array( + 'name' => 'collection_id', + 'value' => get_access_collection($collection)->id, + )); $content = elgg_view('input/friendspicker', array( 'entities' => $friends, 'value' => $members, 'callback' => true, 'friendspicker' => $friendspicker, - 'formcontents' => elgg_view('forms/friends/collectionfields', - array('collection' => get_access_collection($collection))), - 'formtarget' => $site_url . 'action/friends/editcollection', + 'formcontents' => $form_body, + 'formtarget' => $site_url . 'action/friends/collections/edit', )); + * + */ break; } diff --git a/pages/friends/collections.php b/pages/friends/collections/view.php index fa7527f4d..fa7527f4d 100644 --- a/pages/friends/collections.php +++ b/pages/friends/collections/view.php diff --git a/pages/friends/edit.php b/pages/friends/edit.php deleted file mode 100644 index 665929319..000000000 --- a/pages/friends/edit.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -/** - * Elgg add a collection of friends - * - * @package Elgg - * @subpackage Core - */ - -// You need to be logged in for this one -gatekeeper(); - -$title = elgg_echo('friends:collectionedit'); - -$content = elgg_view_title($title); - -//grab the collection id passed to the edit form -$collection_id = get_input('collection'); - -//get the full collection -$collection = get_access_collection($collection_id); - -//get all members of the collection -$collection_members = get_members_of_access_collection($collection_id); - -$content .= elgg_view_form('friends/edit', array(), array('collection' => $collection, - 'collection_members' => $collection_members)); - -$body = elgg_view_layout('one_sidebar', array('content' => $content)); - -echo elgg_view_page($title, $body);
\ No newline at end of file diff --git a/views/default/core/friends/collection.php b/views/default/core/friends/collection.php index 89c44a2b3..95f5944e7 100644 --- a/views/default/core/friends/collection.php +++ b/views/default/core/friends/collection.php @@ -1,13 +1,10 @@ <?php /** - * Elgg friends collection - * Lists one of a user's friends collections + * View a friends collection * * @package Elgg * @subpackage Core * - * @see collections.php - * * @uses $vars['collection'] The individual friends collection */ @@ -25,8 +22,10 @@ echo "<li><h2>"; if ($coll->owner_guid == elgg_get_logged_in_user_guid()) { echo "<div class=\"friends_collections_controls\">"; echo elgg_view('output/confirmlink', array( - 'href' => 'action/friends/deletecollection?collection=' . $coll->id, - 'class' => 'delete_collection' + 'href' => 'action/friends/collections/delete?collection=' . $coll->id, + 'class' => 'delete_collection', + 'text' => elgg_view_icon('delete'), + 'text_encode' => false, )); echo "</div>"; } @@ -34,16 +33,27 @@ echo $coll->name; echo " (<span id=\"friends_membership_count{$vars['friendspicker']}\">{$count}</span>) </h2>"; // individual collection panels -if ($friends = $vars['collection']->entities) { - $content = elgg_view('core/friends/collectiontabs', array('owner' => elgg_get_logged_in_user_entity(), 'collection' => $vars['collection'], 'friendspicker' => $vars['friendspicker'])); +$friends = $vars['collection']->entities; +if ($friends) { + $content = elgg_view('core/friends/collectiontabs', array( + 'owner' => elgg_get_logged_in_user_entity(), + 'collection' => $vars['collection'], + 'friendspicker' => $vars['friendspicker'], + )); - echo elgg_view('input/friendspicker', array('entities' => $friends, 'value' => $members, 'content' => $content, 'replacement' => '', 'friendspicker' => $vars['friendspicker'])); - ?> + echo elgg_view('input/friendspicker', array( + 'entities' => $friends, + 'value' => $members, + 'content' => $content, + 'replacement' => '', + 'friendspicker' => $vars['friendspicker'], + )); +?> <?php //@todo JS 1.8: no ?> <script type="text/javascript"> $(document).ready(function () { - $('#friends-picker_placeholder<?php echo $vars['friendspicker']; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $vars['collection']->id; ?>'); + $('#friends-picker_placeholder<?php echo $vars['friendspicker']; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/collections/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $vars['collection']->id; ?>'); }); </script> diff --git a/views/default/core/friends/collections.php b/views/default/core/friends/collections.php index 5a052b121..5c1c824e7 100644 --- a/views/default/core/friends/collections.php +++ b/views/default/core/friends/collections.php @@ -9,17 +9,16 @@ * @uses $vars['collections'] The array of friends collections */ -if (!isset($friendspicker)) { - $friendspicker = 0; -} - - if (is_array($vars['collections']) && sizeof($vars['collections'])) { echo "<ul id=\"friends_collections_accordian\">"; - foreach($vars['collections'] as $collection) { + $friendspicker = 0; + foreach ($vars['collections'] as $collection) { $friendspicker++; - echo elgg_view('core/friends/collection', array('collection' => $collection, 'friendspicker' => $friendspicker)); + echo elgg_view('core/friends/collection', array( + 'collection' => $collection, + 'friendspicker' => $friendspicker, + )); } echo "</ul>"; diff --git a/views/default/core/friends/collectiontabs.php b/views/default/core/friends/collectiontabs.php index 168d2cdfb..2fafe6a8c 100644 --- a/views/default/core/friends/collectiontabs.php +++ b/views/default/core/friends/collectiontabs.php @@ -16,38 +16,43 @@ $ownerid = $vars['owner']->getGUID(); ?> -<div id="elgg-tabs"> -<ul> -<li class="selected"><a href="#" class="collectionmembers<?php echo $friendspicker; ?>"><?php echo elgg_echo('friends:collections:members'); ?></a></li> - -<li><a href="#" class="editmembers<?php echo $friendspicker; ?>"><?php echo elgg_echo('friends:collections:edit'); ?></a></li> - +<ul class="elgg-tabs"> + <li class="elgg-state-selected"> + <a href="#" class="collectionmembers<?php echo $friendspicker; ?>"> + <?php echo elgg_echo('friends:collections:members'); ?> + </a> + </li> + <li> + <a href="#" class="editmembers<?php echo $friendspicker; ?>"> + <?php echo elgg_echo('friends:collections:edit'); ?> + </a> + </li> </ul> -</div> + <?php //@todo JS 1.8: no ?> <script type="text/javascript"> $(document).ready(function () { $('a.collectionmembers<?php echo $friendspicker; ?>').click(function () { // load collection members pane - $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); + $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/collections/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); // remove selected state from previous tab - $(this).parent().parent().find("li.selected").removeClass("selected"); + $(this).parent().parent().find("li.elgg-state-selected").removeClass("elgg-state-selected"); // add selected class to current tab - $(this).parent().addClass("selected"); + $(this).parent().addClass("elgg-state-selected"); return false; }); $('a.editmembers<?php echo $friendspicker; ?>').click(function () { // load friends picker pane - $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=picker&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); + $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/collections/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=picker&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); // remove selected state from previous tab - $(this).parent().parent().find("li.selected").removeClass("selected"); + $(this).parent().parent().find("li.elgg-state-selected").removeClass("elgg-state-selected"); // add selected class to current tab - $(this).parent().addClass("selected"); + $(this).parent().addClass("elgg-state-selected"); return false; }); diff --git a/views/default/forms/friends/collectionfields.php b/views/default/forms/friends/collectionfields.php deleted file mode 100644 index 35db3a962..000000000 --- a/views/default/forms/friends/collectionfields.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php -/** - * Elgg friend collections required hidden fields for js friends picker form - * - * @package Elgg - * @subpackage Core - */ - -if (isset($vars['collection'])) { -?> - - <input type="hidden" name="collection_id" value="<?php echo $vars['collection']->id; ?>" /> - -<?php -}
\ No newline at end of file diff --git a/views/default/forms/friends/collections/edit.php b/views/default/forms/friends/collections/edit.php new file mode 100644 index 000000000..975307085 --- /dev/null +++ b/views/default/forms/friends/collections/edit.php @@ -0,0 +1,53 @@ +<?php +/** + * Form body for editing or adding a friend collection + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['collection'] Optionally, the collection to edit + */ + +// Set title, form destination +if (isset($vars['collection'])) { + $title = $vars['collection']->name; + $highlight = 'default'; +} else { + $title = ""; + $highlight = 'all'; +} + +echo "<div><label>" . elgg_echo("friends:collectionname") . "<br/>"; +echo elgg_view("input/text", array( + "name" => "collection_name", + "value" => $title, + )); +echo "</label></div>"; + +echo "<div>"; +if ($vars['collection_members']) { + echo elgg_echo("friends:collectionfriends") . "<br />"; + foreach ($vars['collection_members'] as $mem) { + echo elgg_view_entity_icon($mem, 'tiny'); + echo $mem->name; + } +} +echo "</div>"; + +echo "<div><label>" . elgg_echo("friends:addfriends") . "</label>"; +echo elgg_view('input/friendspicker', array( + 'entities' => $vars['friends'], + 'name' => 'friends_collection', + 'highlight' => $highlight, +)); +echo "</div>"; + +echo "<div>"; +if (isset($vars['collection'])) { + echo elgg_view('input/hidden', array( + 'name' => 'collection_id', + 'value' => $vars['collection']->id, + )); +} +echo elgg_view('input/submit', array('name' => 'submit', 'value' => elgg_echo('save'))); +echo "</div>"; diff --git a/views/default/forms/friends/edit.php b/views/default/forms/friends/edit.php deleted file mode 100644 index 902113c9c..000000000 --- a/views/default/forms/friends/edit.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php -/** - * Elgg friend collections add/edit - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['object'] Optionally, the collection edit - */ - -// var_export($vars['collection'][0]->id); - -// Set title, form destination -if (isset($vars['collection'])) { - $action = "friends/editcollection"; - $title = $vars['collection'][0]->name; - $highlight = 'default'; -} else { - $action = "friends/addcollection"; - $title = ""; - $highlight = 'all'; -} - - -$form_body = "<div class='contentWrapper'><div><label>" . elgg_echo("friends:collectionname") . "<br />" . - elgg_view("input/text", array( - "name" => "collection_name", - "value" => $title, - )) . "</label></div>"; - -$form_body .= "<div>"; - -if($vars['collection_members']){ - $form_body .= elgg_echo("friends:collectionfriends") . "<br />"; - foreach($vars['collection_members'] as $mem){ - $form_body .= elgg_view_entity_icon($mem, 'tiny'); - $form_body .= $mem->name; - } -} - -$form_body .= "</div>"; - -$form_body .= "<div><label>" . elgg_echo("friends:addfriends") . "</label>". - elgg_view('input/friendspicker',array('entities' => $vars['friends'], 'name' => 'friends_collection', 'highlight' => $highlight)) . "</div>"; - -$form_body .= "<div>"; -if (isset($vars['collection'])) { - $form_body .= elgg_view('input/hidden', array('name' => 'collection_id', 'value' => "{$vars['collection'][0]->id}")); -} -$form_body .= elgg_view('input/submit', array('name' => 'submit', 'value' => elgg_echo('save'))); -$form_body .= "</div></div>"; - -echo $form_body;
\ No newline at end of file |