Merge remote-tracking branch 'mainline/1.0.x' into people_tags_rebase
Conflicts: lib/profileblock.php theme/default/css/display.css
16
EVENTS.txt
|
@ -1297,3 +1297,19 @@ StartDefaultLocalNav: When showing the default local nav
|
||||||
EndDefaultLocalNav: When showing the default local nav
|
EndDefaultLocalNav: When showing the default local nav
|
||||||
- $menu: the menu
|
- $menu: the menu
|
||||||
- $user: current user
|
- $user: current user
|
||||||
|
|
||||||
|
StartShowAccountProfileBlock: When showing the profile block for an account
|
||||||
|
- $out: XMLOutputter to append custom output
|
||||||
|
- $profile: the profile being shown
|
||||||
|
|
||||||
|
EndShowAccountProfileBlock: After showing the profile block for an account
|
||||||
|
- $out: XMLOutputter to append custom output
|
||||||
|
- $profile: the profile being shown
|
||||||
|
|
||||||
|
StartShowGroupProfileBlock: When showing the profile block for a group
|
||||||
|
- $out: XMLOutputter to append custom output
|
||||||
|
- $profile: the profile being shown
|
||||||
|
|
||||||
|
EndShowGroupProfileBlock: After showing showing the profile block for a group
|
||||||
|
- $out: XMLOutputter to append custom output
|
||||||
|
- $group: the group being shown
|
||||||
|
|
|
@ -47,8 +47,11 @@ require_once INSTALLDIR.'/lib/noticelist.php';
|
||||||
*/
|
*/
|
||||||
class ConversationAction extends Action
|
class ConversationAction extends Action
|
||||||
{
|
{
|
||||||
var $id = null;
|
var $id = null;
|
||||||
var $page = null;
|
var $page = null;
|
||||||
|
var $notices = null;
|
||||||
|
|
||||||
|
const MAX_NOTICES = 500;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialization.
|
* Initialization.
|
||||||
|
@ -69,6 +72,19 @@ class ConversationAction extends Action
|
||||||
if (empty($this->page)) {
|
if (empty($this->page)) {
|
||||||
$this->page = 1;
|
$this->page = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$cur = common_current_user();
|
||||||
|
|
||||||
|
if (empty($cur)) {
|
||||||
|
$profile = null;
|
||||||
|
} else {
|
||||||
|
$profile = $cur->getProfile();
|
||||||
|
}
|
||||||
|
|
||||||
|
$stream = new ConversationNoticeStream($this->id, $profile);
|
||||||
|
|
||||||
|
$this->notices = $stream->getNotices(0, self::MAX_NOTICES, null, null);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,11 +122,9 @@ class ConversationAction extends Action
|
||||||
*/
|
*/
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
$notices = Notice::conversationStream($this->id, null, null);
|
$tnl = new ThreadedNoticeList($this->notices, $this);
|
||||||
|
|
||||||
$ct = new ConversationTree($notices, $this);
|
$cnt = $tnl->show();
|
||||||
|
|
||||||
$cnt = $ct->show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function isReadOnly()
|
function isReadOnly()
|
||||||
|
@ -118,173 +132,3 @@ class ConversationAction extends Action
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Conversation tree
|
|
||||||
*
|
|
||||||
* The widget class for displaying a hierarchical list of notices.
|
|
||||||
*
|
|
||||||
* @category Widget
|
|
||||||
* @package StatusNet
|
|
||||||
* @author Evan Prodromou <evan@status.net>
|
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
|
||||||
* @link http://status.net/
|
|
||||||
*/
|
|
||||||
class ConversationTree extends NoticeList
|
|
||||||
{
|
|
||||||
var $tree = null;
|
|
||||||
var $table = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the tree of notices
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function show()
|
|
||||||
{
|
|
||||||
$cnt = $this->_buildTree();
|
|
||||||
|
|
||||||
$this->out->elementStart('div', array('id' =>'notices_primary'));
|
|
||||||
// TRANS: Header on conversation page. Hidden by default (h2).
|
|
||||||
$this->out->element('h2', null, _('Notices'));
|
|
||||||
$this->out->elementStart('ol', array('class' => 'notices xoxo'));
|
|
||||||
|
|
||||||
if (array_key_exists('root', $this->tree)) {
|
|
||||||
$rootid = $this->tree['root'][0];
|
|
||||||
$this->showNoticePlus($rootid);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->out->elementEnd('ol');
|
|
||||||
$this->out->elementEnd('div');
|
|
||||||
|
|
||||||
return $cnt;
|
|
||||||
}
|
|
||||||
|
|
||||||
function _buildTree()
|
|
||||||
{
|
|
||||||
$cnt = 0;
|
|
||||||
|
|
||||||
$this->tree = array();
|
|
||||||
$this->table = array();
|
|
||||||
|
|
||||||
while ($this->notice->fetch()) {
|
|
||||||
|
|
||||||
$cnt++;
|
|
||||||
|
|
||||||
$id = $this->notice->id;
|
|
||||||
$notice = clone($this->notice);
|
|
||||||
|
|
||||||
$this->table[$id] = $notice;
|
|
||||||
|
|
||||||
if (is_null($notice->reply_to)) {
|
|
||||||
$this->tree['root'] = array($notice->id);
|
|
||||||
} else if (array_key_exists($notice->reply_to, $this->tree)) {
|
|
||||||
$this->tree[$notice->reply_to][] = $notice->id;
|
|
||||||
} else {
|
|
||||||
$this->tree[$notice->reply_to] = array($notice->id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $cnt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shows a notice plus its list of children.
|
|
||||||
*
|
|
||||||
* @param integer $id ID of the notice to show
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function showNoticePlus($id)
|
|
||||||
{
|
|
||||||
$notice = $this->table[$id];
|
|
||||||
|
|
||||||
// We take responsibility for doing the li
|
|
||||||
|
|
||||||
$this->out->elementStart('li', array('class' => 'hentry notice',
|
|
||||||
'id' => 'notice-' . $id));
|
|
||||||
|
|
||||||
$item = $this->newListItem($notice);
|
|
||||||
$item->show();
|
|
||||||
|
|
||||||
if (array_key_exists($id, $this->tree)) {
|
|
||||||
$children = $this->tree[$id];
|
|
||||||
|
|
||||||
$this->out->elementStart('ol', array('class' => 'notices'));
|
|
||||||
|
|
||||||
sort($children);
|
|
||||||
|
|
||||||
foreach ($children as $child) {
|
|
||||||
$this->showNoticePlus($child);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->out->elementEnd('ol');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->out->elementEnd('li');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Override parent class to return our preferred item.
|
|
||||||
*
|
|
||||||
* @param Notice $notice Notice to display
|
|
||||||
*
|
|
||||||
* @return NoticeListItem a list item to show
|
|
||||||
*/
|
|
||||||
function newListItem($notice)
|
|
||||||
{
|
|
||||||
return new ConversationTreeItem($notice, $this->out);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Conversation tree list item
|
|
||||||
*
|
|
||||||
* Special class of NoticeListItem for use inside conversation trees.
|
|
||||||
*
|
|
||||||
* @category Widget
|
|
||||||
* @package StatusNet
|
|
||||||
* @author Evan Prodromou <evan@status.net>
|
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
|
||||||
* @link http://status.net/
|
|
||||||
*/
|
|
||||||
class ConversationTreeItem extends NoticeListItem
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* start a single notice.
|
|
||||||
*
|
|
||||||
* The default creates the <li>; we skip, since the ConversationTree
|
|
||||||
* takes care of that.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function showStart()
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* finish the notice
|
|
||||||
*
|
|
||||||
* The default closes the <li>; we skip, since the ConversationTree
|
|
||||||
* takes care of that.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function showEnd()
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* show link to notice conversation page
|
|
||||||
*
|
|
||||||
* Since we're only used on the conversation page, we skip this
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function showContext()
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -66,9 +66,7 @@ class ConversationRepliesAction extends ConversationAction
|
||||||
*/
|
*/
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
$notices = Notice::conversationStream($this->id, null, null);
|
$ct = new FullThreadedNoticeList($this->notices, $this);
|
||||||
|
|
||||||
$ct = new FullThreadedNoticeList($notices, $this);
|
|
||||||
|
|
||||||
$cnt = $ct->show();
|
$cnt = $ct->show();
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,17 +96,21 @@ class Notice extends Memcached_DataObject
|
||||||
const GROUP_SCOPE = 4;
|
const GROUP_SCOPE = 4;
|
||||||
const FOLLOWER_SCOPE = 8;
|
const FOLLOWER_SCOPE = 8;
|
||||||
|
|
||||||
|
protected $_profile = -1;
|
||||||
|
|
||||||
function getProfile()
|
function getProfile()
|
||||||
{
|
{
|
||||||
$profile = Profile::staticGet('id', $this->profile_id);
|
if ($this->_profile == -1) {
|
||||||
|
$this->_profile = Profile::staticGet('id', $this->profile_id);
|
||||||
|
|
||||||
if (empty($profile)) {
|
if (empty($this->_profile)) {
|
||||||
// TRANS: Server exception thrown when a user profile for a notice cannot be found.
|
// TRANS: Server exception thrown when a user profile for a notice cannot be found.
|
||||||
// TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number).
|
// TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number).
|
||||||
throw new ServerException(sprintf(_('No such profile (%1$d) for notice (%2$d).'), $this->profile_id, $this->id));
|
throw new ServerException(sprintf(_('No such profile (%1$d) for notice (%2$d).'), $this->profile_id, $this->id));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $profile;
|
return $this->_profile;
|
||||||
}
|
}
|
||||||
|
|
||||||
function delete()
|
function delete()
|
||||||
|
|
|
@ -52,9 +52,15 @@ class Profile extends Memcached_DataObject
|
||||||
/* the code above is auto generated do not remove the tag below */
|
/* the code above is auto generated do not remove the tag below */
|
||||||
###END_AUTOCODE
|
###END_AUTOCODE
|
||||||
|
|
||||||
|
protected $_user = -1; // Uninitialized value distinct from null
|
||||||
|
|
||||||
function getUser()
|
function getUser()
|
||||||
{
|
{
|
||||||
return User::staticGet('id', $this->id);
|
if ($this->_user == -1) {
|
||||||
|
$this->_user = User::staticGet('id', $this->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_user;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAvatar($width, $height=null)
|
function getAvatar($width, $height=null)
|
||||||
|
@ -667,34 +673,6 @@ class Profile extends Memcached_DataObject
|
||||||
|
|
||||||
function hasFave($notice)
|
function hasFave($notice)
|
||||||
{
|
{
|
||||||
$cache = Cache::instance();
|
|
||||||
|
|
||||||
// XXX: Kind of a hack.
|
|
||||||
|
|
||||||
if (!empty($cache)) {
|
|
||||||
// This is the stream of favorite notices, in rev chron
|
|
||||||
// order. This forces it into cache.
|
|
||||||
|
|
||||||
$ids = Fave::idStream($this->id, 0, CachingNoticeStream::CACHE_WINDOW);
|
|
||||||
|
|
||||||
// If it's in the list, then it's a fave
|
|
||||||
|
|
||||||
if (in_array($notice->id, $ids)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we're not past the end of the cache window,
|
|
||||||
// then the cache has all available faves, so this one
|
|
||||||
// is not a fave.
|
|
||||||
|
|
||||||
if (count($ids) < CachingNoticeStream::CACHE_WINDOW) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Otherwise, cache doesn't have all faves;
|
|
||||||
// fall through to the default
|
|
||||||
}
|
|
||||||
|
|
||||||
$fave = Fave::pkeyGet(array('user_id' => $this->id,
|
$fave = Fave::pkeyGet(array('user_id' => $this->id,
|
||||||
'notice_id' => $notice->id));
|
'notice_id' => $notice->id));
|
||||||
return ((is_null($fave)) ? false : true);
|
return ((is_null($fave)) ? false : true);
|
||||||
|
|
|
@ -73,16 +73,21 @@ class User extends Memcached_DataObject
|
||||||
/* the code above is auto generated do not remove the tag below */
|
/* the code above is auto generated do not remove the tag below */
|
||||||
###END_AUTOCODE
|
###END_AUTOCODE
|
||||||
|
|
||||||
|
protected $_profile = -1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Profile
|
* @return Profile
|
||||||
*/
|
*/
|
||||||
function getProfile()
|
function getProfile()
|
||||||
{
|
{
|
||||||
$profile = Profile::staticGet('id', $this->id);
|
if ($this->_profile == -1) { // invalid but distinct from null
|
||||||
if (empty($profile)) {
|
$this->_profile = Profile::staticGet('id', $this->id);
|
||||||
throw new UserNoProfileException($this);
|
if (empty($this->_profile)) {
|
||||||
|
throw new UserNoProfileException($this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $profile;
|
|
||||||
|
return $this->_profile;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isSubscribed($other)
|
function isSubscribed($other)
|
||||||
|
|
|
@ -307,4 +307,14 @@ class AccountProfileBlock extends ProfileBlock
|
||||||
// TRANS: Link text for link that will subscribe to a remote profile.
|
// TRANS: Link text for link that will subscribe to a remote profile.
|
||||||
_m('BUTTON','Subscribe'));
|
_m('BUTTON','Subscribe'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function show()
|
||||||
|
{
|
||||||
|
$this->out->elementStart('div', 'account_profile_block section');
|
||||||
|
if (Event::handle('StartShowAccountProfileBlock', array($this->out, $this->profile))) {
|
||||||
|
parent::show();
|
||||||
|
Event::handle('EndShowAccountProfileBlock', array($this->out, $this->profile));
|
||||||
|
}
|
||||||
|
$this->out->elementEnd('div');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,10 +46,11 @@ if (!defined('STATUSNET')) {
|
||||||
*/
|
*/
|
||||||
class ConversationNoticeStream extends ScopingNoticeStream
|
class ConversationNoticeStream extends ScopingNoticeStream
|
||||||
{
|
{
|
||||||
function __construct($id)
|
function __construct($id, $profile = null)
|
||||||
{
|
{
|
||||||
parent::__construct(new CachingNoticeStream(new RawConversationNoticeStream($id),
|
parent::__construct(new CachingNoticeStream(new RawConversationNoticeStream($id),
|
||||||
'notice:conversation_ids:'.$id));
|
'notice:conversation_ids:'.$id),
|
||||||
|
$profile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,9 +99,6 @@ class RawConversationNoticeStream extends NoticeStream
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$notice->free();
|
|
||||||
$notice = NULL;
|
|
||||||
|
|
||||||
return $ids;
|
return $ids;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -317,7 +317,9 @@ $default =
|
||||||
'QnA' => null,
|
'QnA' => null,
|
||||||
'SearchSub' => null,
|
'SearchSub' => null,
|
||||||
'TagSub' => null,
|
'TagSub' => null,
|
||||||
'OpenID' => null),
|
'OpenID' => null,
|
||||||
|
'Directory' => null,
|
||||||
|
'ExtendedProfile' => null),
|
||||||
'locale_path' => false, // Set to a path to use *instead of* each plugin's own locale subdirectories
|
'locale_path' => false, // Set to a path to use *instead of* each plugin's own locale subdirectories
|
||||||
'server' => null,
|
'server' => null,
|
||||||
'sslserver' => null,
|
'sslserver' => null,
|
||||||
|
|
|
@ -123,4 +123,14 @@ class GroupProfileBlock extends ProfileBlock
|
||||||
$this->out->elementEnd('ul');
|
$this->out->elementEnd('ul');
|
||||||
$this->out->elementEnd('div');
|
$this->out->elementEnd('div');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function show()
|
||||||
|
{
|
||||||
|
$this->out->elementStart('div', 'group_profile_block section');
|
||||||
|
if (Event::handle('StartShowGroupProfileBlock', array($this->out, $this->group))) {
|
||||||
|
parent::show();
|
||||||
|
Event::handle('EndShowGroupProfileBlock', array($this->out, $this->group));
|
||||||
|
}
|
||||||
|
$this->out->elementEnd('div');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,16 +56,33 @@ abstract class ProfileBlock extends Widget
|
||||||
|
|
||||||
function show()
|
function show()
|
||||||
{
|
{
|
||||||
$this->out->elementStart('div', 'profile_block section');
|
$this->showActions();
|
||||||
|
$this->showAvatar();
|
||||||
|
$this->showName();
|
||||||
|
$this->showLocation();
|
||||||
|
$this->showHomepage();
|
||||||
|
$this->showDescription();
|
||||||
|
$this->showTags();
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAvatar()
|
||||||
|
{
|
||||||
$size = $this->avatarSize();
|
$size = $this->avatarSize();
|
||||||
|
|
||||||
$this->out->element('img', array('src' => $this->avatar(),
|
$this->out->element(
|
||||||
'class' => 'profile_block_avatar',
|
'img',
|
||||||
'alt' => $this->name(),
|
array(
|
||||||
'width' => $size,
|
'src' => $this->avatar(),
|
||||||
'height' => $size));
|
'class' => 'ur_face',
|
||||||
|
'alt' => $this->name(),
|
||||||
|
'width' => $size,
|
||||||
|
'height' => $size
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function showName()
|
||||||
|
{
|
||||||
$name = $this->name();
|
$name = $this->name();
|
||||||
|
|
||||||
if (!empty($name)) {
|
if (!empty($name)) {
|
||||||
|
@ -79,31 +96,35 @@ abstract class ProfileBlock extends Widget
|
||||||
}
|
}
|
||||||
$this->out->elementEnd('p');
|
$this->out->elementEnd('p');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showDescription()
|
||||||
|
{
|
||||||
|
$description = $this->description();
|
||||||
|
|
||||||
|
if (!empty($description)) {
|
||||||
|
$this->out->element(
|
||||||
|
'p',
|
||||||
|
'profile_block_description',
|
||||||
|
$description
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showLocation()
|
||||||
|
{
|
||||||
$location = $this->location();
|
$location = $this->location();
|
||||||
|
|
||||||
if (!empty($location)) {
|
if (!empty($location)) {
|
||||||
$this->out->element('p', 'profile_block_location', $location);
|
$this->out->element('p', 'profile_block_location', $location);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$homepage = $this->homepage();
|
function showHomepage()
|
||||||
|
{
|
||||||
if (!empty($homepage)) {
|
if (!empty($homepage)) {
|
||||||
$this->out->element('a', 'profile_block_homepage', $homepage);
|
$this->out->element('a', 'profile_block_homepage', $homepage);
|
||||||
}
|
}
|
||||||
|
|
||||||
$description = $this->description();
|
|
||||||
|
|
||||||
if (!empty($description)) {
|
|
||||||
$this->out->element('p',
|
|
||||||
'profile_block_description',
|
|
||||||
$description);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->showTags();
|
|
||||||
$this->showActions();
|
|
||||||
|
|
||||||
$this->out->elementEnd('div');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function avatarSize()
|
function avatarSize()
|
||||||
|
|
|
@ -329,6 +329,11 @@ class EventPlugin extends MicroappPlugin
|
||||||
{
|
{
|
||||||
$rsvp = RSVP::fromNotice($notice);
|
$rsvp = RSVP::fromNotice($notice);
|
||||||
|
|
||||||
|
if (empty($rsvp)) {
|
||||||
|
$out->element('p', null, _('Deleted.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$out->elementStart('div', 'rsvp');
|
$out->elementStart('div', 'rsvp');
|
||||||
$out->raw($rsvp->asHTML());
|
$out->raw($rsvp->asHTML());
|
||||||
$out->elementEnd('div');
|
$out->elementEnd('div');
|
||||||
|
@ -340,8 +345,10 @@ class EventPlugin extends MicroappPlugin
|
||||||
$profile = $notice->getProfile();
|
$profile = $notice->getProfile();
|
||||||
$event = Happening::fromNotice($notice);
|
$event = Happening::fromNotice($notice);
|
||||||
|
|
||||||
assert(!empty($event));
|
if (empty($event)) {
|
||||||
assert(!empty($profile));
|
$out->element('p', null, _('Deleted.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$out->elementStart('div', 'vevent event'); // VEVENT IN
|
$out->elementStart('div', 'vevent event'); // VEVENT IN
|
||||||
|
|
||||||
|
|
|
@ -115,13 +115,12 @@ class ExtendedProfilePlugin extends Plugin
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onStartProfilePageActionsSection(HTMLOutputter $out, Profile $profile) {
|
function onEndShowAccountProfileBlock(HTMLOutputter $out, Profile $profile) {
|
||||||
$user = User::staticGet('id', $profile->id);
|
$user = User::staticGet('id', $profile->id);
|
||||||
if ($user) {
|
if ($user) {
|
||||||
$url = common_local_url('profiledetail', array('nickname' => $user->nickname));
|
$url = common_local_url('profiledetail', array('nickname' => $user->nickname));
|
||||||
// TRANS: Link text on user profile page leading to extended profile page.
|
// TRANS: Link text on user profile page leading to extended profile page.
|
||||||
$out->element('a', array('href' => $url, 'class' => 'profiledetail'), _m('More details...'));
|
$out->element('a', array('href' => $url, 'class' => 'profiledetail'), _m('More details...'));
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -788,16 +788,16 @@ class Facebookclient
|
||||||
$subject = _m('Your Facebook connection has been removed');
|
$subject = _m('Your Facebook connection has been removed');
|
||||||
|
|
||||||
// TRANS: E-mail body. %1$s is a username, %2$s is the StatusNet sitename.
|
// TRANS: E-mail body. %1$s is a username, %2$s is the StatusNet sitename.
|
||||||
$msg = _m('Hi %1$s,\n\n'.
|
$msg = _m("Hi %1\$s,\n\n".
|
||||||
'We are sorry to inform you we are unable to publish your notice to\n'.
|
"We are sorry to inform you we are unable to publish your notice to\n".
|
||||||
'Facebook, and have removed the connection between your %2$s account and\n'.
|
"Facebook, and have removed the connection between your %2\$s account and\n".
|
||||||
'Facebook.\n\n'.
|
"Facebook.\n\n".
|
||||||
'This may have happened because you have removed permission for %2$s\n'.
|
"This may have happened because you have removed permission for %2\$s\n".
|
||||||
'to post on your behalf, or perhaps you have deactivated your Facebook\n'.
|
"to post on your behalf, or perhaps you have deactivated your Facebook\n".
|
||||||
'account. You can reconnect your %2$s account to Facebook at any time by\n'.
|
"account. You can reconnect your %2\$s account to Facebook at any time by\n".
|
||||||
'logging in with Facebook again.\n\n'.
|
"logging in with Facebook again.\n\n".
|
||||||
'Sincerely,\n\n'.
|
"Sincerely,\n\n".
|
||||||
'%2$s\n');
|
"%2\$s\n");
|
||||||
|
|
||||||
$body = sprintf(
|
$body = sprintf(
|
||||||
$msg,
|
$msg,
|
||||||
|
@ -845,13 +845,13 @@ class Facebookclient
|
||||||
|
|
||||||
// TRANS: E-mail body. %1$s is a username,
|
// TRANS: E-mail body. %1$s is a username,
|
||||||
// TRANS: %2$s is the StatusNet sitename, %3$s is the site contact e-mail address.
|
// TRANS: %2$s is the StatusNet sitename, %3$s is the site contact e-mail address.
|
||||||
$msg = _m('Hi %1$s,\n\n'.
|
$msg = _m("Hi %1\$s,\n\n".
|
||||||
'We have noticed you have deauthorized the Facebook connection for your\n'.
|
"We have noticed you have deauthorized the Facebook connection for your\n".
|
||||||
'%2$s account. You have not set a password for your %2$s account yet, so\n'.
|
"%2\$s account. You have not set a password for your %2\$s account yet, so\n".
|
||||||
'you will not be able to login. If you wish to continue using your %2$s\n'.
|
"you will not be able to login. If you wish to continue using your %2\$s\n".
|
||||||
'account, please contact the site administrator (%3$s) to set a password.\n\n'.
|
"account, please contact the site administrator (%3\$s) to set a password.\n\n".
|
||||||
'Sincerely,\n\n'.
|
"Sincerely,\n\n".
|
||||||
'%2$s\n');
|
"%2\$s\n");
|
||||||
|
|
||||||
$body = sprintf(
|
$body = sprintf(
|
||||||
$msg,
|
$msg,
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
StatusNet Plugin: 0.9
|
* StatusNet Plugin: 0.9
|
||||||
Plugin Name: FirePHP
|
* Plugin Name: FirePHP
|
||||||
Description: Sends StatusNet log output to FirePHP
|
* Description: Sends StatusNet log output to FirePHP
|
||||||
Version: 0.1
|
* Version: 0.1
|
||||||
Author: Craig Andrews <candrews@integralblue.com>
|
* Author: Craig Andrews <candrews@integralblue.com>
|
||||||
Author URI: http://candrews.integralblue.com/
|
* Author URI: http://candrews.integralblue.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -65,6 +65,7 @@ class FirePHPPlugin extends Plugin
|
||||||
'author' => 'Craig Andrews',
|
'author' => 'Craig Andrews',
|
||||||
'homepage' => 'http://status.net/wiki/Plugin:FirePHP',
|
'homepage' => 'http://status.net/wiki/Plugin:FirePHP',
|
||||||
'rawdescription' =>
|
'rawdescription' =>
|
||||||
|
// TRANS: Plugin description.
|
||||||
_m('The FirePHP plugin writes StatusNet\'s log output to FirePHP.'));
|
_m('The FirePHP plugin writes StatusNet\'s log output to FirePHP.'));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
The FirePHP plugin writes StatusNet's log output to FirePHP.
|
The FirePHP plugin writes StatusNet's log output to FirePHP.
|
||||||
|
|
||||||
Using FirePHP on production sites can expose sensitive information.
|
Using FirePHP on production sites can expose sensitive information.
|
||||||
You must protect the security of your application by disabling FirePHP
|
|
||||||
logging on your live site.
|
You must protect the security of your application by disabling FirePHP logging
|
||||||
|
on your live site!
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
============
|
============
|
||||||
|
@ -18,4 +19,3 @@ Example
|
||||||
=======
|
=======
|
||||||
|
|
||||||
addPlugin('FirePHP', array());
|
addPlugin('FirePHP', array());
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,6 @@ class FollowEveryonePlugin extends Plugin
|
||||||
* @param User &$newUser The new user
|
* @param User &$newUser The new user
|
||||||
*
|
*
|
||||||
* @return boolean hook value
|
* @return boolean hook value
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
function onEndUserRegister(&$newProfile, &$newUser)
|
function onEndUserRegister(&$newProfile, &$newUser)
|
||||||
{
|
{
|
||||||
|
@ -115,7 +114,6 @@ class FollowEveryonePlugin extends Plugin
|
||||||
$schema = Schema::get();
|
$schema = Schema::get();
|
||||||
|
|
||||||
// For storing user-submitted flags on profiles
|
// For storing user-submitted flags on profiles
|
||||||
|
|
||||||
$schema->ensureTable('user_followeveryone_prefs',
|
$schema->ensureTable('user_followeveryone_prefs',
|
||||||
array(new ColumnDef('user_id', 'integer', null,
|
array(new ColumnDef('user_id', 'integer', null,
|
||||||
true, 'PRI'),
|
true, 'PRI'),
|
||||||
|
@ -200,6 +198,7 @@ class FollowEveryonePlugin extends Plugin
|
||||||
'author' => 'Evan Prodromou',
|
'author' => 'Evan Prodromou',
|
||||||
'homepage' => 'http://status.net/wiki/Plugin:FollowEveryone',
|
'homepage' => 'http://status.net/wiki/Plugin:FollowEveryone',
|
||||||
'rawdescription' =>
|
'rawdescription' =>
|
||||||
|
// TRANS: Plugin description.
|
||||||
_m('New users follow everyone at registration and are followed in return.'));
|
_m('New users follow everyone at registration and are followed in return.'));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,11 +33,11 @@ class ForceGroupPlugin extends Plugin
|
||||||
* List by local nickname.
|
* List by local nickname.
|
||||||
*/
|
*/
|
||||||
public $post = array();
|
public $post = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* New user registrations will automatically join these groups on
|
* New user registrations will automatically join these groups on
|
||||||
* registration. They're not prevented from leaving, however.
|
* registration. They're not prevented from leaving, however.
|
||||||
*
|
*
|
||||||
* List by local nickname.
|
* List by local nickname.
|
||||||
*/
|
*/
|
||||||
public $join = array();
|
public $join = array();
|
||||||
|
|
|
@ -121,6 +121,7 @@ class GeoURLPlugin extends Plugin
|
||||||
'author' => 'Evan Prodromou',
|
'author' => 'Evan Prodromou',
|
||||||
'homepage' => 'http://status.net/wiki/Plugin:GeoURL',
|
'homepage' => 'http://status.net/wiki/Plugin:GeoURL',
|
||||||
'rawdescription' =>
|
'rawdescription' =>
|
||||||
|
// TRANS: Plugin description.
|
||||||
_m('Ping <a href="http://geourl.org/">GeoURL</a> when '.
|
_m('Ping <a href="http://geourl.org/">GeoURL</a> when '.
|
||||||
'new geolocation-enhanced notices are posted.'));
|
'new geolocation-enhanced notices are posted.'));
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -435,7 +435,8 @@ class GeonamesPlugin extends Plugin
|
||||||
function getGeonames($method, $params)
|
function getGeonames($method, $params)
|
||||||
{
|
{
|
||||||
if ($this->lastTimeout && (time() - $this->lastTimeout < $this->timeoutWindow)) {
|
if ($this->lastTimeout && (time() - $this->lastTimeout < $this->timeoutWindow)) {
|
||||||
throw new Exception("skipping due to recent web service timeout");
|
// TRANS: Exception thrown when a geo names service is not used because of a recent timeout.
|
||||||
|
throw new Exception(_m('Skipping due to recent web service timeout.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$client = HTTPClient::start();
|
$client = HTTPClient::start();
|
||||||
|
@ -451,13 +452,16 @@ class GeonamesPlugin extends Plugin
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$result->isOk()) {
|
if (!$result->isOk()) {
|
||||||
throw new Exception("HTTP error code " . $result->getStatus());
|
// TRANS: Exception thrown when a geo names service does not return an expected response.
|
||||||
|
// TRANS: %s is an HTTP error code.
|
||||||
|
throw new Exception(sprintf(_m('HTTP error code %s.'),$result->getStatus()));
|
||||||
}
|
}
|
||||||
|
|
||||||
$body = $result->getBody();
|
$body = $result->getBody();
|
||||||
|
|
||||||
if (empty($body)) {
|
if (empty($body)) {
|
||||||
throw new Exception("Empty HTTP body in response");
|
// TRANS: Exception thrown when a geo names service returns an empty body.
|
||||||
|
throw new Exception(_m('Empty HTTP body in response.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will throw an exception if the XML is mal-formed
|
// This will throw an exception if the XML is mal-formed
|
||||||
|
@ -473,7 +477,9 @@ class GeonamesPlugin extends Plugin
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($document->status)) {
|
if (isset($document->status)) {
|
||||||
throw new Exception("Error #".$document->status['value']." ('".$document->status['message']."')");
|
// TRANS: Exception thrown when a geo names service return a specific error number and error text.
|
||||||
|
// TRANS: %1$s is an error code, %2$s is an error message.
|
||||||
|
throw new Exception(sprintf(_m('Error #%1$s ("%2$s").'),$document->status['value'],$document->status['message']));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Array of elements, >0 elements
|
// Array of elements, >0 elements
|
||||||
|
@ -488,6 +494,7 @@ class GeonamesPlugin extends Plugin
|
||||||
'author' => 'Evan Prodromou',
|
'author' => 'Evan Prodromou',
|
||||||
'homepage' => 'http://status.net/wiki/Plugin:Geonames',
|
'homepage' => 'http://status.net/wiki/Plugin:Geonames',
|
||||||
'rawdescription' =>
|
'rawdescription' =>
|
||||||
|
// TRANS: Plugin description.
|
||||||
_m('Uses <a href="http://geonames.org/">Geonames</a> service to get human-readable '.
|
_m('Uses <a href="http://geonames.org/">Geonames</a> service to get human-readable '.
|
||||||
'names for locations based on user-provided lat/long pairs.'));
|
'names for locations based on user-provided lat/long pairs.'));
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -77,6 +77,7 @@ class GoogleAnalyticsPlugin extends Plugin
|
||||||
'author' => 'Evan Prodromou',
|
'author' => 'Evan Prodromou',
|
||||||
'homepage' => 'http://status.net/wiki/Plugin:GoogleAnalytics',
|
'homepage' => 'http://status.net/wiki/Plugin:GoogleAnalytics',
|
||||||
'rawdescription' =>
|
'rawdescription' =>
|
||||||
|
// TRANS: Plugin description.
|
||||||
_m('Use <a href="http://www.google.com/analytics/">Google Analytics</a>'.
|
_m('Use <a href="http://www.google.com/analytics/">Google Analytics</a>'.
|
||||||
' to track web access.'));
|
' to track web access.'));
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -57,15 +57,18 @@ class GravatarPlugin extends Plugin
|
||||||
'action' =>
|
'action' =>
|
||||||
common_local_url('avatarsettings')));
|
common_local_url('avatarsettings')));
|
||||||
$action->elementStart('fieldset', array('id' => 'settings_gravatar_add'));
|
$action->elementStart('fieldset', array('id' => 'settings_gravatar_add'));
|
||||||
|
// TRANS: Fieldset legend. Gravatar is an avatar service.
|
||||||
$action->element('legend', null, _m('Set Gravatar'));
|
$action->element('legend', null, _m('Set Gravatar'));
|
||||||
$action->hidden('token', common_session_token());
|
$action->hidden('token', common_session_token());
|
||||||
$action->element('p', 'form_guide',
|
$action->element('p', 'form_guide',
|
||||||
|
// TRANS: Form guide. Gravatar is an avatar service.
|
||||||
_m('If you want to use your Gravatar image, click "Add".'));
|
_m('If you want to use your Gravatar image, click "Add".'));
|
||||||
$action->element('input', array('type' => 'submit',
|
$action->element('input', array('type' => 'submit',
|
||||||
'id' => 'settings_gravatar_add_action-submit',
|
'id' => 'settings_gravatar_add_action-submit',
|
||||||
'name' => 'add',
|
'name' => 'add',
|
||||||
'class' => 'submit',
|
'class' => 'submit',
|
||||||
'value' => _m('Add')));
|
// TRANS: Button text to add a Gravatar. Gravatar is an avatar service.
|
||||||
|
'value' => _m('BUTTON','Add')));
|
||||||
$action->elementEnd('fieldset');
|
$action->elementEnd('fieldset');
|
||||||
$action->elementEnd('form');
|
$action->elementEnd('form');
|
||||||
} elseif($hasGravatar) {
|
} elseif($hasGravatar) {
|
||||||
|
@ -75,19 +78,23 @@ class GravatarPlugin extends Plugin
|
||||||
'action' =>
|
'action' =>
|
||||||
common_local_url('avatarsettings')));
|
common_local_url('avatarsettings')));
|
||||||
$action->elementStart('fieldset', array('id' => 'settings_gravatar_remove'));
|
$action->elementStart('fieldset', array('id' => 'settings_gravatar_remove'));
|
||||||
|
// TRANS: Fieldset legend. Gravatar is an avatar service.
|
||||||
$action->element('legend', null, _m('Remove Gravatar'));
|
$action->element('legend', null, _m('Remove Gravatar'));
|
||||||
$action->hidden('token', common_session_token());
|
$action->hidden('token', common_session_token());
|
||||||
$action->element('p', 'form_guide',
|
$action->element('p', 'form_guide',
|
||||||
|
// TRANS: Form guide. Gravatar is an avatar service.
|
||||||
_m('If you want to remove your Gravatar image, click "Remove".'));
|
_m('If you want to remove your Gravatar image, click "Remove".'));
|
||||||
$action->element('input', array('type' => 'submit',
|
$action->element('input', array('type' => 'submit',
|
||||||
'id' => 'settings_gravatar_remove_action-submit',
|
'id' => 'settings_gravatar_remove_action-submit',
|
||||||
'name' => 'remove',
|
'name' => 'remove',
|
||||||
'class' => 'submit',
|
'class' => 'submit',
|
||||||
|
// TRANS: Button text to remove a Gravatar. Gravatar is an avatar service.
|
||||||
'value' => _m('Remove')));
|
'value' => _m('Remove')));
|
||||||
$action->elementEnd('fieldset');
|
$action->elementEnd('fieldset');
|
||||||
$action->elementEnd('form');
|
$action->elementEnd('form');
|
||||||
} else {
|
} else {
|
||||||
$action->element('p', 'form_guide',
|
$action->element('p', 'form_guide',
|
||||||
|
// TRANS: Form guide. Gravatar is an avatar service.
|
||||||
_m('To use a Gravatar first enter in an email address.'));
|
_m('To use a Gravatar first enter in an email address.'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -137,6 +144,7 @@ class GravatarPlugin extends Plugin
|
||||||
$cur = common_current_user();
|
$cur = common_current_user();
|
||||||
|
|
||||||
if(empty($cur->email)) {
|
if(empty($cur->email)) {
|
||||||
|
// TRANS: Message displayed when no e-mail address was set when saving Gravatar setting. Gravatar is an avatar service.
|
||||||
return array('message' => _m('You do not have an email address set in your profile.'),
|
return array('message' => _m('You do not have an email address set in your profile.'),
|
||||||
'success' => false);
|
'success' => false);
|
||||||
}
|
}
|
||||||
|
@ -155,10 +163,12 @@ class GravatarPlugin extends Plugin
|
||||||
$gravatar->created = DB_DataObject_Cast::dateTime(); # current time
|
$gravatar->created = DB_DataObject_Cast::dateTime(); # current time
|
||||||
|
|
||||||
if (!$gravatar->insert()) {
|
if (!$gravatar->insert()) {
|
||||||
|
// TRANS: Message displayed when saving Gravatar setting fails. Gravatar is an avatar service.
|
||||||
return array('message' => _m('Failed to save Gravatar to the database.'),
|
return array('message' => _m('Failed to save Gravatar to the database.'),
|
||||||
'success' => false);
|
'success' => false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// TRANS: Message displayed when Gravatar was added. Gravatar is an avatar service.
|
||||||
return array('message' => _m('Gravatar added.'),
|
return array('message' => _m('Gravatar added.'),
|
||||||
'success' => true);
|
'success' => true);
|
||||||
}
|
}
|
||||||
|
@ -177,6 +187,7 @@ class GravatarPlugin extends Plugin
|
||||||
$avatar = $profile->getAvatar(AVATAR_MINI_SIZE);
|
$avatar = $profile->getAvatar(AVATAR_MINI_SIZE);
|
||||||
if($avatar) $avatar->delete();
|
if($avatar) $avatar->delete();
|
||||||
|
|
||||||
|
// TRANS: Message displayed when Gravatar was removed. Gravatar is an avatar service.
|
||||||
return array('message' => _m('Gravatar removed.'),
|
return array('message' => _m('Gravatar removed.'),
|
||||||
'success' => true);
|
'success' => true);
|
||||||
}
|
}
|
||||||
|
@ -197,6 +208,7 @@ class GravatarPlugin extends Plugin
|
||||||
'author' => 'Eric Helgeson',
|
'author' => 'Eric Helgeson',
|
||||||
'homepage' => 'http://status.net/wiki/Plugin:Gravatar',
|
'homepage' => 'http://status.net/wiki/Plugin:Gravatar',
|
||||||
'rawdescription' =>
|
'rawdescription' =>
|
||||||
|
// TRANS: Plugin decsription.
|
||||||
_m('The Gravatar plugin allows users to use their <a href="http://www.gravatar.com/">Gravatar</a> with StatusNet.'));
|
_m('The Gravatar plugin allows users to use their <a href="http://www.gravatar.com/">Gravatar</a> with StatusNet.'));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
GravatarPlugin 0.1
|
GravatarPlugin 0.1
|
||||||
|
|
||||||
About
|
About:
|
||||||
This will allow users to use their Gravatar Avatar with your StatusNet install.
|
This will allow users to use their Gravatar Avatar with your StatusNet install.
|
||||||
|
|
||||||
Configuration
|
Configuration:
|
||||||
add this to your config.php:
|
add this to your config.php:
|
||||||
addPlugin('Gravatar', array());
|
addPlugin('Gravatar', array());
|
||||||
|
|
||||||
ToDo:
|
To do:
|
||||||
Site default all on for gravatar by default
|
Site default all on for gravatar by default
|
||||||
Migration Script
|
Migration Script
|
||||||
Localize
|
|
||||||
|
|
|
@ -46,7 +46,6 @@ if (!defined('STATUSNET')) {
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class GroupPrivateMessagePlugin extends Plugin
|
class GroupPrivateMessagePlugin extends Plugin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@ -57,7 +56,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
*
|
*
|
||||||
* @return boolean hook value
|
* @return boolean hook value
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onCheckSchema()
|
function onCheckSchema()
|
||||||
{
|
{
|
||||||
$schema = Schema::get();
|
$schema = Schema::get();
|
||||||
|
@ -78,7 +76,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
'datetime'),
|
'datetime'),
|
||||||
new ColumnDef('modified',
|
new ColumnDef('modified',
|
||||||
'timestamp')));
|
'timestamp')));
|
||||||
|
|
||||||
$schema->ensureTable('group_message',
|
$schema->ensureTable('group_message',
|
||||||
array(new ColumnDef('id',
|
array(new ColumnDef('id',
|
||||||
'char',
|
'char',
|
||||||
|
@ -136,7 +134,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
*
|
*
|
||||||
* @return boolean hook value
|
* @return boolean hook value
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onAutoload($cls)
|
function onAutoload($cls)
|
||||||
{
|
{
|
||||||
$dir = dirname(__FILE__);
|
$dir = dirname(__FILE__);
|
||||||
|
@ -171,7 +168,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
*
|
*
|
||||||
* @return boolean hook value
|
* @return boolean hook value
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onRouterInitialized($m)
|
function onRouterInitialized($m)
|
||||||
{
|
{
|
||||||
$m->connect('group/:nickname/inbox',
|
$m->connect('group/:nickname/inbox',
|
||||||
|
@ -199,7 +195,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
*
|
*
|
||||||
* @see Action
|
* @see Action
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onEndGroupGroupNav($groupnav)
|
function onEndGroupGroupNav($groupnav)
|
||||||
{
|
{
|
||||||
$action = $groupnav->action;
|
$action = $groupnav->action;
|
||||||
|
@ -207,7 +202,9 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
|
|
||||||
$action->menuItem(common_local_url('groupinbox',
|
$action->menuItem(common_local_url('groupinbox',
|
||||||
array('nickname' => $group->nickname)),
|
array('nickname' => $group->nickname)),
|
||||||
|
// TRANS: Menu item in group page.
|
||||||
_m('MENU','Inbox'),
|
_m('MENU','Inbox'),
|
||||||
|
// TRANS: Menu title in group page.
|
||||||
_m('Private messages for this group.'),
|
_m('Private messages for this group.'),
|
||||||
$action->trimmed('action') == 'groupinbox',
|
$action->trimmed('action') == 'groupinbox',
|
||||||
'nav_group_inbox');
|
'nav_group_inbox');
|
||||||
|
@ -221,7 +218,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
*
|
*
|
||||||
* @result boolean hook value
|
* @result boolean hook value
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onEndGroupSave($group)
|
function onEndGroupSave($group)
|
||||||
{
|
{
|
||||||
$gps = new Group_privacy_settings();
|
$gps = new Group_privacy_settings();
|
||||||
|
@ -244,7 +240,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
*
|
*
|
||||||
* @param GroupEditForm $form form being shown
|
* @param GroupEditForm $form form being shown
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onEndGroupEditFormData($form)
|
function onEndGroupEditFormData($form)
|
||||||
{
|
{
|
||||||
$gps = null;
|
$gps = null;
|
||||||
|
@ -255,20 +250,30 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
|
|
||||||
$form->out->elementStart('li');
|
$form->out->elementStart('li');
|
||||||
$form->out->dropdown('allow_privacy',
|
$form->out->dropdown('allow_privacy',
|
||||||
|
// TRANS: Dropdown label in group settings page for if group allows private messages.
|
||||||
_m('Private messages'),
|
_m('Private messages'),
|
||||||
|
// TRANS: Dropdown option in group settings page for allowing private messages.
|
||||||
array(Group_privacy_settings::SOMETIMES => _m('Sometimes'),
|
array(Group_privacy_settings::SOMETIMES => _m('Sometimes'),
|
||||||
|
// TRANS: Dropdown option in group settings page for allowing private messages.
|
||||||
Group_privacy_settings::ALWAYS => _m('Always'),
|
Group_privacy_settings::ALWAYS => _m('Always'),
|
||||||
|
// TRANS: Dropdown option in group settings page for allowing private messages.
|
||||||
Group_privacy_settings::NEVER => _m('Never')),
|
Group_privacy_settings::NEVER => _m('Never')),
|
||||||
|
// TRANS: Dropdown title in group settings page for if group allows private messages.
|
||||||
_m('Whether to allow private messages to this group.'),
|
_m('Whether to allow private messages to this group.'),
|
||||||
false,
|
false,
|
||||||
(empty($gps)) ? Group_privacy_settings::SOMETIMES : $gps->allow_privacy);
|
(empty($gps)) ? Group_privacy_settings::SOMETIMES : $gps->allow_privacy);
|
||||||
$form->out->elementEnd('li');
|
$form->out->elementEnd('li');
|
||||||
$form->out->elementStart('li');
|
$form->out->elementStart('li');
|
||||||
$form->out->dropdown('allow_sender',
|
$form->out->dropdown('allow_sender',
|
||||||
|
// TRANS: Dropdown label in group settings page for who can send private messages to the group.
|
||||||
_m('Private senders'),
|
_m('Private senders'),
|
||||||
|
// TRANS: Dropdown option in group settings page for who can send private messages.
|
||||||
array(Group_privacy_settings::EVERYONE => _m('Everyone'),
|
array(Group_privacy_settings::EVERYONE => _m('Everyone'),
|
||||||
|
// TRANS: Dropdown option in group settings page for who can send private messages.
|
||||||
Group_privacy_settings::MEMBER => _m('Member'),
|
Group_privacy_settings::MEMBER => _m('Member'),
|
||||||
|
// TRANS: Dropdown option in group settings page for who can send private messages.
|
||||||
Group_privacy_settings::ADMIN => _m('Admin')),
|
Group_privacy_settings::ADMIN => _m('Admin')),
|
||||||
|
// TRANS: Dropdown title in group settings page for who can send private messages to the group.
|
||||||
_m('Who can send private messages to the group.'),
|
_m('Who can send private messages to the group.'),
|
||||||
false,
|
false,
|
||||||
(empty($gps)) ? Group_privacy_settings::MEMBER : $gps->allow_sender);
|
(empty($gps)) ? Group_privacy_settings::MEMBER : $gps->allow_sender);
|
||||||
|
@ -292,7 +297,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
} else {
|
} else {
|
||||||
$orig = clone($gps);
|
$orig = clone($gps);
|
||||||
}
|
}
|
||||||
|
|
||||||
$gps->allow_privacy = $action->trimmed('allow_privacy');
|
$gps->allow_privacy = $action->trimmed('allow_privacy');
|
||||||
$gps->allow_sender = $action->trimmed('allow_sender');
|
$gps->allow_sender = $action->trimmed('allow_sender');
|
||||||
|
|
||||||
|
@ -302,21 +307,21 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
} else {
|
} else {
|
||||||
$gps->update($orig);
|
$gps->update($orig);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overload 'd' command to send private messages to groups.
|
* Overload 'd' command to send private messages to groups.
|
||||||
*
|
*
|
||||||
* 'd !group word word word' will send the private message
|
* 'd !group word word word' will send the private message
|
||||||
* 'word word word' to the group 'group'.
|
* 'word word word' to the group 'group'.
|
||||||
*
|
*
|
||||||
* @param string $cmd Command being run
|
* @param string $cmd Command being run
|
||||||
* @param string $arg Rest of the message (including address)
|
* @param string $arg Rest of the message (including address)
|
||||||
* @param User $user User sending the message
|
* @param User $user User sending the message
|
||||||
* @param Command &$result The resulting command object to be run.
|
* @param Command &$result The resulting command object to be run.
|
||||||
*
|
*
|
||||||
* @return boolean hook value
|
* @return boolean hook value
|
||||||
*/
|
*/
|
||||||
function onStartIntepretCommand($cmd, $arg, $user, &$result)
|
function onStartIntepretCommand($cmd, $arg, $user, &$result)
|
||||||
|
@ -350,7 +355,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
*
|
*
|
||||||
* @param Widget $widget The showgroup action being shown
|
* @param Widget $widget The showgroup action being shown
|
||||||
* @param User_group $group The current group
|
* @param User_group $group The current group
|
||||||
*
|
*
|
||||||
* @return boolean hook value
|
* @return boolean hook value
|
||||||
*/
|
*/
|
||||||
function onEndGroupActionsList($widget, $group)
|
function onEndGroupActionsList($widget, $group)
|
||||||
|
@ -370,8 +375,10 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
|
|
||||||
$action->elementStart('li', 'entity_send-a-message');
|
$action->elementStart('li', 'entity_send-a-message');
|
||||||
$action->element('a', array('href' => common_local_url('newgroupmessage', array('nickname' => $group->nickname)),
|
$action->element('a', array('href' => common_local_url('newgroupmessage', array('nickname' => $group->nickname)),
|
||||||
|
// TRANS: Title for action in group actions list.
|
||||||
'title' => _m('Send a direct message to this group.')),
|
'title' => _m('Send a direct message to this group.')),
|
||||||
_m('Message'));
|
// TRANS: Link text for action in group actions list to send a private message to a group.
|
||||||
|
_m('LINKTEXT','Message'));
|
||||||
// $form = new GroupMessageForm($action, $group);
|
// $form = new GroupMessageForm($action, $group);
|
||||||
// $form->hidden = true;
|
// $form->hidden = true;
|
||||||
// $form->show();
|
// $form->show();
|
||||||
|
@ -384,12 +391,9 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
* privacy == always, force a group private message to all mentioned groups.
|
* privacy == always, force a group private message to all mentioned groups.
|
||||||
* If any of the groups disallows private messages, skip it.
|
* If any of the groups disallows private messages, skip it.
|
||||||
*
|
*
|
||||||
* @param
|
* @param
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onStartNoticeSave(&$notice) {
|
function onStartNoticeSave(&$notice) {
|
||||||
|
|
||||||
// Look for group tags
|
// Look for group tags
|
||||||
// FIXME: won't work for remote groups
|
// FIXME: won't work for remote groups
|
||||||
// @fixme if Notice::saveNew is refactored so we can just pull its list
|
// @fixme if Notice::saveNew is refactored so we can just pull its list
|
||||||
|
@ -406,11 +410,9 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
$profile = $notice->getProfile();
|
$profile = $notice->getProfile();
|
||||||
|
|
||||||
if ($count > 0) {
|
if ($count > 0) {
|
||||||
|
|
||||||
/* Add them to the database */
|
/* Add them to the database */
|
||||||
|
|
||||||
foreach (array_unique($match[1]) as $nickname) {
|
foreach (array_unique($match[1]) as $nickname) {
|
||||||
|
|
||||||
$group = User_group::getForNickname($nickname, $profile);
|
$group = User_group::getForNickname($nickname, $profile);
|
||||||
|
|
||||||
if (empty($group)) {
|
if (empty($group)) {
|
||||||
|
@ -433,7 +435,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($forcePrivate) {
|
if ($forcePrivate) {
|
||||||
|
|
||||||
foreach ($ignored as $group) {
|
foreach ($ignored as $group) {
|
||||||
common_log(LOG_NOTICE,
|
common_log(LOG_NOTICE,
|
||||||
"Notice forced to group direct message ".
|
"Notice forced to group direct message ".
|
||||||
|
@ -454,11 +455,12 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
|
|
||||||
// Don't save the notice!
|
// Don't save the notice!
|
||||||
// FIXME: this is probably cheating.
|
// FIXME: this is probably cheating.
|
||||||
|
// TRANS: Client exception thrown when a private group message has to be forced.
|
||||||
throw new ClientException(sprintf(_m('Forced notice to private group message.')),
|
throw new ClientException(sprintf(_m('Forced notice to private group message.')),
|
||||||
200);
|
200);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -470,12 +472,12 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
*
|
*
|
||||||
* @return boolean hook value
|
* @return boolean hook value
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function onEndGroupProfileElements($action, $group)
|
function onEndGroupProfileElements($action, $group)
|
||||||
{
|
{
|
||||||
$gps = Group_privacy_settings::forGroup($group);
|
$gps = Group_privacy_settings::forGroup($group);
|
||||||
|
|
||||||
if ($gps->allow_privacy == Group_privacy_settings::ALWAYS) {
|
if ($gps->allow_privacy == Group_privacy_settings::ALWAYS) {
|
||||||
|
// TRANS: Indicator on the group page that the group is (essentially) private.
|
||||||
$action->element('p', 'privategroupindicator', _m('Private'));
|
$action->element('p', 'privategroupindicator', _m('Private'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -486,7 +488,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
{
|
{
|
||||||
if ($action instanceof ShowgroupAction) {
|
if ($action instanceof ShowgroupAction) {
|
||||||
$gps = Group_privacy_settings::forGroup($action->group);
|
$gps = Group_privacy_settings::forGroup($action->group);
|
||||||
|
|
||||||
if ($gps->allow_privacy == Group_privacy_settings::ALWAYS) {
|
if ($gps->allow_privacy == Group_privacy_settings::ALWAYS) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -501,6 +503,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||||
'author' => 'Evan Prodromou',
|
'author' => 'Evan Prodromou',
|
||||||
'homepage' => 'http://status.net/wiki/Plugin:GroupPrivateMessage',
|
'homepage' => 'http://status.net/wiki/Plugin:GroupPrivateMessage',
|
||||||
'rawdescription' =>
|
'rawdescription' =>
|
||||||
|
// TRANS: Plugin description.
|
||||||
_m('Allow posting private messages to groups.'));
|
_m('Allow posting private messages to groups.'));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
|
||||||
*
|
*
|
||||||
* @see DB_DataObject
|
* @see DB_DataObject
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Group_message extends Memcached_DataObject
|
class Group_message extends Memcached_DataObject
|
||||||
{
|
{
|
||||||
public $__table = 'group_message'; // table name
|
public $__table = 'group_message'; // table name
|
||||||
|
@ -66,7 +65,6 @@ class Group_message extends Memcached_DataObject
|
||||||
* @param mixed $v Value to lookup
|
* @param mixed $v Value to lookup
|
||||||
*
|
*
|
||||||
* @return Group_message object found, or null for no hits
|
* @return Group_message object found, or null for no hits
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
function staticGet($k, $v=null)
|
function staticGet($k, $v=null)
|
||||||
{
|
{
|
||||||
|
@ -123,6 +121,8 @@ class Group_message extends Memcached_DataObject
|
||||||
{
|
{
|
||||||
if (!$user->hasRight(Right::NEWMESSAGE)) {
|
if (!$user->hasRight(Right::NEWMESSAGE)) {
|
||||||
// XXX: maybe break this out into a separate right
|
// XXX: maybe break this out into a separate right
|
||||||
|
// TRANS: Exception thrown when trying to send group private message without having the right to do that.
|
||||||
|
// TRANS: %s is a user nickname.
|
||||||
throw new Exception(sprintf(_m('User %s is not allowed to send private messages.'),
|
throw new Exception(sprintf(_m('User %s is not allowed to send private messages.'),
|
||||||
$user->nickname));
|
$user->nickname));
|
||||||
}
|
}
|
||||||
|
@ -134,6 +134,8 @@ class Group_message extends Memcached_DataObject
|
||||||
// We use the same limits as for 'regular' private messages.
|
// We use the same limits as for 'regular' private messages.
|
||||||
|
|
||||||
if (Message::contentTooLong($text)) {
|
if (Message::contentTooLong($text)) {
|
||||||
|
// TRANS: Exception thrown when trying to send group private message that is too long.
|
||||||
|
// TRANS: %d is the maximum meggage length.
|
||||||
throw new Exception(sprintf(_m('That\'s too long. Maximum message size is %d character.',
|
throw new Exception(sprintf(_m('That\'s too long. Maximum message size is %d character.',
|
||||||
'That\'s too long. Maximum message size is %d characters.',
|
'That\'s too long. Maximum message size is %d characters.',
|
||||||
Message::maxContent()),
|
Message::maxContent()),
|
||||||
|
@ -143,7 +145,7 @@ class Group_message extends Memcached_DataObject
|
||||||
// Valid! Let's do this thing!
|
// Valid! Let's do this thing!
|
||||||
|
|
||||||
$gm = new Group_message();
|
$gm = new Group_message();
|
||||||
|
|
||||||
$gm->id = UUID::gen();
|
$gm->id = UUID::gen();
|
||||||
$gm->uri = common_local_url('showgroupmessage', array('id' => $gm->id));
|
$gm->uri = common_local_url('showgroupmessage', array('id' => $gm->id));
|
||||||
$gm->from_profile = $user->id;
|
$gm->from_profile = $user->id;
|
||||||
|
@ -165,7 +167,7 @@ class Group_message extends Memcached_DataObject
|
||||||
function distribute()
|
function distribute()
|
||||||
{
|
{
|
||||||
$group = User_group::staticGet('id', $this->to_group);
|
$group = User_group::staticGet('id', $this->to_group);
|
||||||
|
|
||||||
$member = $group->getMembers();
|
$member = $group->getMembers();
|
||||||
|
|
||||||
while ($member->fetch()) {
|
while ($member->fetch()) {
|
||||||
|
@ -177,6 +179,7 @@ class Group_message extends Memcached_DataObject
|
||||||
{
|
{
|
||||||
$group = User_group::staticGet('id', $this->to_group);
|
$group = User_group::staticGet('id', $this->to_group);
|
||||||
if (empty($group)) {
|
if (empty($group)) {
|
||||||
|
// TRANS: Exception thrown when trying to send group private message to a non-existing group.
|
||||||
throw new ServerException(_m('No group for group message.'));
|
throw new ServerException(_m('No group for group message.'));
|
||||||
}
|
}
|
||||||
return $group;
|
return $group;
|
||||||
|
@ -186,6 +189,7 @@ class Group_message extends Memcached_DataObject
|
||||||
{
|
{
|
||||||
$sender = Profile::staticGet('id', $this->from_profile);
|
$sender = Profile::staticGet('id', $this->from_profile);
|
||||||
if (empty($sender)) {
|
if (empty($sender)) {
|
||||||
|
// TRANS: Exception thrown when trying to send group private message without having a sender.
|
||||||
throw new ServerException(_m('No sender for group message.'));
|
throw new ServerException(_m('No sender for group message.'));
|
||||||
}
|
}
|
||||||
return $sender;
|
return $sender;
|
||||||
|
@ -204,5 +208,4 @@ class Group_message extends Memcached_DataObject
|
||||||
|
|
||||||
return $gm;
|
return $gm;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
|
||||||
*
|
*
|
||||||
* @see DB_DataObject
|
* @see DB_DataObject
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Group_message_profile extends Memcached_DataObject
|
class Group_message_profile extends Memcached_DataObject
|
||||||
{
|
{
|
||||||
public $__table = 'group_message_profile'; // table name
|
public $__table = 'group_message_profile'; // table name
|
||||||
|
@ -61,7 +60,6 @@ class Group_message_profile extends Memcached_DataObject
|
||||||
* @param mixed $v Value to lookup
|
* @param mixed $v Value to lookup
|
||||||
*
|
*
|
||||||
* @return Group_message object found, or null for no hits
|
* @return Group_message object found, or null for no hits
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
function staticGet($k, $v=null)
|
function staticGet($k, $v=null)
|
||||||
{
|
{
|
||||||
|
@ -120,7 +118,7 @@ class Group_message_profile extends Memcached_DataObject
|
||||||
function send($gm, $profile)
|
function send($gm, $profile)
|
||||||
{
|
{
|
||||||
$gmp = new Group_message_profile();
|
$gmp = new Group_message_profile();
|
||||||
|
|
||||||
$gmp->group_message_id = $gm->id;
|
$gmp->group_message_id = $gm->id;
|
||||||
$gmp->to_profile = $profile->id;
|
$gmp->to_profile = $profile->id;
|
||||||
$gmp->created = common_sql_now();
|
$gmp->created = common_sql_now();
|
||||||
|
@ -138,7 +136,7 @@ class Group_message_profile extends Memcached_DataObject
|
||||||
$this->notifyByMail();
|
$this->notifyByMail();
|
||||||
}
|
}
|
||||||
|
|
||||||
function notifyByMail()
|
function notifyByMail()
|
||||||
{
|
{
|
||||||
$to = User::staticGet('id', $this->to_profile);
|
$to = User::staticGet('id', $this->to_profile);
|
||||||
|
|
||||||
|
@ -163,14 +161,14 @@ class Group_message_profile extends Memcached_DataObject
|
||||||
// TRANS: %3$s is the message content, %4$s a URL to the message,
|
// TRANS: %3$s is the message content, %4$s a URL to the message,
|
||||||
// TRANS: %5$s is the StatusNet sitename.
|
// TRANS: %5$s is the StatusNet sitename.
|
||||||
$body = sprintf(_m("%1\$s (%2\$s) sent a private message to group %3\$s:\n\n".
|
$body = sprintf(_m("%1\$s (%2\$s) sent a private message to group %3\$s:\n\n".
|
||||||
"------------------------------------------------------\n".
|
"------------------------------------------------------\n".
|
||||||
"%4\$s\n".
|
"%4\$s\n".
|
||||||
"------------------------------------------------------\n\n".
|
"------------------------------------------------------\n\n".
|
||||||
"You can reply to their message here:\n\n".
|
"You can reply to their message here:\n\n".
|
||||||
"%5\$s\n\n".
|
"%5\$s\n\n".
|
||||||
"Do not reply to this email; it will not get to them.\n\n".
|
"Do not reply to this email; it will not get to them.\n\n".
|
||||||
"With kind regards,\n".
|
"With kind regards,\n".
|
||||||
"%6\$s"),
|
"%6\$s"),
|
||||||
$from_profile->getBestName(),
|
$from_profile->getBestName(),
|
||||||
$from_profile->nickname,
|
$from_profile->nickname,
|
||||||
$group->nickname,
|
$group->nickname,
|
||||||
|
|
|
@ -44,16 +44,15 @@ if (!defined('STATUSNET')) {
|
||||||
*
|
*
|
||||||
* @see DB_DataObject
|
* @see DB_DataObject
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Group_privacy_settings extends Memcached_DataObject
|
class Group_privacy_settings extends Memcached_DataObject
|
||||||
{
|
{
|
||||||
public $__table = 'group_privacy_settings';
|
public $__table = 'group_privacy_settings';
|
||||||
/** ID of the group. */
|
/** ID of the group. */
|
||||||
public $group_id;
|
public $group_id;
|
||||||
/** When to allow privacy: always, sometimes, or never. */
|
/** When to allow privacy: always, sometimes, or never. */
|
||||||
public $allow_privacy;
|
public $allow_privacy;
|
||||||
/** Who can send private messages: everyone, member, admin */
|
/** Who can send private messages: everyone, member, admin */
|
||||||
public $allow_sender;
|
public $allow_sender;
|
||||||
/** row creation timestamp */
|
/** row creation timestamp */
|
||||||
public $created;
|
public $created;
|
||||||
/** Last-modified timestamp */
|
/** Last-modified timestamp */
|
||||||
|
@ -81,7 +80,6 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
*
|
*
|
||||||
* @return User_greeting_count object found, or null for no hits
|
* @return User_greeting_count object found, or null for no hits
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function staticGet($k, $v=null)
|
function staticGet($k, $v=null)
|
||||||
{
|
{
|
||||||
return Memcached_DataObject::staticGet('Group_privacy_settings', $k, $v);
|
return Memcached_DataObject::staticGet('Group_privacy_settings', $k, $v);
|
||||||
|
@ -95,7 +93,6 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
*
|
*
|
||||||
* @return array array of column definitions
|
* @return array array of column definitions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function table()
|
function table()
|
||||||
{
|
{
|
||||||
return array('group_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
|
return array('group_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
|
||||||
|
@ -103,7 +100,7 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
'allow_sender' => DB_DATAOBJECT_INT,
|
'allow_sender' => DB_DATAOBJECT_INT,
|
||||||
'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL,
|
'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL,
|
||||||
'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL);
|
'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -115,7 +112,6 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
*
|
*
|
||||||
* @return array list of key field names
|
* @return array list of key field names
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function keys()
|
function keys()
|
||||||
{
|
{
|
||||||
return array_keys($this->keyTypes());
|
return array_keys($this->keyTypes());
|
||||||
|
@ -128,7 +124,6 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
* 'K' for primary key: for compound keys, add an entry for each component;
|
* 'K' for primary key: for compound keys, add an entry for each component;
|
||||||
* 'U' for unique keys: compound keys are not well supported here.
|
* 'U' for unique keys: compound keys are not well supported here.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function keyTypes()
|
function keyTypes()
|
||||||
{
|
{
|
||||||
return array('group_id' => 'K');
|
return array('group_id' => 'K');
|
||||||
|
@ -139,7 +134,6 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
*
|
*
|
||||||
* @return array magic three-false array that stops auto-incrementing.
|
* @return array magic three-false array that stops auto-incrementing.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function sequenceKey()
|
function sequenceKey()
|
||||||
{
|
{
|
||||||
return array(false, false, false);
|
return array(false, false, false);
|
||||||
|
@ -164,6 +158,7 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
$gps = self::forGroup($group);
|
$gps = self::forGroup($group);
|
||||||
|
|
||||||
if ($gps->allow_privacy == Group_privacy_settings::NEVER) {
|
if ($gps->allow_privacy == Group_privacy_settings::NEVER) {
|
||||||
|
// TRANS: Exception thrown when trying to set group privacy setting if group %s does not allow private messages.
|
||||||
throw new Exception(sprintf(_m('Group %s does not allow private messages.'),
|
throw new Exception(sprintf(_m('Group %s does not allow private messages.'),
|
||||||
$group->nickname));
|
$group->nickname));
|
||||||
}
|
}
|
||||||
|
@ -172,6 +167,8 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
case Group_privacy_settings::EVERYONE:
|
case Group_privacy_settings::EVERYONE:
|
||||||
$profile = $user->getProfile();
|
$profile = $user->getProfile();
|
||||||
if (Group_block::isBlocked($group, $profile)) {
|
if (Group_block::isBlocked($group, $profile)) {
|
||||||
|
// TRANS: Exception thrown when trying to send group private message while blocked from that group.
|
||||||
|
// TRANS: %1$s is a user nickname, %2$s is a group nickname.
|
||||||
throw new Exception(sprintf(_m('User %1$s is blocked from group %2$s.'),
|
throw new Exception(sprintf(_m('User %1$s is blocked from group %2$s.'),
|
||||||
$user->nickname,
|
$user->nickname,
|
||||||
$group->nickname));
|
$group->nickname));
|
||||||
|
@ -179,6 +176,8 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
break;
|
break;
|
||||||
case Group_privacy_settings::MEMBER:
|
case Group_privacy_settings::MEMBER:
|
||||||
if (!$user->isMember($group)) {
|
if (!$user->isMember($group)) {
|
||||||
|
// TRANS: Exception thrown when trying to send group private message while not a member.
|
||||||
|
// TRANS: %1$s is a user nickname, %2$s is a group nickname.
|
||||||
throw new Exception(sprintf(_m('User %1$s is not a member of group %2$s.'),
|
throw new Exception(sprintf(_m('User %1$s is not a member of group %2$s.'),
|
||||||
$user->nickname,
|
$user->nickname,
|
||||||
$group->nickname));
|
$group->nickname));
|
||||||
|
@ -186,12 +185,16 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||||
break;
|
break;
|
||||||
case Group_privacy_settings::ADMIN:
|
case Group_privacy_settings::ADMIN:
|
||||||
if (!$user->isAdmin($group)) {
|
if (!$user->isAdmin($group)) {
|
||||||
|
// TRANS: Exception thrown when trying to send group private message while not a group administrator.
|
||||||
|
// TRANS: %1$s is a user nickname, %2$s is a group nickname.
|
||||||
throw new Exception(sprintf(_m('User %1$s is not an administrator of group %2$s.'),
|
throw new Exception(sprintf(_m('User %1$s is not an administrator of group %2$s.'),
|
||||||
$user->nickname,
|
$user->nickname,
|
||||||
$group->nickname));
|
$group->nickname));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
// TRANS: Exception thrown when encountering undefined group privacy settings.
|
||||||
|
// TRANS: %s is a group nickname.
|
||||||
throw new Exception(sprintf(_m('Unknown privacy settings for group %s.'),
|
throw new Exception(sprintf(_m('Unknown privacy settings for group %s.'),
|
||||||
$group->nickname));
|
$group->nickname));
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Copyright (C) 2011, StatusNet, Inc.
|
* Copyright (C) 2011, StatusNet, Inc.
|
||||||
*
|
*
|
||||||
* List of private messages to this group
|
* List of private messages to this group
|
||||||
*
|
*
|
||||||
* PHP version 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class GroupinboxAction extends GroupDesignAction
|
class GroupinboxAction extends GroupDesignAction
|
||||||
{
|
{
|
||||||
var $gm;
|
var $gm;
|
||||||
|
@ -63,6 +62,7 @@ class GroupinboxAction extends GroupDesignAction
|
||||||
$cur = common_current_user();
|
$cur = common_current_user();
|
||||||
|
|
||||||
if (empty($cur)) {
|
if (empty($cur)) {
|
||||||
|
// TRANS: Client exception thrown when trying to view group inbox while not logged in.
|
||||||
throw new ClientException(_m('Only for logged-in users.'), 403);
|
throw new ClientException(_m('Only for logged-in users.'), 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,16 +79,19 @@ class GroupinboxAction extends GroupDesignAction
|
||||||
$localGroup = Local_group::staticGet('nickname', $nickname);
|
$localGroup = Local_group::staticGet('nickname', $nickname);
|
||||||
|
|
||||||
if (empty($localGroup)) {
|
if (empty($localGroup)) {
|
||||||
|
// TRANS: Client exception thrown when trying to view group inbox for non-existing group.
|
||||||
throw new ClientException(_m('No such group.'), 404);
|
throw new ClientException(_m('No such group.'), 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->group = User_group::staticGet('id', $localGroup->group_id);
|
$this->group = User_group::staticGet('id', $localGroup->group_id);
|
||||||
|
|
||||||
if (empty($this->group)) {
|
if (empty($this->group)) {
|
||||||
|
// TRANS: Client exception thrown when trying to view group inbox for non-existing group.
|
||||||
throw new ClientException(_m('No such group.'), 404);
|
throw new ClientException(_m('No such group.'), 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$cur->isMember($this->group)) {
|
if (!$cur->isMember($this->group)) {
|
||||||
|
// TRANS: Client exception thrown when trying to view group inbox while not a member.
|
||||||
throw new ClientException(_m('Only for members.'), 403);
|
throw new ClientException(_m('Only for members.'), 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,8 +100,8 @@ class GroupinboxAction extends GroupDesignAction
|
||||||
if (!$this->page) {
|
if (!$this->page) {
|
||||||
$this->page = 1;
|
$this->page = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->gm = Group_message::forGroup($this->group,
|
$this->gm = Group_message::forGroup($this->group,
|
||||||
($this->page - 1) * MESSAGES_PER_PAGE,
|
($this->page - 1) * MESSAGES_PER_PAGE,
|
||||||
MESSAGES_PER_PAGE + 1);
|
MESSAGES_PER_PAGE + 1);
|
||||||
return true;
|
return true;
|
||||||
|
@ -122,6 +125,7 @@ class GroupinboxAction extends GroupDesignAction
|
||||||
$cnt = $gml->show();
|
$cnt = $gml->show();
|
||||||
|
|
||||||
if ($cnt == 0) {
|
if ($cnt == 0) {
|
||||||
|
// TRANS: Text of group inbox if no private messages were sent to it.
|
||||||
$this->element('p', 'guide', _m('This group has not received any private messages.'));
|
$this->element('p', 'guide', _m('This group has not received any private messages.'));
|
||||||
}
|
}
|
||||||
$this->pagination($this->page > 1,
|
$this->pagination($this->page > 1,
|
||||||
|
@ -167,6 +171,7 @@ class GroupinboxAction extends GroupDesignAction
|
||||||
$base = $this->group->getFancyName();
|
$base = $this->group->getFancyName();
|
||||||
|
|
||||||
if ($this->page == 1) {
|
if ($this->page == 1) {
|
||||||
|
// TRANS: Title of inbox for group %s.
|
||||||
return sprintf(_m('%s group inbox'), $base);
|
return sprintf(_m('%s group inbox'), $base);
|
||||||
} else {
|
} else {
|
||||||
// TRANS: Page title for any but first group page.
|
// TRANS: Page title for any but first group page.
|
||||||
|
@ -184,7 +189,6 @@ class GroupinboxAction extends GroupDesignAction
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function showPageNotice()
|
function showPageNotice()
|
||||||
{
|
{
|
||||||
$instr = $this->getInstructions();
|
$instr = $this->getInstructions();
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Copyright (C) 2011, StatusNet, Inc.
|
* Copyright (C) 2011, StatusNet, Inc.
|
||||||
*
|
*
|
||||||
* Command object for messages to groups
|
* Command object for messages to groups
|
||||||
*
|
*
|
||||||
* PHP version 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class GroupMessageCommand extends Command
|
class GroupMessageCommand extends Command
|
||||||
{
|
{
|
||||||
/** User sending the message. */
|
/** User sending the message. */
|
||||||
|
@ -61,7 +60,6 @@ class GroupMessageCommand extends Command
|
||||||
* @param string $nickname Nickname of the group
|
* @param string $nickname Nickname of the group
|
||||||
* @param string $text Text of message
|
* @param string $text Text of message
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function __construct($user, $nickname, $text)
|
function __construct($user, $nickname, $text)
|
||||||
{
|
{
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
|
@ -76,8 +74,9 @@ class GroupMessageCommand extends Command
|
||||||
|
|
||||||
$gm = Group_message::send($this->user, $group, $this->text);
|
$gm = Group_message::send($this->user, $group, $this->text);
|
||||||
|
|
||||||
$channel->output($this->user,
|
$channel->output($this->user,
|
||||||
sprintf(_m('Direct message to group %s sent.'),
|
// TRANS: Succes message after sending private group message to group %s.
|
||||||
|
sprintf(_m('Direct message to group %s sent.'),
|
||||||
$group->nickname));
|
$group->nickname));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Copyright (C) 2011, StatusNet, Inc.
|
* Copyright (C) 2011, StatusNet, Inc.
|
||||||
*
|
*
|
||||||
* Form for posting a group message
|
* Form for posting a group message
|
||||||
*
|
*
|
||||||
* PHP version 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class GroupMessageForm extends Form
|
class GroupMessageForm extends Form
|
||||||
{
|
{
|
||||||
var $group;
|
var $group;
|
||||||
|
@ -58,7 +57,6 @@ class GroupMessageForm extends Form
|
||||||
*
|
*
|
||||||
* @todo add a drop-down list to post to any group
|
* @todo add a drop-down list to post to any group
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function __construct($out, $group, $content=null)
|
function __construct($out, $group, $content=null)
|
||||||
{
|
{
|
||||||
parent::__construct($out);
|
parent::__construct($out);
|
||||||
|
@ -71,7 +69,7 @@ class GroupMessageForm extends Form
|
||||||
* Action for the form
|
* Action for the form
|
||||||
*/
|
*/
|
||||||
function action()
|
function action()
|
||||||
{
|
{
|
||||||
return common_local_url('newgroupmessage',
|
return common_local_url('newgroupmessage',
|
||||||
array('nickname' => $this->group->nickname));
|
array('nickname' => $this->group->nickname));
|
||||||
}
|
}
|
||||||
|
@ -87,6 +85,7 @@ class GroupMessageForm extends Form
|
||||||
{
|
{
|
||||||
$this->out->element('legend',
|
$this->out->element('legend',
|
||||||
null,
|
null,
|
||||||
|
// TRANS: Form legend for sending private message to group %s.
|
||||||
sprintf(_m('Message to %s'), $this->group->nickname));
|
sprintf(_m('Message to %s'), $this->group->nickname));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,7 +96,6 @@ class GroupMessageForm extends Form
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function id()
|
function id()
|
||||||
{
|
{
|
||||||
return 'form_notice-group-message';
|
return 'form_notice-group-message';
|
||||||
|
@ -110,7 +108,6 @@ class GroupMessageForm extends Form
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function formClass()
|
function formClass()
|
||||||
{
|
{
|
||||||
return 'form_notice';
|
return 'form_notice';
|
||||||
|
@ -123,11 +120,11 @@ class GroupMessageForm extends Form
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function formData()
|
function formData()
|
||||||
{
|
{
|
||||||
$this->out->element('label', array('for' => 'notice_data-text',
|
$this->out->element('label', array('for' => 'notice_data-text',
|
||||||
'id' => 'notice_data-text-label'),
|
'id' => 'notice_data-text-label'),
|
||||||
|
// TRANS: Field label for private group message to group %s.
|
||||||
sprintf(_m('Direct message to %s'), $this->group->nickname));
|
sprintf(_m('Direct message to %s'), $this->group->nickname));
|
||||||
|
|
||||||
$this->out->element('textarea', array('id' => 'notice_data-text',
|
$this->out->element('textarea', array('id' => 'notice_data-text',
|
||||||
|
@ -140,6 +137,7 @@ class GroupMessageForm extends Form
|
||||||
|
|
||||||
if ($contentLimit > 0) {
|
if ($contentLimit > 0) {
|
||||||
$this->out->elementStart('dl', 'form_note');
|
$this->out->elementStart('dl', 'form_note');
|
||||||
|
// TRANS: Indicator for number of chatacters still available for notice.
|
||||||
$this->out->element('dt', null, _m('Available characters'));
|
$this->out->element('dt', null, _m('Available characters'));
|
||||||
$this->out->element('dd', array('class' => 'count'),
|
$this->out->element('dd', array('class' => 'count'),
|
||||||
$contentLimit);
|
$contentLimit);
|
||||||
|
@ -154,13 +152,13 @@ class GroupMessageForm extends Form
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function formActions()
|
function formActions()
|
||||||
{
|
{
|
||||||
$this->out->element('input', array('id' => 'notice_action-submit',
|
$this->out->element('input', array('id' => 'notice_action-submit',
|
||||||
'class' => 'submit',
|
'class' => 'submit',
|
||||||
'name' => 'message_send',
|
'name' => 'message_send',
|
||||||
'type' => 'submit',
|
'type' => 'submit',
|
||||||
|
// TRANS: Send button text for sending private group notice.
|
||||||
'value' => _m('Send button for sending notice', 'Send')));
|
'value' => _m('Send button for sending notice', 'Send')));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Copyright (C) 2011, StatusNet, Inc.
|
* Copyright (C) 2011, StatusNet, Inc.
|
||||||
*
|
*
|
||||||
* Widget for showing list of group messages
|
* Widget for showing list of group messages
|
||||||
*
|
*
|
||||||
* PHP version 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Copyright (C) 2011, StatusNet, Inc.
|
* Copyright (C) 2011, StatusNet, Inc.
|
||||||
*
|
*
|
||||||
* Widget for showing an individual group message
|
* Widget for showing an individual group message
|
||||||
*
|
*
|
||||||
* PHP version 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -69,13 +69,13 @@ class GroupMessageListItem extends Widget
|
||||||
{
|
{
|
||||||
$group = $this->gm->getGroup();
|
$group = $this->gm->getGroup();
|
||||||
$sender = $this->gm->getSender();
|
$sender = $this->gm->getSender();
|
||||||
|
|
||||||
$this->out->elementStart('li', array('class' => 'hentry notice message group-message',
|
$this->out->elementStart('li', array('class' => 'hentry notice message group-message',
|
||||||
'id' => 'message-' . $this->gm->id));
|
'id' => 'message-' . $this->gm->id));
|
||||||
|
|
||||||
$this->out->elementStart('div', 'entry-title');
|
$this->out->elementStart('div', 'entry-title');
|
||||||
$this->out->elementStart('span', 'vcard author');
|
$this->out->elementStart('span', 'vcard author');
|
||||||
$this->out->elementStart('a',
|
$this->out->elementStart('a',
|
||||||
array('href' => $sender->profileurl,
|
array('href' => $sender->profileurl,
|
||||||
'class' => 'url'));
|
'class' => 'url'));
|
||||||
$avatar = $sender->getAvatar(AVATAR_STREAM_SIZE);
|
$avatar = $sender->getAvatar(AVATAR_STREAM_SIZE);
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Copyright (C) 2011, StatusNet, Inc.
|
* Copyright (C) 2011, StatusNet, Inc.
|
||||||
*
|
*
|
||||||
* Action for adding a new group message
|
* Action for adding a new group message
|
||||||
*
|
*
|
||||||
* PHP version 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class NewgroupmessageAction extends Action
|
class NewgroupmessageAction extends Action
|
||||||
{
|
{
|
||||||
var $group;
|
var $group;
|
||||||
|
@ -58,7 +57,6 @@ class NewgroupmessageAction extends Action
|
||||||
*
|
*
|
||||||
* @return boolean true
|
* @return boolean true
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($argarray)
|
function prepare($argarray)
|
||||||
{
|
{
|
||||||
parent::prepare($argarray);
|
parent::prepare($argarray);
|
||||||
|
@ -66,10 +64,12 @@ class NewgroupmessageAction extends Action
|
||||||
$this->user = common_current_user();
|
$this->user = common_current_user();
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
|
// TRANS: Client exception thrown when trying to send a private group message while not logged in.
|
||||||
throw new ClientException(_m('Must be logged in.'), 403);
|
throw new ClientException(_m('Must be logged in.'), 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->user->hasRight(Right::NEWMESSAGE)) {
|
if (!$this->user->hasRight(Right::NEWMESSAGE)) {
|
||||||
|
// TRANS: Exception thrown when user %s is not allowed to send a private group message.
|
||||||
throw new Exception(sprintf(_m('User %s is not allowed to send private messages.'),
|
throw new Exception(sprintf(_m('User %s is not allowed to send private messages.'),
|
||||||
$this->user->nickname));
|
$this->user->nickname));
|
||||||
}
|
}
|
||||||
|
@ -87,21 +87,21 @@ class NewgroupmessageAction extends Action
|
||||||
$localGroup = Local_group::staticGet('nickname', $nickname);
|
$localGroup = Local_group::staticGet('nickname', $nickname);
|
||||||
|
|
||||||
if (empty($localGroup)) {
|
if (empty($localGroup)) {
|
||||||
|
// TRANS: Client exception thrown when trying to send a private group message to a non-existing group.
|
||||||
throw new ClientException(_m('No such group.'), 404);
|
throw new ClientException(_m('No such group.'), 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->group = User_group::staticGet('id', $localGroup->group_id);
|
$this->group = User_group::staticGet('id', $localGroup->group_id);
|
||||||
|
|
||||||
if (empty($this->group)) {
|
if (empty($this->group)) {
|
||||||
|
// TRANS: Client exception thrown when trying to send a private group message to a non-existing group.
|
||||||
throw new ClientException(_m('No such group.'), 404);
|
throw new ClientException(_m('No such group.'), 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This throws an exception on error
|
// This throws an exception on error
|
||||||
|
|
||||||
Group_privacy_settings::ensurePost($this->user, $this->group);
|
Group_privacy_settings::ensurePost($this->user, $this->group);
|
||||||
|
|
||||||
// If we're posted to, check session token and get text
|
// If we're posted to, check session token and get text
|
||||||
|
|
||||||
if ($this->isPost()) {
|
if ($this->isPost()) {
|
||||||
$this->checkSessionToken();
|
$this->checkSessionToken();
|
||||||
$this->text = $this->trimmed('content');
|
$this->text = $this->trimmed('content');
|
||||||
|
@ -117,7 +117,6 @@ class NewgroupmessageAction extends Action
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function handle($argarray=null)
|
function handle($argarray=null)
|
||||||
{
|
{
|
||||||
if ($this->isPost()) {
|
if ($this->isPost()) {
|
||||||
|
@ -140,11 +139,13 @@ class NewgroupmessageAction extends Action
|
||||||
if ($this->boolean('ajax')) {
|
if ($this->boolean('ajax')) {
|
||||||
$this->startHTML('text/xml;charset=utf-8');
|
$this->startHTML('text/xml;charset=utf-8');
|
||||||
$this->elementStart('head');
|
$this->elementStart('head');
|
||||||
|
// TRANS: Title after sending a private group message.
|
||||||
$this->element('title', null, _m('Message sent'));
|
$this->element('title', null, _m('Message sent'));
|
||||||
$this->elementEnd('head');
|
$this->elementEnd('head');
|
||||||
$this->elementStart('body');
|
$this->elementStart('body');
|
||||||
$this->element('p',
|
$this->element('p',
|
||||||
array('id' => 'command_result'),
|
array('id' => 'command_result'),
|
||||||
|
// TRANS: Succes text after sending a direct message to group %s.
|
||||||
sprintf(_m('Direct message to %s sent.'),
|
sprintf(_m('Direct message to %s sent.'),
|
||||||
$this->group->nickname));
|
$this->group->nickname));
|
||||||
$this->elementEnd('body');
|
$this->elementEnd('body');
|
||||||
|
@ -156,6 +157,7 @@ class NewgroupmessageAction extends Action
|
||||||
|
|
||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
|
// TRANS: Title of form for new private group message.
|
||||||
return sprintf(_m('New message to group %s'), $this->group->nickname);
|
return sprintf(_m('New message to group %s'), $this->group->nickname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Copyright (C) 2011, StatusNet, Inc.
|
* Copyright (C) 2011, StatusNet, Inc.
|
||||||
*
|
*
|
||||||
* Show a single group message
|
* Show a single group message
|
||||||
*
|
*
|
||||||
* PHP version 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class ShowgroupmessageAction extends Action
|
class ShowgroupmessageAction extends Action
|
||||||
{
|
{
|
||||||
var $gm;
|
var $gm;
|
||||||
|
@ -59,7 +58,6 @@ class ShowgroupmessageAction extends Action
|
||||||
*
|
*
|
||||||
* @return boolean true
|
* @return boolean true
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($argarray)
|
function prepare($argarray)
|
||||||
{
|
{
|
||||||
parent::prepare($argarray);
|
parent::prepare($argarray);
|
||||||
|
@ -67,6 +65,7 @@ class ShowgroupmessageAction extends Action
|
||||||
$this->user = common_current_user();
|
$this->user = common_current_user();
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
|
// TRANS: Client exception thrown when trying to view group private messages without being logged in.
|
||||||
throw new ClientException(_m('Only logged-in users can view private messages.'),
|
throw new ClientException(_m('Only logged-in users can view private messages.'),
|
||||||
403);
|
403);
|
||||||
}
|
}
|
||||||
|
@ -76,22 +75,26 @@ class ShowgroupmessageAction extends Action
|
||||||
$this->gm = Group_message::staticGet('id', $id);
|
$this->gm = Group_message::staticGet('id', $id);
|
||||||
|
|
||||||
if (empty($this->gm)) {
|
if (empty($this->gm)) {
|
||||||
|
// TRANS: Client exception thrown when trying to view a non-existing group private message.
|
||||||
throw new ClientException(_m('No such message.'), 404);
|
throw new ClientException(_m('No such message.'), 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->group = User_group::staticGet('id', $this->gm->to_group);
|
$this->group = User_group::staticGet('id', $this->gm->to_group);
|
||||||
|
|
||||||
if (empty($this->group)) {
|
if (empty($this->group)) {
|
||||||
|
// TRANS: Server exception thrown when trying to view group private messages for a non-exsting group.
|
||||||
throw new ServerException(_m('Group not found.'));
|
throw new ServerException(_m('Group not found.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->user->isMember($this->group)) {
|
if (!$this->user->isMember($this->group)) {
|
||||||
|
// TRANS: Client exception thrown when trying to view a group private message without being a group member.
|
||||||
throw new ClientException(_m('Cannot read message.'), 403);
|
throw new ClientException(_m('Cannot read message.'), 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->sender = Profile::staticGet('id', $this->gm->from_profile);
|
$this->sender = Profile::staticGet('id', $this->gm->from_profile);
|
||||||
|
|
||||||
if (empty($this->sender)) {
|
if (empty($this->sender)) {
|
||||||
|
// TRANS: Server exception thrown when trying to view a group private message without a sender.
|
||||||
throw new ServerException(_m('No sender found.'));
|
throw new ServerException(_m('No sender found.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,7 +108,6 @@ class ShowgroupmessageAction extends Action
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function handle($argarray=null)
|
function handle($argarray=null)
|
||||||
{
|
{
|
||||||
$this->showPage();
|
$this->showPage();
|
||||||
|
@ -114,9 +116,10 @@ class ShowgroupmessageAction extends Action
|
||||||
/**
|
/**
|
||||||
* Title of the page
|
* Title of the page
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
|
// TRANS: Title for private group message.
|
||||||
|
// TRANS: %1$s is the sender name, %2$s is the group name, %3$s is a timestamp.
|
||||||
return sprintf(_m('Message from %1$s to group %2$s on %3$s'),
|
return sprintf(_m('Message from %1$s to group %2$s on %3$s'),
|
||||||
$this->sender->nickname,
|
$this->sender->nickname,
|
||||||
$this->group->nickname,
|
$this->group->nickname,
|
||||||
|
@ -126,7 +129,6 @@ class ShowgroupmessageAction extends Action
|
||||||
/**
|
/**
|
||||||
* Show the content area.
|
* Show the content area.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
$this->elementStart('ul', 'notices messages');
|
$this->elementStart('ul', 'notices messages');
|
||||||
|
@ -144,7 +146,6 @@ class ShowgroupmessageAction extends Action
|
||||||
*
|
*
|
||||||
* @return boolean is read only action?
|
* @return boolean is read only action?
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function isReadOnly($args)
|
function isReadOnly($args)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -324,11 +324,13 @@ class SearchSubPlugin extends Plugin
|
||||||
{
|
{
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
|
|
||||||
$searches = SearchSub::forProfile($user->getProfile());
|
if (!empty($user)) {
|
||||||
|
$searches = SearchSub::forProfile($user->getProfile());
|
||||||
|
|
||||||
if (!empty($searches) && count($searches) > 0) {
|
if (!empty($searches) && count($searches) > 0) {
|
||||||
$searchSubMenu = new SearchSubMenu($menu->out, $user, $searches);
|
$searchSubMenu = new SearchSubMenu($menu->out, $user, $searches);
|
||||||
$menu->submenu(_m('Searches'), $searchSubMenu);
|
$menu->submenu(_m('Searches'), $searchSubMenu);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -245,11 +245,14 @@ class TagSubPlugin extends Plugin
|
||||||
{
|
{
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
|
|
||||||
$tags = TagSub::forProfile($user->getProfile());
|
if (!empty($user)) {
|
||||||
|
|
||||||
if (!empty($tags) && count($tags) > 0) {
|
$tags = TagSub::forProfile($user->getProfile());
|
||||||
$tagSubMenu = new TagSubMenu($menu->out, $user, $tags);
|
|
||||||
$menu->submenu(_m('Tags'), $tagSubMenu);
|
if (!empty($tags) && count($tags) > 0) {
|
||||||
|
$tagSubMenu = new TagSubMenu($menu->out, $user, $tags);
|
||||||
|
$menu->submenu(_m('Tags'), $tagSubMenu);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -1,489 +0,0 @@
|
||||||
/** theme: biz
|
|
||||||
*
|
|
||||||
* @package StatusNet
|
|
||||||
* @author Sarven Capadisli <csarven@status.net>
|
|
||||||
* @copyright 2009 StatusNet, Inc.
|
|
||||||
* @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported
|
|
||||||
* @link http://status.net/
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import url(base.css);
|
|
||||||
|
|
||||||
@media screen, projection, tv {
|
|
||||||
html {
|
|
||||||
background-color:#144A6E;
|
|
||||||
}
|
|
||||||
a:active {
|
|
||||||
background-color:#F4F7E7;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
|
|
||||||
font-size:1em;
|
|
||||||
background:#144A6E url(../images/illustrations/illu_pattern-01.png) repeat-x;
|
|
||||||
}
|
|
||||||
|
|
||||||
address {
|
|
||||||
margin-right:5.7%;
|
|
||||||
}
|
|
||||||
|
|
||||||
input, textarea, select {
|
|
||||||
border-width:2px;
|
|
||||||
border-style: solid;
|
|
||||||
border-radius:4px;
|
|
||||||
-moz-border-radius:4px;
|
|
||||||
-webkit-border-radius:4px;
|
|
||||||
}
|
|
||||||
input, textarea, select, option {
|
|
||||||
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
|
|
||||||
}
|
|
||||||
input, textarea, select {
|
|
||||||
border-color:#AAAAAA;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings fieldset fieldset {
|
|
||||||
background:rgba(240, 240, 240, 0.2);
|
|
||||||
box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
-moz-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
-webkit-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
#filter_tags ul li,
|
|
||||||
.entity_send-a-message .form_notice,
|
|
||||||
.pagination .nav_prev a,
|
|
||||||
.pagination .nav_next a,
|
|
||||||
.form_settings fieldset fieldset,
|
|
||||||
.entity_moderation:hover ul {
|
|
||||||
border-color:#DDDDDD;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings input.form_action-primary {
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice.warning .count,
|
|
||||||
.form_settings .form_note {
|
|
||||||
background-color:#9BB43E;
|
|
||||||
}
|
|
||||||
input.submit,
|
|
||||||
.form_notice.warning .count,
|
|
||||||
.form_settings .form_note,
|
|
||||||
.entity_actions a,
|
|
||||||
.entity_actions input,
|
|
||||||
.entity_moderation p,
|
|
||||||
button {
|
|
||||||
box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
}
|
|
||||||
.entity_actions a,
|
|
||||||
.entity_actions input,
|
|
||||||
.entity_actions p {
|
|
||||||
border-color:transparent;
|
|
||||||
background-color:transparent;
|
|
||||||
}
|
|
||||||
input:focus, textarea:focus, select:focus,
|
|
||||||
.form_notice.warning textarea,
|
|
||||||
.form_notice.warning .count,
|
|
||||||
.form_settings .form_note {
|
|
||||||
border-color:#9BB43E;
|
|
||||||
}
|
|
||||||
|
|
||||||
input.submit {
|
|
||||||
color:#FFFFFF;
|
|
||||||
}
|
|
||||||
.entity_actions input.submit {
|
|
||||||
border-color:transparent;
|
|
||||||
text-shadow:none;
|
|
||||||
}
|
|
||||||
.dialogbox .submit_dialogbox,
|
|
||||||
input.submit,
|
|
||||||
.form_notice input.submit {
|
|
||||||
background:#AAAAAA url(../../base/images/illustrations/illu_pattern-01.png) 0 0 repeat-x;
|
|
||||||
text-shadow:0 1px 0 #FFFFFF;
|
|
||||||
color:#000000;
|
|
||||||
border-color:#AAAAAA;
|
|
||||||
border-top-color:#CCCCCC;
|
|
||||||
border-left-color:#CCCCCC;
|
|
||||||
}
|
|
||||||
.dialogbox .submit_dialogbox:hover,
|
|
||||||
input.submit:hover {
|
|
||||||
background-position:0 -5px;
|
|
||||||
}
|
|
||||||
.dialogbox .submit_dialogbox:focus,
|
|
||||||
input.submit:focus {
|
|
||||||
background-position:0 -15px;
|
|
||||||
box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
|
|
||||||
-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
|
|
||||||
-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
|
|
||||||
text-shadow:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice label.notice_data-geo {
|
|
||||||
background-position:0 -1780px;
|
|
||||||
}
|
|
||||||
.form_notice label.notice_data-geo.checked {
|
|
||||||
background-position:0 -1846px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a,
|
|
||||||
.form_settings input.form_action-primary,
|
|
||||||
.notice-options input,
|
|
||||||
.entity_actions a,
|
|
||||||
.entity_actions input,
|
|
||||||
.entity_moderation p {
|
|
||||||
color:#002FA7;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header a,
|
|
||||||
#footer a {
|
|
||||||
color:#87B4C8;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.notice,
|
|
||||||
.profile,
|
|
||||||
.application,
|
|
||||||
#content tbody tr {
|
|
||||||
border-top-color:#C8D1D5;
|
|
||||||
}
|
|
||||||
.mark-top {
|
|
||||||
border-color:#AAAAAA;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary {
|
|
||||||
background-color:#144A6E;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section .profile {
|
|
||||||
border-top-color:#87B4C8;
|
|
||||||
}
|
|
||||||
|
|
||||||
.aside .section {
|
|
||||||
background-color:#F1F5F8;
|
|
||||||
background-position:100% 0;
|
|
||||||
background-image:url(../images/illustrations/illu_pattern-02.png);
|
|
||||||
background-repeat:no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .count {
|
|
||||||
color:#333333;
|
|
||||||
}
|
|
||||||
#form_notice.warning .count {
|
|
||||||
color:#000000;
|
|
||||||
}
|
|
||||||
.form_notice label.notice_data-attach {
|
|
||||||
background-position:0 -328px;
|
|
||||||
}
|
|
||||||
.form_notice input.notice_data-attach {
|
|
||||||
opacity:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice label.notice_data-attach,
|
|
||||||
#export_data li a.rss,
|
|
||||||
#export_data li a.atom,
|
|
||||||
#export_data li a.foaf,
|
|
||||||
.entity_edit a,
|
|
||||||
.entity_send-a-message a,
|
|
||||||
.entity_nudge p,
|
|
||||||
.form_user_nudge input.submit,
|
|
||||||
.form_user_block input.submit,
|
|
||||||
.form_user_unblock input.submit,
|
|
||||||
.form_group_block input.submit,
|
|
||||||
.form_group_unblock input.submit,
|
|
||||||
.form_make_admin input.submit,
|
|
||||||
.notice .attachment,
|
|
||||||
.notice-options .notice_reply,
|
|
||||||
.notice-options form.form_favor input.submit,
|
|
||||||
.notice-options form.form_disfavor input.submit,
|
|
||||||
.notice-options .notice_delete,
|
|
||||||
.notice-options form.form_repeat input.submit,
|
|
||||||
#new_group a,
|
|
||||||
.pagination .nav_prev a,
|
|
||||||
.pagination .nav_next a,
|
|
||||||
button.close,
|
|
||||||
.form_group_leave input.submit,
|
|
||||||
.form_user_unsubscribe input.submit,
|
|
||||||
.form_group_join input.submit,
|
|
||||||
.form_user_subscribe input.submit,
|
|
||||||
.form_remote_authorize input.submit,
|
|
||||||
.entity_subscribe a,
|
|
||||||
.entity_moderation p,
|
|
||||||
.entity_sandbox input.submit,
|
|
||||||
.entity_silence input.submit,
|
|
||||||
.entity_delete input.submit,
|
|
||||||
.entity_role p,
|
|
||||||
.entity_role_administrator input.submit,
|
|
||||||
.entity_role_moderator input.submit,
|
|
||||||
.notice-options .repeated,
|
|
||||||
.form_notice label.notice_data-geo,
|
|
||||||
button.minimize,
|
|
||||||
.form_reset_key input.submit,
|
|
||||||
.entity_clear input.submit,
|
|
||||||
.entity_flag input.submit,
|
|
||||||
.entity_flag p,
|
|
||||||
.entity_subscribe input.submit,
|
|
||||||
#realtime_play,
|
|
||||||
#realtime_pause,
|
|
||||||
#realtime_popup {
|
|
||||||
background-image:url(../../base/images/icons/icons-01.gif);
|
|
||||||
background-repeat:no-repeat;
|
|
||||||
background-color:transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wrap form.processing input.submit,
|
|
||||||
.entity_actions a.processing,
|
|
||||||
.dialogbox.processing .submit_dialogbox {
|
|
||||||
background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%;
|
|
||||||
}
|
|
||||||
.notice-options .form_repeat.processing {
|
|
||||||
background-image:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content {
|
|
||||||
box-shadow:5px 7px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
-moz-box-shadow:5px 7px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
-webkit-box-shadow:5px 7px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
}
|
|
||||||
#content,
|
|
||||||
#site_nav_local_views a,
|
|
||||||
.aside .section {
|
|
||||||
border-color:#FFFFFF;
|
|
||||||
}
|
|
||||||
#content,
|
|
||||||
#site_nav_local_views .current a,
|
|
||||||
.entity_send-a-message .form_notice,
|
|
||||||
.entity_moderation:hover ul,
|
|
||||||
.entity_role:hover ul,
|
|
||||||
.dialogbox {
|
|
||||||
background-color:#FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views li.current {
|
|
||||||
box-shadow:3px 7px 5px rgba(194, 194, 194, 0.5);
|
|
||||||
-moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.5);
|
|
||||||
-webkit-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.5);
|
|
||||||
}
|
|
||||||
#site_nav_local_views a {
|
|
||||||
background-color:rgba(194, 194, 194, 0.5);
|
|
||||||
}
|
|
||||||
#site_nav_local_views a:hover {
|
|
||||||
background-color:rgba(255, 255, 255, 0.7);
|
|
||||||
}
|
|
||||||
#site_nav_local_views .current a {
|
|
||||||
text-shadow: rgba(194,194,194,0.5) 1px 1px 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.error {
|
|
||||||
background-color:#F7E8E8;
|
|
||||||
}
|
|
||||||
.success {
|
|
||||||
background-color:#EFF3DC;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.close {
|
|
||||||
background-position:0 -1120px;
|
|
||||||
}
|
|
||||||
button.minimize {
|
|
||||||
background-position:0 -1912px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#anon_notice {
|
|
||||||
color:#FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
#export_data li a {
|
|
||||||
background-repeat:no-repeat;
|
|
||||||
background-position:0 45%;
|
|
||||||
}
|
|
||||||
#export_data li a.rss {
|
|
||||||
background-position:0 -130px;
|
|
||||||
}
|
|
||||||
#export_data li a.atom {
|
|
||||||
background-position:0 -64px;
|
|
||||||
}
|
|
||||||
#export_data li a.foaf {
|
|
||||||
background-position:0 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_group_join input.submit,
|
|
||||||
.form_group_leave input.submit,
|
|
||||||
.form_user_subscribe input.submit,
|
|
||||||
.form_user_unsubscribe input.submit,
|
|
||||||
.entity_subscribe a {
|
|
||||||
background-color:#AAAAAA;
|
|
||||||
color:#FFFFFF;
|
|
||||||
}
|
|
||||||
.form_group_leave input.submit,
|
|
||||||
.form_user_unsubscribe input.submit {
|
|
||||||
background-position:5px -1246px;
|
|
||||||
}
|
|
||||||
.form_group_join input.submit,
|
|
||||||
.form_user_subscribe input.submit,
|
|
||||||
.entity_subscribe a {
|
|
||||||
background-position:5px -1181px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_edit a {
|
|
||||||
background-position: 5px -718px;
|
|
||||||
}
|
|
||||||
.entity_send-a-message a {
|
|
||||||
background-position: 5px -852px;
|
|
||||||
}
|
|
||||||
.entity_send-a-message .form_notice,
|
|
||||||
.entity_moderation:hover ul {
|
|
||||||
box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7);
|
|
||||||
-moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7);
|
|
||||||
-webkit-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7);
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_nudge p,
|
|
||||||
.form_user_nudge input.submit {
|
|
||||||
background-position: 5px -785px;
|
|
||||||
}
|
|
||||||
.form_user_block input.submit,
|
|
||||||
.form_user_unblock input.submit,
|
|
||||||
.form_group_block input.submit,
|
|
||||||
.form_group_unblock input.submit {
|
|
||||||
background-position: 5px -918px;
|
|
||||||
}
|
|
||||||
.form_make_admin input.submit {
|
|
||||||
background-position: 5px -983px;
|
|
||||||
}
|
|
||||||
.entity_moderation p {
|
|
||||||
background-position: 5px -1313px;
|
|
||||||
}
|
|
||||||
.entity_sandbox input.submit {
|
|
||||||
background-position: 5px -1380px;
|
|
||||||
}
|
|
||||||
.entity_silence input.submit {
|
|
||||||
background-position: 5px -1445px;
|
|
||||||
}
|
|
||||||
.entity_delete input.submit {
|
|
||||||
background-position: 5px -1511px;
|
|
||||||
}
|
|
||||||
.form_reset_key input.submit {
|
|
||||||
background-position: 5px -1973px;
|
|
||||||
}
|
|
||||||
.entity_clear input.submit {
|
|
||||||
background-position: 5px -2039px;
|
|
||||||
}
|
|
||||||
.entity_flag input.submit,
|
|
||||||
.entity_flag p {
|
|
||||||
background-position: 5px -2105px;
|
|
||||||
}
|
|
||||||
.entity_subscribe input.accept {
|
|
||||||
background-position: 5px -2171px;
|
|
||||||
}
|
|
||||||
.entity_subscribe input.reject {
|
|
||||||
background-position: 5px -2237px;
|
|
||||||
}
|
|
||||||
#realtime_play {
|
|
||||||
background-position: 0 -2308px;
|
|
||||||
}
|
|
||||||
#realtime_pause {
|
|
||||||
background-position: 0 -2374px;
|
|
||||||
}
|
|
||||||
#realtime_popup {
|
|
||||||
background-position: 0 -1714px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* NOTICES */
|
|
||||||
.notice .attachment {
|
|
||||||
background-position:0 -394px;
|
|
||||||
}
|
|
||||||
.notice .attachment.more {
|
|
||||||
background-position:0 -2770px;
|
|
||||||
}
|
|
||||||
#attachments .attachment {
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
.notice-options .notice_reply {
|
|
||||||
background-position:0 -592px;
|
|
||||||
}
|
|
||||||
.notice-options form.form_favor input.submit {
|
|
||||||
background-position:0 -460px;
|
|
||||||
}
|
|
||||||
.notice-options form.form_disfavor input.submit {
|
|
||||||
background-position:0 -526px;
|
|
||||||
}
|
|
||||||
.notice-options .notice_delete {
|
|
||||||
background-position:0 -658px;
|
|
||||||
}
|
|
||||||
.notice-options form.form_repeat input.submit {
|
|
||||||
background-position:0 -1582px;
|
|
||||||
}
|
|
||||||
.notice-options .repeated {
|
|
||||||
background-position:0 -1648px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notices .attachment.more,
|
|
||||||
.notices div.entry-content,
|
|
||||||
.notices div.notice-options {
|
|
||||||
opacity:0.4;
|
|
||||||
}
|
|
||||||
.notices li:hover .attachment.more,
|
|
||||||
.notices li:hover div.entry-content,
|
|
||||||
.notices li:hover div.notice-options {
|
|
||||||
opacity:1;
|
|
||||||
}
|
|
||||||
.opaque {
|
|
||||||
opacity:1 !important;
|
|
||||||
}
|
|
||||||
div.notice-options a,
|
|
||||||
div.notice-options input {
|
|
||||||
font-family:sans-serif;
|
|
||||||
}
|
|
||||||
#content .notices li:hover {
|
|
||||||
background-color:rgba(240, 240, 240, 0.2);
|
|
||||||
}
|
|
||||||
#conversation .notices li:hover {
|
|
||||||
background-color:transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notices .notices {
|
|
||||||
background-color:rgba(200, 200, 200, 0.050);
|
|
||||||
}
|
|
||||||
.notices .notices .notices {
|
|
||||||
background-color:rgba(200, 200, 200, 0.100);
|
|
||||||
}
|
|
||||||
.notices .notices .notices .notices {
|
|
||||||
background-color:rgba(200, 200, 200, 0.150);
|
|
||||||
}
|
|
||||||
.notices .notices .notices .notices .notices {
|
|
||||||
background-color:rgba(200, 200, 200, 0.300);
|
|
||||||
}
|
|
||||||
/*END: NOTICES */
|
|
||||||
|
|
||||||
#new_group a {
|
|
||||||
background-position:0 -1054px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination .nav_prev a,
|
|
||||||
.pagination .nav_next a {
|
|
||||||
background-repeat:no-repeat;
|
|
||||||
box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
}
|
|
||||||
.pagination .nav_prev a {
|
|
||||||
background-position:10% -187px;
|
|
||||||
}
|
|
||||||
.pagination .nav_next a {
|
|
||||||
background-position:105% -252px;
|
|
||||||
}
|
|
||||||
.pagination .nav .processing {
|
|
||||||
background-image:url(../../base/images/icons/icon_processing.gif);
|
|
||||||
box-shadow:none;
|
|
||||||
-moz-box-shadow:none;
|
|
||||||
-webkit-box-shadow:none;
|
|
||||||
outline:none;
|
|
||||||
}
|
|
||||||
.pagination .nav_next a.processing {
|
|
||||||
background-position:90% 47%;
|
|
||||||
}
|
|
||||||
.pagination .nav_prev a.processing {
|
|
||||||
background-position:10% 47%;
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
/**
|
|
||||||
* @package StatusNet
|
|
||||||
* @author Sarven Capadisli <csarven@status.net>
|
|
||||||
* @copyright 2009-2010 StatusNet, Inc.
|
|
||||||
* @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported
|
|
||||||
* @link http://status.net/
|
|
||||||
*/
|
|
||||||
/* IE specific styles */
|
|
||||||
|
|
||||||
.notice-options input.submit {
|
|
||||||
color:#fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views a {
|
|
||||||
background-color:#D0DFE7;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 646 B |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 935 B |
Before Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 9.9 KiB |
|
@ -1,256 +0,0 @@
|
||||||
/** theme: clean
|
|
||||||
*
|
|
||||||
* @package StatusNet
|
|
||||||
* @author Samantha Doherty <sammy@status.net>
|
|
||||||
* @copyright 2010 StatusNet, Inc.
|
|
||||||
* @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported
|
|
||||||
* @link http://status.net/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
@media screen, projection, tv {
|
|
||||||
|
|
||||||
body {
|
|
||||||
background: url(../images/page_bg.png) no-repeat fixed 50% 100%;
|
|
||||||
background-color: #6e6e8c;
|
|
||||||
font-family: "Liberation Sans", "Nimbus Sans L", "FreeSans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
font-size: 86%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wrap {
|
|
||||||
width: 867px;
|
|
||||||
margin: 0px auto;
|
|
||||||
padding: 0px 8px 10px 8px;
|
|
||||||
background-color: #fff;
|
|
||||||
box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7);
|
|
||||||
-moz-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7);
|
|
||||||
-webkit-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7);
|
|
||||||
}
|
|
||||||
|
|
||||||
#header {
|
|
||||||
width: 851px;
|
|
||||||
padding: 0px;
|
|
||||||
padding-top: 70px;
|
|
||||||
margin-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
address {
|
|
||||||
float: left;
|
|
||||||
margin-right: 20px;
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.poweredby {
|
|
||||||
background: url(../images/sn-tiny.png) no-repeat top left;
|
|
||||||
height: 40px;
|
|
||||||
font-size: 0.8em;
|
|
||||||
color: #fff;
|
|
||||||
line-height: 42px;
|
|
||||||
padding-left: 50px;
|
|
||||||
position: absolute;
|
|
||||||
top: 6px;
|
|
||||||
left: 0;
|
|
||||||
z-index: 99;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.poweredby a {
|
|
||||||
color: #fff !important;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
z-index: 98;
|
|
||||||
background-color: #829d25;
|
|
||||||
width: 883px;
|
|
||||||
margin-left: -16px;
|
|
||||||
margin-top: 0px;
|
|
||||||
height: 30px;
|
|
||||||
line-height: 30px;
|
|
||||||
text-align: right;
|
|
||||||
border-top: 10px solid #fff;
|
|
||||||
border-bottom: 1px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary li:last-child {
|
|
||||||
margin-right: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary a {
|
|
||||||
color: #fff !important;
|
|
||||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_notice {
|
|
||||||
float: right;
|
|
||||||
width: 270px;
|
|
||||||
padding: 10px;
|
|
||||||
margin-left: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#anon_notice {
|
|
||||||
clear: both;
|
|
||||||
background: none;
|
|
||||||
padding: 0px;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice {
|
|
||||||
float: right;
|
|
||||||
width: 494px;
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice fieldset {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice textarea {
|
|
||||||
width: 362px;
|
|
||||||
height: 54px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice label.notice_data-attach,
|
|
||||||
.form_notice input.notice_data-attach {
|
|
||||||
top: 27px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .notice_data-geo_wrap label,
|
|
||||||
.form_notice .notice_data-geo_wrap input {
|
|
||||||
top: 52px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .submit {
|
|
||||||
font-size: 0.9em;
|
|
||||||
top: 80px;
|
|
||||||
right:0;
|
|
||||||
height: 2.4em;
|
|
||||||
width: 96px;
|
|
||||||
right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .error,
|
|
||||||
.form_notice .success {
|
|
||||||
width: 375px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .error {
|
|
||||||
width: 375px;
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#core {
|
|
||||||
clear: both;
|
|
||||||
margin: 0px;
|
|
||||||
width: 851px;
|
|
||||||
margin-left: 8px;
|
|
||||||
margin-top: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content {
|
|
||||||
padding-top: 10px;
|
|
||||||
width: 545px;
|
|
||||||
margin-right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views {
|
|
||||||
background-color: #6e6e8c;
|
|
||||||
height: 2em;
|
|
||||||
line-height: 2em;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
padding-left: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views a {
|
|
||||||
color: #fff !important;
|
|
||||||
padding: 2px 6px 2px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views .current a {
|
|
||||||
background: #fff !important;
|
|
||||||
color: #000 !important;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary {
|
|
||||||
width: 280px;
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary .section {
|
|
||||||
width: 270px;
|
|
||||||
margin-left: 0px;
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section ul.entities {
|
|
||||||
width: 290px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section .entities li {
|
|
||||||
margin-right: 17px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
width: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice {
|
|
||||||
line-height: 1.35em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content .notice .author .photo {
|
|
||||||
left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content .notice .entry-title {
|
|
||||||
min-height: 26px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#shownotice .notice .entry-title {
|
|
||||||
min-height:123px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice div.entry-content {
|
|
||||||
font-size: 0.9em;
|
|
||||||
line-height: 1.2em;
|
|
||||||
margin-top: 10px;
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice:hover div.entry-content {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user_in .notice div.entry-content {
|
|
||||||
max-width: 360px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.entry-content a.response:before {
|
|
||||||
content: "(";
|
|
||||||
}
|
|
||||||
|
|
||||||
div.entry-content a.response:after {
|
|
||||||
content: ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice-options {
|
|
||||||
margin-top: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination {
|
|
||||||
height: 1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#jOverlayContent button {
|
|
||||||
top: 20px;
|
|
||||||
right: 36px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_profile {
|
|
||||||
width: 365px;
|
|
||||||
}
|
|
||||||
|
|
||||||
}/*end of @media screen, projection, tv*/
|
|
|
@ -1,77 +0,0 @@
|
||||||
/* Temporary copy of base styles for overriding */
|
|
||||||
|
|
||||||
input.checkbox,
|
|
||||||
input.radio {
|
|
||||||
top:0;
|
|
||||||
}
|
|
||||||
.form_notice textarea {
|
|
||||||
width: 362px;
|
|
||||||
}
|
|
||||||
.form_notice .count + label {
|
|
||||||
position:absolute;
|
|
||||||
top:25px;
|
|
||||||
left:83%;
|
|
||||||
text-indent:-9999px;
|
|
||||||
height:16px;
|
|
||||||
width:16px;
|
|
||||||
display:block;
|
|
||||||
left: 390px;
|
|
||||||
top: 27px;
|
|
||||||
}
|
|
||||||
.form_notice .submit {
|
|
||||||
width: 96px;
|
|
||||||
max-width: 96px;
|
|
||||||
}
|
|
||||||
.form_notice .attach-status,
|
|
||||||
.form_notice #notice_data-geo_selected {
|
|
||||||
width:78.75%;
|
|
||||||
}
|
|
||||||
.form_notice .attach-status button,
|
|
||||||
.form_notice #notice_data-geo_selected button {
|
|
||||||
padding:0 4px;
|
|
||||||
}
|
|
||||||
.notice-options input.submit {
|
|
||||||
font-size:0;
|
|
||||||
text-align:right;
|
|
||||||
text-indent:0;
|
|
||||||
}
|
|
||||||
.notice div.entry-content .timestamp a {
|
|
||||||
margin-right:4px;
|
|
||||||
}
|
|
||||||
.entity_profile {
|
|
||||||
width:64%;
|
|
||||||
}
|
|
||||||
.notice {
|
|
||||||
z-index:1;
|
|
||||||
}
|
|
||||||
.notice:hover {
|
|
||||||
z-index:9999;
|
|
||||||
}
|
|
||||||
.notice .thumbnail img {
|
|
||||||
z-index:9999;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings fieldset fieldset legend {
|
|
||||||
line-height:auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* IE specific styles */
|
|
||||||
|
|
||||||
.notice-options input.submit {
|
|
||||||
color:#FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice input.notice_data-attach {
|
|
||||||
filter: alpha(opacity=0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .count + label {
|
|
||||||
background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -328px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .notice_data-geo_wrap label {
|
|
||||||
background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1780px;
|
|
||||||
}
|
|
||||||
.form_notice .notice_data-geo_wrap label.checked {
|
|
||||||
background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1846px;
|
|
||||||
}
|
|
|
@ -1,191 +0,0 @@
|
||||||
/* mobile style */
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-image: none;
|
|
||||||
min-width: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wrap {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
min-width:0;
|
|
||||||
max-width:100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header {
|
|
||||||
width: 96%;
|
|
||||||
padding: 0 2%;
|
|
||||||
padding-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user_in #header {
|
|
||||||
padding-top: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
address {
|
|
||||||
margin:1em 0 0 0;
|
|
||||||
float:left;
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
address img + .fn {
|
|
||||||
display:block;
|
|
||||||
margin-top:1em;
|
|
||||||
margin-right: 10px;
|
|
||||||
clear: left;
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary {
|
|
||||||
margin:0;
|
|
||||||
width: 98%;
|
|
||||||
padding: 4px 0;
|
|
||||||
margin-left: -2%;
|
|
||||||
height: auto;
|
|
||||||
position:absolute;
|
|
||||||
top:0;
|
|
||||||
left:0;
|
|
||||||
font-size: 1em;
|
|
||||||
letter-spacing: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary li {
|
|
||||||
margin-left:0;
|
|
||||||
margin-right:10px;
|
|
||||||
float:left;
|
|
||||||
font-size:0.9em;
|
|
||||||
padding: 2px 4px;
|
|
||||||
line-height: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice {
|
|
||||||
float: left;
|
|
||||||
margin-left: -10px;
|
|
||||||
width: 300px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_notice-direct.form_notice {
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice textarea {
|
|
||||||
width: 210px;
|
|
||||||
height: 50px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .count {
|
|
||||||
position:absolute;
|
|
||||||
bottom:2px;
|
|
||||||
left: 175px;
|
|
||||||
font-size: 0.8em;
|
|
||||||
z-index:9;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_notice-direct.form_notice .count {
|
|
||||||
left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*input type=file no good in
|
|
||||||
iPhone/iPod Touch, Android, Opera Mini Simulator
|
|
||||||
*/
|
|
||||||
.form_notice .count + label,
|
|
||||||
.form_notice label[for="notice_data-attach"] {
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.form_notice input.notice_data-attach {
|
|
||||||
position:static;
|
|
||||||
clear:both;
|
|
||||||
width:65%;
|
|
||||||
height:auto;
|
|
||||||
display:block;
|
|
||||||
z-index:9;
|
|
||||||
padding:0;
|
|
||||||
margin:0;
|
|
||||||
background:none;
|
|
||||||
opacity:1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .submit {
|
|
||||||
text-align: center;
|
|
||||||
left: 230px;
|
|
||||||
top: 32px;
|
|
||||||
width: 70px;
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_notice-direct.form_notice .submit {
|
|
||||||
top: 62px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views {
|
|
||||||
height: auto;
|
|
||||||
font-size: 0.9em;
|
|
||||||
line-height: 2em;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
padding-left: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views li {
|
|
||||||
margin-right: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#core {
|
|
||||||
width: 100%;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content {
|
|
||||||
width: 96%;
|
|
||||||
padding: 10px 2%;
|
|
||||||
margin: 0;
|
|
||||||
min-height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer {
|
|
||||||
margin: 0;
|
|
||||||
padding: 10px 4px 4px 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.form_settings fieldset {
|
|
||||||
margin-bottom:7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings label {
|
|
||||||
width:auto;
|
|
||||||
display:block;
|
|
||||||
float:none;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings .form_data li {
|
|
||||||
margin-bottom:7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings .form_data textarea,
|
|
||||||
.form_settings .form_data select,
|
|
||||||
.form_settings .form_data input {
|
|
||||||
margin-left:0;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
.form_settings .form_data textarea {
|
|
||||||
width:96.41%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings .form_data label {
|
|
||||||
float:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings .form_data p.form_guide {
|
|
||||||
width:auto;
|
|
||||||
margin-left:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#settings_design_color .form_data {
|
|
||||||
width: auto;
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 3.9 KiB |
|
@ -1 +0,0 @@
|
||||||
include=rebase
|
|
|
@ -1,810 +0,0 @@
|
||||||
/** theme: cleaner
|
|
||||||
*
|
|
||||||
* @package StatusNet
|
|
||||||
* @author Samantha Doherty <sammy@status.net>
|
|
||||||
* @copyright 2011 StatusNet, Inc.
|
|
||||||
* @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported
|
|
||||||
* @link http://status.net/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
@media screen, projection, tv {
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-color: #e2e2e2;
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {color: #3e3e8c;}
|
|
||||||
|
|
||||||
h1 {font-size: 1.6em;}
|
|
||||||
h2 {font-size: 1.6em;}
|
|
||||||
h3 {font-size: 1.4em;}
|
|
||||||
h4 {font-size: 1.4em;}
|
|
||||||
h5 {font-size: 1.2em;}
|
|
||||||
h6 {font-size: 1em;}
|
|
||||||
|
|
||||||
#wrap {
|
|
||||||
width: 940px;
|
|
||||||
margin: 0px auto;
|
|
||||||
padding: 0px 10px 10px 10px;
|
|
||||||
background-color: #fff;
|
|
||||||
box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5);
|
|
||||||
-moz-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5);
|
|
||||||
-webkit-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
#header {
|
|
||||||
width: 940px;
|
|
||||||
padding: 0px;
|
|
||||||
padding-top: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
address {
|
|
||||||
float: left;
|
|
||||||
margin-right: 20px;
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.poweredby {
|
|
||||||
background: url(../images/sn-tiny.png) no-repeat top left;
|
|
||||||
height: 40px;
|
|
||||||
font-size: 0.8em;
|
|
||||||
color: #fff;
|
|
||||||
line-height: 42px;
|
|
||||||
padding-left: 50px;
|
|
||||||
position: absolute;
|
|
||||||
top: 6px;
|
|
||||||
left: 0;
|
|
||||||
z-index: 99;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.poweredby a {
|
|
||||||
color: #fff !important;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
z-index: 98;
|
|
||||||
background-color: #364A84;
|
|
||||||
width: 960px;
|
|
||||||
margin-left: -10px;
|
|
||||||
margin-top: 0px;
|
|
||||||
height: 24px;
|
|
||||||
line-height: 20px;
|
|
||||||
text-align: right;
|
|
||||||
border-top: 10px solid #fff;
|
|
||||||
border-bottom: 1px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary ul {
|
|
||||||
margin-right: -15px;
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary li {
|
|
||||||
margin-right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary li:last-child {
|
|
||||||
margin-right: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary a {
|
|
||||||
color: #fff !important;
|
|
||||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5);
|
|
||||||
padding: 2px 12px 2px 12px;
|
|
||||||
height: 20px;
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary a:hover {
|
|
||||||
color: #fff !important;
|
|
||||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5);
|
|
||||||
background: #4c619c;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_notice {
|
|
||||||
color: #000;
|
|
||||||
float: right;
|
|
||||||
width: 280px;
|
|
||||||
padding: 10px;
|
|
||||||
margin-left: 40px;
|
|
||||||
-webkit-border-radius: 6px;
|
|
||||||
-moz-border-radius: 6px;
|
|
||||||
border-radius: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_notice a {
|
|
||||||
color: #3e3e8c;
|
|
||||||
}
|
|
||||||
|
|
||||||
#anon_notice {
|
|
||||||
color: #000;
|
|
||||||
clear: both;
|
|
||||||
background: none;
|
|
||||||
padding: 0px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#anon_notice a {
|
|
||||||
color: #3e3e8c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice {
|
|
||||||
float: right;
|
|
||||||
margin-top: 0px;
|
|
||||||
width: 460px;
|
|
||||||
-webkit-border-radius: 6px;
|
|
||||||
-moz-border-radius: 6px;
|
|
||||||
border-radius: 6px;
|
|
||||||
background: #cdd1dd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice fieldset {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice textarea {
|
|
||||||
width: 328px;
|
|
||||||
height: 54px;
|
|
||||||
-webkit-border-radius: 6px;
|
|
||||||
-moz-border-radius: 6px;
|
|
||||||
border-radius: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice label.notice_data-attach,
|
|
||||||
.form_notice input.notice_data-attach {
|
|
||||||
top: 27px;
|
|
||||||
right: 86px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .notice_data-geo_wrap label,
|
|
||||||
.form_notice .notice_data-geo_wrap input {
|
|
||||||
top: 52px;
|
|
||||||
right: 86px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .submit {
|
|
||||||
font-size: 0.9em;
|
|
||||||
top: 80px;
|
|
||||||
right: -2px;
|
|
||||||
height: 2.4em;
|
|
||||||
width: 106px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .error,
|
|
||||||
.form_notice .success {
|
|
||||||
width: 341px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .error {
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#core {
|
|
||||||
clear: both;
|
|
||||||
margin: 0px;
|
|
||||||
width: 940px;
|
|
||||||
margin-left: 0px;
|
|
||||||
margin-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content {
|
|
||||||
padding-top: 10px;
|
|
||||||
width: 610px;
|
|
||||||
margin-right: 0px;
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-right: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views {
|
|
||||||
background-color: #7080aa;
|
|
||||||
-webkit-border-top-left-radius: 6px;
|
|
||||||
-webkit-border-top-right-radius: 6px;
|
|
||||||
-moz-border-radius-topleft: 6px;
|
|
||||||
-moz-border-radius-topright: 6px;
|
|
||||||
border-top-left-radius: 6px;
|
|
||||||
border-top-right-radius: 6px;
|
|
||||||
height: 24px;
|
|
||||||
line-height: 20px;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
padding-left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views a {
|
|
||||||
color: #fff !important;
|
|
||||||
padding: 2px 12px 2px 12px;
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
height: 20px;
|
|
||||||
width: auto;
|
|
||||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views li:first-child a {
|
|
||||||
-webkit-border-top-left-radius: 6px;
|
|
||||||
-moz-border-radius-topleft: 6px;
|
|
||||||
border-top-left-radius: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views a:hover {
|
|
||||||
background: #8e98b4 !important;
|
|
||||||
color: #fff !important;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views .current a {
|
|
||||||
text-decoration: none;
|
|
||||||
background: #8e98b4 !important;
|
|
||||||
color: #fff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary {
|
|
||||||
width: 290px;
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-top: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary .section {
|
|
||||||
width: 280px;
|
|
||||||
margin-left: 0px;
|
|
||||||
margin-right: 10px;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary h2 {
|
|
||||||
font-size: 1.4em;
|
|
||||||
margin-bottom: 8px;
|
|
||||||
border-bottom: 2px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section ul.entities {
|
|
||||||
width: 290px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section .entities li {
|
|
||||||
margin-right: 17px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
width: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#popular_notices .avatar {
|
|
||||||
position: relative;
|
|
||||||
top: 2px;
|
|
||||||
margin-bottom: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary td {
|
|
||||||
padding-right: 20px;
|
|
||||||
padding-bottom: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary td .nickname {
|
|
||||||
line-height: 1.6em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section .avatar {
|
|
||||||
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
|
|
||||||
-moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
|
|
||||||
-webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
#content h1 {
|
|
||||||
margin-bottom: 8px;
|
|
||||||
border-bottom: 2px solid #f2f2f2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#notices_primary {
|
|
||||||
margin-top: -5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content .notice {
|
|
||||||
padding-bottom: 14px;
|
|
||||||
border-bottom: 2px dotted #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice {
|
|
||||||
line-height: 1.35em;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content .notice .author .photo {
|
|
||||||
left: 0px;
|
|
||||||
top: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content .notice .entry-title {
|
|
||||||
min-height: 34px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#showstream .notice .entry-title {
|
|
||||||
min-height: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#shownotice .notice .entry-title {
|
|
||||||
min-height:123px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice div.entry-content {
|
|
||||||
font-size: 0.9em;
|
|
||||||
line-height: 1.2em;
|
|
||||||
margin-top: 6px;
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice:hover div.entry-content {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user_in .notice div.entry-content {
|
|
||||||
max-width: 440px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.entry-content a.response:before {
|
|
||||||
content: "(";
|
|
||||||
}
|
|
||||||
|
|
||||||
div.entry-content a.response:after {
|
|
||||||
content: ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice-options {
|
|
||||||
margin-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination {
|
|
||||||
height: 1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#jOverlayContent button {
|
|
||||||
top: 20px;
|
|
||||||
right: 36px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_profile {
|
|
||||||
float: left;
|
|
||||||
width: 435px;
|
|
||||||
margin-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_profile .entity_depiction {
|
|
||||||
margin-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_actions {
|
|
||||||
width: 140px;
|
|
||||||
margin-top: 8px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_actions a, .entity_actions p, .entity_actions .entity_subscribe input, .entity_actions .entity_block input, .entity_actions .entity_moderation input, .entity_actions .entity_role input, .entity_actions .entity_nudge input, .entity_actions .entity_delete input {
|
|
||||||
text-shadow:0 1px 0 rgba(255,255,255,0.4);
|
|
||||||
border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
-webkit-border-radius: 4px;
|
|
||||||
background-color: #CDD1DD !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_moderation:hover ul,
|
|
||||||
.entity_role:hover ul {
|
|
||||||
border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
-webkit-border-radius: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_send-a-message .form_notice legend {
|
|
||||||
text-shadow:0 1px 0 rgba(255,255,255,0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_send-a-message .form_notice {
|
|
||||||
border: 1px solid #7B4E82;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_send-a-message .form_notice .submit {
|
|
||||||
color: #fff !important;
|
|
||||||
top: 46px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary #entity_remote_subscribe a:hover {
|
|
||||||
background-color: #fff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entity_remote_subscribe .dialogbox {
|
|
||||||
border: 1px solid #7B4E82;
|
|
||||||
border-radius: 8px;
|
|
||||||
-moz-border-radius: 8px;
|
|
||||||
-webkit-border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entity_remote_subscribe input {
|
|
||||||
padding-left: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entity_remote_subscribe .submit_dialogbox {
|
|
||||||
margin-top: 10px;
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#filter_tags_item .submit {
|
|
||||||
left: 6px;
|
|
||||||
top: -3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination {
|
|
||||||
height: 1.2em;
|
|
||||||
padding-bottom: 12px;
|
|
||||||
-webkit-border-radius: 6px;
|
|
||||||
-moz-border-radius: 6px;
|
|
||||||
border-radius: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer {
|
|
||||||
color: #000;
|
|
||||||
margin-left: 0px;
|
|
||||||
margin-right: 0px;
|
|
||||||
-webkit-border-top-left-radius: 6px;
|
|
||||||
-webkit-border-top-right-radius: 6px;
|
|
||||||
-moz-border-radius-topleft: 6px;
|
|
||||||
-moz-border-radius-topright: 6px;
|
|
||||||
border-top-left-radius: 6px;
|
|
||||||
border-top-right-radius: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer a {
|
|
||||||
color: #3e3e8c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.error, .success {
|
|
||||||
background-color: #F7E8E8;
|
|
||||||
padding: 4px;
|
|
||||||
-webkit-border-radius: 6px;
|
|
||||||
-moz-border-radius: 6px;
|
|
||||||
border-radius: 6px;
|
|
||||||
}
|
|
||||||
.success {
|
|
||||||
background-color: #f2f2f2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice input.submit, .form_settings input.submit, .form_settings input.cancel {
|
|
||||||
border-radius: 3px;
|
|
||||||
-moz-border-radius: 3px;
|
|
||||||
-webkit-border-radius: 3px;
|
|
||||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5);
|
|
||||||
color:#fff;
|
|
||||||
font-weight: normal;
|
|
||||||
font-size: 1em;
|
|
||||||
height: 2.2em;
|
|
||||||
padding-left: 1em;
|
|
||||||
padding-right: 1em;
|
|
||||||
background: #7080aa;
|
|
||||||
background: -moz-linear-gradient(top, #7b8dbb , #7080aa);
|
|
||||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#7b8dbb), color-stop(100%,#7080aa));
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7b8dbb', endColorstr='#7080aa',GradientType=0 );
|
|
||||||
border-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice input.submit:hover, .form_settings input.submit:hover, .form_settings input.cancel:hover {
|
|
||||||
text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.8);
|
|
||||||
background: #7b8dbb;
|
|
||||||
background: -moz-linear-gradient(top, #7080aa , #7b8dbb);
|
|
||||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#7080aa), color-stop(100%,#7b8dbb));
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7080aa', endColorstr='#7b8dbb',GradientType=0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings input#settings_design_reset, .form_settings input.cancel {
|
|
||||||
background: #e2e2e2;
|
|
||||||
color: #8e181b;
|
|
||||||
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings input#settings_design_reset:hover, .form_settings input.cancel:hover {
|
|
||||||
background: #f2f2f2;
|
|
||||||
color: #8e181b;
|
|
||||||
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings input.checkbox, .form_settings input.radio {
|
|
||||||
margin-left: 24%;
|
|
||||||
margin-top: 2px;
|
|
||||||
position: relative;
|
|
||||||
left: -14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings label.checkbox, .form_settings label.radio {
|
|
||||||
width: auto;
|
|
||||||
max-width: 60%;
|
|
||||||
position: relative;
|
|
||||||
left: -30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings li input.radio {
|
|
||||||
clear: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings label.radio {
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 10px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_login p.form_guide, #form_register #settings_rememberme p.form_guide, #form_openid_login #settings_rememberme p.form_guide, #settings_twitter_remove p.form_guide, #design_background-image_onoff p.form_guide {
|
|
||||||
margin-left: 26%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_search ul.form_data #q {
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings fieldset fieldset {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
padding-top: 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#content thead th {
|
|
||||||
text-align:left;
|
|
||||||
}
|
|
||||||
#content tbody th {
|
|
||||||
vertical-align:top;
|
|
||||||
text-align:left;
|
|
||||||
font-weight:normal;
|
|
||||||
padding-top:11px;
|
|
||||||
padding-right:18px;
|
|
||||||
}
|
|
||||||
#content tbody tr {
|
|
||||||
border-top: 1px dotted #bbb;
|
|
||||||
}
|
|
||||||
#content td {
|
|
||||||
padding:11px 18px 11px 0;
|
|
||||||
vertical-align:top;
|
|
||||||
}
|
|
||||||
#content td:last-child {
|
|
||||||
padding-right:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#realtime_actions {
|
|
||||||
position: relative !important;
|
|
||||||
float: right;
|
|
||||||
padding-top: 15px;
|
|
||||||
margin-bottom: -8px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.realtime-popup #content {
|
|
||||||
padding-left: 4px !important;
|
|
||||||
padding-right: 4px !important;
|
|
||||||
margin-right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.realtime-popup .form_notice textarea {
|
|
||||||
width: 325px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.realtime-popup .form_notice .submit {
|
|
||||||
top: 59px !important;
|
|
||||||
right: 6px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.realtime-popup .form_notice label.notice_data-attach, .realtime-popup .form_notice input.notice_data-attach {
|
|
||||||
right: 74px;
|
|
||||||
top: 3px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.realtime-popup .form_notice .notice_data-geo_wrap label, .realtime-popup .form_notice .notice_data-geo_wrap input {
|
|
||||||
right: 8px;
|
|
||||||
top: 3px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Bookmark specific styles */
|
|
||||||
|
|
||||||
#content .bookmark .entry-title {
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bookmark h3 {
|
|
||||||
margin: 0px 0px 8px 0px;
|
|
||||||
float: left;
|
|
||||||
line-height: 1.2em;
|
|
||||||
max-width: 92%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bookmark-notice-count {
|
|
||||||
border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
-webkit-border-radius: 4px;
|
|
||||||
padding: 1px 6px;
|
|
||||||
font-size: 1.2em;
|
|
||||||
line-height: 1.2em;
|
|
||||||
background: #fff;
|
|
||||||
border: 1px solid #7b8dbb;
|
|
||||||
color: #3e3e8c !important;
|
|
||||||
position: relative;
|
|
||||||
right: 4px;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bookmark-notice-count:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
background: #f2f2f2;
|
|
||||||
border: 1px solid #7b8dbb;
|
|
||||||
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice .bookmark-description {
|
|
||||||
clear: both;
|
|
||||||
margin-left: 0px;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice .bookmark-author {
|
|
||||||
margin-left: 0px;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bookmark-tags {
|
|
||||||
clear: both;
|
|
||||||
margin-bottom: 8px;
|
|
||||||
line-height: 1.6em;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.bookmark-tags a {
|
|
||||||
border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
-webkit-border-radius: 4px;
|
|
||||||
padding: 1px 6px;
|
|
||||||
background: #f2f2f2;
|
|
||||||
color: #3e3e8c !important;
|
|
||||||
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5);
|
|
||||||
font-size: 0.9em;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.bookmark-tags a:hover {
|
|
||||||
background-color: #cdd1dd;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bookmark-avatar {
|
|
||||||
float: none !important;
|
|
||||||
position: relative;
|
|
||||||
top: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bookmark div.entry-content {
|
|
||||||
font-size: 0.9em;
|
|
||||||
line-height: 1.2em;
|
|
||||||
margin-top: 6px;
|
|
||||||
opacity: 0.6;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bookmark:hover div.entry-content {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bookmark .notice-options {
|
|
||||||
margin-top: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bookmarkpopup {
|
|
||||||
min-width: 600px;
|
|
||||||
margin-top: 0px;
|
|
||||||
height: 100%;
|
|
||||||
border: 10px solid #364A84;
|
|
||||||
background: #364A84;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bookmarkpopup #wrap {
|
|
||||||
width: auto;
|
|
||||||
min-width: 560px;
|
|
||||||
padding: 40px 0px 25px 0px;
|
|
||||||
margin-right: 2px;
|
|
||||||
background: #fff url(../mobilelogo.png) no-repeat 6px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bookmarkpopup #header {
|
|
||||||
width: auto;
|
|
||||||
padding: 0px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bookmarkpopup .form_settings label {
|
|
||||||
margin-top: 2px;
|
|
||||||
text-align: right;
|
|
||||||
width: 24%;
|
|
||||||
font-size: 1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bookmarkpopup .form_settings .form_data input {
|
|
||||||
width: 60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bookmarkpopup .form_guide {
|
|
||||||
color: #777;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bookmarkpopup #submit {
|
|
||||||
float: right;
|
|
||||||
margin-right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bookmarkpopup fieldset fieldset {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Onboard specific styles */
|
|
||||||
|
|
||||||
.onboard-flash {
|
|
||||||
border-radius: 6px;
|
|
||||||
-moz-border-radius: 6px;
|
|
||||||
-webkit-border-radius: 6px;
|
|
||||||
font-size: 1.1em;
|
|
||||||
box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5);
|
|
||||||
-moz-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5);
|
|
||||||
-webkit-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.onboard-flash p {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.onboard-flash .next:before {
|
|
||||||
content: '\00BB';
|
|
||||||
padding-right: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.onboard-breadcrumbs {
|
|
||||||
margin-bottom: 16px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.onboard-breadcrumbs li {
|
|
||||||
background: none !important;
|
|
||||||
border-top: none !important;
|
|
||||||
padding: 6px 12px 2px 0px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.onboard-breadcrumbs li:last-child {
|
|
||||||
padding-right: 0px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.onboard-breadcrumbs a {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.onboard-breadcrumbs a:hover {
|
|
||||||
color: #3e3e8c !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Billing specific styles */
|
|
||||||
|
|
||||||
#content table.billing_info {
|
|
||||||
margin-top: 10px;
|
|
||||||
background:rgba(240, 240, 240, 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
#content table.billing_info th {
|
|
||||||
text-align: right;
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.invalid {
|
|
||||||
border: solid 2px red !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#payment_history table {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#billingadminpanel .form_settings input {
|
|
||||||
margin-right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
}/*end of @media screen, projection, tv*/
|
|
|
@ -1,81 +0,0 @@
|
||||||
/* Temporary copy of base styles for overriding */
|
|
||||||
|
|
||||||
input.checkbox,
|
|
||||||
input.radio {
|
|
||||||
top:0;
|
|
||||||
}
|
|
||||||
.form_notice textarea {
|
|
||||||
width: 328px;
|
|
||||||
}
|
|
||||||
.form_notice .count + label {
|
|
||||||
position:absolute;
|
|
||||||
top:25px;
|
|
||||||
left:83%;
|
|
||||||
text-indent:-9999px;
|
|
||||||
height:16px;
|
|
||||||
width:16px;
|
|
||||||
display:block;
|
|
||||||
left: 390px;
|
|
||||||
top: 27px;
|
|
||||||
}
|
|
||||||
.form_notice .submit {
|
|
||||||
width: 106px;
|
|
||||||
max-width: 106px;
|
|
||||||
}
|
|
||||||
.form_notice .attach-status,
|
|
||||||
.form_notice #notice_data-geo_selected {
|
|
||||||
width:78.75%;
|
|
||||||
}
|
|
||||||
.form_notice .attach-status button,
|
|
||||||
.form_notice #notice_data-geo_selected button {
|
|
||||||
padding:0 4px;
|
|
||||||
}
|
|
||||||
.notice-options input.submit {
|
|
||||||
font-size:0;
|
|
||||||
text-align:right;
|
|
||||||
text-indent:0;
|
|
||||||
}
|
|
||||||
.notice div.entry-content .timestamp a {
|
|
||||||
margin-right:4px;
|
|
||||||
}
|
|
||||||
.entity_profile {
|
|
||||||
width:64%;
|
|
||||||
}
|
|
||||||
.notice {
|
|
||||||
z-index:1;
|
|
||||||
}
|
|
||||||
.notice:hover {
|
|
||||||
z-index:9999;
|
|
||||||
}
|
|
||||||
.notice .thumbnail img {
|
|
||||||
z-index:9999;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings fieldset fieldset legend {
|
|
||||||
line-height:auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* IE specific styles */
|
|
||||||
|
|
||||||
#site_nav_global_primary ul {
|
|
||||||
margin-right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice-options input.submit {
|
|
||||||
color:#FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice input.notice_data-attach {
|
|
||||||
filter: alpha(opacity=0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .count + label {
|
|
||||||
background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -328px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .notice_data-geo_wrap label {
|
|
||||||
background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1780px;
|
|
||||||
}
|
|
||||||
.form_notice .notice_data-geo_wrap label.checked {
|
|
||||||
background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1846px;
|
|
||||||
}
|
|
|
@ -1,204 +0,0 @@
|
||||||
/* mobile style */
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-image: none;
|
|
||||||
min-width: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wrap {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
min-width:0;
|
|
||||||
max-width:100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header {
|
|
||||||
width: 96%;
|
|
||||||
padding: 0 2%;
|
|
||||||
padding-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user_in #header {
|
|
||||||
padding-top: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
address {
|
|
||||||
margin:1em 0 0 0;
|
|
||||||
float:left;
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
address img + .fn {
|
|
||||||
display:block;
|
|
||||||
margin-top:1em;
|
|
||||||
margin-right: 10px;
|
|
||||||
clear: left;
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary {
|
|
||||||
margin:0;
|
|
||||||
width: 100%;
|
|
||||||
padding: 4px 0;
|
|
||||||
height: auto;
|
|
||||||
position:absolute;
|
|
||||||
top:0;
|
|
||||||
left:0;
|
|
||||||
font-size: 1em;
|
|
||||||
letter-spacing: 0em;
|
|
||||||
border-top: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary li {
|
|
||||||
margin-left:0;
|
|
||||||
margin-right:0px;
|
|
||||||
float:left;
|
|
||||||
font-size:0.9em;
|
|
||||||
padding: 2px 4px;
|
|
||||||
line-height: 1em;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_global_primary li a {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice {
|
|
||||||
float: left;
|
|
||||||
margin-left: 0px;
|
|
||||||
width: 300px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_notice-direct.form_notice {
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice textarea {
|
|
||||||
width: 210px;
|
|
||||||
height: 50px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .count {
|
|
||||||
position:absolute;
|
|
||||||
bottom:2px;
|
|
||||||
left: 175px;
|
|
||||||
font-size: 0.8em;
|
|
||||||
z-index:9;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_notice-direct.form_notice .count {
|
|
||||||
left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*input type=file no good in
|
|
||||||
iPhone/iPod Touch, Android, Opera Mini Simulator
|
|
||||||
*/
|
|
||||||
.form_notice .count + label,
|
|
||||||
.form_notice label[for="notice_data-attach"] {
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.form_notice input.notice_data-attach {
|
|
||||||
position:static;
|
|
||||||
clear:both;
|
|
||||||
width:65%;
|
|
||||||
height:auto;
|
|
||||||
display:block;
|
|
||||||
z-index:9;
|
|
||||||
padding:0;
|
|
||||||
margin:0;
|
|
||||||
background:none;
|
|
||||||
opacity:1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .submit {
|
|
||||||
text-align: center;
|
|
||||||
left: 230px;
|
|
||||||
top: 32px;
|
|
||||||
width: 70px;
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_notice-direct.form_notice .submit {
|
|
||||||
top: 62px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views {
|
|
||||||
height: auto;
|
|
||||||
font-size: 0.9em;
|
|
||||||
line-height: 2em;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
padding-left: 4px;
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views li {
|
|
||||||
margin-right: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views a {
|
|
||||||
background-color: #7080aa;
|
|
||||||
-webkit-border-radius: 6px;
|
|
||||||
-moz-border-radius: 6px;
|
|
||||||
border-radius: 6px;
|
|
||||||
margin-right: 2px;
|
|
||||||
margin-bottom: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#core {
|
|
||||||
width: 100%;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content {
|
|
||||||
width: 96%;
|
|
||||||
padding: 10px 2%;
|
|
||||||
margin: 0;
|
|
||||||
min-height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer {
|
|
||||||
margin: 0;
|
|
||||||
padding: 10px 4px 4px 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.form_settings fieldset {
|
|
||||||
margin-bottom:7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings label {
|
|
||||||
width:auto;
|
|
||||||
display:block;
|
|
||||||
float:none;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings .form_data li {
|
|
||||||
margin-bottom:7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings .form_data textarea,
|
|
||||||
.form_settings .form_data select,
|
|
||||||
.form_settings .form_data input {
|
|
||||||
margin-left:0;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
.form_settings .form_data textarea {
|
|
||||||
width:96.41%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings .form_data label {
|
|
||||||
float:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings .form_data p.form_guide {
|
|
||||||
width:auto;
|
|
||||||
margin-left:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#settings_design_color .form_data {
|
|
||||||
width: auto;
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 857 B |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 9.1 KiB |
|
@ -1 +0,0 @@
|
||||||
include=rebase
|
|
|
@ -1,82 +0,0 @@
|
||||||
/**
|
|
||||||
* @package StatusNet
|
|
||||||
* @author Sarven Capadisli <csarven@status.net>
|
|
||||||
* @copyright 2009-2010 StatusNet, Inc.
|
|
||||||
* @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported
|
|
||||||
* @link http://status.net/
|
|
||||||
*/
|
|
||||||
/* IE specific styles */
|
|
||||||
|
|
||||||
.notice-options input.submit {
|
|
||||||
color:#fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views a {
|
|
||||||
background-color:#ddffcc;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_notice {
|
|
||||||
width:525px;
|
|
||||||
}
|
|
||||||
.form_notice .count {
|
|
||||||
top:-5px;
|
|
||||||
right:0;
|
|
||||||
}
|
|
||||||
#form_notice textarea {
|
|
||||||
width:97.75%;
|
|
||||||
}
|
|
||||||
.form_notice .count + label {
|
|
||||||
position:absolute;
|
|
||||||
top:87px;
|
|
||||||
left:77%;
|
|
||||||
text-indent:-9999px;
|
|
||||||
height:16px;
|
|
||||||
width:16px;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
#form_notice input.notice_data-attach {
|
|
||||||
filter: alpha(opacity = 0);
|
|
||||||
left:33.5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_notice .submit {
|
|
||||||
right:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary {
|
|
||||||
width:181px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form_notice,
|
|
||||||
#anon_notice {
|
|
||||||
top:190px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#public.user_in #content,
|
|
||||||
#groups.user_in #content,
|
|
||||||
#publictagcloud.user_in #content,
|
|
||||||
#featured.user_in #content,
|
|
||||||
#favorited.user_in #content,
|
|
||||||
#all.user_in #content,
|
|
||||||
#replies.user_in #content,
|
|
||||||
#showstream.user_in #content,
|
|
||||||
#showfavorites.user_in #content,
|
|
||||||
#inbox.user_in #content,
|
|
||||||
#outbox.user_in #content,
|
|
||||||
#subscriptions.user_in #content,
|
|
||||||
#subscribers.user_in #content,
|
|
||||||
#showgroup.user_in #content,
|
|
||||||
#conversation.user_in #content,
|
|
||||||
#attachment.user_in #content {
|
|
||||||
padding-top:138px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice {
|
|
||||||
z-index:1;
|
|
||||||
}
|
|
||||||
.notice:hover {
|
|
||||||
z-index:9999;
|
|
||||||
}
|
|
||||||
.notice .thumbnail img {
|
|
||||||
z-index:9999;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 820 B |
Before Width: | Height: | Size: 701 B |
Before Width: | Height: | Size: 397 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 673 B |
Before Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 777 B |
Before Width: | Height: | Size: 148 B |
Before Width: | Height: | Size: 331 B |
Before Width: | Height: | Size: 73 B |
Before Width: | Height: | Size: 74 B |
Before Width: | Height: | Size: 75 B |
Before Width: | Height: | Size: 82 B |
Before Width: | Height: | Size: 76 B |
Before Width: | Height: | Size: 79 B |
Before Width: | Height: | Size: 85 B |
Before Width: | Height: | Size: 68 B |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 9.9 KiB |
|
@ -1,573 +0,0 @@
|
||||||
/** theme: default
|
|
||||||
*
|
|
||||||
* @package StatusNet
|
|
||||||
* @author Sarven Capadisli <csarven@status.net>
|
|
||||||
* @copyright 2009-2010 StatusNet, Inc.
|
|
||||||
* @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported
|
|
||||||
* @link http://status.net/
|
|
||||||
*/
|
|
||||||
|
|
||||||
@media screen, projection, tv {
|
|
||||||
body,
|
|
||||||
a:active {
|
|
||||||
background-color:#CEE1E9;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
|
|
||||||
font-size:1em;
|
|
||||||
}
|
|
||||||
address {
|
|
||||||
margin-right:5.3%;
|
|
||||||
}
|
|
||||||
input, textarea, select {
|
|
||||||
border-width:2px;
|
|
||||||
border-style: solid;
|
|
||||||
border-radius:4px;
|
|
||||||
-moz-border-radius:4px;
|
|
||||||
-webkit-border-radius:4px;
|
|
||||||
}
|
|
||||||
input, textarea, select, option {
|
|
||||||
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
|
|
||||||
}
|
|
||||||
input, textarea, select,
|
|
||||||
.entity_actions .dialogbox input,
|
|
||||||
.mark-top {
|
|
||||||
border-color:#AAAAAA;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings fieldset fieldset {
|
|
||||||
background:rgba(240, 240, 240, 0.2);
|
|
||||||
box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
-moz-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
-webkit-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
#filter_tags ul li,
|
|
||||||
.entity_send-a-message .form_notice,
|
|
||||||
.pagination .nav_prev a,
|
|
||||||
.pagination .nav_next a,
|
|
||||||
.form_settings fieldset fieldset,
|
|
||||||
.entity_moderation:hover ul,
|
|
||||||
.entity_role:hover ul,
|
|
||||||
.dialogbox {
|
|
||||||
border-color:#DDDDDD;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings input.form_action-primary {
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice.warning .count,
|
|
||||||
.form_settings .form_note {
|
|
||||||
background-color:#9BB43E;
|
|
||||||
}
|
|
||||||
input.submit,
|
|
||||||
.form_notice.warning .count,
|
|
||||||
.form_settings .form_note,
|
|
||||||
.entity_actions a,
|
|
||||||
.entity_actions input,
|
|
||||||
.entity_moderation p,
|
|
||||||
.entity_role p,
|
|
||||||
button {
|
|
||||||
box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
}
|
|
||||||
.entity_actions a,
|
|
||||||
.entity_actions input,
|
|
||||||
.entity_actions p {
|
|
||||||
border-color:transparent;
|
|
||||||
background-color:transparent;
|
|
||||||
}
|
|
||||||
input:focus, textarea:focus, select:focus,
|
|
||||||
.form_notice.warning textarea,
|
|
||||||
.form_notice.warning .count,
|
|
||||||
.form_settings .form_note,
|
|
||||||
.entity_actions .dialogbox .form_data input:focus {
|
|
||||||
border-color:#9BB43E;
|
|
||||||
}
|
|
||||||
input.submit {
|
|
||||||
color:#FFFFFF;
|
|
||||||
}
|
|
||||||
.entity_actions input.submit {
|
|
||||||
border-color:transparent;
|
|
||||||
text-shadow:none;
|
|
||||||
}
|
|
||||||
.dialogbox .submit_dialogbox,
|
|
||||||
input.submit,
|
|
||||||
.form_notice input.submit {
|
|
||||||
background:#AAAAAA url(../../base/images/illustrations/illu_pattern-01.png) 0 0 repeat-x;
|
|
||||||
text-shadow:0 1px 0 #FFFFFF;
|
|
||||||
color:#000000;
|
|
||||||
border-color:#AAAAAA;
|
|
||||||
border-top-color:#CCCCCC;
|
|
||||||
border-left-color:#CCCCCC;
|
|
||||||
}
|
|
||||||
.dialogbox .submit_dialogbox:hover,
|
|
||||||
input.submit:hover {
|
|
||||||
background-position:0 -5px;
|
|
||||||
}
|
|
||||||
.dialogbox .submit_dialogbox:focus,
|
|
||||||
input.submit:focus {
|
|
||||||
background-position:0 -15px;
|
|
||||||
box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
|
|
||||||
-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
|
|
||||||
-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1);
|
|
||||||
text-shadow:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice label.notice_data-geo {
|
|
||||||
background-position:0 -1780px;
|
|
||||||
}
|
|
||||||
.form_notice label.notice_data-geo.checked {
|
|
||||||
background-position:0 -1846px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a,
|
|
||||||
.form_settings input.form_action-primary,
|
|
||||||
.notice-options input,
|
|
||||||
.entity_actions a,
|
|
||||||
.entity_actions input,
|
|
||||||
.entity_moderation p,
|
|
||||||
.entity_role p {
|
|
||||||
color:#002FA7;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notice,
|
|
||||||
.profile,
|
|
||||||
.application,
|
|
||||||
.peopletag,
|
|
||||||
#content tbody tr {
|
|
||||||
border-top-color:#C8D1D5;
|
|
||||||
}
|
|
||||||
|
|
||||||
#aside_primary {
|
|
||||||
background-color:#C8D1D5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice .count {
|
|
||||||
color:#333333;
|
|
||||||
}
|
|
||||||
.form_notice.warning .count,
|
|
||||||
.dialogbox,
|
|
||||||
.entity_actions .dialogbox input {
|
|
||||||
color:#000000;
|
|
||||||
}
|
|
||||||
.form_notice label.notice_data-attach {
|
|
||||||
background-position:0 -328px;
|
|
||||||
}
|
|
||||||
.form_notice input.notice_data-attach {
|
|
||||||
opacity:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_notice label.notice_data-attach,
|
|
||||||
#export_data li a.rss,
|
|
||||||
#export_data li a.atom,
|
|
||||||
#export_data li a.foaf,
|
|
||||||
.entity_edit a,
|
|
||||||
.entity_send-a-message a,
|
|
||||||
.entity_nudge p,
|
|
||||||
.form_user_nudge input.submit,
|
|
||||||
.form_user_block input.submit,
|
|
||||||
.form_user_unblock input.submit,
|
|
||||||
.form_group_block input.submit,
|
|
||||||
.form_group_unblock input.submit,
|
|
||||||
.form_make_admin input.submit,
|
|
||||||
.notice .attachment,
|
|
||||||
.notice-options .notice_reply,
|
|
||||||
.notice-options form.form_favor input.submit,
|
|
||||||
.notice-options form.form_disfavor input.submit,
|
|
||||||
.notice-options .notice_delete,
|
|
||||||
.notice-options form.form_repeat input.submit,
|
|
||||||
#new_group a,
|
|
||||||
.pagination .nav_prev a,
|
|
||||||
.pagination .nav_next a,
|
|
||||||
button.close,
|
|
||||||
.form_group_leave input.submit,
|
|
||||||
.form_user_unsubscribe input.submit,
|
|
||||||
.form_group_join input.submit,
|
|
||||||
.form_user_subscribe input.submit,
|
|
||||||
.form_user_remove_peopletag input.submit,
|
|
||||||
.form_user_add_peopletag input.submit,
|
|
||||||
.form_peopletag_subscribe input.submit,
|
|
||||||
.form_peopletag_unsubscribe input.submit,
|
|
||||||
.form_remote_authorize input.submit,
|
|
||||||
.entity_subscribe a,
|
|
||||||
.entity_tag a,
|
|
||||||
.entity_moderation p,
|
|
||||||
.entity_sandbox input.submit,
|
|
||||||
.entity_silence input.submit,
|
|
||||||
.entity_delete input.submit,
|
|
||||||
.entity_role p,
|
|
||||||
.entity_role_administrator input.submit,
|
|
||||||
.entity_role_moderator input.submit,
|
|
||||||
.notice-options .repeated,
|
|
||||||
.form_notice label.notice_data-geo,
|
|
||||||
button.minimize,
|
|
||||||
.form_reset_key input.submit,
|
|
||||||
.entity_clear input.submit,
|
|
||||||
.entity_flag input.submit,
|
|
||||||
.entity_flag p,
|
|
||||||
.entity_subscribe input.submit,
|
|
||||||
#realtime_play,
|
|
||||||
#realtime_pause,
|
|
||||||
#realtime_popup,
|
|
||||||
.peopletags_edit_button,
|
|
||||||
.mode-private .privacy_mode {
|
|
||||||
background-image:url(../../base/images/icons/icons-01.gif);
|
|
||||||
background-repeat:no-repeat;
|
|
||||||
background-color:transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wrap form.processing input.submit,
|
|
||||||
#core a.processing,
|
|
||||||
.dialogbox.processing .submit_dialogbox {
|
|
||||||
background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%;
|
|
||||||
}
|
|
||||||
.notice-options .form_repeat.processing {
|
|
||||||
background-image:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content {
|
|
||||||
box-shadow:5px 7px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
-moz-box-shadow:5px 7px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
-webkit-box-shadow:5px 7px 7px rgba(194, 194, 194, 0.3);
|
|
||||||
}
|
|
||||||
#content,
|
|
||||||
#site_nav_local_views a,
|
|
||||||
#aside_primary {
|
|
||||||
border-color:transparent;
|
|
||||||
}
|
|
||||||
#content,
|
|
||||||
#site_nav_local_views .current a,
|
|
||||||
.entity_send-a-message .form_notice,
|
|
||||||
.entity_moderation:hover ul,
|
|
||||||
.entity_role:hover ul,
|
|
||||||
.dialogbox {
|
|
||||||
background-color:#FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
#site_nav_local_views li.current {
|
|
||||||
box-shadow:3px 7px 5px rgba(194, 194, 194, 0.5);
|
|
||||||
-moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.5);
|
|
||||||
-webkit-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.5);
|
|
||||||
}
|
|
||||||
#site_nav_local_views a {
|
|
||||||
background-color:rgba(194, 194, 194, 0.5);
|
|
||||||
}
|
|
||||||
#site_nav_local_views a:hover {
|
|
||||||
background-color:rgba(255, 255, 255, 0.7);
|
|
||||||
}
|
|
||||||
#site_nav_local_views .current a {
|
|
||||||
text-shadow: rgba(194,194,194,0.5) 1px 1px 1px;
|
|
||||||
}
|
|
||||||
.processing {
|
|
||||||
background-image:url(../../base/images/icons/icon_processing.gif);
|
|
||||||
background-repeat:no-repeat;
|
|
||||||
background-position:47% 47%;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.error {
|
|
||||||
background-color:#F7E8E8;
|
|
||||||
}
|
|
||||||
.success {
|
|
||||||
background-color:#EFF3DC;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.close {
|
|
||||||
background-position:0 -1120px;
|
|
||||||
}
|
|
||||||
button.minimize {
|
|
||||||
background-position:0 -1912px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#anon_notice {
|
|
||||||
background-color:#87B4C8;
|
|
||||||
color:#FFFFFF;
|
|
||||||
border-color:#FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
#showstream #anon_notice {
|
|
||||||
background-color:#9BB43E;
|
|
||||||
}
|
|
||||||
|
|
||||||
#export_data li a {
|
|
||||||
background-repeat:no-repeat;
|
|
||||||
}
|
|
||||||
#export_data li a.rss {
|
|
||||||
background-position:0 -130px;
|
|
||||||
}
|
|
||||||
#export_data li a.atom {
|
|
||||||
background-position:0 -64px;
|
|
||||||
}
|
|
||||||
#export_data li a.foaf {
|
|
||||||
background-position:0 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_group_join input.submit,
|
|
||||||
.form_group_leave input.submit,
|
|
||||||
.form_user_subscribe input.submit,
|
|
||||||
.form_peopletag_subscribe input.submit,
|
|
||||||
.form_peopletag_unsubscribe input.submit,
|
|
||||||
.form_user_unsubscribe input.submit,
|
|
||||||
.form_remote_authorize input.submit,
|
|
||||||
.form_user_add_peopletag input.submit,
|
|
||||||
.form_user_remove_peopletag input.submit,
|
|
||||||
.entity_subscribe a {
|
|
||||||
background-color:#AAAAAA;
|
|
||||||
color:#FFFFFF;
|
|
||||||
}
|
|
||||||
.form_group_leave input.submit,
|
|
||||||
.form_user_unsubscribe input.submit,
|
|
||||||
.form_user_remove_peopletag input.submit,
|
|
||||||
.form_peopletag_unsubscribe input.submit {
|
|
||||||
background-position:5px -1246px;
|
|
||||||
}
|
|
||||||
.form_group_join input.submit,
|
|
||||||
.form_user_subscribe input.submit,
|
|
||||||
.form_peopletag_subscribe input.submit,
|
|
||||||
.form_remote_authorize input.submit,
|
|
||||||
.form_user_add_peopletag input.submit,
|
|
||||||
.entity_subscribe a,
|
|
||||||
.entity_tag a {
|
|
||||||
background-position:5px -1181px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.profile-lister li {
|
|
||||||
border-top: 1px #eee solid;
|
|
||||||
}
|
|
||||||
.profile-lister li:first-child {
|
|
||||||
border:0;
|
|
||||||
}
|
|
||||||
#profile_search_results.profile-lister {
|
|
||||||
max-height:800px;
|
|
||||||
margin:10px 0;
|
|
||||||
border:1px #ddd solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_edit a, .peopletags_edit_button {
|
|
||||||
background-position: 5px -719px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.peopletags_edit_button {
|
|
||||||
background-position: 0px -724px;
|
|
||||||
}
|
|
||||||
.entity_tags li.mode-private {
|
|
||||||
color: #829D25;
|
|
||||||
}
|
|
||||||
.mode-private .privacy_mode {
|
|
||||||
background-position: 0px -1978px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_send-a-message a {
|
|
||||||
background-position: 5px -852px;
|
|
||||||
}
|
|
||||||
.entity_send-a-message .form_notice,
|
|
||||||
.entity_moderation:hover ul,
|
|
||||||
.entity_role:hover ul,
|
|
||||||
.dialogbox,
|
|
||||||
#profile_search_results {
|
|
||||||
box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7);
|
|
||||||
-moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7);
|
|
||||||
-webkit-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7);
|
|
||||||
}
|
|
||||||
|
|
||||||
.entity_nudge p,
|
|
||||||
.form_user_nudge input.submit {
|
|
||||||
background-position: 5px -785px;
|
|
||||||
}
|
|
||||||
.form_user_block input.submit,
|
|
||||||
.form_user_unblock input.submit,
|
|
||||||
.form_group_block input.submit,
|
|
||||||
.form_group_unblock input.submit {
|
|
||||||
background-position: 5px -918px;
|
|
||||||
}
|
|
||||||
.form_make_admin input.submit {
|
|
||||||
background-position: 5px -983px;
|
|
||||||
}
|
|
||||||
.entity_moderation p {
|
|
||||||
background-position: 5px -1313px;
|
|
||||||
}
|
|
||||||
.entity_sandbox input.submit {
|
|
||||||
background-position: 5px -1380px;
|
|
||||||
}
|
|
||||||
.entity_silence input.submit {
|
|
||||||
background-position: 5px -1445px;
|
|
||||||
}
|
|
||||||
.entity_delete input.submit {
|
|
||||||
background-position: 5px -1511px;
|
|
||||||
}
|
|
||||||
.entity_sandbox .form_user_unsandbox input.submit {
|
|
||||||
background-position: 5px -2568px;
|
|
||||||
}
|
|
||||||
.entity_silence .form_user_unsilence input.submit {
|
|
||||||
background-position: 5px -2633px;
|
|
||||||
}
|
|
||||||
.entity_role p {
|
|
||||||
background-position: 5px -2436px;
|
|
||||||
}
|
|
||||||
.entity_role_administrator .form_user_grantrole input.submit {
|
|
||||||
background-position: 5px -983px;
|
|
||||||
}
|
|
||||||
.entity_role_moderator .form_user_grantrole input.submit {
|
|
||||||
background-position: 5px -1313px;
|
|
||||||
}
|
|
||||||
.entity_role_administrator .form_user_revokerole input.submit {
|
|
||||||
background-position: 5px -2699px;
|
|
||||||
}
|
|
||||||
.entity_role_moderator .form_user_revokerole input.submit {
|
|
||||||
background-position: 5px -2501px;
|
|
||||||
}
|
|
||||||
.form_reset_key input.submit {
|
|
||||||
background-position: 5px -1973px;
|
|
||||||
}
|
|
||||||
.entity_clear input.submit {
|
|
||||||
background-position: 5px -2039px;
|
|
||||||
}
|
|
||||||
.entity_flag input.submit,
|
|
||||||
.entity_flag p {
|
|
||||||
background-position: 5px -2105px;
|
|
||||||
}
|
|
||||||
.entity_subscribe input.accept {
|
|
||||||
background-position: 5px -2171px;
|
|
||||||
}
|
|
||||||
.entity_subscribe input.reject {
|
|
||||||
background-position: 5px -2237px;
|
|
||||||
}
|
|
||||||
#realtime_play {
|
|
||||||
background-position: 0 -2308px;
|
|
||||||
}
|
|
||||||
#realtime_pause {
|
|
||||||
background-position: 0 -2374px;
|
|
||||||
}
|
|
||||||
#realtime_popup {
|
|
||||||
background-position: 0 -1714px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* NOTICES */
|
|
||||||
.notice .attachment {
|
|
||||||
background-position:0 -394px;
|
|
||||||
}
|
|
||||||
.notice .attachment.more {
|
|
||||||
background-position:0 -2770px;
|
|
||||||
}
|
|
||||||
#attachments .attachment {
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
.notice-options .notice_reply {
|
|
||||||
background-position:0 -592px;
|
|
||||||
}
|
|
||||||
.notice-options form.form_favor input.submit {
|
|
||||||
background-position:0 -460px;
|
|
||||||
}
|
|
||||||
.notice-options form.form_disfavor input.submit {
|
|
||||||
background-position:0 -526px;
|
|
||||||
}
|
|
||||||
.notice-options .notice_delete {
|
|
||||||
background-position:0 -658px;
|
|
||||||
}
|
|
||||||
.notice-options form.form_repeat input.submit {
|
|
||||||
background-position:0 -1582px;
|
|
||||||
}
|
|
||||||
.notice-options .repeated {
|
|
||||||
background-position:0 -1648px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notices .attachment.more,
|
|
||||||
.notices div.entry-content,
|
|
||||||
.notices div.notice-options {
|
|
||||||
opacity:0.4;
|
|
||||||
}
|
|
||||||
.notices li:hover .attachment.more,
|
|
||||||
.notices li:hover div.entry-content,
|
|
||||||
.notices li:hover div.notice-options {
|
|
||||||
opacity:1;
|
|
||||||
}
|
|
||||||
.opaque {
|
|
||||||
opacity:1 !important;
|
|
||||||
}
|
|
||||||
.attachment.more,
|
|
||||||
.notice-options a,
|
|
||||||
.notice-options input {
|
|
||||||
font-family:sans-serif;
|
|
||||||
box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
}
|
|
||||||
.attachment.more:focus {
|
|
||||||
box-shadow:none;
|
|
||||||
-moz-box-shadow:none;
|
|
||||||
-webkit-box-shadow:none;
|
|
||||||
outline:none;
|
|
||||||
}
|
|
||||||
#content .notices li:hover,
|
|
||||||
#content .applications li:hover,
|
|
||||||
#content tbody tr:hover {
|
|
||||||
background-color:rgba(240, 240, 240, 0.2);
|
|
||||||
}
|
|
||||||
#conversation .notices li:hover {
|
|
||||||
background-color:transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notices .notices {
|
|
||||||
background-color:rgba(200, 200, 200, 0.050);
|
|
||||||
}
|
|
||||||
.notices .notices .notices {
|
|
||||||
background-color:rgba(200, 200, 200, 0.100);
|
|
||||||
}
|
|
||||||
.notices .notices .notices .notices {
|
|
||||||
background-color:rgba(200, 200, 200, 0.150);
|
|
||||||
}
|
|
||||||
.notices .notices .notices .notices .notices {
|
|
||||||
background-color:rgba(200, 200, 200, 0.300);
|
|
||||||
}
|
|
||||||
/*END: NOTICES */
|
|
||||||
|
|
||||||
#new_group a {
|
|
||||||
background-position:0 -1054px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination .nav_prev a,
|
|
||||||
.pagination .nav_next a {
|
|
||||||
background-repeat:no-repeat;
|
|
||||||
box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3);
|
|
||||||
}
|
|
||||||
.pagination .nav_prev a {
|
|
||||||
background-position:10% -187px;
|
|
||||||
}
|
|
||||||
.pagination .nav_next a {
|
|
||||||
background-position:105% -252px;
|
|
||||||
}
|
|
||||||
.pagination .nav .processing {
|
|
||||||
background-image:url(../../base/images/icons/icon_processing.gif);
|
|
||||||
box-shadow:none;
|
|
||||||
-moz-box-shadow:none;
|
|
||||||
-webkit-box-shadow:none;
|
|
||||||
outline:none;
|
|
||||||
}
|
|
||||||
.pagination .nav_next a.processing {
|
|
||||||
background-position:90% 47%;
|
|
||||||
}
|
|
||||||
.pagination .nav_prev a.processing {
|
|
||||||
background-position:10% 47%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tagInputDiv {
|
|
||||||
background-color: white;
|
|
||||||
border: 1px solid lightgray;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tagInputDiv .mode-public .privacy_mode {
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tagInputSel {
|
|
||||||
background-color: gray;
|
|
||||||
color:white;
|
|
||||||
}
|
|
||||||
|
|
||||||
}/*end of @media screen, projection, tv*/
|
|
|
@ -1,27 +0,0 @@
|
||||||
/**
|
|
||||||
* @package StatusNet
|
|
||||||
* @author Sarven Capadisli <csarven@status.net>
|
|
||||||
* @copyright 2009-2010 StatusNet, Inc.
|
|
||||||
* @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported
|
|
||||||
* @link http://status.net/
|
|
||||||
*/
|
|
||||||
/* IE specific styles */
|
|
||||||
|
|
||||||
.notice-options input.submit {
|
|
||||||
color:#FFFFFF;
|
|
||||||
}
|
|
||||||
#site_nav_local_views a {
|
|
||||||
background-color:#C8D1D5;
|
|
||||||
}
|
|
||||||
.form_notice .count + label {
|
|
||||||
background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px;
|
|
||||||
}
|
|
||||||
.form_notice input.notice_data-attach {
|
|
||||||
filter: alpha(opacity=0);
|
|
||||||
}
|
|
||||||
.notice-options form.form_favor input.submit {
|
|
||||||
background-position:0 -460px;
|
|
||||||
}
|
|
||||||
.notice-options form.form_disfavor input.submit {
|
|
||||||
background-position:0 -526px;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 512 B |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 3.9 KiB |
|
@ -1 +0,0 @@
|
||||||
include=base
|
|