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
|
||||
- $menu: the menu
|
||||
- $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
|
||||
{
|
||||
var $id = null;
|
||||
var $page = null;
|
||||
var $id = null;
|
||||
var $page = null;
|
||||
var $notices = null;
|
||||
|
||||
const MAX_NOTICES = 500;
|
||||
|
||||
/**
|
||||
* Initialization.
|
||||
@ -69,6 +72,19 @@ class ConversationAction extends Action
|
||||
if (empty($this->page)) {
|
||||
$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;
|
||||
}
|
||||
|
||||
@ -106,11 +122,9 @@ class ConversationAction extends Action
|
||||
*/
|
||||
function showContent()
|
||||
{
|
||||
$notices = Notice::conversationStream($this->id, null, null);
|
||||
$tnl = new ThreadedNoticeList($this->notices, $this);
|
||||
|
||||
$ct = new ConversationTree($notices, $this);
|
||||
|
||||
$cnt = $ct->show();
|
||||
$cnt = $tnl->show();
|
||||
}
|
||||
|
||||
function isReadOnly()
|
||||
@ -118,173 +132,3 @@ class ConversationAction extends Action
|
||||
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()
|
||||
{
|
||||
$notices = Notice::conversationStream($this->id, null, null);
|
||||
|
||||
$ct = new FullThreadedNoticeList($notices, $this);
|
||||
$ct = new FullThreadedNoticeList($this->notices, $this);
|
||||
|
||||
$cnt = $ct->show();
|
||||
}
|
||||
|
@ -96,17 +96,21 @@ class Notice extends Memcached_DataObject
|
||||
const GROUP_SCOPE = 4;
|
||||
const FOLLOWER_SCOPE = 8;
|
||||
|
||||
protected $_profile = -1;
|
||||
|
||||
function getProfile()
|
||||
{
|
||||
$profile = Profile::staticGet('id', $this->profile_id);
|
||||
if ($this->_profile == -1) {
|
||||
$this->_profile = Profile::staticGet('id', $this->profile_id);
|
||||
|
||||
if (empty($profile)) {
|
||||
// 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).
|
||||
throw new ServerException(sprintf(_('No such profile (%1$d) for notice (%2$d).'), $this->profile_id, $this->id));
|
||||
if (empty($this->_profile)) {
|
||||
// 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).
|
||||
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()
|
||||
|
@ -52,9 +52,15 @@ class Profile extends Memcached_DataObject
|
||||
/* the code above is auto generated do not remove the tag below */
|
||||
###END_AUTOCODE
|
||||
|
||||
protected $_user = -1; // Uninitialized value distinct from null
|
||||
|
||||
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)
|
||||
@ -667,34 +673,6 @@ class Profile extends Memcached_DataObject
|
||||
|
||||
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,
|
||||
'notice_id' => $notice->id));
|
||||
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 */
|
||||
###END_AUTOCODE
|
||||
|
||||
protected $_profile = -1;
|
||||
|
||||
/**
|
||||
* @return Profile
|
||||
*/
|
||||
function getProfile()
|
||||
{
|
||||
$profile = Profile::staticGet('id', $this->id);
|
||||
if (empty($profile)) {
|
||||
throw new UserNoProfileException($this);
|
||||
if ($this->_profile == -1) { // invalid but distinct from null
|
||||
$this->_profile = Profile::staticGet('id', $this->id);
|
||||
if (empty($this->_profile)) {
|
||||
throw new UserNoProfileException($this);
|
||||
}
|
||||
}
|
||||
return $profile;
|
||||
|
||||
return $this->_profile;
|
||||
}
|
||||
|
||||
function isSubscribed($other)
|
||||
|
@ -307,4 +307,14 @@ class AccountProfileBlock extends ProfileBlock
|
||||
// TRANS: Link text for link that will subscribe to a remote profile.
|
||||
_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
|
||||
{
|
||||
function __construct($id)
|
||||
function __construct($id, $profile = null)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
@ -317,7 +317,9 @@ $default =
|
||||
'QnA' => null,
|
||||
'SearchSub' => 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
|
||||
'server' => null,
|
||||
'sslserver' => null,
|
||||
|
@ -123,4 +123,14 @@ class GroupProfileBlock extends ProfileBlock
|
||||
$this->out->elementEnd('ul');
|
||||
$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()
|
||||
{
|
||||
$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();
|
||||
|
||||
$this->out->element('img', array('src' => $this->avatar(),
|
||||
'class' => 'profile_block_avatar',
|
||||
'alt' => $this->name(),
|
||||
'width' => $size,
|
||||
'height' => $size));
|
||||
$this->out->element(
|
||||
'img',
|
||||
array(
|
||||
'src' => $this->avatar(),
|
||||
'class' => 'ur_face',
|
||||
'alt' => $this->name(),
|
||||
'width' => $size,
|
||||
'height' => $size
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
function showName()
|
||||
{
|
||||
$name = $this->name();
|
||||
|
||||
if (!empty($name)) {
|
||||
@ -79,31 +96,35 @@ abstract class ProfileBlock extends Widget
|
||||
}
|
||||
$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();
|
||||
|
||||
if (!empty($location)) {
|
||||
$this->out->element('p', 'profile_block_location', $location);
|
||||
}
|
||||
}
|
||||
|
||||
$homepage = $this->homepage();
|
||||
|
||||
function showHomepage()
|
||||
{
|
||||
if (!empty($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()
|
||||
|
@ -329,6 +329,11 @@ class EventPlugin extends MicroappPlugin
|
||||
{
|
||||
$rsvp = RSVP::fromNotice($notice);
|
||||
|
||||
if (empty($rsvp)) {
|
||||
$out->element('p', null, _('Deleted.'));
|
||||
return;
|
||||
}
|
||||
|
||||
$out->elementStart('div', 'rsvp');
|
||||
$out->raw($rsvp->asHTML());
|
||||
$out->elementEnd('div');
|
||||
@ -340,8 +345,10 @@ class EventPlugin extends MicroappPlugin
|
||||
$profile = $notice->getProfile();
|
||||
$event = Happening::fromNotice($notice);
|
||||
|
||||
assert(!empty($event));
|
||||
assert(!empty($profile));
|
||||
if (empty($event)) {
|
||||
$out->element('p', null, _('Deleted.'));
|
||||
return;
|
||||
}
|
||||
|
||||
$out->elementStart('div', 'vevent event'); // VEVENT IN
|
||||
|
||||
|
@ -115,13 +115,12 @@ class ExtendedProfilePlugin extends Plugin
|
||||
return true;
|
||||
}
|
||||
|
||||
function onStartProfilePageActionsSection(HTMLOutputter $out, Profile $profile) {
|
||||
function onEndShowAccountProfileBlock(HTMLOutputter $out, Profile $profile) {
|
||||
$user = User::staticGet('id', $profile->id);
|
||||
if ($user) {
|
||||
$url = common_local_url('profiledetail', array('nickname' => $user->nickname));
|
||||
// TRANS: Link text on user profile page leading to extended profile page.
|
||||
$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');
|
||||
|
||||
// TRANS: E-mail body. %1$s is a username, %2$s is the StatusNet sitename.
|
||||
$msg = _m('Hi %1$s,\n\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.\n\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'.
|
||||
'account. You can reconnect your %2$s account to Facebook at any time by\n'.
|
||||
'logging in with Facebook again.\n\n'.
|
||||
'Sincerely,\n\n'.
|
||||
'%2$s\n');
|
||||
$msg = _m("Hi %1\$s,\n\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.\n\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".
|
||||
"account. You can reconnect your %2\$s account to Facebook at any time by\n".
|
||||
"logging in with Facebook again.\n\n".
|
||||
"Sincerely,\n\n".
|
||||
"%2\$s\n");
|
||||
|
||||
$body = sprintf(
|
||||
$msg,
|
||||
@ -845,13 +845,13 @@ class Facebookclient
|
||||
|
||||
// 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.
|
||||
$msg = _m('Hi %1$s,\n\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'.
|
||||
'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'.
|
||||
'Sincerely,\n\n'.
|
||||
'%2$s\n');
|
||||
$msg = _m("Hi %1\$s,\n\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".
|
||||
"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".
|
||||
"Sincerely,\n\n".
|
||||
"%2\$s\n");
|
||||
|
||||
$body = sprintf(
|
||||
$msg,
|
||||
|
@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/*
|
||||
StatusNet Plugin: 0.9
|
||||
Plugin Name: FirePHP
|
||||
Description: Sends StatusNet log output to FirePHP
|
||||
Version: 0.1
|
||||
Author: Craig Andrews <candrews@integralblue.com>
|
||||
Author URI: http://candrews.integralblue.com/
|
||||
* StatusNet Plugin: 0.9
|
||||
* Plugin Name: FirePHP
|
||||
* Description: Sends StatusNet log output to FirePHP
|
||||
* Version: 0.1
|
||||
* Author: Craig Andrews <candrews@integralblue.com>
|
||||
* Author URI: http://candrews.integralblue.com/
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -65,6 +65,7 @@ class FirePHPPlugin extends Plugin
|
||||
'author' => 'Craig Andrews',
|
||||
'homepage' => 'http://status.net/wiki/Plugin:FirePHP',
|
||||
'rawdescription' =>
|
||||
// TRANS: Plugin description.
|
||||
_m('The FirePHP plugin writes StatusNet\'s log output to FirePHP.'));
|
||||
return true;
|
||||
}
|
||||
|
@ -1,8 +1,9 @@
|
||||
The FirePHP plugin writes StatusNet's log output to FirePHP.
|
||||
|
||||
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
|
||||
============
|
||||
@ -18,4 +19,3 @@ Example
|
||||
=======
|
||||
|
||||
addPlugin('FirePHP', array());
|
||||
|
||||
|
@ -59,7 +59,6 @@ class FollowEveryonePlugin extends Plugin
|
||||
* @param User &$newUser The new user
|
||||
*
|
||||
* @return boolean hook value
|
||||
*
|
||||
*/
|
||||
function onEndUserRegister(&$newProfile, &$newUser)
|
||||
{
|
||||
@ -115,7 +114,6 @@ class FollowEveryonePlugin extends Plugin
|
||||
$schema = Schema::get();
|
||||
|
||||
// For storing user-submitted flags on profiles
|
||||
|
||||
$schema->ensureTable('user_followeveryone_prefs',
|
||||
array(new ColumnDef('user_id', 'integer', null,
|
||||
true, 'PRI'),
|
||||
@ -200,6 +198,7 @@ class FollowEveryonePlugin extends Plugin
|
||||
'author' => 'Evan Prodromou',
|
||||
'homepage' => 'http://status.net/wiki/Plugin:FollowEveryone',
|
||||
'rawdescription' =>
|
||||
// TRANS: Plugin description.
|
||||
_m('New users follow everyone at registration and are followed in return.'));
|
||||
return true;
|
||||
}
|
||||
|
@ -33,11 +33,11 @@ class ForceGroupPlugin extends Plugin
|
||||
* List by local nickname.
|
||||
*/
|
||||
public $post = array();
|
||||
|
||||
|
||||
/**
|
||||
* New user registrations will automatically join these groups on
|
||||
* registration. They're not prevented from leaving, however.
|
||||
*
|
||||
*
|
||||
* List by local nickname.
|
||||
*/
|
||||
public $join = array();
|
||||
|
@ -121,6 +121,7 @@ class GeoURLPlugin extends Plugin
|
||||
'author' => 'Evan Prodromou',
|
||||
'homepage' => 'http://status.net/wiki/Plugin:GeoURL',
|
||||
'rawdescription' =>
|
||||
// TRANS: Plugin description.
|
||||
_m('Ping <a href="http://geourl.org/">GeoURL</a> when '.
|
||||
'new geolocation-enhanced notices are posted.'));
|
||||
return true;
|
||||
|
@ -435,7 +435,8 @@ class GeonamesPlugin extends Plugin
|
||||
function getGeonames($method, $params)
|
||||
{
|
||||
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();
|
||||
@ -451,13 +452,16 @@ class GeonamesPlugin extends Plugin
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
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
|
||||
@ -473,7 +477,9 @@ class GeonamesPlugin extends Plugin
|
||||
}
|
||||
|
||||
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
|
||||
@ -488,6 +494,7 @@ class GeonamesPlugin extends Plugin
|
||||
'author' => 'Evan Prodromou',
|
||||
'homepage' => 'http://status.net/wiki/Plugin:Geonames',
|
||||
'rawdescription' =>
|
||||
// TRANS: Plugin description.
|
||||
_m('Uses <a href="http://geonames.org/">Geonames</a> service to get human-readable '.
|
||||
'names for locations based on user-provided lat/long pairs.'));
|
||||
return true;
|
||||
|
@ -77,6 +77,7 @@ class GoogleAnalyticsPlugin extends Plugin
|
||||
'author' => 'Evan Prodromou',
|
||||
'homepage' => 'http://status.net/wiki/Plugin:GoogleAnalytics',
|
||||
'rawdescription' =>
|
||||
// TRANS: Plugin description.
|
||||
_m('Use <a href="http://www.google.com/analytics/">Google Analytics</a>'.
|
||||
' to track web access.'));
|
||||
return true;
|
||||
|
@ -57,15 +57,18 @@ class GravatarPlugin extends Plugin
|
||||
'action' =>
|
||||
common_local_url('avatarsettings')));
|
||||
$action->elementStart('fieldset', array('id' => 'settings_gravatar_add'));
|
||||
// TRANS: Fieldset legend. Gravatar is an avatar service.
|
||||
$action->element('legend', null, _m('Set Gravatar'));
|
||||
$action->hidden('token', common_session_token());
|
||||
$action->element('p', 'form_guide',
|
||||
// TRANS: Form guide. Gravatar is an avatar service.
|
||||
_m('If you want to use your Gravatar image, click "Add".'));
|
||||
$action->element('input', array('type' => 'submit',
|
||||
'id' => 'settings_gravatar_add_action-submit',
|
||||
'name' => 'add',
|
||||
'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('form');
|
||||
} elseif($hasGravatar) {
|
||||
@ -75,19 +78,23 @@ class GravatarPlugin extends Plugin
|
||||
'action' =>
|
||||
common_local_url('avatarsettings')));
|
||||
$action->elementStart('fieldset', array('id' => 'settings_gravatar_remove'));
|
||||
// TRANS: Fieldset legend. Gravatar is an avatar service.
|
||||
$action->element('legend', null, _m('Remove Gravatar'));
|
||||
$action->hidden('token', common_session_token());
|
||||
$action->element('p', 'form_guide',
|
||||
// TRANS: Form guide. Gravatar is an avatar service.
|
||||
_m('If you want to remove your Gravatar image, click "Remove".'));
|
||||
$action->element('input', array('type' => 'submit',
|
||||
'id' => 'settings_gravatar_remove_action-submit',
|
||||
'name' => 'remove',
|
||||
'class' => 'submit',
|
||||
// TRANS: Button text to remove a Gravatar. Gravatar is an avatar service.
|
||||
'value' => _m('Remove')));
|
||||
$action->elementEnd('fieldset');
|
||||
$action->elementEnd('form');
|
||||
} else {
|
||||
$action->element('p', 'form_guide',
|
||||
// TRANS: Form guide. Gravatar is an avatar service.
|
||||
_m('To use a Gravatar first enter in an email address.'));
|
||||
}
|
||||
}
|
||||
@ -137,6 +144,7 @@ class GravatarPlugin extends Plugin
|
||||
$cur = common_current_user();
|
||||
|
||||
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.'),
|
||||
'success' => false);
|
||||
}
|
||||
@ -155,10 +163,12 @@ class GravatarPlugin extends Plugin
|
||||
$gravatar->created = DB_DataObject_Cast::dateTime(); # current time
|
||||
|
||||
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.'),
|
||||
'success' => false);
|
||||
}
|
||||
}
|
||||
// TRANS: Message displayed when Gravatar was added. Gravatar is an avatar service.
|
||||
return array('message' => _m('Gravatar added.'),
|
||||
'success' => true);
|
||||
}
|
||||
@ -177,6 +187,7 @@ class GravatarPlugin extends Plugin
|
||||
$avatar = $profile->getAvatar(AVATAR_MINI_SIZE);
|
||||
if($avatar) $avatar->delete();
|
||||
|
||||
// TRANS: Message displayed when Gravatar was removed. Gravatar is an avatar service.
|
||||
return array('message' => _m('Gravatar removed.'),
|
||||
'success' => true);
|
||||
}
|
||||
@ -197,6 +208,7 @@ class GravatarPlugin extends Plugin
|
||||
'author' => 'Eric Helgeson',
|
||||
'homepage' => 'http://status.net/wiki/Plugin:Gravatar',
|
||||
'rawdescription' =>
|
||||
// TRANS: Plugin decsription.
|
||||
_m('The Gravatar plugin allows users to use their <a href="http://www.gravatar.com/">Gravatar</a> with StatusNet.'));
|
||||
|
||||
return true;
|
||||
|
@ -1,13 +1,12 @@
|
||||
GravatarPlugin 0.1
|
||||
|
||||
About
|
||||
About:
|
||||
This will allow users to use their Gravatar Avatar with your StatusNet install.
|
||||
|
||||
Configuration
|
||||
Configuration:
|
||||
add this to your config.php:
|
||||
addPlugin('Gravatar', array());
|
||||
|
||||
ToDo:
|
||||
To do:
|
||||
Site default all on for gravatar by default
|
||||
Migration Script
|
||||
Localize
|
||||
|
@ -46,7 +46,6 @@ if (!defined('STATUSNET')) {
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class GroupPrivateMessagePlugin extends Plugin
|
||||
{
|
||||
/**
|
||||
@ -57,7 +56,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
*
|
||||
* @return boolean hook value
|
||||
*/
|
||||
|
||||
function onCheckSchema()
|
||||
{
|
||||
$schema = Schema::get();
|
||||
@ -78,7 +76,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
'datetime'),
|
||||
new ColumnDef('modified',
|
||||
'timestamp')));
|
||||
|
||||
|
||||
$schema->ensureTable('group_message',
|
||||
array(new ColumnDef('id',
|
||||
'char',
|
||||
@ -136,7 +134,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
*
|
||||
* @return boolean hook value
|
||||
*/
|
||||
|
||||
function onAutoload($cls)
|
||||
{
|
||||
$dir = dirname(__FILE__);
|
||||
@ -171,7 +168,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
*
|
||||
* @return boolean hook value
|
||||
*/
|
||||
|
||||
function onRouterInitialized($m)
|
||||
{
|
||||
$m->connect('group/:nickname/inbox',
|
||||
@ -199,7 +195,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
*
|
||||
* @see Action
|
||||
*/
|
||||
|
||||
function onEndGroupGroupNav($groupnav)
|
||||
{
|
||||
$action = $groupnav->action;
|
||||
@ -207,7 +202,9 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
|
||||
$action->menuItem(common_local_url('groupinbox',
|
||||
array('nickname' => $group->nickname)),
|
||||
// TRANS: Menu item in group page.
|
||||
_m('MENU','Inbox'),
|
||||
// TRANS: Menu title in group page.
|
||||
_m('Private messages for this group.'),
|
||||
$action->trimmed('action') == 'groupinbox',
|
||||
'nav_group_inbox');
|
||||
@ -221,7 +218,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
*
|
||||
* @result boolean hook value
|
||||
*/
|
||||
|
||||
function onEndGroupSave($group)
|
||||
{
|
||||
$gps = new Group_privacy_settings();
|
||||
@ -244,7 +240,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
*
|
||||
* @param GroupEditForm $form form being shown
|
||||
*/
|
||||
|
||||
function onEndGroupEditFormData($form)
|
||||
{
|
||||
$gps = null;
|
||||
@ -255,20 +250,30 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
|
||||
$form->out->elementStart('li');
|
||||
$form->out->dropdown('allow_privacy',
|
||||
// TRANS: Dropdown label in group settings page for if group allows private messages.
|
||||
_m('Private messages'),
|
||||
// TRANS: Dropdown option in group settings page for allowing private messages.
|
||||
array(Group_privacy_settings::SOMETIMES => _m('Sometimes'),
|
||||
// TRANS: Dropdown option in group settings page for allowing private messages.
|
||||
Group_privacy_settings::ALWAYS => _m('Always'),
|
||||
// TRANS: Dropdown option in group settings page for allowing private messages.
|
||||
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.'),
|
||||
false,
|
||||
(empty($gps)) ? Group_privacy_settings::SOMETIMES : $gps->allow_privacy);
|
||||
$form->out->elementEnd('li');
|
||||
$form->out->elementStart('li');
|
||||
$form->out->dropdown('allow_sender',
|
||||
// TRANS: Dropdown label in group settings page for who can send private messages to the group.
|
||||
_m('Private senders'),
|
||||
// TRANS: Dropdown option in group settings page for who can send private messages.
|
||||
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'),
|
||||
// TRANS: Dropdown option in group settings page for who can send private messages.
|
||||
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.'),
|
||||
false,
|
||||
(empty($gps)) ? Group_privacy_settings::MEMBER : $gps->allow_sender);
|
||||
@ -292,7 +297,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
} else {
|
||||
$orig = clone($gps);
|
||||
}
|
||||
|
||||
|
||||
$gps->allow_privacy = $action->trimmed('allow_privacy');
|
||||
$gps->allow_sender = $action->trimmed('allow_sender');
|
||||
|
||||
@ -302,21 +307,21 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
} else {
|
||||
$gps->update($orig);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overload 'd' command to send private messages to groups.
|
||||
*
|
||||
*
|
||||
* 'd !group word word word' will send the private message
|
||||
* 'word word word' to the group 'group'.
|
||||
*
|
||||
*
|
||||
* @param string $cmd Command being run
|
||||
* @param string $arg Rest of the message (including address)
|
||||
* @param User $user User sending the message
|
||||
* @param Command &$result The resulting command object to be run.
|
||||
*
|
||||
*
|
||||
* @return boolean hook value
|
||||
*/
|
||||
function onStartIntepretCommand($cmd, $arg, $user, &$result)
|
||||
@ -350,7 +355,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
*
|
||||
* @param Widget $widget The showgroup action being shown
|
||||
* @param User_group $group The current group
|
||||
*
|
||||
*
|
||||
* @return boolean hook value
|
||||
*/
|
||||
function onEndGroupActionsList($widget, $group)
|
||||
@ -370,8 +375,10 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
|
||||
$action->elementStart('li', 'entity_send-a-message');
|
||||
$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.')),
|
||||
_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->hidden = true;
|
||||
// $form->show();
|
||||
@ -384,12 +391,9 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
* privacy == always, force a group private message to all mentioned groups.
|
||||
* If any of the groups disallows private messages, skip it.
|
||||
*
|
||||
* @param
|
||||
*
|
||||
* @param
|
||||
*/
|
||||
|
||||
function onStartNoticeSave(&$notice) {
|
||||
|
||||
// Look for group tags
|
||||
// FIXME: won't work for remote groups
|
||||
// @fixme if Notice::saveNew is refactored so we can just pull its list
|
||||
@ -406,11 +410,9 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
$profile = $notice->getProfile();
|
||||
|
||||
if ($count > 0) {
|
||||
|
||||
/* Add them to the database */
|
||||
|
||||
foreach (array_unique($match[1]) as $nickname) {
|
||||
|
||||
$group = User_group::getForNickname($nickname, $profile);
|
||||
|
||||
if (empty($group)) {
|
||||
@ -433,7 +435,6 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
}
|
||||
|
||||
if ($forcePrivate) {
|
||||
|
||||
foreach ($ignored as $group) {
|
||||
common_log(LOG_NOTICE,
|
||||
"Notice forced to group direct message ".
|
||||
@ -454,11 +455,12 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
|
||||
// Don't save the notice!
|
||||
// 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.')),
|
||||
200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -470,12 +472,12 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
*
|
||||
* @return boolean hook value
|
||||
*/
|
||||
|
||||
function onEndGroupProfileElements($action, $group)
|
||||
{
|
||||
$gps = Group_privacy_settings::forGroup($group);
|
||||
|
||||
|
||||
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'));
|
||||
}
|
||||
|
||||
@ -486,7 +488,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
{
|
||||
if ($action instanceof ShowgroupAction) {
|
||||
$gps = Group_privacy_settings::forGroup($action->group);
|
||||
|
||||
|
||||
if ($gps->allow_privacy == Group_privacy_settings::ALWAYS) {
|
||||
return false;
|
||||
}
|
||||
@ -501,6 +503,7 @@ class GroupPrivateMessagePlugin extends Plugin
|
||||
'author' => 'Evan Prodromou',
|
||||
'homepage' => 'http://status.net/wiki/Plugin:GroupPrivateMessage',
|
||||
'rawdescription' =>
|
||||
// TRANS: Plugin description.
|
||||
_m('Allow posting private messages to groups.'));
|
||||
return true;
|
||||
}
|
||||
|
@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
|
||||
*
|
||||
* @see DB_DataObject
|
||||
*/
|
||||
|
||||
class Group_message extends Memcached_DataObject
|
||||
{
|
||||
public $__table = 'group_message'; // table name
|
||||
@ -66,7 +65,6 @@ class Group_message extends Memcached_DataObject
|
||||
* @param mixed $v Value to lookup
|
||||
*
|
||||
* @return Group_message object found, or null for no hits
|
||||
*
|
||||
*/
|
||||
function staticGet($k, $v=null)
|
||||
{
|
||||
@ -123,6 +121,8 @@ class Group_message extends Memcached_DataObject
|
||||
{
|
||||
if (!$user->hasRight(Right::NEWMESSAGE)) {
|
||||
// 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.'),
|
||||
$user->nickname));
|
||||
}
|
||||
@ -134,6 +134,8 @@ class Group_message extends Memcached_DataObject
|
||||
// We use the same limits as for 'regular' private messages.
|
||||
|
||||
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.',
|
||||
'That\'s too long. Maximum message size is %d characters.',
|
||||
Message::maxContent()),
|
||||
@ -143,7 +145,7 @@ class Group_message extends Memcached_DataObject
|
||||
// Valid! Let's do this thing!
|
||||
|
||||
$gm = new Group_message();
|
||||
|
||||
|
||||
$gm->id = UUID::gen();
|
||||
$gm->uri = common_local_url('showgroupmessage', array('id' => $gm->id));
|
||||
$gm->from_profile = $user->id;
|
||||
@ -165,7 +167,7 @@ class Group_message extends Memcached_DataObject
|
||||
function distribute()
|
||||
{
|
||||
$group = User_group::staticGet('id', $this->to_group);
|
||||
|
||||
|
||||
$member = $group->getMembers();
|
||||
|
||||
while ($member->fetch()) {
|
||||
@ -177,6 +179,7 @@ class Group_message extends Memcached_DataObject
|
||||
{
|
||||
$group = User_group::staticGet('id', $this->to_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.'));
|
||||
}
|
||||
return $group;
|
||||
@ -186,6 +189,7 @@ class Group_message extends Memcached_DataObject
|
||||
{
|
||||
$sender = Profile::staticGet('id', $this->from_profile);
|
||||
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.'));
|
||||
}
|
||||
return $sender;
|
||||
@ -204,5 +208,4 @@ class Group_message extends Memcached_DataObject
|
||||
|
||||
return $gm;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
|
||||
*
|
||||
* @see DB_DataObject
|
||||
*/
|
||||
|
||||
class Group_message_profile extends Memcached_DataObject
|
||||
{
|
||||
public $__table = 'group_message_profile'; // table name
|
||||
@ -61,7 +60,6 @@ class Group_message_profile extends Memcached_DataObject
|
||||
* @param mixed $v Value to lookup
|
||||
*
|
||||
* @return Group_message object found, or null for no hits
|
||||
*
|
||||
*/
|
||||
function staticGet($k, $v=null)
|
||||
{
|
||||
@ -120,7 +118,7 @@ class Group_message_profile extends Memcached_DataObject
|
||||
function send($gm, $profile)
|
||||
{
|
||||
$gmp = new Group_message_profile();
|
||||
|
||||
|
||||
$gmp->group_message_id = $gm->id;
|
||||
$gmp->to_profile = $profile->id;
|
||||
$gmp->created = common_sql_now();
|
||||
@ -138,7 +136,7 @@ class Group_message_profile extends Memcached_DataObject
|
||||
$this->notifyByMail();
|
||||
}
|
||||
|
||||
function notifyByMail()
|
||||
function notifyByMail()
|
||||
{
|
||||
$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: %5$s is the StatusNet sitename.
|
||||
$body = sprintf(_m("%1\$s (%2\$s) sent a private message to group %3\$s:\n\n".
|
||||
"------------------------------------------------------\n".
|
||||
"%4\$s\n".
|
||||
"------------------------------------------------------\n\n".
|
||||
"You can reply to their message here:\n\n".
|
||||
"%5\$s\n\n".
|
||||
"Do not reply to this email; it will not get to them.\n\n".
|
||||
"With kind regards,\n".
|
||||
"%6\$s"),
|
||||
"------------------------------------------------------\n".
|
||||
"%4\$s\n".
|
||||
"------------------------------------------------------\n\n".
|
||||
"You can reply to their message here:\n\n".
|
||||
"%5\$s\n\n".
|
||||
"Do not reply to this email; it will not get to them.\n\n".
|
||||
"With kind regards,\n".
|
||||
"%6\$s"),
|
||||
$from_profile->getBestName(),
|
||||
$from_profile->nickname,
|
||||
$group->nickname,
|
||||
|
@ -44,16 +44,15 @@ if (!defined('STATUSNET')) {
|
||||
*
|
||||
* @see DB_DataObject
|
||||
*/
|
||||
|
||||
class Group_privacy_settings extends Memcached_DataObject
|
||||
{
|
||||
public $__table = 'group_privacy_settings';
|
||||
/** ID of the group. */
|
||||
public $group_id;
|
||||
public $group_id;
|
||||
/** When to allow privacy: always, sometimes, or never. */
|
||||
public $allow_privacy;
|
||||
/** Who can send private messages: everyone, member, admin */
|
||||
public $allow_sender;
|
||||
public $allow_sender;
|
||||
/** row creation timestamp */
|
||||
public $created;
|
||||
/** 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
|
||||
*/
|
||||
|
||||
function staticGet($k, $v=null)
|
||||
{
|
||||
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
|
||||
*/
|
||||
|
||||
function table()
|
||||
{
|
||||
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,
|
||||
'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);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -115,7 +112,6 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||
*
|
||||
* @return array list of key field names
|
||||
*/
|
||||
|
||||
function keys()
|
||||
{
|
||||
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;
|
||||
* 'U' for unique keys: compound keys are not well supported here.
|
||||
*/
|
||||
|
||||
function keyTypes()
|
||||
{
|
||||
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.
|
||||
*/
|
||||
|
||||
function sequenceKey()
|
||||
{
|
||||
return array(false, false, false);
|
||||
@ -164,6 +158,7 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||
$gps = self::forGroup($group);
|
||||
|
||||
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.'),
|
||||
$group->nickname));
|
||||
}
|
||||
@ -172,6 +167,8 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||
case Group_privacy_settings::EVERYONE:
|
||||
$profile = $user->getProfile();
|
||||
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.'),
|
||||
$user->nickname,
|
||||
$group->nickname));
|
||||
@ -179,6 +176,8 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||
break;
|
||||
case Group_privacy_settings::MEMBER:
|
||||
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.'),
|
||||
$user->nickname,
|
||||
$group->nickname));
|
||||
@ -186,12 +185,16 @@ class Group_privacy_settings extends Memcached_DataObject
|
||||
break;
|
||||
case Group_privacy_settings::ADMIN:
|
||||
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.'),
|
||||
$user->nickname,
|
||||
$group->nickname));
|
||||
}
|
||||
break;
|
||||
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.'),
|
||||
$group->nickname));
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Copyright (C) 2011, StatusNet, Inc.
|
||||
*
|
||||
* List of private messages to this group
|
||||
*
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* 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
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class GroupinboxAction extends GroupDesignAction
|
||||
{
|
||||
var $gm;
|
||||
@ -63,6 +62,7 @@ class GroupinboxAction extends GroupDesignAction
|
||||
$cur = common_current_user();
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -79,16 +79,19 @@ class GroupinboxAction extends GroupDesignAction
|
||||
$localGroup = Local_group::staticGet('nickname', $nickname);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
$this->group = User_group::staticGet('id', $localGroup->group_id);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -97,8 +100,8 @@ class GroupinboxAction extends GroupDesignAction
|
||||
if (!$this->page) {
|
||||
$this->page = 1;
|
||||
}
|
||||
|
||||
$this->gm = Group_message::forGroup($this->group,
|
||||
|
||||
$this->gm = Group_message::forGroup($this->group,
|
||||
($this->page - 1) * MESSAGES_PER_PAGE,
|
||||
MESSAGES_PER_PAGE + 1);
|
||||
return true;
|
||||
@ -122,6 +125,7 @@ class GroupinboxAction extends GroupDesignAction
|
||||
$cnt = $gml->show();
|
||||
|
||||
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->pagination($this->page > 1,
|
||||
@ -167,6 +171,7 @@ class GroupinboxAction extends GroupDesignAction
|
||||
$base = $this->group->getFancyName();
|
||||
|
||||
if ($this->page == 1) {
|
||||
// TRANS: Title of inbox for group %s.
|
||||
return sprintf(_m('%s group inbox'), $base);
|
||||
} else {
|
||||
// TRANS: Page title for any but first group page.
|
||||
@ -184,7 +189,6 @@ class GroupinboxAction extends GroupDesignAction
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showPageNotice()
|
||||
{
|
||||
$instr = $this->getInstructions();
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Copyright (C) 2011, StatusNet, Inc.
|
||||
*
|
||||
* Command object for messages to groups
|
||||
*
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* 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
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class GroupMessageCommand extends Command
|
||||
{
|
||||
/** User sending the message. */
|
||||
@ -61,7 +60,6 @@ class GroupMessageCommand extends Command
|
||||
* @param string $nickname Nickname of the group
|
||||
* @param string $text Text of message
|
||||
*/
|
||||
|
||||
function __construct($user, $nickname, $text)
|
||||
{
|
||||
$this->user = $user;
|
||||
@ -76,8 +74,9 @@ class GroupMessageCommand extends Command
|
||||
|
||||
$gm = Group_message::send($this->user, $group, $this->text);
|
||||
|
||||
$channel->output($this->user,
|
||||
sprintf(_m('Direct message to group %s sent.'),
|
||||
$channel->output($this->user,
|
||||
// TRANS: Succes message after sending private group message to group %s.
|
||||
sprintf(_m('Direct message to group %s sent.'),
|
||||
$group->nickname));
|
||||
|
||||
return true;
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Copyright (C) 2011, StatusNet, Inc.
|
||||
*
|
||||
* Form for posting a group message
|
||||
*
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* 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
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class GroupMessageForm extends Form
|
||||
{
|
||||
var $group;
|
||||
@ -58,7 +57,6 @@ class GroupMessageForm extends Form
|
||||
*
|
||||
* @todo add a drop-down list to post to any group
|
||||
*/
|
||||
|
||||
function __construct($out, $group, $content=null)
|
||||
{
|
||||
parent::__construct($out);
|
||||
@ -71,7 +69,7 @@ class GroupMessageForm extends Form
|
||||
* Action for the form
|
||||
*/
|
||||
function action()
|
||||
{
|
||||
{
|
||||
return common_local_url('newgroupmessage',
|
||||
array('nickname' => $this->group->nickname));
|
||||
}
|
||||
@ -87,6 +85,7 @@ class GroupMessageForm extends Form
|
||||
{
|
||||
$this->out->element('legend',
|
||||
null,
|
||||
// TRANS: Form legend for sending private message to group %s.
|
||||
sprintf(_m('Message to %s'), $this->group->nickname));
|
||||
}
|
||||
|
||||
@ -97,7 +96,6 @@ class GroupMessageForm extends Form
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
|
||||
function id()
|
||||
{
|
||||
return 'form_notice-group-message';
|
||||
@ -110,7 +108,6 @@ class GroupMessageForm extends Form
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
|
||||
function formClass()
|
||||
{
|
||||
return 'form_notice';
|
||||
@ -123,11 +120,11 @@ class GroupMessageForm extends Form
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
|
||||
function formData()
|
||||
{
|
||||
$this->out->element('label', array('for' => 'notice_data-text',
|
||||
'id' => 'notice_data-text-label'),
|
||||
// TRANS: Field label for private group message to group %s.
|
||||
sprintf(_m('Direct message to %s'), $this->group->nickname));
|
||||
|
||||
$this->out->element('textarea', array('id' => 'notice_data-text',
|
||||
@ -140,6 +137,7 @@ class GroupMessageForm extends Form
|
||||
|
||||
if ($contentLimit > 0) {
|
||||
$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('dd', array('class' => 'count'),
|
||||
$contentLimit);
|
||||
@ -154,13 +152,13 @@ class GroupMessageForm extends Form
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
|
||||
function formActions()
|
||||
{
|
||||
$this->out->element('input', array('id' => 'notice_action-submit',
|
||||
'class' => 'submit',
|
||||
'name' => 'message_send',
|
||||
'type' => 'submit',
|
||||
// TRANS: Send button text for sending private group notice.
|
||||
'value' => _m('Send button for sending notice', 'Send')));
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Copyright (C) 2011, StatusNet, Inc.
|
||||
*
|
||||
* Widget for showing list of group messages
|
||||
*
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Copyright (C) 2011, StatusNet, Inc.
|
||||
*
|
||||
* Widget for showing an individual group message
|
||||
*
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
@ -69,13 +69,13 @@ class GroupMessageListItem extends Widget
|
||||
{
|
||||
$group = $this->gm->getGroup();
|
||||
$sender = $this->gm->getSender();
|
||||
|
||||
|
||||
$this->out->elementStart('li', array('class' => 'hentry notice message group-message',
|
||||
'id' => 'message-' . $this->gm->id));
|
||||
|
||||
$this->out->elementStart('div', 'entry-title');
|
||||
$this->out->elementStart('span', 'vcard author');
|
||||
$this->out->elementStart('a',
|
||||
$this->out->elementStart('a',
|
||||
array('href' => $sender->profileurl,
|
||||
'class' => 'url'));
|
||||
$avatar = $sender->getAvatar(AVATAR_STREAM_SIZE);
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Copyright (C) 2011, StatusNet, Inc.
|
||||
*
|
||||
* Action for adding a new group message
|
||||
*
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* 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
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class NewgroupmessageAction extends Action
|
||||
{
|
||||
var $group;
|
||||
@ -58,7 +57,6 @@ class NewgroupmessageAction extends Action
|
||||
*
|
||||
* @return boolean true
|
||||
*/
|
||||
|
||||
function prepare($argarray)
|
||||
{
|
||||
parent::prepare($argarray);
|
||||
@ -66,10 +64,12 @@ class NewgroupmessageAction extends Action
|
||||
$this->user = common_current_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);
|
||||
}
|
||||
|
||||
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.'),
|
||||
$this->user->nickname));
|
||||
}
|
||||
@ -87,21 +87,21 @@ class NewgroupmessageAction extends Action
|
||||
$localGroup = Local_group::staticGet('nickname', $nickname);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
$this->group = User_group::staticGet('id', $localGroup->group_id);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
// This throws an exception on error
|
||||
|
||||
Group_privacy_settings::ensurePost($this->user, $this->group);
|
||||
|
||||
// If we're posted to, check session token and get text
|
||||
|
||||
if ($this->isPost()) {
|
||||
$this->checkSessionToken();
|
||||
$this->text = $this->trimmed('content');
|
||||
@ -117,7 +117,6 @@ class NewgroupmessageAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($argarray=null)
|
||||
{
|
||||
if ($this->isPost()) {
|
||||
@ -140,11 +139,13 @@ class NewgroupmessageAction extends Action
|
||||
if ($this->boolean('ajax')) {
|
||||
$this->startHTML('text/xml;charset=utf-8');
|
||||
$this->elementStart('head');
|
||||
// TRANS: Title after sending a private group message.
|
||||
$this->element('title', null, _m('Message sent'));
|
||||
$this->elementEnd('head');
|
||||
$this->elementStart('body');
|
||||
$this->element('p',
|
||||
array('id' => 'command_result'),
|
||||
// TRANS: Succes text after sending a direct message to group %s.
|
||||
sprintf(_m('Direct message to %s sent.'),
|
||||
$this->group->nickname));
|
||||
$this->elementEnd('body');
|
||||
@ -156,6 +157,7 @@ class NewgroupmessageAction extends Action
|
||||
|
||||
function title()
|
||||
{
|
||||
// TRANS: Title of form for new private group message.
|
||||
return sprintf(_m('New message to group %s'), $this->group->nickname);
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Copyright (C) 2011, StatusNet, Inc.
|
||||
*
|
||||
* Show a single group message
|
||||
*
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* 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
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class ShowgroupmessageAction extends Action
|
||||
{
|
||||
var $gm;
|
||||
@ -59,7 +58,6 @@ class ShowgroupmessageAction extends Action
|
||||
*
|
||||
* @return boolean true
|
||||
*/
|
||||
|
||||
function prepare($argarray)
|
||||
{
|
||||
parent::prepare($argarray);
|
||||
@ -67,6 +65,7 @@ class ShowgroupmessageAction extends Action
|
||||
$this->user = common_current_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.'),
|
||||
403);
|
||||
}
|
||||
@ -76,22 +75,26 @@ class ShowgroupmessageAction extends Action
|
||||
$this->gm = Group_message::staticGet('id', $id);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
$this->group = User_group::staticGet('id', $this->gm->to_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.'));
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
$this->sender = Profile::staticGet('id', $this->gm->from_profile);
|
||||
|
||||
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.'));
|
||||
}
|
||||
|
||||
@ -105,7 +108,6 @@ class ShowgroupmessageAction extends Action
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($argarray=null)
|
||||
{
|
||||
$this->showPage();
|
||||
@ -114,9 +116,10 @@ class ShowgroupmessageAction extends Action
|
||||
/**
|
||||
* Title of the page
|
||||
*/
|
||||
|
||||
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'),
|
||||
$this->sender->nickname,
|
||||
$this->group->nickname,
|
||||
@ -126,7 +129,6 @@ class ShowgroupmessageAction extends Action
|
||||
/**
|
||||
* Show the content area.
|
||||
*/
|
||||
|
||||
function showContent()
|
||||
{
|
||||
$this->elementStart('ul', 'notices messages');
|
||||
@ -144,7 +146,6 @@ class ShowgroupmessageAction extends Action
|
||||
*
|
||||
* @return boolean is read only action?
|
||||
*/
|
||||
|
||||
function isReadOnly($args)
|
||||
{
|
||||
return true;
|
||||
|
@ -324,11 +324,13 @@ class SearchSubPlugin extends Plugin
|
||||
{
|
||||
$user = common_current_user();
|
||||
|
||||
$searches = SearchSub::forProfile($user->getProfile());
|
||||
if (!empty($user)) {
|
||||
$searches = SearchSub::forProfile($user->getProfile());
|
||||
|
||||
if (!empty($searches) && count($searches) > 0) {
|
||||
$searchSubMenu = new SearchSubMenu($menu->out, $user, $searches);
|
||||
$menu->submenu(_m('Searches'), $searchSubMenu);
|
||||
if (!empty($searches) && count($searches) > 0) {
|
||||
$searchSubMenu = new SearchSubMenu($menu->out, $user, $searches);
|
||||
$menu->submenu(_m('Searches'), $searchSubMenu);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -245,11 +245,14 @@ class TagSubPlugin extends Plugin
|
||||
{
|
||||
$user = common_current_user();
|
||||
|
||||
$tags = TagSub::forProfile($user->getProfile());
|
||||
if (!empty($user)) {
|
||||
|
||||
if (!empty($tags) && count($tags) > 0) {
|
||||
$tagSubMenu = new TagSubMenu($menu->out, $user, $tags);
|
||||
$menu->submenu(_m('Tags'), $tagSubMenu);
|
||||
$tags = TagSub::forProfile($user->getProfile());
|
||||
|
||||
if (!empty($tags) && count($tags) > 0) {
|
||||
$tagSubMenu = new TagSubMenu($menu->out, $user, $tags);
|
||||
$menu->submenu(_m('Tags'), $tagSubMenu);
|
||||
}
|
||||
}
|
||||
|
||||
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
|