aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Module/Connections.php8
-rw-r--r--Zotlabs/Module/Viewconnections.php10
-rw-r--r--Zotlabs/Update/_1204.php6
-rw-r--r--Zotlabs/Update/_1205.php27
-rwxr-xr-xboot.php4
-rw-r--r--include/text.php3
-rw-r--r--install/schema_mysql.sql6
-rw-r--r--view/css/mod_connections.css8
-rw-r--r--view/css/mod_viewconnections.css6
-rw-r--r--view/css/widgets.css7
-rw-r--r--view/theme/redbasic/css/style.css5
-rwxr-xr-xview/tpl/connection_template.tpl7
-rwxr-xr-xview/tpl/contact_template.tpl3
-rwxr-xr-xview/tpl/micropro_img.tpl2
14 files changed, 88 insertions, 14 deletions
diff --git a/Zotlabs/Module/Connections.php b/Zotlabs/Module/Connections.php
index 255731c9c..55e716ace 100644
--- a/Zotlabs/Module/Connections.php
+++ b/Zotlabs/Module/Connections.php
@@ -245,6 +245,11 @@ class Connections extends \Zotlabs\Web\Controller {
((intval($rr['abook_blocked'])) ? t('Blocked') : ''),
((intval($rr['abook_not_here'])) ? t('Not connected at this location') : '')
);
+
+ $oneway = false;
+ if(! intval(get_abconfig(local_channel(),$rr['xchan_hash'],'their_perms','post_comments'))) {
+ $oneway = true;
+ }
foreach($status as $str) {
if(!$str)
@@ -283,7 +288,8 @@ class Connections extends \Zotlabs\Web\Controller {
'ignore_hover' => t('Ignore connection'),
'ignore' => ((! $rr['abook_ignored']) ? t('Ignore') : false),
'recent_label' => t('Recent activity'),
- 'recentlink' => z_root() . '/network/?f=&cid=' . intval($rr['abook_id'])
+ 'recentlink' => z_root() . '/network/?f=&cid=' . intval($rr['abook_id']),
+ 'oneway' => $oneway
);
}
}
diff --git a/Zotlabs/Module/Viewconnections.php b/Zotlabs/Module/Viewconnections.php
index 1f9c03751..8366e1325 100644
--- a/Zotlabs/Module/Viewconnections.php
+++ b/Zotlabs/Module/Viewconnections.php
@@ -44,7 +44,7 @@ class Viewconnections extends \Zotlabs\Web\Controller {
$sql_extra = '';
if(! $is_owner) {
- $abook_flags = " and abook_hidden = 0 ";
+ $abook_flags .= " and abook_hidden = 0 ";
$sql_extra = " and xchan_hidden = 0 ";
}
@@ -69,8 +69,13 @@ class Viewconnections extends \Zotlabs\Web\Controller {
$contacts = array();
foreach($r as $rr) {
+
+ $oneway = false;
+ if(! intval(get_abconfig(\App::$profile['uid'],$rr['xchan_hash'],'their_perms','post_comments'))) {
+ $oneway = true;
+ }
- $url = chanlink_hash($rr['xchan_hash']);
+ $url = chanlink_hash($rr['xchan_hash']);
if($url) {
$contacts[] = array(
'id' => $rr['abook_id'],
@@ -83,6 +88,7 @@ class Viewconnections extends \Zotlabs\Web\Controller {
'sparkle' => '',
'itemurl' => $rr['url'],
'network' => '',
+ 'oneway' => $oneway
);
}
}
diff --git a/Zotlabs/Update/_1204.php b/Zotlabs/Update/_1204.php
index f55526415..93c2e4e3f 100644
--- a/Zotlabs/Update/_1204.php
+++ b/Zotlabs/Update/_1204.php
@@ -7,7 +7,7 @@ class _1204 {
function run() {
if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
- $r1 = q("ALTER TABLE poll ADD pull_guid text NOT NULL");
+ $r1 = q("ALTER TABLE poll ADD poll_guid text NOT NULL");
$r2 = q("create index \"poll_guid_idx\" on poll \"poll_guid\"");
$r3 = q("ALTER TABLE poll_elm ADD pelm_guid text NOT NULL");
$r4 = q("create index \"pelm_guid_idx\" on poll_elm \"pelm_guid\"");
@@ -17,9 +17,9 @@ class _1204 {
$r = ($r1 && $r2 && $r3 && $r4 && $r5 && $r6);
}
else {
- $r1 = q("ALTER TABLE `poll` ADD `pull_guid` VARCHAR(191) NOT NULL, ADD INDEX `poll_guid` (`pull_guid`) ");
+ $r1 = q("ALTER TABLE `poll` ADD `poll_guid` VARCHAR(191) NOT NULL, ADD INDEX `poll_guid` (`poll_guid`) ");
$r2 = q("ALTER TABLE `poll_elm` ADD `pelm_guid` VARCHAR(191) NOT NULL, ADD INDEX `pelm_guid` (`pelm_guid`) ");
- $r1 = q("ALTER TABLE `vote` ADD `vote_guid` VARCHAR(191) NOT NULL, ADD INDEX `vote_guid` (`vote_guid`) ");
+ $r3 = q("ALTER TABLE `vote` ADD `vote_guid` VARCHAR(191) NOT NULL, ADD INDEX `vote_guid` (`vote_guid`) ");
$r = ($r1 && $r2 && $r3);
}
diff --git a/Zotlabs/Update/_1205.php b/Zotlabs/Update/_1205.php
new file mode 100644
index 000000000..5384f183e
--- /dev/null
+++ b/Zotlabs/Update/_1205.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1205 {
+
+ function run() {
+
+ if(ACTIVE_DBTYPE == DBTYPE_MYSQL) {
+ $r = q("ALTER TABLE item
+ DROP INDEX item_private,
+ ADD INDEX uid_item_private (uid, item_private),
+ ADD INDEX item_wall (item_wall),
+ ADD INDEX item_pending_remove_changed (item_pending_remove, changed)
+ ");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+ }
+ else {
+ return UPDATE_SUCCESS;
+ }
+
+ }
+
+}
diff --git a/boot.php b/boot.php
index 9b09f11eb..c4556213c 100755
--- a/boot.php
+++ b/boot.php
@@ -50,10 +50,10 @@ require_once('include/attach.php');
require_once('include/bbcode.php');
define ( 'PLATFORM_NAME', 'hubzilla' );
-define ( 'STD_VERSION', '3.1.12' );
+define ( 'STD_VERSION', '3.1.13' );
define ( 'ZOT_REVISION', '1.3' );
-define ( 'DB_UPDATE_VERSION', 1204 );
+define ( 'DB_UPDATE_VERSION', 1205 );
define ( 'PROJECT_BASE', __DIR__ );
diff --git a/include/text.php b/include/text.php
index 35a367d43..6014f7437 100644
--- a/include/text.php
+++ b/include/text.php
@@ -979,7 +979,7 @@ function contact_block() {
// than wishful thinking; even though soapbox channels and feeds will disable it.
if(! intval(get_abconfig(App::$profile['uid'],$rr['xchan_hash'],'their_perms','post_comments'))) {
- $rr['archived'] = true;
+ $rr['oneway'] = true;
}
$micropro[] = micropro($rr,true,'mpfriend');
}
@@ -1033,6 +1033,7 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
return replace_macros(get_markup_template(($textmode)?'micropro_txt.tpl':'micropro_img.tpl'),array(
'$click' => (($contact['click']) ? $contact['click'] : ''),
'$class' => $class . (($contact['archived']) ? ' archived' : ''),
+ '$oneway' => (($contact['oneway']) ? true : false),
'$url' => $url,
'$photo' => $contact['xchan_photo_s'],
'$name' => $contact['xchan_name'],
diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql
index e1a63c1e3..76e6032fc 100644
--- a/install/schema_mysql.sql
+++ b/install/schema_mysql.sql
@@ -657,6 +657,7 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `uid_item_wall` (`uid`, `item_wall`),
KEY `uid_item_starred` (`uid`, `item_starred`),
KEY `uid_item_retained` (`uid`, `item_retained`),
+ KEY `uid_item_private` (`uid`, `item_private`),
KEY `aid` (`aid`),
KEY `owner_xchan` (`owner_xchan`),
KEY `author_xchan` (`author_xchan`),
@@ -667,7 +668,6 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `commented` (`commented`),
KEY `verb` (`verb`),
KEY `obj_type` (`obj_type`),
- KEY `item_private` (`item_private`),
KEY `llink` (`llink`),
KEY `expires` (`expires`),
KEY `revision` (`revision`),
@@ -681,6 +681,7 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `comments_closed` (`comments_closed`),
KEY `changed` (`changed`),
KEY `item_origin` (`item_origin`),
+ KEY `item_wall` (`item_wall`),
KEY `item_unseen` (`item_unseen`),
KEY `item_uplink` (`item_uplink`),
KEY `item_notshown` (`item_notshown`),
@@ -692,7 +693,8 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `item_verified` (`item_verified`),
KEY `item_rss` (`item_rss`),
KEY `item_consensus` (`item_consensus`),
- KEY `item_deleted_pending_remove_changed` (`item_deleted`, `item_pending_remove`, `changed`)
+ KEY `item_deleted_pending_remove_changed` (`item_deleted`, `item_pending_remove`, `changed`),
+ KEY `item_pending_remove_changed` (`item_pending_remove`, `changed`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `item_id` (
diff --git a/view/css/mod_connections.css b/view/css/mod_connections.css
index 00e6e2a70..4c26193b4 100644
--- a/view/css/mod_connections.css
+++ b/view/css/mod_connections.css
@@ -36,4 +36,10 @@
.connphone {
color: green;
-} \ No newline at end of file
+}
+
+.contact-photo-wrapper .oneway-overlay {
+ margin-top: -25px;
+ margin-left: 53px;
+ font-size: 20px;
+}
diff --git a/view/css/mod_viewconnections.css b/view/css/mod_viewconnections.css
index 56add4cac..1b0c7ab62 100644
--- a/view/css/mod_viewconnections.css
+++ b/view/css/mod_viewconnections.css
@@ -31,3 +31,9 @@
.contact-entry-end {
clear: both;
}
+
+.contact-entry-photo-wrapper .oneway-overlay {
+ margin-top: 25px;
+ margin-left: -25px;
+ font-size: 20px;
+}
diff --git a/view/css/widgets.css b/view/css/widgets.css
index a32ac045b..9cfcb4a88 100644
--- a/view/css/widgets.css
+++ b/view/css/widgets.css
@@ -216,3 +216,10 @@ a.wikilist {
#notifications {
margin-bottom: 1rem;
}
+
+/* contact block */
+.contact-block-div .oneway-overlay {
+ font-size: 20px;
+ margin-left: -25px;
+ margin-top: 25px;
+}
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index 1611cda60..75992468e 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -1800,3 +1800,8 @@ dl.bb-dl > dd > li {
.caption-visible {
max-height: 75%;
}
+
+.oneway-overlay {
+ position: absolute;
+ text-shadow: -2px 0 1px #fff, 0 2px 1px#fff, 2px 0 1px #fff, 0 -2px 1px #fff;
+}
diff --git a/view/tpl/connection_template.tpl b/view/tpl/connection_template.tpl
index 8e49c9e27..4543a69d0 100755
--- a/view/tpl/connection_template.tpl
+++ b/view/tpl/connection_template.tpl
@@ -18,7 +18,12 @@
</div>
<div class="section-content-tools-wrapper">
<div class="contact-photo-wrapper" >
- <a href="{{$contact.url}}" title="{{$contact.img_hover}}" ><img class="directory-photo-img {{if $contact.classes}}{{$contact.classes}}{{/if}}" src="{{$contact.thumb}}" alt="{{$contact.name}}" /></a>
+ <a href="{{$contact.url}}" title="{{$contact.img_hover}}" >
+ <img class="directory-photo-img {{if $contact.classes}}{{$contact.classes}}{{/if}}" src="{{$contact.thumb}}" alt="{{$contact.name}}" />
+ </a>
+ {{if $contact.oneway}}
+ <i class="fa fa-fw fa-minus-circle oneway-overlay text-danger"></i>
+ {{/if}}
</div>
<div class="contact-info">
{{if $contact.status}}
diff --git a/view/tpl/contact_template.tpl b/view/tpl/contact_template.tpl
index 3d1bfa4a4..2a2f996f4 100755
--- a/view/tpl/contact_template.tpl
+++ b/view/tpl/contact_template.tpl
@@ -1,6 +1,9 @@
<div class="contact-entry-wrapper" id="contact-entry-wrapper-{{$contact.id}}" >
<div class="contact-entry-photo-wrapper" >
<a href="{{$contact.link}}" title="{{$contact.img_hover}}" ><img class="contact-block-img" src="{{$contact.thumb}}" alt="{{$contact.name}}" /></a>
+ {{if $contact.oneway}}
+ <i class="fa fa-fw fa-minus-circle oneway-overlay text-danger"></i>
+ {{/if}}
</div>
<div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
diff --git a/view/tpl/micropro_img.tpl b/view/tpl/micropro_img.tpl
index a7c5973f3..7464430b5 100755
--- a/view/tpl/micropro_img.tpl
+++ b/view/tpl/micropro_img.tpl
@@ -1 +1 @@
-<div class="contact-block-div{{if $class}} {{$class}}{{/if}}"><a class="contact-block-link{{if $class}} {{$class}}{{/if}}{{if $click}} fakelink{{/if}}" href="{{if $click}}#{{else}}{{$url}}{{/if}}" {{if $click}}onclick="{{$click}}"{{/if}}><img class="contact-block-img{{if $class}} {{$class}}{{/if}}" src="{{$photo}}" title="{{$title}}" alt="" /></a></div>
+<div class="contact-block-div{{if $class}} {{$class}}{{/if}}"><a class="contact-block-link{{if $class}} {{$class}}{{/if}}{{if $click}} fakelink{{/if}}" href="{{if $click}}#{{else}}{{$url}}{{/if}}" {{if $click}}onclick="{{$click}}"{{/if}}><img class="contact-block-img{{if $class}} {{$class}}{{/if}}" src="{{$photo}}" title="{{$title}}" alt="" />{{if $oneway}}<i class="fa fa-fw fa-minus-circle oneway-overlay text-danger"></i>{{/if}}</a></div>