forked from GNUsocial/gnu-social
		
	[COMPONENTS][Conversation] reply_add route nows shows the given Note entire conversation, the Note itself is highlighted in the conversation
This commit is contained in:
		| @@ -26,10 +26,10 @@ declare(strict_types = 1); | ||||
|  | ||||
| namespace Component\Conversation\Controller; | ||||
|  | ||||
| use function App\Core\I18n\_m; | ||||
| use Component\Feed\Feed; | ||||
| use Component\Feed\Util\FeedController; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
| use function App\Core\I18n\_m; | ||||
|  | ||||
| class Conversation extends FeedController | ||||
| { | ||||
| @@ -40,15 +40,6 @@ class Conversation extends FeedController | ||||
|      */ | ||||
|     public function showConversation(Request $request, int $conversation_id) | ||||
|     { | ||||
|         // TODO: | ||||
|         // if note is root -> just link | ||||
|         // if note is a reply -> link from above plus anchor | ||||
|  | ||||
|         /*        $notes = DB::findBy( | ||||
|                     table: 'note', | ||||
|                     criteria: ['conversation_id' => $conversation_id], | ||||
|                     order_by: ['created' => 'DESC', 'id' => 'DESC'] | ||||
|                 );*/ | ||||
|         $data  = Feed::query(query: "note-conversation:{$conversation_id}", page: $this->int('p') ?? 1); | ||||
|         $notes = $data['notes']; | ||||
|         return [ | ||||
|   | ||||
| @@ -32,8 +32,10 @@ use App\Util\Exception\ClientException; | ||||
| use App\Util\Exception\NoLoggedInUser; | ||||
| use App\Util\Exception\NoSuchNoteException; | ||||
| use App\Util\Exception\ServerException; | ||||
| use Component\Feed\Feed; | ||||
| use Component\Feed\Util\FeedController; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
| use function App\Core\I18n\_m; | ||||
|  | ||||
| class Reply extends FeedController | ||||
| { | ||||
| @@ -56,9 +58,14 @@ class Reply extends FeedController | ||||
|             throw new NoSuchNoteException(); | ||||
|         } | ||||
|  | ||||
|         $conversation_id = $note->getConversationId(); | ||||
|         $data  = Feed::query(query: "note-conversation:{$conversation_id}", page: $this->int('p') ?? 1); | ||||
|         $notes = $data['notes']; | ||||
|         return [ | ||||
|             '_template' => 'reply/add_reply.html.twig', | ||||
|             'note'      => $note, | ||||
|             '_template'     => 'feed/feed.html.twig', | ||||
|             'notes'         => $notes, | ||||
|             'should_format' => false, | ||||
|             'page_title'    => _m('Conversation'), | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -26,17 +26,16 @@ namespace Component\Conversation; | ||||
| use App\Core\Cache; | ||||
| use App\Core\DB\DB; | ||||
| use App\Core\Event; | ||||
| use function App\Core\I18n\_m; | ||||
| use App\Core\Modules\Component; | ||||
| use App\Core\Router\RouteLoader; | ||||
| use App\Core\Router\Router; | ||||
| use App\Entity\Actor; | ||||
| use App\Entity\Note; | ||||
| use App\Util\Common; | ||||
| use App\Util\Formatting; | ||||
| use Component\Conversation\Controller\Reply as ReplyController; | ||||
| use Component\Conversation\Entity\Conversation as ConversationEntity; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
| use function App\Core\I18n\_m; | ||||
|  | ||||
| class Conversation extends Component | ||||
| { | ||||
| @@ -92,7 +91,7 @@ class Conversation extends Component | ||||
|  | ||||
|         $query_string = $request->getQueryString(); | ||||
|         // Concatenating get parameter to redirect the user to where he came from | ||||
|         $reply_action_url .= '?from=' . urlencode($request->getRequestUri()); | ||||
|         $reply_action_url .= '?from=' . urlencode($request->getRequestUri()) . '#note-anchor-' . $note->getId(); | ||||
|  | ||||
|         $reply_action = [ | ||||
|             'url'     => $reply_action_url, | ||||
|   | ||||
| @@ -14,6 +14,9 @@ | ||||
| .notes hr { | ||||
|     margin-top: var(--s); | ||||
| } | ||||
| article[id^="note-anchor-"]:target { | ||||
|     border: 2px solid var(--accent) !important; | ||||
| } | ||||
| .note-wrapper { | ||||
|     width: 100%; | ||||
|     height: inherit; | ||||
| @@ -106,7 +109,7 @@ | ||||
| embed header { | ||||
|     display: flex; | ||||
|     border-bottom: unset; | ||||
|     border-radius: var(--s) var(--s) 0 0; | ||||
|     border-radius: 0 var(--s) 0 0; | ||||
|     line-height: initial; | ||||
|     padding: 8px var(--s) 8px 0; | ||||
| } | ||||
|   | ||||
| @@ -159,7 +159,8 @@ | ||||
|     {% set mention = mention(actor) %} | ||||
|     {% set note_language = note.getNoteLanguageShortDisplay() %} | ||||
|  | ||||
|     <article class="h-entry hentry note" lang={{ note.getLanguageLocale() }}> | ||||
|     <article id="{{ 'note-anchor-' ~ note.getId() }}" | ||||
|              class="h-entry hentry note" lang={{ note.getLanguageLocale() }}> | ||||
|         {{ block('note_sidebar') }} | ||||
|         <div class="note-wrapper"> | ||||
|             {{ block('note_info') }} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user