Commit Graph

907 Commits

Author SHA1 Message Date
Hugo Sales
59abffe744
[ENTITY][Actor][DOC] Add explanation in Actor::__call 2021-12-24 02:46:42 +00:00
Hugo Sales
be197bc82b
[ENTITY][LocalUser] Fix LocalUser::setNicknameSanitizedAndCached so it updates the actor nickname and propagates the exceptions 2021-12-24 02:46:42 +00:00
Hugo Sales
764a30695d
[ENTITY][ActorTag][Actor][Activity] Add Actor::getActorCircles 2021-12-24 02:46:42 +00:00
Hugo Sales
95783d6109
[CONTROLLER][UserPanel][COMPONENT][Tag] Re-add way of adding self tags, but in a more reusable (and less buggy) way 2021-12-24 02:46:41 +00:00
Hugo Sales
072caad845
[CONTROLLER][UserPanel] Remove self tags settings from profile settings section, so it can be abstracted and reused 2021-12-24 02:46:41 +00:00
Hugo Sales
774b33a522
[DEPENDENCIES] Update dependencies and Symfony to 5.4 LTS 2021-12-24 02:46:41 +00:00
Hugo Sales
80ebd6fb7b
[ENTITY][Actor] Add helper function for checking if the current actor can admin another 2021-12-24 02:46:40 +00:00
Hugo Sales
63679426b6
[UTIL][HTML] Allow <b> and <hr> tags 2021-12-24 02:46:40 +00:00
Hugo Sales
a28c0da4af
[COMPONENT][Language][Settings] Factor out language settings into the language component 2021-12-24 02:46:40 +00:00
Hugo Sales
1682b04e74
[COMPONENT][Group][CONTROLLER][Actor] Move group related stuff to it's own component 2021-12-24 02:46:39 +00:00
Hugo Sales
67f09d4e50
[CONTROLLER][Actor] Handle case where there isn't a logged in user 2021-12-24 02:46:39 +00:00
Diogo Peralta Cordeiro
4b98200ecd
[UI][CARD][Note] Add Conversation link 2021-12-24 02:46:39 +00:00
Diogo Peralta Cordeiro
2004f1883a
[COMPONENT][FreeNetwork] Move feeds that only make sense with FreeNetwork enabled to this component 2021-12-24 00:47:34 +00:00
Diogo Peralta Cordeiro
7d8cce3b27
[COMPONENT][Feed] Correct queries and introduce new feeds
Refactor feeds and search to use a common query builder
2021-12-24 00:44:39 +00:00
Eliseu Amaro
3ca7a35158
[COMPONENT][Conversation] added onProcessNoteContent event
If the source lacks capability of sending the reply_to metadata, it might be on the note content itself as a reference.

[ENTITY][Note] Documenting conversation/reply related functions. The entity Note reply_to shouldn't be trusted toknow whether or not the Note is a Conversation root. This will happen if a known remote user replies to an unknown remote user - within a known conversation.
2021-12-24 00:42:02 +00:00
Eliseu Amaro
c83ae76a68
[COMPONENTS][Conversation] Conversation entity moved to respective component, URI column added
Route for conversation added and Conversation Controller created.

[CONTROLLER][Conversation] Created ConversationShow function, will be used to render the conversation route page

