mirror of
https://github.com/friendica/friendica
synced 2024-12-22 16:40:16 +00:00
Merge branch '2019.01-rc' into bug/6334-escape-get-app
This commit is contained in:
commit
e447375cdd
27 changed files with 136 additions and 72 deletions
4
boot.php
4
boot.php
|
@ -35,7 +35,7 @@ use Friendica\Util\DateTimeFormat;
|
|||
|
||||
define('FRIENDICA_PLATFORM', 'Friendica');
|
||||
define('FRIENDICA_CODENAME', 'The Tazmans Flax-lily');
|
||||
define('FRIENDICA_VERSION', '2018.12-rc');
|
||||
define('FRIENDICA_VERSION', '2019.01-rc');
|
||||
define('DFRN_PROTOCOL_VERSION', '2.23');
|
||||
define('NEW_UPDATE_ROUTINE_VERSION', 1170);
|
||||
|
||||
|
@ -870,4 +870,4 @@ function rdirname($path, $levels = 1)
|
|||
} else {
|
||||
return dirname($path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ Nutzer
|
|||
* **[Warum erhalte ich Warnungen über fehlende Zertifikate?](help/FAQ#ssl)**
|
||||
* **[Wie kann ich Bilder, Dateien, Links, Video und Audio in Beiträge einfügen?](help/FAQ#upload)**
|
||||
* **[Ist es möglich, bei mehreren Profilen verschiedene Avatare (Nutzerbilder) zu haben?](help/FAQ#avatars)**
|
||||
* **[Wie kann ich Friendica in einer bestimmten Sprache ansehen?](help/FAQ#language)**
|
||||
* **[Was ist der Unterschied zwischen blockierten|ignorierten|archivierten|versteckten Kontakten?](help/FAQ#contacts)**
|
||||
* **[Was passiert, wenn ein Account gelöscht ist? Ist dieser richtig gelöscht?](help/FAQ#removed)**
|
||||
* **[Kann ich einem Hashtag folgen?](help/FAQ#hashtag)**
|
||||
|
@ -90,6 +91,31 @@ Anschließend siehst Du eine Seite mit allen Infos zu diesem Profil.
|
|||
Klicke nun oben auf den Link "Profilbild ändern" und lade im nächsten Fenster ein Bild von Deinem PC hoch.
|
||||
Um Deine privaten Daten zu schützen, wird in Beiträgen nur das Bild aus Deinem öffentlichen Profil angezeigt.
|
||||
|
||||
<a name="language"></a>
|
||||
### Wie kann ich Friendica in einer bestimmten Sprache ansehen?
|
||||
|
||||
Die Sprache des Friendica Interfaces kann durch den `lang` Parameter un der URL beeinflusst werden.
|
||||
Das Argument des Parameters ist ein [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) Code.
|
||||
Zwischen der URL und dem Parameter muss ein Fragezeichen als Trennzeichen verwendet werden.
|
||||
|
||||
Ein Beispiel:
|
||||
|
||||
https://social.example.com/profile/example
|
||||
|
||||
auf Deutsch:
|
||||
|
||||
https://social.example.com/profile/example?lang=de.
|
||||
|
||||
Wenn das Fragezeichen bereits in der URL verwendet wird, werden die einzelnen URL Parameter mit einem kaufmännischen Und getrennt werden.
|
||||
|
||||
Ein Beispiel:
|
||||
|
||||
https://social.example.com/profile/example?tab=profile
|
||||
|
||||
auf Deutsch:
|
||||
|
||||
https://social.example.com/profile/example?tab=profile&lang=de.
|
||||
|
||||
<a name="contacts"></a>
|
||||
### Was ist der Unterschied zwischen blockierten|ignorierten|archivierten|versteckten Kontakten?
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ Thank you for your interest in improving Friendica's translation!
|
|||
Please register a free Transifex account and ask over at [the Transifex Friendica page](https://www.transifex.com/Friendica/friendica/dashboard/) to join the translation team for your favorite language.
|
||||
|
||||
As a rule of thumb, we add support for a language in Friendica when at least 50% of the strings have been translated to avoid a scattered experience.
|
||||
For addons, we add support for a language when all the strings for this addon have been translated and only if we already support the language in Friendica.
|
||||
For addons, we add support for a language when if we already support the language in Friendica.
|
||||
|
||||
## Add new translation strings
|
||||
|
||||
|
|
|
@ -1752,7 +1752,7 @@ function admin_page_users_post(App $a)
|
|||
Thank you and welcome to %4$s.'));
|
||||
|
||||
$preamble = sprintf($preamble, $user['username'], Config::get('config', 'sitename'));
|
||||
$body = sprintf($body, System::baseUrl(), $user['email'], $result['password'], Config::get('config', 'sitename'));
|
||||
$body = sprintf($body, System::baseUrl(), $user['nickname'], $result['password'], Config::get('config', 'sitename'));
|
||||
|
||||
notification([
|
||||
'type' => SYSTEM_EMAIL,
|
||||
|
|
|
@ -21,7 +21,7 @@ function lostpass_post(App $a)
|
|||
}
|
||||
|
||||
$condition = ['(`email` = ? OR `nickname` = ?) AND `verified` = 1 AND `blocked` = 0', $loginame, $loginame];
|
||||
$user = DBA::selectFirst('user', ['uid', 'username', 'email', 'language'], $condition);
|
||||
$user = DBA::selectFirst('user', ['uid', 'username', 'nickname', 'email', 'language'], $condition);
|
||||
if (!DBA::isResult($user)) {
|
||||
notice(L10n::t('No valid account found.') . EOL);
|
||||
$a->internalRedirect();
|
||||
|
@ -63,7 +63,7 @@ function lostpass_post(App $a)
|
|||
The login details are as follows:
|
||||
|
||||
Site Location: %2$s
|
||||
Login Name: %3$s', $resetlink, System::baseUrl(), $user['email']));
|
||||
Login Name: %3$s', $resetlink, System::baseUrl(), $user['nickname']));
|
||||
|
||||
notification([
|
||||
'type' => SYSTEM_EMAIL,
|
||||
|
@ -85,7 +85,7 @@ function lostpass_content(App $a)
|
|||
if ($a->argc > 1) {
|
||||
$pwdreset_token = $a->argv[1];
|
||||
|
||||
$user = DBA::selectFirst('user', ['uid', 'username', 'email', 'pwdreset_time', 'language'], ['pwdreset' => $pwdreset_token]);
|
||||
$user = DBA::selectFirst('user', ['uid', 'username', 'nickname', 'email', 'pwdreset_time', 'language'], ['pwdreset' => $pwdreset_token]);
|
||||
if (!DBA::isResult($user)) {
|
||||
notice(L10n::t("Request could not be verified. \x28You may have previously submitted it.\x29 Password reset failed."));
|
||||
|
||||
|
@ -161,7 +161,7 @@ function lostpass_generate_password($user)
|
|||
Password: %3$s
|
||||
|
||||
You may change that password from your account settings page after logging in.
|
||||
', System::baseUrl(), $user['email'], $new_password));
|
||||
', System::baseUrl(), $user['nickname'], $new_password));
|
||||
|
||||
notification([
|
||||
'type' => SYSTEM_EMAIL,
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
namespace Friendica\Core;
|
||||
|
||||
use Friendica\BaseObject;
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\System;
|
||||
|
||||
|
@ -191,11 +192,16 @@ class Theme
|
|||
*/
|
||||
public static function getStylesheetPath($theme)
|
||||
{
|
||||
$a = \get_app();
|
||||
$a = BaseObject::getApp();
|
||||
|
||||
$opts = (($a->profile_uid) ? '?f=&puid=' . $a->profile_uid : '');
|
||||
if (file_exists('view/theme/' . $theme . '/style.php')) {
|
||||
return 'view/theme/' . $theme . '/style.pcss' . $opts;
|
||||
if ($a->is_mobile) {
|
||||
// Workaround for iOS Safari not sending the cookie for static files
|
||||
return 'view/theme/' . $theme . '/style' . $opts;
|
||||
} else {
|
||||
return 'view/theme/' . $theme . '/style.pcss' . $opts;
|
||||
}
|
||||
}
|
||||
|
||||
return 'view/theme/' . $theme . '/style.css';
|
||||
|
|
|
@ -61,7 +61,7 @@ class APContact extends BaseObject
|
|||
* Fetches a profile from a given url
|
||||
*
|
||||
* @param string $url profile url
|
||||
* @param boolean $update true = always update, false = never update, null = update when not found
|
||||
* @param boolean $update true = always update, false = never update, null = update when not found or outdated
|
||||
* @return array profile array
|
||||
*/
|
||||
public static function getByURL($url, $update = null)
|
||||
|
@ -71,18 +71,22 @@ class APContact extends BaseObject
|
|||
}
|
||||
|
||||
if (empty($update)) {
|
||||
if (is_null($update)) {
|
||||
$ref_update = DateTimeFormat::utc('now - 1 month');
|
||||
} else {
|
||||
$ref_update = DBA::NULL_DATETIME;
|
||||
}
|
||||
|
||||
$apcontact = DBA::selectFirst('apcontact', [], ['url' => $url]);
|
||||
if (DBA::isResult($apcontact)) {
|
||||
return $apcontact;
|
||||
if (!DBA::isResult($apcontact)) {
|
||||
$apcontact = DBA::selectFirst('apcontact', [], ['alias' => $url]);
|
||||
}
|
||||
|
||||
$apcontact = DBA::selectFirst('apcontact', [], ['alias' => $url]);
|
||||
if (DBA::isResult($apcontact)) {
|
||||
return $apcontact;
|
||||
if (!DBA::isResult($apcontact)) {
|
||||
$apcontact = DBA::selectFirst('apcontact', [], ['addr' => $url]);
|
||||
}
|
||||
|
||||
$apcontact = DBA::selectFirst('apcontact', [], ['addr' => $url]);
|
||||
if (DBA::isResult($apcontact)) {
|
||||
if (DBA::isResult($apcontact) && ($apcontact['updated'] > $ref_update)) {
|
||||
return $apcontact;
|
||||
}
|
||||
|
||||
|
@ -185,6 +189,22 @@ class APContact extends BaseObject
|
|||
|
||||
// Update some data in the contact table with various ways to catch them all
|
||||
$contact_fields = ['name' => $apcontact['name'], 'about' => $apcontact['about']];
|
||||
|
||||
// Fetch the type and match it with the contact type
|
||||
$contact_types = array_keys(ActivityPub::ACCOUNT_TYPES, $apcontact['type']);
|
||||
if (!empty($contact_types)) {
|
||||
$contact_type = array_pop($contact_types);
|
||||
if (is_int($contact_type)) {
|
||||
$contact_fields['contact-type'] = $contact_type;
|
||||
|
||||
// Resetting the 'forum' and 'prv' field when it isn't a forum
|
||||
if ($contact_fields['contact-type'] != Contact::ACCOUNT_TYPE_COMMUNITY) {
|
||||
$contact_fields['forum'] = false;
|
||||
$contact_fields['prv'] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DBA::update('contact', $contact_fields, ['nurl' => Strings::normaliseLink($url)]);
|
||||
|
||||
$contacts = DBA::select('contact', ['uid', 'id'], ['nurl' => Strings::normaliseLink($url)]);
|
||||
|
@ -194,6 +214,9 @@ class APContact extends BaseObject
|
|||
DBA::close($contacts);
|
||||
|
||||
// Update the gcontact table
|
||||
// These two fields don't exist in the gcontact table
|
||||
unset($contact_fields['forum']);
|
||||
unset($contact_fields['prv']);
|
||||
DBA::update('gcontact', $contact_fields, ['nurl' => Strings::normaliseLink($url)]);
|
||||
|
||||
Logger::log('Updated profile for ' . $url, Logger::DEBUG);
|
||||
|
|
|
@ -514,6 +514,10 @@ class Profile
|
|||
$p['address'] = $p['location'];
|
||||
}
|
||||
|
||||
if (isset($p['address'])) {
|
||||
$p['address'] = BBCode::convert($p['address']);
|
||||
}
|
||||
|
||||
if (isset($p['photo'])) {
|
||||
$p['photo'] = ProxyUtils::proxifyUrl($p['photo'], false, ProxyUtils::SIZE_SMALL);
|
||||
}
|
||||
|
|
|
@ -771,7 +771,7 @@ class User
|
|||
If you ever want to delete your account, you can do so at %3$s/removeme
|
||||
|
||||
Thank you and welcome to %2$s.',
|
||||
$user['email'], $sitename, $siteurl, $user['username'], $password
|
||||
$user['nickname'], $sitename, $siteurl, $user['username'], $password
|
||||
));
|
||||
|
||||
return notification([
|
||||
|
|
|
@ -642,7 +642,7 @@ class Contact extends BaseModule
|
|||
'$profileurllabel'=> L10n::t('Profile URL'),
|
||||
'$profileurl' => $contact['url'],
|
||||
'$account_type' => Model\Contact::getAccountType($contact),
|
||||
'$location' => $contact['location'],
|
||||
'$location' => BBCode::convert($contact['location']),
|
||||
'$location_label' => L10n::t('Location:'),
|
||||
'$xmpp' => BBCode::convert($contact['xmpp']),
|
||||
'$xmpp_label' => L10n::t('XMPP:'),
|
||||
|
|
|
@ -1326,15 +1326,8 @@ class Diaspora
|
|||
$x = false;
|
||||
}
|
||||
|
||||
// This will work for older Diaspora and Friendica servers
|
||||
if (!$x) {
|
||||
$source_url = $server."/p/".urlencode($guid).".xml";
|
||||
Logger::log("Fetch post from ".$source_url, Logger::DEBUG);
|
||||
|
||||
$x = Network::fetchUrl($source_url);
|
||||
if (!$x) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
$source_xml = XML::parseString($x);
|
||||
|
|
|
@ -1228,7 +1228,7 @@ class OStatus
|
|||
{
|
||||
$siteinfo = BBCode::getAttachedData($body);
|
||||
|
||||
if (($siteinfo["type"] == "photo")) {
|
||||
if (($siteinfo["type"] == "photo") && (!empty($siteinfo["preview"]) || !empty($siteinfo["image"]))) {
|
||||
if (isset($siteinfo["preview"])) {
|
||||
$preview = $siteinfo["preview"];
|
||||
} else {
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
|
||||
{{* Some information about the contact from the profile *}}
|
||||
<dl><dt>{{$profileurllabel}}</dt><dd><a target="blank" href="{{$url}}">{{$profileurl}}</a></dd></dl>
|
||||
{{if $location}}<dl><dt>{{$location_label}}</dt><dd>{{$location}}</dd></dl>{{/if}}
|
||||
{{if $location}}<dl><dt>{{$location_label}}</dt><dd>{{$location nofilter}}</dd></dl>{{/if}}
|
||||
{{if $xmpp}}<dl><dt>{{$xmpp_label}}</dt><dd>{{$xmpp}}</dd></dl>{{/if}}
|
||||
{{if $keywords}}<dl><dt>{{$keywords_label}}</dt><dd>{{$keywords}}</dd></dl>{{/if}}
|
||||
{{if $about}}<dl><dt>{{$about_label}}</dt><dd>{{$about nofilter}}</dd></dl>{{/if}}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<link rel="manifest" href="{{$baseurl}}/manifest" />
|
||||
<script>
|
||||
// Prevents links to switch to Safari in a home screen app - see https://gist.github.com/irae/1042167
|
||||
(function(a,b,c){if(c in b&&b[c]){var d,e=a.location,f=/^(a|html)$/i;a.addEventListener("click",function(a){d=a.target;while(!f.test(d.nodeName))d=d.parentNode;"href"in d&&(chref=d.href).replace(e.href,"").indexOf("#")&&(!/^[a-z\+\.\-]+:/i.test(chref)||chref.indexOf(e.protocol+"//"+e.host)===0)&&(a.preventDefault(),e.href=d.href)},!1)}})(document,window.navigator,"standalone");
|
||||
(function(a,b,c){if(c in b&&b[c]){var d,e=a.location,f=/^(a|html)$/i;a.addEventListener("click",function(a){d=a.target;while(!f.test(d.nodeName))d=d.parentNode;"href"in d&&(chref=d.href).replace("{{$baseurl}}/", "").replace(e.href,"").indexOf("#")&&(!/^[a-z\+\.\-]+:/i.test(chref)||chref.indexOf(e.protocol+"//"+e.host)===0)&&(a.preventDefault(),e.href=d.href)},!1)}})(document,window.navigator,"standalone");
|
||||
</script>
|
||||
|
||||
<link rel="search"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
{{if $location}}
|
||||
<dl class="location"><dt class="location-label">{{$location}}</dt>
|
||||
<dd class="adr h-adr">
|
||||
{{if $profile.address}}<div class="street-address p-street-address">{{$profile.address}}</div>{{/if}}
|
||||
{{if $profile.address}}<div class="street-address p-street-address">{{$profile.address nofilter}}</div>{{/if}}
|
||||
<span class="city-state-zip">
|
||||
<span class="locality p-locality">{{$profile.locality}}</span>{{if $profile.locality}}, {{/if}}
|
||||
<span class="region p-region">{{$profile.region}}</span>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
{{if $location}}
|
||||
<dl class="location"><dt class="location-label">{{$location}}</dt>
|
||||
<dd class="adr h-adr">
|
||||
{{if $profile.address}}<div class="street-address p-street-address">{{$profile.address}}</div>{{/if}}
|
||||
{{if $profile.address}}<div class="street-address p-street-address">{{$profile.address nofilter}}</div>{{/if}}
|
||||
<span class="city-state-zip">
|
||||
<span class="locality p-locality">{{$profile.locality}}</span>{{if $profile.locality}}, {{/if}}
|
||||
<span class="region p-region">{{$profile.region}}</span>
|
||||
|
|
|
@ -2087,8 +2087,8 @@ ul.dropdown-menu li:hover {
|
|||
}
|
||||
|
||||
/* Notificaiotn badges */
|
||||
.nav-notify .show {
|
||||
display: block;
|
||||
#mail-update-li.show {
|
||||
display: inline-block!important;
|
||||
}
|
||||
|
||||
/* Media Classes */
|
||||
|
|
|
@ -439,10 +439,10 @@ function justifyPhotos() {
|
|||
margins: 3,
|
||||
border: 0,
|
||||
sizeRangeSuffixes: {
|
||||
'lt100': '-2',
|
||||
'lt240': '-2',
|
||||
'lt48': '-6',
|
||||
'lt80': '-5',
|
||||
'lt300': '-4',
|
||||
'lt320': '-2',
|
||||
'lt500': '',
|
||||
'lt640': '-1',
|
||||
'lt1024': '-0'
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<hr class="profile-separator">
|
||||
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12 text-muted">{{$location_label}}</div>
|
||||
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-12">{{$location}}</div>
|
||||
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-12">{{$location nofilter}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
<link rel="manifest" href="{{$baseurl}}/manifest" />
|
||||
<script type="text/javascript">
|
||||
// Prevents links to switch to Safari in a home screen app - see https://gist.github.com/irae/1042167
|
||||
(function(a,b,c){if(c in b&&b[c]){var d,e=a.location,f=/^(a|html)$/i;a.addEventListener("click",function(a){d=a.target;while(!f.test(d.nodeName))d=d.parentNode;"href"in d&&(chref=d.href).replace(e.href,"").indexOf("#")&&(!/^[a-z\+\.\-]+:/i.test(chref)||chref.indexOf(e.protocol+"//"+e.host)===0)&&(a.preventDefault(),e.href=d.href)},!1)}})(document,window.navigator,"standalone");
|
||||
(function(a,b,c){if(c in b&&b[c]){var d,e=a.location,f=/^(a|html)$/i;a.addEventListener("click",function(a){d=a.target;while(!f.test(d.nodeName))d=d.parentNode;"href"in d&&(chref=d.href).replace("{{$baseurl}}/", "").replace(e.href,"").indexOf("#")&&(!/^[a-z\+\.\-]+:/i.test(chref)||chref.indexOf(e.protocol+"//"+e.host)===0)&&(a.preventDefault(),e.href=d.href)},!1)}})(document,window.navigator,"standalone");
|
||||
</script>
|
||||
|
||||
<link rel="search"
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
<div class="location detail">
|
||||
<span class="location-label icon"><i class="fa fa-map-marker"></i></span>
|
||||
<span class="adr">
|
||||
{{if $profile.address}}<span class="street-address p-street-address">{{$profile.address}}</span>{{/if}}
|
||||
{{if $profile.address}}<span class="street-address p-street-address">{{$profile.address nofilter}}</span>{{/if}}
|
||||
<span class="city-state-zip">
|
||||
<span class="locality p-locality">{{$profile.locality}}</span>{{if $profile.locality}}, {{/if}}
|
||||
<span class="region p-region">{{$profile.region}}</span>
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
{{if $location}}
|
||||
<dl class="location"><dt class="location-label">{{$location}}</dt>
|
||||
<dd class="adr h-adr">
|
||||
{{if $profile.address}}<div class="street-address p-street-address">{{$profile.address}}</div>{{/if}}
|
||||
{{if $profile.address}}<div class="street-address p-street-address">{{$profile.address nofilter}}</div>{{/if}}
|
||||
<span class="city-state-zip">
|
||||
<span class="locality p-locality">{{$profile.locality}}</span>{{if $profile.locality}}, {{/if}}
|
||||
<span class="region p-region">{{$profile.region}}</span>
|
||||
|
|
|
@ -60,8 +60,8 @@ nav ul {
|
|||
.wall-item-container .wall-item-content .type-link img.attachment-image, .type-link img.attachment-image, .type-video img.attachment-image {
|
||||
max-width: 350px;
|
||||
}
|
||||
a.desktop-view { display: none; }
|
||||
a.mobile-view { display: initial; }
|
||||
.desktop-view { display: none; }
|
||||
.mobile-view { display: initial; }
|
||||
#nav-apps-link { display: none; }
|
||||
|
||||
.wall-item-container .wall-item-info { width: auto; }
|
||||
|
|
|
@ -365,10 +365,12 @@ pre code {
|
|||
box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
|
||||
}
|
||||
|
||||
.desktop-view { display: none; }
|
||||
|
||||
/* some settings for different form-factors */
|
||||
@media (min-width: 601px) {
|
||||
a.mobile-view { display: none };
|
||||
a.desktop-view { display: initial };
|
||||
.mobile-view { display: none!important; }
|
||||
.desktop-view { display: initial; }
|
||||
}
|
||||
|
||||
/* tool */
|
||||
|
@ -685,8 +687,11 @@ nav .nav-menu img {
|
|||
margin-right: 4px;
|
||||
}
|
||||
|
||||
nav .nav-menu-icon .nav-notify {
|
||||
nav .nav-menu > a > .nav-notify,
|
||||
nav .nav-menu-icon > a > .nav-notify {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
right: -5px;
|
||||
}
|
||||
nav .nav-menu-label {
|
||||
margin: 3px 5px 0px;
|
||||
|
@ -738,33 +743,27 @@ nav .nav-menu:hover {
|
|||
|
||||
nav .nav-notify {
|
||||
display: none;
|
||||
position: absolute;
|
||||
/* background-color: #36c; */
|
||||
background-color: #F80;
|
||||
/* background-color: #19aeff; */
|
||||
background-color: #F80;
|
||||
-moz-border-radius: 5px 5px 5px 5px;
|
||||
-webkit-border-radius: 5px 5px 5px 5px;
|
||||
border-radius: 5px 5px 5px 5px;
|
||||
font-size: 10px;
|
||||
padding: 1px 3px;
|
||||
top: 0px;
|
||||
/* right: -10px; */
|
||||
right: -5px;
|
||||
min-width: 15px;
|
||||
/* text-align: right; */
|
||||
text-align: center;
|
||||
color: white;
|
||||
}
|
||||
|
||||
nav .nav-notify.show {
|
||||
display: block;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
nav #nav-help-link,
|
||||
nav #nav-search-link,
|
||||
nav #nav-directory-link,
|
||||
nav #nav-apps-link,
|
||||
nav #nav-apps-link,
|
||||
nav #nav-login-link,
|
||||
nav #nav-messages-linkmenu,
|
||||
nav #nav-notifications-linkmenu,
|
||||
nav #nav-site-linkmenu,
|
||||
nav #nav-contacts-linkmenu,
|
||||
|
@ -845,10 +844,6 @@ nav #nav-user-linkmenu {
|
|||
padding: 5px 10px; */
|
||||
}
|
||||
|
||||
#mail-update {
|
||||
top: 56px;
|
||||
}
|
||||
|
||||
.notify-unseen {background-color: #FFF; }
|
||||
|
||||
.notify-seen {
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
|
||||
{{* Some information about the contact from the profile *}}
|
||||
<dl><dt>{{$profileurllabel}}</dt><dd><a target="blank" href="{{$url}}">{{$profileurl}}</a></dd></dl>
|
||||
{{if $location}}<dl><dt>{{$location_label}}</dt><dd>{{$location}}</dd></dl>{{/if}}
|
||||
{{if $location}}<dl><dt>{{$location_label}}</dt><dd>{{$location nofilter}}</dd></dl>{{/if}}
|
||||
{{if $xmpp}}<dl><dt>{{$xmpp_label}}</dt><dd>{{$xmpp}}</dd></dl>{{/if}}
|
||||
{{if $keywords}}<dl><dt>{{$keywords_label}}</dt><dd>{{$keywords}}</dd></dl>{{/if}}
|
||||
{{if $about}}<dl><dt>{{$about_label}}</dt><dd>{{$about nofilter}}</dd></dl>{{/if}}
|
||||
|
|
|
@ -14,16 +14,20 @@
|
|||
</li>
|
||||
{{if $nav.home}}
|
||||
<li role="menuitem" id="nav-home-link" class="nav-menu {{$sel.home}}">
|
||||
<a accesskey="p" class="{{$nav.home.2}} desktop-view" href="{{$nav.home.0}}" title="{{$nav.home.3}}" >{{$nav.home.1}}</a>
|
||||
<a class="{{$nav.home.2}} mobile-view" href="{{$nav.home.0}}" title="{{$nav.home.3}}" ><i class="icon s22 icon-home"></i></a>
|
||||
<span id="home-update" class="nav-notify"></span>
|
||||
<a accesskey="p" class="{{$nav.home.2}}" href="{{$nav.home.0}}" title="{{$nav.home.3}}" >
|
||||
<span class="desktop-view">{{$nav.home.1}}</span>
|
||||
<i class="icon s22 icon-home mobile-view"><span class="sr-only">{{$nav.home.1}}</span></i>
|
||||
<span id="home-update" class="nav-notify"></span>
|
||||
</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{if $nav.network}}
|
||||
<li role="menuitem" id="nav-network-link" class="nav-menu {{$sel.network}}">
|
||||
<a accesskey="n" class="{{$nav.network.2}} desktop-view" href="{{$nav.network.0}}" title="{{$nav.network.3}}" >{{$nav.network.1}}</a>
|
||||
<a class="{{$nav.network.2}} mobile-view" href="{{$nav.network.0}}" title="{{$nav.network.3}}" ><i class="icon s22 icon-th"></i></a>
|
||||
<span id="net-update" class="nav-notify"></span>
|
||||
<a accesskey="n" class="{{$nav.network.2}}" href="{{$nav.network.0}}" title="{{$nav.network.3}}" >
|
||||
<span class="desktop-view">{{$nav.network.1}}</span>
|
||||
<i class="icon s22 icon-th mobile-view"><span class="sr-only">{{$nav.network.1}}</span></i>
|
||||
<span id="net-update" class="nav-notify"></span>
|
||||
</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{if $nav.events}}
|
||||
|
@ -48,9 +52,22 @@
|
|||
</ul>
|
||||
</li>
|
||||
|
||||
{{if $nav.messages}}
|
||||
<li role="menu" aria-haspopup="true" id="nav-messages-linkmenu" class="nav-menu-icon">
|
||||
<a href="{{$nav.messages.0}}" title="{{$nav.messages.1}}">
|
||||
<span class="icon s22 icon-envelope"><span class="sr-only">{{$nav.messages.1}}</span></span>
|
||||
<span id="mail-update" class="nav-notify"></span>
|
||||
</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
|
||||
|
||||
{{if $nav.notifications}}
|
||||
<li role="menu" aria-haspopup="true" id="nav-notifications-linkmenu" class="nav-menu-icon"><a title="{{$nav.notifications.1}}"><span class="icon s22 icon-bell tilted-icon"><span class="sr-only">{{$nav.notifications.1}}</span></span></a>
|
||||
<span id="notify-update" class="nav-notify"></span>
|
||||
<li role="menu" aria-haspopup="true" id="nav-notifications-linkmenu" class="nav-menu-icon">
|
||||
<a title="{{$nav.notifications.1}}">
|
||||
<span class="icon s22 icon-bell tilted-icon"><span class="sr-only">{{$nav.notifications.1}}</span></span>
|
||||
<span id="notify-update" class="nav-notify"></span>
|
||||
</a>
|
||||
<ul id="nav-notifications-menu" class="menu-popup">
|
||||
<li role="menuitem" id="nav-notifications-mark-all"><a onclick="notifyMarkAll(); return false;">{{$nav.notifications.mark.1}}</a></li>
|
||||
<li role="menuitem" id="nav-notifications-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li>
|
||||
|
@ -65,7 +82,7 @@
|
|||
<ul id="nav-user-menu" class="menu-popup">
|
||||
{{if $nav.introductions}}<li role="menuitem"><a class="{{$nav.introductions.2}}" href="{{$nav.introductions.0}}" title="{{$nav.introductions.3}}" >{{$nav.introductions.1}}</a><span id="intro-update-li" class="nav-notify"></span></li>{{/if}}
|
||||
{{if $nav.contacts}}<li role="menuitem"><a class="{{$nav.contacts.2}}" href="{{$nav.contacts.0}}" title="{{$nav.contacts.3}}" >{{$nav.contacts.1}}</a></li>{{/if}}
|
||||
{{if $nav.messages}}<li role="menuitem"><a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" >{{$nav.messages.1}}</a><span id="mail-update" class="nav-notify"></span></a></li>{{/if}}
|
||||
{{if $nav.messages}}<li role="menuitem"><a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" >{{$nav.messages.1}} <span id="mail-update-li" class="nav-notify"></span></a></li>{{/if}}
|
||||
{{if $nav.manage}}<li role="menuitem"><a class="{{$nav.manage.2}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a></li>{{/if}}
|
||||
{{if $nav.usermenu.1}}<li role="menuitem"><a class="{{$nav.usermenu.1.2}}" href="{{$nav.usermenu.1.0}}" title="{{$nav.usermenu.1.3}}">{{$nav.usermenu.1.1}}</a></li>{{/if}}
|
||||
{{if $nav.settings}}<li role="menuitem"><a class="{{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}">{{$nav.settings.1}}</a></li>{{/if}}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
{{if $location}}
|
||||
<dl class="location"><dt class="location-label">{{$location}}</dt>
|
||||
<dd class="adr h-adr">
|
||||
{{if $profile.address}}<div class="street-address p-street-address">{{$profile.address}}</div>{{/if}}
|
||||
{{if $profile.address}}<div class="street-address p-street-address">{{$profile.address nofilter}}</div>{{/if}}
|
||||
<span class="city-state-zip">
|
||||
<span class="locality p-locality">{{$profile.locality}}</span>{{if $profile.locality}}, {{/if}}
|
||||
<span class="region p-region">{{$profile.region}}</span>
|
||||
|
|
Loading…
Reference in a new issue