]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch 'uiredesign' of ../evan into uiredesign
authorsarven <csarven@plantard.controlezvous.ca>
Thu, 15 Jan 2009 23:47:43 +0000 (23:47 +0000)
committersarven <csarven@plantard.controlezvous.ca>
Thu, 15 Jan 2009 23:47:43 +0000 (23:47 +0000)
.gitignore
actions/all.php
lib/action.php
lib/noticelist.php
lib/personal.php
lib/personalgroupnav.php [new file with mode: 0644]
lib/publicgroupnav.php

index 0c0fde801083ba30cca5f22c95842e3d99032306..8c94886e7cdaf2ba87bb1008f5e977af90f4c48c 100644 (file)
@@ -5,3 +5,5 @@ config.php
 .htaccess
 *.tmproj
 dataobject.ini
+*~
+*.bak
index 4ad7f12aee3deb798bc142937dad0a97187cbc19..548d7a103491044c3631085f931c9ad005777f41 100644 (file)
 
 if (!defined('LACONICA')) { exit(1); }
 
-require_once(INSTALLDIR.'/actions/showstream.php');
+require_once INSTALLDIR.'/lib/personalgroupnav.php';
+require_once INSTALLDIR.'/lib/noticelist.php';
+require_once INSTALLDIR.'/lib/feedlist.php';
 
-class AllAction extends StreamAction
+class AllAction extends Action
 {
-
+    var $user = null;
+    var $page = null;
+    
+    function isReadOnly()
+    {
+        return true;
+    }
+    
+    function prepare($args)
+    {
+       parent::prepare($args);
+        $nickname = common_canonical_nickname($this->arg('nickname'));
+       $this->user = User::staticGet('nickname', $nickname);
+        $this->page = $this->trimmed('page');
+        if (!$this->page) {
+            $this->page = 1;
+        }
+       return true;
+    }
+    
     function handle($args)
     {
-
         parent::handle($args);
-
-        $nickname = common_canonical_nickname($this->arg('nickname'));
-        $user = User::staticGet('nickname', $nickname);
-
-        if (!$user) {
+       
+        if (!$this->user) {
             $this->clientError(_('No such user.'));
             return;
         }
-
-        $profile = $user->getProfile();
-
-        if (!$profile) {
-            $this->serverError(_('User has no profile.'));
-            return;
-        }
-
-        # Looks like we're good; show the header
-
-        common_show_header(sprintf(_("%s and friends"), $profile->nickname),
-                           array($this, 'show_header'), $user,
-                           array($this, 'show_top'));
-
-        $this->show_notices($user);
-
-        common_show_footer();
+       
+       $this->showPage();
     }
-
-    function show_header($user)
+    
+    function title()
+    {
+       if ($this->page > 1) {
+           return sprintf(_("%s and friends, page %d"), $this->user->nickname, $this->page);
+       } else {
+           return sprintf(_("%s and friends"), $this->user->nickname);
+       }
+    }
+    
+    function showFeeds()
     {
         $this->element('link', array('rel' => 'alternate',
                                      'href' => common_local_url('allrss', array('nickname' =>
-                                                                               $user->nickname)),
+                                                                               $this->user->nickname)),
                                      'type' => 'application/rss+xml',
-                                     'title' => sprintf(_('Feed for friends of %s'), $user->nickname)));
+                                     'title' => sprintf(_('Feed for friends of %s'), $this->user->nickname)));
     }
-
-    function show_top($user)
+    
+    function showLocalNav()
     {
-        $cur = common_current_user();
-
-        if ($cur && $cur->id == $user->id) {
-            common_notice_form('all');
-        }
-
-        $this->views_menu();
-
-        $this->show_feeds_list(array(0=>array('href'=>common_local_url('allrss', array('nickname' => $user->nickname)),
-                                              'type' => 'rss',
-                                              'version' => 'RSS 1.0',
-                                              'item' => 'allrss')));
+       $nav = new PersonalGroupNav($this);
+       $nav->show();
     }
 