[ENTITY][Note] Conversation id column added, this way a Note can have a direct relation with its respective conversation.
2021-12-24 00:42:01 +00:00
Phablulo
d04b68a3ce
[PLUGIN][MediaFeed] Add Media plugin which filters a feed by notes containing media 2021-12-22 11:13:06 +00:00
Phablulo
dd5d46c556 [CORE] Add option to filter notes even when there's no actor 2021-12-21 14:33:19 -03:00
Hugo Sales
af122df6e1
[CONTROLLER][Actor] Fix actor view route 2021-12-21 16:45:59 +00:00
Diogo Peralta Cordeiro
8b5286c383
[COMPONENT][Notification] Do not re-render content just to grab attentions
Other minor improvements and bug fixes
2021-12-21 16:05:24 +00:00
Hugo Sales
e7dcea3f26
[CONTROLLER][Actor] Add group notes query and fixup template 2021-12-21 12:47:16 +00:00
Hugo Sales
6a8144003f
[ENTITY][Actor] Add missing 'break' statements in switches in getUr{i,l} 2021-12-21 12:46:42 +00:00
Hugo Sales
25900d38bd
[UTIL][EXCEPTION][RedirectException] Remove hack that would attempt to generate a URL inplace 2021-12-21 12:46:02 +00:00
Hugo Sales
027adc97b2
[CONTROLLER][ActorController] Make ActorController extend the FeedController, so notes get filtered 2021-12-21 12:45:15 +00:00
Hugo Sales
7f65b23074
[DB] Allow mentioning 'note' in a DQL query (in quotes), in order to be able to search in the activity table (previously would be replaced by the class name) 2021-12-21 12:44:34 +00:00
Hugo Sales
d6d5926b6e
[TOOLS][DOC] Add missing documentation, as flagged by doc-check 2021-12-21 12:24:23 +00:00
Hugo Sales
da8c41e094
[TOOLS] Fix errors found by PHPStan 2021-12-21 12:17:51 +00:00
Hugo Sales
fa863d9e03
[CONTROLLER][ENTITY][Actor] Add way of creating a group that doesn't exist 2021-12-21 12:12:03 +00:00
Hugo Sales
88a137fb15
[ROUTES] Rename actor routes and add route for groups 2021-12-21 12:10:51 +00:00
Hugo Sales
87aa9360a3
[CORE][ActorController] Refactor actor related controllers (Actor, Subscribers, Subscriptions) to remove duplicated code 2021-12-21 12:10:08 +00:00
Hugo Sales
315fd95b94
[COMPONENT][Posting] Add facility to allow mentioning groups that don't yet exist 2021-12-21 12:07:54 +00:00
Hugo Sales
e27f2dd202
[ENTITY] Remove Group entity, as groups are actors 2021-12-20 20:20:25 +00:00
Eliseu Amaro
918e6823a9
[ENTITY][Actor] Init Actor's class variable homepage, bio, and location to null
The template cards/profile/view.html.twig tries to access the bio variable before it's initialized, an is null check was already in place. However, even then, the variable needs to be init beforehand. The same change was applied to homepage and location since they might lead to similar issues.
2021-12-20 16:31:26 +00:00
Eliseu Amaro
622057ba0d
[CONTROLLER][Feeds] Added should_format field on returned array
FeedController will only handle FormatNoteList if the should_format field is true.

