]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Refs #2982 adding and deleting friend collections works - editing does not
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 26 Feb 2011 14:23:32 +0000 (14:23 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 26 Feb 2011 14:23:32 +0000 (14:23 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8490 36083f99-b078-4883-b0ff-0f9b5a30f544

14 files changed:
actions/friends/collections/add.php [moved from actions/friends/addcollection.php with 100% similarity]
actions/friends/collections/delete.php [moved from actions/friends/deletecollection.php with 100% similarity]
actions/friends/collections/edit.php [moved from actions/friends/editcollection.php with 100% similarity]
engine/lib/users.php
pages/friends/collections/add.php [moved from pages/friends/add.php with 70% similarity]
pages/friends/collections/pickercallback.php [moved from pages/friends/pickercallback.php with 52% similarity]
pages/friends/collections/view.php [moved from pages/friends/collections.php with 100% similarity]
pages/friends/edit.php [deleted file]
views/default/core/friends/collection.php
views/default/core/friends/collections.php
views/default/core/friends/collectiontabs.php
views/default/forms/friends/collectionfields.php [deleted file]
views/default/forms/friends/collections/edit.php [new file with mode: 0644]
views/default/forms/friends/edit.php [deleted file]

index fd68ef2761f37021c3ba73eb2c7239ec43f76491..1b9a6128b7e3400094ccbdeb94ff930fd2f0ae6c 100644 (file)
@@ -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');
 
similarity index 70%
rename from pages/friends/add.php
rename to pages/friends/collections/add.php
index 96da26ae17da0689f26d5f230e81445866def137..51425db372b33af2f227bdcc999bf741d3ba0093 100644 (file)
@@ -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));
 
similarity index 52%
rename from pages/friends/pickercallback.php
rename to pages/friends/collections/pickercallback.php
index f613f1ae10bd3e7cd4baa7e6b6c0a7cd3cfb9598..8da44d8c0e202e7474a4ebbcd45f3cdab95e9b9f 100644 (file)
@@ -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/edit.php b/pages/friends/edit.php
deleted file mode 100644 (file)
index 6659293..0000000
+++ /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
index 89c44a2b3ed790cd59347c5cf1c07c9baeec782c..95f5944e7346d50d8dada132093b98efb3e82d11 100644 (file)
@@ -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>
index 5a052b121dc92a489272cbaf5d37474f7a292c9d..5c1c824e7ce5d8d1801f7e9dd2051b51a664c088 100644 (file)
@@ -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>";
index 168d2cdfb7979598174a35fa7d5c9bc6cc18301b..2fafe6a8c4cc56d61e1c7eea46966bfa27aec861 100644 (file)
@@ -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 (file)
index 35db3a9..0000000
+++ /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 (file)
index 0000000..9753070
--- /dev/null
@@ -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 (file)
index 902113c..0000000
+++ /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