Issue 5158: Ignore all threads, even public ones (#5588)

* Issue 5158: Ignore all threads, even public ones

* Remove some notice

* Now it really should work

* Using "defaults"
This commit is contained in:
Michael Vogel 2018-08-08 22:32:11 +02:00 committed by Hypolite Petovan
parent 50e1512014
commit 276abfaba6
7 changed files with 61 additions and 44 deletions

View file

@ -230,12 +230,17 @@ class Item extends BaseObject
}
}
if (array_key_exists('ignored', $row) && array_key_exists('internal-user-ignored', $row) && !is_null($row['internal-user-ignored'])) {
$row['ignored'] = $row['internal-user-ignored'];
}
// Remove internal fields
unset($row['internal-activity']);
unset($row['internal-network']);
unset($row['internal-iid']);
unset($row['internal-iaid']);
unset($row['internal-icid']);
unset($row['internal-user-ignored']);
return $row;
}
@ -369,7 +374,7 @@ class Item extends BaseObject
$usermode = true;
}
$fields = self::fieldlist($selected);
$fields = self::fieldlist($selected, $usermode);
$select_fields = self::constructSelectFields($fields, $selected);
@ -476,7 +481,9 @@ class Item extends BaseObject
$usermode = true;
}
$fields = self::fieldlist($selected);
$fields = self::fieldlist($selected, $usermode);
$fields['thread'] = ['mention', 'ignored', 'iid'];
$threadfields = ['thread' => ['iid', 'uid', 'contact-id', 'owner-id', 'author-id',
'created', 'edited', 'commented', 'received', 'changed', 'wall', 'private',
@ -510,7 +517,7 @@ class Item extends BaseObject
*
* @return array field list
*/
private static function fieldlist($selected)
private static function fieldlist($selected, $usermode)
{
$fields = [];
@ -524,6 +531,10 @@ class Item extends BaseObject
'network' => 'internal-network', 'icid' => 'internal-icid',
'iaid' => 'internal-iaid'];
if ($usermode) {
$fields['user-item'] = ['ignored' => 'internal-user-ignored'];
}
$fields['item-activity'] = ['activity', 'activity' => 'internal-activity'];
$fields['item-content'] = array_merge(self::CONTENT_FIELDLIST, self::MIXED_CONTENT_FIELDLIST);
@ -681,6 +692,10 @@ class Item extends BaseObject
$selected[] = 'internal-activity';
}
if (in_array('ignored', $selected)) {
$selected[] = 'internal-user-ignored';
}
$selection = [];
foreach ($fields as $table => $table_fields) {
foreach ($table_fields as $field => $select) {

View file

@ -252,6 +252,18 @@ class Post extends BaseObject
$tagger = '';
if ($this->isToplevel()) {
$thread = Item::selectFirstThreadForUser(local_user(), ['ignored'], ['iid' => $item['id']]);
if (DBA::isResult($thread)) {
$ignore = [
'do' => L10n::t("ignore thread"),
'undo' => L10n::t("unignore thread"),
'toggle' => L10n::t("toggle ignore status"),
'classdo' => $thread['ignored'] ? "hidden" : "",
'classundo' => $thread['ignored'] ? "" : "hidden",
'ignored' => L10n::t('ignored'),
];
}
if ($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) {
$isstarred = (($item['starred']) ? "starred" : "unstarred");
@ -264,18 +276,6 @@ class Post extends BaseObject
'starred' => L10n::t('starred'),
];
$thread = DBA::selectFirst('thread', ['ignored'], ['uid' => $item['uid'], 'iid' => $item['id']]);
if (DBA::isResult($thread)) {
$ignore = [
'do' => L10n::t("ignore thread"),
'undo' => L10n::t("unignore thread"),
'toggle' => L10n::t("toggle ignore status"),
'classdo' => $thread['ignored'] ? "hidden" : "",
'classundo' => $thread['ignored'] ? "" : "hidden",
'ignored' => L10n::t('ignored'),
];
}
if (Feature::isEnabled($conv->getProfileOwner(), 'commtag')) {
$tagger = [
'add' => L10n::t("add tag"),