new public&external notice stream, etc
This commit is contained in:
parent
107e21482e
commit
24519675d8
|
@ -10,6 +10,8 @@
|
|||
* actions/apiaccountupdatelinkcolor.php New api action
|
||||
* actions/apichecknickname.php New api action
|
||||
* actions/apiaccountregister.php New api action
|
||||
* actions/apitimelinepublicandexternal.php New api action
|
||||
* lib/publicandexternalnoticestream.php
|
||||
|
||||
|
||||
* lib/apiaction.php
|
||||
|
|
330
api-changes-1.1.1/actions/apitimelinepublicandexternal.php
Normal file
330
api-changes-1.1.1/actions/apitimelinepublicandexternal.php
Normal file
|
@ -0,0 +1,330 @@
|
|||
<?php
|
||||
/**
|
||||
* StatusNet, the distributed open-source microblogging tool
|
||||
*
|
||||
* Show the public timeline
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* LICENCE: This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @category API
|
||||
* @package StatusNet
|
||||
* @author Craig Andrews <candrews@integralblue.com>
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @author Jeffery To <jeffery.to@gmail.com>
|
||||
* @author mac65 <mac65@mac65.com>
|
||||
* @author Mike Cochrane <mikec@mikenz.geek.nz>
|
||||
* @author Robin Millette <robin@millette.info>
|
||||
* @author Zach Copley <zach@status.net>
|
||||
* @copyright 2009 StatusNet, Inc.
|
||||
* @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
if (!defined('STATUSNET')) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
require_once INSTALLDIR . '/lib/apiprivateauth.php';
|
||||
|
||||
/**
|
||||
* Returns the most recent notices (default 20) posted by everybody
|
||||
*
|
||||
* @category API
|
||||
* @package StatusNet
|
||||
* @author Craig Andrews <candrews@integralblue.com>
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @author Jeffery To <jeffery.to@gmail.com>
|
||||
* @author mac65 <mac65@mac65.com>
|
||||
* @author Mike Cochrane <mikec@mikenz.geek.nz>
|
||||
* @author Robin Millette <robin@millette.info>
|
||||
* @author Zach Copley <zach@status.net>
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
/* External API usage documentation. Please update when you change how this method works. */
|
||||
|
||||
/*! @page publictimeline statuses/public_timeline
|
||||
|
||||
@section Description
|
||||
Returns the 20 most recent notices from users throughout the system who have
|
||||
uploaded their own avatars. Depending on configuration, it may or may not
|
||||
not include notices from automatic posting services.
|
||||
|
||||
@par URL patterns
|
||||
@li /api/statuses/public_timeline.:format
|
||||
|
||||
@par Formats (:format)
|
||||
xml, json, rss, atom
|
||||
|
||||
@par HTTP Method(s)
|
||||
GET
|
||||
|
||||
@par Requires Authentication
|
||||
No
|
||||
|
||||
@param since_id (Optional) Returns only statuses with an ID greater
|
||||
than (that is, more recent than) the specified ID.
|
||||
@param max_id (Optional) Returns only statuses with an ID less than
|
||||
(that is, older than) or equal to the specified ID.
|
||||
@param count (Optional) Specifies the number of statuses to retrieve.
|
||||
@param page (Optional) Specifies the page of results to retrieve.
|
||||
|
||||
@sa @ref apiroot
|
||||
|
||||
@subsection usagenotes Usage notes
|
||||
@li The URL pattern is relative to the @ref apiroot.
|
||||
@li The XML response uses <a href="http://georss.org/Main_Page">GeoRSS</a>
|
||||
to encode the latitude and longitude (see example response below <georss:point>).
|
||||
|
||||
@subsection exampleusage Example usage
|
||||
|
||||
@verbatim
|
||||
curl http://identi.ca/api/statuses/friends_timeline/evan.xml?count=1&page=2
|
||||
@endverbatim
|
||||
|
||||
@subsection exampleresponse Example response
|
||||
|
||||
@verbatim
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<statuses type="array">
|
||||
<status>
|
||||
<text>@skwashd oh, commbank reenabled me super quick both times. but disconcerting when you don't expect it though</text>
|
||||
<truncated>false</truncated>
|
||||
<created_at>Sat Apr 17 00:49:12 +0000 2010</created_at>
|
||||
<in_reply_to_status_id>28838393</in_reply_to_status_id>
|
||||
<source>xmpp</source>
|
||||
<id>28838456</id>
|
||||
<in_reply_to_user_id>39303</in_reply_to_user_id>
|
||||
<in_reply_to_screen_name>skwashd</in_reply_to_screen_name>
|
||||
<geo></geo>
|
||||
<favorited>false</favorited>
|
||||
<user>
|
||||
<id>44517</id>
|
||||
<name>joshua may</name>
|
||||
<screen_name>notjosh</screen_name>
|
||||
<location></location>
|
||||
<description></description>
|
||||
<profile_image_url>http://avatar.identi.ca/44517-48-20090321004106.jpeg</profile_image_url>
|
||||
<url></url>
|
||||
<protected>false</protected>
|
||||
<followers_count>17</followers_count>
|
||||
<profile_background_color></profile_background_color>
|
||||
<profile_text_color></profile_text_color>
|
||||
<profile_link_color></profile_link_color>
|
||||
<profile_sidebar_fill_color></profile_sidebar_fill_color>
|
||||
<profile_sidebar_border_color></profile_sidebar_border_color>
|
||||
<friends_count>20</friends_count>
|
||||
<created_at>Sat Mar 21 00:40:25 +0000 2009</created_at>
|
||||
<favourites_count>0</favourites_count>
|
||||
<utc_offset>0</utc_offset>
|
||||
<time_zone>UTC</time_zone>
|
||||
<profile_background_image_url></profile_background_image_url>
|
||||
<profile_background_tile>false</profile_background_tile>
|
||||
<statuses_count>100</statuses_count>
|
||||
<following>false</following>
|
||||
<notifications>false</notifications>
|
||||
</user>
|
||||
</status>
|
||||
[....]
|
||||
</statuses>
|
||||
@endverbatim
|
||||
*/
|
||||
class ApiTimelinePublicAndExternalAction extends ApiPrivateAuthAction
|
||||
{
|
||||
var $notices = null;
|
||||
|
||||
/**
|
||||
* Take arguments for running
|
||||
*
|
||||
* @param array $args $_REQUEST args
|
||||
*
|
||||
* @return boolean success flag
|
||||
*
|
||||
*/
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
$this->notices = $this->getNotices();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the request
|
||||
*
|
||||
* Just show the notices
|
||||
*
|
||||
* @param array $args $_REQUEST data (unused)
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function handle($args)
|
||||
{
|
||||
parent::handle($args);
|
||||
$this->showTimeline();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the timeline of notices
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function showTimeline()
|
||||
{
|
||||
$sitename = common_config('site', 'name');
|
||||
$sitelogo = (common_config('site', 'logo')) ? common_config('site', 'logo') : Theme::path('logo.png');
|
||||
// TRANS: Title for site timeline. %s is the StatusNet sitename.
|
||||
$title = sprintf(_("%s public and external timeline"), $sitename);
|
||||
$taguribase = TagURI::base();
|
||||
$id = "tag:$taguribase:PublicAndExternalTimeline";
|
||||
$link = common_local_url('public');
|
||||
$self = $this->getSelfUri();
|
||||
// TRANS: Subtitle for site timeline. %s is the StatusNet sitename.
|
||||
$subtitle = sprintf(_("%s updates from the whole known network!"), $sitename);
|
||||
|
||||
switch($this->format) {
|
||||
case 'xml':
|
||||
$this->showXmlTimeline($this->notices);
|
||||
break;
|
||||
case 'rss':
|
||||
$this->showRssTimeline(
|
||||
$this->notices,
|
||||
$title,
|
||||
$link,
|
||||
$subtitle,
|
||||
null,
|
||||
$sitelogo,
|
||||
$self
|
||||
);
|
||||
break;
|
||||
case 'atom':
|
||||
|
||||
header('Content-Type: application/atom+xml; charset=utf-8');
|
||||
|
||||
$atom = new AtomNoticeFeed($this->auth_user);
|
||||
|
||||
$atom->setId($id);
|
||||
$atom->setTitle($title);
|
||||
$atom->setSubtitle($subtitle);
|
||||
$atom->setLogo($sitelogo);
|
||||
$atom->setUpdated('now');
|
||||
$atom->addLink(common_local_url('public'));
|
||||
$atom->setSelfLink($self);
|
||||
$atom->addEntryFromNotices($this->notices);
|
||||
|
||||
$this->raw($atom->getString());
|
||||
|
||||
break;
|
||||
case 'json':
|
||||
$this->showJsonTimeline($this->notices);
|
||||
break;
|
||||
case 'as':
|
||||
header('Content-Type: ' . ActivityStreamJSONDocument::CONTENT_TYPE);
|
||||
$doc = new ActivityStreamJSONDocument($this->auth_user);
|
||||
$doc->setTitle($title);
|
||||
$doc->addLink($link, 'alternate', 'text/html');
|
||||
$doc->addItemsFromNotices($this->notices);
|
||||
$this->raw($doc->asString());
|
||||
break;
|
||||
default:
|
||||
// TRANS: Client error displayed when coming across a non-supported API method.
|
||||
$this->clientError(_('API method not found.'), $code = 404);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get notices
|
||||
*
|
||||
* @return array notices
|
||||
*/
|
||||
function getNotices()
|
||||
{
|
||||
$notices = array();
|
||||
|
||||
$profile = ($this->auth_user) ? $this->auth_user->getProfile() : null;
|
||||
|
||||
$stream = new PublicAndExternalNoticeStream($profile);
|
||||
|
||||
$notice = $stream->getNotices(($this->page - 1) * $this->count,
|
||||
$this->count,
|
||||
$this->since_id,
|
||||
$this->max_id);
|
||||
|
||||
$notices = $notice->fetchAll();
|
||||
|
||||
NoticeList::prefill($notices);
|
||||
|
||||
return $notices;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this action read only?
|
||||
*
|
||||
* @param array $args other arguments
|
||||
*
|
||||
* @return boolean true
|
||||
*/
|
||||
function isReadOnly($args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* When was this feed last modified?
|
||||
*
|
||||
* @return string datestamp of the latest notice in the stream
|
||||
*/
|
||||
function lastModified()
|
||||
{
|
||||
if (!empty($this->notices) && (count($this->notices) > 0)) {
|
||||
return strtotime($this->notices[0]->created);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* An entity tag for this stream
|
||||
*
|
||||
* Returns an Etag based on the action name, language, and
|
||||
* timestamps of the first and last notice in the timeline
|
||||
*
|
||||
* @return string etag
|
||||
*/
|
||||
function etag()
|
||||
{
|
||||
if (!empty($this->notices) && (count($this->notices) > 0)) {
|
||||
|
||||
$last = count($this->notices) - 1;
|
||||
|
||||
return '"' . implode(
|
||||
':',
|
||||
array($this->arg('action'),
|
||||
common_user_cache_hash($this->auth_user),
|
||||
common_language(),
|
||||
strtotime($this->notices[0]->created),
|
||||
strtotime($this->notices[$last]->created))
|
||||
)
|
||||
. '"';
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -219,13 +219,16 @@ class ApiAction extends Action
|
|||
$avatar = $profile->getOriginalAvatar();
|
||||
$twitter_user['profile_image_url_original'] = ($avatar) ? $avatar->displayUrl() :
|
||||
Avatar::defaultImage(AVATAR_PROFILE_SIZE);
|
||||
$twitter_user['profile_image_url_https'] = $twitter_user['profile_image_url'];
|
||||
|
||||
$twitter_user['groups_count'] = $profile->getGroups(0, null)->N;
|
||||
$twitter_user['linkcolor'] = $user->linkcolor;
|
||||
$twitter_user['backgroundcolor'] = $user->backgroundcolor;
|
||||
$twitter_user['linkcolor'] = '';
|
||||
if(isset($user->linkcolor)) $twitter_user['linkcolor'] = $user->linkcolor;
|
||||
$twitter_user['backgroundcolor'] = '';
|
||||
if(isset($user->backgroundcolor)) $twitter_user['backgroundcolor'] = $user->backgroundcolor;
|
||||
|
||||
$twitter_user['url'] = ($profile->homepage) ? $profile->homepage : null;
|
||||
$twitter_user['protected'] = (!empty($user) && $user->private_stream) ? true : false;
|
||||
$twitter_user['protected'] = (!empty($user) && isset($user->private_stream)) ? true : false;
|
||||
$twitter_user['followers_count'] = $profile->subscriberCount();
|
||||
|
||||
|
||||
|
@ -239,7 +242,7 @@ class ApiAction extends Action
|
|||
|
||||
$timezone = 'UTC';
|
||||
|
||||
if (!empty($user) && $user->timezone) {
|
||||
if (!empty($user) && isset($user->timezone)) {
|
||||
$timezone = $user->timezone;
|
||||
}
|
||||
|
||||
|
@ -362,6 +365,15 @@ class ApiAction extends Action
|
|||
$twitter_status['repeated'] = false;
|
||||
}
|
||||
|
||||
$notice_groups = $notice->getGroups();
|
||||
$group_addressees = false;
|
||||
foreach($notice_groups as $g) {
|
||||
$group_addressees .= '!'.$g->nickname.' ';
|
||||
}
|
||||
$group_addressees = trim($group_addressees);
|
||||
if($group_addressees == '') $group_addressees = false;
|
||||
$twitter_status['statusnet_in_groups'] = $group_addressees;
|
||||
|
||||
// Enclosures
|
||||
$attachments = $notice->attachments();
|
||||
|
||||
|
@ -371,9 +383,11 @@ class ApiAction extends Action
|
|||
|
||||
foreach ($attachments as $attachment) {
|
||||
$enclosure_o=$attachment->getEnclosure();
|
||||
$thumb = File_thumbnail::staticGet('file_id', $attachment->id);
|
||||
if ($enclosure_o) {
|
||||
$enclosure = array();
|
||||
$enclosure['url'] = $enclosure_o->url;
|
||||
$enclosure['thumb_url'] = $thumb->url;
|
||||
$enclosure['mimetype'] = $enclosure_o->mimetype;
|
||||
$enclosure['size'] = $enclosure_o->size;
|
||||
$twitter_status['attachments'][] = $enclosure;
|
||||
|
|
110
api-changes-1.1.1/lib/publicandexternalnoticestream.php
Normal file
110
api-changes-1.1.1/lib/publicandexternalnoticestream.php
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?php
|
||||
/**
|
||||
* StatusNet - the distributed open-source microblogging tool
|
||||
* Copyright (C) 2011, StatusNet, Inc.
|
||||
*
|
||||
* Public stream
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @category Stream
|
||||
* @package StatusNet
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @copyright 2011 StatusNet, Inc.
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
if (!defined('STATUSNET')) {
|
||||
// This check helps protect against security problems;
|
||||
// your code file can't be executed directly from the web.
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Public stream
|
||||
*
|
||||
* @category Stream
|
||||
* @package StatusNet
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @copyright 2011 StatusNet, Inc.
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class PublicAndExternalNoticeStream extends ScopingNoticeStream
|
||||
{
|
||||
function __construct($profile=null)
|
||||
{
|
||||
|
||||
parent::__construct(new CachingNoticeStream(new RawPublicAndExternalNoticeStream(),
|
||||
'publicAndExternal'),
|
||||
$profile);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Raw public stream
|
||||
*
|
||||
* @category Stream
|
||||
* @package StatusNet
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @copyright 2011 StatusNet, Inc.
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class RawPublicAndExternalNoticeStream extends NoticeStream
|
||||
{
|
||||
function getNoticeIds($offset, $limit, $since_id, $max_id)
|
||||
{
|
||||
|
||||
$notice = new Notice();
|
||||
|
||||
$notice->selectAdd(); // clears it
|
||||
$notice->selectAdd('id');
|
||||
|
||||
$notice->orderBy('created DESC, id DESC');
|
||||
|
||||
if (!is_null($offset)) {
|
||||
$notice->limit($offset, $limit);
|
||||
}
|
||||
|
||||
// if (common_config('public', 'localonly')) {
|
||||
// $notice->whereAdd('is_local = ' . Notice::LOCAL_PUBLIC);
|
||||
// } else {
|
||||
// -1 == blacklisted, -2 == gateway (i.e. Twitter)
|
||||
$notice->whereAdd('is_local !='. Notice::LOCAL_NONPUBLIC);
|
||||
$notice->whereAdd('is_local !='. Notice::GATEWAY);
|
||||
// }
|
||||
|
||||
Notice::addWhereSinceId($notice, $since_id);
|
||||
Notice::addWhereMaxId($notice, $max_id);
|
||||
|
||||
$ids = array();
|
||||
|
||||
if ($notice->find()) {
|
||||
while ($notice->fetch()) {
|
||||
$ids[] = $notice->id;
|
||||
}
|
||||
}
|
||||
|
||||
$notice->free();
|
||||
$notice = NULL;
|
||||
|
||||
return $ids;
|
||||
}
|
||||
}
|
18
api-changes-1.1.1/lib/router.php
Normal file → Executable file
18
api-changes-1.1.1/lib/router.php
Normal file → Executable file
|
@ -357,6 +357,11 @@ class Router
|
|||
array('action' => 'ApiTimelinePublic',
|
||||
'format' => '(xml|json|rss|atom|as)'));
|
||||
|
||||
$m->connect('api/statuses/public_and_external_timeline.:format',
|
||||
array('action' => 'ApiTimelinePublicAndExternal',
|
||||
'format' => '(xml|json|rss|atom|as)'));
|
||||
|
||||
|
||||
$m->connect('api/statuses/friends_timeline/:id.:format',
|
||||
array('action' => 'ApiTimelineFriends',
|
||||
'id' => Nickname::INPUT_FMT,
|
||||
|
@ -393,6 +398,15 @@ class Router
|
|||
array('action' => 'ApiTimelineMentions',
|
||||
'format' => '(xml|json|rss|atom|as)'));
|
||||
|
||||
$m->connect('api/statuses/mentions_timeline/:id.:format',
|
||||
array('action' => 'ApiTimelineMentions',
|
||||
'id' => Nickname::INPUT_FMT,
|
||||
'format' => '(xml|json|rss|atom|as)'));
|
||||
|
||||
$m->connect('api/statuses/mentions_timeline.:format',
|
||||
array('action' => 'ApiTimelineMentions',
|
||||
'format' => '(xml|json|rss|atom|as)'));
|
||||
|
||||
$m->connect('api/statuses/replies/:id.:format',
|
||||
array('action' => 'ApiTimelineMentions',
|
||||
'id' => Nickname::INPUT_FMT,
|
||||
|
@ -820,6 +834,10 @@ class Router
|
|||
'api/statusnet/media/upload',
|
||||
array('action' => 'ApiMediaUpload')
|
||||
);
|
||||
$m->connect(
|
||||
'api/statuses/update_with_media.json',
|
||||
array('action' => 'ApiMediaUpload')
|
||||
);
|
||||
|
||||
// search
|
||||
$m->connect('api/search.atom', array('action' => 'ApiSearchAtom'));
|
||||
|
|
|
@ -32,6 +32,14 @@
|
|||
· ·
|
||||
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
||||
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
a:active {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
body {
|
||||
background-size:100% auto;
|
||||
background-attachment:fixed;
|
||||
|
@ -62,12 +70,13 @@ ul.queet-actions li .icon,
|
|||
.close-right,
|
||||
button.icon.nav-search,
|
||||
.member-button .join-text i,
|
||||
.external-member-button .join-text i,
|
||||
.external-follow-button .follow-text i,
|
||||
.follow-button .follow-text i,
|
||||
#birds-top,
|
||||
#logo,
|
||||
.topbar .global-nav {
|
||||
background-image: url("../img/sprite-2x.png");
|
||||
background-image: url("../img/sprite-2x-v3.png");
|
||||
background-size: 500px 1329px;
|
||||
}
|
||||
|
||||
|
@ -948,27 +957,12 @@ button#submit-login:hover {
|
|||
top: 9px;
|
||||
width: 12px;
|
||||
}
|
||||
.menu-container a .close-right {
|
||||
background-repeat: no-repeat;
|
||||
display: none;
|
||||
height: 9px;
|
||||
width: 13px;
|
||||
background-position: -20px -510px;
|
||||
margin-left:5px;
|
||||
margin-top:4px;
|
||||
}
|
||||
.menu-container a:hover {
|
||||
background-color:#fff;
|
||||
}
|
||||
.menu-container a:hover .chev-right {
|
||||
background-position: 0 -160px;
|
||||
}
|
||||
.menu-container a:hover .close-right {
|
||||
display:inline-block;
|
||||
}
|
||||
.menu-container a .close-right:hover {
|
||||
background-position: -40px -510px;
|
||||
}
|
||||
.menu-container a.current {
|
||||
background-color:#fff;
|
||||
font-weight:bold;
|
||||
|
@ -980,6 +974,12 @@ button#submit-login:hover {
|
|||
.menu-container a.current .chev-right {
|
||||
background-position: 0 -160px;
|
||||
}
|
||||
#history-container a:hover .chev-right {
|
||||
background-position:-20px -508px;
|
||||
}
|
||||
#history-container a:hover .chev-right:hover {
|
||||
background-position:-40px -508px;
|
||||
}
|
||||
#history-container {
|
||||
display:none;
|
||||
}
|
||||
|
@ -1124,10 +1124,32 @@ button#submit-login:hover {
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#new-queets-bar-container {
|
||||
height:40px;
|
||||
overflow:hidden;
|
||||
-webkit-transition: all 0.5s ease;
|
||||
-moz-transition: all 0.5s ease;
|
||||
-o-transition: all 0.5s ease;
|
||||
transition: all 0.5s ease;
|
||||
border-right-width: 1px;
|
||||
border-left-width: 1px;
|
||||
border-right-color: rgba(0, 0, 0, 0.1);
|
||||
border-left-color: rgba(0, 0, 0, 0.1);
|
||||
border-right-style: solid;
|
||||
border-left-style: solid;
|
||||
margin-top:-1px;
|
||||
}
|
||||
#new-queets-bar-container.hidden {
|
||||
height:0;
|
||||
margin-top:0;
|
||||
}
|
||||
#new-queets-bar {
|
||||
background-color: #F5F5F5;
|
||||
border-top: 1px solid #DDDDDD;
|
||||
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.05) inset;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.6);
|
||||
z-index: 2;
|
||||
background-color: #F5F5F5;
|
||||
border-bottom: 1px solid #DDDDDD;
|
||||
border-top: 1px solid #DDDDDD;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
|
@ -1135,9 +1157,7 @@ button#submit-login:hover {
|
|||
padding: 10px 1px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.6);
|
||||
top: -1px;
|
||||
z-index: 2;
|
||||
height:18px;
|
||||
}
|
||||
#new-queets-bar:hover {
|
||||
background-color: #eee;
|
||||
|
@ -1165,10 +1185,11 @@ button#submit-login:hover {
|
|||
list-style-image: none;
|
||||
list-style-position: outside;
|
||||
list-style-type: none;
|
||||
-webkit-transition: all 0.1s ease;
|
||||
-moz-transition: all 0.1s ease;
|
||||
-o-transition: all 0.1s ease;
|
||||
transition: all 0.1s ease;
|
||||
-webkit-transition: opacity 0.1s ease, height 0s linear, margin 0.1s ease;
|
||||
-moz-transition: opacity 0.1s ease, height 0s linear, margin 0.1s ease;
|
||||
-o-transition: opacity 0.1s ease, height 0s linear, margin 0.1s ease;
|
||||
transition: opacity 0.1s ease, height 0s linear, margin 0.1s ease;
|
||||
height:auto;
|
||||
}
|
||||
.stream-item.hidden {
|
||||
display:none;
|
||||
|
@ -1177,6 +1198,13 @@ button#submit-login:hover {
|
|||
background-color:#F6F6F6;
|
||||
border:0 none;
|
||||
opacity:0.5;
|
||||
-webkit-transition: all 0.5s ease;
|
||||
-moz-transition: all 0.5s ease;
|
||||
-o-transition: all 0.5s ease;
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
.stream-item.conversation > .queet {
|
||||
background-color:#F6F6F6;
|
||||
}
|
||||
.stream-item.conversation.visible {
|
||||
opacity:1;
|
||||
|
@ -1219,6 +1247,16 @@ button#submit-login:hover {
|
|||
.stream-item.expanded .queet {
|
||||
border-bottom:1px solid #ddd;
|
||||
}
|
||||
.stream-item.expanded.collapsing > .queet {
|
||||
background-color:#fff;
|
||||
border-top: 1px solid #DDDDDD;
|
||||
margin-top:-1px;
|
||||
-webkit-transition: margin-top 5s linear;
|
||||
-moz-transition: margin-top 5s linear;
|
||||
-o-transition: margin-top 5s linear;
|
||||
transition: margin-top 5s linear;
|
||||
}
|
||||
|
||||
.stream-item.expanded .queet:hover {
|
||||
background-color:#fff;
|
||||
}
|
||||
|
@ -1228,6 +1266,7 @@ button#submit-login:hover {
|
|||
.stream-item.expanded div:last-child {
|
||||
border-radius:0 0 6px 6px;
|
||||
}
|
||||
|
||||
body.rtl .queet.rtl .expanded-content {
|
||||
direction:rtl;
|
||||
}
|
||||
|
@ -1265,6 +1304,113 @@ body.rtl .queet:not(.rtl) .stream-item-header {
|
|||
width: 470px;
|
||||
}
|
||||
|
||||
.queet .attachments {
|
||||
bottom: 0;
|
||||
height: 100px;
|
||||
margin-right: -35px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 35px;
|
||||
z-index:100;
|
||||
}
|
||||
body.rtl .queet .attachments {
|
||||
right:auto;
|
||||
left:0;
|
||||
margin-left:-35px;
|
||||
}
|
||||
|
||||
.queet .attachments:hover {
|
||||
width: 200px;
|
||||
-moz-transform:rotate(0deg);
|
||||
-webkit-transform:rotate(0deg);
|
||||
-o-transform:rotate(0deg);
|
||||
-ms-transform:rotate(0deg);
|
||||
-webkit-transition: width 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
|
||||
-moz-transition: width 0.2s ease-in-out, -moz-transform 0.2s ease-in-out;
|
||||
-ms-transition: width 0.2s ease-in-out, -ms-transform 0.2s ease-in-out;
|
||||
-o-transition: width 0.2s ease-in-out, -o-transform 0.2s ease-in-out;
|
||||
transition: width 0.2s ease-in-out, transform 0.2s ease-in-out;
|
||||
}
|
||||
body.rtl .queet .attachments:hover {
|
||||
|
||||
}
|
||||
|
||||
.queet .attachments img {
|
||||
border:1px solid rgba(255,255,255,0,5);
|
||||
margin-bottom:20px;
|
||||
margin-right:15px;
|
||||
max-height:47px;
|
||||
position:absolute;
|
||||
right:0;
|
||||
bottom:0;
|
||||
z-index:0;
|
||||
behavior:url(-ms-transform.htc);
|
||||
-moz-transform:rotate(25deg);
|
||||
-webkit-transform:rotate(25deg);
|
||||
-o-transform:rotate(25deg);
|
||||
-ms-transform:rotate(25deg);
|
||||
box-shadow:1px 1px 5px rgba(255,255,255,0.5);
|
||||
-webkit-transition: -webkit-transform 0.2s ease-in-out, max-height 0.2s ease-in-out;
|
||||
-moz-transition: -moz-transform 0.2s ease-in-out, max-height 0.2s ease-in-out;
|
||||
-ms-transition: -ms-transform 0.2s ease-in-out, max-height 0.2s ease-in-out;
|
||||
-o-transition: -o-transform 0.2s ease-in-out, max-height 0.2s ease-in-out;
|
||||
transition: transform 0.2s ease-in-out, max-height 0.2s ease-in-out;
|
||||
}
|
||||
body.rtl .queet .attachments img {
|
||||
margin-right:0;
|
||||
margin-left:15px;
|
||||
right:auto;
|
||||
left:0;
|
||||
-moz-transform:rotate(-25deg);
|
||||
-webkit-transform:rotate(-25deg);
|
||||
-o-transform:rotate(-25deg);
|
||||
-ms-transform:rotate(-25deg);
|
||||
}
|
||||
|
||||
.queet .attachments a:nth-child(2) img {
|
||||
-moz-transform:rotate(35deg);
|
||||
-webkit-transform:rotate(35deg);
|
||||
-o-transform:rotate(35deg);
|
||||
-ms-transform:rotate(35deg);
|
||||
}
|
||||
body.rtl .queet .attachments a:nth-child(2) img {
|
||||
-moz-transform:rotate(-35deg);
|
||||
-webkit-transform:rotate(-35deg);
|
||||
-o-transform:rotate(-35deg);
|
||||
-ms-transform:rotate(-35deg);
|
||||
}
|
||||
|
||||
.queet .attachments a:nth-child(3) img {
|
||||
-moz-transform:rotate(45deg);
|
||||
-webkit-transform:rotate(45deg);
|
||||
-o-transform:rotate(45deg);
|
||||
-ms-transform:rotate(45deg);
|
||||
}
|
||||
body.rtl.queet .attachments a:nth-child(3) img {
|
||||
-moz-transform:rotate(-45deg);
|
||||
-webkit-transform:rotate(-45deg);
|
||||
-o-transform:rotate(-45deg);
|
||||
-ms-transform:rotate(-45deg);
|
||||
}
|
||||
|
||||
.queet .attachments:hover img {
|
||||
-moz-transform:rotate(0deg);
|
||||
-webkit-transform:rotate(0deg);
|
||||
-o-transform:rotate(0deg);
|
||||
-ms-transform:rotate(0deg);
|
||||
max-height:67px;
|
||||
box-shadow:1px 1px 5px rgba(0,0,0,0.5);
|
||||
}
|
||||
body.rtl .queet .attachments:hover img {
|
||||
-moz-transform:rotate(-0deg);
|
||||
-webkit-transform:rotate(-0deg);
|
||||
-o-transform:rotate(-0deg);
|
||||
-ms-transform:rotate(-0deg);
|
||||
max-height:67px;
|
||||
box-shadow:1px 1px 5px rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
.stream-item.activity .created-at a {
|
||||
display:none;
|
||||
}
|
||||
|
@ -1326,7 +1472,7 @@ body.rtl .view-more-container-bottom { direction:rtl; }
|
|||
width: 48px;
|
||||
height: 48px;
|
||||
margin-top: 3px;
|
||||
margin-left: -58px;
|
||||
left:12px;
|
||||
border-top-width: 0px;
|
||||
border-right-width: 0px;
|
||||
border-bottom-width: 0px;
|
||||
|
@ -1343,7 +1489,7 @@ body.rtl .view-more-container-bottom { direction:rtl; }
|
|||
border-top-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
float: left;
|
||||
position:absolute;
|
||||
border-image-outset: 0 0 0 0;
|
||||
border-image-repeat: stretch stretch;
|
||||
border-image-slice: 100% 100% 100% 100%;
|
||||
|
@ -1354,6 +1500,9 @@ body.rtl .view-more-container-bottom { direction:rtl; }
|
|||
list-style-position: outside;
|
||||
list-style-type: none;
|
||||
}
|
||||
.modal-container .stream-item-header .avatar {
|
||||
left:0;
|
||||
}
|
||||
.stream-item-header .name {
|
||||
font-family: "Helvetica Neue",Arial,sans-serif;
|
||||
font-size: 14px;
|
||||
|
@ -1375,13 +1524,13 @@ body.rtl .view-more-container-bottom { direction:rtl; }
|
|||
font-style:normal;
|
||||
}
|
||||
.stream-item-header .created-at {
|
||||
color: #BBBBBB;
|
||||
font-family: "Helvetica Neue",Arial,sans-serif;
|
||||
font-size: 12px;
|
||||
color: #BBBBBB;
|
||||
line-height: 18px;
|
||||
margin-top: 1px;
|
||||
position: relative;
|
||||
float: right;
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
}
|
||||
.stream-item-header .created-at a {
|
||||
font-family:"Helvetica Neue",Arial,sans-serif;
|
||||
|
@ -1499,9 +1648,7 @@ ul.queet-actions {
|
|||
bottom: 0;
|
||||
font-family: "Helvetica Neue",Arial,sans-serif;
|
||||
font-size: 12px;
|
||||
color: #333333;
|
||||
line-height: 18px;
|
||||
background-color: #FFFFFF;
|
||||
right: 1px;
|
||||
margin-top: 0px;
|
||||
margin-right: 0px;
|
||||
|
@ -1512,7 +1659,7 @@ ul.queet-actions {
|
|||
padding-bottom: 0px;
|
||||
padding-left: 5px;
|
||||
position: absolute;
|
||||
display: none;
|
||||
display: block;
|
||||
list-style-image: none;
|
||||
list-style-position: outside;
|
||||
list-style-type: none;
|
||||
|
@ -1524,8 +1671,20 @@ ul.queet-actions {
|
|||
direction: rtl;
|
||||
}
|
||||
|
||||
.stream-item:hover > .queet ul.queet-actions {
|
||||
display: block;
|
||||
|
||||
ul.queet-actions li .icon {
|
||||
background-color:#ddd;
|
||||
}
|
||||
|
||||
ul.queet-actions a {
|
||||
color:#ddd;
|
||||
}
|
||||
|
||||
.queet:hover ul.queet-actions a {
|
||||
color:#999;
|
||||
}
|
||||
.queet:hover ul.queet-actions li .icon {
|
||||
background-color:#999;
|
||||
}
|
||||
.stream-item.expanded > .queet ul.queet-actions {
|
||||
display: block;
|
||||
|
@ -1586,21 +1745,26 @@ ul.queet-actions li .icon.sm-fav {
|
|||
background-position: -39px -190px;
|
||||
width: 12px;
|
||||
}
|
||||
|
||||
.stream-item.conversation ul.queet-actions li .icon.sm-reply,
|
||||
.stream-item:not(.expanded):hover ul.queet-actions li .icon.sm-reply,
|
||||
.stream-item.expanded > .stream-item.expanded .queet ul.queet-actions li .icon.sm-reply {
|
||||
background-position: 0 -220px;
|
||||
}
|
||||
.stream-item.conversation ul.queet-actions li .icon.sm-rt,
|
||||
.stream-item:not(.expanded):hover ul.queet-actions li .icon.sm-rt,
|
||||
.stream-item.expanded > .stream-item.expanded .queet ul.queet-actions li .icon.sm-rt {
|
||||
background-position: -20px -220px;
|
||||
}
|
||||
.stream-item.conversation ul.queet-actions li .icon.sm-trash,
|
||||
.stream-item:not(.expanded):hover ul.queet-actions li .icon.sm-trash,
|
||||
.stream-item.expanded > .stream-item.expanded .queet ul.queet-actions li .icon.sm-trash {
|
||||
background-position: -160px -220px;
|
||||
}
|
||||
.stream-item.conversation ul.queet-actions li .icon.sm-fav,
|
||||
.stream-item:not(.expanded):hover ul.queet-actions li .icon.sm-fav,
|
||||
.stream-item.expanded > .stream-item.expanded .queet ul.queet-actions li .icon.sm-fav {
|
||||
background-position: -40px -220px;
|
||||
background-position: -39px -220px;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1610,9 +1774,8 @@ ul.queet-actions li .icon.sm-fav {
|
|||
margin-right:58px;
|
||||
}
|
||||
.queet.rtl .account-group > .avatar {
|
||||
float:right;
|
||||
margin-left:0;
|
||||
margin-right:-58px;
|
||||
left:auto;
|
||||
right:12px;
|
||||
}
|
||||
.queet.rtl .stream-item-header {
|
||||
direction: rtl;
|
||||
|
@ -1627,7 +1790,8 @@ ul.queet-actions li .icon.sm-fav {
|
|||
text-align:right;
|
||||
}
|
||||
.queet.rtl .created-at {
|
||||
float:left;
|
||||
left: 12px;
|
||||
right: auto;
|
||||
}
|
||||
.queet.rtl .queet-text {
|
||||
text-align:right;
|
||||
|
@ -1643,7 +1807,7 @@ ul.queet-actions li .icon.sm-fav {
|
|||
float:left;
|
||||
}
|
||||
.queet.rtl .inline-reply-queetbox {
|
||||
padding:15px 70px 15px 12px;
|
||||
padding:10px 70px 10px 12px;
|
||||
}
|
||||
.queet-box-template a{
|
||||
unicode-bidi:bidi-override;
|
||||
|
@ -1660,7 +1824,6 @@ ul.queet-actions li .icon.sm-fav {
|
|||
}
|
||||
.stream-item-footer .with-icn {
|
||||
font-size:12px;
|
||||
color:#999;
|
||||
}
|
||||
.stream-item-footer .with-icn .badge-requeeted {
|
||||
font-family: "Helvetica Neue",Arial,sans-serif;
|
||||
|
@ -1704,10 +1867,6 @@ ul.queet-actions li .icon.sm-fav {
|
|||
border-radius: 6px 6px 6px 6px;
|
||||
margin:8px 0;
|
||||
overflow:hidden;
|
||||
-webkit-transition: all 0.1s ease;
|
||||
-moz-transition: all 0.1s ease;
|
||||
-o-transition: all 0.1s ease;
|
||||
transition: all 0.1s ease;
|
||||
}
|
||||
.stream-item.expanded > .queet .stream-item-expand {
|
||||
}
|
||||
|
@ -1867,9 +2026,9 @@ ul.stats .avatar-row .avatar {
|
|||
}
|
||||
|
||||
.inline-reply-queetbox {
|
||||
padding: 15px 12px 15px 70px;
|
||||
padding: 10px 12px 10px 70px;
|
||||
position: relative;
|
||||
background: none repeat scroll 0 0 #F6F6F6;
|
||||
background: none repeat scroll 0 0 #fff;
|
||||
border-top:1px solid #DDDDDD;
|
||||
}
|
||||
|
||||
|
@ -1877,16 +2036,73 @@ ul.stats .avatar-row .avatar {
|
|||
width: 420px;
|
||||
}
|
||||
|
||||
.reply-avatar {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
top: 10px;
|
||||
left: 27px;
|
||||
border-top-width: 0px;
|
||||
border-right-width: 0px;
|
||||
border-bottom-width: 0px;
|
||||
border-left-width: 0px;
|
||||
border-top-color: #FF00AE;
|
||||
border-right-color: #FF00AE;
|
||||
border-bottom-color: #FF00AE;
|
||||
border-left-color: #FF00AE;
|
||||
border-top-style: none;
|
||||
border-right-style: none;
|
||||
border-bottom-style: none;
|
||||
border-left-style: none;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
position: absolute;
|
||||
text-shadow: #FFFFFF 0px 1px 0px:
|
||||
cursor:auto;
|
||||
}
|
||||
.queet.rtl .reply-avatar {
|
||||
left:auto;
|
||||
right:27px;
|
||||
}
|
||||
|
||||
span.inline-reply-caret {
|
||||
border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #DDDDDD;
|
||||
border-width: 0 10px 8px;
|
||||
left: 34px;
|
||||
top: -8px;
|
||||
border-style: solid;
|
||||
font-size: 0;
|
||||
position: absolute;
|
||||
}
|
||||
.queet.rtl span.inline-reply-caret {
|
||||
left:auto;
|
||||
right:34px;
|
||||
}
|
||||
.modal-container span.inline-reply-caret {
|
||||
display:none;
|
||||
}
|
||||
|
||||
span.inline-reply-caret .caret-inner {
|
||||
border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #FFFFFF;
|
||||
border-width: 0 9px 7px;
|
||||
left: -9px;
|
||||
top: 2px;
|
||||
border-style: solid;
|
||||
font-size: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.queet-box-template {
|
||||
font-family: "Helvetica Neue",Arial,sans-serif;
|
||||
font-size: 13px;
|
||||
color: #AAAAAA;
|
||||
line-height: 20px;
|
||||
line-height: 14px;
|
||||
vertical-align: top;
|
||||
text-overflow: ellipsis;
|
||||
background-color: #FFFFFF;
|
||||
width: 420px;
|
||||
height: 19px;
|
||||
height: 14px;
|
||||
margin-top: 0px;
|
||||
margin-right: 0px;
|
||||
margin-bottom: 0px;
|
||||
|
@ -2553,6 +2769,7 @@ div.clearfix {
|
|||
}
|
||||
|
||||
.member-button,
|
||||
.external-member-button,
|
||||
.external-follow-button,
|
||||
.follow-button {
|
||||
font-family: "Helvetica Neue",Arial,sans-serif;
|
||||
|
@ -2578,16 +2795,19 @@ div.clearfix {
|
|||
background-repeat: repeat-x;
|
||||
padding: 0;
|
||||
}
|
||||
.external-member-button.disabled,
|
||||
.member-button.disabled,
|
||||
.external-follow-button.disabled,
|
||||
.follow-button.disabled {
|
||||
color:#ccc;
|
||||
}
|
||||
.external-member-button.disabled i,
|
||||
.member-button.disabled i,
|
||||
.external-follow-button.disabled i,
|
||||
.follow-button.disabled i {
|
||||
opacity:0.2;
|
||||
}
|
||||
.external-member-button:not(.disabled):not(.member):hover,
|
||||
.member-button:not(.disabled):not(.member):hover,
|
||||
.external-follow-button:not(.disabled):not(.following):hover,
|
||||
.follow-button:not(.disabled):not(.following):hover {
|
||||
|
@ -2601,6 +2821,7 @@ div.clearfix {
|
|||
border-color: #BBBBBB;
|
||||
text-decoration: none;
|
||||
}
|
||||
.external-member-button:not(.disabled):not(.member):active,
|
||||
.member-button:not(.disabled):not(.member):active,
|
||||
.external-follow-button:not(.disabled):not(.following):active,
|
||||
.follow-button:not(.disabled):not(.following):active {
|
||||
|
@ -2609,6 +2830,7 @@ div.clearfix {
|
|||
border-color: #BBBBBB;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) inset, 0 1px 0 rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.external-member-button .button-text,
|
||||
.member-button .button-text,
|
||||
.external-follow-button .button-text,
|
||||
.follow-button .button-text {
|
||||
|
@ -2618,6 +2840,7 @@ div.clearfix {
|
|||
padding: 5px 7px;
|
||||
text-align: center;
|
||||
}
|
||||
.external-member-button .join-text,
|
||||
.member-button .join-text,
|
||||
.external-follow-button .follow-text,
|
||||
.follow-button .follow-text {
|
||||
|
@ -2625,6 +2848,7 @@ div.clearfix {
|
|||
text-align:right;
|
||||
min-width: 0;
|
||||
}
|
||||
.external-member-button .join-text i,
|
||||
.member-button .join-text i,
|
||||
.external-follow-button .follow-text i,
|
||||
.follow-button .follow-text i {
|
||||
|
@ -2665,6 +2889,7 @@ div.clearfix {
|
|||
background-repeat: repeat-x;
|
||||
border-color: #a93730 #a93730 #952f2a;
|
||||
}
|
||||
.external-member-button .join-text,
|
||||
.member-button .join-text,
|
||||
.external-follow-button .follow-text,
|
||||
.follow-button .follow-text {
|
||||
|
@ -2988,9 +3213,11 @@ body.rtl .modal-footer button {
|
|||
height: 20px;
|
||||
}
|
||||
|
||||
#popup-external-join .modal-body,
|
||||
#popup-external-follow .modal-body {
|
||||
padding:20px;
|
||||
}
|
||||
#popup-external-join input,
|
||||
#popup-external-follow input {
|
||||
background-color: #FFFFFF;
|
||||
border-color: #CCCCCC;
|
||||
|
@ -3011,6 +3238,7 @@ body.rtl .modal-footer button {
|
|||
transition: background 0.2s cubic-bezier(0, 0, 1, 1) 0s;
|
||||
width:80%;
|
||||
}
|
||||
#popup-external-join input:focus,
|
||||
#popup-external-follow input:focus {
|
||||
border: 1px solid #56B4EF;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) inset, 0 0 8px rgba(82, 168, 236, 0.6);
|
||||
|
@ -3533,6 +3761,9 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
|
||||
@media (max-width: 866px) {
|
||||
|
||||
#new-queets-bar-container {
|
||||
height:77px;
|
||||
}
|
||||
|
||||
.language-dropdown {
|
||||
width:170px;
|
||||
|
@ -3583,7 +3814,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
}
|
||||
|
||||
#search-query {
|
||||
background-image: url("../img/sprite-2x.png");
|
||||
background-image: url("../img/sprite-2x-v3.png");
|
||||
background-size: 500px 1329px;
|
||||
background-position: -100px -804px;
|
||||
border: 0 none;
|
||||
|
@ -3642,7 +3873,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
|
||||
|
||||
#top-compose {
|
||||
background-image: url("../img/sprite-2x.png");
|
||||
background-image: url("../img/sprite-2x-v3.png");
|
||||
background-size: 500px 1329px;
|
||||
background-position: -55px -800px;
|
||||
cursor: pointer;
|
||||
|
@ -3823,7 +4054,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
display:none;
|
||||
}
|
||||
.nav-session {
|
||||
background-image: url("../img/sprite-2x.png");
|
||||
background-image: url("../img/sprite-2x-v3.png");
|
||||
background-size: 500px 1329px;
|
||||
background-position: 0 -800px;
|
||||
height: 49px;
|
||||
|
@ -3865,11 +4096,14 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
-moz-box-shadow: inset 0 55px 55px 0 rgba(255,255,255,0.7);
|
||||
-webkit-box-shadow: inset 0 55px 55px 0 rgba(255,255,255,0.7);
|
||||
box-shadow: inset 0 55px 55px 0 rgba(255,255,255,0.7);
|
||||
margin: 0 0 0 -1%;
|
||||
width: 102%;
|
||||
}
|
||||
.menu-container a.my-timeline {
|
||||
display:block;
|
||||
}
|
||||
.menu-container a.favorites {
|
||||
.menu-container a.favorites,
|
||||
.menu-container a.public-and-external-timeline {
|
||||
display:none;
|
||||
}
|
||||
.menu-container a,
|
||||
|
@ -3883,7 +4117,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
padding:0;
|
||||
margin:0;
|
||||
border-radius:0 0 0 0 !important;
|
||||
background-image: url("../img/sprite-2x.png");
|
||||
background-image: url("../img/sprite-2x-v3.png");
|
||||
background-size: 500px 1329px;
|
||||
background-position: center -1003px;
|
||||
}
|
||||
|
@ -3917,7 +4151,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
margin-left: -35px;
|
||||
width: 70px;
|
||||
height: 55px;
|
||||
background-image: url("../img/sprite-2x.png");
|
||||
background-image: url("../img/sprite-2x-v3.png");
|
||||
background-size: 500px 1329px;
|
||||
background-color:#ccc;
|
||||
}
|
||||
|
@ -4047,7 +4281,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
.stream-item.expanded:hover > .queet ul.queet-actions {
|
||||
display: block;
|
||||
}
|
||||
.stream-item.expanded:not(.collapsing) > .queet ul.queet-actions {
|
||||
.stream-item.expanded > .queet ul.queet-actions {
|
||||
display: block;
|
||||
position:relative;
|
||||
width:100%;
|
||||
|
@ -4056,14 +4290,14 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
height:45px;
|
||||
margin-top:20px;
|
||||
}
|
||||
.stream-item.collapsing > .queet ul.queet-actions {
|
||||
/* .stream-item.collapsing > .queet ul.queet-actions {
|
||||
display:none !important;
|
||||
}
|
||||
} */
|
||||
ul.queet-actions li .icon.sm-fav,
|
||||
ul.queet-actions li .icon.sm-rt,
|
||||
ul.queet-actions li .icon.sm-trash,
|
||||
ul.queet-actions li .icon.sm-reply {
|
||||
background-image: url("../img/sprite-2x.png");
|
||||
background-image: url("../img/sprite-2x-v3.png");
|
||||
background-size: 500px 1329px;
|
||||
width:35px;
|
||||
height:35px;
|
||||
|
@ -4114,10 +4348,14 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
display:none;
|
||||
}
|
||||
|
||||
.stream-item:not(.expanded) > .queet .queet-actions {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.stream-item-expand {
|
||||
display: none;
|
||||
}
|
||||
.stream-item.expanded:not(.collapsing) > .queet .stream-item-expand {
|
||||
.stream-item.expanded > .queet .stream-item-expand {
|
||||
display: block;
|
||||
height: 23px;
|
||||
line-height: 23px;
|
||||
|
@ -4157,11 +4395,14 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||
}
|
||||
|
||||
.stream-item,
|
||||
.stream-item.expanded {
|
||||
-webkit-transition: none;
|
||||
-moz-transition: none;
|
||||
-o-transition: none;
|
||||
transition: none;
|
||||
.stream-item.expanded,
|
||||
.stream-item > .queet {
|
||||
-webkit-transition: none !important;
|
||||
-moz-transition: none !important;
|
||||
-o-transition: none !important;
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
15
index.php
15
index.php
|
@ -61,7 +61,7 @@ if($usehistorypushstate) {
|
|||
<title><?php print $sitetitle; ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" type="text/css" href="<?php print $qvitterpath; ?>css/7.css" />
|
||||
<link rel="stylesheet" type="text/css" href="<?php print $qvitterpath; ?>css/14.css" />
|
||||
<link rel="stylesheet" type="text/css" href="<?php print $qvitterpath; ?>css/jquery.minicolors.css" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="<?php print $qvitterpath; ?>favicon.ico?v=2">
|
||||
<?php
|
||||
|
@ -126,7 +126,6 @@ if($usehistorypushstate) {
|
|||
.permalink-link:hover,
|
||||
.stream-item.expanded > .queet .stream-item-expand,
|
||||
.stream-item-footer .with-icn .requeet-text a b:hover,
|
||||
ul.queet-actions li .with-icn,
|
||||
.queet-text span.attachment.more,
|
||||
.stream-item-header .created-at a:hover,
|
||||
.stream-item-header a.account-group:hover .name,
|
||||
|
@ -138,7 +137,6 @@ if($usehistorypushstate) {
|
|||
.cm-mention, .cm-tag, .cm-group, .cm-url, .cm-email {
|
||||
color:#0084B4;/*COLOREND*/
|
||||
}
|
||||
ul.queet-actions li .icon,
|
||||
.topbar .global-nav,
|
||||
.menu-container {
|
||||
background-color:#0084B4;/*BACKGROUNDCOLOREND*/
|
||||
|
@ -278,6 +276,7 @@ if($usehistorypushstate) {
|
|||
<a class="stream-selection my-timeline" data-stream-header="@statuses/user_timeline.json" data-stream-name="statuses/user_timeline.json"><i class="chev-right"></i></a>
|
||||
<a class="stream-selection favorites" data-stream-header="" data-stream-name="favorites.json"><i class="chev-right"></i></a>
|
||||
<a href="<?php print $instanceurl ?>" class="stream-selection public-timeline" data-stream-header="" data-stream-name="statuses/public_timeline.json"><i class="chev-right"></i></a>
|
||||
<a href="<?php print $instanceurl ?>main/all" class="stream-selection public-and-external-timeline" data-stream-header="" data-stream-name="statuses/public_and_external_timeline.json?since_id=1"><i class="chev-right"></i></a>
|
||||
</div>
|
||||
<div class="menu-container" id="history-container"></div>
|
||||
</div>
|
||||
|
@ -287,7 +286,7 @@ if($usehistorypushstate) {
|
|||
<h2></h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stream-item hidden"><div id="new-queets-bar"></div></div>
|
||||
<div id="new-queets-bar-container" class="hidden"><div id="new-queets-bar"></div></div>
|
||||
<div id="feed-body"></div>
|
||||
</div>
|
||||
|
||||
|
@ -298,10 +297,10 @@ if($usehistorypushstate) {
|
|||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/jquery-ui-1.10.3.min.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/jquery.easing.1.3.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/jquery.minicolors.min.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/dom-functions-7.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/misc-functions-7.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/dom-functions-12.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/misc-functions-11.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/ajax-functions-4.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lan-7.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/qvitter-7.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/lan-12.js"></script>
|
||||
<script type="text/javascript" src="<?php print $qvitterpath; ?>js/qvitter-11.js"></script>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
|
@ -187,6 +187,10 @@ function profileCardFromFirstObject(data,screen_name) {
|
|||
// change design
|
||||
changeDesign(first.user);
|
||||
|
||||
// remove any old profile card
|
||||
$('#feed').siblings('.profile-card').remove();
|
||||
|
||||
// insert profile card into dom
|
||||
$('#feed').before('<div class="profile-card"><div class="profile-header-inner" style="background-image:url(' + first.user.profile_image_url_original + ')"><div class="profile-header-inner-overlay"></div><a class="profile-picture" href="' + first.user.profile_image_url_original + '"><img src="' + first.user.profile_image_url_profile_size + '" /></a><div class="profile-card-inner"><h1 class="fullname">' + first.user.name + '<span></span></h1><h2 class="username"><span class="screen-name">@' + first.user.screen_name + '</span><span class="follow-status"></span></h2><div class="bio-container"><p>' + first.user.description + '</p></div><p class="location-and-url"><span class="location">' + first.user.location + '</span><span class="divider"> · </span><span class="url"><a href="' + first.user.url + '">' + first.user.url.replace('http://','').replace('https://','') + '</a></span></p></div></div><div class="profile-banner-footer"><ul class="stats"><li><a class="tweet-stats"><strong>' + first.user.statuses_count + '</strong>' + window.sL.notices + '</a></li><li><a class="following-stats"><strong>' + first.user.friends_count + '</strong>' + window.sL.following + '</a></li><li><a class="follower-stats"><strong>' + first.user.followers_count + '</strong>' + window.sL.followers + '</a></li><li><a class="groups-stats"><strong>' + first.user.groups_count + '</strong>' + window.sL.groups + '</a></li></ul>' + followButton + '<div class="clearfix"></div></div></div>');
|
||||
}
|
||||
|
||||
|
@ -220,6 +224,8 @@ function profileCardFromFirstObject(data,screen_name) {
|
|||
// change design
|
||||
changeDesign(data);
|
||||
|
||||
// remove any old profile card and show profile card
|
||||
$('#feed').siblings('.profile-card').remove();
|
||||
$('#feed').before('<div class="profile-card"><div class="profile-header-inner" style="background-image:url(' + data.profile_image_url_original + ')"><div class="profile-header-inner-overlay"></div><a class="profile-picture" href="' + data.profile_image_url_original + '"><img src="' + data.profile_image_url_profile_size + '" /></a><div class="profile-card-inner"><h1 class="fullname">' + data.name + '<span></span></h1><h2 class="username"><span class="screen-name">@' + data.screen_name + '</span><span class="follow-status"></span></h2><div class="bio-container"><p>' + data.description + '</p></div><p class="location-and-url"><span class="location">' + data.location + '</span><span class="divider"> · </span><span class="url"><a href="' + data.url + '">' + data.url.replace('http://','').replace('https://','') + '</a></span></p></div></div><div class="profile-banner-footer"><ul class="stats"><li><a class="tweet-stats"><strong>' + data.statuses_count + '</strong>' + window.sL.notices + '</a></li><li><a class="following-stats"><strong>' + data.friends_count + '</strong>' + window.sL.following + '</a></li><li><a class="follower-stats"><strong>' + data.followers_count + '</strong>' + window.sL.followers + '</a></li><li><a class="groups-stats"><strong>' + data.groups_count + '</strong>' + window.sL.groups + '</a></li></ul>' + followButton + '<div class="clearfix"></div></div></div>');
|
||||
}});
|
||||
}
|
||||
|
@ -260,7 +266,13 @@ function groupProfileCard(groupAlias) {
|
|||
var memberButton = '<div class="user-actions"><button data-group-id="' + data.id + '" type="button" class="member-button ' + memberClass + '"><span class="button-text join-text"><i class="join"></i>' + window.sL.joinGroup + '</span><span class="button-text ismember-text">' + window.sL.isMemberOfGroup + '</span><span class="button-text leave-text">' + window.sL.leaveGroup + '</span></button></div>';
|
||||
}
|
||||
|
||||
// follow from external instance if logged out
|
||||
if(typeof window.loginUsername == 'undefined') {
|
||||
var memberButton = '<div class="user-actions"><button type="button" class="external-member-button"><span class="button-text join-text"><i class="join"></i>' + window.sL.joinExternalGroup + '</span></button></div>';
|
||||
}
|
||||
|
||||
// add card to DOM
|
||||
$('#feed').siblings('.profile-card').remove(); // remove any old profile card
|
||||
$('#feed').before('<div class="profile-card"><div class="profile-header-inner" style="background-image:url(' + data.original_logo + ')"><div class="profile-header-inner-overlay"></div><a class="profile-picture" href="' + data.original_logo + '"><img src="' + data.homepage_logo + '" /></a><div class="profile-card-inner"><h1 class="fullname">' + data.fullname + '<span></span></h1><h2 class="username"><span class="screen-name">!' + data.nickname + '</span></span></h2><div class="bio-container"><p>' + data.description + '</p></div><p class="location-and-url"></span><span class="url"><a href="' + data.homepage + '">' + data.homepage.replace('http://','').replace('https://','') + '</a></span></p></div></div><div class="profile-banner-footer"><ul class="stats"><li><a class="member-stats"><strong>' + data.member_count + '</strong>' + window.sL.memberCount + '</a></li><li><a class="admin-stats"><strong>' + data.admin_count + '</strong>' + window.sL.adminCount + '</a></li></ul>' + memberButton + '<div class="clearfix"></div></div></div>');
|
||||
}});
|
||||
}
|
||||
|
@ -280,9 +292,17 @@ function setNewCurrentStream(stream,actionOnSuccess,setLocation) {
|
|||
|
||||
// don't do anything if this stream is already the current
|
||||
if(window.currentStream == stream) {
|
||||
|
||||
// scroll to top if we are downscrolled
|
||||
|
||||
// refresh if we are at top
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// remember state of old stream (including profile card)
|
||||
window.oldStreams[window.currentStream] = $('#feed').siblings('.profile-card').outerHTML() + $('#feed').outerHTML();
|
||||
|
||||
// set location bar from stream
|
||||
if(setLocation && window.useHistoryPushState) {
|
||||
setUrlFromStream(stream);
|
||||
|
@ -320,7 +340,8 @@ function setNewCurrentStream(stream,actionOnSuccess,setLocation) {
|
|||
else if(stream == 'statuses/friends_timeline.json'
|
||||
|| stream == 'statuses/mentions.json'
|
||||
|| stream == 'favorites.json'
|
||||
|| stream == 'statuses/public_timeline.json') {
|
||||
|| stream == 'statuses/public_timeline.json'
|
||||
|| stream == 'statuses/public_and_external_timeline.json?since_id=1') {
|
||||
var defaultStreamName = stream;
|
||||
var streamHeader = $('.stream-selection[data-stream-name="' + stream + '"]').attr('data-stream-header');
|
||||
}
|
||||
|
@ -375,18 +396,33 @@ function setNewCurrentStream(stream,actionOnSuccess,setLocation) {
|
|||
var h2FeedHeader = streamHeader;
|
||||
}
|
||||
|
||||
|
||||
// if we have a saved copy of this stream, show it immediately (but it is replaced when stream finishes to load later)
|
||||
if(typeof window.oldStreams[window.currentStream] != "undefined") {
|
||||
$('.profile-card').remove();
|
||||
$('#feed').remove();
|
||||
$('#user-container').after(window.oldStreams[window.currentStream]);
|
||||
$('.profile-card').css('display','none');
|
||||
$('#feed').css('display','none');
|
||||
$('.profile-card').fadeIn(300);
|
||||
$('#feed').fadeIn(300);
|
||||
}
|
||||
|
||||
// otherwise we fade out and wait for stream to load
|
||||
else {
|
||||
// fade out
|
||||
$('#feed,.profile-card').animate({opacity:'0'},150,function(){
|
||||
// when fade out finishes, remove any profile cards
|
||||
// when fade out finishes, remove any profile cards and set new header
|
||||
$('.profile-card').remove();
|
||||
$('#feed-header-inner h2').html(h2FeedHeader);
|
||||
});
|
||||
}
|
||||
|
||||
// add this stream to history menu if it doesn't exist there (but not if this is me or if we're not logged in)
|
||||
if($('.stream-selection[data-stream-header="' + streamHeader + '"]').length==0
|
||||
&& streamHeader != '@' + window.loginUsername
|
||||
&& typeof window.loginUsername != 'undefined') {
|
||||
$('#history-container').append('<a class="stream-selection" data-stream-header="' + streamHeader + '" href="' + $('.stream-selection.public-timeline').attr('href') + convertStreamToPath(defaultStreamName) + '">' + streamHeader + '<i class="close-right"></i><i class="chev-right"></i></a>');
|
||||
$('#history-container').append('<a class="stream-selection" data-stream-header="' + streamHeader + '" href="' + $('.stream-selection.public-timeline').attr('href') + convertStreamToPath(defaultStreamName) + '">' + streamHeader + '<i class="chev-right"></i></a>');
|
||||
updateHistoryLocalStorage();
|
||||
}
|
||||
|
||||
|
@ -424,6 +460,7 @@ function setNewCurrentStream(stream,actionOnSuccess,setLocation) {
|
|||
remove_spinner();
|
||||
$('#feed-body').html(''); // empty feed only now so the scrollers don't flicker on and off
|
||||
$('#new-queets-bar').parent().addClass('hidden'); document.title = window.siteTitle; // hide new queets bar if it's visible there
|
||||
$('#feed-body').removeAttr('data-search-page-number'); // reset
|
||||
addToFeed(user_data, false,'visible'); // add stream items to feed element
|
||||
$('#feed').animate({opacity:'1'},150); // fade in
|
||||
$('body').removeClass('loading-older');$('body').removeClass('loading-newer');
|
||||
|
@ -535,6 +572,9 @@ function convertStreamToPath(stream) {
|
|||
else if(stream == 'statuses/public_timeline.json') {
|
||||
return '';
|
||||
}
|
||||
else if(stream == 'statuses/public_and_external_timeline.json?since_id=1') {
|
||||
return 'main/all';
|
||||
}
|
||||
else if(stream.substring(0,26) == 'statusnet/groups/timeline/') {
|
||||
var groupName = stream.substring(stream.lastIndexOf('/')+1,stream.indexOf('.json'));
|
||||
return 'group/' + groupName;
|
||||
|
@ -586,8 +626,13 @@ function getStreamFromUrl() {
|
|||
// default/fallback
|
||||
var streamToSet = 'statuses/public_timeline.json';
|
||||
|
||||
// main/all, i.e. full network
|
||||
if (loc == '/main/all') {
|
||||
streamToSet = 'statuses/public_and_external_timeline.json?since_id=1';
|
||||
}
|
||||
|
||||
// {domain}/{screen_name} or {domain}/{screen_name}/
|
||||
if ((/^[a-zA-Z0-9]+$/.test(loc.substring(0, loc.length - 1).replace('/','')))) {
|
||||
else if ((/^[a-zA-Z0-9]+$/.test(loc.substring(0, loc.length - 1).replace('/','')))) {
|
||||
var userToStream = loc.replace('/','').replace('/','');
|
||||
if(userToStream.length>0) {
|
||||
streamToSet = 'statuses/user_timeline.json?screen_name=' + userToStream;
|
||||
|
@ -738,27 +783,60 @@ function expand_queet(q,doScrolling) {
|
|||
if(q.hasClass('conversation')) {
|
||||
q.removeClass('expanded');
|
||||
q.removeClass('collapsing');
|
||||
q.find('.expanded-content').remove();
|
||||
q.find('.view-more-container-top').remove();
|
||||
q.find('.view-more-container-bottom').remove();
|
||||
q.find('.stream-item.conversation').remove();
|
||||
q.find('.inline-reply-queetbox').remove();
|
||||
q.find('.expanded-content').remove();
|
||||
}
|
||||
else {
|
||||
rememberMyScrollPos(q.children('.queet'),qid,0);
|
||||
var collapseTime = 200 + q.find('.stream-item.conversation:not(.hidden-conversation)').length*50;
|
||||
q.find('.expanded-content').slideUp(collapseTime,function(){$(this).remove();});
|
||||
q.find('.view-more-container-top').slideUp(collapseTime,function(){$(this).remove();});
|
||||
q.find('.view-more-container-bottom').slideUp(collapseTime,function(){$(this).remove();});
|
||||
q.find('.stream-item.conversation').slideUp(collapseTime,function(){$(this).remove();});
|
||||
q.find('.inline-reply-queetbox').slideUp(collapseTime,function(){$(this).remove();});
|
||||
if(doScrolling) {
|
||||
backToMyScrollPos(q,qid,'animate');
|
||||
}
|
||||
|
||||
// give stream item a height
|
||||
q.css('height',q.height() + 'px');
|
||||
|
||||
q.children('div').not('.queet').children('a').css('opacity','0.5');
|
||||
q.children('div').not('.queet').children().children().css('opacity','0.5');
|
||||
|
||||
var collapseTime = 150 + q.find('.stream-item.conversation:not(.hidden-conversation)').length*50;
|
||||
|
||||
// set transition time (needs to be delayed, otherwise webkit animates the height-setting above)
|
||||
setTimeout(function() {
|
||||
q.children('.queet').css('-moz-transition-duration',Math.round( collapseTime / 1000 * 10) / 10 + 's');
|
||||
q.children('.queet').css('-o-transition-duration',Math.round( collapseTime / 1000 * 10) / 10 + 's');
|
||||
q.children('.queet').css('-webkit-transition-duration',Math.round( collapseTime * 1000 * 10) / 10 + 's');
|
||||
q.children('.queet').css('transition-duration',Math.round( collapseTime / 1000 * 10) / 10 + 's');
|
||||
q.css('-moz-transition-duration',Math.round( collapseTime / 1000 * 10) / 10 + 's');
|
||||
q.css('-o-transition-duration',Math.round( collapseTime / 1000 * 10) / 10 + 's');
|
||||
q.css('-webkit-transition-duration',Math.round( collapseTime * 1000 * 10) / 10 + 's');
|
||||
q.css('transition-duration',Math.round( collapseTime / 1000 * 10) / 10 + 's');
|
||||
|
||||
// set new heights and margins to animate to
|
||||
q.css('height',(q.children('.queet').find('.queet-content').outerHeight() - q.children('.queet').find('.expanded-content').outerHeight() - 10) + 'px');
|
||||
q.children('.queet').css('margin-top', '-' + (q.children('.queet').offset().top - q.offset().top) + 'px');
|
||||
|
||||
}, 50);
|
||||
|
||||
setTimeout(function() {
|
||||
q.css('height','auto');
|
||||
q.children('.queet').css('margin-top','0');
|
||||
q.removeClass('expanded');
|
||||
q.removeClass('collapsing');
|
||||
q.find('.expanded-content').remove();
|
||||
q.find('.view-more-container-top').remove();
|
||||
q.find('.view-more-container-bottom').remove();
|
||||
q.find('.inline-reply-queetbox').remove();
|
||||
q.find('.stream-item.conversation').remove();
|
||||
q.removeAttr('style');
|
||||
q.children('.queet').removeAttr('style');
|
||||
}, collapseTime+500);
|
||||
|
||||
|
||||
|
||||
if(doScrolling) {
|
||||
backToMyScrollPos(q,qid,collapseTime);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -794,16 +872,22 @@ function expand_queet(q,doScrolling) {
|
|||
// show expanded content
|
||||
q.find('.stream-item-footer').after('<div class="expanded-content"><div class="queet-stats-container"></div><div class="client-and-actions"><span class="metadata">' + metadata + '</span></div></div>');
|
||||
|
||||
// maybe show images
|
||||
// maybe show images or videos
|
||||
$.each(q.children('.queet').find('.queet-text').find('a'), function() {
|
||||
var attachment_title = $(this).attr('title');
|
||||
if(typeof attachment_title != 'undefined') {
|
||||
// images
|
||||
if(attachment_title.substr(attachment_title.length - 5) == '.jpeg' ||
|
||||
attachment_title.substr(attachment_title.length - 4) == '.png' ||
|
||||
attachment_title.substr(attachment_title.length - 4) == '.gif' ||
|
||||
attachment_title.substr(attachment_title.length - 4) == '.jpg') {
|
||||
q.children('.queet').find('.expanded-content').prepend('<div class="media"><a href="' + attachment_title + '" target="_blank"><img src="' + attachment_title + '" /></a></div>');
|
||||
}
|
||||
// videos
|
||||
else if(attachment_title.indexOf('youtube.com/watch?v=') > -1) {
|
||||
var youtubeId = attachment_title.replace('http://www.youtube.com/watch?v=','').replace('https://www.youtube.com/watch?v=','').substr(0,11);
|
||||
q.children('.queet').find('.expanded-content').prepend('<div class="media"><iframe width="420" height="315" src="//www.youtube.com/embed/' + youtubeId + '" frameborder="0" allowfullscreen></iframe></div>');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -883,7 +967,7 @@ function replyFormHtml(q,qid) {
|
|||
}
|
||||
});
|
||||
|
||||
return '<div class="inline-reply-queetbox"><div class="queet-box-template" id="queet-box-template-' + qid + '" data-start-text="' + user_screen_name_text + reply_to_screen_name_text + more_reply_tos_text + '">' + window.sL.replyTo + ' ' + user_screen_name_html + reply_to_screen_name_html + more_reply_tos + ' <br></div></div>';
|
||||
return '<div class="inline-reply-queetbox"><span class="inline-reply-caret"><span class="caret-inner"></span></span><img class="reply-avatar" src="' + $('#user-avatar').attr('src') + '" /><div class="queet-box-template" id="queet-box-template-' + qid + '" data-start-text="' + user_screen_name_text + reply_to_screen_name_text + more_reply_tos_text + '">' + window.sL.replyTo + ' ' + user_screen_name_html + reply_to_screen_name_html + more_reply_tos + ' <br></div></div>';
|
||||
}
|
||||
|
||||
|
||||
|
@ -1166,7 +1250,8 @@ function findInReplyToStatusAndShow(qid,reply,only_first,onlyINreplyto) {
|
|||
var reply_found_reply_to = $('#stream-item-' + qid).find('.stream-item[data-quitter-id="' + reply_found.attr('data-in-reply-to-status-id') + '"]');
|
||||
if(reply_found.length>0) {
|
||||
reply_found.removeClass('hidden-conversation');
|
||||
reply_found.animate({opacity:'1'},500);
|
||||
//reply_found.animate({opacity:'1'},500);
|
||||
reply_found.css('opacity','1');
|
||||
if(only_first && reply_found_reply_to.length>0) {
|
||||
reply_found.before('<div class="view-more-container-top" data-trace-from="' + reply + '"><a>' + window.sL.viewMoreInConvBefore + '</a></div>');
|
||||
findReplyToStatusAndShow(qid,qid,true);
|
||||
|
@ -1188,11 +1273,15 @@ function findReplyToStatusAndShow(qid,this_id,only_first) {
|
|||
var reply_founds_reply = $('#stream-item-' + qid).find('.stream-item[data-in-reply-to-status-id="' + reply_found.attr('data-quitter-id') + '"]');
|
||||
if(reply_found.length>0) {
|
||||
reply_found.removeClass('hidden-conversation');
|
||||
reply_found.animate({opacity:'1'},100,function(){
|
||||
// reply_found.animate({opacity:'1'},0,function(){
|
||||
// if(!only_first) {
|
||||
// findReplyToStatusAndShow(qid,$(this).attr('data-quitter-id'),false);
|
||||
// }
|
||||
// });
|
||||
reply_found.css('opacity','1');
|
||||
if(!only_first) {
|
||||
findReplyToStatusAndShow(qid,$(this).attr('data-quitter-id'),false);
|
||||
}
|
||||
});
|
||||
if(only_first && reply_founds_reply.length>0) {
|
||||
reply_found.last().after('<div class="view-more-container-bottom" data-replies-after="' + qid + '"><a>' + window.sL.viewMoreInConvAfter + '</a></div>');
|
||||
}
|
||||
|
@ -1280,10 +1369,14 @@ function addToFeed(feed, after, extraClasses) {
|
|||
}
|
||||
var memberButton = '';
|
||||
if(typeof window.loginUsername != 'undefined') {
|
||||
console.log(obj);
|
||||
var memberButton = '<div class="user-actions"><button data-group-id="' + obj.id + '" type="button" class="member-button ' + memberClass + '"><span class="button-text join-text"><i class="join"></i>' + window.sL.joinGroup + '</span><span class="button-text ismember-text">' + window.sL.isMemberOfGroup + '</span><span class="button-text leave-text">' + window.sL.leaveGroup + '</span></button></div>';
|
||||
}
|
||||
|
||||
var groupHtml = '<div id="stream-item-' + obj.id + '" class="stream-item user"><div class="queet">' + memberButton + '<div class="queet-content"><div class="stream-item-header"><a class="account-group" href="' + obj.url + '"><img class="avatar" src="' + obj.stream_logo + '" /><strong class="name" data-group-id="' + obj.id + '">' + obj.fullname + '</strong> <span class="screen-name">!' + obj.nickname + '</span></a></div><div class="queet-text">' + obj.description + '</div></div></div></div>';
|
||||
var groupAvatar = obj.stream_logo;
|
||||
if(obj.homepage_logo != null) {
|
||||
groupAvatar = obj.homepage_logo;
|
||||
}
|
||||
var groupHtml = '<div id="stream-item-' + obj.id + '" class="stream-item user"><div class="queet">' + memberButton + '<div class="queet-content"><div class="stream-item-header"><a class="account-group" href="' + obj.url + '"><img class="avatar" src="' + groupAvatar + '" /><strong class="name" data-group-id="' + obj.id + '">' + obj.fullname + '</strong> <span class="screen-name">!' + obj.nickname + '</span></a></div><div class="queet-text">' + obj.description + '</div></div></div></div>';
|
||||
|
||||
if(after) {
|
||||
$('#' + after).after(groupHtml);
|
||||
|
@ -1364,8 +1457,23 @@ function addToFeed(feed, after, extraClasses) {
|
|||
in_groups_html = '<span class="in-groups">' + obj.retweeted_status.statusnet_in_groups + '</span>';
|
||||
}
|
||||
|
||||
|
||||
// image attachment thumbnails
|
||||
var attachment_html = '';
|
||||
if(typeof obj.retweeted_status.attachments != "undefined") {
|
||||
$.each(obj.retweeted_status.attachments, function(){
|
||||
if(this.thumb_url != null) {
|
||||
attachment_html = attachment_html + '<a href="' + this.url + '"><img src="' + this.thumb_url + '"/></a>';
|
||||
}
|
||||
});
|
||||
}
|
||||
if(attachment_html.length>0) {
|
||||
attachment_html = '<div class="attachments">' + attachment_html + '</div>';
|
||||
}
|
||||
|
||||
|
||||
var queetTime = parseTwitterDate(obj.retweeted_status.created_at);
|
||||
var queetHtml = '<div id="stream-item-' + obj.retweeted_status.id + '" class="stream-item ' + extraClassesThisRun + ' ' + requeetedClass + ' ' + favoritedClass + '" data-source="' + escape(obj.retweeted_status.source) + '" data-quitter-id="' + obj.retweeted_status.id + '" data-conversation-id="' + obj.retweeted_status.statusnet_conversation_id + '" data-quitter-id-in-stream="' + obj.id + '" data-in-reply-to-screen-name="' + in_reply_to_screen_name + '" data-in-reply-to-status-id="' + obj.retweeted_status.in_reply_to_status_id + '"><div class="queet" id="q-' + obj.retweeted_status.id + '"><span class="dogear"></span><div class="queet-content"><div class="stream-item-header"><a class="account-group" href="' + obj.retweeted_status.user.statusnet_profile_url + '"><img class="avatar" src="' + obj.retweeted_status.user.profile_image_url_profile_size + '" /><strong class="name" data-user-id="' + obj.retweeted_status.user.id + '">' + obj.retweeted_status.user.name + '</strong> <span class="screen-name">@' + obj.retweeted_status.user.screen_name + '</span></a><i class="addressees">' + reply_to_html + in_groups_html + '</i><small class="created-at" data-created-at="' + obj.retweeted_status.created_at + '"><a href="' + obj.retweeted_status.uri + '">' + queetTime + '</a></small></div><div class="queet-text">' + $.trim(obj.retweeted_status.statusnet_html) + '</div><div class="stream-item-footer">' + queetActions + '<div class="context" id="requeet-' + obj.id + '"><span class="with-icn"><i class="badge-requeeted"></i><span class="requeet-text"> ' + window.sL.requeetedBy + '<a href="' + obj.user.statusnet_profile_url + '"> <b>' + obj.user.name + '</b></a></span></span></div><span class="stream-item-expand">' + window.sL.expand + '</span></div></div></div></div>';
|
||||
var queetHtml = '<div id="stream-item-' + obj.retweeted_status.id + '" class="stream-item ' + extraClassesThisRun + ' ' + requeetedClass + ' ' + favoritedClass + '" data-source="' + escape(obj.retweeted_status.source) + '" data-quitter-id="' + obj.retweeted_status.id + '" data-conversation-id="' + obj.retweeted_status.statusnet_conversation_id + '" data-quitter-id-in-stream="' + obj.id + '" data-in-reply-to-screen-name="' + in_reply_to_screen_name + '" data-in-reply-to-status-id="' + obj.retweeted_status.in_reply_to_status_id + '"><div class="queet" id="q-' + obj.retweeted_status.id + '">' + attachment_html + '<span class="dogear"></span><div class="queet-content"><div class="stream-item-header"><a class="account-group" href="' + obj.retweeted_status.user.statusnet_profile_url + '"><img class="avatar" src="' + obj.retweeted_status.user.profile_image_url_profile_size + '" /><strong class="name" data-user-id="' + obj.retweeted_status.user.id + '">' + obj.retweeted_status.user.name + '</strong> <span class="screen-name">@' + obj.retweeted_status.user.screen_name + '</span></a><i class="addressees">' + reply_to_html + in_groups_html + '</i><small class="created-at" data-created-at="' + obj.retweeted_status.created_at + '"><a href="' + obj.retweeted_status.uri + '">' + queetTime + '</a></small></div><div class="queet-text">' + $.trim(obj.retweeted_status.statusnet_html) + '</div><div class="stream-item-footer">' + queetActions + '<div class="context" id="requeet-' + obj.id + '"><span class="with-icn"><i class="badge-requeeted"></i><span class="requeet-text"> ' + window.sL.requeetedBy + '<a href="' + obj.user.statusnet_profile_url + '"> <b>' + obj.user.name + '</b></a></span></span></div><span class="stream-item-expand">' + window.sL.expand + '</span></div></div></div></div>';
|
||||
|
||||
// detect rtl
|
||||
queetHtml = detectRTL(queetHtml);
|
||||
|
@ -1472,8 +1580,21 @@ function addToFeed(feed, after, extraClasses) {
|
|||
in_groups_html = '<span class="in-groups">' + obj.statusnet_in_groups + '</span>';
|
||||
}
|
||||
|
||||
// image attachment thumbnails
|
||||
var attachment_html = '';
|
||||
if(typeof obj.attachments != "undefined") {
|
||||
$.each(obj.attachments, function(){
|
||||
if(this.thumb_url != null) {
|
||||
attachment_html = attachment_html + '<a href="' + this.url + '"><img src="' + this.thumb_url + '"/></a>';
|
||||
}
|
||||
});
|
||||
}
|
||||
if(attachment_html.length>0) {
|
||||
attachment_html = '<div class="attachments">' + attachment_html + '</div>';
|
||||
}
|
||||
|
||||
var queetTime = parseTwitterDate(obj.created_at);
|
||||
var queetHtml = '<div id="stream-item-' + obj.id + '" class="stream-item ' + extraClassesThisRun + ' ' + requeetedClass + ' ' + favoritedClass + '" data-source="' + escape(obj.source) + '" data-quitter-id="' + obj.id + '" data-conversation-id="' + obj.statusnet_conversation_id + '" data-quitter-id-in-stream="' + obj.id + '" data-in-reply-to-screen-name="' + in_reply_to_screen_name + '" data-in-reply-to-status-id="' + obj.in_reply_to_status_id + '"><div class="queet" id="q-' + obj.id + '"><span class="dogear"></span><div class="queet-content"><div class="stream-item-header"><a class="account-group" href="' + obj.user.statusnet_profile_url + '"><img class="avatar" src="' + obj.user.profile_image_url_profile_size + '" /><strong class="name" data-user-id="' + obj.user.id + '">' + obj.user.name + '</strong> <span class="screen-name">@' + obj.user.screen_name + '</span></a><i class="addressees">' + reply_to_html + in_groups_html + '</i><small class="created-at" data-created-at="' + obj.created_at + '"><a href="' + obj.uri + '">' + queetTime + '</a></small></div><div class="queet-text">' + $.trim(obj.statusnet_html) + '</div><div class="stream-item-footer">' + queetActions + '<span class="stream-item-expand">' + window.sL.expand + '</span></div></div></div></div>';
|
||||
var queetHtml = '<div id="stream-item-' + obj.id + '" class="stream-item ' + extraClassesThisRun + ' ' + requeetedClass + ' ' + favoritedClass + '" data-source="' + escape(obj.source) + '" data-quitter-id="' + obj.id + '" data-conversation-id="' + obj.statusnet_conversation_id + '" data-quitter-id-in-stream="' + obj.id + '" data-in-reply-to-screen-name="' + in_reply_to_screen_name + '" data-in-reply-to-status-id="' + obj.in_reply_to_status_id + '"><div class="queet" id="q-' + obj.id + '">' + attachment_html + '<span class="dogear"></span><div class="queet-content"><div class="stream-item-header"><a class="account-group" href="' + obj.user.statusnet_profile_url + '"><img class="avatar" src="' + obj.user.profile_image_url_profile_size + '" /><strong class="name" data-user-id="' + obj.user.id + '">' + obj.user.name + '</strong> <span class="screen-name">@' + obj.user.screen_name + '</span></a><i class="addressees">' + reply_to_html + in_groups_html + '</i><small class="created-at" data-created-at="' + obj.created_at + '"><a href="' + obj.uri + '">' + queetTime + '</a></small></div><div class="queet-text">' + $.trim(obj.statusnet_html) + '</div><div class="stream-item-footer">' + queetActions + '<span class="stream-item-expand">' + window.sL.expand + '</span></div></div></div></div>';
|
||||
|
||||
// detect rtl
|
||||
queetHtml = detectRTL(queetHtml);
|
|
@ -49,7 +49,7 @@ window.l.es.notices = 'Queets';
|
|||
window.l.es.followers = 'Seguidores';
|
||||
window.l.es.following = 'Siguiendo';
|
||||
window.l.es.groups = 'Grupos';
|
||||
window.l.es.compose = 'Publicar un nuevo Queet...';
|
||||
window.l.es.compose = 'Crear un nuevo Queet...';
|
||||
window.l.es.queetVerb = 'Quittear';
|
||||
window.l.es.queetsNounPlural = 'Queets';
|
||||
window.l.es.logout = 'Cerrar sesión';
|
||||
|
@ -61,9 +61,9 @@ window.l.es.details = 'Detalles';
|
|||
window.l.es.expandFullConversation = 'Ver la conversación entera';
|
||||
window.l.es.replyVerb = 'Responder';
|
||||
window.l.es.requeetVerb = 'Requittear';
|
||||
window.l.es.favoriteVerb = 'Favorito';
|
||||
window.l.es.favoriteVerb = 'Favorecer';
|
||||
window.l.es.requeetedVerb = 'Requitteado';
|
||||
window.l.es.favoritedVerb = 'Favorito';
|
||||
window.l.es.favoritedVerb = 'Marcado como favorito';
|
||||
window.l.es.replyTo = 'Responder a';
|
||||
window.l.es.requeetedBy = 'Requitteado por';
|
||||
window.l.es.favoriteNoun = 'Favorito';
|
||||
|
@ -111,17 +111,19 @@ window.l.es.viewMoreInConvAfter = 'Ver más en la conversación →';
|
|||
window.l.es.mentions = 'Menciones';
|
||||
window.l.es.timeline = 'Línea temporal';
|
||||
window.l.es.publicTimeline = 'Línea temporal pública';
|
||||
window.l.es.publicAndExtTimeline = 'Toda la red conocida';
|
||||
window.l.es.searchVerb = 'Buscar';
|
||||
window.l.es.deleteVerb = 'Eliminar';
|
||||
window.l.es.cancelVerb = 'Cancelar';
|
||||
window.l.es.deleteConfirmation = '¿Estás seguro de que quieres eliminar este queet?';
|
||||
window.l.es.userExternalFollow = 'Seguir';
|
||||
window.l.es.userExternalFollowHelp = 'Identificador de su cuenta (por ejemplo user@quitter.se).';
|
||||
window.l.es.userExternalFollowHelp = 'Identificador de su cuenta (p.e. user@rainbowdash.net).';
|
||||
window.l.es.userFollow = 'Seguir';
|
||||
window.l.es.userFollowing = 'Siguiendo';
|
||||
window.l.es.userUnfollow = 'Dejar de seguir';
|
||||
window.l.es.joinGroup = 'Unirse al grupo';
|
||||
window.l.es.isMemberOfGroup = 'Abandonar grupo';
|
||||
window.l.es.joinExternalGroup = 'Unirse al grupo';
|
||||
window.l.es.isMemberOfGroup = 'Miembro';
|
||||
window.l.es.leaveGroup = 'Abandonar grupo';
|
||||
window.l.es.memberCount = 'Miembros';
|
||||
window.l.es.adminCount = 'Administradores';
|
||||
|
@ -135,7 +137,7 @@ window.l.es.signUpFullName = 'Nombre completo';
|
|||
window.l.es.signUpEmail = 'Correo electrónico';
|
||||
window.l.es.signUpButtonText = 'Regístrate en Quitter';
|
||||
window.l.es.welcomeHeading = 'Bienvenido a Quitter.';
|
||||
window.l.es.welcomeText = 'Somos una <span id="federated-tooltip"><div id="what-is-federation">« Federación » significa que usted no debe tener una cuenta de Quitter para seguir su usuarios, estar seguido por o communicar con ellos. ¡Puede registrar con cualquier servidor StatusNet o <a href="http://www.gnu.org/software/social/">GNU Social</a>, o cualquier servicio utilizando el protocolo <a href="http://www.w3.org/community/ostatus/wiki/Main_Page">OStatus</a>! También no debe registrarse en cualquier servicio para postear; puede simplemente instalar el software GNU Social en su servidor propio. (:</div>federación</span> de microblogueros que, como usted, están motivados por la ética y solidaridad, y quieren abandonar los servicios centralizados capitalistas. Estamos aquí desde 2010 y los servicios siempre van a ser sin ánimo de lucro.';
|
||||
window.l.es.welcomeText = 'Somos una <span id="federated-tooltip"><div id="what-is-federation">« Federación » significa que no debes tener una cuenta de Quitter para seguir su usuarios, estar seguido por o communicar con ellos. ¡Puedes registrar con cualquier servidor StatusNet o <a href="http://www.gnu.org/software/social/">GNU Social</a>, o cualquier servicio utilizando el protocolo <a href="http://www.w3.org/community/ostatus/wiki/Main_Page">OStatus</a>! También no debes registrarse en cualquier servicio para participar - simplemente instala el software GNU Social en tu propio servidor. (:</div>federación</span> de microblogueros que, como tú, estan motivados por ética y solidaridad y quieren abandonar los servicios centralizados capitalistas. Estamos aquí desde 2010 y siempre vamos a ser no-profit.';
|
||||
window.l.es.registerNickname = 'Nombre de usuario';
|
||||
window.l.es.registerHomepage = 'Sitio web';
|
||||
window.l.es.registerBio = 'Biografía';
|
||||
|
@ -220,6 +222,7 @@ window.l.fr.viewMoreInConvAfter = 'Voir davantage dans la conversation →';
|
|||
window.l.fr.mentions = 'Mentions';
|
||||
window.l.fr.timeline = 'Queets';
|
||||
window.l.fr.publicTimeline = 'Tous les queets';
|
||||
window.l.fr.publicAndExtTimeline = 'L\'ensemble de la Fédération';
|
||||
window.l.fr.searchVerb = 'Rechercher';
|
||||
window.l.fr.deleteVerb = 'Supprimer';
|
||||
window.l.fr.cancelVerb = 'Annuler';
|
||||
|
@ -230,6 +233,7 @@ window.l.fr.userFollow = 'Suivre';
|
|||
window.l.fr.userFollowing = 'Abonné';
|
||||
window.l.fr.userUnfollow = 'Se désabonner';
|
||||
window.l.fr.joinGroup = 'Rejoindre ce groupe';
|
||||
window.l.fr.joinExternalGroup = 'Rejoindre ce groupe';
|
||||
window.l.fr.isMemberOfGroup = 'Quitter le groupe';
|
||||
window.l.fr.leaveGroup = 'Quitter le groupe';
|
||||
window.l.fr.memberCount = 'Membres';
|
||||
|
@ -322,22 +326,24 @@ window.l.de.shortDateFormatHours = '{hours}h';
|
|||
window.l.de.shortDateFormatDate = '{day}{month}';
|
||||
window.l.de.shortDateFormatDateAndY = '{day}{month} {year}';
|
||||
window.l.de.now = 'jetzt';
|
||||
window.l.de.posting = 'Entsendung';
|
||||
window.l.de.posting = 'wird gesendet';
|
||||
window.l.de.viewMoreInConvBefore = '← Mehr im Gespräch anzeigen';
|
||||
window.l.de.viewMoreInConvAfter = 'Mehr im Gespräch anzeigen →';
|
||||
window.l.de.mentions = 'Erwähnungen';
|
||||
window.l.de.timeline = 'Timeline';
|
||||
window.l.de.publicTimeline = 'Öffentliche Timeline';
|
||||
window.l.de.publicAndExtTimeline = 'Gesamtes bekanntes Netzwerk';
|
||||
window.l.de.searchVerb = 'Suche';
|
||||
window.l.de.deleteVerb = 'Löschen';
|
||||
window.l.de.cancelVerb = 'Abbrechen';
|
||||
window.l.de.deleteConfirmation = 'Bist Du sicher, dass Du diesen Queet löschen möchtest?';
|
||||
window.l.de.userExternalFollow = 'Folgen';
|
||||
window.l.de.userExternalFollowHelp = 'Deine Konto-ID (z.B. user@quitter.se).';
|
||||
window.l.de.userExternalFollowHelp = 'Deine Konto-ID (z.B. user@rainbowdash.net).';
|
||||
window.l.de.userFollow = 'Folgen';
|
||||
window.l.de.userFollowing = 'Folge ich';
|
||||
window.l.de.userUnfollow = 'Entfolgen';
|
||||
window.l.de.joinGroup = 'Der Gruppe beitreten';
|
||||
window.l.de.joinExternalGroup = 'Der Gruppe beitreten';
|
||||
window.l.de.isMemberOfGroup = 'Gruppe verlassen';
|
||||
window.l.de.leaveGroup = 'Gruppe verlassen';
|
||||
window.l.de.memberCount = 'Mitglieder';
|
||||
|
@ -386,7 +392,7 @@ window.l.en.notices = 'Queets';
|
|||
window.l.en.followers = 'Followers';
|
||||
window.l.en.following = 'Following';
|
||||
window.l.en.groups = 'Groups';
|
||||
window.l.en.compose = 'Compose new Queet...';
|
||||
window.l.en.compose = 'Compose a new Queet...';
|
||||
window.l.en.queetVerb = 'Queet';
|
||||
window.l.en.queetsNounPlural = 'Queets';
|
||||
window.l.en.logout = 'Sign out';
|
||||
|
@ -448,16 +454,18 @@ window.l.en.viewMoreInConvAfter = 'View more in conversation →';
|
|||
window.l.en.mentions = 'Mentions';
|
||||
window.l.en.timeline = 'Timeline';
|
||||
window.l.en.publicTimeline = 'Public Timeline';
|
||||
window.l.en.publicAndExtTimeline = 'The whole known network';
|
||||
window.l.en.searchVerb = 'Search';
|
||||
window.l.en.deleteVerb = 'Delete';
|
||||
window.l.en.cancelVerb = 'Cancel';
|
||||
window.l.en.deleteConfirmation = 'Are you sure you want to delete this queet?';
|
||||
window.l.en.userExternalFollow = 'Remote follow';
|
||||
window.l.en.userExternalFollowHelp = 'Your account ID (e.g. user@quitter.se).';
|
||||
window.l.en.userExternalFollowHelp = 'Your account ID (e.g. user@rainbowdash.net).';
|
||||
window.l.en.userFollow = 'Follow';
|
||||
window.l.en.userFollowing = 'Following';
|
||||
window.l.en.userUnfollow = 'Unfollow';
|
||||
window.l.en.joinGroup = 'Join';
|
||||
window.l.en.joinExternalGroup = 'Join remotely';
|
||||
window.l.en.isMemberOfGroup = 'Member';
|
||||
window.l.en.leaveGroup = 'Leave';
|
||||
window.l.en.memberCount = 'Members';
|
||||
|
@ -565,16 +573,18 @@ window.l.sv.viewMoreInConvAfter = 'Visa mer i konversationen →';
|
|||
window.l.sv.mentions = 'Omnämnanden';
|
||||
window.l.sv.timeline = 'Qvitter';
|
||||
window.l.sv.publicTimeline = 'Hela sajtens flöde';
|
||||
window.l.sv.publicAndExtTimeline = 'Hela det kända nätverket';
|
||||
window.l.sv.searchVerb = 'Sök';
|
||||
window.l.sv.deleteVerb = 'Ta bort';
|
||||
window.l.sv.cancelVerb = 'Avbryt';
|
||||
window.l.sv.deleteConfirmation = 'Är du säker på att du vill radera denna queet?';
|
||||
window.l.sv.userExternalFollow = 'Följ externt';
|
||||
window.l.sv.userExternalFollowHelp = 'Ditt konto-ID (ex. user@quitter.se).';
|
||||
window.l.sv.userExternalFollowHelp = 'Ditt konto-ID (ex. user@rainbowdash.net).';
|
||||
window.l.sv.userFollow = 'Följ';
|
||||
window.l.sv.userFollowing = 'Följer';
|
||||
window.l.sv.userUnfollow = 'Avfölj';
|
||||
window.l.sv.joinGroup = 'Gå med';
|
||||
window.l.sv.joinExternalGroup = 'Gå med';
|
||||
window.l.sv.isMemberOfGroup = 'Medlem';
|
||||
window.l.sv.leaveGroup = 'Gå ur';
|
||||
window.l.sv.memberCount = 'Medlemmar';
|
||||
|
@ -674,16 +684,18 @@ window.l.fa.viewMoreInConvAfter = 'نمایش بیشتر در گفتگوه
|
|||
window.l.fa.mentions = 'رونوشتها';
|
||||
window.l.fa.timeline = 'توييت';
|
||||
window.l.fa.publicTimeline = 'خطزمانی عمومی';
|
||||
window.l.fa.publicAndExtTimeline = 'کل شبکه';
|
||||
window.l.fa.searchVerb = 'جستجو';
|
||||
window.l.fa.deleteVerb = 'حذف';
|
||||
window.l.fa.cancelVerb = 'انصراف';
|
||||
window.l.fa.deleteConfirmation = 'آیا مطمئن هستید که میخواهید این توییت را پاک کنید؟';
|
||||
window.l.fa.userExternalFollow = 'دنبال کنید';
|
||||
window.l.fa.userExternalFollowHelp = 'شناسه حساب شما (بعنوان مثال user@quitter.se)';
|
||||
window.l.fa.userExternalFollowHelp = 'شناسه حساب شما (بعنوان مثال user@rainbowdash.net)';
|
||||
window.l.fa.userFollow = 'دنبال کنید';
|
||||
window.l.fa.userFollowing = 'دنبال میکنید';
|
||||
window.l.fa.userUnfollow = 'دنبال نكن';
|
||||
window.l.fa.joinGroup = 'پیوستن به گروه';
|
||||
window.l.fa.joinExternalGroup = 'پیوستن به گروه';
|
||||
window.l.fa.isMemberOfGroup = 'عضو گروه';
|
||||
window.l.fa.leaveGroup = 'ترک گروه';
|
||||
window.l.fa.memberCount = 'اعضا';
|
||||
|
@ -782,16 +794,18 @@ window.l.ar.viewMoreInConvAfter = 'عرض المزيد في المحادثة
|
|||
window.l.ar.mentions = 'الإشارات';
|
||||
window.l.ar.timeline = 'تغريدات';
|
||||
window.l.ar.publicTimeline = 'المسار الزمني العام';
|
||||
window.l.ar.publicAndExtTimeline = 'کل شبكة كاملة';
|
||||
window.l.ar.searchVerb = 'بحث';
|
||||
window.l.ar.deleteVerb = 'حذف';
|
||||
window.l.ar.cancelVerb = 'إلغاء';
|
||||
window.l.ar.deleteConfirmation = 'هل أنت متأكد أنك تريد حذف هذه التغريدة؟';
|
||||
window.l.ar.userExternalFollow = 'تابِع';
|
||||
window.l.ar.userExternalFollowHelp = 'رقم حسابك (على سبيل المثال user@quitter.se)';
|
||||
window.l.ar.userExternalFollowHelp = 'رقم حسابك (على سبيل المثال user@rainbowdash.net)';
|
||||
window.l.ar.userFollow = 'تابِع';
|
||||
window.l.ar.userFollowing = 'مُتابَع';
|
||||
window.l.ar.userUnfollow = 'إلغاء المتابعة';
|
||||
window.l.ar.joinGroup = 'الانضمام إلى المجموعة';
|
||||
window.l.ar.joinExternalGroup = 'الانضمام إلى المجموعة';
|
||||
window.l.ar.isMemberOfGroup = 'مغادرة المجموعة';
|
||||
window.l.ar.leaveGroup = 'مغادرة المجموعة';
|
||||
window.l.ar.memberCount = 'الأعضاء';
|
||||
|
@ -890,16 +904,18 @@ window.l.eo.viewMoreInConvAfter = 'Vidi pli de la konversacio →';
|
|||
window.l.eo.mentions = 'Mencioj';
|
||||
window.l.eo.timeline = 'Kronologio';
|
||||
window.l.eo.publicTimeline = 'Publika kronologio';
|
||||
window.l.eo.publicAndExtTimeline = 'Kronologio de la federaĵon';
|
||||
window.l.eo.searchVerb = 'Serĉi';
|
||||
window.l.eo.deleteVerb = 'Forigi';
|
||||
window.l.eo.cancelVerb = 'Rezigni';
|
||||
window.l.eo.deleteConfirmation = 'Ĉu vi certas, ke vi volas forigi tiun avizon?';
|
||||
window.l.eo.userExternalFollow = 'Sekvi';
|
||||
window.l.eo.userExternalFollowHelp = 'Via konto ID (? I user@quitter.se)';
|
||||
window.l.eo.userExternalFollowHelp = 'Via konto ID (? I user@rainbowdash.net)';
|
||||
window.l.eo.userFollow = 'Sekvi';
|
||||
window.l.eo.userFollowing = 'Sekvanta';
|
||||
window.l.eo.userUnfollow = 'Malsekvi';
|
||||
window.l.eo.joinGroup = 'Membriĝi grupon';
|
||||
window.l.eo.joinExternalGroup = 'Membriĝi grupon';
|
||||
window.l.eo.isMemberOfGroup = 'membro de grupo';
|
||||
window.l.eo.leaveGroup = 'Rezigni grupon';
|
||||
window.l.eo.memberCount = 'Membroj';
|
||||
|
@ -936,25 +952,25 @@ window.l.eo.otherServers = '';
|
|||
// italian
|
||||
window.l.it = new Object();
|
||||
window.l.it.languageName = 'Italiano';
|
||||
window.l.it.loginUsername = 'Nome dell\' utente o indirizzo email';
|
||||
window.l.it.loginUsername = 'Nome Utente o indirizzo email';
|
||||
window.l.it.loginPassword = 'Password';
|
||||
window.l.it.loginSignIn = 'Iniziare la sessione';
|
||||
window.l.it.loginSignIn = 'Accedi';
|
||||
window.l.it.loginRememberMe = 'Ricordami';
|
||||
window.l.it.loginForgotPassword = 'Hai dimenticato la password?';
|
||||
window.l.it.notices = 'Queets';
|
||||
window.l.it.followers = 'Follower';
|
||||
window.l.it.following = 'Following';
|
||||
window.l.it.groups = 'Gruppi';
|
||||
window.l.it.compose = 'Compore un nuovo Queet...';
|
||||
window.l.it.compose = 'Scrivi un nuovo Queet...';
|
||||
window.l.it.queetVerb = 'Quittare';
|
||||
window.l.it.queetsNounPlural = 'Queet';
|
||||
window.l.it.logout = 'Disconnettersi';
|
||||
window.l.it.languageSelected = 'Lingua';
|
||||
window.l.it.viewMyProfilePage = 'Accesso al mio profilo';
|
||||
window.l.it.expand = 'Apri';
|
||||
window.l.it.languageSelected = 'Lingua:';
|
||||
window.l.it.viewMyProfilePage = 'Guarda il mio profilo';
|
||||
window.l.it.expand = 'Espandi';
|
||||
window.l.it.collapse = 'Riduci';
|
||||
window.l.it.details = 'Detagli';
|
||||
window.l.it.expandFullConversation = 'Vedera la conversazione completa';
|
||||
window.l.it.details = 'Dettagli';
|
||||
window.l.it.expandFullConversation = 'Espandi completamente la conversazione';
|
||||
window.l.it.replyVerb = 'Rispondere';
|
||||
window.l.it.requeetVerb = 'Requittare';
|
||||
window.l.it.favoriteVerb = 'Favorire';
|
||||
|
@ -968,30 +984,30 @@ window.l.it.requeetNoun = 'Requeet';
|
|||
window.l.it.requeetsNoun = 'Requeet';
|
||||
window.l.it.newQueet = 'nuovo Queet';
|
||||
window.l.it.newQueets = 'nuovi Queet';
|
||||
window.l.it.longmonthsJanuary = "gennaio";
|
||||
window.l.it.longmonthsFebruary = "febbraio";
|
||||
window.l.it.longmonthsMars = "marzo";
|
||||
window.l.it.longmonthsApril = "aprile";
|
||||
window.l.it.longmonthsMay = "maggio";
|
||||
window.l.it.longmonthsJune = "giugno";
|
||||
window.l.it.longmonthsJuly = "luglio";
|
||||
window.l.it.longmonthsAugust = "agosto";
|
||||
window.l.it.longmonthsSeptember = "settembre";
|
||||
window.l.it.longmonthsOctober = "ottobre";
|
||||
window.l.it.longmonthsNovember = "novembre";
|
||||
window.l.it.longmonthsDecember = "dicembre";
|
||||
window.l.it.shortmonthsJanuary = "gen";
|
||||
window.l.it.shortmonthsFebruary = "feb";
|
||||
window.l.it.shortmonthsMars = "mar";
|
||||
window.l.it.shortmonthsApril = "apr";
|
||||
window.l.it.shortmonthsMay = "mag";
|
||||
window.l.it.shortmonthsJune = "giu";
|
||||
window.l.it.shortmonthsJuly = "lug";
|
||||
window.l.it.shortmonthsAugust = "ago";
|
||||
window.l.it.shortmonthsSeptember = "set";
|
||||
window.l.it.shortmonthsOctober = "ott";
|
||||
window.l.it.shortmonthsNovember = "nov";
|
||||
window.l.it.shortmonthsDecember = "dic";
|
||||
window.l.it.longmonthsJanuary = 'Gennaio';
|
||||
window.l.it.longmonthsFebruary = 'Febbraio';
|
||||
window.l.it.longmonthsMars = 'Marzo';
|
||||
window.l.it.longmonthsApril = 'Aprile';
|
||||
window.l.it.longmonthsMay = 'Maggio';
|
||||
window.l.it.longmonthsJune = 'Giugno';
|
||||
window.l.it.longmonthsJuly = 'Luglio';
|
||||
window.l.it.longmonthsAugust = 'Agosto';
|
||||
window.l.it.longmonthsSeptember = 'Settembre';
|
||||
window.l.it.longmonthsOctober = 'Ottobre';
|
||||
window.l.it.longmonthsNovember = 'Novembre';
|
||||
window.l.it.longmonthsDecember = 'Dicembre';
|
||||
window.l.it.shortmonthsJanuary = 'gen';
|
||||
window.l.it.shortmonthsFebruary = 'feb';
|
||||
window.l.it.shortmonthsMars = 'mar';
|
||||
window.l.it.shortmonthsApril = 'apr';
|
||||
window.l.it.shortmonthsMay = 'mag';
|
||||
window.l.it.shortmonthsJune = 'giu';
|
||||
window.l.it.shortmonthsJuly = 'lug';
|
||||
window.l.it.shortmonthsAugust = 'ago';
|
||||
window.l.it.shortmonthsSeptember = 'set';
|
||||
window.l.it.shortmonthsOctober = 'ott';
|
||||
window.l.it.shortmonthsNovember = 'nov';
|
||||
window.l.it.shortmonthsDecember = 'dic';
|
||||
window.l.it.time12am = '{time} AM';
|
||||
window.l.it.time12pm = '{time} PM';
|
||||
window.l.it.longDateFormat = '{time24} - {day} {month} {year}';
|
||||
|
@ -1007,47 +1023,49 @@ window.l.it.viewMoreInConvAfter = 'Conversazioni successive →';
|
|||
window.l.it.mentions = 'Menzioni';
|
||||
window.l.it.timeline = 'Timeline';
|
||||
window.l.it.publicTimeline = 'Timeline publica';
|
||||
window.l.it.publicAndExtTimeline = 'Timeline della federazione';
|
||||
window.l.it.searchVerb = 'Cercare';
|
||||
window.l.it.deleteVerb = 'Eliminare';
|
||||
window.l.it.cancelVerb = 'Cancellare';
|
||||
window.l.it.cancelVerb = 'Annullare';
|
||||
window.l.it.deleteConfirmation = 'Sei sicuro di volere cancellare questo queet?';
|
||||
window.l.it.userExternalFollow = 'Seguire';
|
||||
window.l.it.userExternalFollowHelp = 'Il tuo ID conto (ad esempio user@quitter.se)';
|
||||
window.l.it.userExternalFollow = 'Seguire Remoto';
|
||||
window.l.it.userExternalFollowHelp = 'L\'ID del tuo account (ad esempio user@rainbowdash.net)';
|
||||
window.l.it.userFollow = 'Seguire';
|
||||
window.l.it.userFollowing = 'Seguendo';
|
||||
window.l.it.userUnfollow = 'Smettere di seguire';
|
||||
window.l.it.joinGroup = 'Aderire al gruppe';
|
||||
window.l.it.joinGroup = 'Unisciti';
|
||||
window.l.it.joinExternalGroup = 'Unisciti';
|
||||
window.l.it.isMemberOfGroup = 'Membro del gruppo';
|
||||
window.l.it.leaveGroup = 'Lasciare il gruppo';
|
||||
window.l.it.memberCount = 'Membri';
|
||||
window.l.it.adminCount = 'Amministratori';
|
||||
window.l.it.settings = 'Configurazione';
|
||||
window.l.it.saveChanges = 'Salvaguardare';
|
||||
window.l.it.settings = 'Opzioni';
|
||||
window.l.it.saveChanges = 'Salva modifiche';
|
||||
window.l.it.linkColor = 'Colore dei link';
|
||||
window.l.it.backgroundColor = 'Colore di sfone';
|
||||
window.l.it.newToQuitter = 'Sei un novizio su Quitter?';
|
||||
window.l.it.backgroundColor = 'Colore dello sfondo';
|
||||
window.l.it.newToQuitter = 'Sei nuovo su Quitter?';
|
||||
window.l.it.signUp = 'Registrati';
|
||||
window.l.it.signUpFullName = 'Nome e cognome';
|
||||
window.l.it.signUpEmail = 'Indirizzo di posta elettronica';
|
||||
window.l.it.signUpButtonText = 'Registrati su Quitter';
|
||||
window.l.it.welcomeHeading = 'Benvenuto Quitter.';
|
||||
window.l.it.welcomeHeading = 'Benvenuto su Quitter.';
|
||||
window.l.it.welcomeText = 'Siamo una <span id="federated-tooltip"><div id="what-is-federation">"Federazione" \
|
||||
significa che non è necessario avere un acconto Quitter per essere in grado di seguire, \
|
||||
essere seguito da, o interagire con gli altri utenti Quitter. Potete registrarvi su \
|
||||
significa che non è necessario avere un account su Quitter per essere in grado di seguire, \
|
||||
essere seguito, o interagire con gli altri utenti Quitter. Potete registrarvi su \
|
||||
qualsiasi server StatusNet, <a href="http://www.gnu.org/software/social/">GNU Social</a>, \
|
||||
o qualsiasi altro servizio basato sul protocollo \
|
||||
<a href="http://www.w3.org/community/ostatus/wiki/Main_Page">OStatus</a>! Non avete \
|
||||
nemmeno bisogno di far parte di un servizio - provate a installare il meraviglioso \
|
||||
software GNU Social sul proprio server! :)</div>federazione</span> di microbloggers \
|
||||
software GNU Social sul vostro server! :-)</div>federazione</span> di microbloggers \
|
||||
che hanno a cuore l\'etica, la solidarietà, e che vogliono uscire dai servizi \
|
||||
centralizzati capitalisti. Esistiamo dal 2010 e saremmo sempre non-profit.';
|
||||
window.l.it.registerNickname = 'Nome dell\' utente';
|
||||
centralizzati capitalisti. Esistiamo dal 2010 e saremo sempre non-profit.';
|
||||
window.l.it.registerNickname = 'Nickname';
|
||||
window.l.it.registerHomepage = 'Sito web';
|
||||
window.l.it.registerBio = 'Biografia';
|
||||
window.l.it.registerLocation = 'Posizione';
|
||||
window.l.it.registerRepeatPassword = 'Ripetere la password';
|
||||
window.l.it.moreSettings = 'Altre configurazioni';
|
||||
window.l.it.otherServers = '';
|
||||
window.l.it.moreSettings = 'Altre opzioni';
|
||||
window.l.it.otherServers = 'In alternativa puoi creare un account su un altro server della rete GNU Social. <a href="http://federation.skilledtests.com/select_your_server.html">Confronto</a>';
|
||||
|
||||
|
||||
// set language, from local storage, else browser language, else english (english also if no localstorage availible)
|
||||
|
@ -1108,4 +1126,6 @@ $('.stream-selection[data-stream-name="favorites.json"]').prepend(window.sL.favo
|
|||
$('.stream-selection[data-stream-name="favorites.json"]').attr('data-stream-header',window.sL.favoritesNoun);
|
||||
$('.stream-selection[data-stream-name="statuses/public_timeline.json"]').prepend(window.sL.publicTimeline);
|
||||
$('.stream-selection[data-stream-name="statuses/public_timeline.json"]').attr('data-stream-header',window.sL.publicTimeline);
|
||||
$('.stream-selection[data-stream-name="statuses/public_and_external_timeline.json?since_id=1"]').prepend(window.sL.publicAndExtTimeline);
|
||||
$('.stream-selection[data-stream-name="statuses/public_and_external_timeline.json?since_id=1"]').attr('data-stream-header',window.sL.publicAndExtTimeline);
|
||||
$('#search-query').attr('placeholder',window.sL.searchVerb);
|
|
@ -416,7 +416,7 @@ function loadHistoryFromLocalStorage() {
|
|||
$('#history-container').html('');
|
||||
var historyContainer = $.parseJSON(localStorage[localStorageName]);
|
||||
$.each(historyContainer, function(key,obj) {
|
||||
$('#history-container').append('<a class="stream-selection" data-stream-header="' + obj.dataStreamHeader + '" href="' + obj.dataStreamHref + '">' + obj.dataStreamHeader + '<i class="close-right"></i><i class="chev-right"></i></a>');
|
||||
$('#history-container').append('<a class="stream-selection" data-stream-header="' + obj.dataStreamHeader + '" href="' + obj.dataStreamHref + '">' + obj.dataStreamHeader + '</i><i class="chev-right"></i></a>');
|
||||
});
|
||||
}
|
||||
updateHistoryLocalStorage();
|
||||
|
@ -518,13 +518,16 @@ function rememberMyScrollPos(obj,id,offset) {
|
|||
function backToMyScrollPos(obj,id,animate,callback) {
|
||||
var pos = obj.offset().top-window.scrollpositions[id];
|
||||
if(animate) {
|
||||
if(animate == 'animate' || animate === true) {
|
||||
animate = 1000;
|
||||
}
|
||||
if(typeof callback !== 'undefined'){
|
||||
$('html, body').animate({ scrollTop: pos}, 1000, 'easeOutExpo',function(){
|
||||
$('html, body').animate({ scrollTop: pos}, animate, 'linear',function(){
|
||||
callback();
|
||||
});
|
||||
}
|
||||
else {
|
||||
$('html, body').animate({ scrollTop: pos }, 1000, 'easeOutExpo');
|
||||
$('html, body').animate({ scrollTop: pos }, animate, 'linear');
|
||||
}
|
||||
}
|
||||
else {
|
|
@ -33,6 +33,8 @@
|
|||
· ·
|
||||
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
|
||||
|
||||
// object to keep old states of streams in, to speed up stream change
|
||||
window.oldStreams = new Object();
|
||||
|
||||
|
||||
/* ·
|
||||
|
@ -95,7 +97,6 @@ $('#what-is-federation').on('mouseleave',function(){
|
|||
$('.front-signup input, .front-signup button').removeAttr('disabled'); // clear this onload
|
||||
$('#signup-btn-step1').click(function(){
|
||||
|
||||
|
||||
display_spinner();
|
||||
$('.front-signup input, .front-signup button').addClass('disabled');
|
||||
$('.front-signup input, .front-signup button').attr('disabled','disabled');
|
||||
|
@ -256,15 +257,12 @@ $(window).load(function() {
|
|||
$('input#username').val(localStorage.autologinUsername);
|
||||
$('input#password').val(localStorage.autologinPassword);
|
||||
|
||||
// if this is a special url for user, notice etc, grab that stream
|
||||
var streamToSet = getStreamFromUrl();
|
||||
|
||||
// if we're in client mode, i.e. not webapp mode, always go to friends timeline if logged in
|
||||
if(window.useHistoryPushState === false) {
|
||||
streamToSet = 'statuses/friends_timeline.json';
|
||||
}
|
||||
|
||||
doLogin(streamToSet);
|
||||
doLogin("get stream from url");
|
||||
}
|
||||
else {
|
||||
display_spinner();
|
||||
|
@ -286,11 +284,11 @@ $(window).load(function() {
|
|||
|
||||
$('#submit-login').click(function () {
|
||||
|
||||
// if this is a special url for user, notice etc, grab that stream
|
||||
var streamToSet = getStreamFromUrl();
|
||||
// if this is a special url for user, notice etc, grab that stream (UGLY SORRRRRY)
|
||||
var streamToSet = "get stream from url";
|
||||
|
||||
// if this is the public feed, we redirect to friends_timline (I think that's intuitive)
|
||||
if(streamToSet == 'statuses/public_timeline.json') {
|
||||
if(getStreamFromUrl() == 'statuses/public_timeline.json') {
|
||||
streamToSet = 'statuses/friends_timeline.json';
|
||||
}
|
||||
|
||||
|
@ -311,6 +309,11 @@ function doLogin(streamToSet) {
|
|||
window.loginUsername = user.screen_name;
|
||||
window.loginPassword = $('input#password').val();
|
||||
|
||||
// maybe get stream from url (UGLY SORRRRRY)
|
||||
if(streamToSet == "get stream from url") {
|
||||
streamToSet = getStreamFromUrl(); // called now becuase we want window.loginUsername to be set first...
|
||||
}
|
||||
|
||||
// set colors if the api supports it
|
||||
if(typeof user.linkcolor != 'undefined' &&
|
||||
typeof user.backgroundcolor != 'undefined') {
|
||||
|
@ -573,7 +576,7 @@ $('#settingslink').click(function(){
|
|||
|
||||
/* ·
|
||||
·
|
||||
· When clicking a follow button
|
||||
· When clicking a external follow button
|
||||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
|
@ -586,6 +589,21 @@ $('body').on('click','.external-follow-button',function(event){
|
|||
});
|
||||
});
|
||||
|
||||
/* ·
|
||||
·
|
||||
· When clicking a external join button
|
||||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
|
||||
$('body').on('click','.external-member-button',function(event){
|
||||
popUpAction('popup-external-join', window.sL.joinExternalGroup + ' ' + $('.profile-card-inner .screen-name').html(),'<form method="post" action="' + window.siteInstanceURL.replace('https://','http://') + 'main/ostatus"><input type="hidden" id="group" name="group" value="' + $('.profile-card-inner .screen-name').html().substring(1) + '"><input type="text" id="profile" name="profile" placeholder="' + window.sL.userExternalFollowHelp + '" /></form>','<div class="right"><button class="close">' + window.sL.cancelVerb + '</button><button class="primary">' + window.sL.userExternalFollow + '</button></div>');
|
||||
$('#popup-external-join form input#profile').focus();
|
||||
$('#popup-external-join button.primary').click(function(){
|
||||
$('#popup-external-join form').submit();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('body').on('click','.follow-button',function(event){
|
||||
|
@ -760,7 +778,7 @@ $(document).on('click','a', function(e) {
|
|||
}
|
||||
|
||||
// ugly fix: if this is the x remove users from history, prevent link but don't set a new currentstream
|
||||
if($(e.target).is('i.close-right')) {
|
||||
if($(e.target).is('i.chev-right')) {
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
@ -774,6 +792,11 @@ $(document).on('click','a', function(e) {
|
|||
e.preventDefault();
|
||||
setNewCurrentStream('statuses/public_timeline.json',function(){},true);
|
||||
}
|
||||
// whole network feed
|
||||
else if($(this).attr('href').replace('http://','').replace('https://','').replace(window.siteRootDomain,'') == '/main/all') {
|
||||
e.preventDefault();
|
||||
setNewCurrentStream('statuses/public_and_external_timeline.json?since_id=1',function(){},true);
|
||||
}
|
||||
// logged in users streams
|
||||
else if ($(this).attr('href').replace('http://','').replace('https://','').replace(window.siteRootDomain + '/' + window.loginUsername,'') == '/all') {
|
||||
e.preventDefault();
|
||||
|
@ -811,7 +834,7 @@ $(document).on('click','a', function(e) {
|
|||
// tags
|
||||
else if ($(this).attr('href').indexOf(window.siteRootDomain + '/tag/')>-1) {
|
||||
e.preventDefault();
|
||||
setNewCurrentStream('statusnet/tags/timeline/' + $(this).text().toLowerCase() + '.json',function(){},true);
|
||||
setNewCurrentStream('statusnet/tags/timeline/' + $(this).text().toLowerCase().replace('#','') + '.json',function(){},true);
|
||||
}
|
||||
// groups
|
||||
else if (/^[0-9]+$/.test($(this).attr('href').replace('http://','').replace('https://','').replace(window.siteRootDomain + '/group/','').replace('/id',''))) {
|
||||
|
@ -965,7 +988,7 @@ $(document).on('click','a', function(e) {
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('body').on('click','.close-right',function(event){
|
||||
$('body').on('click','#history-container .chev-right',function(event){
|
||||
$(this).parent('.stream-selection').remove();
|
||||
updateHistoryLocalStorage();
|
||||
});
|
||||
|
@ -1119,7 +1142,7 @@ function checkForNewQueets() {
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#feed').on('click','#new-queets-bar',function(){
|
||||
$('body').on('click','#new-queets-bar',function(){
|
||||
document.title = window.siteTitle;
|
||||
$('.stream-item.hidden').css('opacity','0')
|
||||
$('.stream-item.hidden').animate({opacity:'1'}, 200);
|
||||
|
@ -1136,7 +1159,7 @@ $('#feed').on('click','#new-queets-bar',function(){
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#feed-body').on('click','.queet',function (event) {
|
||||
$('body').on('click','.queet',function (event) {
|
||||
if(!$(event.target).is('a')
|
||||
&& !$(event.target).is('.CodeMirror-scroll')
|
||||
&& !$(event.target).is('.cm-mention')
|
||||
|
@ -1196,7 +1219,7 @@ $(document).keyup(function(e){
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#feed').on('click','.action-del-container',function(){
|
||||
$('body').on('click','.action-del-container',function(){
|
||||
var this_stream_item = $(this).parent().parent().parent().parent().parent();
|
||||
var this_qid = this_stream_item.attr('data-quitter-id');
|
||||
var $queetHtml = $('<div>').append(this_stream_item.html());
|
||||
|
@ -1233,7 +1256,7 @@ $('#feed').on('click','.action-del-container',function(){
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#feed').on('click','.action-rt-container',function(){
|
||||
$('body').on('click','.action-rt-container',function(){
|
||||
var this_stream_item = $(this).parent().parent().parent().parent().parent();
|
||||
var this_action = $(this);
|
||||
|
||||
|
@ -1289,7 +1312,7 @@ $('#feed').on('click','.action-rt-container',function(){
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#feed').on('click','.action-fav-container',function(){
|
||||
$('body').on('click','.action-fav-container',function(){
|
||||
var this_stream_item = $(this).parent().parent().parent().parent().parent();
|
||||
var this_action = $(this);
|
||||
|
||||
|
@ -1344,7 +1367,7 @@ $('#feed').on('click','.action-fav-container',function(){
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#feed').on('click','.action-reply-container',function(){
|
||||
$('body').on('click','.action-reply-container',function(){
|
||||
var this_stream_item = $(this).closest('.stream-item');
|
||||
var this_stream_item_id = this_stream_item.attr('data-quitter-id');
|
||||
|
||||
|
@ -1401,7 +1424,7 @@ $(document).keyup(function(e){
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#feed').on('click','.queet-box-template',function(){
|
||||
$('body').on('click','.queet-box-template',function(){
|
||||
// expand inline queet box
|
||||
expandInlineQueetBox($(this));
|
||||
});
|
||||
|
@ -1430,19 +1453,30 @@ $('body').on('click', '.queet-toolbar button',function () {
|
|||
var queetBoxID = $(this).parent().parent().parent().find('.queet-box-template').attr('id');
|
||||
|
||||
var queetText = window['codemirror-' + queetBoxID].getValue();
|
||||
var queetHtml = '<div id="' + tempPostId + '" class="stream-item conversation temp-post" style="opacity:1"><div class="queet"><span class="dogear"></span><div class="queet-content"><div class="stream-item-header"><a class="account-group"><img class="avatar" src="' + $('#user-avatar').attr('src') + '" /><strong class="name">' + $('#user-name').html() + '</strong> <span class="screen-name">@' + $('#user-screen-name').html() + '</span></a><small class="created-at">posting</small></div><div class="queet-text">' + queetText + '</div><div class="stream-item-footer"><span class="stream-item-expand"> </span></div></div></div></div>';
|
||||
queetHtml = detectRTL(queetHtml);
|
||||
|
||||
|
||||
// get reply to id and add temp queet
|
||||
if($('.modal-container').find('.queet-toolbar button').length>0) { // from popup
|
||||
var in_reply_to_status_id = $('.modal-container').attr('id').substring(12); // removes "popup-reply-" from popups id
|
||||
$('.modal-container').remove();
|
||||
var queetHtml = '<div id="' + tempPostId + '" class="stream-item temp-post" style="opacity:1"><div class="queet"><span class="dogear"></span><div class="queet-content"><div class="stream-item-header"><a class="account-group"><img class="avatar" src="' + $('#user-avatar').attr('src') + '" /><strong class="name">' + $('#user-name').html() + '</strong> <span class="screen-name">@' + $('#user-screen-name').html() + '</span></a><small class="created-at">posting</small></div><div class="queet-text">' + queetText + '</div><div class="stream-item-footer"><span class="stream-item-expand"> </span></div></div></div></div>';
|
||||
queetHtml = detectRTL(queetHtml);
|
||||
$('#feed-body').prepend(queetHtml);
|
||||
|
||||
// try to find an expanded queet to add the temp queet to
|
||||
if($('.stream-item.expanded[data-quitter-id="' + in_reply_to_status_id + '"]').length > 0) {
|
||||
$('.stream-item.expanded[data-quitter-id="' + in_reply_to_status_id + '"]').append(queetHtml);
|
||||
}
|
||||
else if($('.stream-item.conversation[data-quitter-id="' + in_reply_to_status_id + '"]').not('.hidden-conversation').length > 0) {
|
||||
$('.stream-item.conversation[data-quitter-id="' + in_reply_to_status_id + '"]').not('.hidden-conversation').parent().append(queetHtml);
|
||||
}
|
||||
// if we cant find a proper place, just add it to top and remove conversation class
|
||||
else {
|
||||
$('#feed-body').prepend(queetHtml.replace('class="stream-item conversation','class="stream-item'));
|
||||
}
|
||||
}
|
||||
else { // from inline reply
|
||||
var in_reply_to_status_id = $(this).parent().parent().parent().parent().parent().attr('data-quitter-id');
|
||||
var queetHtml = '<div id="' + tempPostId + '" class="stream-item conversation temp-post" style="opacity:1"><div class="queet"><span class="dogear"></span><div class="queet-content"><div class="stream-item-header"><a class="account-group"><img class="avatar" src="' + $('#user-avatar').attr('src') + '" /><strong class="name">' + $('#user-name').html() + '</strong> <span class="screen-name">@' + $('#user-screen-name').html() + '</span></a><small class="created-at">posting</small></div><div class="queet-text">' + queetText + '</div><div class="stream-item-footer"><span class="stream-item-expand"> </span></div></div></div></div>';
|
||||
queetHtml = detectRTL(queetHtml);
|
||||
$(this).parent().parent().parent().parent().parent().append(queetHtml);
|
||||
}
|
||||
|
||||
|
@ -1657,7 +1691,7 @@ codemirrorQueetBox.on("blur", function(){
|
|||
// shortenUrlsInBox($('#queet-box'),$('#queet-counter'),$('#queet-toolbar button'));
|
||||
// }
|
||||
// });
|
||||
// $('#feed').on('keyup','.queet-box-template',function(e){
|
||||
// $('body').on('keyup','.queet-box-template',function(e){
|
||||
// if(e.keyCode == 32) {
|
||||
// shortenUrlsInBox($(this),$(this).find('.queet-counter'),$(this).find('.queet-toolbar button'));
|
||||
// }
|
||||
|
@ -1670,11 +1704,11 @@ codemirrorQueetBox.on("blur", function(){
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#feed').on('click','.view-more-container-bottom', function(){
|
||||
$('body').on('click','.view-more-container-bottom', function(){
|
||||
findReplyToStatusAndShow($(this).parent('.stream-item').attr('data-quitter-id'),$(this).attr('data-replies-after'));
|
||||
$(this).remove();
|
||||
});
|
||||
$('#feed').on('click','.view-more-container-top', function(){
|
||||
$('body').on('click','.view-more-container-top', function(){
|
||||
|
||||
var this_qid = $(this).closest('.stream-item:not(.conversation)').attr('data-quitter-id');
|
||||
var queet = $(this).siblings('.queet');
|
||||
|
@ -1700,7 +1734,7 @@ $('#feed').on('click','.view-more-container-top', function(){
|
|||
·
|
||||
· · · · · · · · · · · · · */
|
||||
|
||||
$('#feed').on('click','.show-full-conversation',function(){
|
||||
$('body').on('click','.show-full-conversation',function(){
|
||||
|
||||
var this_q = $(this).closest('.queet');
|
||||
var this_qid = $(this).closest('.stream-item:not(.conversation)').attr('data-quitter-id');
|
||||
|
@ -1719,3 +1753,4 @@ $('#feed').on('click','.show-full-conversation',function(){
|
|||
|
||||
backToMyScrollPos(this_q,this_qid,false);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user