-    function show_notices($user)
+    function showExportData()
     {
-
-        $page = $this->trimmed('page');
-        if (!$page) {
-            $page = 1;
-        }
-
-        $notice = $user->noticesWithFriends(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
-
-        $cnt = $this->show_notice_list($notice);
-
-        common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
-                          $page, 'all', array('nickname' => $user->nickname));
+        $fl = new FeedList($this);
+        $fl->show(array(0=>array('href'=>common_local_url('allrss', array('nickname' => $this->user->nickname)),
+                                'type' => 'rss',
+                                'version' => 'RSS 1.0',
+                                'item' => 'allrss')));
+    }
+    
+    function showContent()
+    {
+        $notice = $this->user->noticesWithFriends(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
+       
+        $nl = new NoticeList($notice, $this);
+
+        $cnt = $nl->show();
+       
+        $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE,
+                          $this->page, 'all', array('nickname' => $this->user->nickname));
     }
 }
index f9f5acf2c7dc6a57a8aaa9de60a63fb45dc88276..90bb678703268c1d3ea67fd43f4765f697587418 100644 (file)
@@ -297,7 +297,12 @@ class Action extends HTMLOutputter // lawsuit
     function showCore()
     {
         $this->elementStart('div', array('id' => 'core'));
+        $this->elementStart('dl', array('id' => 'site_nav_local_views'));
+        $this->element('dt', null, _('Local views'));
+        $this->elementStart('dd');
         $this->showLocalNav();
+        $this->elementEnd('dd');
+        $this->elementEnd('dl');
         $this->showContentBlock();
         $this->showAside();
         $this->elementEnd('div');
index dd4c4a1881b22590091868d8bac97408244e6677..6f4d1c04e02597fba97f80eaf7cf1e6802d92bef 100644 (file)
@@ -31,6 +31,9 @@ if (!defined('LACONICA')) {
     exit(1);
 }
 
+require_once INSTALLDIR.'/lib/favorform.php';
+require_once INSTALLDIR.'/lib/disfavorform.php';
+
 /**
  * widget for displaying a list of notices
  *
index 4e56c95664813816a9881841aeeb62ddb4f82413..46f9ff6be7a15c7b1eba1afdc67053b26addb4de 100644 (file)
@@ -21,95 +21,10 @@ if (!defined('LACONICA')) { exit(1); }
 
 class PersonalAction extends Action
 {
-
-    function is_readonly()
-    {
-        return true;
-    }
-
     function handle($args)
     {
         parent::handle($args);
         common_set_returnto($this->self_url());
     }
 
-    function views_menu()
-    {
-
-        $user = null;
-        $action = $this->trimmed('action');
-        $nickname = $this->trimmed('nickname');
-
-        if ($nickname) {
-            $user = User::staticGet('nickname', $nickname);
-            $user_profile = $user->getProfile();
-        } else {
-            $user_profile = false;
-        }
-
-        common_element_start('ul', array('id' => 'nav_views'));
-
-        common_menu_item(common_local_url('all', array('nickname' =>
-                                                       $nickname)),
-                         _('Personal'),
-                         sprintf(_('%s and friends'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
-                         $action == 'all');
-        common_menu_item(common_local_url('replies', array('nickname' =>
-                                                              $nickname)),
-                         _('Replies'),
-                         sprintf(_('Replies to %s'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
-                         $action == 'replies');
-        common_menu_item(common_local_url('showstream', array('nickname' =>
-                                                              $nickname)),
-                         _('Profile'),
-                         ($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname,
-                         $action == 'showstream');
-        common_menu_item(common_local_url('showfavorites', array('nickname' =>
-                                                              $nickname)),
-                         _('Favorites'),
-                         sprintf(_('%s\'s favorite notices'), ($user_profile) ? $user_profile->getBestName() : _('User')),
-                         $action == 'showfavorites');
-
-        $cur = common_current_user();
-
-        if ($cur && $cur->id == $user->id) {
-
-            common_menu_item(common_local_url('inbox', array('nickname' =>
-                                                                     $nickname)),
-                             _('Inbox'),
-                             _('Your incoming messages'),
-                             $action == 'inbox');
-            common_menu_item(common_local_url('outbox', array('nickname' =>
-                                                                     $nickname)),
-                             _('Outbox'),
-                             _('Your sent messages'),
-                             $action == 'outbox');
-        }
-
-        common_element_end('ul');
-    }
-
-    function source_link($source)
-    {
-        $source_name = _($source);
-        switch ($source) {
-         case 'web':
-         case 'xmpp':
-         case 'mail':
-         case 'omb':
-         case 'api':
-            common_element('span', 'noticesource', $source_name);
-            break;
-         default:
-            $ns = Notice_source::staticGet($source);
-            if ($ns) {
-                common_element('a', array('href' => $ns->url),
-                               $ns->name);
-            } else {
-                common_element('span', 'noticesource', $source_name);
-            }
-            break;
-        }
-        return;
-    }
 }
diff --git a/lib/personalgroupnav.php b/lib/personalgroupnav.php
new file mode 100644 (file)
index 0000000..5d727a5
--- /dev/null
@@ -0,0 +1,135 @@
+<?php
+/**
+ * Laconica, the distributed open-source microblogging tool
+ *
+ * Base class for all actions (~views)
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category  Action
+ * @package   Laconica
+ * @author    Evan Prodromou <evan@controlyourself.ca>
+ * @author    Sarven Capadisli <csarven@controlyourself.ca>
+ * @copyright 2008 Control Yourself, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+    exit(1);
+}
+
+require_once INSTALLDIR.'/lib/widget.php';
+
+/**
+ * Base class for all actions
+ *
+ * This is the base class for all actions in the package. An action is
+ * more or less a "view" in an MVC framework.
+ *
+ * Actions are responsible for extracting and validating parameters; using
+ * model classes to read and write to the database; and doing ouput.
+ *
+ * @category Output
+ * @package  Laconica
+ * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @author   Sarven Capadisli <csarven@controlyourself.ca>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://laconi.ca/
+ *
+ * @see      HTMLOutputter
+ */
+
+class PersonalGroupNav extends Widget
+{
+    var $action = null;
+
+    /**
+     * Construction
+     *
+     * @param Action $action current action, used for output
+     */
+
+    function __construct($action=null)
+    {
+        parent::__construct($action);
+        $this->action = $action;
+    }
+
+    /**
+     * Show the menu
+     *
+     * @return void
+     */
+
+    function show()
+    {
+        $user = null;
+       
+       // FIXME: we should probably pass this in
+       
+        $action = $this->action->trimmed('action');
+        $nickname = $this->action->trimmed('nickname');
+
+        if ($nickname) {
+            $user = User::staticGet('nickname', $nickname);
+            $user_profile = $user->getProfile();
+        } else {
+            $user_profile = false;
+        }
+
+        $this->out->elementStart('ul', array('id' => 'nav_views'));
+
+        $this->out->menuItem(common_local_url('all', array('nickname' =>
+                                                       $nickname)),
+                         _('Personal'),
+                         sprintf(_('%s and friends'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
+                         $action == 'all');
+        $this->out->menuItem(common_local_url('replies', array('nickname' =>
+                                                              $nickname)),
+                         _('Replies'),
+                         sprintf(_('Replies to %s'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
+                         $action == 'replies');
+        $this->out->menuItem(common_local_url('showstream', array('nickname' =>
+                                                              $nickname)),
+                         _('Profile'),
+                         ($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname,
+                         $action == 'showstream');
+        $this->out->menuItem(common_local_url('showfavorites', array('nickname' =>
+                                                              $nickname)),
+                         _('Favorites'),
+                         sprintf(_('%s\'s favorite notices'), ($user_profile) ? $user_profile->getBestName() : _('User')),
+                         $action == 'showfavorites');
+
+        $cur = common_current_user();
+
+        if ($cur && $cur->id == $user->id) {
+
+            $this->out->menuItem(common_local_url('inbox', array('nickname' =>
+                                                                     $nickname)),
+                             _('Inbox'),
+                             _('Your incoming messages'),
+                             $action == 'inbox');
+            $this->out->menuItem(common_local_url('outbox', array('nickname' =>
+                                                                     $nickname)),
+                             _('Outbox'),
+                             _('Your sent messages'),
+                             $action == 'outbox');
+        }
+
+        $this->out->elementEnd('ul');
+    }
+}
index 1e5ed73596da1c55b7db917bd74954d0d2d54966..7860783fa48330afa701aa665f4ea8e0ccf7c4a7 100644 (file)
@@ -77,9 +77,6 @@ class PublicGroupNav extends Widget
 
     function show()
     {
-        $this->action->elementStart('dl', array('id' => 'site_nav_local_views'));
-        $this->action->element('dt', null, _('Local views'));
-        $this->action->elementStart('dd', null);
         $this->action->elementStart('ul', array('class' => 'nav'));
 
         $this->out->menuItem(common_local_url('public'), _('Public'),
@@ -97,7 +94,5 @@ class PublicGroupNav extends Widget
             _("Popular notices"), $this->action == 'favorited', 'nav_timeline_favorited');
 
         $this->action->elementEnd('ul');
-        $this->action->elementEnd('dd');
-        $this->action->elementEnd('dl');
     }
 }