Merge remote-tracking branch 'refs/remotes/friendica/develop' into develop
This commit is contained in:
commit
e61301a403
87
boot.php
87
boot.php
|
@ -430,6 +430,17 @@ define('PRIORITY_LOW', 40);
|
||||||
define('PRIORITY_NEGLIGIBLE',50);
|
define('PRIORITY_NEGLIGIBLE',50);
|
||||||
/* @}*/
|
/* @}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Social Relay settings
|
||||||
|
*
|
||||||
|
* See here: https://github.com/jaywink/social-relay
|
||||||
|
* and here: https://wiki.diasporafoundation.org/Relay_servers_for_public_posts
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
define('SR_SCOPE_NONE', '');
|
||||||
|
define('SR_SCOPE_ALL', 'all');
|
||||||
|
define('SR_SCOPE_TAGS', 'tags');
|
||||||
|
/* @}*/
|
||||||
|
|
||||||
// Normally this constant is defined - but not if "pcntl" isn't installed
|
// Normally this constant is defined - but not if "pcntl" isn't installed
|
||||||
if (!defined("SIGTERM"))
|
if (!defined("SIGTERM"))
|
||||||
|
@ -1404,6 +1415,53 @@ class App {
|
||||||
proc_close(proc_open($cmdline." &",array(),$foo,dirname(__FILE__)));
|
proc_close(proc_open($cmdline." &",array(),$foo,dirname(__FILE__)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns the system user that is executing the script
|
||||||
|
*
|
||||||
|
* This mostly returns something like "www-data".
|
||||||
|
*
|
||||||
|
* @return string system username
|
||||||
|
*/
|
||||||
|
static function systemuser() {
|
||||||
|
if (!function_exists('posix_getpwuid') OR !function_exists('posix_geteuid')) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$processUser = posix_getpwuid(posix_geteuid());
|
||||||
|
return $processUser['name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Checks if a given directory is usable for the system
|
||||||
|
*
|
||||||
|
* @return boolean the directory is usable
|
||||||
|
*/
|
||||||
|
static function directory_usable($directory) {
|
||||||
|
|
||||||
|
if ($directory == '') {
|
||||||
|
logger("Directory is empty. This shouldn't happen.", LOGGER_DEBUG);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!file_exists($directory)) {
|
||||||
|
logger('Path "'.$directory.'" does not exist for user '.self::systemuser(), LOGGER_DEBUG);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (is_file($directory)) {
|
||||||
|
logger('Path "'.$directory.'" is a file for user '.self::systemuser(), LOGGER_DEBUG);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!is_dir($directory)) {
|
||||||
|
logger('Path "'.$directory.'" is not a directory for user '.self::systemuser(), LOGGER_DEBUG);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!is_writable($directory)) {
|
||||||
|
logger('Path "'.$temppath.'" is not writable for user '.self::systemuser(), LOGGER_DEBUG);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2308,8 +2366,9 @@ function get_itemcachepath() {
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
$itemcache = get_config('system','itemcache');
|
$itemcache = get_config('system','itemcache');
|
||||||
if (($itemcache != "") AND is_dir($itemcache) AND is_writable($itemcache))
|
if (($itemcache != "") AND App::directory_usable($itemcache)) {
|
||||||
return($itemcache);
|
return($itemcache);
|
||||||
|
}
|
||||||
|
|
||||||
$temppath = get_temppath();
|
$temppath = get_temppath();
|
||||||
|
|
||||||
|
@ -2319,7 +2378,7 @@ function get_itemcachepath() {
|
||||||
mkdir($itemcache);
|
mkdir($itemcache);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_dir($itemcache) AND is_writable($itemcache)) {
|
if (App::directory_usable($itemcache)) {
|
||||||
set_config("system", "itemcache", $itemcache);
|
set_config("system", "itemcache", $itemcache);
|
||||||
return($itemcache);
|
return($itemcache);
|
||||||
}
|
}
|
||||||
|
@ -2329,20 +2388,22 @@ function get_itemcachepath() {
|
||||||
|
|
||||||
function get_lockpath() {
|
function get_lockpath() {
|
||||||
$lockpath = get_config('system','lockpath');
|
$lockpath = get_config('system','lockpath');
|
||||||
if (($lockpath != "") AND is_dir($lockpath) AND is_writable($lockpath))
|
if (($lockpath != "") AND App::directory_usable($lockpath)) {
|
||||||
return($lockpath);
|
return($lockpath);
|
||||||
|
}
|
||||||
|
|
||||||
$temppath = get_temppath();
|
$temppath = get_temppath();
|
||||||
|
|
||||||
if ($temppath != "") {
|
if ($temppath != "") {
|
||||||
$lockpath = $temppath."/lock";
|
$lockpath = $temppath."/lock";
|
||||||
|
|
||||||
if (!is_dir($lockpath))
|
if (!is_dir($lockpath)) {
|
||||||
mkdir($lockpath);
|
mkdir($lockpath);
|
||||||
elseif (!is_writable($lockpath))
|
} elseif (!App::directory_usable($lockpath)) {
|
||||||
$lockpath = $temppath;
|
$lockpath = $temppath;
|
||||||
|
}
|
||||||
|
|
||||||
if (is_dir($lockpath) AND is_writable($lockpath)) {
|
if (App::directory_usable($lockpath)) {
|
||||||
set_config("system", "lockpath", $lockpath);
|
set_config("system", "lockpath", $lockpath);
|
||||||
return($lockpath);
|
return($lockpath);
|
||||||
}
|
}
|
||||||
|
@ -2357,7 +2418,7 @@ function get_lockpath() {
|
||||||
*/
|
*/
|
||||||
function get_spoolpath() {
|
function get_spoolpath() {
|
||||||
$spoolpath = get_config('system','spoolpath');
|
$spoolpath = get_config('system','spoolpath');
|
||||||
if (($spoolpath != "") AND is_dir($spoolpath) AND is_writable($spoolpath)) {
|
if (($spoolpath != "") AND App::directory_usable($spoolpath)) {
|
||||||
return($spoolpath);
|
return($spoolpath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2368,11 +2429,11 @@ function get_spoolpath() {
|
||||||
|
|
||||||
if (!is_dir($spoolpath)) {
|
if (!is_dir($spoolpath)) {
|
||||||
mkdir($spoolpath);
|
mkdir($spoolpath);
|
||||||
} elseif (!is_writable($spoolpath)) {
|
} elseif (!App::directory_usable($spoolpath)) {
|
||||||
$spoolpath = $temppath;
|
$spoolpath = $temppath;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_dir($spoolpath) AND is_writable($spoolpath)) {
|
if (App::directory_usable($spoolpath)) {
|
||||||
set_config("system", "spoolpath", $spoolpath);
|
set_config("system", "spoolpath", $spoolpath);
|
||||||
return($spoolpath);
|
return($spoolpath);
|
||||||
}
|
}
|
||||||
|
@ -2384,16 +2445,18 @@ function get_temppath() {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
$temppath = get_config("system","temppath");
|
$temppath = get_config("system","temppath");
|
||||||
if (($temppath != "") AND is_dir($temppath) AND is_writable($temppath))
|
|
||||||
|
if (($temppath != "") AND App::directory_usable($temppath)) {
|
||||||
return($temppath);
|
return($temppath);
|
||||||
|
}
|
||||||
|
|
||||||
$temppath = sys_get_temp_dir();
|
$temppath = sys_get_temp_dir();
|
||||||
if (($temppath != "") AND is_dir($temppath) AND is_writable($temppath)) {
|
if (($temppath != "") AND App::directory_usable($temppath)) {
|
||||||
$temppath .= "/".$a->get_hostname();
|
$temppath .= "/".$a->get_hostname();
|
||||||
if (!is_dir($temppath))
|
if (!is_dir($temppath))
|
||||||
mkdir($temppath);
|
mkdir($temppath);
|
||||||
|
|
||||||
if (is_dir($temppath) AND is_writable($temppath)) {
|
if (App::directory_usable($temppath)) {
|
||||||
set_config("system", "temppath", $temppath);
|
set_config("system", "temppath", $temppath);
|
||||||
return($temppath);
|
return($temppath);
|
||||||
}
|
}
|
||||||
|
|
|
@ -730,6 +730,10 @@ function posts_from_contact_url(App $a, $contact_url) {
|
||||||
$sql = "`item`.`uid` = %d";
|
$sql = "`item`.`uid` = %d";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!dbm::is_result($r)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
$author_id = intval($r[0]["author-id"]);
|
$author_id = intval($r[0]["author-id"]);
|
||||||
|
|
||||||
if (get_config('system', 'old_pager')) {
|
if (get_config('system', 'old_pager')) {
|
||||||
|
|
|
@ -626,7 +626,7 @@ use \Friendica\Core\Config;
|
||||||
// count friends
|
// count friends
|
||||||
$r = q("SELECT count(*) as `count` FROM `contact`
|
$r = q("SELECT count(*) as `count` FROM `contact`
|
||||||
WHERE `uid` = %d AND `rel` IN ( %d, %d )
|
WHERE `uid` = %d AND `rel` IN ( %d, %d )
|
||||||
AND `self`=0 AND NOT `blocked` AND `hidden`=0",
|
AND `self`=0 AND NOT `blocked` AND NOT `pending` AND `hidden`=0",
|
||||||
intval($uinfo[0]['uid']),
|
intval($uinfo[0]['uid']),
|
||||||
intval(CONTACT_IS_SHARING),
|
intval(CONTACT_IS_SHARING),
|
||||||
intval(CONTACT_IS_FRIEND)
|
intval(CONTACT_IS_FRIEND)
|
||||||
|
@ -635,7 +635,7 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
$r = q("SELECT count(*) as `count` FROM `contact`
|
$r = q("SELECT count(*) as `count` FROM `contact`
|
||||||
WHERE `uid` = %d AND `rel` IN ( %d, %d )
|
WHERE `uid` = %d AND `rel` IN ( %d, %d )
|
||||||
AND `self`=0 AND NOT `blocked` AND `hidden`=0",
|
AND `self`=0 AND NOT `blocked` AND NOT `pending` AND `hidden`=0",
|
||||||
intval($uinfo[0]['uid']),
|
intval($uinfo[0]['uid']),
|
||||||
intval(CONTACT_IS_FOLLOWER),
|
intval(CONTACT_IS_FOLLOWER),
|
||||||
intval(CONTACT_IS_FRIEND)
|
intval(CONTACT_IS_FRIEND)
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
* This will change in the future.
|
* This will change in the future.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use \Friendica\Core\Config;
|
||||||
|
|
||||||
require_once("include/items.php");
|
require_once("include/items.php");
|
||||||
require_once("include/bb2diaspora.php");
|
require_once("include/bb2diaspora.php");
|
||||||
require_once("include/Scrape.php");
|
require_once("include/Scrape.php");
|
||||||
|
@ -309,10 +311,6 @@ class Diaspora {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use a dummy importer to import the data for the public copy
|
|
||||||
$importer = array("uid" => 0, "page-flags" => PAGE_FREELOVE);
|
|
||||||
$message_id = self::dispatch($importer,$msg);
|
|
||||||
|
|
||||||
// Now distribute it to the followers
|
// Now distribute it to the followers
|
||||||
$r = q("SELECT `user`.* FROM `user` WHERE `user`.`uid` IN
|
$r = q("SELECT `user`.* FROM `user` WHERE `user`.`uid` IN
|
||||||
(SELECT `contact`.`uid` FROM `contact` WHERE `contact`.`network` = '%s' AND `contact`.`addr` = '%s')
|
(SELECT `contact`.`uid` FROM `contact` WHERE `contact`.`network` = '%s' AND `contact`.`addr` = '%s')
|
||||||
|
@ -320,13 +318,22 @@ class Diaspora {
|
||||||
dbesc(NETWORK_DIASPORA),
|
dbesc(NETWORK_DIASPORA),
|
||||||
dbesc($msg["author"])
|
dbesc($msg["author"])
|
||||||
);
|
);
|
||||||
if ($r) {
|
|
||||||
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
logger("delivering to: ".$rr["username"]);
|
logger("delivering to: ".$rr["username"]);
|
||||||
self::dispatch($rr,$msg);
|
self::dispatch($rr,$msg);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger("No subscribers for ".$msg["author"]." ".print_r($msg, true), LOGGER_DEBUG);
|
$social_relay = (bool)Config::get('system', 'relay_subscribe', false);
|
||||||
|
|
||||||
|
// Use a dummy importer to import the data for the public copy
|
||||||
|
if ($social_relay) {
|
||||||
|
$importer = array("uid" => 0, "page-flags" => PAGE_FREELOVE);
|
||||||
|
$message_id = self::dispatch($importer,$msg);
|
||||||
|
} else {
|
||||||
|
logger("Unwanted message from ".$msg["author"]." send by ".$_SERVER["REMOTE_ADDR"]." with ".$_SERVER["HTTP_USER_AGENT"].": ".print_r($msg, true), LOGGER_DEBUG);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $message_id;
|
return $message_id;
|
||||||
|
|
|
@ -374,7 +374,10 @@ function profile_sidebar($profile, $block = 0) {
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
$updated = date("c", strtotime($r[0]['updated']));
|
$updated = date("c", strtotime($r[0]['updated']));
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `hidden` AND NOT `archive`
|
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
||||||
|
WHERE `uid` = %d
|
||||||
|
AND NOT `self` AND NOT `blocked` AND NOT `pending`
|
||||||
|
AND NOT `hidden` AND NOT `archive`
|
||||||
AND `network` IN ('%s', '%s', '%s', '')",
|
AND `network` IN ('%s', '%s', '%s', '')",
|
||||||
intval($profile['uid']),
|
intval($profile['uid']),
|
||||||
dbesc(NETWORK_DFRN),
|
dbesc(NETWORK_DFRN),
|
||||||
|
|
|
@ -35,7 +35,19 @@ function spool_post_run($argv, $argc) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$arr = json_decode(file_get_contents($fullfile), true);
|
$arr = json_decode(file_get_contents($fullfile), true);
|
||||||
|
|
||||||
|
// If it isn't an array then it is no spool file
|
||||||
|
if (!is_array($arr)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Skip if it doesn't seem to be an item array
|
||||||
|
if (!isset($arr['uid']) AND !isset($arr['uri']) AND !isset($arr['network'])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$result = item_store($arr);
|
$result = item_store($arr);
|
||||||
|
|
||||||
logger("Spool file ".$file." stored: ".$result, LOGGER_DEBUG);
|
logger("Spool file ".$file." stored: ".$result, LOGGER_DEBUG);
|
||||||
unlink($fullfile);
|
unlink($fullfile);
|
||||||
}
|
}
|
||||||
|
|
|
@ -875,7 +875,7 @@ function contact_block() {
|
||||||
return $o;
|
return $o;
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
||||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked`
|
WHERE `uid` = %d AND NOT `self` AND NOT `blocked`
|
||||||
AND NOT `hidden` AND NOT `archive`
|
AND NOT `pending` AND NOT `hidden` AND NOT `archive`
|
||||||
AND `network` IN ('%s', '%s', '%s')",
|
AND `network` IN ('%s', '%s', '%s')",
|
||||||
intval($a->profile['uid']),
|
intval($a->profile['uid']),
|
||||||
dbesc(NETWORK_DFRN),
|
dbesc(NETWORK_DFRN),
|
||||||
|
@ -893,8 +893,9 @@ function contact_block() {
|
||||||
// Splitting the query in two parts makes it much faster
|
// Splitting the query in two parts makes it much faster
|
||||||
$r = q("SELECT `id` FROM `contact`
|
$r = q("SELECT `id` FROM `contact`
|
||||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked`
|
WHERE `uid` = %d AND NOT `self` AND NOT `blocked`
|
||||||
AND NOT `hidden` AND NOT `archive`
|
AND NOT `pending` AND NOT `hidden` AND NOT `archive`
|
||||||
AND `network` IN ('%s', '%s', '%s') ORDER BY RAND() LIMIT %d",
|
AND `network` IN ('%s', '%s', '%s')
|
||||||
|
ORDER BY RAND() LIMIT %d",
|
||||||
intval($a->profile['uid']),
|
intval($a->profile['uid']),
|
||||||
dbesc(NETWORK_DFRN),
|
dbesc(NETWORK_DFRN),
|
||||||
dbesc(NETWORK_OSTATUS),
|
dbesc(NETWORK_OSTATUS),
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
/// @TODO This file has DOS line endings!
|
|
||||||
|
use \Friendica\Core\Config;
|
||||||
|
|
||||||
require_once("mod/hostxrd.php");
|
require_once("mod/hostxrd.php");
|
||||||
require_once("mod/nodeinfo.php");
|
require_once("mod/nodeinfo.php");
|
||||||
|
|
||||||
|
@ -23,27 +25,25 @@ function _well_known_init(App $a) {
|
||||||
|
|
||||||
function wk_social_relay(App $a) {
|
function wk_social_relay(App $a) {
|
||||||
|
|
||||||
define('SR_SCOPE_ALL', 'all');
|
$subscribe = (bool)Config::get('system', 'relay_subscribe', false);
|
||||||
define('SR_SCOPE_TAGS', 'tags');
|
|
||||||
|
|
||||||
$subscribe = (bool)get_config('system', 'relay_subscribe');
|
if ($subscribe) {
|
||||||
|
$scope = Config::get('system', 'relay_scope', SR_SCOPE_ALL);
|
||||||
if ($subscribe)
|
} else {
|
||||||
$scope = get_config('system', 'relay_scope');
|
$scope = SR_SCOPE_NONE;
|
||||||
else
|
}
|
||||||
$scope = "";
|
|
||||||
|
|
||||||
$tags = array();
|
$tags = array();
|
||||||
|
|
||||||
if ($scope == SR_SCOPE_TAGS) {
|
if ($scope == SR_SCOPE_TAGS) {
|
||||||
|
$server_tags = Config::get('system', 'relay_server_tags');
|
||||||
$server_tags = get_config('system', 'relay_server_tags');
|
|
||||||
$tagitems = explode(",", $server_tags);
|
$tagitems = explode(",", $server_tags);
|
||||||
|
|
||||||
foreach($tagitems AS $tag)
|
foreach($tagitems AS $tag) {
|
||||||
$tags[trim($tag, "# ")] = trim($tag, "# ");
|
$tags[trim($tag, "# ")] = trim($tag, "# ");
|
||||||
|
}
|
||||||
|
|
||||||
if (get_config('system', 'relay_user_tags')) {
|
if (Config::get('system', 'relay_user_tags')) {
|
||||||
$terms = q("SELECT DISTINCT(`term`) FROM `search`");
|
$terms = q("SELECT DISTINCT(`term`) FROM `search`");
|
||||||
|
|
||||||
foreach($terms AS $term) {
|
foreach($terms AS $term) {
|
||||||
|
@ -54,8 +54,9 @@ function wk_social_relay(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$taglist = array();
|
$taglist = array();
|
||||||
foreach($tags AS $tag)
|
foreach($tags AS $tag) {
|
||||||
$taglist[] = $tag;
|
$taglist[] = $tag;
|
||||||
|
}
|
||||||
|
|
||||||
$relay = array("subscribe" => $subscribe,
|
$relay = array("subscribe" => $subscribe,
|
||||||
"scope" => $scope,
|
"scope" => $scope,
|
||||||
|
|
|
@ -48,7 +48,8 @@ function viewcontacts_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
||||||
WHERE `uid` = %d AND (NOT `blocked` OR `pending`) AND NOT `hidden` AND NOT `archive`
|
WHERE `uid` = %d AND NOT `blocked` AND NOT `pending`
|
||||||
|
AND NOT `hidden` AND NOT `archive`
|
||||||
AND `network` IN ('%s', '%s', '%s')",
|
AND `network` IN ('%s', '%s', '%s')",
|
||||||
intval($a->profile['uid']),
|
intval($a->profile['uid']),
|
||||||
dbesc(NETWORK_DFRN),
|
dbesc(NETWORK_DFRN),
|
||||||
|
@ -59,7 +60,8 @@ function viewcontacts_content(App $a) {
|
||||||
$a->set_pager_total($r[0]['total']);
|
$a->set_pager_total($r[0]['total']);
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact`
|
$r = q("SELECT * FROM `contact`
|
||||||
WHERE `uid` = %d AND (NOT `blocked` OR `pending`) AND NOT `hidden` AND NOT `archive`
|
WHERE `uid` = %d AND NOT `blocked` AND NOT `pending`
|
||||||
|
AND NOT `hidden` AND NOT `archive`
|
||||||
AND `network` IN ('%s', '%s', '%s')
|
AND `network` IN ('%s', '%s', '%s')
|
||||||
ORDER BY `name` ASC LIMIT %d, %d",
|
ORDER BY `name` ASC LIMIT %d, %d",
|
||||||
intval($a->profile['uid']),
|
intval($a->profile['uid']),
|
||||||
|
|
|
@ -3,14 +3,15 @@
|
||||||
# This file is distributed under the same license as the Friendica package.
|
# This file is distributed under the same license as the Friendica package.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
|
# Jonatan Nyberg <jonatan@autistici.org>, 2017
|
||||||
# Mike Macgirvin, 2010
|
# Mike Macgirvin, 2010
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: friendica\n"
|
"Project-Id-Version: friendica\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2016-12-19 07:46+0100\n"
|
"POT-Creation-Date: 2016-12-19 07:46+0100\n"
|
||||||
"PO-Revision-Date: 2016-12-19 10:01+0000\n"
|
"PO-Revision-Date: 2017-02-13 20:15+0000\n"
|
||||||
"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
|
"Last-Translator: Jonatan Nyberg <jonatan@autistici.org>\n"
|
||||||
"Language-Team: Swedish (http://www.transifex.com/Friendica/friendica/language/sv/)\n"
|
"Language-Team: Swedish (http://www.transifex.com/Friendica/friendica/language/sv/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
@ -20,7 +21,7 @@ msgstr ""
|
||||||
|
|
||||||
#: include/contact_widgets.php:6
|
#: include/contact_widgets.php:6
|
||||||
msgid "Add New Contact"
|
msgid "Add New Contact"
|
||||||
msgstr ""
|
msgstr "Lägg till kontakt"
|
||||||
|
|
||||||
#: include/contact_widgets.php:7
|
#: include/contact_widgets.php:7
|
||||||
msgid "Enter address or web location"
|
msgid "Enter address or web location"
|
||||||
|
|
|
@ -5,7 +5,7 @@ function string_plural_select_sv($n){
|
||||||
return ($n != 1);;
|
return ($n != 1);;
|
||||||
}}
|
}}
|
||||||
;
|
;
|
||||||
$a->strings["Add New Contact"] = "";
|
$a->strings["Add New Contact"] = "Lägg till kontakt";
|
||||||
$a->strings["Enter address or web location"] = "";
|
$a->strings["Enter address or web location"] = "";
|
||||||
$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Exempel: adam@exempel.com, http://exempel.com/bertil";
|
$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Exempel: adam@exempel.com, http://exempel.com/bertil";
|
||||||
$a->strings["Connect"] = "Skicka kontaktförfrågan";
|
$a->strings["Connect"] = "Skicka kontaktförfrågan";
|
||||||
|
|
|
@ -256,40 +256,30 @@ $(document).ready(function(){
|
||||||
input.val(val);
|
input.val(val);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Set the padding for input elements with inline buttons
|
||||||
|
//
|
||||||
|
// In Frio we use some input elements where the submit button is visually
|
||||||
|
// inside the the input field (through css). We need to set a padding-right
|
||||||
|
// to the input element where the padding value would be at least the width
|
||||||
|
// of the button. Otherwise long user input would be invisible because it is
|
||||||
|
// behind the button.
|
||||||
|
$("body").on('click', '.form-group-search > input', function() {
|
||||||
|
// Get the width of the button (if the button isn't available
|
||||||
|
// buttonWidth will be null
|
||||||
|
var buttonWidth = $(this).next('.form-button-search').outerWidth();
|
||||||
|
|
||||||
|
if (buttonWidth) {
|
||||||
|
// Take the width of the button and ad 5px
|
||||||
|
var newWidth = buttonWidth + 5;
|
||||||
|
// Set the padding of the input element according
|
||||||
|
// to the width of the button
|
||||||
|
$(this).css('padding-right', newWidth);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
//function commentOpenUI(obj, id) {
|
|
||||||
// $(document).unbind( "click.commentOpen", handler );
|
|
||||||
//
|
|
||||||
// var handler = function() {
|
|
||||||
// if(obj.value == '{{$comment}}') {
|
|
||||||
// obj.value = '';
|
|
||||||
// $("#comment-edit-text-" + id).addClass("comment-edit-text-full").removeClass("comment-edit-text-empty");
|
|
||||||
// // Choose an arbitrary tab index that's greater than what we're using in jot (3 of them)
|
|
||||||
// // The submit button gets tabindex + 1
|
|
||||||
// $("#comment-edit-text-" + id).attr('tabindex','9');
|
|
||||||
// $("#comment-edit-submit-" + id).attr('tabindex','10');
|
|
||||||
// $("#comment-edit-submit-wrapper-" + id).show();
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
//
|
|
||||||
// $(document).bind( "click.commentOpen", handler );
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//function commentCloseUI(obj, id) {
|
|
||||||
// $(document).unbind( "click.commentClose", handler );
|
|
||||||
//
|
|
||||||
// var handler = function() {
|
|
||||||
// if(obj.value === '') {
|
|
||||||
// obj.value = '{{$comment}}';
|
|
||||||
// $("#comment-edit-text-" + id).removeClass("comment-edit-text-full").addClass("comment-edit-text-empty");
|
|
||||||
// $("#comment-edit-text-" + id).removeAttr('tabindex');
|
|
||||||
// $("#comment-edit-submit-" + id).removeAttr('tabindex');
|
|
||||||
// $("#comment-edit-submit-wrapper-" + id).hide();
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
//
|
|
||||||
// $(document).bind( "click.commentClose", handler );
|
|
||||||
//}
|
|
||||||
|
|
||||||
function openClose(theID) {
|
function openClose(theID) {
|
||||||
var elem = document.getElementById(theID);
|
var elem = document.getElementById(theID);
|
||||||
|
|
|
@ -1210,7 +1210,7 @@ section {
|
||||||
.wall-item-container .wall-item-actions-social a {
|
.wall-item-container .wall-item-actions-social a {
|
||||||
margin-right: 3em;
|
margin-right: 3em;
|
||||||
}
|
}
|
||||||
.wall-item-container .wall-item-actions-social a .active {
|
.wall-item-container .wall-item-actions-social a.active {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
.wall-item-container .wall-item-actions-tools {
|
.wall-item-container .wall-item-actions-tools {
|
||||||
|
|
|
@ -1210,7 +1210,7 @@ section {
|
||||||
.wall-item-container .wall-item-actions-social a {
|
.wall-item-container .wall-item-actions-social a {
|
||||||
margin-right: 3em;
|
margin-right: 3em;
|
||||||
}
|
}
|
||||||
.wall-item-container .wall-item-actions-social a .active {
|
.wall-item-container .wall-item-actions-social a.active {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
.wall-item-container .wall-item-actions-tools {
|
.wall-item-container .wall-item-actions-tools {
|
||||||
|
|
|
@ -1210,7 +1210,7 @@ section {
|
||||||
.wall-item-container .wall-item-actions-social a {
|
.wall-item-container .wall-item-actions-social a {
|
||||||
margin-right: 3em;
|
margin-right: 3em;
|
||||||
}
|
}
|
||||||
.wall-item-container .wall-item-actions-social a .active {
|
.wall-item-container .wall-item-actions-social a.active {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
.wall-item-container .wall-item-actions-tools {
|
.wall-item-container .wall-item-actions-tools {
|
||||||
|
|
|
@ -576,7 +576,7 @@ section {
|
||||||
}
|
}
|
||||||
.wall-item-actions-social { float: left; margin-top: 0.5em;
|
.wall-item-actions-social { float: left; margin-top: 0.5em;
|
||||||
a { margin-right: 3em;
|
a { margin-right: 3em;
|
||||||
.active { font-weight: bold;}
|
&.active { font-weight: bold;}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.wall-item-actions-tools { float: right; width: 15%;
|
.wall-item-actions-tools { float: right; width: 15%;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user