From ddc121c085fd2b8aef5d724c15b0d3f5573a443b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 24 Sep 2011 07:12:34 -0400 Subject: [PATCH] New table for all old-school UI prefs --- actions/all.php | 4 +- actions/public.php | 4 +- actions/showgroup.php | 4 +- classes/Old_school_prefs.php | 88 +++++++++++++++++++++++++++++++++++ classes/Stream_mode_prefs.php | 62 ------------------------ classes/User.php | 28 +++++++++-- db/core.php | 1 + 7 files changed, 119 insertions(+), 72 deletions(-) create mode 100644 classes/Old_school_prefs.php delete mode 100644 classes/Stream_mode_prefs.php diff --git a/actions/all.php b/actions/all.php index e82f221b93..6e6dae5d16 100644 --- a/actions/all.php +++ b/actions/all.php @@ -58,7 +58,7 @@ class AllAction extends ProfileAction $user = common_current_user(); - if (!empty($user) && $user->useStreamMode()) { + if (!empty($user) && $user->streamModeOnly()) { $stream = new InboxNoticeStream($this->user, Profile::current()); } else { $stream = new ThreadingInboxNoticeStream($this->user, Profile::current()); @@ -182,7 +182,7 @@ class AllAction extends ProfileAction $profile = $current_user->getProfile(); } - if (!empty($current_user) && $current_user->showStreamMode()) { + if (!empty($current_user) && $current_user->streamModeOnly()) { $nl = new NoticeList($this->notice, $this); } else { $nl = new ThreadedNoticeList($this->notice, $this, $profile); diff --git a/actions/public.php b/actions/public.php index 03f67e2e00..cf732fe464 100644 --- a/actions/public.php +++ b/actions/public.php @@ -90,7 +90,7 @@ class PublicAction extends Action $user = common_current_user(); - if (!empty($user) && $user->useStreamMode()) { + if (!empty($user) && $user->streamModeOnly()) { $stream = new PublicNoticeStream($this->userProfile); } else { $stream = new ThreadingPublicNoticeStream($this->userProfile); @@ -221,7 +221,7 @@ class PublicAction extends Action { $user = common_current_user(); - if (!empty($user) && $user->useStreamMode()) { + if (!empty($user) && $user->streamModeOnly()) { $nl = new NoticeList($this->notice, $this); } else { $nl = new ThreadedNoticeList($this->notice, $this, $this->userProfile); diff --git a/actions/showgroup.php b/actions/showgroup.php index 423551907e..2449ea1db7 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -101,7 +101,7 @@ class ShowgroupAction extends GroupAction $user = common_current_user(); - if (!empty($user) && $user->useStreamMode()) { + if (!empty($user) && $user->streamModeOnly()) { $stream = new GroupNoticeStream($this->group, $this->userProfile); } else { $stream = new ThreadingGroupNoticeStream($this->group, $this->userProfile); @@ -147,7 +147,7 @@ class ShowgroupAction extends GroupAction { $user = common_current_user(); - if (!empty($user) && $user->useStreamMode()) { + if (!empty($user) && $user->streamModeOnly()) { $nl = new NoticeList($this->notice, $this); } else { $nl = new ThreadedNoticeList($this->notice, $this, $this->userProfile); diff --git a/classes/Old_school_prefs.php b/classes/Old_school_prefs.php new file mode 100644 index 0000000000..29e13ddc74 --- /dev/null +++ b/classes/Old_school_prefs.php @@ -0,0 +1,88 @@ +. + * + * @category UI + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Separate table for storing UI preferences + * + * @category UI + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class Old_school_prefs extends Managed_DataObject +{ + public $__table = 'old_school_prefs'; // table name + public $user_id; + public $stream_mode_only; + public $conversation_tree; + public $stream_nicknames; + public $created; + public $modified; + + public static function schemaDef() + { + return array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user who has the preference'), + 'stream_mode_only' => array('type' => 'int', + 'size' => 'tiny', + 'default' => 1, + 'description' => 'No conversation streams'), + 'conversation_tree' => array('type' => 'int', + 'size' => 'tiny', + 'default' => 1, + 'description' => 'Hierarchical tree view for conversations'), + 'stream_nicknames' => array('type' => 'int', + 'size' => 'tiny', + 'default' => 1, + 'description' => 'Show nicknames for authors and addressees in streams'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('user_id'), + 'foreign keys' => array( + 'old_school_prefs_user_id_fkey' => array('user', array('user_id' => 'id')), + ), + ); + } + + function staticGet($k,$v=NULL) { + return Memcached_DataObject::staticGet('Old_school_prefs',$k,$v); + } +} diff --git a/classes/Stream_mode_prefs.php b/classes/Stream_mode_prefs.php deleted file mode 100644 index ca15a9cb61..0000000000 --- a/classes/Stream_mode_prefs.php +++ /dev/null @@ -1,62 +0,0 @@ -. - * - * @category UI - * @package StatusNet - * @author Evan Prodromou - * @copyright 2011 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET')) { - // This check helps protect against security problems; - // your code file can't be executed directly from the web. - exit(1); -} - -/** - * Separate table for storing stream mode preferences - * - * @category UI - * @package StatusNet - * @author Evan Prodromou - * @copyright 2011 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 - * @link http://status.net/ - */ - -class Stream_mode_prefs extends Managed_ -{ - /** - * Function comment - * - * @param - * - * @return - */ - - function Method() - { - } - -} diff --git a/classes/User.php b/classes/User.php index 90e2277246..2c84ac1995 100644 --- a/classes/User.php +++ b/classes/User.php @@ -1146,11 +1146,31 @@ class User extends Managed_DataObject mail_to_user($user, _('Password recovery requested'), $body, $headers, $confirm->address); } - function showStreamMode() + function streamModeOnly() { - $smp = Stream_mode_prefs::staticGet('user_id', $this->id); - if (!empty($smp)) { - return $smp->show_stream_mode; + $osp = Old_school_prefs::staticGet('user_id', $this->id); + if (!empty($osp)) { + return $osp->stream_mode_only; + } else { + return false; + } + } + + function conversationTree() + { + $osp = Old_school_prefs::staticGet('user_id', $this->id); + if (!empty($osp)) { + return $osp->conversation_tree; + } else { + return false; + } + } + + function streamNicknames() + { + $osp = Old_school_prefs::staticGet('user_id', $this->id); + if (!empty($osp)) { + return $osp->stream_nicknames; } else { return false; } diff --git a/db/core.php b/db/core.php index c484c8c785..b7881a7dc0 100644 --- a/db/core.php +++ b/db/core.php @@ -86,6 +86,7 @@ $classes = array('Profile', 'Local_group', 'User_urlshortener_prefs', 'Schema_version', + 'Old_school_prefs', ); foreach ($classes as $cls) {