This change was made to make the replies route feed possible, this route is added by the Conversation component. Since a reply isn't a conversation root, if the FeedController handled the FormatNoteList event, this feed wouldn't have any notes to display.
2021-12-20 15:39:23 +00:00
Diogo Peralta Cordeiro
23f94ac961
[CORE][Controller] Define html format as default 2021-12-20 13:32:49 +00:00
Diogo Peralta Cordeiro
ed67da89dc
[TAGS] Fix some minor logic issues with Actor Tags and Circles 2021-12-20 13:32:49 +00:00
Diogo Peralta Cordeiro
a9feb79825
[SECURITY] New actors are Person user on register by default 2021-12-20 13:32:49 +00:00
Diogo Peralta Cordeiro
57beb178cc
[Notification][ENTITY][Activity] Avoid including sender in notification targets 2021-12-19 19:04:05 +00:00
Diogo Peralta Cordeiro
93fa7eb0b5
[ENTITY][Note] Language in notes is optional 2021-12-19 19:04:05 +00:00
Diogo Peralta Cordeiro
1d09a02ad6
[FreeNetwork][ActivityPub] Sometimes remote Actors report empty full names in not very explicit manners 2021-12-19 19:04:05 +00:00
Hugo Sales
a81ac673ac
[CORE][ENTITY] Rename 'Entity::getWithPK' to 'Entity::getByPK' 2021-12-19 19:04:01 +00:00
Hugo Sales
5dca5568b7
[CORE][Cache] Fix wrong return type in Cache::delete 2021-12-16 11:01:23 +00:00
Hugo Sales
24291a268a
[CORE][Cache][DOCS] Add documentation to complex private function 'Cache::redisMaybeRecompute' 2021-12-16 10:47:01 +00:00
Hugo Sales
6d8679d86b
[CORE] Fix resetting the config to the default values 2021-12-13 15:49:52 +00:00
Hugo Sales
3ba7e1804b
[CORE][Cache] Add fast path for redis cache interactions 2021-12-13 15:49:52 +00:00
Hugo Sales
10ddbf692a
[ENTITY][LocalUser] Make more use of caching and factor out the cache keys 2021-12-12 16:21:09 +00:00
Hugo Sales
1e8eea0434
[ENTITY][Actor] Add type field, which denotes whether the actor is a person, org, group, business or bot 2021-12-11 22:19:37 +00:00
Hugo Sales
e62896b84e
[UTIL][FormFields] Allow specifying a null actor in the language field, for when there isn't a logged in user 2021-12-11 22:18:31 +00:00
Hugo Sales
6a9388a789
[UTIL][FormFields] Add option language form field so the user can provide no selection 2021-12-10 21:03:37 +00:00
Hugo Sales
ada94a98e2
[COMPONENT][Search] Move search form to utility function. Add search form and search builder forms to search results page 2021-12-10 13:53:23 +00:00
Hugo Sales
c720ce7daf
[UTIL][Functional] Add cartesianProduct while it doesn't get merged upstream to \Functional 2021-12-10 13:53:23 +00:00
Hugo Sales
dd33720957
[TWIG] Add 'dd' and 'die' functions to twig 2021-12-10 12:06:47 +00:00
Hugo Sales
33fba0d970
[COMPONENT][Language][ENTITY][ActorLanguage] Refactor cache keys in ActorLanguage. Add ActorLangauge::getActorRelatedLanguagesIds and use it in note filtering in the Language component 2021-12-10 10:19:23 +00:00
Diogo Peralta Cordeiro
60d31e097e
[COMPONENT][Notification] Support empty array of targets 2021-12-10 04:05:34 +00:00
Diogo Peralta Cordeiro
b89f57ce93
[ENTITY][Note] Language can be null 2021-12-10 04:05:34 +00:00
Diogo Peralta Cordeiro
dcc37b055d
[COMPONENT][Link] Remove relation to note when note is removed
Moved entity NoteToLink to the component
2021-12-10 04:04:56 +00:00
Diogo Peralta Cordeiro
5f167517ad
[ENTITY][Note] Add deleter 2021-12-10 02:46:25 +00:00
Hugo Sales
b1585f0ef2
[ENTITY][Actor][ActorTag] Ensure only one copy of each tag is inserted 2021-12-09 22:23:17 +00:00
Hugo Sales
ab9dd1db77
[CACHE][ENTITY][Actor] Refactor Actor so that all cache keys are kept in one cacheKeys function, so that we can more easily be certain there are no mismatches in cache keys between gets and deletes 2021-12-09 21:59:49 +00:00
Hugo Sales
1be4b3d481
[EVENT][FilterNoteList] Use an in-out parameter, so multiple events can act on this 2021-12-09 21:39:00 +00:00
Eliseu Amaro
f547fd3bb9
[CONTROLLER][FeedController] Fix return value, from notes to notes_out 2021-12-09 19:06:18 +00:00
Hugo Sales
c137a484af
[ENTITY][ActorTag] Fix url in actor tag 2021-12-09 16:34:07 +00:00
Eliseu Amaro
774e32f834
[PLUGINS][TreeNotes] Working, however feed is still not formatted
[ENTITY][Note] Fix for getReplies()
2021-12-09 00:15:47 +00:00
Diogo Peralta Cordeiro
480a42cca5
[PLUGIN][ActivityPub] Introduce ActivitypubObject. Beware, inside the plugin, an Object can never be an Activity.
Many bug fixes and other major changes (interface changed, see EVENTS.md)
2021-12-08 23:24:23 +00:00
Eliseu Amaro
b1227d36f1
[CARDS][Note] In conversation time ago information added 2021-12-08 22:48:04 +00:00
Hugo Sales
d52a043705
[TWIG] Restructure user settings template, making it much easier to use and extend 2021-12-08 19:57:35 +00:00
Hugo Sales
3b8a3e953d
[CONTROLLER][FeedController] Make post processing happen more automatically, reducing noise in individual controllers. Now it's enough to simply extends App\Core\Controller\FeedController, to implement a feed 2021-12-08 10:20:37 +00:00
Hugo Sales
4c0210fb00
[CORE][FeedController][CONTROLLER][Feeds] Refactor feed filtering into base class 2021-12-07 21:06:39 +00:00
Hugo Sales
c131e47176
[COMPONENT][Tag] Remove wrong canonicalization of tags in tag feed controller. Fix display of original tags 2021-12-07 20:10:59 +00:00
Hugo Sales
c093eb9089
[TWIG] Update instanceof filter to be able to check for native types 2021-12-07 19:52:27 +00:00
Diogo Peralta Cordeiro
63bf93d7f3
[CORE][Entity][Note] Language can be null 2021-12-05 21:03:13 +00:00
Hugo Sales
2a161c9c66
[PLUGIN][TagBasedFiltering] Block actor tags, but don't block notes from the current actor 2021-12-05 19:18:57 +00:00
Hugo Sales
259e07b259
[ENTITY][ActorTag][ActorTagBlock] Add 'use_canonical' column 2021-12-05 17:55:49 +00:00
Hugo Sales
9f445632b2
[PLUGIN][TagBasedFiltering] Expand to allow filtering by actor tags 2021-12-05 17:55:49 +00:00
Hugo Sales
e29e1cc87c
[ENTITY] Rename 'getFrom' to 'getBy' 2021-12-05 17:55:46 +00:00
Hugo Sales
4f669d4e01
[ENTITY][NoteTag][Language] Add convinience cache getters 2021-12-05 17:54:58 +00:00
Hugo Sales
a47a01abee
[ENTITY][ActorTagBlock][NoteTagBlock] Add ActorTagBlock and NoteTagBlock 2021-12-05 17:54:58 +00:00
Hugo Sales
8a495bd714
[CONTROLLER][Feeds][EVENT] Refactor and add 'FilterNoteList' event 2021-12-05 17:54:58 +00:00
Hugo Sales
314859b775
[ENTITY][NoteTag] Add 'use_canonical' column, which indicates whether the user wanted to canonicalize the tag or not (for themselves, the canonical field is still filled, for blocks) 2021-12-05 17:54:58 +00:00
Hugo Sales
1457aa8220
[UI][PLUGIN][DeleteNote][EVENT] Add 'AddExtraNoteActions' event, which can be leveraged to add extra actions on each note, but which are normally collapsed 2021-12-05 17:54:58 +00:00
Hugo Sales
969df371dd
[COMPONENT][Avatar] Small refactor 2021-12-05 17:54:58 +00:00
Diogo Peralta Cordeiro
9512890264
[PLUGIN][ActivityPub] Implement Actor Update
Diverse minor bug fixes
2021-12-05 03:11:08 +00:00
Eliseu Amaro
4501b7e85e
[CONTROLLER][UserPanel] Re-organised all settings forms. Added email, password, language forms separated from account or personal account info
[CORE][Form] Better PHPDoc and used is_null() for checks

