Merge remote-tracking branch 'upstream/master'
Conflicts: mod/crepair.php
This commit is contained in:
commit
aed28a24f1
35 changed files with 9339 additions and 8738 deletions
2
boot.php
2
boot.php
|
@ -12,7 +12,7 @@ require_once('library/Mobile_Detect/Mobile_Detect.php');
|
|||
require_once('include/features.php');
|
||||
|
||||
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||
define ( 'FRIENDICA_VERSION', '3.2.1745' );
|
||||
define ( 'FRIENDICA_VERSION', '3.2.1747' );
|
||||
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
||||
define ( 'DB_UPDATE_VERSION', 1169 );
|
||||
define ( 'EOL', "<br />\r\n" );
|
||||
|
|
|
@ -215,13 +215,14 @@ function contact_photo_menu($contact) {
|
|||
$status_link = $profile_link . "?url=status";
|
||||
$photos_link = $profile_link . "?url=photos";
|
||||
$profile_link = $profile_link . "?url=profile";
|
||||
$contact_drop_link = $a->get_baseurl() . '/contacts/' . $contact['id'] . '/drop';
|
||||
$pm_url = $a->get_baseurl() . '/message/new/' . $contact['id'];
|
||||
}
|
||||
|
||||
$poke_link = $a->get_baseurl() . '/poke/?f=&c=' . $contact['id'];
|
||||
$contact_url = $a->get_baseurl() . '/contacts/' . $contact['id'];
|
||||
$posts_link = $a->get_baseurl() . '/network/0?nets=all&cid=' . $contact['id'];
|
||||
$contact_drop_link = $a->get_baseurl() . "/contacts/" . $contact['id'] . '/drop?confirm=1';
|
||||
|
||||
|
||||
$menu = Array(
|
||||
'poke' => array(t("Poke"), $poke_link),
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
require_once("include/contact_selectors.php");
|
||||
require_once("include/features.php");
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -329,6 +330,9 @@ function populate_acl($user = null,$celeb = false) {
|
|||
'$allowgid' => json_encode($perms['allow_gid']),
|
||||
'$denycid' => json_encode($perms['deny_cid']),
|
||||
'$denygid' => json_encode($perms['deny_gid']),
|
||||
'$features' => array(
|
||||
"aclautomention"=>(feature_enabled($user,"aclautomention")?"true":"false")
|
||||
),
|
||||
));
|
||||
|
||||
|
||||
|
@ -474,14 +478,15 @@ function acl_lookup(&$a, $out_type = 'json') {
|
|||
"name" => $g['name'],
|
||||
"id" => intval($g['id']),
|
||||
"uids" => array_map("intval", explode(",",$g['uids'])),
|
||||
"link" => ''
|
||||
"link" => '',
|
||||
"forum" => '0'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ($type=='' || $type=='c'){
|
||||
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, forum FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
|
@ -541,6 +546,7 @@ function acl_lookup(&$a, $out_type = 'json') {
|
|||
"network" => $g['network'],
|
||||
"link" => $g['url'],
|
||||
"nick" => ($g['attag']) ? $g['attag'] : $g['nick'],
|
||||
"forum" => $g['forum']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
logger('API_login: ' . print_r($_SERVER,true), LOGGER_DEBUG);
|
||||
header('WWW-Authenticate: Basic realm="Friendica"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
die((api_error(&$a, 'json', "This api requires login")));
|
||||
die((api_error($a, 'json', "This api requires login")));
|
||||
|
||||
//die('This api requires login');
|
||||
}
|
||||
|
@ -174,7 +174,7 @@
|
|||
}
|
||||
header("HTTP/1.1 404 Not Found");
|
||||
logger('API call not implemented: '.$a->query_string." - ".print_r($_REQUEST,true));
|
||||
return(api_error(&$a, $type, "not implemented"));
|
||||
return(api_error($a, $type, "not implemented"));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -504,6 +504,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
|
|||
$tpl = 'search_item.tpl';
|
||||
|
||||
foreach($items as $item) {
|
||||
|
||||
if($arr_blocked) {
|
||||
$blocked = false;
|
||||
foreach($arr_blocked as $b) {
|
||||
|
@ -648,6 +649,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
|
|||
$tmp_item = array(
|
||||
'template' => $tpl,
|
||||
'id' => (($preview) ? 'P0' : $item['item_id']),
|
||||
'network' => $item['item_network'],
|
||||
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
|
||||
'profile_url' => $profile_link,
|
||||
'item_photo_menu' => item_photo_menu($item),
|
||||
|
@ -693,6 +695,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
|
|||
call_hooks('display_item', $arr);
|
||||
|
||||
$threads[$threadsid]['id'] = $item['item_id'];
|
||||
$threads[$threadsid]['network'] = $item['item_network'];
|
||||
$threads[$threadsid]['items'] = array($arr['output']);
|
||||
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ function get_features() {
|
|||
t('Post Composition Features'),
|
||||
array('richtext', t('Richtext Editor'), t('Enable richtext editor')),
|
||||
array('preview', t('Post Preview'), t('Allow previewing posts and comments before publishing them')),
|
||||
array('aclautomention', t('Auto-mention Forums'), t('Add/remove mention when a fourm page is selected/deselected in ACL window.')),
|
||||
),
|
||||
|
||||
// Network sidebar widgets
|
||||
|
|
|
@ -617,7 +617,6 @@ function fetch_xrd_links($url) {
|
|||
|
||||
if(! function_exists('validate_url')) {
|
||||
function validate_url(&$url) {
|
||||
|
||||
// no naked subdomains (allow localhost for tests)
|
||||
if(strpos($url,'.') === false && strpos($url,'/localhost/') === false)
|
||||
return false;
|
||||
|
|
|
@ -44,6 +44,11 @@ function check_conversations() {
|
|||
function complete_conversation($itemid, $conversation_url, $only_add_conversation = false) {
|
||||
global $a;
|
||||
|
||||
if ($a->last_ostatus_conversation_url == $conversation_url)
|
||||
return;
|
||||
|
||||
$a->last_ostatus_conversation_url = $conversation_url;
|
||||
|
||||
//logger('complete_conversation: completing conversation url '.$conversation_url.' for id '.$itemid);
|
||||
|
||||
$messages = q("SELECT `uid`, `parent`, `created` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
|
||||
|
|
62
js/acl.js
62
js/acl.js
|
@ -1,7 +1,8 @@
|
|||
function ACL(backend_url, preset){
|
||||
function ACL(backend_url, preset, automention){
|
||||
that = this;
|
||||
|
||||
that.url = backend_url;
|
||||
that.automention = automention;
|
||||
|
||||
that.kp_timer = null;
|
||||
|
||||
|
@ -26,10 +27,45 @@ function ACL(backend_url, preset){
|
|||
$("#acl-search").keypress(that.on_search);
|
||||
$("#acl-wrapper").parents("form").submit(that.on_submit);
|
||||
|
||||
/* add/remove mentions */
|
||||
that.element = $("#profile-jot-text");
|
||||
that.htmlelm = that.element.get()[0];
|
||||
|
||||
/* startup! */
|
||||
that.get(0,100);
|
||||
}
|
||||
|
||||
ACL.prototype.remove_mention = function(id) {
|
||||
if (!that.automention) return;
|
||||
var nick = that.data[id].nick;
|
||||
var searchText = "@"+nick+"+"+id+" ";
|
||||
if (tinyMCE.activeEditor===null) {
|
||||
start = that.element.val().indexOf(searchText);
|
||||
if ( start<0) return;
|
||||
end = start+searchText.length;
|
||||
that.element.setSelection(start,end).replaceSelectedText('').collapseSelection(false);
|
||||
} else {
|
||||
start = tinyMCE.activeEditor.getContent({format : 'raw'}).search( searchText );
|
||||
if ( start<0 ) return;
|
||||
txt = tinyMCE.activeEditor.getContent();
|
||||
newtxt = txt.replace(searchText, '');
|
||||
tinyMCE.activeEditor.setContent(newtxt);
|
||||
}
|
||||
}
|
||||
|
||||
ACL.prototype.add_mention = function(id) {
|
||||
if (!that.automention) return;
|
||||
var nick = that.data[id].nick;
|
||||
var searchText = "@"+nick+"+"+id+" ";
|
||||
if (tinyMCE.activeEditor===null) {
|
||||
if ( that.element.val().indexOf( searchText) >= 0 ) return;
|
||||
that.element.val( searchText + that.element.val() );
|
||||
} else {
|
||||
if ( tinyMCE.activeEditor.getContent({format : 'raw'}).search(searchText) >= 0 ) return;
|
||||
tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(), 'span', {}, searchText);
|
||||
}
|
||||
}
|
||||
|
||||
ACL.prototype.on_submit = function(){
|
||||
aclfileds = $("#acl-fields").html("");
|
||||
$(that.allow_gid).each(function(i,v){
|
||||
|
@ -105,7 +141,8 @@ ACL.prototype.on_button_hide = function(event){
|
|||
|
||||
ACL.prototype.set_allow = function(itemid){
|
||||
type = itemid[0];
|
||||
id = parseInt(itemid.substr(1));
|
||||
id = parseInt(itemid.substr(1));
|
||||
|
||||
switch(type){
|
||||
case "g":
|
||||
if (that.allow_gid.indexOf(id)<0){
|
||||
|
@ -118,8 +155,10 @@ ACL.prototype.set_allow = function(itemid){
|
|||
case "c":
|
||||
if (that.allow_cid.indexOf(id)<0){
|
||||
that.allow_cid.push(id)
|
||||
if (that.data[id].forum=="1") that.add_mention(id);
|
||||
} else {
|
||||
that.allow_cid.remove(id);
|
||||
if (that.data[id].forum=="1") that.remove_mention(id);
|
||||
}
|
||||
if (that.deny_cid.indexOf(id)>=0) that.deny_cid.remove(id);
|
||||
break;
|
||||
|
@ -129,7 +168,8 @@ ACL.prototype.set_allow = function(itemid){
|
|||
|
||||
ACL.prototype.set_deny = function(itemid){
|
||||
type = itemid[0];
|
||||
id = parseInt(itemid.substr(1));
|
||||
id = parseInt(itemid.substr(1));
|
||||
|
||||
switch(type){
|
||||
case "g":
|
||||
if (that.deny_gid.indexOf(id)<0){
|
||||
|
@ -140,6 +180,7 @@ ACL.prototype.set_deny = function(itemid){
|
|||
if (that.allow_gid.indexOf(id)>=0) that.allow_gid.remove(id);
|
||||
break;
|
||||
case "c":
|
||||
if (that.data[id].forum=="1") that.remove_mention(id);
|
||||
if (that.deny_cid.indexOf(id)<0){
|
||||
that.deny_cid.push(id)
|
||||
} else {
|
||||
|
@ -151,9 +192,13 @@ ACL.prototype.set_deny = function(itemid){
|
|||
that.update_view();
|
||||
}
|
||||
|
||||
ACL.prototype.is_show_all = function() {
|
||||
return (that.allow_gid.length==0 && that.allow_cid.length==0 &&
|
||||
that.deny_gid.length==0 && that.deny_cid.length==0);
|
||||
}
|
||||
|
||||
ACL.prototype.update_view = function(){
|
||||
if (that.allow_gid.length==0 && that.allow_cid.length==0 &&
|
||||
that.deny_gid.length==0 && that.deny_cid.length==0){
|
||||
if (this.is_show_all()){
|
||||
that.showall.addClass("selected");
|
||||
/* jot acl */
|
||||
$('#jot-perms-icon').removeClass('lock').addClass('unlock');
|
||||
|
@ -246,17 +291,20 @@ ACL.prototype.get = function(start,count, search){
|
|||
ACL.prototype.populate = function(data){
|
||||
var height = Math.ceil(data.tot / that.nw) * 42;
|
||||
that.list_content.height(height);
|
||||
that.data = {};
|
||||
$(data.items).each(function(){
|
||||
html = "<div class='acl-list-item {4} {5}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>";
|
||||
html = html.format(this.photo, this.name, this.type, this.id, '', this.network, this.link);
|
||||
html = "<div class='acl-list-item {4} {5} type{2}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>";
|
||||
html = html.format(this.photo, this.name, this.type, this.id, (this.forum=='1'?'forum':''), this.network, this.link);
|
||||
if (this.uids!=undefined) that.group_uids[this.id] = this.uids;
|
||||
//console.log(html);
|
||||
that.list_content.append(html);
|
||||
that.data[this.id] = this;
|
||||
});
|
||||
$(".acl-list-item img[data-src]", that.list_content).each(function(i, el){
|
||||
// Add src attribute for images with a data-src attribute
|
||||
$(el).attr('src', $(el).data("src"));
|
||||
});
|
||||
|
||||
that.update_view();
|
||||
}
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ ACPopup.prototype._search = function(){
|
|||
});
|
||||
|
||||
}
|
||||
ACPopup.prototype.add = function(label, value){
|
||||
ACPopup.prototype.add = function(label, value){
|
||||
var that=this;
|
||||
var elm = $("<div class='acpopupitem' title='"+value+"'>"+label+"</div>");
|
||||
elm.click(function(e){
|
||||
|
|
|
@ -341,7 +341,7 @@ abstract class Slinky_Service {
|
|||
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 ); // Don't stress about SSL validity
|
||||
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); // Return the response, don't output it
|
||||
curl_setopt( $ch, CURLOPT_TIMEOUT, SLINKY_TIMEOUT ); // Limit how long we'll wait for a response
|
||||
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 ); // Allow following of redirections
|
||||
//curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 ); // Allow following of redirections
|
||||
$r = curl_exec( $ch );
|
||||
if ( curl_errno( $ch ) ) {
|
||||
return false;
|
||||
|
@ -372,7 +372,7 @@ abstract class Slinky_Service {
|
|||
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 ); // Don't stress about SSL validity
|
||||
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); // Return the response, don't output it
|
||||
curl_setopt( $ch, CURLOPT_TIMEOUT, SLINKY_TIMEOUT ); // Limit how long we'll wait for a response
|
||||
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 ); // Allow following of redirections
|
||||
//curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 ); // Allow following of redirections
|
||||
$r = curl_exec( $ch );
|
||||
if ( curl_errno( $ch ) ) {
|
||||
return false;
|
||||
|
|
|
@ -328,6 +328,7 @@ function admin_page_site_post(&$a){
|
|||
$enotify_no_content = ((x($_POST,'enotify_no_content')) ? True : False);
|
||||
$private_addons = ((x($_POST,'private_addons')) ? True : False);
|
||||
$disable_embedded = ((x($_POST,'disable_embedded')) ? True : False);
|
||||
$allow_users_remote_self = ((x($_POST,'allow_users_remote_self')) ? True : False);
|
||||
|
||||
$no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False);
|
||||
$no_openid = !((x($_POST,'no_openid')) ? True : False);
|
||||
|
@ -453,6 +454,7 @@ function admin_page_site_post(&$a){
|
|||
set_config('system','newuser_private', $newuser_private);
|
||||
set_config('system','enotify_no_content', $enotify_no_content);
|
||||
set_config('system','disable_embedded', $disable_embedded);
|
||||
set_config('system','allow_users_remote_self', $allow_users_remote_self);
|
||||
|
||||
set_config('system','block_extended_register', $no_multi_reg);
|
||||
set_config('system','no_openid', $no_openid);
|
||||
|
@ -603,7 +605,7 @@ function admin_page_site(&$a) {
|
|||
'$enotify_no_content' => array('enotify_no_content', t("Don't include post content in email notifications"), get_config('system','enotify_no_content'), t("Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure.")),
|
||||
'$private_addons' => array('private_addons', t("Disallow public access to addons listed in the apps menu."), get_config('config','private_addons'), t("Checking this box will restrict addons listed in the apps menu to members only.")),
|
||||
'$disable_embedded' => array('disable_embedded', t("Don't embed private images in posts"), get_config('system','disable_embedded'), t("Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while.")),
|
||||
|
||||
'$allow_users_remote_self' => array('allow_users_remote_self', t('Allow Users to set remote_self'), get_config('system','allow_users_remote_self'), t('With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream.')),
|
||||
'$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
|
||||
'$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
|
||||
'$no_regfullname' => array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), t("Force users to register with a space between firstname and lastname in Full name, as an antispam measure")),
|
||||
|
|
149
mod/contacts.php
149
mod/contacts.php
|
@ -67,11 +67,61 @@ function contacts_init(&$a) {
|
|||
|
||||
}
|
||||
|
||||
function contacts_batch_actions(&$a){
|
||||
$contacts_id = $_POST['contact_batch'];
|
||||
if (!is_array($contacts_id)) return;
|
||||
|
||||
$orig_records = q("SELECT * FROM `contact` WHERE `id` IN (%s) AND `uid` = %d AND `self` = 0",
|
||||
implode(",", $contacts_id),
|
||||
intval(local_user())
|
||||
);
|
||||
|
||||
$count_actions=0;
|
||||
foreach($orig_records as $orig_record) {
|
||||
$contact_id = $orig_record['id'];
|
||||
if (x($_POST, 'contacts_batch_update')) {
|
||||
_contact_update($contact_id);
|
||||
$count_actions++;
|
||||
}
|
||||
if (x($_POST, 'contacts_batch_block')) {
|
||||
$r = _contact_block($contact_id, $orig_record);
|
||||
if ($r) $count_actions++;
|
||||
}
|
||||
if (x($_POST, 'contacts_batch_ignore')) {
|
||||
$r = _contact_ignore($contact_id, $orig_record);
|
||||
if ($r) $count_actions++;
|
||||
}
|
||||
if (x($_POST, 'contacts_batch_archive')) {
|
||||
$r = _contact_archive($contact_id, $orig_record);
|
||||
if ($r) $count_actions++;
|
||||
}
|
||||
if (x($_POST, 'contacts_batch_drop')) {
|
||||
_contact_drop($contact_id, $orig_record);
|
||||
$count_actions++;
|
||||
}
|
||||
}
|
||||
if ($count_actions>0) {
|
||||
info ( sprintf( tt("%d contact edited.", "%d contacts edited", $count_actions), $count_actions) );
|
||||
}
|
||||
|
||||
if(x($_SESSION,'return_url'))
|
||||
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
|
||||
else
|
||||
goaway($a->get_baseurl(true) . '/contacts');
|
||||
|
||||
}
|
||||
|
||||
|
||||
function contacts_post(&$a) {
|
||||
|
||||
if(! local_user())
|
||||
return;
|
||||
|
||||
if ($a->argv[1]==="batch") {
|
||||
contacts_batch_actions($a);
|
||||
return;
|
||||
}
|
||||
|
||||
$contact_id = intval($a->argv[1]);
|
||||
if(! $contact_id)
|
||||
return;
|
||||
|
@ -140,6 +190,49 @@ function contacts_post(&$a) {
|
|||
|
||||
}
|
||||
|
||||
/*contact actions*/
|
||||
function _contact_update($contact_id) {
|
||||
// pull feed and consume it, which should subscribe to the hub.
|
||||
proc_run('php',"include/poller.php","$contact_id");
|
||||
}
|
||||
function _contact_block($contact_id, $orig_record) {
|
||||
$blocked = (($orig_record['blocked']) ? 0 : 1);
|
||||
$r = q("UPDATE `contact` SET `blocked` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($blocked),
|
||||
intval($contact_id),
|
||||
intval(local_user())
|
||||
);
|
||||
return $r;
|
||||
|
||||
}
|
||||
function _contact_ignore($contact_id, $orig_record) {
|
||||
$readonly = (($orig_record['readonly']) ? 0 : 1);
|
||||
$r = q("UPDATE `contact` SET `readonly` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($readonly),
|
||||
intval($contact_id),
|
||||
intval(local_user())
|
||||
);
|
||||
return $r;
|
||||
}
|
||||
function _contact_archive($contact_id, $orig_record) {
|
||||
$archived = (($orig_record['archive']) ? 0 : 1);
|
||||
$r = q("UPDATE `contact` SET `archive` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($archived),
|
||||
intval($contact_id),
|
||||
intval(local_user())
|
||||
);
|
||||
if ($archived) {
|
||||
q("UPDATE `item` SET `private` = 2 WHERE `contact-id` = %d AND `uid` = %d", intval($contact_id), intval(local_user()));
|
||||
}
|
||||
return $r;
|
||||
}
|
||||
function _contact_drop($contact_id, $orig_record) {
|
||||
require_once('include/Contact.php');
|
||||
$a = get_app();
|
||||
|
||||
terminate_friendship($a->user,$a->contact,$orig_record);
|
||||
contact_remove($orig_record['id']);
|
||||
}
|
||||
|
||||
|
||||
function contacts_content(&$a) {
|
||||
|
@ -174,57 +267,38 @@ function contacts_content(&$a) {
|
|||
}
|
||||
|
||||
if($cmd === 'update') {
|
||||
|
||||
// pull feed and consume it, which should subscribe to the hub.
|
||||
proc_run('php',"include/poller.php","$contact_id");
|
||||
_contact_update($contact_id);
|
||||
goaway($a->get_baseurl(true) . '/contacts/' . $contact_id);
|
||||
// NOTREACHED
|
||||
}
|
||||
|
||||
if($cmd === 'block') {
|
||||
$blocked = (($orig_record[0]['blocked']) ? 0 : 1);
|
||||
$r = q("UPDATE `contact` SET `blocked` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($blocked),
|
||||
intval($contact_id),
|
||||
intval(local_user())
|
||||
);
|
||||
$r = _contact_block($contact_id, $orig_record[0]);
|
||||
if($r) {
|
||||
//notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL );
|
||||
info( (($blocked) ? t('Contact has been blocked') : t('Contact has been unblocked')) . EOL );
|
||||
}
|
||||
|
||||
goaway($a->get_baseurl(true) . '/contacts/' . $contact_id);
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
if($cmd === 'ignore') {
|
||||
$readonly = (($orig_record[0]['readonly']) ? 0 : 1);
|
||||
$r = q("UPDATE `contact` SET `readonly` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($readonly),
|
||||
intval($contact_id),
|
||||
intval(local_user())
|
||||
);
|
||||
$r = _contact_ignore($contact_id, $orig_record[0]);
|
||||
if($r) {
|
||||
info( (($readonly) ? t('Contact has been ignored') : t('Contact has been unignored')) . EOL );
|
||||
}
|
||||
|
||||
goaway($a->get_baseurl(true) . '/contacts/' . $contact_id);
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
|
||||
if($cmd === 'archive') {
|
||||
$archived = (($orig_record[0]['archive']) ? 0 : 1);
|
||||
$r = q("UPDATE `contact` SET `archive` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($archived),
|
||||
intval($contact_id),
|
||||
intval(local_user())
|
||||
);
|
||||
if ($archived) {
|
||||
q("UPDATE `item` SET `private` = 2 WHERE `contact-id` = %d AND `uid` = %d", intval($contact_id), intval(local_user()));
|
||||
}
|
||||
$r = _contact_archive($contact_id, $orig_record[0]);
|
||||
if($r) {
|
||||
//notice( t('Contact has been ') . (($archived) ? t('archived') : t('unarchived')) . EOL );
|
||||
info( (($archived) ? t('Contact has been archived') : t('Contact has been unarchived')) . EOL );
|
||||
}
|
||||
|
||||
goaway($a->get_baseurl(true) . '/contacts/' . $contact_id);
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
@ -257,15 +331,13 @@ function contacts_content(&$a) {
|
|||
}
|
||||
// Now check how the user responded to the confirmation query
|
||||
if($_REQUEST['canceled']) {
|
||||
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
|
||||
|
||||
if(x($_SESSION,'return_url'))
|
||||
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
|
||||
else
|
||||
goaway($a->get_baseurl(true) . '/contacts');
|
||||
}
|
||||
|
||||
require_once('include/Contact.php');
|
||||
|
||||
terminate_friendship($a->user,$a->contact,$orig_record[0]);
|
||||
|
||||
contact_remove($orig_record[0]['id']);
|
||||
_contact_drop($contact_id, $orig_record[0]);
|
||||
info( t('Contact has been removed.') . EOL );
|
||||
if(x($_SESSION,'return_url'))
|
||||
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
|
||||
|
@ -534,7 +606,7 @@ function contacts_content(&$a) {
|
|||
$search_txt = dbesc(protect_sprintf(preg_quote($search)));
|
||||
$searching = true;
|
||||
}
|
||||
$sql_extra .= (($searching) ? " AND `name` REGEXP '$search_txt' " : "");
|
||||
$sql_extra .= (($searching) ? " AND (name REGEXP '$search_txt' OR url REGEXP '$search_txt' OR nick REGEXP '$search_txt') " : "");
|
||||
|
||||
if($nets)
|
||||
$sql_extra .= sprintf(" AND network = '%s' ", dbesc($nets));
|
||||
|
@ -612,6 +684,7 @@ function contacts_content(&$a) {
|
|||
|
||||
$tpl = get_markup_template("contacts-template.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$baseurl' => $a->get_baseurl(),
|
||||
'$header' => t('Contacts') . (($nets) ? ' - ' . network_to_name($nets) : ''),
|
||||
'$tabs' => $t,
|
||||
'$total' => $total,
|
||||
|
@ -621,6 +694,14 @@ function contacts_content(&$a) {
|
|||
'$submit' => t('Find'),
|
||||
'$cmd' => $a->cmd,
|
||||
'$contacts' => $contacts,
|
||||
'$contact_drop_confirm' => t('Do you really want to delete this contact?'),
|
||||
'$batch_actions' => array(
|
||||
'contacts_batch_update' => t('Update'),
|
||||
'contacts_batch_block' => t('Block')."/".t("Unblock"),
|
||||
"contacts_batch_ignore" => t('Ignore')."/".t("Unignore"),
|
||||
"contacts_batch_archive" => t('Archive')."/".t("Unarchive"),
|
||||
"contacts_batch_drop" => t('Delete'),
|
||||
),
|
||||
'$paginate' => paginate($a),
|
||||
|
||||
));
|
||||
|
|
|
@ -156,7 +156,9 @@ function crepair_content(&$a) {
|
|||
'$label_notify' => t('Notification Endpoint URL'),
|
||||
'$label_poll' => t('Poll/Feed URL'),
|
||||
'$label_photo' => t('New photo from this URL'),
|
||||
'$label_self' => t('Mirror all posts to the wall?'),
|
||||
'$label_remote_self' => t('Remote Self'),
|
||||
'$allow_remote_self' => get_config('system','allow_users_remote_self'),
|
||||
'$remote_self' => array('remote_self', t('Mirror postings from this contact'), $contact['remote_self'], t('Mark this contact as remote_self, this will cause friendica to repost new entries from this contact.')),
|
||||
'$contact_name' => $contact['name'],
|
||||
'$contact_nick' => $contact['nick'],
|
||||
'$contact_id' => $contact['id'],
|
||||
|
@ -169,7 +171,7 @@ function crepair_content(&$a) {
|
|||
'$contact_self' => array('remote_self', t('Mirror all posts to the wall?'), $contact['remote_self'],
|
||||
t('Shall all posts from this contact posted like your own posts?')),
|
||||
'$lbl_submit' => t('Submit')
|
||||
));
|
||||
));
|
||||
|
||||
return $o;
|
||||
|
||||
|
|
|
@ -311,9 +311,9 @@ function parse_url_content(&$a) {
|
|||
logger('parse_url: ' . $url);
|
||||
|
||||
if($textmode)
|
||||
$template = $br . '[bookmark=%s]%s[/bookmark]%s' . $br;
|
||||
$template = '[bookmark=%s]%s[/bookmark]%s' . $br;
|
||||
else
|
||||
$template = "<br /><a class=\"bookmark\" href=\"%s\" >%s</a>%s<br />";
|
||||
$template = "<a class=\"bookmark\" href=\"%s\" >%s</a>%s<br />";
|
||||
|
||||
$arr = array('url' => $url, 'text' => '');
|
||||
|
||||
|
@ -328,9 +328,9 @@ function parse_url_content(&$a) {
|
|||
if($url && $title && $text) {
|
||||
|
||||
if($textmode)
|
||||
$text = $br . '[quote]' . trim($text) . '[/quote]' . $br;
|
||||
$text = '[quote]' . trim($text) . '[/quote]' . $br;
|
||||
else
|
||||
$text = '<br /><blockquote>' . trim($text) . '</blockquote><br />';
|
||||
$text = '<blockquote>' . trim($text) . '</blockquote><br />';
|
||||
|
||||
$title = str_replace(array("\r","\n"),array('',''),$title);
|
||||
|
||||
|
@ -344,8 +344,10 @@ function parse_url_content(&$a) {
|
|||
|
||||
$siteinfo = parseurl_getsiteinfo($url);
|
||||
|
||||
$sitedata = "";
|
||||
|
||||
if($siteinfo["title"] == "") {
|
||||
echo sprintf($template,$url,$url,'') . $str_tags;
|
||||
$sitedata .= sprintf($template,$url,$url,'') . $str_tags;
|
||||
killme();
|
||||
} else {
|
||||
$text = $siteinfo["text"];
|
||||
|
@ -377,20 +379,24 @@ function parse_url_content(&$a) {
|
|||
|
||||
if(strlen($text)) {
|
||||
if($textmode)
|
||||
$text = $br.'[quote]'.trim($text).'[/quote]'.$br ;
|
||||
$text = '[quote]'.trim($text).'[/quote]';
|
||||
else
|
||||
$text = '<br /><blockquote>'.trim($text).'</blockquote><br />';
|
||||
$text = '<blockquote>'.trim($text).'</blockquote>';
|
||||
}
|
||||
|
||||
if($image) {
|
||||
$text = $br.$br.$image.$text;
|
||||
}
|
||||
|
||||
$title = str_replace(array("\r","\n"),array('',''),$title);
|
||||
|
||||
$result = sprintf($template,$url,($title) ? $title : $url,$text) . $str_tags;
|
||||
|
||||
logger('parse_url: returns: ' . $result);
|
||||
|
||||
echo trim($result);
|
||||
$sitedata .= trim($result);
|
||||
|
||||
echo "[class=type-link]".$sitedata."[/class]";
|
||||
|
||||
killme();
|
||||
}
|
||||
|
|
|
@ -1,6 +1,18 @@
|
|||
Site speed can be improved when the following indexes are set. They cannot be set through the update script because on large sites they will block the site for several minutes.
|
||||
Site speed can be improved when the following indexes are set. They
|
||||
cannot be set through the update script because on large sites they will
|
||||
block the site for several minutes.
|
||||
|
||||
CREATE INDEX `uid_commented` ON `item` (`uid`, `commented`);
|
||||
CREATE INDEX `uid_created` ON `item` (`uid`, `created`);
|
||||
CREATE INDEX `uid_unseen` ON `item` (`uid`, `unseen`);
|
||||
CREATE INDEX `resource-id` ON `item` (`resource-id`);
|
||||
CREATE INDEX `uri_received` ON item(`uri`, `received`);
|
||||
CREATE INDEX `received_uri` ON item(`received`, `uri`);
|
||||
CREATE INDEX `contact-id_created` ON item(`contact-id`, created);
|
||||
CREATE INDEX `uid_network_received` ON item(`uid`, `network`, `received`);
|
||||
CREATE INDEX `uid_parent` ON item(`uid`, `parent`);
|
||||
CREATE INDEX `uid_received` ON item(`uid`, `received`);
|
||||
CREATE INDEX `uid_network_commented` ON item(`uid`, `network`, `commented`);
|
||||
CREATE INDEX `uid_commented` ON item(`uid`, `commented`);
|
||||
CREATE INDEX `uid_title` ON item(uid, `title`);
|
||||
CREATE INDEX `created_contact-id` ON item(`created`, `contact-id`);
|
||||
|
|
1291
util/messages.po
1291
util/messages.po
File diff suppressed because it is too large
Load diff
1293
view/de/messages.po
1293
view/de/messages.po
File diff suppressed because it is too large
Load diff
|
@ -485,6 +485,8 @@ $a->strings["Disallow public access to addons listed in the apps menu."] = "Öff
|
|||
$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Wenn ausgewählt werden die im Apps Menü aufgeführten Addons nur angemeldeten Nutzern der Seite zur Verfügung gestellt.";
|
||||
$a->strings["Don't embed private images in posts"] = "Private Bilder nicht in Beiträgen einbetten.";
|
||||
$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Ersetze lokal gehostete private Fotos in Beiträgen nicht mit einer eingebetteten Kopie des Bildes. Dies bedeutet, dass Kontakte, die Beiträge mit privaten Fotos erhalten sich zunächst auf den jeweiligen Servern authentifizieren müssen bevor die Bilder geladen und angezeigt werden, was eine gewisse Zeit dauert.";
|
||||
$a->strings["Allow Users to set remote_self"] = "Nutzern erlauben das remote_self Flag zu setzen";
|
||||
$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "Ist dies ausgewählt kann jeder Nutzer jeden seiner Kontakte als remote_self (entferntes Konto) im Kontakt reparieren Dialog markieren. Nach dem setzten dieses Flags werden alle Top-Level Beiträge dieser Kontakte automatisch in den Stream dieses Nutzers gepostet.";
|
||||
$a->strings["Block multiple registrations"] = "Unterbinde Mehrfachregistrierung";
|
||||
$a->strings["Disallow users to register additional accounts for use as pages."] = "Benutzern nicht erlauben, weitere Konten als zusätzliche Profile anzulegen.";
|
||||
$a->strings["OpenID support"] = "OpenID Unterstützung";
|
||||
|
@ -649,6 +651,9 @@ $a->strings["Friend Confirm URL"] = "URL für Bestätigungen von Freundschaftsan
|
|||
$a->strings["Notification Endpoint URL"] = "URL-Endpunkt für Benachrichtigungen";
|
||||
$a->strings["Poll/Feed URL"] = "Pull/Feed-URL";
|
||||
$a->strings["New photo from this URL"] = "Neues Foto von dieser URL";
|
||||
$a->strings["Remote Self"] = "Entfernte Konten";
|
||||
$a->strings["Mirror postings from this contact"] = "Spiegle Beiträge dieses Kontakts";
|
||||
$a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Markiere diesen Kontakt als remote_self (entferntes Konto), dies veranlasst Friendica alle Top-Level Beiträge dieses Kontakts an all deine Kontakte zu senden.";
|
||||
$a->strings["Move account"] = "Account umziehen";
|
||||
$a->strings["You can import an account from another Friendica server."] = "Du kannst einen Account von einem anderen Friendica Server importieren.";
|
||||
$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Du musst deinen Account vom alten Server exportieren und hier hochladen. Wir stellen deinen alten Account mit all deinen Kontakten wieder her. Wir werden auch versuchen all deine Freunde darüber zu informieren, dass du hierher umgezogen bist.";
|
||||
|
@ -708,6 +713,10 @@ $a->strings["Your Identity Address:"] = "Adresse deines Profils:";
|
|||
$a->strings["Submit Request"] = "Anfrage abschicken";
|
||||
$a->strings["[Embedded content - reload page to view]"] = "[Eingebetteter Inhalt - Seite neu laden zum Betrachten]";
|
||||
$a->strings["View in context"] = "Im Zusammenhang betrachten";
|
||||
$a->strings["%d contact edited."] = array(
|
||||
0 => "%d Kontakt bearbeitet.",
|
||||
1 => "%d Kontakte bearbeitet",
|
||||
);
|
||||
$a->strings["Could not access contact record."] = "Konnte nicht auf die Kontaktdaten zugreifen.";
|
||||
$a->strings["Could not locate selected profile."] = "Konnte das ausgewählte Profil nicht finden.";
|
||||
$a->strings["Contact updated."] = "Kontakt aktualisiert.";
|
||||
|
@ -779,6 +788,7 @@ $a->strings["is a fan of yours"] = "ist ein Fan von dir";
|
|||
$a->strings["you are a fan of"] = "du bist Fan von";
|
||||
$a->strings["Edit contact"] = "Kontakt bearbeiten";
|
||||
$a->strings["Search your contacts"] = "Suche in deinen Kontakten";
|
||||
$a->strings["Update"] = "Aktualisierungen";
|
||||
$a->strings["everybody"] = "jeder";
|
||||
$a->strings["Account settings"] = "Kontoeinstellungen";
|
||||
$a->strings["Additional features"] = "Zusätzliche Features";
|
||||
|
@ -789,7 +799,6 @@ $a->strings["Connected apps"] = "Verbundene Programme";
|
|||
$a->strings["Export personal data"] = "Persönliche Daten exportieren";
|
||||
$a->strings["Remove account"] = "Konto löschen";
|
||||
$a->strings["Missing some important data!"] = "Wichtige Daten fehlen!";
|
||||
$a->strings["Update"] = "Aktualisierungen";
|
||||
$a->strings["Failed to connect with email account using the settings provided."] = "Verbindung zum E-Mail-Konto mit den angegebenen Einstellungen nicht möglich.";
|
||||
$a->strings["Email settings updated."] = "E-Mail Einstellungen bearbeitet.";
|
||||
$a->strings["Features updated"] = "Features aktualisiert";
|
||||
|
@ -1289,6 +1298,8 @@ $a->strings["Categories"] = "Kategorien";
|
|||
$a->strings["Click here to upgrade."] = "Zum Upgraden hier klicken.";
|
||||
$a->strings["This action exceeds the limits set by your subscription plan."] = "Diese Aktion überschreitet die Obergrenze deines Abonnements.";
|
||||
$a->strings["This action is not available under your subscription plan."] = "Diese Aktion ist in deinem Abonnement nicht verfügbar.";
|
||||
$a->strings["User not found."] = "Nutzer nicht gefunden.";
|
||||
$a->strings["There is no status with this id."] = "Es gibt keinen Status mit dieser ID.";
|
||||
$a->strings["view full size"] = "Volle Größe anzeigen";
|
||||
$a->strings["Starts:"] = "Beginnt:";
|
||||
$a->strings["Finishes:"] = "Endet:";
|
||||
|
|
12094
view/pl/messages.po
12094
view/pl/messages.po
File diff suppressed because it is too large
Load diff
2862
view/pl/strings.php
2862
view/pl/strings.php
File diff suppressed because it is too large
Load diff
|
@ -1,8 +1,4 @@
|
|||
{{*
|
||||
* AUTOMATICALLY GENERATED TEMPLATE
|
||||
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||
*
|
||||
*}}
|
||||
|
||||
<div id="acl-wrapper">
|
||||
<input id="acl-search">
|
||||
<a href="#" id="acl-showall">{{$showall}}</a>
|
||||
|
@ -24,7 +20,8 @@ $(document).ready(function() {
|
|||
if(typeof acl=="undefined"){
|
||||
acl = new ACL(
|
||||
baseurl+"/acl",
|
||||
[ {{$allowcid}},{{$allowgid}},{{$denycid}},{{$denygid}} ]
|
||||
[ {{$allowcid}},{{$allowgid}},{{$denycid}},{{$denygid}} ],
|
||||
{{$features.aclautomention}}
|
||||
);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -89,6 +89,7 @@
|
|||
{{include file="field_checkbox.tpl" field=$enotify_no_content}}
|
||||
{{include file="field_checkbox.tpl" field=$private_addons}}
|
||||
{{include file="field_checkbox.tpl" field=$disable_embedded}}
|
||||
{{include file="field_checkbox.tpl" field=$allow_users_remote_self}}
|
||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
||||
|
||||
<h3>{{$advanced}}</h3>
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
{{*
|
||||
* AUTOMATICALLY GENERATED TEMPLATE
|
||||
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||
*
|
||||
*}}
|
||||
|
||||
<div class="contact-entry-wrapper" id="contact-entry-wrapper-{{$contact.id}}" >
|
||||
<div class="contact-entry-photo-wrapper" >
|
||||
|
@ -12,15 +7,16 @@
|
|||
|
||||
<a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
|
||||
|
||||
<input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}">
|
||||
{{if $contact.photo_menu}}
|
||||
<span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span>
|
||||
<div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
|
||||
<ul>
|
||||
{{foreach $contact.photo_menu as $c}}
|
||||
{{foreach $contact.photo_menu as $k=>$c}}
|
||||
{{if $c.2}}
|
||||
<li><a target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
|
||||
<li><a class="{{$k}}" target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
|
||||
{{else}}
|
||||
<li><a href="{{$c.1}}">{{$c.0}}</a></li>
|
||||
<li><a class="{{$k}}" href="{{$c.1}}">{{$c.0}}</a></li>
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
{{*
|
||||
* AUTOMATICALLY GENERATED TEMPLATE
|
||||
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||
*
|
||||
*}}
|
||||
|
||||
<h1>{{$header}}{{if $total}} ({{$total}}){{/if}}</h1>
|
||||
|
||||
{{if $finding}}<h4>{{$finding}}</h4>{{/if}}
|
||||
|
@ -18,11 +14,44 @@
|
|||
|
||||
{{$tabs}}
|
||||
|
||||
|
||||
<form action="{{$baseurl}}/contacts/batch/" method="POST">
|
||||
{{foreach $contacts as $contact}}
|
||||
{{include file="contact_template.tpl"}}
|
||||
{{/foreach}}
|
||||
<div id="contact-edit-end"></div>
|
||||
<div id="contats-actions">
|
||||
{{foreach $batch_actions as $n=>$l}}
|
||||
<input class="batch-action" name="{{$n}}" value="{{$l}}" type="submit">
|
||||
{{/foreach}}
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// javascript dialog to batch actions
|
||||
$(".batch-action").click(function(e){
|
||||
if (confirm($(this).attr('value')+" ?")) {
|
||||
return true;
|
||||
} else {
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
// add javascript confirm dialog to "drop" links. Plain html url have "?confirm=1" to show confirmation form, we need to remove it
|
||||
$(".drop").each(function() {
|
||||
$(this).attr('href', $(this).attr('href').replace("confirm=1","") );
|
||||
$(this).click(function(e){
|
||||
if (confirm("{{$contact_drop_confirm}}")) {
|
||||
return true;
|
||||
} else {
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{$paginate}}
|
||||
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
{{*
|
||||
* AUTOMATICALLY GENERATED TEMPLATE
|
||||
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||
*
|
||||
*}}
|
||||
|
||||
<form id="crepair-form" action="crepair/{{$contact_id}}" method="post" >
|
||||
|
||||
<h4>{{$contact_name}}</h4>
|
||||
|
@ -43,6 +37,10 @@
|
|||
<label id="crepair-photo-label" class="crepair-label" for="crepair-photo">{{$label_photo}}</label>
|
||||
<input type="text" id="crepair-photo" class="crepair-input" name="photo" value="" />
|
||||
<div class="clear"></div>
|
||||
{{if $allow_remote_self eq 1}}
|
||||
<h4>{{$label_remote_self}}</h4>
|
||||
{{include file="field_checkbox.tpl" field=$remote_self}}
|
||||
{{/if}}
|
||||
|
||||
{{include file="field_checkbox.tpl" field=$contact_self}}
|
||||
|
||||
|
|
|
@ -91,6 +91,7 @@ nav {
|
|||
display: block;
|
||||
margin: 0px 10%;
|
||||
border-bottom: 1px solid #babdb6;
|
||||
position: relative;
|
||||
}
|
||||
nav #site-location {
|
||||
color: #888a85;
|
||||
|
@ -1616,6 +1617,9 @@ input#dfrn-url {
|
|||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.contact-select { position: absolute; top: 64px; left:64px; display:none; }
|
||||
.contact-select:checked,
|
||||
.contact-entry-photo:hover .contact-select { display:block; }
|
||||
|
||||
.contact-photo-menu-button {
|
||||
position: absolute;
|
||||
|
@ -2905,6 +2909,8 @@ aside input[type='text'] {
|
|||
|
||||
.field.radio .field_help { margin-left: 0px; }
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* ADMIN
|
||||
*/
|
||||
|
@ -3252,7 +3258,7 @@ ul.menu-popup {
|
|||
list-style: none;
|
||||
z-index: 100000;
|
||||
top: 90px;
|
||||
left: 400px;
|
||||
left: 200px;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 320px;
|
||||
|
@ -3328,3 +3334,63 @@ ul.menu-popup {
|
|||
.shared_header span {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
/* small screens */
|
||||
@media all and (max-width: 1089px) {
|
||||
.field label { width: 90%; }
|
||||
.field input, .field textarea, .field select { width: 90%; }
|
||||
.field input[type="checkbox"],.field input[type="radio"] {
|
||||
width: 2em;
|
||||
}
|
||||
#id_openid_url { width: 85%; }
|
||||
.field_help { margin-left: 0px; }
|
||||
textarea { width: 100%; }
|
||||
}
|
||||
@media all and (max-width: 760px) {
|
||||
body { background-image: none; }
|
||||
nav, aside, section, footer {
|
||||
margin: 0px;
|
||||
float: none;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding: 0.5em;
|
||||
height: auto;
|
||||
}
|
||||
aside:before {
|
||||
content: ">>";
|
||||
display: block;
|
||||
background-color: #eee;
|
||||
}
|
||||
aside { overflow: hidden; min-height: 0; height: 1em;}
|
||||
aside:hover, aside:focus { height: auto; }
|
||||
|
||||
nav .nav-link {
|
||||
float: left;
|
||||
width: 23%;
|
||||
min-width: 100px;
|
||||
height: 15px;
|
||||
display: block;
|
||||
margin: 0.4em 2px 0 0;
|
||||
|
||||
padding: 6px 3px;
|
||||
border-width: 1px 1px 0px;
|
||||
border-style: solid solid none;
|
||||
border-color: rgb(186, 189, 182);
|
||||
background-color: rgb(174, 192,211)!important;
|
||||
}
|
||||
.nav-commlink.selected,
|
||||
.nav-commlink {
|
||||
border-bottom: 0px;
|
||||
padding: 6px 3px;
|
||||
min-width: 100px;
|
||||
float: left;
|
||||
margin-top: 0.4em;
|
||||
width: 23%;
|
||||
bottom: auto;
|
||||
}
|
||||
.nav-ajax-left {margin-left: -1em; margin-top: 0px; }
|
||||
nav #site-location,
|
||||
nav #banner { position: relative; clear:both; }
|
||||
ul.menu-popup { left: 0px; top 20px; }
|
||||
|
||||
}
|
|
@ -1349,6 +1349,19 @@ span[id^="showmore-wrap"] {
|
|||
.contact-photo-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
.contact-select {
|
||||
position: absolute;
|
||||
top: 64px;
|
||||
left: 64px;
|
||||
display: none;
|
||||
}
|
||||
.contact-select:checked,
|
||||
.contact-photo:hover .contact-select {
|
||||
display: block;
|
||||
}
|
||||
#contats-actions {
|
||||
clear: both;
|
||||
}
|
||||
.contact-photo {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
|
|
|
@ -1349,6 +1349,19 @@ span[id^="showmore-wrap"] {
|
|||
.contact-photo-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
.contact-select {
|
||||
position: absolute;
|
||||
top: 64px;
|
||||
left: 64px;
|
||||
display: none;
|
||||
}
|
||||
.contact-select:checked,
|
||||
.contact-photo:hover .contact-select {
|
||||
display: block;
|
||||
}
|
||||
#contats-actions {
|
||||
clear: both;
|
||||
}
|
||||
.contact-photo {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
|
|
|
@ -1349,6 +1349,19 @@ span[id^="showmore-wrap"] {
|
|||
.contact-photo-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
.contact-select {
|
||||
position: absolute;
|
||||
top: 64px;
|
||||
left: 64px;
|
||||
display: none;
|
||||
}
|
||||
.contact-select:checked,
|
||||
.contact-photo:hover .contact-select {
|
||||
display: block;
|
||||
}
|
||||
#contats-actions {
|
||||
clear: both;
|
||||
}
|
||||
.contact-photo {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
|
|
|
@ -528,6 +528,7 @@ section {
|
|||
.contact-photo {
|
||||
width: 32px; height: 32px;
|
||||
}
|
||||
|
||||
.contact-photo-menu-button {
|
||||
top: 15px !important;
|
||||
left: 0px !important;
|
||||
|
@ -738,6 +739,10 @@ span[id^="showmore-wrap"] {
|
|||
|
||||
|
||||
.contact-photo-wrapper { position: relative; }
|
||||
.contact-select { position: absolute; top:64px; left:64px; display:none; }
|
||||
.contact-select:checked,
|
||||
.contact-photo:hover .contact-select { display:block; }
|
||||
#contats-actions { clear: both; }
|
||||
.contact-photo {
|
||||
width: 48px; height: 48px;
|
||||
img { width: 48px; height: 48px; }
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
{{*
|
||||
* AUTOMATICALLY GENERATED TEMPLATE
|
||||
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
|
||||
*
|
||||
*}}
|
||||
|
||||
<div class="contact-wrapper" id="contact-entry-wrapper-{{$id}}" >
|
||||
<div class="contact-photo-wrapper" >
|
||||
|
@ -12,6 +7,7 @@
|
|||
|
||||
<a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
|
||||
|
||||
<input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}">
|
||||
{{if $contact.photo_menu}}
|
||||
<a href="#" rel="#contact-photo-menu-{{$contact.id}}" class="contact-photo-menu-button icon s16 menu" id="contact-photo-menu-button-{{$contact.id}}">menu</a>
|
||||
<ul class="contact-photo-menu menu-popup" id="contact-photo-menu-{{$contact.id}}">
|
||||
|
|
|
@ -291,7 +291,9 @@ blockquote.shared_content {
|
|||
body {
|
||||
font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
background-color: #ffffff;
|
||||
/* background-color: #ffffff; */
|
||||
background-color: #FAFAFA;
|
||||
/* background-color: rgb(252, 252, 252); */
|
||||
color: #2d2d2d;
|
||||
margin: 0px 0px 0px 0px;
|
||||
display: table;
|
||||
|
@ -1087,7 +1089,9 @@ section {
|
|||
width: 766px;
|
||||
max-width: 766px;
|
||||
padding: 10px 10px 10px 10px;
|
||||
background-color: white;
|
||||
/* background-color: white; */
|
||||
/* background-color: rgb(252, 252, 252); */
|
||||
background-color: #FAFAFA;
|
||||
border-bottom: 1px solid lightgray;
|
||||
border-right: 1px solid lightgray;
|
||||
border-left: 1px solid lightgray;
|
||||
|
@ -1410,6 +1414,31 @@ border-bottom: 1px solid #D2D2D2;
|
|||
padding-right: 12px; */
|
||||
}
|
||||
|
||||
.twit {
|
||||
background-color: #FFFAFA;
|
||||
}
|
||||
.pump {
|
||||
background-color: #FAFFFA;
|
||||
}
|
||||
.face {
|
||||
background-color: #FAFAFF;
|
||||
}
|
||||
.feed {
|
||||
background-color: #FFFFFA;
|
||||
}
|
||||
.dspr {
|
||||
background-color: #FFFAFF;
|
||||
}
|
||||
.dfrn {
|
||||
background-color: #FAFFFF;
|
||||
}
|
||||
.stat {
|
||||
background-color: #FAFAFA;
|
||||
}
|
||||
.mail {
|
||||
background-color: #FFFFF9;
|
||||
}
|
||||
|
||||
#profile-jot-form #profile-jot-text {
|
||||
height: 2.0em;
|
||||
/* width: 99%; */
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
{{foreach $threads as $thread}}
|
||||
|
||||
<div id="tread-wrapper-{{$thread.id}}" class="tread-wrapper {{if $thread.threaded}}threaded{{/if}} {{$thread.toplevel}}">
|
||||
<div id="tread-wrapper-{{$thread.id}}" class="tread-wrapper {{if $thread.threaded}}threaded{{/if}} {{$thread.toplevel}} {{$thread.network}}">
|
||||
|
||||
|
||||
{{if $thread.type == tag}}
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<img id="like-rotator-{{$item.id}}" class="like-rotator" src="images/rotator.gif" alt="{{$item.wait}}" title="{{$item.wait}}" style="display: none;" />
|
||||
</div>
|
||||
|
||||
<div class="wall-item-container {{$item.indent}} {{$item.shiny}} " id="item-{{$item.id}}">
|
||||
<div class="wall-item-container {{$item.indent}} {{$item.shiny}} {{$item.network}}" id="item-{{$item.id}}">
|
||||
<div class="wall-item-item">
|
||||
<div class="wall-item-info">
|
||||
<div class="contact-photo-wrapper mframe{{if $item.owner_url}} wwfrom{{/if}}"
|
||||
|
|
Loading…
Reference in a new issue