Michael Vogel 2024-03-24 15:57:22 +01:00 committed by GitHub
commit ae5f13b00d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 292 additions and 250 deletions

View File

@ -110,14 +110,15 @@ function item_edit(int $uid, array $request, bool $preview, string $return_path)
$post = item_process($post, $request, $preview, $return_path); $post = item_process($post, $request, $preview, $return_path);
$fields = [ $fields = [
'title' => $post['title'], 'title' => $post['title'],
'body' => $post['body'], 'content-warning' => $post['content-warning'],
'attach' => $post['attach'], 'body' => $post['body'],
'file' => $post['file'], 'attach' => $post['attach'],
'location' => $post['location'], 'file' => $post['file'],
'coord' => $post['coord'], 'location' => $post['location'],
'edited' => DateTimeFormat::utcNow(), 'coord' => $post['coord'],
'changed' => DateTimeFormat::utcNow() 'edited' => DateTimeFormat::utcNow(),
'changed' => DateTimeFormat::utcNow()
]; ];
$fields['body'] = Item::setHashtags($fields['body']); $fields['body'] = Item::setHashtags($fields['body']);
@ -233,13 +234,14 @@ function item_insert(int $uid, array $request, bool $preview, string $return_pat
function item_process(array $post, array $request, bool $preview, string $return_path): array function item_process(array $post, array $request, bool $preview, string $return_path): array
{ {
$post['self'] = true; $post['self'] = true;
$post['api_source'] = false; $post['api_source'] = false;
$post['attach'] = ''; $post['attach'] = '';
$post['title'] = trim($request['title'] ?? ''); $post['title'] = trim($request['title'] ?? '');
$post['body'] = $request['body'] ?? ''; $post['content-warning'] = trim($request['summary'] ?? '');
$post['location'] = trim($request['location'] ?? ''); $post['body'] = $request['body'] ?? '';
$post['coord'] = trim($request['coord'] ?? ''); $post['location'] = trim($request['location'] ?? '');
$post['coord'] = trim($request['coord'] ?? '');
$post = DI::contentItem()->addCategories($post, $request['category'] ?? ''); $post = DI::contentItem()->addCategories($post, $request['category'] ?? '');

View File

@ -387,6 +387,8 @@ class Conversation
'$shortnoloc' => $this->l10n->t('clear location'), '$shortnoloc' => $this->l10n->t('clear location'),
'$title' => $x['title'] ?? '', '$title' => $x['title'] ?? '',
'$placeholdertitle' => $this->l10n->t('Set title'), '$placeholdertitle' => $this->l10n->t('Set title'),
'$summary' => $x['summary'] ?? '',
'$placeholdersummary' => Feature::isEnabled($this->session->getLocalUserId(), 'summary') ? $this->l10n->t('Set summary, abstract or spoiler text') : '',
'$category' => $x['category'] ?? '', '$category' => $x['category'] ?? '',
'$placeholdercategory' => Feature::isEnabled($this->session->getLocalUserId(), 'categories') ? $this->l10n->t("Categories \x28comma-separated list\x29") : '', '$placeholdercategory' => Feature::isEnabled($this->session->getLocalUserId(), 'categories') ? $this->l10n->t("Categories \x28comma-separated list\x29") : '',
'$scheduled_at' => Temporal::getDateTimeField( '$scheduled_at' => Temporal::getDateTimeField(

View File

@ -110,7 +110,8 @@ class Feature
// Item tools // Item tools
'tools' => [ 'tools' => [
DI::l10n()->t('Post/Comment Tools'), DI::l10n()->t('Post/Comment Tools'),
['categories', DI::l10n()->t('Post Categories'), DI::l10n()->t('Add categories to your posts'), false, DI::config()->get('feature_lock', 'categories', false)], ['categories', DI::l10n()->t('Post Categories'), DI::l10n()->t('Add categories to your posts'), false, DI::config()->get('feature_lock', 'categories', false)],
['summary', DI::l10n()->t('Summary'), DI::l10n()->t('Add a summary, abstract or spoiler text to your posts'), false, DI::config()->get('feature_lock', 'summary', false)],
], ],
// Advanced Profile Settings // Advanced Profile Settings

View File

@ -121,7 +121,7 @@ class Item
const DELIVER_FIELDLIST = [ const DELIVER_FIELDLIST = [
'uid', 'id', 'parent', 'uri-id', 'uri', 'thr-parent', 'parent-uri', 'guid', 'uid', 'id', 'parent', 'uri-id', 'uri', 'thr-parent', 'parent-uri', 'guid',
'parent-guid', 'conversation', 'received', 'created', 'edited', 'verb', 'object-type', 'object', 'target', 'parent-guid', 'conversation', 'received', 'created', 'edited', 'verb', 'object-type', 'object', 'target',
'private', 'title', 'body', 'raw-body', 'language', 'location', 'coord', 'app', 'sensitive', 'private', 'title', 'content-warning', 'body', 'raw-body', 'language', 'location', 'coord', 'app', 'sensitive',
'inform', 'deleted', 'extid', 'post-type', 'post-reason', 'gravity', 'inform', 'deleted', 'extid', 'post-type', 'post-reason', 'gravity',
'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid',
'author-id', 'author-addr', 'author-link', 'author-name', 'author-avatar', 'owner-id', 'owner-link', 'contact-uid', 'author-id', 'author-addr', 'author-link', 'author-name', 'author-avatar', 'owner-id', 'owner-link', 'contact-uid',

View File

@ -152,6 +152,7 @@ class Compose extends BaseModule
} }
$title = $_REQUEST['title'] ?? ''; $title = $_REQUEST['title'] ?? '';
$summary = $_REQUEST['summary'] ?? '';
$category = $_REQUEST['category'] ?? ''; $category = $_REQUEST['category'] ?? '';
$body = $_REQUEST['body'] ?? ''; $body = $_REQUEST['body'] ?? '';
$location = $_REQUEST['location'] ?? $user['default-location']; $location = $_REQUEST['location'] ?? $user['default-location'];
@ -184,6 +185,7 @@ class Compose extends BaseModule
'$l10n' => [ '$l10n' => [
'compose_title' => $compose_title, 'compose_title' => $compose_title,
'default' => '', 'default' => '',
'summary' => $this->l10n->t('Summary'),
'visibility_title' => $this->l10n->t('Visibility'), 'visibility_title' => $this->l10n->t('Visibility'),
'mytitle' => $this->l10n->t('This is you'), 'mytitle' => $this->l10n->t('This is you'),
'submit' => $this->l10n->t('Submit'), 'submit' => $this->l10n->t('Submit'),
@ -205,6 +207,7 @@ class Compose extends BaseModule
'location_disabled' => $this->l10n->t('Location services are disabled. Please check the website\'s permissions on your device'), 'location_disabled' => $this->l10n->t('Location services are disabled. Please check the website\'s permissions on your device'),
'wait' => $this->l10n->t('Please wait'), 'wait' => $this->l10n->t('Please wait'),
'placeholdertitle' => $this->l10n->t('Set title'), 'placeholdertitle' => $this->l10n->t('Set title'),
'placeholdersummary' => Feature::isEnabled(DI::userSession()->getLocalUserId(), 'summary') ? $this->l10n->t('Set summary, abstract or spoiler text') : '',
'placeholdercategory' => Feature::isEnabled(DI::userSession()->getLocalUserId(),'categories') ? $this->l10n->t('Categories (comma-separated list)') : '', 'placeholdercategory' => Feature::isEnabled(DI::userSession()->getLocalUserId(),'categories') ? $this->l10n->t('Categories (comma-separated list)') : '',
'always_open_compose' => $this->pConfig->get(DI::userSession()->getLocalUserId(), 'frio', 'always_open_compose', 'always_open_compose' => $this->pConfig->get(DI::userSession()->getLocalUserId(), 'frio', 'always_open_compose',
$this->config->get('frio', 'always_open_compose', false)) ? '' : $this->config->get('frio', 'always_open_compose', false)) ? '' :
@ -226,6 +229,7 @@ class Compose extends BaseModule
), ),
'$created_at' => $created_at, '$created_at' => $created_at,
'$title' => $title, '$title' => $title,
'$summary' => $summary,
'$category' => $category, '$category' => $category,
'$body' => $body, '$body' => $body,
'$location' => $location, '$location' => $location,

View File

@ -84,7 +84,7 @@ class Edit extends BaseModule
$fields = [ $fields = [
'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'gravity', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', 'gravity',
'body', 'title', 'uri-id', 'wall', 'post-type', 'guid' 'body', 'title', 'content-warning', 'uri-id', 'wall', 'post-type', 'guid'
]; ];
$item = Post::selectFirstForUser($this->session->getLocalUserId(), $fields, [ $item = Post::selectFirstForUser($this->session->getLocalUserId(), $fields, [
@ -155,6 +155,8 @@ class Edit extends BaseModule
'$public' => $this->t('Public post'), '$public' => $this->t('Public post'),
'$title' => $item['title'], '$title' => $item['title'],
'$placeholdertitle' => $this->t('Set title'), '$placeholdertitle' => $this->t('Set title'),
'$summary' => $item['content-warning'],
'$placeholdersummary' => (Feature::isEnabled($this->session->getLocalUserId(), 'summary') ? $this->t('Set summary, abstract or spoiler text') : ''),
'$category' => Post\Category::getCSVByURIId($item['uri-id'], $this->session->getLocalUserId(), Post\Category::CATEGORY), '$category' => Post\Category::getCSVByURIId($item['uri-id'], $this->session->getLocalUserId(), Post\Category::CATEGORY),
'$placeholdercategory' => (Feature::isEnabled($this->session->getLocalUserId(), 'categories') ? $this->t("Categories \x28comma-separated list\x29") : ''), '$placeholdercategory' => (Feature::isEnabled($this->session->getLocalUserId(), 'categories') ? $this->t("Categories \x28comma-separated list\x29") : ''),
'$emtitle' => $this->t('Example: bob@example.com, mary@example.com'), '$emtitle' => $this->t('Example: bob@example.com, mary@example.com'),

View File

@ -1779,7 +1779,7 @@ class Transmitter
return $data; return $data;
} }
$data['summary'] = BBCode::toPlaintext(BBCode::getAbstract($item['body'], Protocol::ACTIVITYPUB)); $data['summary'] = $item['content-warning'] ?: BBCode::toPlaintext(BBCode::getAbstract($item['body'], Protocol::ACTIVITYPUB));
if ($item['uri'] != $item['thr-parent']) { if ($item['uri'] != $item['thr-parent']) {
$data['inReplyTo'] = $item['thr-parent']; $data['inReplyTo'] = $item['thr-parent'];

File diff suppressed because it is too large Load Diff

View File

@ -13,6 +13,11 @@
<div id="jot-title-wrap"> <div id="jot-title-wrap">
<input type="text" name="title" id="jot-title" class="jothidden jotforms form-control" placeholder="{{$l10n.placeholdertitle}}" title="{{$l10n.placeholdertitle}}" value="{{$title}}" tabindex="1" dir="auto" /> <input type="text" name="title" id="jot-title" class="jothidden jotforms form-control" placeholder="{{$l10n.placeholdertitle}}" title="{{$l10n.placeholdertitle}}" value="{{$title}}" tabindex="1" dir="auto" />
</div> </div>
{{if $l10n.placeholdersummary}}
<div id="jot-summary-wrap">
<input type="text" name="summary" id="jot-summary" class="jothidden jotforms form-control" placeholder="{{$l10n.placeholdersummary}}" title="{{$l10n.placeholdersummary}}" value="{{$summary}}" tabindex="1" dir="auto" />
</div>
{{/if}}
{{if $l10n.placeholdercategory}} {{if $l10n.placeholdercategory}}
<div id="jot-category-wrap"> <div id="jot-category-wrap">
<input name="category" id="jot-category" class="jothidden jotforms form-control" type="text" placeholder="{{$l10n.placeholdercategory}}" title="{{$l10n.placeholdercategory}}" value="{{$category}}" tabindex="2" dir="auto" /> <input name="category" id="jot-category" class="jothidden jotforms form-control" type="text" placeholder="{{$l10n.placeholdercategory}}" title="{{$l10n.placeholdercategory}}" value="{{$category}}" tabindex="2" dir="auto" />

View File

@ -18,6 +18,9 @@
<input type="hidden" name="contact_allow[]" value="<{{$notes_cid}}>" /> <input type="hidden" name="contact_allow[]" value="<{{$notes_cid}}>" />
{{/if}} {{/if}}
<div id="jot-title-wrap"><input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none" dir="auto"></div> <div id="jot-title-wrap"><input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none" dir="auto"></div>
{{if $placeholdersummary}}
<div id="jot-summary-wrap"><input name="summary" id="jot-summary" type="text" placeholder="{{$placeholdersummary}}" value="{{$summary}}" class="jothidden" style="display:none" dir="auto"></div>
{{/if}}
{{if $placeholdercategory}} {{if $placeholdercategory}}
<div id="jot-category-wrap"><input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" dir="auto"></div> <div id="jot-category-wrap"><input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" dir="auto"></div>
{{/if}} {{/if}}

View File

@ -1444,6 +1444,7 @@ section #jotOpen {
margin-right: 20px; margin-right: 20px;
} }
#jot-title-wrap, #jot-title-wrap,
#jot-summary-wrap,
#jot-category-wrap { #jot-category-wrap {
margin-bottom: 5px; margin-bottom: 5px;
} }

View File

@ -94,6 +94,9 @@
<input type="hidden" name="contact_allow[]" value="<{{$notes_cid}}>" /> <input type="hidden" name="contact_allow[]" value="<{{$notes_cid}}>" />
{{/if}} {{/if}}
<div id="jot-title-wrap"><input name="title" id="jot-title" class="jothidden jotforms form-control" type="text" placeholder="{{$placeholdertitle}}" title="{{$placeholdertitle}}" value="{{$title}}" style="display:block;" dir="auto" /></div> <div id="jot-title-wrap"><input name="title" id="jot-title" class="jothidden jotforms form-control" type="text" placeholder="{{$placeholdertitle}}" title="{{$placeholdertitle}}" value="{{$title}}" style="display:block;" dir="auto" /></div>
{{if $placeholdersummary}}
<div id="jot-summary-wrap"><input name="summary" id="jot-summary" class="jothidden jotforms form-control" type="text" placeholder="{{$placeholdersummary}}" title="{{$placeholdersummary}}" value="{{$summary}}" style="display:block;" dir="auto" /></div>
{{/if}}
{{if $placeholdercategory}} {{if $placeholdercategory}}
<div id="jot-category-wrap"><input name="category" id="jot-category" class="jothidden jotforms form-control" type="text" placeholder="{{$placeholdercategory}}" title="{{$placeholdercategory}}" value="{{$category}}" dir="auto" /></div> <div id="jot-category-wrap"><input name="category" id="jot-category" class="jothidden jotforms form-control" type="text" placeholder="{{$placeholdercategory}}" title="{{$placeholdercategory}}" value="{{$category}}" dir="auto" /></div>
{{/if}} {{/if}}

View File

@ -2,6 +2,9 @@
<div id="jot"> <div id="jot">
<div id="profile-jot-desc" class="jothidden">&nbsp;</div> <div id="profile-jot-desc" class="jothidden">&nbsp;</div>
<input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" title="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none" dir="auto" /> <input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" title="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none" dir="auto" />
{{if $placeholdersummary}}
<input name="summary" id="jot-summary" type="text" placeholder="{{$placeholdersummary}}" title="{{$placeholdersummary}}" value="{{$summary}}" class="jothidden" style="display:none" dir="auto" />
{{/if}}
{{if $placeholdercategory}} {{if $placeholdercategory}}
<input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" title="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" dir="auto" /> <input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" title="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" dir="auto" />
{{/if}} {{/if}}

View File

@ -1414,6 +1414,7 @@ ul .sidebar-circle-li .icon {
#jot-coord, #jot-coord,
#jot-preview, #jot-preview,
#jot-title-wrap, #jot-title-wrap,
#jot-summary-wrap,
#jot-category-wrap, #jot-category-wrap,
#jot-text-wrap, #jot-text-wrap,
#profile-jot-text-loading, #profile-jot-text-loading,

View File

@ -18,6 +18,11 @@
<div id="jot-title-wrap"> <div id="jot-title-wrap">
<input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none" dir="auto"> <input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none" dir="auto">
</div> </div>
{{if $placeholdersummary}}
<div id="jot-summary-wrap">
<input name="summary" id="jot-summary" type="text" placeholder="{{$placeholdersummary}}" value="{{$summary}}" class="jothidden" style="display:none" dir="auto">
</div>
{{/if}}
{{if $placeholdercategory}} {{if $placeholdercategory}}
<div id="jot-category-wrap"> <div id="jot-category-wrap">
<input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" dir="auto" /> <input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" class="jothidden" style="display:none" dir="auto" />