[ENTITY][LocalUser] Add setNicknameSanitisedAndCached

[UTIL][Exception] Better NicknameNotAllowedException default message
2021-12-03 03:32:43 +00:00
Diogo Peralta Cordeiro
b66873e289
[PLUGIN][StoreRemoteMedia] Do not save empty files 2021-12-03 01:16:57 +00:00
Diogo Peralta Cordeiro
70ed04a7db
[COMPONENT][Link] Fix some minor issues with empty headed links, typo in event handler's name, and refactor entity to inside component 2021-12-03 00:46:52 +00:00
Eliseu Amaro
6ce78141a8
[CONTROLLER][UserPanel] Actor nickname cache is updated 2021-12-02 22:21:47 +00:00
Eliseu Amaro
2967b544f5
[CONTROLLER][UserPanel] Nickname now normalized 2021-12-02 20:49:10 +00:00
Eliseu Amaro
863cfbdedc
[CONTROLLER] Old password input type set to password
[CONTROLLER] Notification form fields requirement set to false
2021-12-02 19:32:39 +00:00
Hugo Sales
772ec6efcf
[UI] Set html img width and height attributes for avatar 2021-12-02 19:13:33 +00:00
Diogo Peralta Cordeiro
eeaad19754
[Attachment] Move Controller and Entities to a Component
There's no problem in having the templates in the core
2021-12-02 15:14:07 +00:00
Eliseu Amaro
37ef8cddfa
[ENTITY][Note] Add getLanguageLocale() and getNoteLanguageShortDisplay()
[CARDS][Note] Render note's language short display

[PLUGINS] Bring back titles to Reply, Repeat and Favourite actions
2021-12-02 15:05:49 +00:00
Diogo Peralta Cordeiro
d044039272
[FreeNetwork] Initial multi-protocol support 2021-12-02 14:23:21 +00:00
Diogo Peralta Cordeiro
30f3e2c462
[FEEDS][Home] Fix bug nickname is not unique, but it is for local users 2021-12-02 11:12:03 +00:00
Eliseu Amaro
eeb42ef8ea
[CONTROLLER][Actor] Provide template with all notes by actor
[ENTITY][Note] Add getAllNotesByActor

[TWIG] Actor profile page now renders all notes by the actor
2021-12-01 21:41:41 +00:00
Eliseu Amaro
5d8bd6c74a
[TWIG][Note] Add single note view 2021-12-01 21:07:14 +00:00
Hugo Sales
d58483a6ca
[TOOLS] Cleanup PHPStan warnings 2021-12-01 19:47:43 +00:00
Hugo Sales
0b57b20d38
[UI][PLUGIN][Reply][Favourite][ENTITY][Feed] Remove replies and favourite links from navigation/view.html.twig and add them to the feeds section 2021-12-01 19:47:43 +00:00
Hugo Sales
73981030fa
[CONTROLLER][COMPONENT][Left] Move edit feeds controller to the Left component 2021-12-01 19:47:43 +00:00
Hugo Sales
475bb1a033
[UTIL][EXCEPTION][BugFoundException] Use only the relative path, for convenience and to avoid potentially leaking the sysadmin's user 2021-12-01 19:47:42 +00:00
Hugo Sales
d4c77925d2
[CORE][DB][ENTITY][Actor] Make DB::dql return a chunked array if selecting multiple entities, remove partitioning from callsite
`DB::dql('select a, b, from a join b')` would previously return `[a,
b, a, b, ...]` (or even `[b, a, b, a, ...]`), and now will return
`[[a, a, ...], [b, b, ...]]`. The issue would be further compounded
when selecting even more entities, where the order would be
unpredictable
2021-12-01 19:47:42 +00:00