Compare commits

...

2201 Commits

Author SHA1 Message Date
Eliseu Amaro 1244f64bb2
[CARD][Note] Refactor notification targets 2022-03-12 13:27:09 +00:00
Diogo Peralta Cordeiro d91bc5ec66
wip2 2022-03-11 16:52:48 +00:00
Diogo Peralta Cordeiro 5ddc6b0c34
wip 2022-03-11 14:55:58 +00:00
Diogo Peralta Cordeiro 9f49fbacc9
[COMPONENT][Posting] Fix request handling issues that resulted from splitting creation and controller 2022-03-11 03:14:47 +00:00
Diogo Peralta Cordeiro 68ee996ec4
[PLUGIN][ActivityPub][Tests] Add some fixtures for GNU social's 2022-03-10 23:29:55 +00:00
Diogo Peralta Cordeiro e9170a9cbd
[PLUGIN][ActivityPub][Tests] Borrow test fixtures from Lemmy 2022-03-10 23:29:25 +00:00
Hugo Sales 8433771465
[TOOLING][TESTS] Allow specifying any phpunit flag when invoking make
Examples:
  make test -- --filter 'method'
  make test -- directory
2022-03-10 01:23:36 +00:00
Hugo Sales 0ce5eba355
[PLUGINS][Favourite][RepeatNote][DeleteNote][WebMonetization] Make use of 'activitypub_handler' more readable 2022-03-10 00:40:54 +00:00
Hugo Sales 9a9eed1457
[CORE][Router][Form] Add Router::sanitizeLocalURL and use it in Form::forceRedirect 2022-03-09 20:51:42 +00:00
Hugo Sales f540711948
[CORE][GNUsocial] Remove Session parameter, as it's no longer a service. Use session from Request 2022-03-09 20:51:42 +00:00
Hugo Sales c870fd44e3
[PLUGIN][Embed] Fix test folder name, so Symfony doesn't attempt to autowire it 2022-03-09 20:51:42 +00:00
Hugo Sales c30fcead74
[DEPENDENCIES] Move from Symfony 5.4 to 6 and update all other packages, where applicable 2022-03-09 20:51:42 +00:00
Hugo Sales 301421ea15
[SECURITY][EVENT] Remove deprecated uses of Symfony Guard. Add LoginSucess and LoginFailure events 2022-03-09 20:51:16 +00:00
Diogo Peralta Cordeiro 4d77f3497d
[COMPONENT][Person][TESTS] Fix Controller/PersonSettingsTest 2022-03-09 14:24:50 +00:00
Diogo Peralta Cordeiro f735e6b31c
[TESTS] Fix Util/CommonTest 2022-03-09 14:24:50 +00:00
Diogo Peralta Cordeiro 893d299e29
[UTIL][Common] Respect detect language setting
Minor bug fix
2022-03-09 14:24:50 +00:00
Diogo Peralta Cordeiro d857baa0f1
[TESTS] Fix Twig/ExtensionTest 2022-03-09 01:43:58 +00:00
Diogo Peralta Cordeiro 0441f030ab
[COMPONENT][Group][TESTS] Fix Entity/GroupTest 2022-03-09 01:43:51 +00:00
Diogo Peralta Cordeiro cac68a6372
[TESTS] Fix Entity/NoteTest 2022-03-09 01:42:11 +00:00
Diogo Peralta Cordeiro 28453c585f
[COMPONENT][Attachment][TESTS] Fix Entity/AttachmentThumbnailTest 2022-03-09 01:42:11 +00:00
Diogo Peralta Cordeiro 5c7b079df5
[COMPONENT][Attachment][Controller] Security fix: We were not ensuring that attachment was related to note 2022-03-09 01:42:11 +00:00
Diogo Peralta Cordeiro 47f03d4c9f
[COMPONENT][Attachment][TESTS] Fix Entity/AttachmentTest 2022-03-09 01:42:06 +00:00
Diogo Peralta Cordeiro cc4f967186
[TESTS] Fix Circle SelfTags Setting test 2022-03-09 01:40:35 +00:00
Diogo Peralta Cordeiro ff06a2656a
[COMPONENT][Group][Entity] Useless URI column removed
Add table to Makefile backup
2022-03-09 01:40:34 +00:00
Diogo Peralta Cordeiro d5fd7da707
[TESTS] Fix Core/RouterTest 2022-03-09 01:40:34 +00:00
Diogo Peralta Cordeiro 1bdeac7076
[TESTS] Fix Core/DB/UpdateListenerTest 2022-03-09 01:40:34 +00:00
Diogo Peralta Cordeiro e67ed58286
[TESTS] Temporarily Disable Controller/AdminTest: It seems we are repeating values arbitrarily - specially in plugins, and the generated file is just nonsense overall really, wrong sections and stuff 2022-03-09 01:40:34 +00:00
Diogo Peralta Cordeiro 487791d606
[TESTS] Fix Core/ControllerTest 2022-03-09 01:40:33 +00:00
Diogo Peralta Cordeiro 813e66e83e
[TESTS] Fix Core/CacheTest 2022-03-09 01:40:33 +00:00
Diogo Peralta Cordeiro 88ace68627
[TESTS] Fix Controller/FeedsTest 2022-03-09 01:40:33 +00:00
Diogo Peralta Cordeiro 416665d830
[COMPONENT][Attachment][TESTS] Fix Controller/AttachmentTest 2022-03-09 01:40:09 +00:00
Hugo Sales 808a3b219e
[TESTS] Specify non-null fields for use of creating actors in tests 2022-03-09 01:37:11 +00:00
Hugo Sales df40dd7c66
[TESTS] Add support for loading test suites from plugins and components 2022-03-09 01:37:11 +00:00
Hugo Sales afa8443949
[TESTS] Fix some failing tests broken by restructuring and dependency updates 2022-03-09 01:37:11 +00:00
Hugo Sales 46de2d47e9
[TOOLS] Add explicit return types to fix deprecation warnings raised by PHPUnit 2022-03-09 01:37:10 +00:00
Hugo Sales 372cf91fbc
[TOOLS][TESTS] Split tests into different test suites 2022-03-09 01:37:10 +00:00
Diogo Peralta Cordeiro 9c9e86649a
[TESTS] Fix Controller/SecurityTest 2022-03-09 01:37:10 +00:00
Diogo Peralta Cordeiro a37ce86d05
[TESTS] Fix DataFixtures 2022-03-07 15:26:27 +00:00
Hugo Sales 9a0c74cb0c
[CORE][SECURITY] Replicate 'next' form submission feature on login form 2022-03-07 15:26:27 +00:00
Hugo Sales 46c91a4b39
[I18N] Fix use of string concatenations in translations 2022-03-07 15:26:26 +00:00
Hugo Sales 3f14ad0f69
[COMPONENT][Posting][FORM] Refactor Posting form to use a form action with a separate controller and the new Form::forceRedirect 2022-03-07 15:26:26 +00:00
Hugo Sales 6ddc176faf
[CORE][Form] Add facilities for automattically adding a _next field to all forms, which can be customized by the in Form::create and defaults to the current URL. Usage of RedirectedException should mostly be replaced with Form::forceRedirect 2022-03-07 15:26:26 +00:00
Diogo Peralta Cordeiro d629976322
[UTIL][Notification] Remove deprecated code 2022-03-07 15:26:24 +00:00
Diogo Peralta Cordeiro 1a0c9e720f
[COMPONENT][FreeNetwork] Start using queues
[COMPONENT][Notification] Start using queues
[PLUGIN][ActivityPub] Start using queues
2022-03-05 14:23:08 +00:00
Diogo Peralta Cordeiro 6fa5ec3218
[CORE][Queue] Fix some minor issues 2022-03-05 14:22:44 +00:00
Diogo Peralta Cordeiro 626b4263f1
[PLUGIN][ActivityPub][Model][Actor] Fix internal logic for updating
Actors
2022-03-05 14:19:12 +00:00
Hugo Sales 1daa314c55
[COMPONENT][Posting][FORM] Refactor Posting form to use a form action with a separate controller and the new Form::forceRedirect 2022-03-04 15:16:19 +00:00
Hugo Sales 7814697f82
[UTIL][EXCEPTION] Forward given status code in RedirectException 2022-03-04 15:15:04 +00:00
Hugo Sales 7a8d67f1e2
[CORE][Controller] Fix bug where a JSON request could not recieve a redirect response 2022-03-04 15:14:05 +00:00
Hugo Sales 94449c9153
[CORE][Form] Add facilities for automattically adding a _next field to all forms, which can be customized by the in Form::create and defaults to the current URL. Usage of RedirectedException should mostly be replaced with Form::forceRedirect 2022-03-04 15:12:35 +00:00
Hugo Sales 7c9b01c516
[UTIL][Common] Add Common::getRequest 2022-03-04 15:09:39 +00:00
Hugo Sales 6cae6c925d
[TOOLS] Keep feed table in delete content Make rule 2022-03-01 18:12:58 +00:00
Diogo Peralta Cordeiro 12fb876a6d
[PLUGIN][ActivityPub][Model][Activity] No @context to exclude when object is not embedded. 2022-03-01 18:00:24 +00:00
Hugo Sales 7ca4330f17
[TEMPLATES] Tweak note complimentary info to not output empty <span>s 2022-03-01 17:58:53 +00:00
Hugo Sales 802a8d124a
[TOOLS] For delete content, restore local_groups and actor_subscriptions 2022-03-01 17:57:39 +00:00
Hugo Sales 87354c06bf
[TEMPLATES] For note complementary info, compare identity by the ID, rather than nickname, which is not unique 2022-03-01 17:39:14 +00:00
Hugo Sales 5600218924
[TWIG][I18N] Remove unnecessary wrappers for translation functions, use them directly 2022-03-01 17:25:51 +00:00
Hugo Sales 90f9378bca
[TEMPLATES] Use transList and trans function for note complimentary info 2022-03-01 13:46:06 +00:00
Hugo Sales 070f53c10e
[TWIG][I18N] Add transList function, which uses _m_list 2022-03-01 13:46:01 +00:00
Hugo Sales f73e9c12ba
[CORE][I18n] Add I18n::_m_list, which formats an array of elements into a list. Limited to 5 elements, as that should be enough (tm) and ICU doesn't support this natively 2022-03-01 13:45:40 +00:00
Hugo Sales fc203e2e38
[TWIG][TEMPLATES] Rename transchoice to trans and make it more generic 2022-03-01 13:45:11 +00:00
Hugo Sales b3374333f3
[TEMPLATES][I18N] Fixup use of trans filter, in favour of trans tags. These are much more flexible and facilitate parameterized translations, rather than using concats. The only appropriate use of the trans filter is when a whole string in a variable needs to be translated (which should probably be avoided anyway) 2022-03-01 13:16:11 +00:00
Hugo Sales 0b864e85fd
[TEMPLATES] Fixup uses of deprecated noteView, in favour of new NoteFactory facility 2022-03-01 11:23:39 +00:00
Hugo Sales a9a60bbd92
[COMPONENT][Posting] Clarify use of cache in note replies when posting 2022-03-01 11:19:47 +00:00
Hugo Sales 4cc4d06b11
[CORE][Cache] Fix bug where empty lists must be stored as a string in Redis (not supported natively), so we can't directly push to it, but the key still exists 2022-03-01 11:07:21 +00:00
Hugo Sales f8c1b0f71d
[TOOLS] Add Make rule to delete content, but keep actors and sequences 2022-02-28 23:37:16 +00:00
Hugo Sales 43ae3add43
[TEMPLATE] Update uses of NoteFactory macro, to pass the values seperately, rather than inside a converstation key 2022-02-28 15:48:47 +00:00
Hugo Sales d5f90a1206
[ENTITY][Note][CONFIG] Use getListPartialCache for getReplies. Add feeds/cached_replies config entry to control how many replies get cached 2022-02-28 15:47:38 +00:00
Hugo Sales 85ce6bfd41
[CORE][Cache] Add getListPartialCache, which allows for fetching a list and backing only a portion of it in the cache (useful for feeds and replies to notes, for instance) 2022-02-28 15:47:38 +00:00
Hugo Sales 46c4bd9099
[COMPONENT][Conversation] Sort conversation correctly 2022-02-28 15:47:38 +00:00
Hugo Sales 35f3781a32
[COMPONENT][Collection] Add mechanism for specifying the ordering of note and actor queries 2022-02-28 15:47:38 +00:00
Hugo Sales 45c7888676
[TOOLS] Run CS-Fixer on whole project 2022-02-28 15:47:37 +00:00
Hugo Sales 255c44bbf0
[ENTITY][LocalUser] Don't use FILTER_SANITIZE_EMAIL, use just want to validate. Up to the user to fix any errors. Use setter, rather than duplicate it's code 2022-02-28 15:47:37 +00:00
Hugo Sales 5188a473d0
[TOOLS] Fix errors reported by PHPStan 2022-02-28 15:47:37 +00:00
Hugo Sales 8c15d21591
[TOOLS] Add update-dependencies and update-autocode Make rules 2022-02-28 15:47:37 +00:00
Hugo Sales df640f60d2
[DEPENDENCIES] Update dependencies 2022-02-28 15:47:37 +00:00
Hugo Sales 6e85a4adbb
[CONFIG] Change default config to make media files (attachments and their thumbnails) to a subfolder to file, so cleanup scripts can avoid files meant to be persistent (plugin files, certificates) 2022-02-28 15:47:37 +00:00
Hugo Sales eccf21edef
[TOOLS][PLUGINS][OAuth2] Add mechanism to allow plugins to have an install script. Add script for generating keys for OAuth 2022-02-28 15:47:32 +00:00
Eliseu Amaro 9b86794cda
[CSS] Details inside another details (accordion widget) will represent their 'open/close feedback arrows' properly now 2022-02-28 13:09:12 +00:00
Eliseu Amaro 077975136e
[CARDS][Note] Both 'in conversation' and 'in reply to' link to note's conversation. The former anchors it's id, while the latter it's parent id 2022-02-28 12:43:40 +00:00
Diogo Peralta Cordeiro 5495a3c5ec
[ENTITY][Note] NoteType now becomes a varchar as predicted 2022-02-27 02:04:48 +00:00
Diogo Peralta Cordeiro a9b34b75b6
[PLUGIN][TreeNotes] Correct cache issues and iterate functionality
- Replies ordering now correct
- Replies count added
- Posting adds new replies to cache (when concerning replies cache is not empty) and increments replies count
- Configuration to specify number of in-tree replies shown added
- TreeNotes templates was moved from core to plugin
- Button to read more replies was added
2022-02-27 01:46:25 +00:00
Diogo Peralta Cordeiro 2f539d176d
[TWIG] Implement transchoice for ICU plural translations 2022-02-27 00:44:23 +00:00
Diogo Peralta Cordeiro d4c908c194
[CORE][Cache] Implement listPushRight 2022-02-27 00:44:23 +00:00
Diogo Peralta Cordeiro b630d530f4
[PLUGIN][ActivityPub][Postman] JSON_UNESCAPED_SLASHES
Only record webfinger matches for acct
2022-02-25 13:52:56 +00:00
Eliseu Amaro 26a50618b0
[CARDS][Note] Notification targets are now used as target info, instead of previous reply dependant implementation [COMPONENTS][Group] Feed title is applied to GroupFeed view 2022-02-25 13:12:16 +00:00
Diogo Peralta Cordeiro d5731e6351
[COMPONENT][Notification] Consider attention properly in notes 2022-02-25 13:12:16 +00:00
Diogo Peralta Cordeiro f5e92de62d
[PLUGIN][ActivityPub][Util][Explorer] Simplify fetching Actor by URI 2022-02-25 13:12:14 +00:00
Eliseu Amaro 7c80277436
[CSS] Fix header position on >1080p displays 2022-02-24 19:16:41 +00:00
Diogo Peralta Cordeiro 4754593cde
[PLUGIN][ActivityPub][Model][Activity] If the object is wrapped in an activity, exclude the @context 2022-02-24 19:07:46 +00:00
Eliseu Amaro d12038a9f8
[CSS] Complete refactor, removing all useless rules, squashing related separate files, and limiting folder depth 2022-02-24 19:05:14 +00:00
Diogo Peralta Cordeiro af02bc7b32
[PLUGIN][ActivityPub][Model][Note] Replace our directMessage extension with LitePub's 2022-02-23 22:27:32 +00:00
Diogo Peralta Cordeiro bc3d5245f5
[PLUGIN][ActivityPub][Model][Note] Handle Mentions properly 2022-02-23 22:27:32 +00:00
Diogo Peralta Cordeiro f3c2e49e3f
[PLUGIN][ActivityPub] Correct @context 2022-02-23 22:27:30 +00:00
Diogo Peralta Cordeiro 05b7f2c28b
[CORE][DB] Remove doc from deprecated DB::merge and add about DB::refresh 2022-02-23 17:42:20 +00:00
Eliseu Amaro 338ea0ea58
[COMPONENTS][Group] Group view template now extends the Collection of Notes view instead of trying to reinvent the wheel [COMPONENTS][Conversation] Replaced deprecated DB::merge with DB::persist 2022-02-23 17:01:41 +00:00
Diogo Peralta Cordeiro 57a07ef74f
[COMPONENT][FreeNetwork] Add to Search the query expression 2022-02-21 04:53:12 +00:00
Diogo Peralta Cordeiro c380cbd846
[COMPONENT][FreeNetwork] Mention and Group tags in notes are handled differently 2022-02-21 04:52:30 +00:00
Diogo Peralta Cordeiro 7678e155d9
[COMPONENT][Search] Ensure title is set when saving as feed 2022-02-21 04:49:08 +00:00
Diogo Peralta Cordeiro 59380ed2ac
[COMPONENT][Collection] If invalid term, just perform a regular search for it 2022-02-21 04:48:18 +00:00
Diogo Peralta Cordeiro 1e310aa124
[PLUGIN][ActivityPub][FreeNetwork] DB::findBy won't work if not commited first 2022-02-20 15:01:49 +00:00
José Marques 8b0e9c7890
[UTIL][Form][ActorForms] Fix Full Name validate: Tried to mb_strln on null
If the trim(string) is empty, then store null without further ado
2022-02-20 05:03:55 +00:00
Eliseu Amaro f1caabd296
[CARDS][Note] Note factory template macro created, allows Notes to be represented with completely different macros/blocks, possible to extend types through additional events. Compact Notes have a max height, content can be scrolled by [CSS] Avatars, and Embed attachments now have a max-block-size which acts independently of image orientation 2022-02-20 05:03:54 +00:00
Eliseu Amaro a71c16d654
[COMPONENTS][Posting] Fixed issue where an embed attachment would violate Note's conversation_id not null constraint
Conversation was only assigned after storing Note's attachments
2022-02-20 05:03:41 +00:00
Diogo Peralta Cordeiro ecfd6b5ad2
[PLUGIN][ActivityPub][Model][Note] Sometimes content is explicitely null 2022-02-20 05:03:40 +00:00
Diogo Peralta Cordeiro 496701ce73
[PLUGIN][ActivityPub][Inbox] Add event for notifications triggered by AP Inbox 2022-02-20 05:03:40 +00:00
Diogo Peralta Cordeiro e86dbad6d6
[COMPONENT][Notification] Don't explode with understandable duplicate notifications
This is common when a duplicate federation request is received
2022-02-20 05:03:40 +00:00
Diogo Peralta Cordeiro 6f3e760c63
[PLUGIN][ActivityPub][Inbox] Separate handler by method 2022-02-20 05:03:40 +00:00
Diogo Peralta Cordeiro 51cccd0155
[PLUGIN][ActivityPub] Simplify DB usage 2022-02-20 05:03:40 +00:00
Diogo Peralta Cordeiro 9523927b8e
[PLUGIN][ActivityPub][Model][Note] There may be no attachments, nor tags, nor to, nor cc 2022-02-19 05:46:48 +00:00
Diogo Peralta Cordeiro ebbd8bf1e4
[PLUGIN][ActivityPub][HTTPSignatures] Fix wrong assumption that sha512 is used in hs2019 2022-02-19 04:49:50 +00:00
Diogo Peralta Cordeiro 7a59d5a002
[PLUGIN][ActivityPub][HTTPSignatures] Validate draft-cavage-http-signatures-11 2022-02-19 04:49:50 +00:00
Diogo Peralta Cordeiro 52ae5fa690
[PLUGIN][ActivityPub][Inbox] Improve logs 2022-02-19 04:49:50 +00:00
Diogo Peralta Cordeiro 99f7e7cd79
[PLUGIN][ActivityPub][Model][Note] Handle group scope properly 2022-02-19 04:49:50 +00:00
Diogo Peralta Cordeiro 27635d8ec2
[PLUGIN][ActivityPub][Model][Note] Add name property as note title 2022-02-19 04:49:49 +00:00
Diogo Peralta Cordeiro 0a741903a1
[PLUGIN][ActivityPub][Model][Note] Federate content out 2022-02-19 04:49:49 +00:00
Diogo Peralta Cordeiro 8f60fc4685
[PLUGIN][ActivityPub][Model][Note] Federate attentions out 2022-02-19 04:49:49 +00:00
Diogo Peralta Cordeiro 8cf60275e6
[PLUGIN][ActivityPub][Model][Note] Add support to Pages 2022-02-19 04:49:49 +00:00
Eliseu Amaro 75837af412
[CSS] Replacing problematic special Unicode glyphs
A browser will use Unicode glyphs from other font families if the glyph in question is not present for the current typeface. This leads to unnerving situations, whereby setting content through pseudo-selectors will cause text to misalign. And no, line-height won't make a difference in this case. This happens because fonts have different heights. Another reason may reside on CSS3 having pseudo selectors but not really having a proper spec for them to begin with.
2022-02-19 04:01:47 +00:00
Eliseu Amaro 03a475b642
[TWIG] Form layout is all new, since extending form_div_layout.html.twig was quite limiting
[COMPONENTS][Posting] It is now visible on Actor profiles [COMPONENTS][Search] Overall rework of search results template, there's also additional help text added [CSS] Header no longer translucent, font sizes yet more consistent, replies marker less pronounced, and font hierarchy is now applied in both weight and size
2022-02-19 04:01:47 +00:00
Diogo Peralta Cordeiro b69f4a46c5
[COMPONENT][Posting] Page should flush with a different notification 2022-02-16 19:35:27 +00:00
Diogo Peralta Cordeiro b6ed0b4c6c
[CORE][Actor] Fix generic profile route 2022-02-16 18:53:08 +00:00
Diogo Peralta Cordeiro cee2d143c9
[COMPONENT][Posting] Add storeLocalPage
Minor refactoring and bug fixing
2022-02-16 18:53:08 +00:00
Diogo Peralta Cordeiro 2d5fac7a89
[COMPONENT][Notification] Re-introduce the concept of note attention
Minor refactoring and bug fixing
2022-02-16 18:53:08 +00:00
Eliseu Amaro e70acd5c3b
[UTIL][HTML] HTML abstraction class was extended with a more specialised Heading class
This little abstraction layer made it a bit easier to add a different title to a Note or Actor Feed Collection template, from whichever controller that uses it. Please, bear in mind, that abstract templates such as those found in Components\Collection, may act in a very 'declarative' way upon using them. This makes it difficult to dynamically choose what type of header is used without undergoing a mining operation in the likes of a pyramid of doom. Hence, this _little_ change.
2022-02-16 18:53:08 +00:00
Diogo Peralta Cordeiro f66e178dfc
[CORE][Actor][Settings] Fix nickname change and refactor Core Form::handle so it's harder to repeat these mistakes again
Minor improvements on actor->getLocal
2022-02-16 18:53:07 +00:00
Diogo Peralta Cordeiro 397b54a207
[PLUGIN][Bundles] Refactor BlogCollections to Bundles 2022-02-16 18:53:07 +00:00
Diogo Peralta Cordeiro 33e1d3eb20
[COMPONENT][Conversation] Use Router::url's _fragment for anchor 2022-02-16 18:53:07 +00:00
Diogo Peralta Cordeiro 54b9ec48b4
[COMPONENT][Collection][FeedController] Fix group scope, we should use the IN context actor to check the group 2022-02-16 18:53:07 +00:00
Diogo Peralta Cordeiro 40590bbd11
[COMPONENT][Group] Restore settings functionality 2022-02-16 18:53:07 +00:00
Eliseu Amaro 5b94973079
[COMPONENTS][Posting] Form is no longer added to RightPanel if not on a feed|conversation|groups route 2022-02-16 18:53:07 +00:00
Eliseu Amaro 9d9abf8afb
[CARDS][Note] Removed incorrect aria attributes, polished Note card 2022-02-16 18:53:06 +00:00
Diogo Peralta Cordeiro be0a2d27e2
[COMPONENT][Blog] Initial support for in group blogs 2022-02-16 18:53:06 +00:00
Diogo Peralta Cordeiro bf23ae2dcf
[ENTITY][Note] Some notes aren't exactly just a note but rather a Page, or further (like happening or poll), this is only initial support for that
It prolly will become a varchar instead of an enum, so plugins can add their own note types
2022-02-16 18:53:06 +00:00
Diogo Peralta Cordeiro 33e768c298
[COMPONENT][Group][Controller] Separate feed from other group features 2022-02-15 17:13:16 +00:00
Diogo Peralta Cordeiro 3f9c86f0df
[COMPONENT][Group] More flexible member roles than only isAdmin
Refactor terminology of canAdmin to match current roles system
2022-02-14 05:02:10 +00:00
Diogo Peralta Cordeiro bc63c3727a
[COMPONENT][GROUP] Allow to create a group as private and prioritise group scope on Posting in that context 2022-02-14 05:02:09 +00:00
Diogo Peralta Cordeiro 090a087832
[COMPONENT][Group] Check nickname on register 2022-02-14 01:21:40 +00:00
Diogo Peralta Cordeiro 262b14a977
[COMPONENT][Collection] Organisation no longer is an actor type but rather a type of Actor Group 2022-02-14 00:41:57 +00:00
Diogo Peralta Cordeiro 10d1a7ed2a
[PLUGIN][ActivityPub] Implement Group Inbox POST 2022-02-13 23:15:00 +00:00
Diogo Peralta Cordeiro 3ae8f8213f
[GROUP] Notifity group subscribers of new activity concerning the group 2022-02-13 23:15:00 +00:00
Diogo Peralta Cordeiro 66323c5a73
[PLUGIN][ActivityPub] Fix several issues with target and notifications inserted by AP 2022-02-13 23:14:59 +00:00
Diogo Peralta Cordeiro 56c884026f
[COMPONENT][Notification] We must record remote notifications because of feeds 2022-02-13 23:14:59 +00:00
Diogo Peralta Cordeiro 62bf788b90
[CORE][Note] Implement private group scope properly 2022-02-13 23:14:59 +00:00
Diogo Peralta Cordeiro 6500e99b69
[COMPONENT][Posting] Respect context actor concerning visibility and In sorting 2022-02-13 23:14:58 +00:00
Diogo Peralta Cordeiro cda1568db5
[TEMPLATES][Cards][Blocks] Provide both actor uri and url, as well as full mention guidance 2022-02-13 23:14:58 +00:00
Diogo Peralta Cordeiro 1f2638d15a
[ROUTES] Remove ActorCircle holdover route 2022-02-11 15:31:47 +00:00
Diogo Peralta Cordeiro 6b4fa8c303
[COMPONENT][Notification] Additional check to avoid unnecessary notifications 2022-02-11 15:31:47 +00:00
Diogo Peralta Cordeiro 17733f32d6
[PLUGIN][ActivityPub] Implement Group Outbox
Fix various minor issues
2022-02-11 10:06:01 +00:00
Diogo Peralta Cordeiro fb3e900b28
[CORE] Add CONFIG_ prefix to environment whitelist
Fixed minor issues with Commong:config of env not being included and ported to local social yaml

Fixed some regressions introduced with [CORE] Unset sensitive information from the environment
2022-02-11 10:05:58 +00:00
Diogo Peralta Cordeiro 416451a519
[CORE][Actor] Simplify logic so more is reused between different types of actors
Minor bug fixes
2022-02-11 00:27:03 +00:00
Diogo Peralta Cordeiro 1f1524c2b3
[GROUP] Simplify logic by making Actor::Organisation a type of Actor::Group
Some minor bug fixes
2022-02-11 00:26:43 +00:00
Eliseu Amaro 35e907f7b2
[CARDS][Note] Note's 'in reply to' information added, overall polish of feeds templates and proper titles added for every single section that makes up a note 2022-02-09 18:49:34 +00:00
Eliseu Amaro 79bb258ba6
[CSS] Further dialing of sizes and media queries for a better mobile UX 2022-02-08 17:14:28 +00:00
Eliseu Amaro 80dfea6812
[CARDS][Note] Note's actions are now inside the same div as Note's complementary info, overall footprint of replies diminished 2022-02-08 17:01:58 +00:00
Eliseu Amaro f6b19d2a0f
[CARDS][Note] Note's actions are now inside the same div as Note's complementary info, overall footprint of replies diminished 2022-02-08 16:13:46 +00:00
Eliseu Amaro 67a2387b31
[CARDS][Note] Removed note's complementary info related to the current user everywhere, which was criticized from being redundant 2022-02-08 15:19:33 +00:00
Eliseu Amaro 5d0b8930e1
[COMPONENTS][Conversation] Removed redundant complementary information from notes replied to 2022-02-08 14:43:39 +00:00
Eliseu Amaro 22741702bf
[CSS] Replaced .section-details-subtitle summary, .section-details-title summary outline to a border, since Firefox ESR doesn't apply border-radius to outline 2022-02-08 14:22:52 +00:00
Eliseu Amaro ba131bdb16
[CSS] Background noise is back, default_theme directory hierarchy simplified
[PLUGINS][Oomox] Fixed issue where resetting colours when no entity was present would lead to an error (it expected an entity, but NULL was given)
2022-02-08 14:12:59 +00:00
Eliseu Amaro 7b0667109d
[CARDS][Note] Note actions are now displayed at the end
Due to space constraint on mobile screens, prior actions placement proved to be a problem. Additionally, note replies are now separated from their parent, allowing more horizontal space to be used if necessary/more reply depth to be presented in a reasonable fashion.
2022-02-08 01:26:25 +00:00
Eliseu Amaro 5cd3bc3206
[CSS] Touch devices are now able to scroll horizontally on note author information 2022-02-08 00:30:15 +00:00
Eliseu Amaro 79d022e850
[CSS] Fixing note attachments padding, height and allowing their wrap when limited space is available 2022-02-08 00:18:24 +00:00
Eliseu Amaro cb393ca554
[CARDS][Note] Fix note replies from calling note macro as if it was still part of the same template 2022-02-08 00:05:51 +00:00
Eliseu Amaro 99593a19ef
[CSS] Default theme polish work, more consistent font sizes and improved dark theme colors 2022-02-07 23:54:29 +00:00
Eliseu Amaro 9a53f94b77
[TWIG] Replaced getRightPanelBlocks with addRightPanelBlock, provides more control on block placement
[COMPONENTS][RightPanel] Refactored template, improved clarity, and added Posting form related macros

[PLUGINS][NoteTypeFeedFilter] Removed icons from template, added them through CSS to further improve performance
2022-02-07 20:29:14 +00:00
Eliseu Amaro d6666cf209
[CSS] Aligned details marker arrows 2022-02-07 02:46:08 +00:00
Eliseu Amaro b3d582f665
[PLUGINS][AttachmentCollections] Fixed "Error: Expected Doctrine\ORM\Query\Lexer::T_IDENTIFIER, got 'Plugin\AttachmentCollections\Entity\AttachmentCollection'"
[TWIG] Cards are now divided into blocks and macros, additional macros done, attachments page no longer inside cards directory
[CARDS][Navigation] Now using macros to create section, details, and nav elements
2022-02-07 01:54:04 +00:00
Eliseu Amaro 2b9f70f89f
[PLUGINS][BlogCollections] Entities and base plugin and controller done 2022-02-07 01:52:35 +00:00
Eliseu Amaro e0ceddc2e6
[CSS] Replaced fooobar:not([foo=bar], [foo2=bar2]) rule, as Firefox ESR 78.x doesn't support that specific syntax 2022-02-04 21:12:22 +00:00
Diogo Peralta Cordeiro 81f6d496c6
[PLUGIN][OAuth2] Fix some static issues 2022-02-04 19:56:17 +00:00
Eliseu Amaro 4dd976eb22
[ENTITY][Note] Added function getRenderedSplit, return an array of paragraphs/line breaks
[PLUGINS][Favourite] Foreign keys now properly defined on schema

[CARDS][Note] Note text is now hidden by default if too many paragraphs/line breaks are present, BlogCollection plugin will certainly need this feature
2022-02-04 16:07:24 +00:00
Bruno Aleixo fb76775716 [TOOLS][COMPONENTS][CORE] Ran cs-fixer on all files 2022-01-30 16:41:54 +00:00
Bruno Aleixo 162b01e2c5 [CORE] Unset sensitive information from the environment 2022-01-30 16:39:43 +00:00
Eliseu Amaro afd1211852
[CSS] Using accent-color rule to stylize checkbox 2022-01-28 23:15:01 +00:00
Eliseu Amaro 8f8070036c
[CSS] Eliminated repeated rules, improved icon alignment, and removed checkbox and radio custom styling
Browser specific quirks made it impossible to stylize checkbox and radio buttons. High DPI, custom default font sizes and/or custom GTK themes make it very difficult to keep it consistent.
2022-01-28 18:21:04 +00:00
Eliseu Amaro 2e6f91f34e
[FORM][ActorForms] Fullname length is now validated prior to being set 2022-01-27 17:53:02 +00:00
Eliseu Amaro 5036b72a71
[ENTITY][Actor] Nickname is lower case transformed when generating 'actor_view_nickname', making sure that actor pages are linked accordingly 2022-01-27 17:19:50 +00:00
Eliseu Amaro a17a514bfd
[CONTROLLER][Security] Further sanity checks and validation done on email entry 2022-01-27 17:08:20 +00:00
Eliseu Amaro 1576d253a5
[CONTROLLER][UserPanel] Email is now sanitized and validated before calling corresponding setter 2022-01-27 16:59:43 +00:00
Eliseu Amaro 64a698d255
[COMPONENTS][Search] Polished search template for a clearer header hierarchy 2022-01-27 02:17:41 +00:00
Eliseu Amaro ab6dabf4f7
[CSS] Fix issue where panels wouldn't scroll independantly 2022-01-27 01:53:30 +00:00
Eliseu Amaro 222e1fbb2b
[PLUGINS][AttachmentShowRelated] Replacing h2 with span, its supposed to be complementary content, not main 2022-01-27 01:13:18 +00:00
Eliseu Amaro 117549bf1e
[PLUGINS][Favourite] Remove favourite action properly removes note_favourite Entity now [COMPONENTS][Collection] Simplyfying feed-action-details template section
[COMPONENTS] Documentation work [PLUGINS] Documentation work
2022-01-27 00:54:27 +00:00
Eliseu Amaro adf484f58a
[COMPONENTS][Posting] No error to ignore was reported on line 161, removed ignore
[PLUGINS][Directory] Further documentation work

[CORE][Controller] Separating workflows, setting proper return types

[TWIG][Security] Removing unused stylesheet calls
2022-01-26 20:54:55 +00:00
Eliseu Amaro 16e7d6cff7
[COMPONENTS] Documenting methods with high cognitive complexity, specifically in Group and Posting components
[PLUGINS][Directory] Updating docs, @params weren't set correctly
2022-01-26 20:01:37 +00:00
Eliseu Amaro 6a5312aca9
[CORE][GNUsocial] social.local.yaml is now updated with the proper node name 2022-01-26 18:46:31 +00:00
Eliseu Amaro 14bb1b2876
[COMPONENTS][Conversation] Note being replied to now appears before Posting's own form, RightPanel is also open by default on smaller screens when the current route is 'conversation_reply_to' 2022-01-25 19:18:42 +00:00
Hugo Sales c7c5fe7979
[PLUGIN][OAuth2] Add 'me' field to token responses 2022-01-25 16:07:39 +00:00
Hugo Sales fa0d02a9ac
[PLUGIN][OAuth2] Start adding OAuth2 support with client registration
This hardcodes the user, and has some other issues, so it is not yet
complete.

We follow mastodon's spec for automatic client registration, available
at both `/api/v1/apps` and a more reasonable `/oauth/client`. This
accepts a JSON POST with the client info and returns JSON with a
`client_id` and a `client_secret`, to be used with `/oauth/authorize`
and `/oauth/token`. It also, seemingly, requires returning an `id`
with unclear purpose.

The `/oauth/token` endpoint doesn't currently return a `me` field.
2022-01-25 13:35:44 +00:00
Hugo Sales 4736146b80
[TOOLS] Update autocode, allow for abstract entity classes, derive namespace from file rather than using 'get_declared_classes' 2022-01-25 13:35:44 +00:00
Eliseu Amaro e3bfb1ebc5
[CSS] .note-info text will automatically crop when no space is available, on hover will show contents 2022-01-25 00:02:38 +00:00
Eliseu Amaro ee04571f4d
[TWIG] Various fixes related to header elements hierarchy
Widgets shouldn't have a header element from here forward, since their location varies
2022-01-23 19:46:47 +00:00
Eliseu Amaro bf07fa1ade
[COMPONENTS][Collection] Added PrependActorsCollection event [COMPONENTS][Group] Added getGroupCreateForm, used in PrependActorsCollection event to build create a new Group form view
[COMPONENTS][LeftPanel] Removed onEndShowStyles event since the corresponding CSS needed is now consolidated into the default_theme itself [COMPONENTS][RightPanel] Deleted components/RightPanel/RightPanel.php, since its only method (onEndShowStyles) wasn't needed anymore
2022-01-23 19:07:39 +00:00
Eliseu Amaro e4a3438d55
[CORE][I18n] Fixing 'file_get_contents(): Argument #1 () must be of type string, Symfony\Component\Finder\SplFileInfo given' error by using Symfony's Finder to iterate through existing files 2022-01-23 19:07:39 +00:00
Diogo Peralta Cordeiro 6b1c6f603e
[CORE][ActorLocalRoles] Improve Roles 2022-01-22 18:47:56 +00:00
Hugo Sales 5f243f68be
[DEPENDENCIES] Add symfony/psr-http-message-bridge 2022-01-21 22:05:34 +00:00
Hugo Sales 68c3204e71
[DEPENDENCIES] Update dependencies 2022-01-21 22:05:34 +00:00
Hugo Sales 559f6d650b
[COMPONENT][Language] Fix template name in language sorting 2022-01-21 22:05:34 +00:00
Eliseu Amaro 3d9edd1db8
[COMPONENTS][LeftPanel] Edit feeds page polish, existing links are shown in a grid, saving space
[COMPONENTS][Collection] Fixing details summary class [PLUGINS][WebMonetization] Fixing widget details summary class
2022-01-21 22:05:34 +00:00
Eliseu Amaro 402300fe93
[COMPONENTS][Search] Fixing Search form incorrect class names 2022-01-21 22:05:34 +00:00
Eliseu Amaro e2e1b0172d
[COMPONENTS][Collection] Actors view template ordering section polished [PLUGINS][RepeatNote] Note to be repeated now uses full note card
[CSS] Simplyfying rules, re-ordering and removing unnecessary and costly 'display: flex' rules
[CARDS][Note] Minimal note macro has info inside the note itself now, since horizontal space is limited
2022-01-21 22:05:33 +00:00
Eliseu Amaro f731850f5c
[CSS] .section-widget class and derivatives replaced as .frame-section, since a widget implies a simple element with a specific function 2022-01-21 22:05:33 +00:00
Eliseu Amaro 7d546e8901
[CSS] Improved performance, reduced padding [COMPONENTS][LeftPanel] Consolidated CSS into base.css [COMPONENTS][RightPanel] Consolidated CSS into base.css [PLUGINS][WebMonetization] Replaced fieldset with section
Accessibility tests failed if the fieldset had no legend, since it
wasn't really neeeded, it was replaced as another element.
2022-01-21 22:05:33 +00:00
Diogo Peralta Cordeiro bdeb3bcff5
[PLUGIN][ActivityPub] Federate Actor of types other than Person
Fix some other minor bugs
2022-01-21 22:05:31 +00:00
Hugo Sales 25b2847201
[TOOLS][AYY1] Improve accesibility testing to save images and compare the differences against a reference (tests/screenshots/ 2022-01-21 21:03:09 +00:00
Diogo Peralta Cordeiro 23d45ffab7
[UTIL][Formatting] Mention prefix was hardcoded, fixed. 2022-01-21 21:03:09 +00:00
Diogo Peralta Cordeiro b253ce5e70
[DOCS][Design] Add guidelines menu entry 2022-01-21 21:03:09 +00:00
Eliseu Amaro c4f9e58e8d
[COMPONENTS][Attachment] Fixed typo on attachmentShowWithNote, where the template called was somehow replaced with a child of it 2022-01-21 21:03:09 +00:00
Hugo Sales 6ab740d780
[COMPONENT][Search][UI] Fix template, which included the search builder form inside the search form, chaos ensuing 2022-01-21 21:03:09 +00:00
Hugo Sales de795b78f9
[DOCKER][DEPENDENCIES] Restructure PHP Dockerfile to install each package in separate layers and add WikiMedia texvc 2022-01-21 21:03:09 +00:00
Eliseu Amaro 29d498770c
[COMPONENTS][Group] Create a group route added, template polished
[COMPONENTS][Circle] Removed any Group related route from shouldAddToRightPanel event
[CARDS][Profile] Block should now allow inline long nicknames to not
break
2022-01-21 21:03:09 +00:00
Eliseu Amaro d7039b1c5c
[COMPONENTS][Group] Create a group route added, template polished
[COMPONENTS][Circle] Removed any Group related route from shouldAddToRightPanel event
[CARDS][Profile] Block should now allow inline long nicknames to not
break
2022-01-21 21:03:08 +00:00
Hugo Sales 1856af68b3
[PLUGIN][RepeatNote][COMPONENTS][Posting] Review and fix RepeatNote. Handle attachment lives in Posting 2022-01-21 21:03:08 +00:00
Hugo Sales 9bd1f42843
[TOOLS] Use sudo to remove files 2022-01-21 21:03:08 +00:00
Hugo Sales 145c88d43f
[ENTITY][Note] Only attempt to find mentions if we have content 2022-01-21 21:03:08 +00:00
Hugo Sales 4717dde12e
[TWIG][I18N] Improve base template facilitate translations of the accessibility panel text 2022-01-21 21:03:08 +00:00
Eliseu Amaro c028a601a5
[COMPONENTS][Group] Create a group route added, template polished
[COMPONENTS][Circle] Removed any Group related route from shouldAddToRightPanel event
[CARDS][Profile] Block should now allow inline long nicknames to not
break
2022-01-21 21:03:08 +00:00
Eliseu Amaro 692ecf1c99
[TWIG] Improved templates HTML structure, removed unnecessary element nesting, and refactored content sectioning
[COMPONENTS][Search] Refactored widget event as 'PrependRightPanel' (making it able to accomodate more generic blocks)
2022-01-21 21:03:08 +00:00
Eliseu Amaro 242fe3fd6e
[PLUGINS][PinnedNotes] Replacing arbitary size values with common variables 2022-01-21 21:03:08 +00:00
Eliseu Amaro dbdf1d9b0b
[CSS] Fixed footer responsiveness, since its content wouldn't wrap up from insuficient space for all of its content 2022-01-21 21:03:08 +00:00
Eliseu Amaro 7daa61500d
[COMPONENTS][Collection] Notes collection template now has a default title
[CARDS][Note] Removed note actions from minimal note block
2022-01-21 21:03:07 +00:00
Eliseu Amaro 077cbcf424
[TWIG] Improved accessibility menu
[COMPONENTS][RightPanel] Content form row is now preceeded by the content type form row
2022-01-21 21:03:07 +00:00
Phablulo Joel 04431885aa
[PLUGIN][PinnedNotes] Fix ActivityPub config 2022-01-21 21:03:07 +00:00
Phablulo Joel b8a35f9d6d
[PLUGIN][WebMonetization] Fix ActivityPub config 2022-01-21 21:03:07 +00:00
Eliseu Amaro 184d0246a5
[COMPONENTS][RightPanel] AppendRightPanelBlock event refactored,
replaced with src/Twig/Rintime::getRightPanelBlocks
[COMPONENTS] Re-ordered onAppendRightPanelBlock event calls arguments for improved consistency across events
2022-01-21 21:03:07 +00:00
Hugo Sales da7ae5e1f5
[TESTS][A11Y] Login and check all user pages for accessibility 2022-01-21 21:03:07 +00:00
Phablulo Joel 9e4aed84f8
[PLUGIN][LatexNotes] add LaTeX support for notes 2022-01-21 21:03:07 +00:00
Phablulo Joel db42ade2b6
[PLUGIN][MarkdownNotes] add markdown support for notes 2022-01-21 21:03:07 +00:00
Phablulo Joel 06d11d8337
[PLUGINS[WebMonetization] Basic activityPub support 2022-01-21 21:03:07 +00:00
Phablulo Joel 148dd6db50
[PLUGINS][PinnedNotes] Basic activityPub support 2022-01-21 21:03:06 +00:00
Phablulo Joel 21c7912702
[PLUGIN][Pinned Notes] Allow user to pin his notes 2022-01-21 21:03:06 +00:00
Phablulo Joel f7cbfbff8c
[COMPONENT][Collection] Add event to render html before drawing feed 2022-01-21 21:03:06 +00:00
Phablulo Joel 3f0d996dc9
[COMPONENT][Tag] Fix event handling 2022-01-21 21:03:06 +00:00
Hugo Sales 9e891ed020
[TOOLS][PHPStan] Ignore errors due to lack of namespace in CodeCeption acceptance tester 2022-01-21 21:03:06 +00:00
Hugo Sales 6c6c0270c5
[TESTS][CodeCeption] Update acceptance tests to remove accesibility test kludge 2022-01-21 21:03:06 +00:00
Hugo Sales a59997b41f
[TOOLS][DOCKER][A11Y] Switch to Pa11y CI and don't run it 'integrated' with codeception, since there was no good way to share cookies 2022-01-21 21:03:06 +00:00
Eliseu Amaro d542be1df4
[ACCESSIBILITY] Fix regressions in panel checkboxes and accessibility menu accesskeys
Accessibility menu accesskey regressions introduced with [ACCESSIBILITY][BASE] Accessibility menu was unreachable.
2022-01-13 19:47:41 +00:00
Eliseu Amaro eff9318c1d
[UTIL][Formatting] Mention title is not always defined 2022-01-13 18:07:19 +00:00
Eliseu Amaro fa9df9962e
[COMPONENTS][Conversation] Route 'conversation_mute' now has the
corresponding conversation view embedded, user is also redirected
properly
[PLUGINS][Favourite] Fixed typo
2022-01-13 17:47:47 +00:00
Eliseu Amaro 859bf0c0bf
[CONTROLLER][UserPanel] Notification settings panel debug information added for future reference 2022-01-13 16:24:23 +00:00
Eliseu Amaro d29e28b829
[CORE][Entity] Replaced get_called_class() calls with static::class since the former is deprecated 2022-01-13 16:24:12 +00:00
Diogo Peralta Cordeiro 14b03c7137
[UI][UserPanel] Do not try to re-set an unchanged nickname 2022-01-12 17:46:13 +00:00
Diogo Peralta Cordeiro 480f570238
[CORE][SECURITY][HTML] Refactor Security::sanitize to HTML::sanitize
Update composer dependencies, move more general deps from ActivityPub to Core
2022-01-12 17:12:58 +00:00
Eliseu Amaro 968b1751fd
[CSS] Further styling optimizations, compacting common rules. Removed select dropdown images, since they are no longer required 2022-01-12 16:42:33 +00:00
Eliseu Amaro c8daa82c1d
[TWIG] Replaced base.css @import with HTML link imports
According to 'High Performance Web Sites' (ISBN 10: 0596529309), @import has a negative impact on web page performance. Since all imports dependant on base.css will only start downloading after that one is fully gathered.
2022-01-12 16:32:47 +00:00
Eliseu Amaro 600a1511cb
[TWIG] Removed all instances were 'arrow-down' icon was called in twig templates, replaced it's intended feedback by using :after pseudo-selector within CSS
In user panel render time reduced dramatically, by ~70ms. Said icon was requested by twig >10 times.
2022-01-12 16:07:28 +00:00
Diogo Peralta Cordeiro 59b8bdf99b
[PLUGIN][ActivityPub] Provide ActivityStreams 2.0 responses for every Collection
Implemented ActivityPub Outbox
2022-01-11 20:30:25 +00:00
Hugo Sales f3a7e8f04d
[TOOLS] Remove CodeCeption files from composer autoload-dev, since they're not available before installing, and ignore errors in PHPStan 2022-01-10 23:14:43 +00:00
Hugo Sales 65504b72bb
[TOOLS] Setup pa11y to run on pages after codeception 2022-01-10 23:09:39 +00:00
José Marques d713429d88
[CORE][Nickname] Properly set nickname for existing accounts 2022-01-10 11:33:13 +00:00
Diogo Peralta Cordeiro 1056bc661f
[COMPONENT][FreeNetwork] Restore Galaxy feed 2022-01-10 10:29:55 +00:00
Hugo Sales f40eb3955f
[TOOLS] Update makefile to add an acceptance and accesibility testing target 2022-01-09 14:45:33 +00:00
Hugo Sales b2b445d21e
[TOOLS][DOCKER] Add pa11y and nginx container to tooling toolchain 2022-01-09 14:44:56 +00:00
Hugo Sales 528f6df240
[TOOLS][PHPStan] Ignore autogenerated Codeception classes 2022-01-09 14:44:08 +00:00
Hugo Sales 894c78bf99
[TOOLS] Keep git in docker image, since we use patched composer packages, temporarily 2022-01-09 14:43:33 +00:00
Hugo Sales 38baa192d8
[DEPENDENCIES][TOOL] Add codeception and bootstrap it for acceptance and accessibility testing 2022-01-09 14:42:16 +00:00
Hugo Sales a697399a6f
[PLUGIN][DeleteNote][Favourite][ProfileColor][RepeatNote][WebMonetization] Refactor, cleanup and cache results 2022-01-09 12:29:34 +00:00
Hugo Sales cdf1d67d0f
[CORE][Cache] Workaround to redis not allowing empty lists 2022-01-09 12:29:34 +00:00
Hugo Sales 06ece5b72e
[COMPONENT][Collection] Only run queries if the criteria is not empty 2022-01-09 12:29:34 +00:00
Hugo Sales da6d3bd351
[COMPONENT][Collection] Use current locale 2022-01-09 12:29:34 +00:00
Hugo Sales c835fc6aca
[COMPONENT][Collection][Feed][Attachment][Feed][Language][Tag] Refactor and consolidate Search and Feed query mechanisms into Collection. Remame 'onSearch' events to 'onCollectionQuery' 2022-01-09 12:29:34 +00:00
Hugo Sales 57604b3851
[PLUGIN][NoteTypeFilter] Always show filtering options 2022-01-09 12:29:34 +00:00
Hugo Sales b1abd81aca
[DEPENDENCIES] Update dependencies 2022-01-08 00:11:12 +00:00
Hugo Sales 5cfed3d536
[TWIG] Display errors in templates that display forms with form_start 2022-01-08 00:11:08 +00:00
Hugo Sales 0758d6145b
[COMPONENT][Collection][CONTROLLER][Collection] Use null-safe calls to attempt to get a language 2022-01-08 00:07:32 +00:00
Eliseu Amaro d17f276419
[COMPONENTS][Conversation] Added missing foreign keys to ConversationMute Entity
Fixed 'is_muted' variable check logic that impeded the Conversation from being muted
2022-01-07 21:14:51 +00:00
Eliseu Amaro fc57b3290e
[COMPONENTS][Search] Polished results page HTML view 2022-01-07 21:14:51 +00:00
Eliseu Amaro 1438433859
[PLUGINS][NoteTypeFeedFilter] Polish feed actions HTML, adding proper anchor titles and better user feedback when a filter in applied
[COMPONENTS][Collection] Notes feed template HTML polish to accomodate changes needed for NoteTypeFeedFilter
2022-01-07 21:14:51 +00:00
Phablulo Joel cb1dc4c10f [PLUGIN][WebMonetization] Adding Web Monetization plugin which allows for donations using the Web Monetizations protocol 2022-01-07 14:55:35 -03:00
Phablulo Joel 9cf8970603 [TEMPLATES][Base] AppendToHead event added to base template 2022-01-07 14:53:55 -03:00
Phablulo Joel c3d58c350e [COMPONENTS][Collections] Iterating documentation 2022-01-07 09:23:37 -03:00
Diogo Peralta Cordeiro e056920de4
[COMPONENT][Subscription] Fix Notifications 2022-01-06 12:13:11 +00:00
Eliseu Amaro 0c245fcb6e
[COMPONENTS][Subscription] Subscribe Actor action implemented
[TWIG] AddProfileAction event added
[CARDS][Profile] Refactor and restyling to accomodate Actor actions
2022-01-06 12:13:10 +00:00
Diogo Peralta Cordeiro 0d1ab2c9cf
[SECURITY][Register] New users should have their current browser language set as first language preference 2022-01-05 04:19:35 +00:00
Diogo Peralta Cordeiro 3f8fab0021
[PLUGIN][Favourite] Fix routes 2022-01-05 04:19:35 +00:00
Diogo Peralta Cordeiro cd6ce3542e
[COMPONENT][Circle] Move circles to a component, various bug fixes
Mention links are now correct
2022-01-05 04:19:22 +00:00
Diogo Peralta Cordeiro 627d92b290
[COMPONENT][Tag] Improve Note Tag Handling and start extracting Circles logic out of the plugin, various bug fixes 2022-01-05 01:30:02 +00:00
Diogo Peralta Cordeiro ee007befa4
[COMPONENT][Posting] DB::Flush after Notification and fix minor issues with In targets 2022-01-05 01:30:01 +00:00
Diogo Peralta Cordeiro 9df9c6a19c
[COMPONENT][Collection] Make MetaCollectionPlugin a trait and abstract collection delete and name update 2022-01-05 01:30:00 +00:00
Diogo Peralta Cordeiro 754135743e
[COMPONENT][Subscription] Move respective routes to component 2022-01-05 01:29:27 +00:00
Diogo Peralta Cordeiro 5a0bbfc795
[UTIL][Common][I18N] Use actor's preferred language for _m and utility to retrieve current language even when no actor is logged in 2022-01-05 01:29:26 +00:00
Hugo Sales 6247dd4c1a
[COMPONENT][RightPanel] Display form errors 2022-01-04 18:58:32 +00:00
Hugo Sales de8eab2cf8
[CORE][FORM][FormTypeNonceExtension] Add a nonce to all forms with a CSRF token 2022-01-04 18:58:32 +00:00
Hugo Sales b7e4f79ccc
[CORE][Cache] Add Cache::incr which increments a value at , atomically, in the case of Redis 2022-01-04 18:58:32 +00:00
Eliseu Amaro a5b5362be2
[DOCS][Designer] General guidelines for styling initiated
Added wireframes of default page, dividing page into 4 distinct general
areas.

Added CSS classes reference table.
2022-01-04 00:02:21 +00:00
Hugo Sales d444ea7963
[COMPONENT][Conversation] Refactor and fix Conversation component 2022-01-03 21:20:27 +00:00
Hugo Sales a729a8eddb
[COMPONENT][Collection] Pass current actor and their top language to query, if not otherwise specified 2022-01-03 21:20:26 +00:00
Hugo Sales a8a8cc4046
[COMPONENT][Posting] Plumb in reply_to and redirecto to GET from 2022-01-03 21:20:26 +00:00
Hugo Sales 7d38c927e1
[ENTITY][Note][CACHE] Consolidate cache keys to helper function and add ensureCanInteract 2022-01-03 21:20:26 +00:00
Eliseu Amaro 135bf8bc68
[COMPONENTS][Conversation] Documented respective Controller
[PLUGINS][TreeNotes] Documentation added, feedFormatTree explained in detail
2022-01-03 19:26:17 +00:00
Eliseu Amaro 5a31258190
[COMPONENTS][Conversation] Further documentation work, expected arguments explained in more detail 2022-01-03 19:26:17 +00:00
Hugo Sales f5fc7b6cd1
[CORE][Controller] Add facility for either returning null or throwing, from Controller->{int,string,bool} 2022-01-03 18:02:33 +00:00
Hugo Sales 141c5f6785
[COMPONENT][Collection][CONTROLLER][Collection] Add utility method to call Feed::query in Collection, which handles getting and passing the page 2022-01-03 18:02:33 +00:00
Eliseu Amaro 07b65584ff
[COMPONENTS][Posting] Replaced is_int() with is_numeric(), casting target to int when using Actor getter
From php-stan: is int with string evaluates to false

Thus, the change was made in order to behave as intended
2022-01-03 17:58:48 +00:00
Eliseu Amaro 4ae160b0f8
[PLUGINS][AttachmentShowRelated] Fix onEndShowStyles condition to add proper stylesheet to array 2022-01-03 17:51:19 +00:00
Eliseu Amaro a622b175bc
[DEPENDENCIES] Update dependencies 2022-01-03 16:38:51 +00:00
Diogo Peralta Cordeiro 9ea230d12b
[COMPONENT][Subscription] Implement subscription handlers 2022-01-03 02:23:06 +00:00
Diogo Peralta Cordeiro fe087b2217
[PLUGIN][ActivityPub] Accept Undo Follow 2022-01-03 02:23:06 +00:00
Hugo Sales a9ea49d34c
[TOOLS][DOC] Add documentation to functions flagged by doc-check 2022-01-03 02:23:06 +00:00
Hugo Sales 9e0a2dd4a0
[TOOLS] Fix errors found by PHPStan 2022-01-03 02:23:06 +00:00
Hugo Sales 8fa04bb47d
[EVENT][AddFeedActions] Add bool param which denotes whether the feed is empty. [PLUGIN][NoteTypeFeedFilter] Don't show filters if the feed is empty 2022-01-03 02:23:06 +00:00
Hugo Sales d5a6fa924b
[COMPONENT][Conversation][ENTITY][ConversationMute] Rename Conversation{Block,Mute} 2022-01-03 02:23:05 +00:00
Hugo Sales ba0b0629b7
[TOOLS] Fix deprecations in php-doc-check by providing my own implementation 2022-01-03 02:18:44 +00:00
Hugo Sales 27276ba379
[CONFIG] Rename streams/notes_per_page to feeds/entries_per_page 2022-01-03 02:18:44 +00:00
Hugo Sales ea5a4df1a4
[UI][PLUGIN][Directory] Add UI for Directory listing ordering. This uses a GET parameter, which subits the field in order_by and the operator in order_op. Using order_by=filed^ is still supported 2022-01-03 02:18:44 +00:00
Diogo Peralta Cordeiro 6cfb69d64b
[COMPONENT][Subscription] Start component 2022-01-03 02:18:44 +00:00
Diogo Peralta Cordeiro 5fa8056899
[COMPONENT][Collection] Refactoring: Further work in abstracting collections 2022-01-03 02:18:43 +00:00
Diogo Peralta Cordeiro def5f36c25
[PLUGIN][ActivityPub][Inbox] Accept Follow Activity
Improve how Core Activity is handled in general
2022-01-02 23:50:16 +00:00
Diogo Peralta Cordeiro afb7ae0f75
[CORE][Util][Exception] Add log context to BugFoundException 2022-01-02 23:50:15 +00:00
Eliseu Amaro 064288e33b
[CSS] Applying correct border-radius to note-info and adding a greater margin on note-complementary, in case its the last of type 2022-01-02 23:50:15 +00:00
Eliseu Amaro c7ea56d571
[CSS] Fixing checkboxes from displaying background cropped 2022-01-02 23:50:15 +00:00
Eliseu Amaro 17b46b9aeb
[CSS] Fixed radio button, it didnt change its own background upon being checked, making it invisible 2022-01-02 23:50:15 +00:00
Eliseu Amaro 28424402ec
[CONTROLLER][CollectionController] Refactored methods names and form
titles
[PLUGINS][AttachmentCollections] Renamed respective Controller to
differentiate it between The Controller and itself, renamed templates
and removed unnecessary HTML from templates
2022-01-02 23:50:15 +00:00
Eliseu Amaro 7ad39fdc83
[PLUGINS][Repeat] Added onNoteDeleteRelated event
Using DB::merge to increment attachment lives when repeating a note,
since it's getting deprecated in the future, an alternative needs to
replace it here
2022-01-02 23:50:15 +00:00
Eliseu Amaro d5080890ac
[PLUGINS][Favourite] Added onNoteDeleteRelated event
All favourite entities are now removed from note_favourite table when the respective note
is deleted. Documented the favourNote and unfavourNote methods
2022-01-02 23:50:15 +00:00
Diogo Peralta Cordeiro f42e91d2bc
[CORE][Controller] Allow plugins to override redirect responses 2022-01-02 23:50:14 +00:00
Diogo Peralta Cordeiro 362fc6c7dd
[CORE][Controller] Set some safe default headers for every response 2022-01-02 23:50:14 +00:00
Diogo Peralta Cordeiro 046731a05a
[COMPONENT][Avatar] Save title if possible, delete correctly, no early flushes
[PLUGIN][ActivityPub] Minor bug fixes in Actor translation
2022-01-02 23:50:14 +00:00
Diogo Peralta Cordeiro d27e8610d6
[CORE][DB] DB:removeBy Accept class name instead of table. 2022-01-02 23:50:14 +00:00
Diogo Peralta Cordeiro b7574500f8
[COMPONENT][FreeNetwork] Set discovery cors enabled by default 2022-01-01 23:57:28 +00:00
Diogo Peralta Cordeiro 6ea45df3b8
[COMPONENT][FreeNetwork] Set JRD as the default mimetype for .well-know/host-meta 2022-01-01 23:57:28 +00:00
Hugo Sales d6cd33019d
[UI][PLUGIN][Directory] Add sort options to UI 2022-01-01 22:18:18 +00:00
Hugo Sales 5662210a2d
[UI][PLUGIN][Directory] Use a single template for all results 2022-01-01 22:18:18 +00:00
Hugo Sales b1fbf7d6ef
[PLUGIN][Directory] Add option to order by subscribers 2022-01-01 22:18:18 +00:00
Hugo Sales 9f11d270f4
[PLUGIN][Directory] Fix opposite sort order 2022-01-01 22:18:18 +00:00
Eliseu Amaro e7940a21ee
[PLUGINS][TreeNotes] Feed only shows each note and its respective direct
replies, conversation shows whole tree

[COMPONENTS][Feed] Added request to FormatNoteList event

Every single Note that was provided to FeedController::postProcess is
shown. This means, that even though the Feed is formatted to show only a
Note and its respective direct replies, those same replies are shown
individually again (and they get the chance to show their own direct
replies).

The Note list provided to FormatNoteList is reversed, and for every
index, the respective Note replies are filtered out of the original list.
The replies are then added as leafs of the current Note and added to the tree.
2022-01-01 21:42:47 +00:00
Hugo Sales f6311debbf
[PLUGIN][Directory] Refactor directory controller, so it's hopefully clearer what's happening 2022-01-01 20:50:04 +00:00
Hugo Sales 175c98b043
[PLUGIN][Directory] Add options to sort by nickname, created, modified and activity, ascending or descending 2022-01-01 20:49:17 +00:00
Hugo Sales acc84d757c
[CORE][Controller] Make Controller->{int,bool,string} functions return null if the GET parameter doesn't exist 2022-01-01 20:03:40 +00:00
Hugo Sales fc76a00908
[PLUGIN][Directory] Rename actor to people, as it's what's actually interacted with 2022-01-01 20:02:32 +00:00
Hugo Sales 1f01923aa1
[COMPONENT][Conversation] Implement Conversation muting 2022-01-01 10:32:07 +00:00
Hugo Sales 1a99762699
[COMPONENT][Posting][Notification] Move group inbox message creation to Notification component 2022-01-01 10:32:07 +00:00
Hugo Sales f346cd8167
[COMPONENT][Language][Tag] Update usage of Functional::cartesian_product 2021-12-31 21:03:25 +00:00
Hugo Sales 7aa90954eb
[UTIL][Functional] Update Functional::cartesian_product to pass an array of collections first and a separator after 2021-12-31 21:03:25 +00:00
Hugo Sales 0050371de7
[PLUGIN][NoteTypeFeedFilter][MediaFeed][COMPONENT][Feed] Rename MediaFeed to NoteTypeFeedFilter and add support for filtering by more types, moving functionality from Feed component 2021-12-31 21:03:25 +00:00
Hugo Sales b7872ba4ee
[CORE][Controller][FeedController] Use controller instance for filtering, making FeedControler->postProcess function non-static 2021-12-31 21:03:17 +00:00
Eliseu Amaro ba078b7b76
[ENTITY][Note] Caching note replies query
[COMPONENTS][Conversation] Reply route will now present a more suitable title
2021-12-31 17:54:06 +00:00
Eliseu Amaro d7b46735ac
[CARDS][Note] Removing unnecessary elements on replies block, and fixing gaps between note-info and the note border itself 2021-12-31 17:02:18 +00:00
Eliseu Amaro 6dd31926ad
[COMPONENTS][Conversation] reply_add route nows shows the given Note entire conversation, the Note itself is highlighted in the conversation 2021-12-30 18:34:47 +00:00
Eliseu Amaro 34cc010136
[CARDS][Note] Separating complementary info as its own block 2021-12-30 18:34:47 +00:00
Hugo Sales 9a6bdf74dc
[COMPONENT][Feed] Add way of filtering the notes on an arbitrary feed with a types GET parameter, that accepts {,!}<[media,text,link,tags]...> 2021-12-30 18:28:57 +00:00
Hugo Sales 0ae24f6088
[CORE][Controller][FeedController] Use controller instance for filtering, making FeedControler->postProcess function non-static 2021-12-30 18:28:57 +00:00
Hugo Sales 5f4968ac05
[ENTITY][Note][CACHE] Store lists as lists in the cache 2021-12-30 18:28:57 +00:00
Hugo Sales 2e0bfc0bcd
[TOOLS] Run CS-Fixer on all files 2021-12-30 18:28:57 +00:00
Hugo Sales 2dbc35fcc3
[DEPENDENCIES] Update dependencies 2021-12-30 18:28:57 +00:00
Hugo Sales 8831276489
[TOOLS] Fix errors reported by PHPStan 2021-12-30 18:28:57 +00:00
Hugo Sales 5229d4cd8c
[COMPONENT][Notification] Remove nickname GET parameter 2021-12-30 18:28:56 +00:00
Hugo Sales cbb70a5054
[COMPONENT][Feed] Refactor Feed component 2021-12-30 18:28:56 +00:00
Eliseu Amaro f16df759a9
[Components][Posting] Posting section title set accordingly if in 'reply_add' route 2021-12-30 16:18:16 +00:00
Phablulo Joel 2c31f2e440 [PLUGIN][Actor Circles] Actor Circles plugin, allow user to create a custom feed of actors 2021-12-30 12:18:16 -03:00
Phablulo Joel 85e31c684d [MODULES][Collection] Fixing mistakes 2021-12-30 12:16:29 -03:00
Phablulo Joel bdd8cbf36d [COMPONENT][Right Panel] Send request to AppendRightPanelBlock event 2021-12-30 12:14:41 -03:00
Phablulo Joel d7f70d288d [MODULES][Collection] Abstracting Collections 2021-12-29 21:56:45 -03:00
Eliseu Amaro 49d247aec2
[COMPONENTS][Feed] Styling for the empty feed page added 2021-12-29 19:31:28 +00:00
Eliseu Amaro f28ed5e359
[CSS] .note-complementary-info now smaller in general 2021-12-29 19:02:06 +00:00
Eliseu Amaro 6b82708968
[CARDS][Note] AppendCardNote event overhaul
[PLUGINS][Favourite] Added complementary information on user action

[COMPONENTS][Conversation] Fixed AppendCardNote issue where cached query
would only act on Notes with depth > 1
2021-12-29 18:47:12 +00:00
Eliseu Amaro 836560f55f
[CARDS][Note] AppendCardNote event overhaul
[PLUGINS][Favourite] Added complementary information on user action

[COMPONENTS][Conversation] Fixed AppendCardNote issue where cached query
would only act on Notes with depth > 1
2021-12-29 18:35:12 +00:00
Phablulo Joel 0caec6ab9e [COMPONENT][ACTOR CIRCLE] fixing template text 2021-12-29 14:13:25 -03:00
Phablulo Joel 01d5e84a08 [COMPONENT][ACTOR CIRCLE] mention self tag circle with @#self_tag 2021-12-29 14:13:25 -03:00
Phablulo Joel f9bc1c790f [PLUGIN][AttachmentCollections] Dark mode 2021-12-29 10:52:04 -03:00
Phablulo Joel 25120c6630 [PLUGIN][AttachmentCollections] Responsive pages 2021-12-29 10:52:04 -03:00
Diogo Peralta Cordeiro 137723e59a
[PLUGIN][ActivityPub][Favourite][Repeat][Delete] Document event handlers 2021-12-28 22:57:49 +00:00
Eliseu Amaro 8274e93ed5
[PLUGINS][DeleteNote] Added documentation, stating the scope of what deleting a Note means 2021-12-28 22:43:04 +00:00
Eliseu Amaro ce3c6a7f23
[PLUGINS][RepeatNote] Added documentation (not for ActivityPub related functions) 2021-12-28 21:51:27 +00:00
Diogo Peralta Cordeiro 846ec37cd9
[COMPONENT][Notification] Add event to decide whether local actors should be bothered 2021-12-28 18:45:18 +00:00
Diogo Peralta Cordeiro 4d8e39bf69
[PLUGIN][RepeatNote] Do not notify about clone note
Fix redirecion after action
Fix typo in activitypub handler
2021-12-28 18:30:27 +00:00
Eliseu Amaro 182c6265a3
[PLUGINS][RepeatNote] Add onFilterNoteList event
Filters repeats out of Conversations, and replaces a repeat with the original Note on Actor feed

Added isNoteRepeat to plugin's entity, which returns true if a given
Note is a repeat of another Note
2021-12-28 17:37:01 +00:00
Diogo Peralta Cordeiro 1d1d169a5c
[PLUGIN][ActivityPub] Support federation of Tombstones 2021-12-28 17:10:20 +00:00
Diogo Peralta Cordeiro 9cda64f275
[COMPONENT][Notification] Use _m() in reason 2021-12-28 16:36:52 +00:00
Diogo Peralta Cordeiro 3e83387e98
[PLUGIN][DeleteNote] Support ActivityPub 2021-12-28 16:22:38 +00:00
Diogo Peralta Cordeiro 9585472679
[ENTITY][Actor] Basic check if can admin for remote actors 2021-12-28 15:38:41 +00:00
Diogo Peralta Cordeiro b7c82b9dcb
[PLUGIN][DeleteNote] Ensure permissions properly 2021-12-28 15:38:39 +00:00
Diogo Peralta Cordeiro 5c2b46a71d
[COMPONENT][Link] Wrap delete operations in transactions 2021-12-28 06:56:05 +00:00
Diogo Peralta Cordeiro 46d121ef7b
[COMPONENT][Attachment] Wrap delete operations in transactions and correct sequence of deletation 2021-12-28 06:56:05 +00:00
Diogo Peralta Cordeiro bf4a0008ef
[ENTITY][Note] GNU social uses Tombstones for deleted notes instead of fully removing them.
Various corrections.
2021-12-28 06:56:05 +00:00
Diogo Peralta Cordeiro bb4149e092
[PLUGIN][AttachmentCollections] Restore functionality
Some minor corrections
2021-12-28 04:43:13 +00:00
Eliseu Amaro a03429ba03
[PLUGIN][DeleteNote] Delete Note action implemented
Replaces Note content with a tombstone, removes any attachment relations and decrements their lives (possibly even removing the attachment), and creates the respective activity
2021-12-27 22:33:36 +00:00
Diogo Peralta Cordeiro f5b06e2c7e
[UTIL][Formatting] Fix group mentions 2021-12-27 21:38:20 +00:00
Hugo Sales c40e38c5ba
[TOOLS] Fix errors found by PHPStan 2021-12-27 20:37:16 +00:00
Hugo Sales d74a9ad373
[ENTITY][Subscription] Add Subscription::cacheKeys 2021-12-27 20:37:16 +00:00
Hugo Sales 76440961ca
[CORE][DB] Add option to findOneBy to return null rather than throw 2021-12-27 20:37:16 +00:00
Hugo Sales 8796885fa0
[COMPONENT][Tag] Remove '.' from tag regex 2021-12-27 20:37:16 +00:00
Hugo Sales 5c10448080
[COMPONENT][Group] Add group subscribe button 2021-12-27 20:37:16 +00:00
Eliseu Amaro 559ec3df39
[TWIG] Fix login template 2021-12-27 19:09:32 +00:00
Eliseu Amaro 20d89f0f24
[COMPONENTS][Avatar] Make sure dimension values are integers
[CARDS][Note] Fix assumed avatar dimension values
2021-12-27 19:08:55 +00:00
Eliseu Amaro 19975b8d8d
[COMPONENTS][Avatar] Make sure dimension values are integers
[CARDS][Note] Fix assumed avatar dimension values
2021-12-27 19:08:51 +00:00
Phablulo Joel 65a3d738ca [PLUGIN][AttachmentCollections] Make it look good 2021-12-27 15:38:47 -03:00
Phablulo Joel 7ddfe92773 fix: redirect 2021-12-27 15:35:09 -03:00
Phablulo Joel e932ff43d0 [PLUGIN][AttachmentCollections] changes path name to be the same as the one introduced in c4dacd7626 2021-12-27 15:31:19 -03:00
Phablulo Joel 672df5165c [PLUGIN][AttachmentCollections] Fixing forms submission 2021-12-27 15:25:20 -03:00
Hugo Sales 72a19d7eac
[COMPONENT][Posting] Fix error around mentions of actors that don't exist 2021-12-27 17:35:33 +00:00
Hugo Sales b84315c95b
[TOOLS] Fix errors reported by PHPStan at level 4 2021-12-27 17:35:33 +00:00
Hugo Sales edd996d281
[DEPENDENCIES] Update dependencies, including PHPStan to dev version 2021-12-27 17:35:33 +00:00
Hugo Sales cf2f87fc1d
[AUTOGENERATED] Update autogenerated code 2021-12-27 17:35:33 +00:00
Diogo Peralta Cordeiro c9d05d71f5
[COMPONENT][Group] Fix group creation, Refactor related entities to inside the component
Other minor bug fixes and improvements
2021-12-27 17:28:03 +00:00
Diogo Peralta Cordeiro d03572e366
[PLUGIN][Directory] Make it list groups 2021-12-27 17:10:58 +00:00
Diogo Peralta Cordeiro de148c1f78
[COMPONENT][Avatar][Controller] Implement multiple dimensions 2021-12-27 05:08:29 +00:00
Diogo Peralta Cordeiro 2a902d6a7e
[ASSETS][css][sections] rename profile-avatar to avatar 2021-12-27 05:08:29 +00:00
Diogo Peralta Cordeiro 195618801b
[TEMPLATES][Cards][Note] Fix some issues with note minimal 2021-12-27 05:08:29 +00:00
Diogo Peralta Cordeiro 80afc0fa6c
[TEMPLATES][Cards][Profile] Provide both actor uri and url, as well as full mention guidance 2021-12-27 05:08:27 +00:00
Diogo Peralta Cordeiro eb761609aa
[ENTITY][Note] If note is a reply to, notify reply's actor 2021-12-27 04:56:00 +00:00
Diogo Peralta Cordeiro c4dacd7626
[COMPONENT][Attachment] Vinculate note information with attachment controllers
Various minor bug fixes
2021-12-27 04:56:00 +00:00
Eliseu Amaro fd44bc3ac5
[CARDS][Note] Minimize calls between different tables
For instance, the actor_url was set using note.getActor().getUrl() instead of using the actor from the start (since actor was needed in other setters as well).
2021-12-27 03:06:35 +00:00
Eliseu Amaro 65676d3980
[CARDS][Note] Fix attachment page from retrieving image dimensions
Attachments may use only a specific block, not the full note macro itself. Since this is the case, the actor needs to be retrieved for the minimal macro note.
2021-12-27 03:06:35 +00:00
Eliseu Amaro ea42ba9f26
[CARDS][Profile] Fix bio
Was using 'hasBio()' instead of 'getBio()'
2021-12-27 03:06:35 +00:00
Hugo Sales a1a6f5f4fd
[TOOLS] Add warning to update code in bin/generate_entity_fields 2021-12-27 03:06:35 +00:00
Hugo Sales 93276ce8d0
[AUTOGENERATED] Update autogenerated code 2021-12-27 03:06:30 +00:00
Hugo Sales 0df423e84b
[TOOLS] Update bin/generate_entity_fields so it defaults nullable variables to null and handles null in varchars 2021-12-27 03:03:57 +00:00
Hugo Sales 7eff22d548
[TOOLS] Fix errors reported by updated PHPStan 2021-12-27 03:03:57 +00:00
Hugo Sales 52e2231661
[DEPENDENCIES] Update PHPStan and other dependencies 2021-12-27 03:03:57 +00:00
Eliseu Amaro 9d3c01312f
[CARDS][Note] Fix assumed avatar dimension values 2021-12-27 03:03:53 +00:00
Diogo Peralta Cordeiro ce23660dba
[PLUGIN][ImageEncoder] Only show thumbnails if they exist 2021-12-27 03:02:21 +00:00
Diogo Peralta Cordeiro 58715f1733
[PLUGIN][ImageEncoder] If vips doesn't support, don't throw exception, just let other plugin try 2021-12-27 03:02:20 +00:00
Eliseu Amaro 838510ced2
[CARDS][Navigation] Replaced footer to nav
Since the footer is inside a section, it couldn't be a footer element
2021-12-27 03:02:20 +00:00
Eliseu Amaro b30198413c
[PLUGINS][Oomox] Add rel to response headers 2021-12-26 21:26:04 +00:00
Eliseu Amaro 7402e749cb
[COMPONENTS][Feed] Removed unnecessary ARIA 2021-12-26 21:19:33 +00:00
Eliseu Amaro 18cfcc0796
[ICONS] Removed XML processing instructions in svg files 2021-12-26 21:19:06 +00:00
Eliseu Amaro 045ff6fb68
[PLUGINS][XMPPNotifications] Fix typo 2021-12-26 21:19:06 +00:00
Diogo Peralta Cordeiro fec1861b80
[CONTROLLER][Note] Respect note scope 2021-12-26 21:19:06 +00:00
Diogo Peralta Cordeiro d891089945
[PLUGIN][StoreRemoteMedia] Let the user decide the max file size to download 2021-12-26 21:19:04 +00:00
Diogo Peralta Cordeiro 0c421116a6
[ENTITY][Note] Relive isVisibleTo method 2021-12-26 19:50:21 +00:00
Eliseu Amaro 78cc9c4659
[PLUGINS][Repeat] Repeat now added has a reply and conversation of original note 2021-12-26 19:16:57 +00:00
Eliseu Amaro e10a38a3e2
[CSS] Align page header on ultrawide screens 2021-12-26 19:16:57 +00:00
Eliseu Amaro feb2631f00
[CARDS][Note] Add permalink to extra note actions 2021-12-26 19:16:57 +00:00
Diogo Peralta Cordeiro a1d9909379
[CORE][VisibilityScope] Use enum type instead of Bitmap 2021-12-26 19:16:56 +00:00
Diogo Peralta Cordeiro 6f0d9add08
[DEPENDENCIES] Run composer after php version bump from 8.0 to 8.1 2021-12-26 19:16:17 +00:00
Hugo Sales 6883e51fc8
[DOCKER] Force docker php to use proper PHP executable 2021-12-26 19:16:16 +00:00
Hugo Sales 3d9141f4ce
[COMPONENT][Tag] Allow searching for actor circles with {actor,people}-{circle,list}:#tag 2021-12-26 19:16:16 +00:00
Eliseu Amaro 4df80be095
[ENTITY][Actor] Set default null values 2021-12-26 19:16:16 +00:00
Diogo Peralta Cordeiro d37f38a1ea
[ENTITY][Note] A note by default isn't a reply 2021-12-26 19:16:16 +00:00
Eliseu Amaro dd268ba8db
[CARDS][Profile] Use Actor::hasBio() instead of getter 2021-12-26 19:16:16 +00:00
Diogo Peralta Cordeiro 8e7c94fe1d
[COMPONENT][Attachment] Entity should have default refCount value, every attachment starts with 1 life 2021-12-26 19:16:16 +00:00
Diogo Peralta Cordeiro 94e216a943
[COMPONENT][Conversation] remove early flush in utility function 2021-12-26 19:16:16 +00:00
Eliseu Amaro fdf506b9f9
[CARDS][Note] Fix structure to break content in a controlled manner
[CSS] Responsive feed styling work

Note info content will now break as expected, useless space trimmed down to accomodate smaller screens.
2021-12-26 19:16:16 +00:00
Hugo Sales 726613cd96
[ENTITY][ActorCircle][COMPONENT][Tag] Add fields to ActorCircle and add or remove target to actor circle when they add or remove a selftag 2021-12-26 19:16:15 +00:00
Hugo Sales 000ec680e6
[CORE][TOOL] Minor fixes and run cs-fixer 2021-12-26 19:16:15 +00:00
Hugo Sales 97243151fa
[TOOL] CS-fixer does not accept a list of files, so we need to run it on each file individually 2021-12-26 19:16:15 +00:00
Hugo Sales c79b1e4c94
[AUTOGENERATED] Update auto generated code 2021-12-26 19:16:15 +00:00
Hugo Sales 68076d73dd
[TOOLS] Update bin/generate_entity_fields so it automatically truncates values in setters 2021-12-26 19:16:15 +00:00
Hugo Sales 29bb11e8bc
[TOOLS] Don't fail commit when checking tools fail 2021-12-26 19:16:15 +00:00
Hugo Sales ec28f23025
[TOOLS] Run CS-fixer on all files 2021-12-26 19:16:15 +00:00
Diogo Peralta Cordeiro 5e42723624
[ENTITY][Note] Include reply_to's targets in child's 2021-12-26 19:16:14 +00:00
Diogo Peralta Cordeiro f5f7fc6056
[PLUGIN][Favourite][Repeat] Add notification target getter 2021-12-26 19:16:14 +00:00
Diogo Peralta Cordeiro 625618b4e0
[PLUGIN][Favourite][Repeat] Fix incorrect use of RedirectException 2021-12-26 19:16:14 +00:00
Diogo Peralta Cordeiro 91f8c86efa
[PLUGIN][ActivityPub] Support and federate scopes 2021-12-26 19:16:12 +00:00
Diogo Peralta Cordeiro 21f585ef7e
[COMPONENT][Language] Do not exclude notes without language from the feeds 2021-12-26 16:48:36 +00:00
Diogo Peralta Cordeiro 9d5e149dec
[COMPONENT][Feed] Correct ordering 2021-12-26 16:48:35 +00:00
Diogo Peralta Cordeiro 19502050e0
[TOOLS] Add remove-file and minor corrections to nuke everything 2021-12-26 16:48:35 +00:00
Diogo Peralta Cordeiro 3e13765f62
[CORE][SCOPE] Implement basic visibility in feeds 2021-12-26 16:48:34 +00:00
Diogo Peralta Cordeiro d4bc1d097d
[ENTITY][NoteTag][COMPONENT][Language] Add language to NoteTag and minor corrections 2021-12-26 06:22:30 +00:00
Diogo Peralta Cordeiro 78fddaf86a
[PLUGIN][ActivityPub] Notify mentions in tags 2021-12-26 06:22:28 +00:00
Diogo Peralta Cordeiro 9d0b39e680
[PLUGIN][ActivityPub] Support tags in notes 2021-12-25 18:04:31 +00:00
Diogo Peralta Cordeiro 36483a6ecd
[COMPONENT][Link] Ignore html anchors that include mention class 2021-12-25 18:04:30 +00:00
Eliseu Amaro 0d5e545a6e
[TWIG] Replaced unused markup classes 2021-12-25 17:59:49 +00:00
Eliseu Amaro 3275a989db
[CSS] Style paging info 2021-12-25 17:48:07 +00:00
Eliseu Amaro ab640b110b
[COMPONENTS][Feed] Remove 'feed' from header
When not logged in, the word would be repeated
2021-12-25 17:47:12 +00:00
Eliseu Amaro 7891461d36
[PLUGINS][AttachmentCollections] Fix template
[PLUGINS][AttachmentShowRelated] Fix template

[CSS] Fix section-subtitle-details children padding issues

[COMPONENTS][Posting] Remove unnecessary colon

Overall polish of existing plugins templates
2021-12-25 17:31:16 +00:00
Eliseu Amaro ce3b677833
[CONFIG][Twig] Replaced form theme to a custom one
[CARDS][Forms] Added custom social form theme

[CSS] Replaced/added new classes to be used with forms

Base form theme created, can be extended to create complex blocks to be
called by twig when rendering a specific form.
2021-12-25 16:19:46 +00:00
Eliseu Amaro 8651bd44c2
[PLUGINS][ProfileColor] Fix callable argument when retrieving cache data 2021-12-25 15:31:24 +00:00
Hugo Sales 6ada5e60d2
[TOOLS] Make PHP-CS-Fixer and PHP-Doc-check run inside the tooling container 2021-12-25 15:20:21 +00:00
Phablulo Joel af3d278fde [PLUGIN][AttachmentCollections] Prevent user from appending stuff in a collection (s)he doesn't own 2021-12-25 11:27:00 -03:00
Phablulo Joel 1e965157de [PLUGIN][AttachmentCollections] Iterate documentation 2021-12-25 11:25:50 -03:00
Hugo Sales b604ee3146
[COMPONENT][Posting][Tag][Group][Conversation][RightPanel] Rename posting_form.to to posting_form.in, fill in with current group. Refactor context_actor 2021-12-25 11:24:41 +00:00
Hugo Sales 0f54d2121e
[CONTROLLER][Feeds] In Home feed, include specifically subscribed-{person,group,business,organization}, but allow querying for subscribed or subscribed-actor{,s} 2021-12-25 10:12:38 +00:00
Phablulo Joel dad322e577 [TWIG][Templates] check if variable is defined in twig before using it
fixes error in /actor/X, where there's no page_title defined
2021-12-24 11:44:12 -03:00
Diogo Peralta Cordeiro de89cffc34
[COMPONENT][Feed] Restrict non-public feeds to logged in users 2021-12-24 14:39:23 +00:00
Phablulo Joel 82e6e95b6a [PLUGIN][AttachmentCollections] Add Attachment Collection plugin which allow users to save attachments in collections 2021-12-24 11:29:37 -03:00
Phablulo Joel 63f9c6341e [COMPONENT][RightPanel] Sends request object in the `AppendRightPanelBlock` event 2021-12-24 10:20:55 -03:00
Hugo Sales 1947e99430
[DOC] Add documentation to methods flagged by doc-check 2021-12-24 09:34:13 +00:00
Hugo Sales dabf5576d3
[CONTROLLER][Feeds] Implement query for home feed: note-from:subscribed 2021-12-24 09:27:24 +00:00
Diogo Peralta Cordeiro e3efd25b43
[PLUGIN][ActivityPub] Fix typo in getObjectByUri 2021-12-24 02:46:45 +00:00
Diogo Peralta Cordeiro 7407028891
[PLUGIN][RepeatNote] Fix getRepeatNotes query 2021-12-24 02:46:45 +00:00
Diogo Peralta Cordeiro 10e7c71b6e
[COMPONENT][Tag] Do not perform DB::flush in an event 2021-12-24 02:46:45 +00:00
Diogo Peralta Cordeiro 8cd703d68b
[COMPONENT][Link] Even if everything else in Posting fails, no reason to discard the finding about the Link 2021-12-24 02:46:45 +00:00
Eliseu Amaro 671c3968e2
[TWIG][Templates] Rename inconsistent CSS classes
[CSS] Font size hierarchy refactor
[PLUGINS][MediaFeed] Renamed BeforeFeed event

Type scale hierarchy redone. Bigger line height added, making it easier
to click on links and separate contents.

Feed title added. AddFeedActions replaces BeforeFeed event.
MediaFeed links will now show an icon to the right of the feed title,
smaller footprint and more consistent with the overall design.
2021-12-24 02:46:44 +00:00
Eliseu Amaro f10b3bb05c
[PLUGINS][MediaFeed] Fixed template path typos 2021-12-24 02:46:44 +00:00
Hugo Sales 1e7a285ded
[TOOL] Add force-nuke-everything make rule, which deletes the whole database and caches 2021-12-24 02:46:44 +00:00
Hugo Sales 333e71ed50
[COMPONENT][Group] Add group settings, with support for editing the group's personal info and self tags 2021-12-24 02:46:43 +00:00
Hugo Sales a36bdf9719
[UI][I18N] Add missing translation tags in templates/cards/navigation/view.html.twig 2021-12-24 02:46:43 +00:00
Hugo Sales 69565e3f49
[COMPONENT][Tag] Add missing required route paramter nickname 2021-12-24 02:46:43 +00:00
Hugo Sales 2e69eac63e
[CONTROLLER][UserPanel][UTIL][FORM][ActorForms] Move UserPanel::personalInfo to ActorForms::personalInfo 2021-12-24 02:46:43 +00:00
Hugo Sales 1e6bc5b6ab
[CORE][Form] Fix Form::handle and report back any errors 2021-12-24 02:46:42 +00:00
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 2acf0bcbb6
[TEMPLATE][Settings] Factor out settings macros 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 3c79d82b80
[PLUGIN][ActivityPub][Note] Support inReplyTo 2021-12-24 02:46:39 +00:00
Diogo Peralta Cordeiro b05106e7f9
[COMPONENT][Conversation] Minor corrections and don't store URI in DB 2021-12-24 02:46:38 +00:00
Diogo Peralta Cordeiro e04d927fe9
[COMPONENT][Feed][Conversation] Add note-conversation: 2021-12-24 02:46:36 +00:00
Diogo Peralta Cordeiro 17b7ef13a0
[COMPONENT][Conversation] Remove Feed list entry
Notifications feed is enough
2021-12-24 00:47:36 +00:00
Diogo Peralta Cordeiro e743a17883
[COMPONENT][Notification] Introduce Notifications Feed 2021-12-24 00:47:36 +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
Diogo Peralta Cordeiro 1865d2b41e
[ActivityPub][Postman] Fill To and CC with mentions 2021-12-24 00:42:02 +00:00
Eliseu Amaro 48b2c8c04e
[COMPONENTS][Conversation] Local Conversations done
[COMPONENTS][Posting] Call Conversation::assignLocalConversation upon
creating a new note

By using the AddExtraArgsToNoteContent event upon posting a Note, an
extra argument ('reply_to') is added before storing the aforementioned Note.
When storeLocalNote eventually creates the Note, the corresponding
Conversation is assigned.
2021-12-24 00:42:02 +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 Joel c494928b46
[PLUGIN][MediaFeed] Remove unused import 2021-12-24 00:41:53 +00:00
Phablulo Joel 5115145901
[PLUGIN][MediaFeed] Iterate Documentation 2021-12-24 00:41:44 +00:00
Phablulo Joel d04b68a3ce
[PLUGIN][MediaFeed] Add Media plugin which filters a feed by notes containing media 2021-12-22 11:13:06 +00:00
Phablulo Joel fb64444325 [UI][CORE][COMPONENT][Search] Refactor templates
Just DRY
2021-12-21 14:38:58 -03:00
Phablulo Joel dd5d46c556 [CORE] Add option to filter notes even when there's no actor 2021-12-21 14:33:19 -03:00
Phablulo Joel ce91826d31 [CORE][UI] Added the possibility to draw stuff before feed starts 2021-12-21 14:29:05 -03:00
Hugo Sales 012e0665b0
[COMPONENT][Search] Only display search subscribe field if a user is logged in 2021-12-21 16:45:59 +00: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
Diogo Peralta Cordeiro e2c0505620
[ActivityPub][Inbox] Add request to debug logs 2021-12-21 15:52:41 +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 85735222cb
[COMPONENT][Posting] When a group is mentioned, add that note to the group inbox 2021-12-21 12:43:28 +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 36976d8fe7
[DOCKER] Update configuration script to include the worker container 2021-12-20 20:39: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 1832397363
[ActivityPub] Include recent actor type attribute in its creation
Improve debug logs
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 630e22579e
[PLUGIN][RepeatNote] Add support for onGSVerbToActivityStreamsTwoActivityType 2021-12-20 13:32:48 +00:00
Diogo Peralta Cordeiro 8d1e000574
[PLUGIN][Favourite] Add support for onGSVerbToActivityStreamsTwoActivityType 2021-12-20 13:32:48 +00:00
Diogo Peralta Cordeiro a9c73a8f33
[PLUGIN][ActivityPub] Add mention tags 2021-12-20 13:32:48 +00:00
Diogo Peralta Cordeiro a005a7bcea
[PLUGIN][ActivityPub] Add getUriByObject, so that we can construct activities referring to other known objects (local or foreign) 2021-12-20 13:32:46 +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 330b6b49a2
[COMPONENT][Posting] Add support for posting with empty content. At least one of content and attachments must be provided 2021-12-16 11:08:53 +00:00
Hugo Sales 5dca5568b7
[CORE][Cache] Fix wrong return type in Cache::delete 2021-12-16 11:01:23 +00:00
Hugo Sales 1b45fb251a
[COMPONENT][Search][Attachment][DOC] Add doocumentation to search related functions 2021-12-16 10:52:06 +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 b0d5ce8aab
[COMPONENT][Search] Don't explode if provided an empty search query 2021-12-16 10:41:29 +00:00
Hugo Sales a16d31b70e
[COMPONENT][Search] Add support for searching in notes' contents 2021-12-16 10:39:36 +00:00
Hugo Sales 060c3f01a6
[CACHE][CONFIG] Disable early recompute by default 2021-12-13 15:49:53 +00:00
Hugo Sales 6d8679d86b
[CORE] Fix resetting the config to the default values 2021-12-13 15:49:52 +00:00
Hugo Sales ff38efd5f1
[PLUGIN][ProfileColor] Cache results 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 f6a8ee86b6
[COMPONENT][Search] Add support for searching for a given actor type 2021-12-11 22:21:31 +00:00
Hugo Sales 4be226edd5
[COMPONENT][Search] Make search title field not required 2021-12-11 22:20:25 +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 6b38972cca
[COMPONENT][Search] Add support for searching for notes with media or with text
`note-types:media` will search for notes with an associated attachment or no text
2021-12-11 20:59:13 +00:00
Hugo Sales bad5efe819
[COMPONENT][Search] Be explicit about including : 2021-12-11 20:56:47 +00:00
Hugo Sales 01470ee664
[COMPONENT][Search] Add facility for supporting searching for note types 2021-12-11 19:33:30 +00:00
Hugo Sales d667c3a453
[COMPONENTS][Search][UI] Add options to filter by note or actor type. Reorganize UI 2021-12-11 17:48:40 +00:00
Hugo Sales e8ddca6b06
[COMPONENT][LeftPanel] Add previous title to error message when a duplicate feed is found 2021-12-11 16:50:52 +00:00
Hugo Sales 682f9aa611
[COMPONENT][LeftPanel] Ensure given url corresponds to a feed 2021-12-11 10:50:29 +00:00
Hugo Sales dbc8bf2ae1
[COMPONENT][Search][LeftPanel] Add way of adding a search result as a left panel feed 2021-12-11 10:49:57 +00:00
Hugo Sales 9afe6ecfac
[COMPONENT][Search] Add search query builder 2021-12-10 21:19:21 +00:00
Hugo Sales fceb014606
[COMPONENT][Language] Add support for searching for multiple languages at the same time 2021-12-10 21:15:12 +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 ab5e074d9e
[DEPENDENCIES] Update lstrojny/functional-php 2021-12-10 13:54:10 +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 8beb9682ee
[COMPONENTS][Search][Language] Move language search features to the language component. Add support for searching for notes from people with a given language 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 5dd9e5a3d7
[PLUGIN][RepeatNote] Add Notifications and ActivityPub support
Minor bug fixes
2021-12-10 04:05:41 +00:00
Diogo Peralta Cordeiro 0ee4cc7709
[PLUGIN][Favourite] Notify when actor favours a note 2021-12-10 04:05:35 +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 4992ff153b
[PLUGIN][RepeatNote] Fill activity log and fix some bugs
Refactored the plugin.
2021-12-10 04:05:26 +00:00
Diogo Peralta Cordeiro 01689edc66
[PLUGIN][Favourite] Report already favoured or unfavoured 2021-12-10 04:05:22 +00:00
Diogo Peralta Cordeiro 0c11fe413c
[COMPONENT][Tag] We don't always have information about if a tag is canonical 2021-12-10 04:05:22 +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 dcc867dad7
[COMPONENT][Attachment] Delete related 2021-12-10 02:46:25 +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 45d1ca88a6
[COMPONENT][Tag] Ensure only one copy of each tag is inserted 2021-12-09 22:22:31 +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 4d2230ff43
[COMPONENT][Language] Add Language component and implement language based note filtering 2021-12-09 21:39:00 +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
Hugo Sales 3405312a5b
[COMPONENT][Search] Add way of searching for only notes or poeple with a given language 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
Hugo Sales 26b95fae96
[PLUGIN][StemWord] Remove the country part from the code. Ignore if no stemmer is found for the given language 2021-12-09 16:23:09 +00:00
Hugo Sales 659ea5cd1f
[COMPONENT][Search] Use correct template for displaying actors 2021-12-09 16:23:09 +00:00
Hugo Sales bc3e6ac704
[COMPONENT][Search] Fix searching for actors 2021-12-09 16:23:09 +00:00
Hugo Sales 139da2c07f
[COMPONENT][Search][Tag] Add support for searching for actors or notes with a language. Use leftJoins, rather than inner joins 2021-12-09 16:22:59 +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 64122a9612
[PLUGIN][Favourite] Add ActivityPub Inbox support 2021-12-08 23:24:25 +00:00
Diogo Peralta Cordeiro 5025901c86
[PLUGIN][Favourite] Log changes into Activity 2021-12-08 23:24:25 +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
Eliseu Amaro df92b0d225
[COMPONENTS][Conversation] Refactored Reply plugin into Conversation component
[PLUGIN][TreeNotes] TODO: think it is broken, perhaps a problem of the conversation arguments passed in note card template
2021-12-08 22:48:04 +00:00
Hugo Sales e9dfa0f08c
[COMPONENT][Attachment][Posting] Move `onHashFile` from Posting to Attachment. Remove `onGetAllowedThumbnailSizes` 2021-12-08 20:42:29 +00:00
Hugo Sales 614e02b4c6
[PLUGIN][TagBasedFiltering] Add to user settings page and split adding tags from note/actor from editing blocked 2021-12-08 19:57:36 +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 6627006e61
[COMPONENT][Avatar] Move avatar settings template from core to component 2021-12-08 19:57:29 +00:00
Eliseu Amaro 870f866c23
[CARDS][Navigation] Section styling more consistent and can now be selectively hidden by user
[COMPONENTS][Right] Changed additional options div class names
2021-12-08 15:16:30 +00:00
Eliseu Amaro a285128dab
[COMPONENTS][Posting] Added language help text
[COMPONENTS][Tag] Added Posting form canonical tags field help text
2021-12-08 14:28:58 +00:00
Eliseu Amaro a4f18b937e
[CSS] Forced to re-add webkit mask image prefix for checkbox styling 2021-12-08 13:44:06 +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 7783922b2e
[CONTROLLER][PLUGIN][Directory][Favourite][Reply][CORE][FeedController] Refactor to new FeedController 2021-12-07 23:34:32 +00:00
Hugo Sales ba87944732
[COMPONENT][CONTROLLER][Search][CORE][FeedController] Use new FeedController base class 2021-12-07 21:07: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 b8e9c2ce41
[COMPONENT][Search] Add title so it's clearer these are search results 2021-12-07 20:36:25 +00:00
Hugo Sales f9fedfb131
[COMPONENT][Search] Fix search 2021-12-07 20:26: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
Eliseu Amaro 26a324ee4b
[TWIG][Templates] Sort languages settings template polish 2021-12-07 18:46:58 +00:00
Eliseu Amaro c21d4d1811
[CSS] Added webkit required vendor specific prefix for mask image 2021-12-07 18:46:07 +00:00
Eliseu Amaro b0fea51251
[TWIG][Templates] Clearer visual feedback that a note is a reply 2021-12-07 16:17:49 +00:00
Eliseu Amaro 4657a1d6a5
[COMPONENTS][Tag] Fix actor tag template
[PLUGINS][RelatedTags] Fix actor tag template
2021-12-07 15:35:27 +00:00
Eliseu Amaro 0bac6a229e
[COMPONENTS][RightPanel] Added 'Additional options' details on posting form
[CSS] Trimming down wasted space and vendor related prefixes

[TWIG][Templates] Added main navigation to navigation card, removed note car language short display
2021-12-07 15:33:02 +00:00
Eliseu Amaro 92314403bb
[CSS] Preventing note actions extra from overflowing 2021-12-06 23:38:38 +00:00
Eliseu Amaro 546c5c84fd
[COMPONENTS][Tag] Actor/Note tag template polished
[PLUGINS][RelatedTags] Disable rendering of template when no results are found
2021-12-06 22:22:23 +00:00
Eliseu Amaro ef435b824b
[CSS] You can hide Posting section on command now 2021-12-06 21:07:45 +00:00
Eliseu Amaro a6af3a9b7a
[CSS] Removed unnecessary box-shadow rules that slowed down performance (see edit feeds page) 2021-12-06 20:56:06 +00:00
Eliseu Amaro cd607ce6ce
[CSS] Note actions extra line height removed, margin-bottom used instead
[CSS] Anchors use underline again on hover
2021-12-06 20:47:56 +00:00
Eliseu Amaro 6303f480f7
[TWIG] Note actions extra structural changes to reflect standard note actions styling
[CSS] Note actions extra details styling done
2021-12-06 20:35:44 +00:00
Eliseu Amaro cb276aee81
[CSS] Screen media queries are now clearly documented and calculated using various takes on the Van de Graaf Canon and Tschichold’s recommended 2:3 page-size ratio 2021-12-06 19:07:59 +00:00
Diogo Peralta Cordeiro 330e09f2d3
[PLUGIN][ActivityPub] Only store a new object if there were no previous activities with it before 2021-12-05 21:09:30 +00:00
Diogo Peralta Cordeiro 5196b669b9
[PLUGIN][ActivityPub] Add attachment support to Notes 2021-12-05 21:04:20 +00:00
Diogo Peralta Cordeiro 63bf93d7f3
[CORE][Entity][Note] Language can be null 2021-12-05 21:03:13 +00:00
Diogo Peralta Cordeiro 19b8a7648e
[PLUGIN][ActivityPub] Implement Avatar support 2021-12-05 20:08:14 +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 c40866ecf6
[PLUGIN][TagBasedFiltering] Add TagBasedFiltering plugin, which allows filtering feeds by note tags and (soon) actor tags 2021-12-05 17:54:58 +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 6b719daa14
FIXUP POSTING TAG COMP 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 2f5bde913c
[COMPONENT][Posting][Tag] Add mechanism for adding extra fields to and handling the data from the Posting form. Add 'use canonical tag' field 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
Diogo Peralta Cordeiro 9506909e7a
[COMPONENT][FreeNetwork] Iterate documentation 2021-12-04 21:05:09 +00:00
Diogo Peralta Cordeiro 778cb57d83
[PLUGIN][ActivityPub] Finish base ActivityStreams 2.0 interface
Instructions below

To extend an Activity properties do:

public function onActivityPubValidateActivityStreamsTwoData(string $type_name, array &$validators): bool {
    if ($type_name === '{Type}') {
        $validators['attribute'] = myValidator::class;
    }
    return Event::next;
}

The Validator should be of the form:

use ActivityPhp\Type;
use ActivityPhp\Type\Util;
use Plugin\ActivityPub\Util\ModelValidator;

class myValidator extends ModelValidator
{
    /**
     * Validate Attribute's value
     *
     * @param mixed $value from JSON's attribute
     * @param mixed $container A {Type}
     * @return bool
     * @throws Exception
     */
    public function validate($value, $container): bool
    {
        // Validate that container is a {Type}
        Util::subclassOf($container, Type\Extended\Object\{Type}::class, true);

        return {Validation Result};

To act on received activities do:

public function onActivityPubNew{Type}(&$obj): bool {

To add information to Activities being federated by ActivityPub do:

public function ActivityPubAddActivityStreamsTwoData(string $type_name, &$type): bool {

To implement an ActivityStreams 2.0 representation do:

public function onActivityPubActivityStreamsTwoResponse(string $route, arrray $vars, ?TypeResponse &$response = null): bool {
        if ($route === '{Object route}') {
                $response = ModelResponse::handle($vars[{Object}]);
                return Event::stop;
        }
        return Event::next;
}
2021-12-04 21:05:07 +00:00
Diogo Peralta Cordeiro 044649c745
[PLUGIN][VideoEncoder] Some videos don't have images (video stream), only audio, handle that 2021-12-03 03:32:44 +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 e16fade490
[CONFIGURATION] Add webp to attachments:supported whitelist 2021-12-03 03:32:43 +00:00
Diogo Peralta Cordeiro 582519e13e
[COMPONENT][Attachment] Do not show download links for non-local attachments 2021-12-03 03:32:43 +00:00
Eliseu Amaro ff5f346fec
[PLUGINS][Oomox] Further checks done when handling form requests. Improved documentation, fixed typos and diminished repeated calls 2021-12-03 03:32:38 +00:00
Eliseu Amaro ba632b4514
[CSS] Note content text decoration underline set on anchor links 2021-12-03 01:19:09 +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 56d653d980
[CSS] Adding margin-left to .note-author-nickname 2021-12-02 22:55:01 +00:00
Diogo Peralta Cordeiro bded039282
[PLUGIN][Embed] try catch absence of favicon 2021-12-02 22:49:27 +00:00
Eliseu Amaro d802af6d91
[COMPONENTS] Accesskey highlight class set 2021-12-02 22:44:58 +00:00
Eliseu Amaro a1b002659f
[CSS] Focusable elements only show accent inset shadow when focused by keyboard, not by any other way 2021-12-02 22:40:27 +00:00
Diogo Peralta Cordeiro 2e11001b8f
[PLUGIN][Embed] Fix links 2021-12-02 22:21:49 +00:00
Eliseu Amaro e5f09a26d4
[CSS] Ultra widescreen dimensions fix 2021-12-02 22:21:49 +00:00
Eliseu Amaro 6ce78141a8
[CONTROLLER][UserPanel] Actor nickname cache is updated 2021-12-02 22:21:47 +00:00
Diogo Peralta Cordeiro 5130e7e70f
[COMPONENT][Attachment] Update routes to use /object/ namespace 2021-12-02 21:26:06 +00:00
Diogo Peralta Cordeiro 2445b5318d
[PLUGIN][Embed] Make it work when content-length header is not provided 2021-12-02 21:26:06 +00:00
Diogo Peralta Cordeiro bfec10fc95
[COMPONENT][Attachment][Entity][Attachment] getThumbnail can be null 2021-12-02 21:26:05 +00:00
Eliseu Amaro 2967b544f5
[CONTROLLER][UserPanel] Nickname now normalized 2021-12-02 20:49:10 +00:00
Eliseu Amaro 12557a1e16
[PLUGINS][Oomox] Reset theme colors added 2021-12-02 20:26:27 +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 f5ec099e9a
[COMPONENT][Tag][Search] Fix typo in event handler name mismatch 2021-12-02 19:17:37 +00:00
Hugo Sales 772ec6efcf
[UI] Set html img width and height attributes for avatar 2021-12-02 19:13:33 +00:00
Hugo Sales 92d5f3ec1e
[COMPONENTS][Avatar] Delete correct cache key on avatar update 2021-12-02 19:13:23 +00:00
Eliseu Amaro d915b4b628
[CSS] Note language note view polish 2021-12-02 18:36:18 +00:00
Eliseu Amaro f35dbbd8c1
[COMPONENTS][Search] Polished template
[COMPONENTS][Search] Fix event typo
2021-12-02 16:37:17 +00:00
Eliseu Amaro 5cd96669fd
[COMPONENTS] LeftPanel and RightPanel checkbox hack trick
The anchor used for the accessibility menu preceded the left/right panel sections, rendering the checkbox useless
2021-12-02 15:49:09 +00:00
Eliseu Amaro 9482bb2254
[CSS] Avatar max-height defined 2021-12-02 15:30:24 +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 dbaee08038
[FreeNetwork] Move mentions logic from AP to FN and handle local webfinger mentions properly 2021-12-02 11:12:04 +00:00
Diogo Peralta Cordeiro 53c46127c1
[ActivityPub][Explorer] Store remote's url properly 2021-12-02 11:12:03 +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 d64bd17422
[COMPONENTS][LeftPanel] Fix template filename 2021-12-01 22:19:00 +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 6bcd42a3a7
[TWIG][Base] Remove user has to be logged in condition when rendering right panel. 2021-12-01 21:15:31 +00:00
Eliseu Amaro 5d8bd6c74a
[TWIG][Note] Add single note view 2021-12-01 21:07:14 +00:00
Diogo Peralta Cordeiro 6f543ccc06
[ActivityPub][Model][Activity] Translate including objects 2021-12-01 20:53:51 +00:00
Eliseu Amaro e7ee558f4a
[TWIG] Fix empty accessibility menu anchor, accesskey anchors placement
[CSS] Dark theme hover/focus border, settings page form visibility
2021-12-01 20:29:11 +00:00
Eliseu Amaro 030c966b74
[DOCKER][Accessibility] Add pa11y docker image for automated accessibility tests
TODO: Testing within local social container
2021-12-01 20:29:06 +00:00
Eliseu Amaro dcbb3488c4
[PLUGINS][Reply] Fix onAppendCardNote return 2021-12-01 19:47:45 +00:00
Eliseu Amaro fa7fa81e35
[ICONS][Edit] Add icon class twig block
[CSS] Move edit feed link aligment rules to base.css
2021-12-01 19:47:45 +00:00
Eliseu Amaro 4155926ebf
[CSS] Removing arbitrary unit values 2021-12-01 19:47:44 +00:00
Eliseu Amaro db0909a1c7
[CSS] Fix color swatch styling, simplified rules 2021-12-01 19:47:44 +00:00
Hugo Sales 74bab8e7aa
[COMPONENTS][Left][CONTROLLER][EditFeeds] Add missing action and method to <form> 2021-12-01 19:47:44 +00:00
Hugo Sales b7fe924bdd
[TOOLS][DOCS] Add missing doc blocks, as signaled by doc-checker 2021-12-01 19:47:44 +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 36613a826d
[CONTROLLER][PLUGIN][Reply] Move reply controller to it's plugin 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
Hugo Sales 6c7f69dd94
[ENTITY][Actor] Partition the results of the joint query into a separate list of ActorsCircles and ActorTags, as desired 2021-12-01 19:47:42 +00:00
Hugo Sales a3e5f7646c
[CONTROLLER][UserPanel] Use only the ActorTags in the settings 2021-12-01 19:47:42 +00:00
Hugo Sales 3fbd2cd2b9
[PLUGIN][RelatedTags] Remove duplicate results 2021-12-01 19:47:41 +00:00
Hugo Sales 4f7e243bee
[CORE][DB] Don't do column renaming if a list of entities is specified 2021-12-01 19:47:41 +00:00
Hugo Sales ed5f6b6eed
[COMPONENTS][Search][UI] Use base template and macros to display search results 2021-12-01 19:47:41 +00:00
Diogo Peralta Cordeiro 424df54a1b
[ActivityPub] Add HTTP Signatures 2021-12-01 19:47:41 +00:00
Diogo Peralta Cordeiro 123544fa50
[ActivityPub] Port Postman 2021-12-01 19:47:40 +00:00
Diogo Peralta Cordeiro df3fbbc9e7
[ActivityPub] Add ActivityToType
Minor bug fixes
2021-12-01 19:47:39 +00:00
Diogo Peralta Cordeiro 4ddd00a091
[NOTIFICATION] Add FreeNetwork distribution 2021-11-30 00:48:46 +00:00
Eliseu Amaro 84217ec866
[CSS] Fix multiple select box styling 2021-11-29 23:12:10 +00:00
Eliseu Amaro f92c00c7aa
[CONTROLLER][Feeds] Add block prefixes to distinguish form groups
[TWIG] Divide form into various groupings for clearer representation
2021-11-29 23:12:09 +00:00
Eliseu Amaro c8ba81897c
[PLUGINS][Reply] getReplyToNote performance improvement
[CSS] Replies padding fix
2021-11-29 23:12:09 +00:00
Eliseu Amaro 01078e20fb
[PLUGINS][Reply] Fix return on getReplyToNote
The array contained an object, the result was within that object and not the object itself.
2021-11-29 23:12:09 +00:00
Eliseu Amaro db33800ade
[PLUGINS][Reply] Array key 'reply_to' checked if it exists.
Plugin\Reply\Entity\NoteReply::getReplyToNote lacked a check to make sure the 'reply_to' key existed within the array resulting from the query.
2021-11-29 23:12:09 +00:00
Hugo Sales 98568b6f53
[ENTITY][Actor][ActorTag] Make Actor->getSelfTags and Actor->getOtherTags return [ActorCircle[], ActorTag[]], rather than ActorCrircle alone 2021-11-29 23:12:07 +00:00
Hugo Sales 3477ad5efc
[PLUGINS][RelatedTags] Add related tags plugin and needed infrastructure. Initial work on pinned content 2021-11-29 22:42:51 +00:00
Hugo Sales 3227018963
[CORE][DB] Allow specifying the entites to be retrieved, as when using renaming, tables in join would attempt to be selected 2021-11-29 22:42:50 +00:00
Hugo Sales 5c3d561a67
[COMPONENTS][Tag] Refactor Tag and add self tag stream 2021-11-29 22:42:50 +00:00
Hugo Sales 6680772e47
[UI][I18N][UTIL][FormFields][Language][COMPONENTS][Posting][PLUGINS][Reply] Factor out translation from `FormFields::language` and remove help text in cases from Posting and Reply 2021-11-29 22:42:50 +00:00
Hugo Sales fc81f7301c
[CORE][DB][ENTITY][Actor] Add `DB::removeBy` and use it in `Actor->setSelfTags` 2021-11-29 22:42:50 +00:00
Hugo Sales 66ff3c594d
[UTIL][Formatting] Fix wrong event name 2021-11-29 22:42:49 +00:00
Hugo Sales 8f5b404941
[CACHE] Switch to 'empty' rather than 'is_null' is Cache::getHashMapKey, as it may return null or false 2021-11-29 22:42:49 +00:00
Hugo Sales f986f59424
[ENTITY][ActorTag] Add 'canonical' field to actor_tag 2021-11-29 22:42:49 +00:00
Eliseu Amaro 798a5f3796
[PLUGINS][Oomox] HTML's input[type='color'] doesn't support alpha values. Feature to apply custom shadow color removed as a result. 2021-11-29 22:42:48 +00:00
Eliseu Amaro 7df2783686
[CSS] Fixed edit feed icon styling. 2021-11-29 22:42:48 +00:00
Eliseu Amaro 6ec0b9f077
[CSS] User panel CSS fixes.
[PLUGINS][Oomox] Reformatted file.
2021-11-29 22:42:48 +00:00
Eliseu Amaro 04257c5fd9
[PLUGINS][Oomox] Resulting forms are now aware of user defined colours and fallback to defaults. 2021-11-29 22:42:48 +00:00
Eliseu Amaro 3da524af58
[PLUGINS][Oomox] WIP Settings for both the light and dark themes. 2021-11-29 22:42:47 +00:00
Diogo Peralta Cordeiro 56526c9ba6
[ActivityPub][Inbox] Restore Create Note Functionality
Minor bug fixes
2021-11-29 22:42:46 +00:00
Eliseu Amaro 7145dba8af
[PLUGINS][Oomox] getEntity added.
[CORE][Cache] exists added.
2021-11-27 15:14:17 +00:00
Diogo Peralta Cordeiro 7b9d388a44
[NOTIFICATION] Implement Target Collector 2021-11-27 15:14:15 +00:00
Diogo Peralta Cordeiro 51994406da
[CORE][ENTITY] Properly port ProfileTag, ProfileTagSubscription and ProfileList as ActorTag, ActorTagSubscription and ActorCircle 2021-11-27 04:17:18 +00:00
Hugo Sales 11d2cfb9ed
[UI][FEEDS][ENTITY][Feed] Add way to customize the feeds that are displayed in the left panel. The user can add, delete, reoder and rename them 2021-11-26 23:35:10 +00:00
Hugo Sales cdc8886bb8
[CORE][DB] Rename parameters 'orderBy' to 'order_by' 2021-11-26 23:34:37 +00:00
Hugo Sales 42f40f9ebe
[CORE][CONTROLLER][Network] Refactor term 'network' into 'feeds' 2021-11-26 23:34:37 +00:00
Diogo Peralta Cordeiro 0ab8febab3
[CORE][DB] Document magic methods 2021-11-26 15:11:51 +00:00
Eliseu Amaro d46a6163a0
[PLUGINS][Oomox] Hotfix: cache wasn't set. Proper labels. 2021-11-26 15:01:30 +00:00
Eliseu Amaro 180ae15647
[PLUGINS][Oomox] User theme CSS file is served. Settings page needs polish, and option to revert changes. 2021-11-26 14:45:28 +00:00
Eliseu Amaro 7fa2418e54
[PLUGINS][Oomox] Theme colours WIP. 2021-11-26 14:45:28 +00:00
Hugo Sales 6cd7be6abc
[UI][CONTROLLER][ENTITY][DOCS] Refactor term 'timeline' into 'feed' 2021-11-26 13:05:23 +00:00
Hugo Sales 283820a4a5
[UI][ENTITY][Language] Use list rather than hashmap so actor language ordering is preserved 2021-11-26 12:30:21 +00:00
Hugo Sales 04e6b2fb53
[ENTITY][Language] Properly handle context actor language 2021-11-26 12:29:27 +00:00
Hugo Sales d7a71ebe33
[UI][ENTITY][Language] Extend base template for user panel language sorting 2021-11-26 12:28:03 +00:00
Hugo Sales 6919f38592
[UI][COMPONENT][Tag] Use base template and properly display notes in tag stream 2021-11-26 11:59:11 +00:00
Hugo Sales c178054433
[COMPONENT][Tag] Add stream for multiple tags 2021-11-26 11:48:35 +00:00
Hugo Sales edf1b30e89
[TOOLS][DOCS] Add missing doc blocks 2021-11-25 23:16:04 +00:00
Hugo Sales b1262919da
[TOOLS] Fix (most) issues found by PHPStan 2021-11-25 23:08:30 +00:00
Hugo Sales 8fd02ef152
[TOOLS][COMPONENT][FreeNetwork][PLUGIN][ActivityPub] Temporarily exclude FreeNetwork and ActivityPub from PHPStan analysis, since it's a WIP 2021-11-25 20:37:53 +00:00
Hugo Sales 98b719dca3
[COMPONENTS][Tag] Split tag into words and stem each 2021-11-25 20:37:53 +00:00
Hugo Sales 4571b18c60
[DEPENDENCIES] Update dependencies 2021-11-25 20:37:53 +00:00
Hugo Sales a64c488e21
[PLUGINS] Add StemWord plugin, which stems words, given a language. Currently used for tags 2021-11-25 20:37:53 +00:00
Hugo Sales 2d057024b9
[TAGS][ENTITY][Note] Properly store the note language, pass it along when rendering content. Add mechanism for stemming tags, with fallback to simply slug-ifying them 2021-11-25 20:37:53 +00:00
Hugo Sales f837df5753
[CACHE] Add way of calculating hash map if key is not found 2021-11-25 20:37:53 +00:00
Hugo Sales e64fd5aaf6
[TOOLS] Exclude src/PHPStan from test coverage 2021-11-25 20:37:53 +00:00
Hugo Sales c1779dc12d
[UI] Don't display short language form in user panel language selection 2021-11-25 20:37:53 +00:00
Hugo Sales 0194b6b14c
[TESTS] Fix tests by adding missing is_local columns and by login in the admin user in the admin panel test 2021-11-25 20:37:52 +00:00
Hugo Sales d9544c6edb
[CORE][SECURITY] Move to the new authentication format, for Symfony 5.3 2021-11-25 20:37:45 +00:00
Diogo Peralta Cordeiro 05758c999f
[ENTITY][Actor] fix typo in findRelativeActors query 2021-11-25 02:07:12 +00:00
Eliseu Amaro d9c0a72e36
[CONFIG] Replaced form theme used since it was too opinionated. 2021-11-24 14:03:50 +00:00
Eliseu Amaro 477a5cb92d
[CSS] Fixed all buttons/select/input display rules from being overriden. 2021-11-24 12:46:32 +00:00
Eliseu Amaro d8147cbd2d
[PLUGINS][AttachmentShowRelated] Fixed note template error. Fixed if statement.
[CORE][Controller] Commented CSP out.
2021-11-24 12:46:32 +00:00
Eliseu Amaro 8edaabbabf
[TWIG][Settings] WIP Refactoring of user panel. Now using macros to diminish repeated code.
[CONTROLLER][UserPanel] Replaced form names. More readable.
2021-11-24 12:46:31 +00:00
Hugo Sales d5fc2cac8a
[TOOLS] Make Makefile rule database-force-nuke stop and restart the worker container 2021-11-24 12:46:31 +00:00
Hugo Sales 30f4131f5d
[TESTS] Add missing 'is_local' to actors in data fixtures 2021-11-24 12:46:31 +00:00
Hugo Sales 206856e1ba
[FORM][FormFields] Add way of specifying attributes for password fields (namely form autocomplete=new-password) 2021-11-24 12:46:31 +00:00
Hugo Sales 3a5e52ee0d
[CORE][SECURITY] Move to the new authentication format, for Symfony 5.3
Keep using (deprecated) Guard
2021-11-24 12:46:26 +00:00
Hugo Sales b4ce77320e
[TESTS] Fix remaining tests, back to 100% passed. Some minor semantic changes 2021-11-20 21:33:25 +00:00
Hugo Sales c68d7ae406
[CONTROLLER][UserPanel] Make function names camelCase 2021-11-20 21:33:25 +00:00
Hugo Sales 7e4a971fac
[ENTITY][LocalUser][CACHE] Remove bad keys from getByNickname cache key 2021-11-20 21:33:25 +00:00
Hugo Sales 0e104a9701
[UTIL][HTML][TESTS] Fix test and implementation and expand HTML generation utilities 2021-11-20 21:33:25 +00:00
Hugo Sales fe755f7c42
[UTIL][FormFields] Accomodate use of FormFields::repeated_password without a 'required' option 2021-11-20 21:33:23 +00:00
Hugo Sales 1dd86a2302
[TESTS] Many tests fixes (already fixed the dependant code) 2021-11-20 21:32:25 +00:00
Eliseu Amaro d254147988
[CSS] Note attachments fixes, fancy note-complementary accents. 2021-11-17 17:28:46 +00:00
Eliseu Amaro 0aa43783e8
[PLUGIN][Repeat] Repeat now repeats attachments as it should.
[COMPONENTS][Posting] Now accepts attachments already processed.
[ENTITY][Note] Added getAttachmentsWithTitle().
2021-11-17 17:14:15 +00:00
Eliseu Amaro 8077bdb0b5
[CORE][Controller] CSP default-src changed to 'self' to allow internal redirects. 2021-11-17 01:29:36 +00:00
Eliseu Amaro 1d31bd651e
[CORE][Controller] Added Content-Security-Policy response header. 2021-11-17 00:49:23 +00:00
Eliseu Amaro e1b9ab4b9a
[TWIG] Added CSP in base template meta tag. This isn't optimal. 2021-11-16 23:48:12 +00:00
Diogo Peralta Cordeiro f07dce4604
[UTIL][Form] Fix bug with repeated_password 2021-11-16 23:27:29 +00:00
Diogo Peralta Cordeiro 89d36a68e5
[ENTITY][Actor] Add is_local, it's common to depend, and this makes it much faster, with a low space cost 2021-11-16 23:26:20 +00:00
Eliseu Amaro f1a30ac0e6
[CSS] Added a top margin for buttons. 2021-11-16 19:40:07 +00:00
Eliseu Amaro 2561823550
[PLUGIN][Repeat] Fixed corner case where the user would return to repeat form page and try to repeat the note again. 2021-11-16 19:39:03 +00:00
Eliseu Amaro acc43a276b
[PLUGIN][Reply] User's own replies wont display their own nickname on rendering the original note. 2021-11-16 19:36:17 +00:00
Hugo Sales 0dd4b62ded
[TOOLS][DOCKER] Add worker container and script, which handles the queues 2021-11-15 19:25:53 +00:00
Hugo Sales 5e4ada7b78
[DEPENDENCIES] Update symfony to 5.3, which fixes a bug with the doctrine postgres message worker 2021-11-15 19:25:53 +00:00
Hugo Sales b8b19abed2
[ENTITY][AttachmentThumbnail] Do not attempt to check if a file exists if the path is null 2021-11-15 19:25:52 +00:00
Hugo Sales 5cafc80d01
[UTIL][FormFields] Refactor duplicated language choice form entry logic 2021-11-15 19:25:52 +00:00
Hugo Sales e6c0db9ee1
[CORE][Cache] Allow retrieving multiple keys from a hashmap 2021-11-15 19:25:52 +00:00
Hugo Sales 587d701d11
[CONTROLLER][Network] Temporarily remove replies from streams, following planned changes to the Reply plugin 2021-11-15 19:25:52 +00:00
Hugo Sales e9cc760ca8
[COMPONENTS][Posting][Right] Fix TypeError (which somehow only popped up in tests) caused by assigning a FormView to an out array param 2021-11-15 19:25:52 +00:00
Eliseu Amaro 9dbbc9e18e
[PLUGIN][Repeat] Fixed bug where checks dependant on user being logged in were attempted. 2021-11-15 19:25:52 +00:00
Eliseu Amaro 6e90e51f0c
[PLUGIN][CONTROLLER][Repeat] Fixed Repeat controller to update note_repeat table on removal. 2021-11-15 19:25:52 +00:00
Eliseu Amaro b71e869843
[PLUGIN][Repeat] onAppendCardNote added. getNoteRepeats implemented. 2021-11-15 19:25:52 +00:00
Hugo Sales 774eb49af4
[UI][CONTROLLER][UserPanel][ENTITY][ActorLanguage][Language][Actor] Add interface to allow user to select thier preferred languages and to order them. Rename ActorLanguage::order to ordering 2021-11-15 19:25:52 +00:00
Eliseu Amaro 83fc31b485
[CSS] Polished light theme. 2021-11-15 19:25:51 +00:00
Eliseu Amaro 2d941cbb16
[CSS] Fixed Chromium from overriding the page stylesheet on fieldset element. 2021-11-15 19:25:51 +00:00
Eliseu Amaro 337fe272a3
[CSS] Re-arranged CSS rules, overall refactor to minimize duplications. 2021-11-15 19:25:51 +00:00
Eliseu Amaro a23f7d5aa3
[CSS] Removed 'colors.css', colors are declared within their respective classes/ids instead. 2021-11-15 19:25:51 +00:00
Hugo Sales d5e6fd603d
[CONTROLLER][UserPanel] Fix 'could not convert IntergetType to string' error 2021-11-15 19:25:51 +00:00
Hugo Sales 1abd28c949
[UI][TWIG][CONTROLLER][UserPanell] Add way to expand details with a GET parameter. Implement it in UserPanel 2021-11-15 19:25:51 +00:00
Hugo Sales c509692102
[ENTITY][AttachmentThumbnail] Uncache when deleting, cleanup code and ensure the biggest thumbnail is used when the original is not avaliable 2021-11-15 19:25:51 +00:00
Hugo Sales a3074662b8
[TESTS] Remove 'reply_to' in note creation in data fixtures 2021-11-15 19:25:51 +00:00
Hugo Sales eab6de3609
[TESTS][Security] Fix SecurityTest. Remove nickname normalization on register (a plugin can handle that). Move from filter_var(FILTER_VALIDATE_EMAIL) as it does not support dotless domains 2021-11-15 19:25:50 +00:00
Hugo Sales bf5ffe7d3d
[CACHE][TEST] Fix errors in cache implementation found by tests 2021-11-15 19:25:44 +00:00
Hugo Sales 98352cfece
[TESTS] Properly provide both createClient and bootKernel in test base class 2021-11-11 12:39:36 +00:00
Hugo Sales 2239845a00
[CONTROLLER][Security] Remove nickname normalization when trying to login 2021-11-11 12:39:36 +00:00
Hugo Sales a1c78696f7
[CORE][Actor][Posting] Fixup Actor::getPreferredLanguageChoices following changes in how the data is cached 2021-11-11 12:39:36 +00:00
Hugo Sales 316723075b
[TESTS] Reload the initial table values after loading the data fixtures (as this purges the DB) 2021-11-11 12:39:36 +00:00
Hugo Sales f39f800a8e
[TESTS] Add now-required content-type to notes created in data fixtures 2021-11-11 12:39:35 +00:00
Hugo Sales f667b558f7
[TESTS] Fix SecurityTest
This test was broken by changes in the routing and in the templates.
However, this revealead a potential open redirect and duplicated code
in the Reply and Favourite plugins
2021-11-11 12:39:28 +00:00
Hugo Sales dea9aa4dcf
[CORE][Router] Remove duplicate service for URL generation, as that is actually the same object 2021-11-11 12:38:09 +00:00
Hugo Sales 420ebcda26
[TESTS] Run tests without runuser as it's generating very weird permission errors. This is temporary (TM) 2021-11-11 12:38:09 +00:00
Eliseu Amaro d0f9fde7c2
[PLUGIN][Reply] WIP. Note complementary info now shows who has replied on the original note! 2021-11-10 15:44:28 +00:00
Eliseu Amaro f2f1bdc145
[PLUGIN][Reply] Separated replies from Note table.
[PLUGIN][Repeat] Deleted unnecessary card note template, info now to
appended at the end of note.
[PLUGIN][TreeNotes] WIP to accomodate reply plugin changes.
[TWIG][Runtime] Removed getAdditionalTemplateVars event.
2021-11-10 13:29:53 +00:00
Hugo Sales 7d8819a3da
[DB][CONTROLLER][Network][ENTITY][Note] Fix Note::getAllNotes 2021-11-09 23:38:37 +00:00
Hugo Sales c3705112ba
[DEPENDENCIES] Update dependencies 2021-11-09 23:38:37 +00:00
Hugo Sales 98b1b7072c
[TOOLS] Fix running tests without filters 2021-11-09 23:38:37 +00:00
Hugo Sales f0c532340e
[DB] Fix uses of `DB::sql`, to remove the deprecated second `entities` parameter 2021-11-08 20:35:38 +00:00
Hugo Sales 767b2035e7
[ENTITY][ActorLanguage] Remove duplicate specification of 'not null' in table schema 2021-11-08 20:32:10 +00:00
Hugo Sales 1d84f1629e
[CORE][DB] Make DB::sql not error when selecting from tables with columns of the same name and remove the second enitites paramter, calculating it internally instead 2021-11-08 20:32:10 +00:00
Diogo Peralta Cordeiro f98afd15ce
[ENTITY] Refactor Follow as Subscription 2021-11-08 16:14:23 +00:00
Hugo Sales 68c6dd1ba9
[CORE][Cache] Use hashmaps to store language related items 2021-11-08 16:08:04 +00:00
Hugo Sales 2eb31952bc
[ENTITY][Language] Use varchar as char leads to a padded string, which isn't helpful 2021-11-08 16:08:03 +00:00
Hugo Sales 2cf3a0b4e6
[COMPONENT][Posting] Display short language signifier rather than the full name for the first preffered language 2021-11-08 16:08:03 +00:00
Hugo Sales 705bf815ab
[CACHE] Add partial implmentation for caching hashmaps (non-list arrays, i.e. array<string,string>). No non-redis-fallback yet 2021-11-08 16:08:03 +00:00
Hugo Sales cd470cbf93
[CORE] Fix loading of settings from modules 2021-11-08 16:08:03 +00:00
Hugo Sales 019ad794d1
[Posting] Add dropdown with language choice, with preferred choice according to user choice and context (group, etc) 2021-11-08 16:08:02 +00:00
Hugo Sales 9444c34071
[ENTITY][Actor][ActorLanguage][Language] Remove Actor::preferred_lang_id. Add ActorLanguage::order. Add Language::{short_display,long_display}. Instead of an actor having a single preffered language, the entries in ActorLanguage should be used, sorted by ActorLanguage::order 2021-11-08 16:08:02 +00:00
Hugo Sales 2bd05fbd47
[TOOLS][COMMAND] Add 'app:populate_initial_values' command, which inserts values into the language table if it does not yet contain values. Add database-force-nuke to Makefile, which does all the steps necessary to reset the database 2021-11-08 16:08:02 +00:00
Hugo Sales 1960f6944f
[CORE][DB] Fix error in regex that prevented selecting collumns that are named the same way a column is 2021-11-02 11:14:59 +00:00
Hugo Sales 839fa070c7
[CORE][Posting] Default Posting language to site language, if the user hasn't selected one 2021-11-02 11:14:59 +00:00
Diogo Peralta Cordeiro d9265c5402
[TEMPLATES][Profile] Use URI instead of URL 2021-11-02 08:34:44 +00:00
Eliseu Amaro c4088e221f
[CSS] Very important colour change. 2021-11-01 22:09:10 +00:00
Eliseu Amaro cf09b48e92
[PLUGINS][Repeat] Added note_repeat entity, fixed visual discrepancies, and completed the expected functionality.
[ENTITY][Note] Removed repeat_off from table. It is now part of the Repeat plugin.
2021-11-01 21:19:56 +00:00
Hugo Sales 73e772e576
[TOOLS] Allow specifying a list of filters when running tests with `make`. When running `make test foobar` only the test `foobar` is executed (read the documentation for `phpunit --filter`) 2021-11-01 12:16:50 +00:00
Diogo Peralta Cordeiro c862c9bf18
[ActivityPub] Make remote mentions great again 2021-11-01 12:16:46 +00:00
Diogo Peralta Cordeiro 712d1739e4
[UTIL][Formatting] Make local mentions great again 2021-11-01 12:16:29 +00:00
Eliseu Amaro 91dd6e1428
[Controller][Security] Fullname is not setup automatically upon registering anymore.
[ENTITY][Actor] Changes to accomodate fullname from potentially being null.
[ENTITY][Note] Changes to accomodate fullname from potentially being null.
2021-10-29 22:05:10 +01:00
Eliseu Amaro ac8513741d
[CSS] New themes! No images used anymore. 2021-10-29 22:01:28 +01:00
Eliseu Amaro eb5bc36390
[CSS] Fixed widgets from overflowing. 2021-10-29 18:14:39 +01:00
Eliseu Amaro 7fef18e95a
[COMPONENTS][Posting] LocaleType::class doesn't have a default attribute, replaced with 'preferred_choices' instead. 2021-10-29 17:46:25 +01:00
Eliseu Amaro 9a23e03330
[PLUGINS][Repeat] Repeat template override WIP. 2021-10-29 17:26:20 +01:00
Hugo Sales 0f358a9c5d
[CORE][Posting] Add language choice field to the note posting block 2021-10-28 17:37:00 +01:00
Hugo Sales 44454ac28a
[UTIL][TemporaryFile] Ensure `resource` is neither `false` nor `null` when attempting to cleanup, otherwise `getRealPath` returns `false` and we get sad 2021-10-28 17:36:02 +01:00
Hugo Sales 458c09485a
[CORE][ENTITY] Move preferred language setting from [LocalUser] to [Actor], make [Language] `language` unique and make [Note] `content_type` not null 2021-10-28 17:34:01 +01:00
Hugo Sales e6c5312025
[CORE][GSFile] Add `check_is_supported_mimetype` option to `GSFile::storeFileAsAttachment` 2021-10-28 17:29:57 +01:00
Hugo Sales 4d9a5aae5a
[ActivityPub] Always explicitly compare the results of `Event::handle` to the constants `next` or `stop` 2021-10-28 17:28:02 +01:00
Hugo Sales 86ac5c52a1
[TESTS] Add to the supported configuration list, the mimetypes of all `sample-upload` files 2021-10-28 17:26:57 +01:00
Hugo Sales 8238980395
[TOOLS] Allow specifying a list of filters when running tests with `make`. When running `make test foobar` only the test `foobar` is executed (read the documentation for `phpunit --filter`) 2021-10-28 17:24:43 +01:00
Hugo Sales a55d60d880
[DEPENDENCIES] Update dependencies 2021-10-28 14:31:56 +01:00
Hugo Sales c352e40518
[CORE][Controller] Allow plugins to override the Twig templates 2021-10-28 14:29:34 +01:00
Hugo Sales 18aeeb3850
[ENTITY] Add a [Language] table, which has a char 64 field that maps to an int. This is then used in [Note], [LocalUser] and [ActorLanguage] 2021-10-28 11:26:34 +01:00
Eliseu Amaro 3388e0e8f1
[TWIG][Cards] Note template fully refactored. Template has now macros for different views for the card.
[PLUGINS][Repeat] WIP: Action added.
[PLUGINS][Favourite] Changes to accomodate note card template refactoring.
[CSS] Fixed textarea from being resized horizontally.
2021-10-27 20:44:51 +01:00
Eliseu Amaro d47f125894
[PLUGINS][Favourite] Refactored redirection to previous url. User is now unable to do invalid actions (ex. favour an already favourited note).
[PLUGINS][ActivityPub] Fixed favour route id to be more consistent.
2021-10-27 20:44:50 +01:00
Eliseu Amaro e54e55dfbf
[EXCEPTION][RedirectException] You are now able to redirect to a specific url. 2021-10-27 20:44:50 +01:00
Eliseu Amaro 3e2fefa8af
[TWIG][Cards] Fullname is now displayed as the note author, nickname as an identification.
[CONTROLLER][Security] Fullname is set on resgistration to enable it to be shown by default in notes.
[CONTROLLER][UserPanel] Fullname extra step added.
[CSS] Fullname and nickname representation work.
2021-10-27 20:44:50 +01:00
Diogo Peralta Cordeiro 51c984849f
[ActivityPub] Port Explorer 2021-10-27 04:22:19 +01:00
Diogo Peralta Cordeiro 5189269e5b
[FreeNetwork] Port Discovery 2021-10-27 04:22:18 +01:00
Diogo Peralta Cordeiro 3cdaf6671a
[CORE][HTTPClient] Add some shortcut functions inspired by pre-v3 2021-10-27 04:22:18 +01:00
Diogo Peralta Cordeiro 3227e1f919
[CORE][Log] Document magic methods 2021-10-27 04:22:18 +01:00
Eliseu Amaro 45f65baf96
[PLUGINS][Embed] Polished embed template in order to better utilize space.
[CSS][Feed] Embed related additions.
2021-10-27 04:19:34 +01:00
Diogo Peralta Cordeiro 0407ac38cf
[AudioEncoder] Introduce basic audio plugin to provide an attachment template and duration metadata for audio mimetype 2021-10-27 04:19:34 +01:00
Hugo Sales 364c14ef2c
[COMPONENT][Link] Fix mistake where only the first URL was matched and the match included the preceeding whitespace character 2021-10-27 04:19:34 +01:00
Eliseu Amaro ebf675ec59
[Plugins][FAVOURITE] Redirect added. Only redirects from the route the user came from, not the anchored note. To be added. Further corner cases fixed. 2021-10-27 04:19:33 +01:00
Diogo Peralta Cordeiro 56ba7bd845
[ImageEncoder][VideoEncoder] Properly decide when to take action 2021-10-27 04:19:33 +01:00
Diogo Peralta Cordeiro bccafd0d7b
[CORE][GSFile] Respect mimetype whitelist and extensions blacklist before saving files 2021-10-27 04:19:33 +01:00
Eliseu Amaro b7d9da8ae6
[Posting] Add Content Length constraint to form validation 2021-10-27 04:19:33 +01:00
Eliseu Amaro 8038fdbce9
[UTIL][Common] Added Common::getUploadLimit().
[COMPONENT][Posting] Update Posting to warn the user of submtting attachments too large.
2021-10-27 04:19:32 +01:00
Eliseu Amaro 656c2c7812
[SECURITY][Authenticator] fix wrong route id on after login redirection 2021-10-27 04:19:32 +01:00
Eliseu Amaro 60b15ea79d
[Plugins][FAVOURITE] No longer a form, a link to a new page is provided instead. The amount of forms per page were blocking rendering for the majority of its duration. 2021-10-27 04:19:32 +01:00
Hugo Sales a6d5752748
[TOOLS][PHPStan] Make a standalone phpstan executable, which executes inside the docker container 2021-10-27 04:19:31 +01:00
Hugo Sales 299e893ca9
[TOOLS][PHPStan][DocCheck] Fix errors found by PHPStan and Doc Check 2021-10-27 04:19:31 +01:00
Hugo Sales 769b901060
[TOOLS] Add doc-check target to Makefile 2021-10-27 04:19:31 +01:00
Hugo Sales dff5647b97
[DB][Note] Add langauge field to notes 2021-10-27 04:19:31 +01:00
Hugo Sales 8a10fec31d
[CONTROLLER][UserPanel] Make all fields in settings not required 2021-10-27 04:19:30 +01:00
Hugo Sales 2694d83ae4
[TOOLS][CS-FIXER] Run new PHP CS Fixer config. Notably, adds strict_types 2021-10-27 04:19:30 +01:00
Diogo Peralta Cordeiro 028ea79fff
[CORE][Router] Properly act on Accept headers 2021-10-27 04:19:30 +01:00
Eliseu Amaro 99fd2f725b
[Core][Util] Hotfix: In App\Core\DB\DB persistWithSameId, casting the id to an int. In App\Util\HTML html, tag is now evaluated beforehand, making sure it's a string. 2021-10-27 04:19:30 +01:00
Eliseu Amaro f78cfed41a
[TWIG][CSS] Template refactoring, classes and their respective CSS is now more consistent. CSS variables are back. 2021-10-27 04:19:29 +01:00
Diogo Peralta Cordeiro 8fdc52636f
[ActivityPub] Port RSA 2021-10-27 04:19:29 +01:00
Diogo Peralta Cordeiro 8544fe157b
[FreeNetwork] First steps porting webfinger/lrdd to v3, GET webfinger requests already have a basic result 2021-10-27 04:19:29 +01:00
Diogo Peralta Cordeiro 44cf1fa24c
[UTIL][Nickname] Fix some parameters issues found with strict types 2021-10-27 04:19:29 +01:00
Hugo Sales 5eefea7a29
[TOOLS] Update Makefile to support both the new and old container naming conventions, as of docker-compose v2 2021-10-27 04:19:28 +01:00
Hugo Sales b524c5bc90
[TOOLS][PHPStan] Add missing toString on the call to DB::filterName, as it seems something changed in some update 2021-10-27 04:19:28 +01:00
Hugo Sales b65ee4c21d
[TOOLS][CS-FIXER] Fix incorrect transformation 2021-10-27 04:19:28 +01:00
Hugo Sales 9109c61af5
[TOOLS][CS-FIXER] Run new PHP CS Fixer config. Notably, adds strict_types 2021-10-27 04:19:28 +01:00
Hugo Sales 8ef2d3339f
[COMPONENTS][Search] Slightly refactor parser, since the inline lambda was somewhat complex (and cs-fixer kept moving the comment, so doc-checker complained) 2021-10-27 04:19:27 +01:00
Hugo Sales 703e66fd2e
[TOOLS] Update PHP CS fixer and adjust configuration 2021-10-27 04:19:27 +01:00
Hugo Sales 7aad58b440
[DEPENDENCIES] Update composer dependencies 2021-10-27 04:19:27 +01:00
Hugo Sales ce0cfa7a63
[COMPONENT][Search] Update Search to be able to search for either notes or actors 2021-10-27 04:19:27 +01:00
Hugo Sales d575f8aef5
[UTIL][Formatting] Make it possible to supply string|array to either or both argument of Formatting::{starts,ends}With 2021-10-27 04:19:26 +01:00
Diogo Peralta Cordeiro 99ab24ec23
[CORE][Controller] Allow routes without text/html response
Improve GET getters
2021-10-27 04:19:23 +01:00
Diogo Peralta Cordeiro 03f6029ce5
[SECURITY] Fix nickname validation and properly allow email auth 2021-10-18 13:22:55 +01:00
Diogo Peralta Cordeiro 071b769997
[CORE][Util][Common] Correct behaviour for absense of value 2021-10-18 13:22:45 +01:00
Diogo Peralta Cordeiro 517ed953f2
[FreeNetwork] First step towards de-duplication mechanism for federation
Refactored AS2 inside AP; [ENTITY][Activity] went from core to AP
Webfinger plugin will be part of FreeNetwork component
2021-10-06 11:48:22 +01:00
Eliseu Amaro bd5c426046 [TWIG] Removing unnecessary CSS classes. Removing network/feed CSS preloading. 2021-10-06 00:45:37 +01:00
Eliseu Amaro 3cb6563c40 [TWIG][EndShowStyles] Route as an event argument 2021-10-06 00:34:27 +01:00
Eliseu Amaro 6412b632ab [CSS] Note actions size further compatibility work. 2021-10-05 23:36:15 +01:00
Eliseu Amaro e467cf5ec2 [CSS] Fixed: note actions size. 2021-10-05 23:29:46 +01:00
Eliseu Amaro 31857e1eab [CSS] Fixed: User panel hr elements styling. 2021-10-05 23:00:16 +01:00
Eliseu Amaro 1d6b22551b [CSS] Fixed: Body text colors weren´t applied. 2021-10-05 22:51:46 +01:00
Eliseu Amaro d4513e3597 [CSS] Browser compatibility improvements. 2021-10-05 22:44:22 +01:00
Eliseu Amaro 78dd7137f8 [PLUGIN] ProfileColor color settings can be null. 2021-10-05 19:12:51 +01:00
Eliseu Amaro a268aee53a [CSS][PLUGIN] ProfileColor now handles both the background and foreground colors. Various button CSS fixes. 2021-10-05 19:04:30 +01:00
Eliseu Amaro 5373655170 [CSS] Firefox ESR doesnt know what a colour is. 2021-10-05 16:09:01 +01:00
Eliseu Amaro 2a2331d692 [CSS] Colours by classes. Refactored all CSS. 2021-10-05 16:03:17 +01:00
Eliseu Amaro caa04525bd [CSS] Fixed embed width. 2021-10-04 17:16:53 +01:00
Eliseu Amaro 1705b543d3 [PLUGIN] Delete note action added. If the author of a note is logged in, the action will be added to that note. Once the author presses it, the note will be deleted from the DB. 2021-10-04 17:11:44 +01:00
Eliseu Amaro 70d1521a2b [CSS] Fix: article header was being selected has the page header. 2021-10-04 15:30:01 +01:00
Eliseu Amaro 17a13b3f20 [CSS] Fix: Left and right panel checkbox border when active. 2021-10-04 12:31:06 +01:00
Eliseu Amaro 0dfb41230e [CSS] Fix: Instance name centered. 2021-10-04 12:20:31 +01:00
Eliseu Amaro 80d1be323d [COMPONENTS][Search][CSS] Extra header forms now accessible through a details element. Re-organizing templates structure. 2021-10-04 12:17:14 +01:00
Eliseu Amaro d38ad60c76 [COMPONENTS][CSS] Adding components styling properly. 2021-10-01 17:25:51 +01:00
Eliseu Amaro 441c411efe [CSS] Complete re-organization of stylesheets. 2021-10-01 16:37:28 +01:00
Hugo Sales 19c2a91232
[TOOLS][PHPStan][ProfileColor][ENTITY][TEST][AttachmentThumbnail] Fix issues reported by phpstan 2021-09-27 19:50:56 +01:00
Hugo Sales de984ac8e1
[COMPONENTS][Search][Tag] Implement basic search functionality that allows only searching through note tags, currently 2021-09-27 19:50:56 +01:00
Hugo Sales 1107d8257d
[TWIG] Add `instanceof` test
Use with:
{% if var is instanceof(Namespace\Class) %}
2021-09-27 19:50:56 +01:00
Hugo Sales 2d8b220e92
[CORE][Controller] Make Controller abstract, `handle` an optional non static method and use `static::class` rather than `get_called_class` 2021-09-27 19:50:56 +01:00
Eliseu Amaro 4fef97f930 [CSS] Profile text mix blend difference with background. Browser's cache
was playing tricks on me and wouldn't display the changes accordingly.
2021-09-27 19:40:34 +01:00
Eliseu Amaro ab26162217 [CARDS][Profile] No longer ids, now classes (CSS). Profile info nickname for instance. The inversion filter now actually works. 2021-09-25 22:30:46 +01:00
Eliseu Amaro f8c108bdf3 [CSS] Profile text color doesn't blend in anymore. 2021-09-25 21:42:23 +01:00
Eliseu Amaro fdd43f4b11 [CSS] More consistent padding across input elements. 2021-09-25 21:12:07 +01:00
Eliseu Amaro 5249ccfc68 [Posting][CSS] Right panel form render simplified. 2021-09-25 21:02:11 +01:00
Eliseu Amaro 3001f91918 [CSS] Very slight shadow on key elements. 2021-09-25 20:36:07 +01:00
Eliseu Amaro ff26831d1e [CSS] Note action icons back to a sane size. 2021-09-25 19:59:06 +01:00
Eliseu Amaro 20ae2dba5d
[CSS] Reverting desktop side margins. All margins, sizes, radius, etc were redone. 2021-09-25 19:40:18 +01:00
Eliseu Amaro 4a17adc182
[PLUGINS][ProfileColor] Actors are now shown with their own colors for other. 2021-09-25 19:40:17 +01:00
Eliseu Amaro 7b8eb3fda9
[PLUGINS][ProfileColor] Current color is now selected by default. Not found exception is now handled. 2021-09-25 19:40:17 +01:00
Diogo Peralta Cordeiro a681acae67
[ENTITY][AttachmentThumbnail] Every image should have width and height attributes 2021-09-25 19:40:11 +01:00
Eliseu Amaro 808da203ad [PLUGINS][ProfileColor] Settings page render problem fixed. ColorType given data wasn't a string. 2021-09-25 12:51:25 +01:00
Eliseu Amaro 57b94af9f6 [PLUGINS][ProfileColor] Re-organized plugins templates and assets. ProfileColor plugin fixed. 2021-09-25 11:17:56 +01:00
Eliseu Amaro 765cf66ff2 [CSS] Simplified window resize media queries. Desktop view's left and right margins were wrong. Some embedded links with empty blocks had padding on them again, fixed. 2021-09-25 09:02:13 +01:00
Eliseu Amaro 321d5b4be8 [CSS] Embedded width didn't conform to note's own properly. 2021-09-23 17:22:44 +01:00
Eliseu Amaro fe77dc0996 [CSS] Resetting headers browser styling. Fixing embedded links styling inconsistencies. 2021-09-23 17:15:11 +01:00
Diogo Peralta Cordeiro 3268559f9a
[AttachmentThumbnail] Use other thumbnail when requested isn't available and there's no original file 2021-09-23 16:19:50 +01:00
Eliseu Amaro b6d80003d8 [CSS] Note attachments layout fix. Added a very small radius to avatars. 2021-09-23 16:18:23 +01:00
Diogo Peralta Cordeiro 3ef1077f90
[DOCKER] TODOify mail server certificate 2021-09-23 15:47:51 +01:00
Eliseu Amaro be8610a7a1 [CSS] Note attachments uses a grid layout now. 2021-09-23 15:39:14 +01:00
Hugo Sales af3531f1c7
[CORE][GSFile] Add type annotation to the `$encoders` used in attachment handling 2021-09-23 14:54:21 +01:00
Hugo Sales bb81f1f717
[Embed] Use new attachment route format 2021-09-23 14:54:21 +01:00
Hugo Sales 6a2c3eb711
[ImageEncoder] Ensure proper memory limits are used when loading images from disk 2021-09-23 14:54:21 +01:00
Eliseu Amaro 1c1bef76ef [Cards][Navigation] Navigation cards! Left panel now composed entirely of cards. 2021-09-23 14:46:18 +01:00
Hugo Sales 21e598d877
[ENTITY][Actor] Fix issue with deleting a self tag 2021-09-23 14:34:34 +01:00
Diogo Peralta Cordeiro 4820a863a9
[Avatar] Fix cache usage and other minor bugs 2021-09-23 14:34:34 +01:00
Eliseu Amaro 64c881173b [Cards][Profile] Fixing nested anchor tags. 2021-09-23 13:53:02 +01:00
Eliseu Amaro a439b7130e [Cards][Profile] Re-organizing elements. 2021-09-22 17:20:06 +01:00
Eliseu Amaro a557ba0224 [Timelines][Plugins][Left] Plugins now provide their path ID. Feed redone as it's own independant template. 2021-09-22 16:47:06 +01:00
Diogo Peralta Cordeiro 05f16a3084
[ENTITY][AttachmentThumbnail] Now thumbnails are always only available in three sizes: small, medium, big
Commit jointly produced with eli (Eliseu Amaro)

Breaking change: Entity changed to only store the tinyint referring to the size stored

With this, the logic was simplified and now it's not possible to make an
instance produce unnecessary thumbs. The aspect ratio is preserved and
thus the thumbs will always look nice. New configuration was added to
maintain flexibility.
2021-09-22 15:13:46 +01:00
Diogo Peralta Cordeiro 7beb5c2995
[GSFile] Fix sanitize configuration 2021-09-22 15:13:46 +01:00
Diogo Peralta Cordeiro c1e7d486a3
[Posting] Fix bug with early DB::flush that would discard attachments relations 2021-09-22 15:13:44 +01:00
Eliseu Amaro 3f618c2674 [TWIG][Cards][Profile] Card templates! Profile now has a card template to be used everywhere you need to show quick actor information. 2021-09-22 14:11:59 +01:00
Hugo Sales c6082bab10
[COMPONENT][Tag] Update tag stream to use new pagedStream format 2021-09-21 16:39:36 +01:00
Hugo Sales 69e7dc44bd
[ENTITY][Note] Change `isVisibleTo` to allow for not supplying an actor 2021-09-21 16:38:50 +01:00
Hugo Sales 879f54c772
[CACHE] Filter notes by scope in `pagedStream`
This currently does not return a fixed number of notes per page. Fixing this is left as an exercise to the reader
2021-09-21 16:37:51 +01:00
Hugo Sales 14c173df7a
[CACHE][COMPONENT][Tag] Add generic Cache::pagedStream and use it for the tag stream. Note that it doesn't respect scope yet 2021-09-21 15:35:07 +01:00
Hugo Sales 6cd86cac25
[COMPONENT][Tag] Add tag stream, with paging 2021-09-21 11:04:27 +01:00
Hugo Sales 2f3f7b8469
[COMPONENTS][Posting][Link][Tag] Pass the note, not just the id in ProcessNoteContent 2021-09-21 11:04:27 +01:00
Hugo Sales 7926f18f93
[CONFIG] Add streams:notes_per_page config value 2021-09-21 11:04:27 +01:00
Hugo Sales 6715a036e9
[CACHE] Add way to fetch limit,offset values from a list 2021-09-21 11:04:26 +01:00
Hugo Sales 15a87055a6
[DOCKER][Redis] Add way to override Redis config. Default to only one database 2021-09-21 11:04:26 +01:00
Hugo Sales ce80065775
[DB] Add mechanism for specifying limit and offset in dql query 2021-09-21 11:04:26 +01:00
Hugo Sales 91fd7d1cfa
[CONFIG][CORE] Fix bug in overriding default config 2021-09-21 11:04:14 +01:00
Diogo Peralta Cordeiro 8bb6285522
[ENTITY][Note] A note may have no content 2021-09-20 17:06:21 +01:00
Diogo Peralta Cordeiro b7298eaa44
[ENTITY] ActorTag: use getter for tag name on toString 2021-09-20 17:05:50 +01:00
Diogo Peralta Cordeiro 9e4c43e8fd
[ActivityStreamsTwo] Further work on routes and use render event on note's content 2021-09-20 17:05:04 +01:00
Diogo Peralta Cordeiro 7813723ca1
[ActivityPub] Inbox must work without actor, specify source for AS2 2021-09-20 17:03:23 +01:00
Diogo Peralta Cordeiro 958cbffb91
[Posting] Add text/html content type, must actually treat it 2021-09-20 17:02:35 +01:00
Diogo Peralta Cordeiro 85969a8cff
[Avatar] Add default avatar route and improve url getter 2021-09-20 17:01:36 +01:00
Eliseu Amaro 0ef151edac [CSS] Now properly following Van de Graaf / Tschichold Page Construction Canon. 2021-09-20 16:06:57 +01:00
Eliseu Amaro 543853c374 [PLUGINS][Actor][Profile] Current user profile in line with other users. Directory plugin actor template standardized. 2021-09-20 14:39:11 +01:00
Hugo Sales 8fe8687c5b
[UTIL][HTML] Move to a unified array 2021-09-20 13:28:18 +01:00
Hugo Sales e8f4563633
[UTIL][Formatting][COMPONENT][Link][Tag] Refactor code from formatting into Link and Tag, where appropriate. Drop 'perfect url regex' as the one used in v2 is better 2021-09-20 13:28:18 +01:00
Hugo Sales 556b8f8265
[ENTITY][NoteTag] Add 'canonical' field to tag 2021-09-20 13:27:27 +01:00
Hugo Sales 04174bc56d
[UTIL][UI] Change how plaintext notes are rendered to be split into paragraphs. Remove span around tags 2021-09-20 13:27:27 +01:00
Hugo Sales 51c7e10483
[UTIL][HTML] Allow specifying `options: [raw => bool]`, whether to escape the provided inner HTML or not. Use with care 2021-09-20 13:27:21 +01:00
Eliseu Amaro baeb1dde7a [Posting][CSS] Fix for qtwebengine and gecko not displaying background color on input elements.
Minor bug fixes.
2021-09-20 12:49:05 +01:00
Diogo Peralta Cordeiro 67d62cf37b
[TWIG] Remove kludge event TwigPopulateVars 2021-09-18 07:27:35 +01:00
Diogo Peralta Cordeiro fda998e335
[Avatar] We definitely don't need an event to retrieve avatar urls 2021-09-18 07:26:10 +01:00
Diogo Peralta Cordeiro 2bd19fa087
[NOTE][Posting] Revert regressions introduced with c90efe2c52
Entity Note: It doesn't make sense to handle attachments on Note::create.
Attachments exist out of Notes, they are a thing on their own.
Furthermore, they aren't always handled the same, they most definitely
aren't always uploaded files.

FileQuota: It doesn't make sense to check if a file is greater than max
allowed upload size here. The plugin ensures a user is inside his
allowed quota, it's ignorant to anything else. Whether a file respect
max upload is a core thing that must be handled directly in the Posting
component. TODO: The configuration regarding user and monthly quota
must become FileQuotaPlugin settings and be removed from core.

c90efe2c52 - [UI] Add mechanism for rendering note contents in different formats. Implement plaintext rendering. Use rendered field for note content, rather than the content itself
2021-09-18 05:12:18 +01:00
Diogo Peralta Cordeiro 941cbe6599
[Actor] Refactor GSActor into Actor 2021-09-18 05:12:17 +01:00
Eliseu Amaro 6c899b7b61
[Plugins][Components] Fixed issue where right panel form was rendered multiple times in actors plugin page. Actors page done. 2021-09-18 05:12:16 +01:00
Eliseu Amaro e4b650be46
[PLUGINS][Settings] Removed unused templates. Directory plugin templates now using actual templates. Notification settings using details element now. 2021-09-18 05:12:16 +01:00
Diogo Peralta Cordeiro d6f31d102a
[CORE][ActivityStreamsTwo][ActivityPub] Set all routes
Allow global routes to act for every actor
Fix Favoured stream query
2021-09-18 05:12:15 +01:00
Eliseu Amaro 738168461c
[CSS] Note avatar hotfix. 2021-09-18 05:12:14 +01:00
Eliseu Amaro 447372d7f6
[CSS] Note actions re-alignment to previous position. Simplified visuals. 2021-09-18 05:12:13 +01:00
Eliseu Amaro f4ac49e7c7
[CSS] Note avatar now bigger. Note actions and avatar now on the side of note. 2021-09-18 05:12:13 +01:00
Eliseu Amaro 2de071ca7e
[CSS] Note attachments rules simplified. Proper resizing on smaller views. 2021-09-18 05:12:12 +01:00
Eliseu Amaro a4a7039786
[CSS] Less redraws on details element hover feedback. 2021-09-18 05:12:11 +01:00
Eliseu Amaro 380eec5eb0
[CSS] Fixed inconsistent side panels font size. Note's view improvements. 2021-09-18 05:12:11 +01:00
Eliseu Amaro b8e66aa9bf
[CSS] Scrollable panels. Attachments width is retained on view now. 2021-09-18 05:12:10 +01:00
Eliseu Amaro 42f9a6a79c
[CSS][Attachments] Attachments page view done. Standardized left and right panels sections. Applying styling through key classes to be defined in docs. 2021-09-18 05:12:10 +01:00
Hugo Sales eda3a5ffb6
[DOCUMENTATION][DB] Fix database examples and documentation 2021-09-18 05:12:09 +01:00
Hugo Sales ee7721da96
[DOCUMENTATION] Add documentation on developer tools 2021-09-18 05:12:09 +01:00
Hugo Sales b177cb69e7
[HTML][SECURITY] Harden implmentation of HTML generation 2021-09-18 05:12:08 +01:00
Eliseu Amaro 030f8afdf5
[ASSETS][FONTS] Poppins and Opens Sans are now used. Better legibility for smaller sizes. 2021-09-18 05:12:07 +01:00
Hugo Sales c0c7eb32dc
[DEPENDENCIES] Update composer dependencies 2021-09-18 05:12:07 +01:00
Hugo Sales 8f0a3e4977
[UI] Add mechanism for rendering note contents in different formats. Implement plaintext rendering. Use rendered field for note content, rather than the content itself 2021-09-18 05:12:06 +01:00
Hugo Sales f344ed376c
[ATTACHMENTS][Embed][UI] Allow plugins to provide a title for an attachment, if a note has none, implement such a mechanism in Embed and cache the result, since it is potentially costly 2021-09-18 05:12:06 +01:00
Hugo Sales 15a2a69274
[ROUTER] Add option `is_system_path`, to allow specifying that a route, such as `gsactor_view_nickname` should not be considered a system path, when checking for the collision of nicknames 2021-09-18 05:12:05 +01:00
Hugo Sales e563c393f8
[ROUTER] Add mechanism for sorting the order in which core routes are loaded 2021-09-18 05:12:05 +01:00
Hugo Sales b26f3bca14
[BOOTSTRAP] Remove duplicate constant definition 2021-09-18 05:12:04 +01:00
Eliseu Amaro e9d809d441 [Security][Exception] Security exception handling, login and register. TODO EmailNotFoundException and NicknameNotFoundException. 2021-09-15 14:48:06 +01:00
Eliseu Amaro 26af284353 [CONTROLLER][SECURITY] Registration feedback. The flashError works. However, Symfony's Exception error page is viewed upon trying to register. 2021-09-15 14:48:06 +01:00
Eliseu Amaro efafc9f7eb [TWIG][NOTE] Note's author avatar size defined. 2021-09-15 14:48:06 +01:00
Eliseu Amaro 2cbdd43660 [TWIG][BASE] Using preload for main stylesheets. This ensures they are available earlier and are less likely to block the page's render, improving performance. 2021-09-15 14:48:06 +01:00
Eliseu Amaro 0f1bce67a1 [CSS][FONTS] Added a lighter font, mobile optimizations were needed. All icons are more consistent in size. Forms are more consistent in margins, paddings and grouping. 2021-09-15 14:48:06 +01:00
Diogo Peralta Cordeiro 365edbaff0
[ActivityStreamsTwo] Initial Actor support
Various bug fixes
2021-09-15 10:26:53 +01:00
Hugo Sales 1f3a6fe6ac
[TESTS] Fix and/or temporarily disable failing tests. We'll get back to this 2021-09-14 13:36:30 +01:00
Hugo Sales bebf4fdbce
[I18n][Posting] Move ':' to inside the translate call 2021-09-14 13:13:45 +01:00
Hugo Sales 1adde913c6
[PHPStan] Only run custom PHPStan extensions if environment vairable PHPSTAN_BOOT_KERNEL is defined (since it requires having the whole social setup available) 2021-09-14 13:13:45 +01:00
Eliseu Amaro a21b0afb70
[ASSETS] Removed unused fonts. Variable fonts now used. 2021-09-14 13:13:45 +01:00
Diogo Peralta Cordeiro 7c465bba5f
[NOTE] Add mimetype to notes 2021-09-14 13:13:45 +01:00
Hugo Sales c69b28d894
[CORE] Fix `Undefined array key 0` in `DB::filterTableName` 2021-09-14 13:13:45 +01:00
Eliseu Amaro 404442ebda
[BASE] Importing fonts through CSS instead, minimizing content blocking. Removed legibility optimizations in font rendering. Removed unused font rules. 2021-09-14 13:13:45 +01:00
Eliseu Amaro 8887efe305
[THEME][DARK] Background image is 73% smaller, added noise to diminish the banding in Firefox. 2021-09-14 13:13:45 +01:00
Hugo Sales b74d944ae3
[TOOLS][PHPStan] Raise PHPStan level to 3 and fix new errors 2021-09-14 13:13:45 +01:00
Hugo Sales 9d7f43cd28
[TOOLS][PHPStan][TESTS][Docker] Rework testing Docker container into a more generic tooling container. Keep services up and run coverage and phpstan as commands, for performance and ease of use 2021-09-14 13:13:44 +01:00
Hugo Sales 9742a07bae
[TOOLS][git] Add option to skip pre-commit steps by defining one of `SKIP_ALL`, `SKIP_CS_FIX`, `SKIP_DOC_CHECK`, `SKIP_PHPSTAN` variables before the `git commit` command
Example:
`SKIP_PHPSTAN=1 git commit`
2021-09-14 13:13:44 +01:00
Hugo Sales f81bf4a257
[TOOLS][PHPStan] Add mechanism for initializing the whole application 2021-09-14 13:13:44 +01:00
Hugo Sales ddb9702b1c
[TOOLS][PHPStan] Add support for deducing the correct entity type from a table name. Needs refactoring and can only run inside container, as it connects to the database itself 2021-09-14 13:13:44 +01:00
Hugo Sales 4e30e5aad9
[TOOLS] Fix all issues found by PHPStan level 2 2021-09-14 13:13:44 +01:00
Diogo Peralta Cordeiro 4b1780a2ee
[ActivityStreamsTwo] Introduce a structure for data representation in ActivityStreams 2.0
Type factory borrowed from landrok/activitypub
2021-09-14 13:13:44 +01:00
Eliseu Amaro 043c5da58b
[THEME][BASE] New and better light theme. 2021-09-14 13:13:44 +01:00
Eliseu Amaro 26aec5f626
[BASE][NOTE][CSS] Further screen reader cues for note replies. 2021-09-14 13:13:44 +01:00
Eliseu Amaro 9e051273f7
[BASE][NOTE][CSS] Notes are now clearly delimited to visually impaired users. Screen readers will notify when a note begins as well as each reply. Focused elements now provide the same feedback everywhere. 2021-09-14 13:13:43 +01:00
Eliseu Amaro 60af533fa4
[BASE][CSS] Accessibility menu fix when logged out. Proper selector for accesskey used now, ".accessibility-target". 2021-09-14 13:13:43 +01:00
Eliseu Amaro c4b328c03b
[LEFT][CSS] Fix scrolling when tabbing, navigating through notes is more obvious now. Timeline navigation fix for screen readers to know that the navigation title matters. 2021-09-14 13:13:43 +01:00
Eliseu Amaro 3abf71b707
[CSS] There's no need to tab again after selecting accessibility menu! 2021-09-14 13:13:43 +01:00
Diogo Peralta Cordeiro 8123086881
[Embed] Fix normalizeEmbedLibMetadata for thumbnails starting with '/' 2021-09-14 13:13:43 +01:00
Eliseu Amaro 3c1a9ba3fa
[CSS] Fixed tabbing through accessibility menu. Was invisible when going throught it without a previous target. 2021-09-14 13:13:43 +01:00
Eliseu Amaro b0b3ae237a
[TWIG][BASE] Fixed taborder, Orca will continue to read the whole header though. Navigation should be more clear for each timeline. 2021-09-14 13:13:43 +01:00
Eliseu Amaro 61071a6821
[PLUGINS][Reply][Repeat][Favourite] Base template semantic rework. Reply, repeat and favourite respective classes are now assigned in their NoteHandlerPlugin. 2021-09-14 13:13:43 +01:00
Diogo Peralta Cordeiro ddd2ffe26a
[TWIG] Add extension to check if Firefox is being used 2021-09-14 13:13:43 +01:00
Eliseu Amaro 0e50f0692e
[ACCESSIBILITY][BASE] Accessibility menu was unreachable. 2021-09-14 13:13:42 +01:00
Eliseu Amaro 1614b8c8fe
[ACCESSIBILITY][BASE] Workaround Firefox amazing keybindings. 2021-09-14 13:13:42 +01:00
Eliseu Amaro 681144b380
[PLUGINS][Favourite][CSS] Favourite label now shows whether it's favourited or not already. 2021-09-14 13:13:42 +01:00
Hugo Sales 0cecc67376
[COMPONENT][Posting][Link] Create `ProcessNoteContent` event. Move link extraction to Link component. Cleanup Posting 2021-09-14 13:13:42 +01:00
Hugo Sales add8f4a52f
[TOOLS] Fix all errors found by PHPStan level 1 2021-09-14 13:13:42 +01:00
Hugo Sales 0da6ff05ed
[TOOLS] Add config file and raise PHPStan to level 1 2021-09-14 13:13:42 +01:00
Hugo Sales 277a080d7c
[EXCEPTION] Add `NotImplementedException` 2021-09-14 13:13:42 +01:00
Hugo Sales eb833b62e2
[TOOLS] Fix all level 0 errors found by PHPStan and move constant definition to bootstrap file 2021-09-14 13:13:42 +01:00
Hugo Sales 0eb0236feb
[TOOLS] Run PHPStan on the whole codebase on each commit 2021-09-14 13:13:42 +01:00
Hugo Sales ecb1064d08
[DEPENDENCIES] Add PHPStan as a dev dependency 2021-09-14 13:13:42 +01:00
Hugo Sales 6ac37bc7fb
[DEPENDENCIES] Update dependencies 2021-09-14 13:13:41 +01:00
Hugo Sales f65e2b90f2
[CORE] Fix use of `Exception` class without import 2021-09-14 13:13:41 +01:00
Hugo Sales cbbef90752
[UTIL][CONFIG] Ensure `setConfig` uses a `locals` key 2021-09-14 13:13:41 +01:00
Hugo Sales 4916c8cbda
[CONTROLLER][AdminPanel] Add missing Exception import 2021-09-14 13:13:41 +01:00
Hugo Sales bfd0acacd1
[TESTS] Fix SecurityTest breakage following UI changes 2021-09-14 13:13:41 +01:00
Hugo Sales e8ae0b74e0
[CORE][Controller] Switch order for content negotiation: allow events to take precedence. Bring back default JSON response 2021-09-14 13:13:41 +01:00
Hugo Sales bc5ddc52ea
[UI] Remove stray template file `foo.html.twig` 2021-09-14 13:13:41 +01:00
Eliseu Amaro c612fe6df5
[PLUGINS][Reply][CSS] Help text added. Styling reply page done. 2021-09-14 13:13:41 +01:00
Eliseu Amaro 9f6acc04aa
[CSS] Light theme panels background image fix. Input elements with proper padding. 2021-09-14 13:13:41 +01:00
Eliseu Amaro 7a0e256557
[CSS] Light theme! 2021-09-14 13:13:40 +01:00
Eliseu Amaro 727133b6ed
[IMAGES][CSS] Dropdown image added for use in select boxes background. Fixed select box background color from being the one used by the system, dark theme inconsistencies found. 2021-09-14 13:13:40 +01:00
Eliseu Amaro e6449bfe96
[CONFIG][TWIG] Selected a new default form theme. Forms shouldn't have class-less divs now. 2021-09-14 13:13:40 +01:00
Eliseu Amaro 1f792a0183
[CSS] Links should be aligned with content now. Underlined in main content by default. Highlighted when focused. 2021-09-14 13:13:40 +01:00
Hugo Sales bdde047dfa
[PLUGINS][Embed] Embed references a table that does not exist. It seems to mean `attachment_embed`, rather than `link_to_attachment` 2021-09-14 13:13:40 +01:00
Hugo Sales cd89106fc0
[EXCEPTION][RedirectException] Add prevention for open redirects by default and ensure we can redirect to the same page 2021-09-14 13:13:40 +01:00
Hugo Sales 16cde6dfd7
[PLUGINS][Reply] Redirect back to previous URL on note reply. Move controller to own class
This should be safe against open redirects, as it doesn't allow redirecting to other domains
2021-09-14 13:13:40 +01:00
Hugo Sales 0a7fd9c460
[CORE][MODULES][NoteHandlerPlugin] Add missing import for `Event` 2021-09-14 13:13:40 +01:00
Hugo Sales 1d5fd1aefa
[CORE][Controller] Fix `Controller::__invoke` so it actually passes on the route parameters to the controller method. Add `Controller->string`, which gets a query parameter as a string value, or null if not set 2021-09-14 13:13:40 +01:00
Hugo Sales 330143e549
[ROUTER][DOCUMENTATION] Add `Router::isAbsolute`, add documentation to `Router::url` and `s/setRouter/serServices/ 2021-09-14 13:13:39 +01:00
Hugo Sales 61d95265a9
[PLUGINS][Repeat] Delete note repeat rather than the original Note. Don't fetch when we want a simple count 2021-09-14 13:13:39 +01:00
Hugo Sales be27a10244
[EVENTS] Rename event `RouteInFormat` to `ControllerResponseInFormat` 2021-09-14 13:13:39 +01:00
Eliseu Amaro f371443884
[CSS] Note's view now properly handles replies. 2021-09-14 13:13:39 +01:00
Eliseu Amaro 6fdec483cd
[Reply] RedirectionException wasn't allowing other handlers to do their job. 2021-09-14 13:13:39 +01:00
Eliseu Amaro 85db9464ca
[Reply] Fixed reply plugin action, there was no need to query the database when handling. 2021-09-14 13:13:39 +01:00
Eliseu Amaro f000532b7e
[Favourite][Reply][Repeat] The respective svg for note actions is assigned. Repeat note handler needs work. "An exception has been thrown during the rendering of a template ("No value in table note matches the requested criteria")." exception thrown on repeat. 2021-09-14 13:13:39 +01:00
Eliseu Amaro f9f4f179bb
[Security][Right] login
and register padding fix. Select boxes styling done.
2021-09-14 13:13:39 +01:00
Hugo Sales 983e0303a5
[ROUTER] Sort routes so that the one with a smaller list of Accept types matches first
This requires a copy, but gets cached, so it's the ideal place to do it.

Note that only routes that match the incoming Accept match anyway, so the order between those with different accept types is not relevant
2021-09-14 13:13:39 +01:00
Hugo Sales 45734d882c
[CONFIG] Make it possible to write module configuration in a config.{php,yml,yaml,xml} file and set each value as properties in the module object 2021-09-14 13:13:38 +01:00
Eliseu Amaro 6ef07e04d1
[Posting][CSS] Right panel form uses a select box instead of radio buttons. Hover and focus of <a> elements using just an underline. Note author and actions padding redone. File-picker font is now correct. Left panel hierarchy should now be more clear. 2021-09-14 13:13:38 +01:00
Eliseu Amaro 7dc390ca1c
[TWIG][CSS] Shortcuts now work in small screen sizes. Header icons further polish. Profile navigation structural rework. 2021-09-14 13:13:38 +01:00
Eliseu Amaro ca2eff2906
[CSS] Visual feedback from shortcuts polished. 2021-09-14 13:13:38 +01:00
Eliseu Amaro 414b33f97b
[TWIG][CSS] Shortcut menu done. Can access various panel with proper visual feedback. 2021-09-14 13:13:38 +01:00
Eliseu Amaro e73af2b887
[TWIG][CSS] Left and Right panels now using a checkbox trick to control their visibility. Details element couldn't be properly controlled by CSS without breaking accessibility. 2021-09-14 13:13:38 +01:00
Eliseu Amaro 6e6b2ea87b
[CSS][Icons] Icons width and height wasn't consistent, problem lied within the SVGs themselves. 2021-09-14 13:13:38 +01:00
Eliseu Amaro b8bb845e24
[TWIG][CSS][Accessibility] Note view accessibility improvements. Left and right panels icon rework (width and height weren't correct, position needs further work). 2021-09-14 13:13:38 +01:00
Eliseu Amaro d2760f1250
[TWIG][CSS][Accessibility] Base template accessibility improvements. Applying more semantic HTML5 tags and aria to describe content actions. 2021-09-14 13:13:38 +01:00
Eliseu Amaro 671e2d6a9d
[CSS] Fixed Favourite button background size and colour. Fixed right panel incorrect font size. 2021-09-14 13:13:37 +01:00
Diogo Peralta Cordeiro 8880af8197
[ActivityStreamsTwo] Introduce a structure for data representation in ActivityStreams 2.0
Type factory borrowed from landrok/activitypub
2021-09-14 13:13:37 +01:00
Diogo Peralta Cordeiro e4aa3ae968
[NOTE] Add route and controller 2021-09-14 13:13:37 +01:00
Diogo Peralta Cordeiro fd3b57dc24
[CORE][Controller] Make it possible for plugins to add different content-types to existing routes 2021-09-14 13:13:37 +01:00
Diogo Peralta Cordeiro 8e45637277
[DOCS][User] Elaborate on what is GNU social and IndieWeb 2021-09-14 13:13:37 +01:00
Hugo Sales 626f50080b
[MODULES] Use snake_case for module config keys 2021-09-14 13:13:37 +01:00
Hugo Sales 033c4db914
[MODULES] Add function to defer module initialization and cleanup to plugin and component. Add example in Avatar component
Forward onInitializeModule to onInitializePlugin if the component is a plugin
2021-09-14 13:13:37 +01:00
Hugo Sales bda839be7b
[MODULES] Add InitiializeModule and CleanupModule events, similar to v2 2021-09-14 13:13:37 +01:00
Diogo Peralta Cordeiro 1ee8df1494
[DOCS][Developer] Elaborate on implementing and configuring a module 2021-09-14 13:13:37 +01:00
Hugo Sales 141f919ca7
[CONFIG][TESTS] Fix error found by AdminPanel test 2021-09-14 13:13:36 +01:00
Hugo Sales 4d3da08b1e
[CONFIG] Add example module configuration 2021-09-14 13:13:36 +01:00
Hugo Sales c71a4b06ef
[CONFIG] Make it possible to write module configuration in a config.{php,yml,yaml,xml} file and set each value as properties in the module object 2021-09-14 13:13:36 +01:00
Hugo Sales 3587b8dc1d
[CONFIG] Refactor configuration loading 2021-09-14 13:13:36 +01:00
Hugo Sales c94ef26617
[TESTS] Fix namespace on Controller Security test 2021-09-14 13:13:36 +01:00
Hugo Sales 56e5d5c4a0
[TESTS] Fix broken tests and expand tests around Attachments 2021-09-14 13:13:36 +01:00
Hugo Sales f1bd4db495
[TESTS] Fix Common test 2021-09-14 13:13:36 +01:00
Hugo Sales 2fdd0b0820
[TESTS][DataFixtures] Use Temporary file instead of an ad-hoc solution to copy the upload files 2021-09-14 13:13:36 +01:00
Diogo Peralta Cordeiro 9739cc5f21
[Posting] Respect process_links setting 2021-09-14 13:13:36 +01:00
Diogo Peralta Cordeiro ab142ab52d
[FileQuota] Update plugin to respect the new entities 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro 2b457655ea
[CORE] Fix path configuration 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro e7b985a460
[FIXTURES] Catch any exception, we don't have VIPS-related only 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro aa8412f607
[TESTS][Forms] Respect new naming conventions 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro 9067bd8785
[TESTS] remove accidentally duplicate sample upload 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro 415089914f
[VideoEncoder] Port plugin to v3 properly 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro 5107e06fae
[DOCS][Developer] Paradigms: Update is_null based on poll votes
Everything around the use we give to php's null is about the state of having a value or not. Thus, using `is_null` always is the less bad option.
2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro 2b7232891e
[ImageEncoder] Make plugin respect instance config and use the new core interface 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro f9079784c4
[ENTITY][AttachmentThumbnail] Improve the way EncoderPlugins participate in the thumbnail process 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro e4b2821657
[TWIG][Attachments] Don't throw event with mimetype in its name 2021-09-14 13:13:35 +01:00
Diogo Peralta Cordeiro bc1fb007aa
[Core][GSFile] Improve the way EncoderPlugins participate in the file sanitization process 2021-09-14 13:13:34 +01:00
Diogo Peralta Cordeiro 210f895e74
[ENTITY][Attachment] Respect rfc6838#section-4.2 mimetype length 2021-09-14 13:13:34 +01:00
Diogo Peralta Cordeiro e80ad2d87b
[TESTS][Controller][AdminTest] Update int tests to use attachment file_quota instead, as we deleted attachment max width 2021-09-14 13:13:34 +01:00
Diogo Peralta Cordeiro b0b4f37078
[CONFIG] Add setting for attachment sanitization 2021-09-14 13:13:34 +01:00
Diogo Peralta Cordeiro 2a3db65216
[CONTROLLER][Attachment] Some attachments may not have dimensions 2021-09-14 13:13:34 +01:00
Hugo Sales 450dbfb98f
[DOCUMENTATION] Update documentation regarding route accept formats 2021-09-14 13:13:34 +01:00
Hugo Sales 26bf78360b
[ROUTER][UTIL] Allow specifying the Accept format for a route 2021-09-14 13:13:34 +01:00
Hugo Sales 86bdc398c5
[DOCKER] Update PHP docker container to include ffmpeg, for the VideoEncoderPlugin 2021-09-14 13:13:34 +01:00
Hugo Sales 811caaadf9
[MODULES][PLUGINS] Move noteActionHandle utility to NoteHandlerPlugin which plugins which handle actions on notes should extend 2021-09-14 13:13:34 +01:00
Hugo Sales 458b6d0009
[UI] Rename all forms to more specific names, to avoid form name collisions 2021-09-14 13:13:33 +01:00
Hugo Sales 6af1383e07
[UTIL][Form] Disallow using very generic form names, as they can collide with other forms in the same page 2021-09-14 13:13:33 +01:00
Hugo Sales a7d5b5599c
[TESTS] Fix LocalUserTest, i forgor to boot the kernel 2021-09-14 13:13:33 +01:00
Hugo Sales e278efe61d
[TESTS] Fix tests broken with rebased commits 2021-09-14 13:13:33 +01:00
Hugo Sales 8e12f5ee59
[TESTS] Raise test coverage for Link to 100% 2021-09-14 13:13:33 +01:00
Hugo Sales c78032f1fa
[TESTS] Raise test coverage of LocalGroup to 100% 2021-09-14 13:13:33 +01:00
Hugo Sales cfc89d8a25
[TESTS] Raise test coverage of LocalUser to 100% 2021-09-14 13:13:33 +01:00
Hugo Sales a2e302efb4
[TESTS] Raise GSActor test coverage to 100% 2021-09-14 13:13:33 +01:00
Hugo Sales 043e179c23
[TESTS][Attachment][AttachmentThumbnail][GSFile] Reorganize tests and raise test coverage to 100% 2021-09-14 13:13:33 +01:00
Hugo Sales 4cd3924cc1
[ATTACHMENTS][AttachmentThumbnail] Fix implementation of predictScalingValues and small fixes 2021-09-14 13:13:32 +01:00
Hugo Sales 2ccbbd53a6
[TESTS] Add code coverage annotations to entities 2021-09-14 13:13:32 +01:00
Hugo Sales e7699b3245
[TESTS] Raise test coverage for Note to 100% 2021-09-14 13:13:32 +01:00
Hugo Sales 79215bc439
[Note] Fix scope check for group notes, move away from SQL, to DQL 2021-09-14 13:13:32 +01:00
Hugo Sales e392a9c90c
[TESTS][DataFixtures] Add user, self follows, group member and group scope note 2021-09-14 13:13:32 +01:00
Hugo Sales 365afb7ba8
[TOOLS] Disable command echo in Makefile 2021-09-14 13:13:32 +01:00
Hugo Sales 4b2a92d052
[UI][Attachment] Use Attachment methods to get the proper URL, rather than crafting it in a template 2021-09-14 13:13:32 +01:00
Hugo Sales 6799052ff5
[ATTACHMENTS] Ensure thumbnail dimensions are bounded and change way cropping is implemented 2021-09-14 13:13:32 +01:00
Diogo Peralta Cordeiro f67173061b
[VideoEncoder] Add plugin composer dependency php-ffmpeg/php-ffmpeg 2021-09-14 13:13:32 +01:00
Diogo Peralta Cordeiro ac45008240
[Embed] Move composer dependency embed/embed from core to plugin 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro b50f11a040
[ENTITY][Link] self urls can't be considered a remote url 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro 177801c81b
[Embed][StoreRemoteMedia] Re-add {white,black}list check config 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro de444a2a5a
[Posting] Fix wrong usage of DB::findBy 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro e40c7b0509
[DOCS][Developer] Recommend reading the tests cases for when the doc doesn't cover 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro 5c8677304c
[DOCS][Developer] Update storage documentation 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro 78f4ccb576
[ImageEncoder] Fix ImageSanitization, it should never modify the input image 2021-09-14 13:13:31 +01:00
Eliseu Amaro ca71e57593
[CSS] Hotfix: Figure captions do not overflow. 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro 41b42407cd
[Posting] Store uploaded filenames as titles 2021-09-14 13:13:31 +01:00
Diogo Peralta Cordeiro 036e9cb58e
[Avatar] Preserve uploaded filename and use Avatar's own route instead of attachment 2021-09-14 13:13:30 +01:00
Diogo Peralta Cordeiro f70eb8f12d
Remove weird empty template 2021-09-14 13:13:30 +01:00
Eliseu Amaro 6166afeec6
[TWIG][CSS] Left and right panels accessibility improvements. Tabindex is now properly set up. When panels have the attribute open but aren't focused (keyboard navigation out of panel, into main content) they aren't displayed anymore. 2021-09-14 13:13:30 +01:00
Hugo Sales e2e6c7a5bf
[TESTS] Hot-fix Security controller tests, broken with ongoing form rendering changes 2021-09-14 13:13:30 +01:00
Eliseu Amaro c81795eb96
[TWIG][CSS] More consistent classes. Checkbox styling done. Register and Login pages now done. 2021-09-14 13:13:30 +01:00
Eliseu Amaro 44a581f0f6
[UTIL][FORM] Password form now shows the proper HTML class, and it's respective label. 2021-09-14 13:13:30 +01:00
Eliseu Amaro 87d7318de5
[CONTROLLER][SECURITY] Added class names. Help labels for each form element. Each form element now has a proper block prefix (the resulting HTML won't simply concatenate the form's name to the element's label). 2021-09-14 13:13:30 +01:00
Eliseu Amaro ab10cd4121
[DOC] Fixed installation.md typos. 2021-09-14 13:13:30 +01:00
Hugo Sales ebee70621b
[FORM] Fix bug where options were passed in the data parameter 2021-09-14 13:13:30 +01:00
Diogo Peralta Cordeiro 1419035076
[DOCS][Developer] Add an introduction 2021-09-14 13:13:29 +01:00
Diogo Peralta Cordeiro afd00fbdc5
[DOCS][Developer] httpclient: Add an example of lazyness care 2021-09-14 13:13:29 +01:00
Diogo Peralta Cordeiro 31ca5cb35e
[DOCS][Developer] Paradigms: apply XRevan86 fixes and remove the return types section, we must revisit it later.. 2021-09-14 13:13:29 +01:00
Diogo Peralta Cordeiro 54e03d49d4
[DOCS][Developer] Remove low level index, we will approach these themes in another manner
Fix some broken links
2021-09-14 13:13:29 +01:00
Hugo Sales c8e00e4187
[TOOLS] Add make command 'database-force-schema-update' to update the database schema and 'redis-shell' 2021-09-14 13:13:29 +01:00
Hugo Sales 8ca61eea77
Duplicate public/assets/css/bg.jpg history in tests/sample-uploads/attachment-lifecycle-target.jpg history. 2021-09-14 13:13:29 +01:00
Hugo Sales 6d7a0dbc92
[TESTS][TOOLS] Always stop containers regardless of test success 2021-09-14 13:13:29 +01:00
Hugo Sales 5410f22060
[DEPENDENCIES] Update dependencies 2021-09-14 13:13:29 +01:00
Hugo Sales 4f880eb761
[PLUGINS][ENTITY][Cover][ProfileColor] Clean up after interns and move entity defintions to be inside the corresponding plugin, rather than in core 2021-09-14 13:13:29 +01:00
Hugo Sales 5237364a21
[TESTS] Raise test coverage for GSFile to 100% 2021-09-14 13:13:28 +01:00
Hugo Sales 300eccfd17
[TESTS] Raise test coverage for Attachment controller to 100% 2021-09-14 13:13:28 +01:00
Hugo Sales 2351e7c6d1
[CORE][GSFile] Use pathinfo rather than regular expressions and don't attempt to persist an already persisted entity 2021-09-14 13:13:28 +01:00
Hugo Sales 3843348c1b
[CONTROLLER][Attachment] Small refactor and add testing annotation 2021-09-14 13:13:28 +01:00
Hugo Sales e2caf19b67
[TESTS] Remove copied upload test files, if upload failed 2021-09-14 13:13:28 +01:00
Hugo Sales aef61e4c73
[TESTS] Add coverage ignore flags to trivial methods 2021-09-14 13:13:28 +01:00
Hugo Sales fe86735b8b
[DB][DOCUMENTATION] Explain limit: 2 in findOneBy 2021-09-14 13:13:28 +01:00
Hugo Sales c3db2f60d2
[UTIL][EXCEPTIONS] Introduce NotStoredLocallyException 2021-09-14 13:13:28 +01:00
Hugo Sales 6445a616a8
[ENTITY][Attachment] Raise mimetype max length to 64 characters and ensure we don't attempt to store more than that 2021-09-14 13:13:28 +01:00
Hugo Sales d4d4f4e950
[TESTS] Cleanup attachment test data 2021-09-14 13:13:27 +01:00
Hugo Sales 6e6d1a946f
[TESTS] Remove MediaFileTest and move setup code to media data fixture 2021-09-14 13:13:27 +01:00
Hugo Sales 53f89ade85
[TESTS] Move Media fixtures to their own file, for organization 2021-09-14 13:13:27 +01:00
Hugo Sales 74d1874991
[DOCUMENTATION][Entity] Improve documentation on Entity::getWithPK, explaining the ways it can be used 2021-09-14 13:13:27 +01:00
Diogo Peralta Cordeiro 060a5abef1
[ENTITY][Link] Sometimes URLs don't work, handle that 2021-09-14 13:13:27 +01:00
Diogo Peralta Cordeiro 1906d4f276
[Embed] Add UI element and fix some bugs 2021-09-14 13:13:27 +01:00
Diogo Peralta Cordeiro 061c953eac
[TWIG] Add Links representation to notes 2021-09-14 13:13:27 +01:00
Diogo Peralta Cordeiro ef1a9ce3b1
[ImageEncoder] Handle VIPS unsupported image type 2021-09-14 13:13:27 +01:00
Diogo Peralta Cordeiro f690bc06ae
[ATTACHMENT] Some attachments don't have thumbnails and that's okay 2021-09-14 13:13:27 +01:00
Diogo Peralta Cordeiro b4a03b814f
[CORE][GSFile] ensureFilenameWithProperExtension: extension isn't an I/O param 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro 728f8d8fb8
[ENTITY][Note] Add getter for note links 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro 9e4cac0123
[ENTITY] Refactor RemoteURL entities to Link
RemoteURL was being an awfully confusing term.
2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro fb28a3656a
[Embed] Retrieve remote thumbnails and other improvements 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro 7a0a6f1f22
[Embed] Fix usage of EmbedLib
Fix other minor bugs
2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro 968e3431e1
[Attachment] Sometimes we can't provide download of original file 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro 4cc4523632
[Posting] Re-add original file to attachment on upload, if it was previously removed 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro d076781c74
[AttachmentToNote][Attachment] Add title getter to Attachment 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro 5fd91bf3a2
[TESTS][Twig] Fix ExtensionTest->testIconsExtension 2021-09-14 13:13:26 +01:00
Diogo Peralta Cordeiro bac18715c5
[StoreRemoteMedia] Implement the first version of it in v3 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro 63cbf4052f
[UTIL] Common::config wasn't a proper port from v2, it has to accept one argument only as well 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro 33cc9386d2
[RemoteURLToAttachment] Fix primary key, relation is: One Attachment Has Many URLs, One URL Has One Attachment 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro 78c5c4b084
[Attachment] Allow to delete the associated file 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro 508f1f8796
[MODULES] Add module configuration 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro de8a2f579c
[CORE][Event] Fix bug on handler Log 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro 4ecdeac6a3
[CORE][Entity] Compare with object properties when creating/updating, instead of class 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro 75f70f8182
[ENTITY][Posting] Remove GSActorToRemoteURL, Fix URL database store 2021-09-14 13:13:25 +01:00
Diogo Peralta Cordeiro fbbbde4275
[AttachmentShowRelated] Bug fix after re-introduction of NoteActions 2021-09-14 13:13:25 +01:00
Eliseu Amaro df62d7e4f4
[CSS][Assets] Minified header icons. Reverted footer links position due to Firefox's corageous interpretation of a fixed element's position. 2021-09-14 13:13:25 +01:00
Eliseu Amaro 5de0704de2
[Favourite][TWIG][CSS] Favourite shows alt-text and properly sets colours. Titles translated on the right panel. 2021-09-14 13:13:24 +01:00
Diogo Peralta Cordeiro f5175cc59d
[ATTACHMENTS] Always store in the same location 2021-09-14 13:13:24 +01:00
Diogo Peralta Cordeiro 3f61537140
[ENTITY] Split Attachment in various new entities
Remove Attachment Scope
Fixed some minor bugs

Scope will be implemented later in v3. It doesn't make sense to have
the scope handling being per attachment. Different actors can post
the same attachment with different scopes. The attachment controller
will assume the highest level of scope applied to the attachment and
the rest will be handled at the note level.

Motivation:
* Remove title from attachment, as it's part of the relation between attachment and note.
* Remove actor from attachment, many actors may publish the same attachment.
* Remove is_local from attachment,  as it's part of the relation between attachment and note.
* Remove remote_url from attachment, different urls can return the same attachment.

Addition:
* Attachment now has a lives attribute,  it's a reference counter with a nicer name
* GSActorToAttachment
* GSActorToRemoteURL
* RemoteURL
* RemoteURLToNote
* RemoteURLToAttachment
* AttachmentToNote now has a title attribute
2021-09-14 13:13:24 +01:00
Diogo Peralta Cordeiro a7c8da0534
[FileQuota] We'll get back to this plugin later 2021-09-14 13:13:24 +01:00
Hugo Sales 39006fb6b5
[DB][Attachments] Use count function rathar than fetch and count, rename to refCount, rather than countDepencies 2021-09-14 13:13:24 +01:00
Hugo Sales 8880405dee
[DEPENDENCIES] Update dependencies 2021-09-14 13:13:24 +01:00
Hugo Sales 809bf00aa9
[TemporaryFile][TESTS] Throw on attempt to write to null resource and fix tests 2021-09-14 13:13:24 +01:00
Hugo Sales c24c32334d
[TESTS] Add test for JSON response and invalid accept format 2021-09-14 13:13:24 +01:00
Hugo Sales 6728dd40b0
[ENTITY] Add JsonSerializable interface to Entity base class and implement it for the Note class 2021-09-14 13:13:24 +01:00
Hugo Sales 2851b899b8
[TESTS] Add test annotations to core classes 2021-09-14 13:13:23 +01:00
Hugo Sales 21a5bbe639
[CORE][Controller] Fix JSON response and add test annotations 2021-09-14 13:13:23 +01:00
Hugo Sales 061a85d6b3
[EVENTS] Change FormatNoteList do separate in and out arguments
This is necessary due to some weird problem which I wasn't able to figure out (but which doesn't matter)
that somehow causes the event to be called twice during testing, and thus the function was exploding
2021-09-14 13:13:23 +01:00
Hugo Sales 57f43108bb
[TESTS] Fix Entity test in accordance with the changes to createOrUpdate 2021-09-14 13:13:23 +01:00
Hugo Sales b5de80303a
[TEST] Raise test coverage for UserPanel to 100% 2021-09-14 13:13:23 +01:00
Hugo Sales 480665afc8
[CONTROLLER][UserPanel] Finish implementation of ::notifications so it actually saves the values in the database 2021-09-14 13:13:23 +01:00
Hugo Sales cdf3426567
[CONTROLLR][UserPanel][PLUGINS] Add submit button to notification settings for each transport 2021-09-14 13:13:23 +01:00
Hugo Sales afbcb179b2
[CONTROLLER][AdminPanel] Further ensure form validity 2021-09-14 13:13:23 +01:00
Hugo Sales 38a331220f
[CORE][Log] Add Log::unexpected_exception utility which logs and throws a ServerException 2021-09-14 13:13:23 +01:00
Hugo Sales 085e880631
[CORE][Entity] Fix implementation of createOrUpdate so it doesn't throw NotFoundException if trying to create an object
This was previously done because we wanted to notify the callee that
and entity existed but not with the provided contents. With the change
of return value, with a bool $is_update, this is no longer a problem.
2021-09-14 13:13:22 +01:00
Hugo Sales 662ad8e9cf
[TESTS] Update PHPUnit config to start executing tests by last failure. This doens't seem to actually work currently, though 2021-09-14 13:13:22 +01:00
Hugo Sales 11e52bcb27
[TOOLS] Add utility commands to the Makefile 2021-09-14 13:13:22 +01:00
Hugo Sales 1b623a85ae
[UTIL][FormFields] Move FormFields class to Util\Form namespace 2021-09-14 13:13:22 +01:00
Eliseu Amaro 1647c5391f
[Favourite][TWIG][CSS] Favourite now works. 2021-09-14 13:13:22 +01:00
Eliseu Amaro e15044fe36
[CSS] Overall typography resizing to provide proper text hierarchy. Radio buttons polish, notes author box is now smaller. Better organization of CSS rules according to their filename and thus, their aim. 2021-09-14 13:13:22 +01:00
Eliseu Amaro 1962a004aa
[CSS] Fixed top margin, footer elements are now actually footer elements. 2021-09-14 13:13:22 +01:00
Eliseu Amaro e180143e20
[TWIG][CSS] Buttons are now the correct size in all contexts. Right panel create a notice section re-structure. 2021-09-14 13:13:22 +01:00
Eliseu Amaro cb21599cef
[TWIG][CSS] Feedback provided to active page. Removed top accent border on notes. 2021-09-14 13:13:22 +01:00
Eliseu Amaro 68cf6dee65
[FAQ][CSS] All FAQ pages stylized, minor structure changes throughout. 2021-09-14 13:13:22 +01:00
Eliseu Amaro 10f930ad4b
[TWIG][CSS] Left panel text hierarchy fix (no <hr> element between timeline navigation and its items). Default CSS fixes for buttons and input file selectors. 2021-09-14 13:13:21 +01:00
Eliseu Amaro 0f032c257b
[CSS] Input file elements polish. It should resize properly and provide feedback when selected (not a thing in Firefox ESR yet). 2021-09-14 13:13:21 +01:00
Eliseu Amaro bac6d2a490
[CSS] Base CSS polish, reset CSS additions for better cross-browser compatibility. 2021-09-14 13:13:21 +01:00
Diogo Peralta Cordeiro a77f51dd06
[Avatar] Delete attachment only if safe 2021-09-14 13:13:21 +01:00
Diogo Peralta Cordeiro 21362d1e4d
[ATTACHMENTS] Add dependencies counter 2021-09-14 13:13:21 +01:00
Eliseu Amaro 95fd86f8dc
[CSS] Fixed background incorrect sizing. 2021-09-14 13:13:21 +01:00
Eliseu Amaro d0b2cccb63
[CSS] Mesh gradient works as intended with no banding. 2021-09-14 13:13:21 +01:00
Diogo Peralta Cordeiro 0c612bddbe
[Avatar] Store as regular attachments 2021-09-14 13:13:21 +01:00
Diogo Peralta Cordeiro b355f0d590
[DEV] Add PsySH REPL 2021-09-14 13:13:20 +01:00
Diogo Peralta Cordeiro 3334aca7b9
[Avatar] Move entity from core to component 2021-09-14 13:13:20 +01:00
Diogo Peralta Cordeiro fb6aa78ae8
[CORE][GSFile] Allow storing files under /file 2021-09-14 13:13:20 +01:00
Hugo Sales e688bf8aed
[TESTS] Ignore coverage of ResetPasswordRequest, as it uses mailing functionality. We may want to introduce this test in the future 2021-09-14 13:13:20 +01:00
Hugo Sales 9ad2cb5e66
[UTIL][FormFields] Allow specifying whether a password is required and provide placeholder text 2021-09-14 13:13:20 +01:00
Hugo Sales 5aedf64e5b
[ROUTES] Remove individual settings pages, as they got merged 2021-09-14 13:13:20 +01:00
Hugo Sales 27f2fbdade
[ENTITY] Refactor LocalUser::changePassword for easier use 2021-09-14 13:13:20 +01:00
Hugo Sales 19318b3163
[UTIL][EXCEPTION] Add AuthenticationException, representing an auth error, status code 401 unauthorized 2021-09-14 13:13:20 +01:00
Hugo Sales a1592656e0
[TESTS] Change format of data fixtures to allow creating more users 2021-09-14 13:13:20 +01:00
Hugo Sales 2dd3511149
[CORE][DB] Specify desired case in array_change_case, for clarity 2021-09-14 13:13:19 +01:00
Hugo Sales 0ae67d96ea
[TESTS] Raise test coverage for AdminPanel to 100% 2021-09-14 13:13:19 +01:00
Diogo Peralta Cordeiro b77e35ef09
[SECURITY] Do not require email when in development 2021-09-14 13:13:19 +01:00
Diogo Peralta Cordeiro e8ef777fb2
[DOCS][Dev] Add Debugging and Testing 2021-09-14 13:13:19 +01:00
Hugo Sales 8240591bd4
[TESTS] Fixup Security controller tests to match new UI 2021-09-14 13:13:19 +01:00
Hugo Sales fe7c2b5115
[TESTS] Raise test coverage for AdminPanel controller to 100% 2021-09-14 13:13:19 +01:00
Hugo Sales e0a0df502e
[TESTS] Raise test coverage for Attachment controller to 100% 2021-09-14 13:13:19 +01:00
Hugo Sales 29d77b446f
[TESTS] Add a sample image to the test dataset 2021-09-14 13:13:19 +01:00
Hugo Sales 647e4c03b3
[CORE][GSFile] Ensure files are stored inside the configured storage folder, with a relative filename in the database 2021-09-14 13:13:19 +01:00
Hugo Sales 51f8f004b3
[CORE][CONTROLLER] Add TODO to Controller base class as to where our custom exception pages would be implemented 2021-09-14 13:13:18 +01:00
Hugo Sales 0b80727769
[CORE][ENTITY] Allow create'ing will null values 2021-09-14 13:13:18 +01:00
Hugo Sales 77742c56c3
[ImageEncoder] Don't print_r the exception as that leads to an OOM error 2021-09-14 13:13:18 +01:00
Hugo Sales 4aee27d3a6
[CONFIG] Ensure consistency in config file 2021-09-14 13:13:18 +01:00
Hugo Sales 229a516fd2
[TESTS] Make PHPUnit exit on first fail and some other tweaks 2021-09-14 13:13:18 +01:00
Hugo Sales 855d427442
[UTIL][FORM] Create a utility class that defines common form fields, such as passwords 2021-09-14 13:13:18 +01:00
Hugo Sales dfc97d2607
[TESTS] Raise test coverage for Controller/Security to 100% 2021-09-14 13:13:18 +01:00
Hugo Sales dc2b9f940e
[CORE][GSFile] Assert that the destination folder where to store the attachment is inside the INSTALLDIR and store the filepath in the database 2021-09-14 13:13:18 +01:00
Hugo Sales 8139a21eb9
[TESTS] Add coverage ignore to TemplateController and ResetPassword (as it requires sending emails) 2021-09-14 13:13:18 +01:00
Hugo Sales 518995d155
[CONTROLLER][Attachment] Assert that the supplied is positive and add documentation 2021-09-14 13:13:17 +01:00
Hugo Sales 88dd9e542f
[CORE][GSFile] Change actor_id paramenter of validateAndStoreFileAsAttachment to optional and reorder them and their usages 2021-09-14 13:13:17 +01:00
Hugo Sales 7bd88bd101
[AUTOGENERATED] Update entity fields for ResetPasswordRequest entity 2021-09-14 13:13:17 +01:00
Hugo Sales 471dc52c92
[CORE] Add repositories, as needed by the Reset Password Bundle 2021-09-14 13:13:17 +01:00
Hugo Sales 0c54a3297f
[UTIL] Add a class that defines commonly used form fields 2021-09-14 13:13:17 +01:00
Hugo Sales ccd5ebf8e4
[CORE] Add passowrd reset and forgot password functionality 2021-09-14 13:13:17 +01:00
Hugo Sales c3d2f04841
[DEPENDENCIES] Add symfonycasts/reset-password-bundle as a dependency 2021-09-14 13:13:17 +01:00
Hugo Sales 769fff2448
[CORE][SECURITY][EMAIL] Move email confirmation functionality to it's own static wrapper, in preparation for adding password reset functionality 2021-09-14 13:13:17 +01:00
Hugo Sales e27823ae6c
[CONTROLLER][Security] Refactor and make clearer errors with duplicate nicknames and emails. Return notes as a callable, since they're not used in the default template, in the login and register pages 2021-09-14 13:13:17 +01:00
Hugo Sales 32ca61e214
[TESTS][Queue] Add @codeCoverageIgnore to select queueing functions 2021-09-14 13:13:16 +01:00
Hugo Sales 41e4e2de0e
[TESTS][Router] Add tests for Router and use named paramenters, as we can since PHP8 2021-09-14 13:13:16 +01:00
Hugo Sales 6d22932092
[ENTITY][LocalUser] Add method 'findByNicknameOrEmail' 2021-09-14 13:13:16 +01:00
Hugo Sales e6d20bd30d
[CORE][Controller][TESTS] Fix issue that arrises in tests where the Accept header is not specified 2021-09-14 13:13:16 +01:00
Hugo Sales d07cb79844
[EXCEPTION] Add Email related exceptions 2021-09-14 13:13:16 +01:00
Hugo Sales e250edf7fd
[UTIL][Nickname] Refactor Nickname and extract a validate function, as we'll want to perform normalization in select cases in the future, likely as a plugin 2021-09-14 13:13:16 +01:00
Hugo Sales 1521d0d823
[UI] Add TODO annotation to login template, since it's possible to login using email, so the fonrm field names should be updated 2021-09-14 13:13:16 +01:00
Hugo Sales f904b76ce7
[TESTS][DataFixtures] Add password and email to created test user 2021-09-14 13:13:16 +01:00
Hugo Sales efacf6da56
[TESTS][Twig] Add @codeCoverageIgnore to select methods, as these are simple wrappers 2021-09-14 13:13:16 +01:00
Hugo Sales 1d40c5cdb3
[TESTS][DB] Update test to reflec fact that GSActor no longer has a normalized_nickname field 2021-09-14 13:13:15 +01:00
Hugo Sales 6b4b3e90fb
[TESTS][Nickname] Update tests to reflect new usage. Normalization functionality will be moved to a plugin 2021-09-14 13:13:15 +01:00
Hugo Sales adf0897527
[TESTS][TemporaryFile] Update test to reflect new usage 2021-09-14 13:13:15 +01:00
Hugo Sales e77498ac19
[ENTITY] Remove 'normalized_nickname' field from GSActor as that feature will be moved to a plugin 2021-09-14 13:13:15 +01:00
Hugo Sales 2f69579ddb
[TESTS][DOCUMENTATION][Module] Add documentation and exclude method from testing in Module base class 2021-09-14 13:13:15 +01:00
Hugo Sales 7a2574eafb
[CORE][TemporaryFile] Add option to specify attempts and better handle when reaching the attemp limit without being able to create a file 2021-09-14 13:13:15 +01:00
Hugo Sales f5fb4ed3c3
[TESTS] Add tests for GSFile 2021-09-14 13:13:15 +01:00
Hugo Sales af5526d720
[DB] Refactor findOneBy method 2021-09-14 13:13:15 +01:00
Hugo Sales 7263752b18
[TESTS][DOCUMENTATION] Add documenation for the list events command and exclude it from unit testing 2021-09-14 13:13:15 +01:00
Hugo Sales 1c09aefd5a
[CONFIG] Make password length limits configurable 2021-09-14 13:13:14 +01:00
Hugo Sales 6a74102d52
[TESTS] Exclude Data Fixtures from testing, as that happens before testing 2021-09-14 13:13:14 +01:00
Hugo Sales de5650e98e
[TESTS] Exclude class Security from testing, as it's a simple wrapper 2021-09-14 13:13:14 +01:00
Hugo Sales d609dafdbc
[TESTS] Raise test coverage for ModuleManager to 100% 2021-09-14 13:13:14 +01:00
Hugo Sales bd321f05a7
[TESTS] Exclude HTTPClient from testing, as it's a simple wrapper and we don't want to be performing HTTP requests in tests, for speed and reliability 2021-09-14 13:13:14 +01:00
Hugo Sales 2ee99e5176
[TESTS] Raise test coverage for Form to 100% 2021-09-14 13:13:14 +01:00
Hugo Sales 0f634e86c7
[TESTS] Revert exposing Redis docker container ports, as this conflicts with the actual instance, and was intended for testing 2021-09-14 13:13:14 +01:00
Hugo Sales b111870853
[TESTS][EVENTS] Raise test coverage for Event class to 100% 2021-09-14 13:13:14 +01:00
Hugo Sales 871422e6b6
[TESTS][ENTITY] Raise test coverage for Entity class to 100% 2021-09-14 13:13:14 +01:00
Hugo Sales 3b18853ff1
[TESTS][LOG] Raise test coverage for Log class to 100% 2021-09-14 13:13:14 +01:00
Hugo Sales f98ce1c3d0
[TESTS] Ignore GNUsocial class from tests, as it simply pipes objects around 2021-09-14 13:13:13 +01:00
Hugo Sales 3cc1756d1b
[FORM][DOCUMENTATION] Add documentation to Form class 2021-09-14 13:13:13 +01:00
Hugo Sales f9a022745e
[EVENT] Fixup implementation, as imformed by tests 2021-09-14 13:13:13 +01:00
Hugo Sales d22711504c
[ENTITY] Fixup implementation, as imformed by tests 2021-09-14 13:13:13 +01:00
Hugo Sales 8317c612ff
[DB] Handle using methods with class name as well as table name and add lookup methods 2021-09-14 13:13:13 +01:00
Hugo Sales 747b464c7d
[TESTS] Add missing tests for Common 2021-09-14 13:13:13 +01:00
Hugo Sales 9ce30751af
[TESTS] Expand and fix cache tests 2021-09-14 13:13:13 +01:00
Hugo Sales bfe9c6c9c4
[TESTS] Add ignore annotations to code paths that serve as hooks in DependencyInjection 2021-09-14 13:13:13 +01:00
Hugo Sales 28c010fcc7
[TESTS][CACHE] Fixup errors found in cache implementation by testing. Ensure the newest values are kept, in pushList with max_count 2021-09-14 13:13:12 +01:00
Hugo Sales e2f61b05d8
[ENTITY] Fix foreign key type in Cover entity, as found by tests 2021-09-14 13:13:12 +01:00
Hugo Sales a8081854c2
[TESTS] Exclude Routes from testing, as well as, temporarily, src/Security 2021-09-14 13:13:12 +01:00
Hugo Sales 88f1437ee7
[TESTS] Use vendor/bin/simple-phpunit for running the tests, as it provides the appropriate polyfills 2021-09-14 13:13:12 +01:00
Eliseu Amaro 082656d1ae
[LEFT][RIGHT][CSS] Panels now occupy full page in smaller screen sizes. 2021-09-14 13:13:12 +01:00
Eliseu Amaro bd9e86afe0
[RIGHT][CSS] Right panel now shows an intuitive icon for other note options available. 2021-09-14 13:13:12 +01:00
Eliseu Amaro 625c056f30
[TWIG][CSS] Overall CSS optimizations. Image gradients are now used, 64x64 px. 2021-09-14 13:13:12 +01:00
Eliseu Amaro c8a8e94d48
[SETTINGS][PLUGIN][CONTROLLER] Populate profile tabs event added. Settings base template populated with such event for plugins and components.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:12 +01:00
Eliseu Amaro 6dd0292397
[SETTINGS][ROUTES][CONTROLLER] Settings overhaul, refactoring to accommodate new global settings view. WIP, component settings aren't shown at the moment.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:12 +01:00
Eliseu Amaro eed74972c5
[SETTINGS][TWIG][CSS] Settings WIP. Form polished, dropdowns need styling.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:12 +01:00
Eliseu Amaro d12f97c623
[BASE][CSS] Snappier and consistent animations.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:11 +01:00
Eliseu Amaro 10d7462d02
[TWIG][SETTINGS] WIP. Settings navigation early sketch.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:11 +01:00
Eliseu Amaro a6f5c61aef
[CSS] <figcaption> now has top padding for better legibility, hover now resizes it's element accordingly.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:11 +01:00
Eliseu Amaro d16614982a
[TWIG][CSS] Panels are fixed and base content acts accordingly on all sizes.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:11 +01:00
Diogo Peralta Cordeiro 7b6a44cfbb
[DOCS][Dev] Add HTTP Client 2021-09-14 13:13:11 +01:00
Diogo Peralta Cordeiro c99e447308
[DOCS][Dev] Add Security 2021-09-14 13:13:11 +01:00
Diogo Peralta Cordeiro 367cc5c5c7
[DOCS][Dev] Add Queues 2021-09-14 13:13:11 +01:00
Diogo Peralta Cordeiro 27fb2da1d0
[DOCS][Dev] Add Internationalisation 2021-09-14 13:13:11 +01:00
Diogo Peralta Cordeiro 3dffbdd0b7
[DOCS][Dev] Add Attachments 2021-09-14 13:13:11 +01:00
Diogo Peralta Cordeiro 2473c9afa9
[DOCS][Dev] Configure search 2021-09-14 13:13:10 +01:00
Diogo Peralta Cordeiro 70ab7e7af7
[DOCS][Dev] Add Logging 2021-09-14 13:13:10 +01:00
Diogo Peralta Cordeiro ef827db77c
[DOCS][Dev] Add Templates 2021-09-14 13:13:10 +01:00
Diogo Peralta Cordeiro ce39f6ca4a
[DOCS][Dev] Add Routes and Controllers 2021-09-14 13:13:10 +01:00
Diogo Peralta Cordeiro 0c6088225f
[DOCS][Dev] Add Cache 2021-09-14 13:13:10 +01:00
Diogo Peralta Cordeiro b60a07f270
[DOCS][Dev] Cleanup src directory 2021-09-14 13:13:10 +01:00
Diogo Peralta Cordeiro 9baf3a3124
[DOCS][Dev] Add database chapter 2021-09-14 13:13:10 +01:00
Diogo Peralta Cordeiro ad49988e0b
[DOCS][DEV] Add events 2021-09-14 13:13:10 +01:00
Diogo Peralta Cordeiro 2be4aeaab2
[DOCS][Paradigms] Elaborate on Null, Set and Void 2021-09-14 13:13:10 +01:00
Diogo Peralta Cordeiro c020958690
[DOCS] Write exceptions chapter 2021-09-14 13:13:09 +01:00
Eliseu Amaro 75bbf6c728
[TWIG][CSS] Final fix for panels, resizing works as intended, content is wrapped when no space is available. Simpler rules throughout.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:09 +01:00
Eliseu Amaro ce06c1dfd2
[TWIG][CSS] Panels weren't "flexing" properly, in smaller sizes the right panel form would break.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:09 +01:00
Eliseu Amaro e546721ca1
[TWIG][CSS] Fixed right panel buttons, fix issue where the form was invalid on send.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:09 +01:00
Eliseu Amaro 203b16c5bf
[TWIG][CSS] Right panel WIP. Create a note now looks better, need to style in some way the default user agent buttons without removing features (e.g. current file chosen).
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:09 +01:00
Eliseu Amaro 4805550c66
[TWIG][CSS] Left panel profile section done.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:09 +01:00
Eliseu Amaro 9d50289c3f
[TWIG][CSS] Register and Login styling done.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:09 +01:00
Eliseu Amaro 5e31e3290d
[CSS] Fixing poor responsiveness to main nav element hover animation.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:09 +01:00
Eliseu Amaro e0a14f0b86
[CSS][TWIG] Left panel HTML nesting to better aid screen readers.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:09 +01:00
Eliseu Amaro cd05589f67
[CSS][TWIG] Panels icons are now hidden on desktop view to stop possible inconsistencies on window resizing. Left Panel polish.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:09 +01:00
Eliseu Amaro 2bae14198b
[CSS][TWIG] Details element is now shown by default on larger screens, and hidden on smaller screens.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:08 +01:00
Eliseu Amaro e5649d82ba
[CSS][TWIG] Timeline navigation is now a part of the left panel, this way more items could be displayed at a time. Left panel styling WIP.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:08 +01:00
Eliseu Amaro 22f394f28f
[TWIG] Microformats added to timeline, note's view and media. Should be backwards compatiblr as well.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:08 +01:00
Eliseu Amaro 03fb7b43e8
[CSS] Fixed accessibility issues with header and panel elements. Left, instance and right elements are now properly ordered when focused.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:08 +01:00
Eliseu Amaro 8bff04dae1
[CSS] Fixed incorrect Chromium based browsers improper main content view. Flex item order (shouldn't be a problem, but it was) and padding for the container class was the root issue.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:08 +01:00
Eliseu Amaro 7f561376ac
[CSS] Main container 'order' attribute was somehow a problem in Chromium. 2021-09-14 13:13:08 +01:00
Eliseu Amaro 8b5f08a4bd
[CSS] Fixed top content margin. 2021-09-14 13:13:08 +01:00
Eliseu Amaro c06e666816
[TWIG][CSS] Accessibility improvements, all general links provide proper feedback now. Base theme CSS progress, page now looks more as it should. Panels WIP. 2021-09-14 13:13:08 +01:00
Eliseu Amaro 98e7e94dfa
[TWIG][CSS][ICONS] New profile and notice creation panel, alternative text set correctly for header icons. WIP in base styling and panels. 2021-09-14 13:13:07 +01:00
Eliseu Amaro 868dbbd44e
[TWIG][CSS] Found solution to show details content by default in desktop view. However, post_form is being rendered multiple times, it was already rendered in the Posting Component. Needs to be fixed. 2021-09-14 13:13:07 +01:00
Eliseu Amaro 9519891b92
[TWIG][CSS] Panels are now animated when shown, main content width as well as panel's is now correctly configured. WIP: displaying side panels by default when space is available, "details" element state cannot be manipulated through CSS only, need a better solution. 2021-09-14 13:13:07 +01:00
Eliseu Amaro 95c81cc741
[TWIG][CSS] Panels functionality works as intended, size needs to be worked upon. 2021-09-14 13:13:07 +01:00
Eliseu Amaro effb4e6f40
[TWIG][CSS] Complete HTML refactoring, now using details element instead of a checkbox trick per panel. Using a "grid" akin to IBM's Carbon design guidelines. 2021-09-14 13:13:07 +01:00
Eliseu Amaro 3de10192ef
[TWIG][CSS] Timeline WIP. Creating a notice is now done on the right panel. HTML structure improvements, such as the timeline divided from the navigation div. 2021-09-14 13:13:07 +01:00
Eliseu Amaro a3f50e6732
[TWIG][CSS] Base template structural refactoring to accommodate true canons of page construction. CSS WIP to reflect these changes.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:07 +01:00
Eliseu Amaro 0b9cc721c4
[TWIG][CSS] Fixed right panel buttons, fix issue where the form was invalid on send.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:07 +01:00
Eliseu Amaro c7a28876aa
[TWIG][CSS] Right panel WIP. Create a note now looks better, need to style in some way the default user agent buttons without removing features (e.g. current file chosen).
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:07 +01:00
Eliseu Amaro fc3ac1c2f4
[TWIG][CSS] Left panel profile section done.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro 14358b4b95
[TWIG][CSS] Register and Login styling done.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro 0c2272e094
[CSS] Fixing poor responsiveness to main nav element hover animation.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro d45ef53efd
[CSS][TWIG] Left panel HTML nesting to better aid screen readers.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro 1037d3397b
[CSS][TWIG] Panels icons are now hidden on desktop view to stop possible inconsistencies on window resizing. Left Panel polish.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro db8a1b125f
[CSS][TWIG] Details element is now shown by default on larger screens, and hidden on smaller screens.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro 15cdcd3344
[CSS][TWIG] Timeline navigation is now a part of the left panel, this way more items could be displayed at a time. Left panel styling WIP.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro 701b4967b4
[TWIG] Microformats added to timeline, note's view and media. Should be backwards compatible as well.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro cab7ba8e79
[CSS] Fixed accessibility issues with header and panel elements. Left, instance and right elements are now properly ordered when focused.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:06 +01:00
Eliseu Amaro 0620923ac6
[CSS] Fixed incorrect Chromium based browsers improper main content view. Flex item order (shouldn't be a problem, but it was) and padding for the container class was the root issue.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:05 +01:00
Eliseu Amaro 1c4568d064
[CSS] Main container 'order' attribute was somehow a problem in Chromium. 2021-09-14 13:13:05 +01:00
Eliseu Amaro 580f2d9962
[CSS] Fixed top content margin. 2021-09-14 13:13:05 +01:00
Eliseu Amaro bfd0fa74f2
[TWIG][CSS] Accessibility improvements, all general links provide proper feedback now. Base theme CSS progress, page now looks more as it should. Panels WIP. 2021-09-14 13:13:05 +01:00
Eliseu Amaro a44e81a1ed
[TWIG][CSS][ICONS] New profile and notice creation panel, alternative text set correctly for header icons. WIP in base styling and panels. 2021-09-14 13:13:05 +01:00
Eliseu Amaro f687c7b315
[TWIG][CSS] Found solution to show details content by default in desktop view. However, post_form is being rendered multiple times, it was already rendered in the Posting Component. Needs to be fixed. 2021-09-14 13:13:05 +01:00
Eliseu Amaro b899c9fb2a
[TWIG][CSS] Panels are now animated when shown, main content width as well as panel's is now correctly configured. WIP: displaying side panels by default when space is available, "details" element state cannot be manipulated through CSS only, need a better solution. 2021-09-14 13:13:05 +01:00
Eliseu Amaro 2084ae350e
[TWIG][CSS] Panels functionality works as intended, size needs to be worked upon. 2021-09-14 13:13:05 +01:00
Eliseu Amaro 3812a2d04d
[TWIG][CSS] Complete HTML refactoring, now using details element instead of a checkbox trick per panel. Using a "grid" akin to IBM's Carbon design guidelines. 2021-09-14 13:13:05 +01:00
Eliseu Amaro ee3ed5f096
[TWIG][CSS] Timeline WIP. Creating a notice is now done on the right panel. HTML structure improvements, such as the timeline divided from the navigation div. 2021-09-14 13:13:05 +01:00
Eliseu Amaro d3c47a2557
[TWIG][CSS] Base template structural refactoring to accommodate true canons of page construction. CSS WIP to reflect these changes.
Signed-off-by: Eliseu Amaro <mail@eliseuama.ro>
2021-09-14 13:13:04 +01:00
Diogo Peralta Cordeiro 80cde06f4b
[MEDIA][Thumbnail] Fix non-instantiated variable 2021-09-14 13:13:04 +01:00
Diogo Peralta Cordeiro dc3801f6ae
[DOCS][Dev] Write paradigms 2021-09-14 13:13:04 +01:00
Hugo Sales cb7fa0a081
[SECURITY] Remove aggressive normalization of nicknames. This will be moved to a plugin in the future and we'll open an RFC, as discussed 2021-09-14 13:13:04 +01:00
Hugo Sales 4ec9b910c2
[TOOLS] Fix pre commit hook to allow for partial file commits (git add -p/git reset -p) 2021-09-14 13:13:04 +01:00
Diogo Peralta Cordeiro a5348f2427
[MEDIA][AttachmentThumbnail] Add mimetype to Entity 2021-09-14 13:13:04 +01:00
Diogo Peralta Cordeiro 41dcef3c7b
[Media] EncoderPlugins should handle the views that concern them
Ensure the intended filetypes and mimetypes during Vips conversions (part 2)
Sanitize Attachments instead of Validate (part 2)
Various bug fixes
2021-09-14 13:13:04 +01:00
Diogo Peralta Cordeiro 861732176e
[Media] Support any kind of thumbnails in the Core
Sanitize Attachments instead of Validate (part 1)
Ensure the intended filetypes and mimetypes during Vips conversions (part 1)
Various bug fixes
2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro 481e953cde
[Media] File quota should be triggered by the Core 2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro 488e700fab
[POSTING] Make it possible for plugins to change the placeholder string 2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro 72dcff22f7
[MEDIA] We need permissions to run chmod in directories
It's better to have in the filename data that we couldnt't otherwise rapidly retrieve
2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro 6ecdaa5d72
[MEDIA] Fix database misses on thumbnail retrieval
We were storing the real scaling values instead of the predictions, but the core is never able to pre-compute the real values generated by the encoding plugins so, we have to rely on our own aproximation function ported from v2
2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro c8cf8c3f13
[FILE][TemporaryFile] Fix various issues now that we also have Symfony's file abstractions 2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro 6c0f3a336e
[DOCS][Developer] Adopt a top-down approach
Minor corrections to the overview
2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro 8817613016
[CORE][GNUsocial] Fix undefined property typo 2021-09-14 13:13:03 +01:00
Diogo Peralta Cordeiro 6cf7693f14
[DOCS][User][SysAdmin] Add thomask as an author as we're starting this from his unofficial docs 2021-09-14 13:13:03 +01:00
Eliseu Amaro d5ab382485
[DOCS] Add designer book. 2021-09-14 13:13:02 +01:00
Eliseu Amaro c33a65c45e
[DOCKER][nginx] Removing default nginx config through docker/nginx/domain.sh. The default config conflicts with 'localhost' server_name. 2021-09-14 13:13:02 +01:00
Diogo Peralta Cordeiro b42128014e
[DOCS] Elaborate initial architecture page 2021-09-14 13:13:02 +01:00
Diogo Peralta Cordeiro 9f553707ba
[CORE] Proxies: constant HEADER_X_FORWARDED_ALL is deprecated
Give ENV preference over SERVER
2021-09-14 13:13:02 +01:00
Hugo Sales 687b2e2bc7
[UTIL] Add utility to flatten the result of note queries 2021-09-14 13:13:02 +01:00
Hugo Sales 74f477489b
[TESTS] Raise test coverage for App\Controller\Network to 100% and fixup related code 2021-09-14 13:13:02 +01:00
Hugo Sales c5d4b7ecac
[UI] Remove margin in timeline container 2021-09-14 13:13:02 +01:00
Hugo Sales 86400ce815
[UTIL] Provide static access to current request and utilities in Common 2021-09-14 13:13:02 +01:00
Hugo Sales 9198797aea
[CORE] Throw more meaningfull error when method doesn't exist in Security and Entity 2021-09-14 13:13:02 +01:00
Hugo Sales 6d93b6fb32
[TESTS] Raise App\Core\DB\DB test coverage to 100% and fix issues found 2021-09-14 13:13:01 +01:00
Hugo Sales 52edaa319b
[TESTS] Raise App\Core\DB\UpdateListener test coverage to 100% 2021-09-14 13:13:01 +01:00
Hugo Sales d49541629d
[TESTS] Change relevant tests to use GNUsocialTestCase, so they can access all the needed features 2021-09-14 13:13:01 +01:00
Hugo Sales b9fbed2e3d
[CORE] Clarify message when calling non existent method in Entity 2021-09-14 13:13:01 +01:00
Hugo Sales 45f54e615c
[TESTS] Merge datafixtures to allow for using the correct ID in notes, and add group_inbox 2021-09-14 13:13:01 +01:00
Hugo Sales e1a1d01844
[TESTS] Add GNUsocialTestCase, which initializes our infrastructure when bootKernel is called 2021-09-14 13:13:01 +01:00
Hugo Sales d31c3b1784
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:13:01 +01:00
Hugo Sales 10c79bcafe
[TOOLS][TESTS] Add coverage ignore tag to autogenerated code 2021-09-14 13:13:00 +01:00
Hugo Sales de0c35d5a6
[TOOLS][TESTS] Add a data fixture with example notes, for testing 2021-09-14 13:13:00 +01:00
Hugo Sales fbe0f36a53
[TESTS] Expand test coverage for App\Util\Forms\ArrayTransformer, App\Util\Notification and App\Twig\Runtime 2021-09-14 13:13:00 +01:00
Hugo Sales 6591d78a9c
[TWIG] Remove unused Twig function 'get_note_other_content' 2021-09-14 13:13:00 +01:00
Hugo Sales f0c6aa761b
[TESTS] Add ignored files and folders to config 2021-09-14 13:13:00 +01:00
Hugo Sales c84fcc608f
[TESTS] Raise App\Util\TemporaryFile test coverage to 100% 2021-09-14 13:13:00 +01:00
Hugo Sales ffa3774c46
[TOOLS][TESTS] Make tests run as www-data 2021-09-14 13:13:00 +01:00
Hugo Sales fc9b934bbc
[UTIL] Fix App\Util\TemporaryFile, adding default options and preventing warning on not enough permission 2021-09-14 13:12:59 +01:00
Hugo Sales 01a659e5b3
[TESTS] Raise test coverage for NicknameTest to 100% 2021-09-14 13:12:59 +01:00
Hugo Sales 31b6211bd0
[TOOLS][TESTS] Add data fixtures, which populate the database with users used for testing 2021-09-14 13:12:59 +01:00
Hugo Sales ec1081ed43
[UTIL] Rename and rewrite isTaken to checkTaken 2021-09-14 13:12:59 +01:00
Hugo Sales bd249b508b
[ENTITY] Add 'normalized_nickname' to GSActor, the result of Nickname::normalize, so we can make sure we don't have very similar nicknames duplicated 2021-09-14 13:12:59 +01:00
Hugo Sales f2727f9327
[DEPENDENCIES] Add doctrine/doctrine-fixtures-bundle, which allows populating the database in the testing environment 2021-09-14 13:12:59 +01:00
Hugo Sales d2020eb7d8
[TOOLS][TESTS] Adjust configuration for testing environment 2021-09-14 13:12:59 +01:00
Hugo Sales a49ee453ab
[TESTS] Raise App\Util\HTML test coverage to 100% 2021-09-14 13:12:58 +01:00
Hugo Sales fbea08ca9b
[TESTS] Raise App\Util\Bitmap test coverage to 100% 2021-09-14 13:12:58 +01:00
Hugo Sales abda73b8e3
[TESTS] Raise App\Util\Common test coverage to 100% 2021-09-14 13:12:58 +01:00
Hugo Sales 3fab198c04
[ENTITY] Add uniqueness constraint to Attachment::file_hash 2021-09-14 13:12:58 +01:00
Hugo Sales 4f936108a1
[ATTACHMENTS] Don't store an attachment if it's a dupplicate, reuse it 2021-09-14 13:12:58 +01:00
Hugo Sales 2b83a4b627
[UTILS][TemporaryFile] Change way TemporaryFile takes arguments and it's internal implementation 2021-09-14 13:12:58 +01:00
Hugo Sales 3b39046a38
[UTIL] Fix bugs found in App\Util\Formatting by tests 2021-09-14 13:12:58 +01:00
Hugo Sales 15a8f8ab7f
[TESTS] Add tests increasing coverage of App\Util\Formatting to 100% 2021-09-14 13:12:58 +01:00
Hugo Sales 5d326bd18e
[TESTS] Move testing container's DB and Redis to different ports, so it can be used at the same time as the regular containers 2021-09-14 13:12:58 +01:00
Hugo Sales ee97cc5b00
[TESTS] Add test container with Xdebug and allow for generation of coverage reports with 'make test' 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro 091f4b5194
[ATTACHMENTS] Do not create thumbnails for attachments with mimetype different from 'image|video' 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro 6a999b8237
[Embed] Do not create AttachmenThumbnail 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro b6d7d46719
[ENTITY] Fix entity->has to access private properties with closure bindTo 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro da3754efba
[CSS][Network] Minor fixes concerning attachment representation (centering and width) 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro 1e7d8cac9a
[ATTACHMENTS] Follow URL redirects and don't duplicate attachments 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro adb6680a01
[ATTACHMENTS] Respect config for smart crop 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro ab060332f0
[Posting] Don't sanitize on storage
We prefer to have the original input in database and sanitize on output when appropriate
2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro 8f43c8b405
[AUTOGENERATED] Update auto generated code 2021-09-14 13:12:57 +01:00
Diogo Peralta Cordeiro 4fcccb1d1c
[CORE][ImageEncoder] Add width and height back in attachment entity and allow for differently sized thumbs
The strategy adopted involves predicting the thumb size as we did in v2 before having vips resize
2021-09-14 13:12:56 +01:00
Diogo Peralta Cordeiro 1c9f807595
[Embed] Fix some bugs and change AttachmentEmbed::url to ::media_url 2021-09-14 13:12:56 +01:00
Diogo Peralta Cordeiro c9090e6cee
[ATTACHMENTS][GSFile] Rename ValidateAndStore functions 2021-09-14 13:12:56 +01:00
Diogo Peralta Cordeiro a3860e6257
[Embed] Local config 2021-09-14 13:12:56 +01:00
Diogo Peralta Cordeiro 186e31e20d
[DEPENDENCIES] Add ext-curl 2021-09-14 13:12:56 +01:00
Hugo Sales 6d31945401
[ATTACHMENTS] In sendFile, check that file exists or show a custom exception 2021-09-14 13:12:56 +01:00
Hugo Sales 38cf8f8efe
[ENTITY] Change foreign key definition to new format for cover and profile_color tables 2021-09-14 13:12:56 +01:00
Hugo Sales cfe842b487
[DOCUMENTATION] Add database diagram to developer documentation 2021-09-14 13:12:56 +01:00
Diogo Peralta Cordeiro 06b236374d
[CSS][Network] Improve attachment representation
Part of why we have thumbnails with a specific size is so that they are in the proper theme size
2021-09-14 13:12:56 +01:00
Diogo Peralta Cordeiro 612c809469
[CSS][Left] Vertical scroll on left menu when it doesn't fit the screen 2021-09-14 13:12:55 +01:00
Diogo Peralta Cordeiro 7a2f5e352b
[CSS][Network] Fix horizontal menu on smaller screens 2021-09-14 13:12:55 +01:00
Diogo Peralta Cordeiro 837f644458
[UTIL][Formatting] Add twigRenderFile 2021-09-14 13:12:55 +01:00
Hugo Sales e9a96f1c9b
[DOCUMENTATION] Add high level code walkthrough to developer docs 2021-09-14 13:12:55 +01:00
Hugo Sales 353595eb97
[Posting] Add missing default visibility option 2021-09-14 13:12:55 +01:00
Hugo Sales 5067bcd074
[ImageEncoder][FileQuota] Move quota enforcement to it's own plugin, so it can be easily shared and disabled 2021-09-14 13:12:55 +01:00
Diogo Peralta Cordeiro 5bd16a509e
[TEMPLATES] Fix identation 2021-09-14 13:12:55 +01:00
Diogo Peralta Cordeiro 8cb64ede7f
[AttachmentShowRelated] Move Attachment related to plugin 2021-09-14 13:12:55 +01:00
Diogo Peralta Cordeiro 29a215534d
[SECURITY] We can't really show a stream for this, was a nice concept, but not properly doable without requiring JS 2021-09-14 13:12:55 +01:00
Hugo Sales d11615ded6
[Avatar][Embed] Change use of TemporaryFile::getPath to getRealPath 2021-09-14 13:12:55 +01:00
Hugo Sales aad4bddedd
[ImageEncoder] Implement attachment validation for images. This limits the maximum dimensions of the file, enforces a per file, per user and per user-month size quota and fixes the title if it's a filename, by replacing the extension to the new one 2021-09-14 13:12:54 +01:00
Hugo Sales 7509913fcf
[ENTITY] Add field size to attachments, used for quota calculations 2021-09-14 13:12:54 +01:00
Hugo Sales 29457ef50d
[UTIL] Add option for setting a file suffix on TemporaryFile constructor and add missing TemporaryFileException 2021-09-14 13:12:54 +01:00
Hugo Sales a165e533bb
[CONFIG] Add attachments/max_{width,height} config option, which is used as maximum dimensions when validating attachments 2021-09-14 13:12:54 +01:00
Hugo Sales 8ad8546aab
[DEPENDENCIES] Add oroinc/doctrine-extensions, which provides cross database platform date functions 2021-09-14 13:12:54 +01:00
Diogo Peralta Cordeiro a0b820fd76
[CSS] Refactor Right Panel style 2021-09-14 13:12:54 +01:00
Diogo Peralta Cordeiro 2d8d8ffb48
[TEMPLATES] Add dynamic blocks to right panel 2021-09-14 13:12:54 +01:00
Diogo Peralta Cordeiro 4bd081ad27
[CSS] Fix invisible checkboxes 2021-09-14 13:12:54 +01:00
Diogo Peralta Cordeiro 110c2572a4
[TEMPLATES] Minor refactoring, extending left was weird 2021-09-14 13:12:54 +01:00
Hugo Sales e9b2b18093
[Avatar] Implement avatar deletion 2021-09-14 13:12:53 +01:00
Hugo Sales 2ec7059076
[AVATAR] Move avatar settings page to Avatar component 2021-09-14 13:12:53 +01:00
Hugo Sales ced610d942
[Embed] Use Formatting utilities rather than substr and such 2021-09-14 13:12:53 +01:00
Diogo Peralta Cordeiro 9008bee558
[Embed] Add docblock to handle function to pass pre-commit hook 2021-09-14 13:12:53 +01:00
Diogo Peralta Cordeiro 88e5cec8fc
[ENTITY][GSActor] Fix getAvatarUrl method 2021-09-14 13:12:53 +01:00
Diogo Peralta Cordeiro cbd383f92d
[RIGHT] Introduce component abstraction 2021-09-14 13:12:53 +01:00
Diogo Peralta Cordeiro 143b2460e9
[VIEWS] Minor proofreading of templates and css 2021-09-14 13:12:53 +01:00
Hugo Sales aea8639d44
[ATTACHMENTS] Restrict thumbnail generation to allowed sizes. Defaults to only configured sizes, but can be extended with the event 'GetAllowedThumbnailSizes'. The intention is to prevent DoS attacks, since handling a thumbnail request is a relatively slow process 2021-09-14 13:12:53 +01:00
Hugo Sales 4f6f1941da
[UI] Fix 'hide_attachments is not defined' error 2021-09-14 13:12:53 +01:00
Hugo Sales 436528172c
[ATTACHMENTS] Add controller and templates for the attachment show page, which shows extra info about an attachment, such as related notes and tags 2021-09-14 13:12:53 +01:00
Hugo Sales be91fb754d
[CORE] Typo in GSFile and slight Twig weirdness in base template 2021-09-14 13:12:52 +01:00
Hugo Sales b1e514832b
[Embed][ENTITY] Fix embed route and use attachment_view rather than _show. Rename Entity::have to Entity::has, because grammar 2021-09-14 13:12:52 +01:00
Hugo Sales 30107de079
[Embed] Fix plugin. Only attempt to show an image, if we have one 2021-09-14 13:12:52 +01:00
Hugo Sales 2adb3c3521
[ATTACHMENTS] Add event 'AttachmentFileInfo' to allow a plugin to override the file displayed 2021-09-14 13:12:52 +01:00
Hugo Sales 708a910870
[UTIL] Fix remove affix utilities, so they only try to remove an affix if the string starts/ends with it 2021-09-14 13:12:52 +01:00
Hugo Sales 8988d89192
[CONFIG] Add attachment related parameters to default config 2021-09-14 13:12:52 +01:00
Hugo Sales a7ef2babe6
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:12:52 +01:00
Hugo Sales ece3c11e1b
[DB] Fix error in config/services.yaml where the wrong namespace was used for the UpdateListener 2021-09-14 13:12:52 +01:00
Hugo Sales fb220e82ed
[TOOLS] Use \DateTimeInterface rather than DateTimeInterface 2021-09-14 13:12:52 +01:00
Hugo Sales bb1ba11fcf
[AUTOGENERATED] Run bin/generate_entity_fields for the Embed plugin 2021-09-14 13:12:51 +01:00
Hugo Sales 4cd152f640
[Embed] Review and port v2 code 2021-09-14 13:12:51 +01:00
Hugo Sales 7adc198a52
[ENTITY] Add meta method 'have*' to Entity base class, which checks if a field 'isset' 2021-09-14 13:12:51 +01:00
Hugo Sales 34059a8d3d
[ATTACHMENTS][EVENT] Add onHashFile event, which can be used to deduplicate files
Currently, we simply hash the contents of the file with sha256, but in the future we can use something smarter,
which could find visual feature similarity between images
2021-09-14 13:12:51 +01:00
Hugo Sales 60a9085e56
[FORMATTING] Add utilities to remove affixes from strings 2021-09-14 13:12:51 +01:00
Hugo Sales b647e31495
[DEPENDENCIES] Add 'embed/embed', 'nyholm/psr7' and 'symfony/dom-crawler' 2021-09-14 13:12:51 +01:00
Hugo Sales 9a7f1358c2
[ENTITY] Add utils to Attachment and AttachmentThumbnail to get the corresponding URL and html representation parameters 2021-09-14 13:12:51 +01:00
Hugo Sales 2a74dced22
[UTIL] Add TemporaryFile class, courtesy of Alexei Sorokin from v2, a class that ensures files stored in /tmp are removed, as it doesn't happen in some cases 2021-09-14 13:12:51 +01:00
Hugo Sales 7dab063a72
[PLUGINS] Remove scripts. These will need to be implemented with Commands 2021-09-14 13:12:48 +01:00
Hugo Sales 3d8c348cb8
[Emebed] Add Embed plugin and initial cleanup 2021-09-14 13:12:24 +01:00
Hugo Sales 2d91095260
[UI] Use event 'ShowAttachment' to permit plugins like Embed to alter the representation 2021-09-14 13:12:23 +01:00
Hugo Sales 94edad43d9
[UTIL] Add method to validate url 2021-09-14 13:12:23 +01:00
Hugo Sales 5c78def973
[HTTPClient] Add utility functions for all HTTP methods 2021-09-14 13:12:23 +01:00
Hugo Sales 1b8f5b7bf0
[DB] Make DB::findOneBy throw a different exception if two values are found 2021-09-14 13:12:23 +01:00
Hugo Sales e94df546c3
[Posting] Extract and store URLs from note content. Introduce 'AttachmentStoreNew' event 2021-09-14 13:12:23 +01:00
Hugo Sales ae0e410986
[TESTS] Fix Nickname test 2021-09-14 13:12:23 +01:00
Hugo Sales 8dff0b1d0c
[Favourite] Make twig event operate on array rather than string 2021-09-14 13:12:23 +01:00
Hugo Sales 7a90e844b7
[SECURITY][DB] Make user register 'atomic', by using a single transaction for inserting all objects, to avoid partial inserts 2021-09-14 13:12:23 +01:00
Hugo Sales 77655c1248
[TESTS] Fix wrong namespace in tests 2021-09-14 13:12:23 +01:00
Hugo Sales aeabf64051
[PLUGIN] Change base class from Module to Plugin for all plugins 2021-09-14 13:12:23 +01:00
Hugo Sales a66118aee7
[AVATAR] Display avatar rounded 2021-09-14 13:12:22 +01:00
Diogo Peralta Cordeiro 3afa872cec
[UI] Use thumbnail path for thumbs 2021-09-14 13:12:22 +01:00
Hugo Sales e1995f44ce
[ATTACHMENTS] Move thumbnail controller to core and cleanup 2021-09-14 13:12:22 +01:00
Hugo Sales 3a7e92ed01
[ImageEncoder] Change preferred type to always be WEBP 2021-09-14 13:12:22 +01:00
Hugo Sales 1b1b3007db
[AVATAR] Display avatar as round on the default theme 2021-09-14 13:12:22 +01:00
Hugo Sales e6c6e7afd7
[AVATAR] Fix JS cropping script and save square image, in case other themes need it 2021-09-14 13:12:22 +01:00
Hugo Sales d2bb5bba14
[ImageEncoder] Move DB::persist call to AttachmentThumbnail 2021-09-14 13:12:22 +01:00
Hugo Sales 0c8c5a4b87
[ImageEncoder] Fix error when not providing a width and/or height 2021-09-14 13:12:22 +01:00
Diogo Peralta Cordeiro e385a9ac29
[ATTACHMENTS] Even more further refactoring
Introduce Encoder plugins Instead of abstract upload and thumb modules

Ported attachment routes. In v3 thumbnail depends on existing attachment
so route updated accordingly.
2021-09-14 13:12:18 +01:00
Diogo Peralta Cordeiro 0eaccc32fe
[ATTACHMENTS] Further refactoring
Some key points:
- Components and Plugins shouldn't extend Module directly
- Avatars should be fetched via GSActor ID, not by nickname as that isn't unique
- Avatar now is a separate Component
- Common file utilities are now to be placed in Core\GSFile, this will
  handle storage and trigger validation
- Some bug fixes
2021-09-14 13:11:51 +01:00
Hugo Sales cdef6858ce
[ENTITY] Cache AttachmentThumbnail query result 2021-09-14 13:11:51 +01:00
Hugo Sales 65999bd183
[Poll] Move tables from core to plugin 2021-09-14 13:11:51 +01:00
Hugo Sales 716ca063d5
[ImageThumbnail] Finish image thumbnailing functionality 2021-09-14 13:11:51 +01:00
Hugo Sales 19850b5e0d
[DB] Fix bug in custom criteria format wrangling 2021-09-14 13:11:51 +01:00
Hugo Sales e834ac2c8d
[DEPENDENCIES] Add php-vips 2021-09-14 13:11:51 +01:00
Hugo Sales 1d6d20aacb
[TOOLS] In pre-commit hook, only run php-doc-check if some PHP file changed 2021-09-14 13:11:51 +01:00
Hugo Sales 081b0de919
[DOCKER] Add VIPS PHP extension to Docker build 2021-09-14 13:11:51 +01:00
Hugo Sales 4358656c55
[ImageThumbnail] Implement image resizing with Intervention/Image 2021-09-14 13:11:50 +01:00
Hugo Sales ee87961d96
[ImageThumbnail] Structure of plugin to generate thumbnails for image attachments 2021-09-14 13:11:50 +01:00
Hugo Sales 7284c833a6
[DB] Allow DQL queries with table name rather than entity 2021-09-14 13:11:50 +01:00
Hugo Sales 0d01f1d060
[CORE] Add functionality to App\Core\Controller to get and validate GET parameters 2021-09-14 13:11:50 +01:00
Hugo Sales c053e8da8e
[Posting] Rename file to attachment and cache result of actor tag query 2021-09-14 13:11:50 +01:00
Hugo Sales 5579f4fa5d
[MEDIA] Rename File to Attachment 2021-09-14 13:11:50 +01:00
Hugo Sales dc5bdfa1fb
[CORE] Rename NoteScope to VisibilityScope, as it will be used for attachment visbility too 2021-09-14 13:11:50 +01:00
Hugo Sales 9659762726
[DB] Add table map which allows using table names rather than entities in Doctrine operations 2021-09-14 13:11:50 +01:00
Hugo Sales c44443b52c
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:11:50 +01:00
Hugo Sales 483ac38888
[Directory] Fixup directory plugin 2021-09-14 13:11:49 +01:00
Diogo Peralta Cordeiro cc9f2d6ff2
[DOCUMENTATION] Three books instead of only one
The User one is intended to illustrate the various common use cases, possibilities regarding customization and introduce the existing functionalities.

The Administrator one explains the step by step of how to install and maintain a GNU social instance, be it as node of The Free Network or as an intranet social network in a company setting.

The Developer one starts by introducing the Modules system and architecture, then the plugin development process and finally the exciting internals of GNU social for those looking forward to make the most advanced contributions.
2021-09-14 13:11:49 +01:00
Diogo Peralta Cordeiro e7ed325ac6
[MEDIA] Refactor File as Attachment 2021-09-14 13:11:49 +01:00
Hugo Sales 566c7694b5
[CONFIG][TWIG] Move twig config to php code to add support for placing templates in modules (plugins and components) 2021-09-14 13:11:49 +01:00
Hugo Sales a220d07b0f
[Directory] Move templates from core to plugin 2021-09-14 13:11:49 +01:00
Hugo Sales ed59cce0f9
[COMPOSER][Media] Add example composer.json in plugins/Media 2021-09-14 13:11:49 +01:00
Hugo Sales 299bc5b551
[TWIG] Add way to launch events from TWIG, capture service and add way to render from a string 2021-09-14 13:11:49 +01:00
Hugo Sales 1b7c48c732
[LEFT][EVENT] Add event allowing plugins to add links to the left panel 2021-09-14 13:11:49 +01:00
Hugo Sales 8e56dbb95c
[Favourite] Move table and left panel links to plugin 2021-09-14 13:11:49 +01:00
Hugo Sales 5f4815b12f
[DEPENDENCIES] Add wikimedia/composer-merge-plugin 2021-09-14 13:11:48 +01:00
Hugo Sales 1687ecaa24
[FAVOURITE] Temporary commit to fix exception in timeline 2021-09-14 13:11:48 +01:00
Hugo Sales 974bbe164e
[Favourite] Move controller to plugin 2021-09-14 13:11:48 +01:00
Hugo Sales 00d71e7035
Rename FFmpeg to VideoThumbnail FIXME 2021-09-14 13:11:48 +01:00
Diogo Peralta Cordeiro ccf3aa990a
[MODULES] Introduce the concept of abstract modules to V3
Introduce placeholder for abstract upload and thumb modules
Temporarily supress some bugs
2021-09-14 13:11:45 +01:00
Hugo Sales 539f1861a6
[NETWORK] Fix big brain bug 2021-09-14 13:10:55 +01:00
Hugo Sales ea802621aa
[ENTITY] Remove extraneous File_thumbnail.php file 2021-09-14 13:10:55 +01:00
Diogo Peralta Cordeiro 55b06705d5
[SCRIPTS] pre-commit now has variables double quoted 2021-09-14 13:10:55 +01:00
Diogo Peralta Cordeiro 9997b231d4
[INSTALL] Elaborate on localhost installation 2021-09-14 13:10:54 +01:00
Hugo Sales f8199159c3
[FFmpeg] Copy FFmpeg plugin from v2 2021-09-14 13:10:54 +01:00
Hugo Sales 155f30e816
[TOOLS] Fix missing exported variable in bin/configure 2021-09-14 13:10:54 +01:00
Hugo Sales 3b901745d5
[Embed][StoreRemoteMedia][Media] Copy and cleanup plugins from v2 2021-09-14 13:10:54 +01:00
Hugo Sales fe478c6104
[Media] Copy media subsystem from v2 and roughly structure it for v3 2021-09-14 13:10:54 +01:00
Hugo Sales a38ee03f18
[TOOLS][DOCKER] Make sure composer doesn't require interaction when installing 2021-09-14 13:10:54 +01:00
Hugo Sales ad67358c3b
[ActivityPub] Remove ActivityPub plugin until we're ready to work on it, as it needs significant work 2021-09-14 13:10:51 +01:00
Hugo Sales e2e561e663
[DB][FKEY] Temporarily disable foreign key mapping, as there seems to be a bug in doctrine, which is under investigation 2021-09-14 13:10:23 +01:00
Hugo Sales faa362e2e2
[DB] Remove unique constraint from GSActor.nickname and fix register and related functionality 2021-09-14 13:10:23 +01:00
Hugo Sales 68de1b09b1
[NICKNAME] Don't throw when normalizing reserved nicknames 2021-09-14 13:10:23 +01:00
Hugo Sales 78548365da
[WEB] Fix translations and small inconsistency when opening on web 2021-09-14 13:10:23 +01:00
Hugo Sales 8b5bd40421
[TESTS] Add tests to all relevant methods under App\Util and fix errors that popup 2021-09-14 13:10:23 +01:00
Hugo Sales 57dad5eca4
[NICKNAME] Add nickname min length config and check it in Nickname::normalize 2021-09-14 13:10:23 +01:00
Hugo Sales 92d0848280
[DEPENDENCIES] Add jchook/phpunit-assert-throws and update dependencies 2021-09-14 13:10:23 +01:00
Hugo Sales 5afd2c9843
Duplicate src/Util/Exception/NicknameTooLongException.php history in src/Util/Exception/NicknameTooShortException.php history. 2021-09-14 13:10:23 +01:00
Hugo Sales dc2a453e94
[TESTS] Add tests of Common and fix small oddities that pop up 2021-09-14 13:10:22 +01:00
Hugo Sales b387ea9aa0
[TESTS] Fix error when testing cold redis cache 2021-09-14 13:10:22 +01:00
Hugo Sales 88e4044d02
[TESTS] Add tests for the bitmap utility and fix implementation 2021-09-14 13:10:22 +01:00
Hugo Sales 8d25859de7
[LOG] Only try to log if setup, so logs can be disabled, in tests, for instance 2021-09-14 13:10:22 +01:00
Hugo Sales 7e648a296f
CACHE] Fix cache implementation with the help of tests and remove premature optimization for non-redis list caching
This complicated the code significantly and likely didn't help that much, if at all. The recommended setup is using Redis, anyway, which is plenty optimized
2021-09-14 13:10:22 +01:00
Hugo Sales c539f17ba5
[TESTS] Add App\Core\Cache test 2021-09-14 13:10:22 +01:00
Hugo Sales 121faccb22
[DEPENDENCIES] Update dependencies, including redis-polyfill, to be able to implement a test 2021-09-14 13:10:22 +01:00
Hugo Sales eb951b49bf
[TESTS] Update PHPUnit configuration and upgrade to version 9.5 2021-09-14 13:10:22 +01:00
Hugo Sales ff771223af
[DOCKER][TOOLS] Add option to bin/configure to use a prebuilt PHP container (https://hub.docker.com/repository/docker/gsocial/php) 2021-09-14 13:10:22 +01:00
Hugo Sales c8b2a7a2e0
[TESTS] Fix deprecations 2021-09-14 13:10:21 +01:00
Hugo Sales ec9a9cec13
[DOCKER] Fix default docker-compose file 2021-09-14 13:10:21 +01:00
Hugo Sales 1028f05cd8
[TESTS] Fix unkept unit tests 2021-09-14 13:10:21 +01:00
Hugo Sales 2d70f484f2
[TEST] Fix translation test 2021-09-14 13:10:21 +01:00
Hugo Sales f5a6e2f047
[DEPENDENCIES] Upgrade to Symfony 5.2 to get my upstream ICU translation feature 2021-09-14 13:10:21 +01:00
Hugo Sales 3b897abddb
[DOCUMENTATION] Add documentation on installing without docker and other topics 2021-09-14 13:10:21 +01:00
Hugo Sales 12347af6bc
[DOCUMENTATION] Add documentation on installing with Docker 2021-09-14 13:10:21 +01:00
Hugo Sales c66801a5c4
[DOCTRINE][CONFIGURATION] Add new required Doctrine DBAL parameter, for testing environments 2021-09-14 13:10:21 +01:00
Hugo Sales 03a0df987e
[DEPENDENCIES] Update all dependencies 2021-09-14 13:10:21 +01:00
Hugo Sales 2174f288d1
[DB] Fix Doctrine errors due to lack of column uniqueness
So, Doctrine doesn't like that `GSActorTag.tag` is not unique, even
though composite key `[tagger, tag]` is. `tag` can't unique, but
doctrine doesn't understand this. This seems like a Doctrine bug that
should be investigated. For now we'll just not mark it as a foreign
key
2021-09-14 13:10:20 +01:00
Hugo Sales 2e490756b9
[DOCKER][MAIL] Temporarily disable mail container 2021-09-14 13:10:20 +01:00
Hugo Sales 1773ab7af2
[DOCKER][MAIL] Update config and change the way mail docker handles it, so the edits aren't visible from the outside, polluting the git staging area 2021-09-14 13:10:20 +01:00
Hugo Sales b3623329e3
[DOKER][MAIL][BOOTSTRAP] Make bootstrap generate separate certificates for the web root and the mail server 2021-09-14 13:10:20 +01:00
Hugo Sales b824a0425e
[DOCKER] Remove quotes from docker env files, as docker (or at least docker-compose) include them in the actual value 2021-09-14 13:10:20 +01:00
Hugo Sales c894a4faa4
[DB] Make Note.source reference NoteSource.code, the primary key 2021-09-14 13:10:20 +01:00
Hugo Sales a4a1a21403
[DOCKER] Rename docker-compose.yaml, so there can still be a default one on the repo, while the previous name can be used by the configurator without having problems with git 2021-09-14 13:10:20 +01:00
Hugo Sales 0e9737ee39
[TOOLS][DOCKER] Rewrite the configuration script to use whiptail/dialog, and refactor 2021-09-14 13:10:20 +01:00
Angelo D. Moura 8a48236d2d
[UI][NOTE][MARKDOWN] Add markdown support to the notes 2021-09-14 13:10:20 +01:00
up201706832 8cc0360298
[REPLY] Fixed CSS for reply form, making it now usable 2021-09-14 13:10:19 +01:00
up201706832 f9443f1e87
[AUTH][REMEMBER-ME] Changed name of column in rememberme_token database table to fix bug 2021-09-14 13:10:19 +01:00
Daniel 15454cab7f
[ProfileColor] Added profile color css 2021-09-14 13:10:19 +01:00
Daniel d17582094d
[ProfileColor] Visualize profile color 2021-09-14 13:10:19 +01:00
Daniel afae038cff
[ProfileColor] Added Profile Color entity, color form and db store/load to color settings controler 2021-09-14 13:10:19 +01:00
Daniel 20a5005e1d
[ProfileColor] Added plugin base, controller and settings template 2021-09-14 13:10:19 +01:00
Daniel 746bf70e7d
[REVERSEFAV] Added css to make Reverse favs label in one line 2021-09-14 13:10:19 +01:00
Daniel ec85b5b96b
[REVERSEFAV] Fixed typo 2021-09-14 13:10:19 +01:00
Daniel f04923405f
[REVERSEFAV] Added reverse favorourites stream/template 2021-09-14 13:10:19 +01:00
João Brandão 5516a77b33
[UI][TIMELINES] Refactored query for public stream 2021-09-14 13:10:19 +01:00
Daniel c36436c1a1
[UI][TIMELINES] Fix undefined main_nav_tabs in logged out view 2021-09-14 13:10:18 +01:00
Angelo D. Moura 98145f4f1a
[Directory] Actors stream now includes a link to groups stream 2021-09-14 13:10:18 +01:00
Angelo D. Moura d4c0f33be4
[Directory] Lint fix - missed a coma 2021-09-14 13:10:18 +01:00
Angelo D. Moura 77d7fcc138
[Directory] Finished implementing groups stream as a plugin 2021-09-14 13:10:18 +01:00
Angelo D. Moura fe170ff508
[Directory] Finished implementing groups stream using Directory plugin 2021-09-14 13:10:18 +01:00
Angelo D. Moura 098fdb3361
[Directory] Changed the route so the plugin Directory doesn't take over - query is not working for some reason 2021-09-14 13:10:18 +01:00
Angelo D. Moura eb1ef4dd0f
[Directory] Added the route, controller and a blank template file - something is broken 2021-09-14 13:10:18 +01:00
Angelo D. Moura 4f85efa071
[Directory] Actors are now organized by nickname 2021-09-14 13:10:18 +01:00
Angelo D. Moura 505e60d89f
[Directory] Actors are no longer related with notes, and the logged in user now shows on the stream 2021-09-14 13:10:18 +01:00
Angelo D. Moura 2d91f3d0b3
[Directory] Changed the title of the template and add a css rule for actor-bio 2021-09-14 13:10:17 +01:00
Angelo D. Moura 0c5941f515
[Directory] Almost finishied creating the /actors stream - problems with the css files 2021-09-14 13:10:17 +01:00
Angelo D. Moura 517cba3510
[Directory] Add the route, controller function, and blank template file 2021-09-14 13:10:17 +01:00
Daniel 0289888397
[Directory] Add documentation 2021-09-14 13:10:17 +01:00
Daniel 019e3d91e4
[Directory] Moved /actors stream to directory plugin 2021-09-14 13:10:17 +01:00
Daniel 6c1b1323a0
[Cover] Remove of cover form 2021-09-14 13:10:17 +01:00
Daniel b79c8b092d
[Cover] Added cover route verifications 2021-09-14 13:10:17 +01:00
Daniel 4eafcd5058
[Cover] Removed commented code 2021-09-14 13:10:17 +01:00
Daniel fdc2bc39d0
[Cover] Input restrictions, Code cleanup 2021-09-14 13:10:17 +01:00
Daniel 4949abac9d
[Cover] Added cover css, changed cover settings route name 2021-09-14 13:10:16 +01:00
Daniel e2ce1a8070
[Cover] Added temporary css 2021-09-14 13:10:16 +01:00
Daniel aeec9149fc
[Cover] Cover route, cover now renders 2021-09-14 13:10:16 +01:00
Daniel cf8b3b7b73
[Cover] Added TWIG vars for profile plugins 2021-09-14 13:10:16 +01:00
Daniel 1cfe64cc25
[Cover] Added Cover Entity, updated form handler
Basically the same as the avatar
2021-09-14 13:10:16 +01:00
Daniel 7739518717
[Cover] Started implementing Cover plugin: base class, route, base templates, added tabs in profile template 2021-09-14 13:10:16 +01:00
Diogo Machado f18a2a4bb6
[STATIC ANALYSIS] Started removal process for the errors found by PHPStan 2021-09-14 13:10:16 +01:00
Pastilhas f319ccea78
[DOCKER][MAIL] Fixed hash command
Also added permissions to start.sh
2021-09-14 13:10:16 +01:00
margarida f3c3d80892
[TOOLS][DOCKER] Add mail setup to configure 2021-09-14 13:10:16 +01:00
margarida c36259f7c1
[TOOLS][DOCKER] Changed script to write docker-compose.yaml 2021-09-14 13:10:15 +01:00
margarida 6cb6eeb8a3
[TOOLS][DOCKER] Change dialog method to command substitution and redirection and add way of finding git's root 2021-09-14 13:10:15 +01:00
margarida a8d211cdbf
[TOOLS][DOCKER] Added input verfication 2021-09-14 13:10:15 +01:00
margarida 152d173e69
[TOOLS][DOCKER] Added first version of configuration shell script 2021-09-14 13:10:15 +01:00
João Brandão 85666b195b
[UI] Visual restructure of login/register pages 2021-09-14 13:10:15 +01:00
João Brandão 7c7a03cfe1
[UI] Show public stream on login/register pages 2021-09-14 13:10:15 +01:00
up201706832 9351039a3b
[UI] Extracted public stream on login/register pages to a twig template 2021-09-14 13:10:15 +01:00
João Brandão ac480e5018
[UI] Visual restructure of login/register pages 2021-09-14 13:10:15 +01:00
Pastilhas 5b088dabc2
[DOCKER][MAIL] Fixed variable expansion in run 2021-09-14 13:10:15 +01:00
Pastilhas d291a8dae5
[DOCKER][MAIL] Cleanup opendkim.conf
Also improved consistency in other files
2021-09-14 13:10:14 +01:00
Pastilhas 67483e415c
[DOCKER][MAIL] Removed unsued files, modified dovecot.conf 2021-09-14 13:10:14 +01:00
Pastilhas 19ed10078f
[DOCKER][MAIL] User is now created on setup and Dockerfile
Continuation of previous commit
2021-09-14 13:10:14 +01:00
Pastilhas 2c3599721e
[DOCKER][MAIL] Removed unused config files and scripts
Now user is created on setup and dockerfile
2021-09-14 13:10:14 +01:00
Pastilhas 0518bc2c6b
[DOCKER][MAIL] Substituted supervisord for s6 2021-09-14 13:10:14 +01:00
Pastilhas def5e06a28
[DOCKER][MAIL] Moved and modified `setup.sh` 2021-09-14 13:10:14 +01:00
Pastilhas 93939d8b25
[DOCKER][MAIL] Switched named volume to shared volume and changed env vars to env file 2021-09-14 13:10:14 +01:00
Pastilhas 0137a68ccb
[DOCKER][MAIL] Improved exec.sh 2021-09-14 13:10:14 +01:00
Pastilhas cea170ed18
[DOCKER][MAIL] Fixed small bug with ssl certificates 2021-09-14 13:10:14 +01:00
Pastilhas 11dbbef351
[DOCKER][MAIL] Fixed small bugs in config and scripts 2021-09-14 13:10:14 +01:00
Pastilhas c2e6e3706f
[DOCKER][MAIL] New config files 2021-09-14 13:10:13 +01:00
Pastilhas 419a2ceb1a
[DOCKER][MAIL] Fused services into single container 2021-09-14 13:10:13 +01:00
Pastilhas 86a95def01
[DOCKER][MAIL] Changed directory path 2021-09-14 13:10:13 +01:00
Pastilhas bc1d85de56
[DOCKER][MAIL] Setup docker mail server 2021-09-14 13:10:13 +01:00
Pastilhas 250235b1be
[DOCKER][MAIL] Added docker mailserver setup 2021-09-14 13:10:13 +01:00
Daniel 1747e14824
[Poll] Removed/refactored unnecessary files, changed redirect to default parameters in new poll route 2021-09-14 13:10:13 +01:00
Daniel c0d363e317
[Poll] Restructured templates, added misssing poll related css 2021-09-14 13:10:13 +01:00
Daniel 7a299162e1
[Poll] Polls now have an associated note, poll templates, start_show_styles event, started css 2021-09-14 13:10:13 +01:00
Daniel 090c593a61
[Poll] Started testing with note integration 2021-09-14 13:10:13 +01:00
Daniel 50ec306243
[Poll] Added file headers 2021-09-14 13:10:12 +01:00
Daniel ffb4b9df23
[Poll] Added modified param for Poll/Poll response, added PollTest 2021-09-14 13:10:12 +01:00
Daniel f34fb9c7b9
[Poll] Added variable num of options
not sure if it is the right way to do it
2021-09-14 13:10:12 +01:00
Daniel cdbf7da8be
[Poll] Added templates, response counting 2021-09-14 13:10:12 +01:00
Daniel 27a0c43f7b
[Poll] Store poll response to DB 2021-09-14 13:10:12 +01:00
Daniel 3725818e4f
[Poll] Added New Route, RespondPoll, Poll Response, PollResponseForm 2021-09-14 13:10:12 +01:00
Daniel dbb55362c8
[Poll] Fixed ShowPoll route, moved Poll Entity, created NewPollForm
Entity was temporarily moved to src/Entity in order to load from DB, since it is yet no possible to do that from Plugin
2021-09-14 13:10:12 +01:00
Daniel 03f02bed4d
[AUTOGENERATED][Poll] Add auto generated code for poll entity and new route 2021-09-14 13:10:12 +01:00
Daniel 5978a069e9
[Poll] Started porting Poll Plugin 2021-09-14 13:10:12 +01:00
margarida c26ee45bf3
[TOOLS][DOCKER] Added input verfication 2021-09-14 13:10:11 +01:00
margarida 987d29a674
[TOOLS][DOCKER] Added first version of configuration shell script 2021-09-14 13:10:11 +01:00
Daniel 95f95d2dd8
[TESTS] Added unit tests 2021-09-14 13:10:08 +01:00
Angelo D. Moura d53fef09a8
[TWIG] Moves the SVG custom function to an extension and change the test regex 2021-09-14 13:06:58 +01:00
Angelo D. Moura d2208d15d8
[TWIG][TESTS] Update IconsExtension test 2021-09-14 13:06:58 +01:00
Angelo D. Moura 5acfda8ae5
[TWIG] Add SVG icon embed function 2021-09-14 13:06:58 +01:00
Diogo Machado fbc85086fd
[DB][TESTS] Implement Doctrine event listener to update timestamps on modification, and related tests 2021-09-14 13:06:58 +01:00
Daniel c3aa2ae400
[FORM] Implement ActorArrayTransformer 2021-09-14 13:06:57 +01:00
Hugo Sales 279cfcd058
[PLUGIN][Favourite] Move favourite table definition to inside the plugin, as it is now supported 2021-09-14 13:06:57 +01:00
Hugo Sales 417e2f351b
[SchemaDef] Finish association mapping implementation 2021-09-14 13:06:57 +01:00
Hugo Sales 1d42c7a835
[DB][NoteLocation] Add missing `multiplicity` to column 2021-09-14 13:06:57 +01:00
Hugo Sales 4e4d4dfdc5
[DB] Fix typo in table definitions and fix name of GSActorCircle table 2021-09-14 13:06:57 +01:00
Hugo Sales 481027b09b
[AUTOGENERATED][DB][File][GroupJoinQueue] Update autogenerated code and add select fields as specified in the previous commit 2021-09-14 13:06:57 +01:00
Hugo Sales 1712782cc5
[DB] Change foreign key specification to new format 2021-09-14 13:06:57 +01:00
Hugo Sales ea0aca4b00
[SCHEMADEF] Add preliminary support for foreign keys 2021-09-14 13:06:57 +01:00
Hugo Sales 9cd5560081
[DOCKER] Bump to PHP version 8 2021-09-14 13:06:57 +01:00
Hugo Sales e2e53d9a2a
[AUTOGENERATED] Update auto generated code in entities 2021-09-14 13:06:56 +01:00
Hugo Sales b27bda6a7c
[TOOLS] Use GSActor rather than Gsactor in autogenerated code 2021-09-14 13:06:56 +01:00
Hugo Sales 460712e15e
[GIT] Change my email to the new one in all files and bump copyright year 2021-09-14 13:06:56 +01:00
Hugo Sales f95f69c778
Add some missing documentation to ActivityPub 2021-09-14 13:06:56 +01:00
Hugo Sales 74e586182d
[DB] Merge definition of SchemaDefDriver with SchemaDefPass for clarity 2021-09-14 13:06:56 +01:00
Hugo Sales fc015c6fdf
[NETWORK][TreeNotes] Add TreeNotes plugin which takes over the responsibility of displaying a conversation as a tree, in order to reduce the number of queries 2021-09-14 13:06:56 +01:00
Hugo Sales 5c53889739
[Reply] Fix bug where wrong variable is used when replying to a note 2021-09-14 13:06:56 +01:00
Hugo Sales ce3cae0ef7
[DEPENDENCIES] Update all dependencies 2021-09-14 13:06:56 +01:00
Hugo Sales eefdf74658
Ensure group table name is quoted, as it's a reserved word in postgreSQL 2021-09-14 13:06:56 +01:00
Hugo Sales ab252accb2
Small update to php dockerfile 2021-09-14 13:06:56 +01:00
Hugo Sales 411884bfc5
[DEPENDENCIES] Update dependencies 2021-09-14 13:06:55 +01:00
Diogo Peralta Cordeiro 1b946586e1
[DOCUMENTATION] Add mdBook stub 2021-09-14 13:06:55 +01:00
Hugo Sales ebfd41ba0d
[CONFIGURATION] Remove the individual language settings from social.yaml, as these are not something that changes at runtime 2021-09-14 13:06:55 +01:00
Hugo Sales 3301770642
[COMMAND] Change the way ListEventsCommand outputs the results to use the output interface and add some formatting 2021-09-14 13:06:55 +01:00
Hugo Sales e8feb2ae84
[DOCUMENTATION][REFACTOR] Add documentation to all flagged function and do some small cleanup 2021-09-14 13:06:55 +01:00
Hugo Sales 67d4702743
[HOOKS] Update pre-commit script to check for missing documentation in functions 2021-09-14 13:06:55 +01:00
Hugo Sales de8fa87079
[DEPENDENCIES] Update dependencies 2021-09-14 13:06:55 +01:00
Hugo Sales 8ce1c1cee6
[DEPENDENCIES] Update dependencies 2021-09-14 13:06:55 +01:00
Hugo Sales 1949e0b987
[EVENT] Rename event names to camel case to make finding handlers easier 2021-09-14 13:06:55 +01:00
Hugo Sales 0b759da780
[REGISTER] Add self follow when registering, fixing the '-1 followers' bug 2021-09-14 13:06:54 +01:00
Hugo Sales 089c710711
[SETTINGS][NOTIFICATIONS] Fix error when displaying the user notification settings page 2021-09-14 13:06:54 +01:00
Hugo Sales 221829c6fd
[Reply] Fix missing use statement 2021-09-14 13:06:54 +01:00
Hugo Sales be324bb390
[CONTROLLER] Fix use of undefined variable 2021-09-14 13:06:54 +01:00
Hugo Sales 74350becc5
[POSTING] Fix missing use statement 2021-09-14 13:06:54 +01:00
Tiago Magalhaes 61ebeca706
[CORE] made configure script explicitly fail when bootstrap.env is not present 2021-09-14 13:06:54 +01:00
Hugo Sales 44f51ce715
[CONFIG][CACHE] Move cache configuration from environment variables to the configuration file 2021-09-14 13:06:54 +01:00
Hugo Sales 6cf30f3f65
[UI] Make configured instance name show in UI, fix repeat icon 2021-09-14 13:06:54 +01:00
Hugo Sales e949dd654a
[CONFIG] Various fixes to use new configuration format 2021-09-14 13:06:54 +01:00
Hugo Sales c4c693b283
[CONFIG] Fix error on missing or empty local configuration 2021-09-14 13:06:53 +01:00
Hugo Sales dd40255c4a
[CONFIG][DB] Remove config from the database, put it in yaml, so it can be baked into the container 2021-09-14 13:06:53 +01:00
Hugo Sales d1ea9d2fdf
[DEPENDENCIES] Update dependencies 2021-09-14 13:06:53 +01:00
Hugo Sales ebb33cd6f7
[CSS][UI] Update CSS to fix reply note action (icon swap needed) and remove duplication 2021-09-14 13:06:53 +01:00
Hugo Sales 46f1cf9529
[CORE] Add missing use statement in module base class 2021-09-14 13:06:53 +01:00
Hugo Sales 179d7f3335
[UTILS] Make bitmap not use a static class var and set object properties as lowercase 2021-09-14 13:06:53 +01:00
Hugo Sales 147ff89e74
[NoteAction] Refactor duplicated code out to base class 2021-09-14 13:06:53 +01:00
Hugo Sales a6c24393b5
[NOTE] Add isVisibleTo 2021-09-14 13:06:53 +01:00
Hugo Sales 0c0b00da93
[Directory] Add missing use statement 2021-09-14 13:06:53 +01:00
Hugo Sales 29082f4aa9
POSTING remove REPLY route 2021-09-14 13:06:52 +01:00
Hugo Sales 63d2d58e9e
[EXCEPTION] Make findOne return NotFoundException 2021-09-14 13:06:52 +01:00
Hugo Sales c07a0cdcd5
[EXCEPTION] Add base class to invalid form exception and add URL arguments to redirect exception 2021-09-14 13:06:52 +01:00
Hugo Sales 0e332b718e
[SECURITY] Fix getRoles 2021-09-14 13:06:52 +01:00
Hugo Sales c0ce25c352
[MODULES] Fix module manager dev-mode rebuild 2021-09-14 13:06:52 +01:00
Hugo Sales 0a56061639
[UI] Only show note action buttons if a user is logged in 2021-09-14 13:06:52 +01:00
Hugo Sales 2164f21834
[Controller] Fix exception handler to recurse on the exception's previous (in some contexts, RedirectException gets wrapped) 2021-09-14 13:06:52 +01:00
Hugo Sales ffcf909bda
[UTIL] Update bitmap base class, making using easier 2021-09-14 13:06:52 +01:00
Hugo Sales a248f23cef
[Reply] Move reply functionality to a plugin 2021-09-14 13:06:52 +01:00
Hugo Sales 72208b066c
[NoteActions] Refactor note actions and fix bug in favourite 2021-09-14 13:06:51 +01:00
Hugo Sales 4c15271d36
[UI] Display error when submitted form is invalid 2021-09-14 13:06:51 +01:00
Hugo Sales 5fc7647c40
[MODULE][DB] Added support for loading entity definitions from modules 2021-09-14 13:06:51 +01:00
Hugo Sales 7de1654f9a
FIXUP WITH DOCTRINE DEV 2021-09-14 13:06:51 +01:00
Hugo Sales 41f90f07b1
[Bridge] Replace zero dates with CURRENT_TIMESTAMP 2021-09-14 13:06:51 +01:00
Hugo Sales 6a2a0d4e66
[TOOLS] Add support for updating autocode in modules 2021-09-14 13:06:51 +01:00
Hugo Sales cc758f6a8e
[AUTOGENERATED] Update autogenerated code in module entities 2021-09-14 13:06:51 +01:00
Hugo Sales a9b6bc78a6
[CONFIG][DEV][DOCTRINE] Add doctrine stacktrace tracking in dev mode 2021-09-14 13:06:51 +01:00
Hugo Sales b906dde059
[EXCEPTION][UI][UX] Add RedirectException, which can be thrown anywhere to redirect somewhere, and an exception handler 2021-09-14 13:06:51 +01:00
Hugo Sales 420b4767b2
[UI][NOTE] Add reply to in UI 2021-09-14 13:06:51 +01:00
Hugo Sales 9573cab4cb
[Posting] Fix form name and remove unused recycle route and controller 2021-09-14 13:06:50 +01:00
Hugo Sales 9865798766
[Media] Add cache control directive to all files served 2021-09-14 13:06:50 +01:00
Hugo Sales 6b1689e1df
[Repeat][Favourite] Only display action buttons if logged in (instead of forcing login) 2021-09-14 13:06:50 +01:00
Hugo Sales 7af424b64a
[DB] Add rendered collumn to note table, so we can preserve microtags from other services 2021-09-14 13:06:50 +01:00
Hugo Sales 460cbbd4c9
[DB] Fix local_user table to use a numeric id, since the username is editable 2021-09-14 13:06:50 +01:00
rainydaysavings a69c9a4f25
[TWIG] Improving view template structure 2021-09-14 13:06:50 +01:00
rainydaysavings 099c4220d2
[TWIG] Adding active rules 2021-09-14 13:06:50 +01:00
rainydaysavings 244aa4af08
[UI] CSS polish all around 2021-09-14 13:06:50 +01:00
rainydaysavings 492360ceeb
[CONTROLLER][ROUTE] Favourites page initial query implementation and routing 2021-09-14 13:06:50 +01:00
rainydaysavings 651ec890d6
[UI] Fixing Login CSS issues 2021-09-14 13:06:49 +01:00
Hugo Sales 55466143f2
[UI][FEED] Fix scope in timelines; major rewrite of home timeline query, still missing scoping and paging 2021-09-14 13:06:49 +01:00
Hugo Sales e1181ab998
[DB][DEFAULTS] Change attachment storage location from uploads to attachments 2021-09-14 13:06:49 +01:00
Hugo Sales 3b86a46625
[DB] Rename notice to activity in notification table 2021-09-14 13:06:49 +01:00
Hugo Sales 51a398f27a
[UI] Subtract self follow from total user follows 2021-09-14 13:06:49 +01:00
Hugo Sales 6e11143b79
[DB][NOTE] Update scope 2021-09-14 13:06:49 +01:00
Hugo Sales 6165f7cd55
[Media] Display images and videos inline in notes 2021-09-14 13:06:49 +01:00
rainydaysavings a9d5f8ac5b
[UI][TWIG] Fixing note actions placement and size, more descriptive rules 2021-09-14 13:06:49 +01:00
Hugo Sales 26f01c4c92
[Posting] Fix posting form name and css 2021-09-14 13:06:49 +01:00
Hugo Sales 07078414bb
[FORM] Add names to forms 2021-09-14 13:06:48 +01:00
Hugo Sales adc843c1d6
[DB] Add Activity table, to store all known activity 2021-09-14 13:06:48 +01:00
Hugo Sales d95c22cb3e
[EXCEPTION] Fix exceptions not being translated 2021-09-14 13:06:48 +01:00
Hugo Sales 80cefca90d
[DB] Add wrapper for making native queries 2021-09-14 13:06:48 +01:00
Hugo Sales a98af6ab6a
[Directory] Add directory plugin, for listing people and groups 2021-09-14 13:06:48 +01:00
Hugo Sales 6dbd239544
[Posting] Add missing includes 2021-09-14 13:06:48 +01:00
rainydaysavings 7cb13ee5e9
[UI] All radio buttons now look like they should 2021-09-14 13:06:48 +01:00
rainydaysavings ff9b5d9c01
[PLUGIN] Removing unnecessary labels 2021-09-14 13:06:48 +01:00
rainydaysavings 0649095e88
[TWIG] Making notes view more easily customizable 2021-09-14 13:06:48 +01:00
rainydaysavings a7744351dd
[UI] Fixing note actions views 2021-09-14 13:06:47 +01:00
rainydaysavings 6188524586
[PLUGIN] Recycle initial implementation 2021-09-14 13:06:47 +01:00
rainydaysavings 8a0418d8cf
[Favourite] Add backend support for favourite 2021-09-14 13:06:47 +01:00
rainydaysavings b6fb0255da
[DB] Temporarily add favourite entity in core, as plugins don't support them yet 2021-09-14 13:06:47 +01:00
Hugo Sales 5b7fcc44cf
[DB] Add helper for removing entities 2021-09-14 13:06:47 +01:00
Hugo Sales ea4f2c522b
[DB] Add support for calling methods with FQCN 2021-09-14 13:06:47 +01:00
rainydaysavings 4328a11eb1
[TWIG] Various routes added 2021-09-14 13:06:47 +01:00
rainydaysavings 3d3db96312
[UI] Replies border fix and other minor fixes 2021-09-14 13:06:47 +01:00
rainydaysavings 413247d344
[CONTROLLER] Replies and network queries implemented 2021-09-14 13:06:47 +01:00
rainydaysavings a804c5f981
[COMPONENT][CONTROLLER][TWIG] Recycle component work 2021-09-14 13:06:47 +01:00
rainydaysavings 55e468bd70
[TWIG][UI] Replies CSS fixes 2021-09-14 13:06:46 +01:00
rainydaysavings 62e76cb036
[ROUTE] Network and replies routes added 2021-09-14 13:06:46 +01:00
rainydaysavings e1e3e2d9b3
[COMPONENT] Favourite initial implementation 2021-09-14 13:06:46 +01:00
rainydaysavings fee81f8499
[UI] Fixing note actions placement 2021-09-14 13:06:46 +01:00
rainydaysavings 0b3543aaff
[UI] Responsiveness overall polish 2021-09-14 13:06:46 +01:00
rainydaysavings baac5ef19c
[UI] Browser compatibility improvements, various small fixes 2021-09-14 13:06:46 +01:00
rainydaysavings 59da3df28c
[UI] Checkboxes now display a custom tick 2021-09-14 13:06:46 +01:00
rainydaysavings 189da22204
[TWIG] Timeline attachment form restructure 2021-09-14 13:06:46 +01:00
rainydaysavings 04f43a9d37
[Controller] Attempting to fix home timeline query 2021-09-14 13:06:46 +01:00
rainydaysavings ecdd393c8e
[UI] No focus outlines by default 2021-09-14 13:06:45 +01:00
rainydaysavings 47901e7ed6
[UI] Reply icon now shows accordingly, same for the replies themselves 2021-09-14 13:06:45 +01:00
rainydaysavings 1742bce78e
[UI] Custom and accessible checkboxes, radio buttons and normal buttons 2021-09-14 13:06:45 +01:00
rainydaysavings f1a687b057
[COMPONENT] Fixing typo 2021-09-14 13:06:45 +01:00
Hugo Sales 0b50905ac8
[NOTE][UI] Add note replying and UI displaying 2021-09-14 13:06:45 +01:00
Hugo Sales 459f0bf41f
[CACHE] Fix bug in list caching 2021-09-14 13:06:45 +01:00
Hugo Sales 496dec4254
[MODULE] Fix avatars not loading 2021-09-14 13:06:45 +01:00
Hugo Sales f60bdaa2f0
[DB][MODULES][ActivityPub] Cleanup table definitions 2021-09-14 13:06:45 +01:00
rainydaysavings 522f40ca2f
[TWIG] Timeline template rework 2021-09-14 13:06:45 +01:00
rainydaysavings 7bc62868f7
[ROUTE] Home timeline route url now shows accordingly as the user nickname 2021-09-14 13:06:44 +01:00
rainydaysavings e812dba033
[UI] Posting form re-styling 2021-09-14 13:06:44 +01:00
rainydaysavings ecfda08d37
[CONTROLLER] Reply initial implementation 2021-09-14 13:06:44 +01:00
rainydaysavings bc66e2c2a2
[COMPONENT] Posting form restructure and minor fixes 2021-09-14 13:06:44 +01:00
rainydaysavings a8e43a4867
[TWIG] Timeline structure rework 2021-09-14 13:06:44 +01:00
rainydaysavings 7fab19fd8f
[ROUTE] Home timeline added 2021-09-14 13:06:44 +01:00
rainydaysavings d08757d0a4
[CONTROLLER] Home timeline controller work 2021-09-14 13:06:44 +01:00
rainydaysavings 9e3eb9992f
[UI] Posting form styling work 2021-09-14 13:06:44 +01:00
rainydaysavings 1eab561b40
[COMPONENT] Posting form now shows a random default string 2021-09-14 13:06:44 +01:00
rainydaysavings 315a70ba0d
[UI] Links removed since they are part of a plugin 2021-09-14 13:06:44 +01:00
rainydaysavings 9fcd18f751
[UI] Post form new structure first styling implementation 2021-09-14 13:06:43 +01:00
rainydaysavings 8a5cadf8d2
[UI] Small border fix 2021-09-14 13:06:43 +01:00
rainydaysavings 9b421e0095
[COMPONENTS] Small fix 2021-09-14 13:06:43 +01:00
rainydaysavings 160e56c61e
[UI][TWIG] Better, divided form rendring of the posting form 2021-09-14 13:06:43 +01:00
rainydaysavings c837194af2
[UI] Small border radius problem fix 2021-09-14 13:06:43 +01:00
rainydaysavings 1563ebc546
[COMPONENT] Posts scope initial form 2021-09-14 13:06:43 +01:00
rainydaysavings fe0af2caed
[UI] Fixing login and register styling, refactoring 2021-09-14 13:06:43 +01:00
rainydaysavings 99ac4dc2a3
[UI] Fixing issue where notices wouldn't break text 2021-09-14 13:06:43 +01:00
rainydaysavings 396af498a2
[UI] Fixing static pages styling 2021-09-14 13:06:43 +01:00
rainydaysavings a85b5b44f1
[UI] Fixes to settings CSS 2021-09-14 13:06:42 +01:00
rainydaysavings 2c59dcefcf
[UI] Finalizing timeline structure and CSS 2021-09-14 13:06:42 +01:00
rainydaysavings 33832297bd
[UI] New reset CSS to deal with firefox's abysmal and evil defaults 2021-09-14 13:06:42 +01:00
Hugo Sales b624359b9a
[ActivityPub] Initial cleanup, removing 'die' statements, and ignoring the subfolders 2021-09-14 13:06:39 +01:00
Hugo Sales 38cfec8593
[UI][TWIG] Small UI cleanup and change twig 'active' function to check for starts with, rather than equals 2021-09-14 13:05:58 +01:00
Hugo Sales f2ab77c3a9
[DB][MEDIA] Small database structure changes 2021-09-14 13:05:58 +01:00
Hugo Sales 4507b12976
[MEDIA] Only try to get an avatar if a user is logged in 2021-09-14 13:05:58 +01:00
Hugo Sales 6ed89c77f4
[UI][NOTE] Post and see attachments 2021-09-14 13:05:57 +01:00
Hugo Sales a5cf89674e
[DEPENDENCY] Add tgalopin/html-sanitizer-bundle and transitively tgalopin/html-sanitizer 2021-09-14 13:05:57 +01:00
Hugo Sales 9649bec01e
[MEDIA][CACHE] Cache avatar queries and delete stale values; small refactoring 2021-09-14 13:05:57 +01:00
Hugo Sales e3c5d7e5dc
[UI][MEDIA] Add actor avatar in feed timeline 2021-09-14 13:05:57 +01:00
Hugo Sales de22f18abf
[SECURITY] Fix error in user registering where password wasn't hashed 2021-09-14 13:05:57 +01:00
rainydaysavings 1b350d51fc
[UI] Fixing timeline notice structure and CSS 2021-09-14 13:05:57 +01:00
rainydaysavings 3def39fed3
[UI] Fix left panel new dynamic components view 2021-09-14 13:05:57 +01:00
Hugo Sales 09a2541c36
[UI][SELFTAGS] Display 'none' if the user doesn't have selftags 2021-09-14 13:05:57 +01:00
Hugo Sales 2486eb1949
[UI][ACCOUNT][SETTINGS] Hack to fix error related to phone number, until a solution is found upstream 2021-09-14 13:05:57 +01:00
Hugo Sales b19be6be52
[UI][LEFT] Add # before selftags, and link 2021-09-14 13:05:56 +01:00
Hugo Sales 7e4138399c
[UI][FAQ] Fix static pages 2021-09-14 13:05:56 +01:00
Hugo Sales 9159fe8d05
[CONTROLLER] Stop propagation of kernel.controller so notices aren't posted 5 times. Not sure why it happens otherwise 2021-09-14 13:05:56 +01:00
Hugo Sales 6f01b0cebe
[WRAPPER][HTTPClient] Static wrapper around Symfony's HTTP Client 2021-09-14 13:05:56 +01:00
Hugo Sales be83d3532e
[DB][FOLLOW] Change Follow table 2021-09-14 13:05:56 +01:00
Hugo Sales 65a129aac6
[UI][CACHE][DB] Add follow counts to left panel, caching the results; change follow table 2021-09-14 13:05:56 +01:00
Hugo Sales 3c67773e59
[UI][LEFT] Add link to settings on avatar and personal info 2021-09-14 13:05:56 +01:00
Hugo Sales c8e8f1f057
[ENTITY] Add Entity base class to all entities 2021-09-14 13:05:56 +01:00
Hugo Sales d548dc9284
[MODULE][Left][UI][TAGS] Add Left module which handles fetching tags and followers, fix self tags 2021-09-14 13:05:56 +01:00
Hugo Sales 31ccb2d07b
[DB][File] Remove timestamp, add actor_id 2021-09-14 13:05:55 +01:00
Hugo Sales 2e9c340684
[DB][AVATAR] Remove extraneous slash 2021-09-14 13:05:55 +01:00
Hugo Sales 44d4aade95
[DB][DEFAULTS] Add avatar/default 2021-09-14 13:05:55 +01:00
Hugo Sales 7f1ce816ae
[UserPanel] Fix upload of avatar 2021-09-14 13:05:55 +01:00
Hugo Sales f255d29078
[Media] Use utils 2021-09-14 13:05:55 +01:00
Hugo Sales 8cfa883c1b
[DB] Add 'dql' method to wrap 'createQuery' and replace 'Gsactor' with 'GSActor' 2021-09-14 13:05:55 +01:00
Hugo Sales 688ee18411
[Media] Move code from media.php to utils.php 2021-09-14 13:05:55 +01:00
Hugo Sales 72876fe8dc
[MODULE][Posting] Add Posting module, which handles notice posting 2021-09-14 13:05:55 +01:00
Hugo Sales e1002eb605
[MEDIA] Move avatar fetching and adding to ouput to media component 2021-09-14 13:05:55 +01:00
Hugo Sales 8506a0248d
[UTIL][Common] Fix import 2021-09-14 13:05:54 +01:00
Hugo Sales 22d1c55faf
[CONTROLLER][AdminPanel] Add missing use statement 2021-09-14 13:05:54 +01:00
Hugo Sales eb138ebdae
[STREAM][NetworkPublic] Add skeleton of public timeline and posting 2021-09-14 13:05:54 +01:00
Hugo Sales a2269f5745
[UTIL][Common] Implement 'isSystemPath' 2021-09-14 13:05:54 +01:00
Hugo Sales 95a1938d0f
[SECURITY] Wrap getUser in a try catch, in case the user doesn't exist 2021-09-14 13:05:54 +01:00
Hugo Sales 213cfe5285
[COMMAND] Fix 'bin/console doctrine:database:create' by only loading defaults if we have a connection 2021-09-14 13:05:54 +01:00
Hugo Sales e3e9ece614
[DEPENDENCY] Update dependencies 2021-09-14 13:05:54 +01:00
Hugo Sales 51a1a1180e
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:54 +01:00
Hugo Sales 636f564672
[TOOLS] Fix bin/generate_entity_fields 2021-09-14 13:05:54 +01:00
Hugo Sales 8716d700a6
[CORE][DB] Fix uses of db tables after previous restructure 2021-09-14 13:05:53 +01:00
Hugo Sales 1111ee95f1
[CORE] Data Representation and Modelling refactor 2021-09-14 13:05:53 +01:00
rainydaysavings b80479dc4e
[UI] Public feed responsive CSS work 2021-09-14 13:05:53 +01:00
rainydaysavings 5d859b6459
[UI] Responsive settings CSS work 2021-09-14 13:05:53 +01:00
rainydaysavings ea61109932
[UI] Responsive base design polish 2021-09-14 13:05:53 +01:00
rainydaysavings ccd6667e2c
[UI] Feed structure done, feed CSS work 2021-09-14 13:05:53 +01:00
rainydaysavings 5f0ece177b
[UI] Polishing design, settings pages 2021-09-14 13:05:53 +01:00
rainydaysavings 46eaccb4b0
[UI] Polishing base template 2021-09-14 13:05:53 +01:00
rainydaysavings e9a0528275
[UI] Left panel theme now looks like it should 2021-09-14 13:05:53 +01:00
rainydaysavings 8fe12f48b5
[UI] Right panel checkbox size fix 2021-09-14 13:05:52 +01:00
rainydaysavings 80d92e3c88
[UI] Settings theme according to base theme 2021-09-14 13:05:52 +01:00
rainydaysavings 915f1dfcdb
[UI] Complete base CSS overhaul and new theme 2021-09-14 13:05:52 +01:00
rainydaysavings 565140adcf
[UI] Right panel added 2021-09-14 13:05:52 +01:00
rainydaysavings 1c7ea95b1f
[UI] Additional fixes to settings page 2021-09-14 13:05:52 +01:00
rainydaysavings 13700edb3e
[UI] Small general settings CSS fixes 2021-09-14 13:05:52 +01:00
rainydaysavings fb0f3b9dfb
[UI] Settings small fix 2021-09-14 13:05:52 +01:00
rainydaysavings f0558feb98
[UI] Notification settings checkbox placement fix 2021-09-14 13:05:52 +01:00
Hugo Sales 9781d43f08
[LocalUser] Fix missing extend 2021-09-14 13:05:52 +01:00
Hugo Sales cd89cf04ff
[ROUTES] Add redirect from root to main/all, link from header to root, and change parameter order on RouteLoader::connect 2021-09-14 13:05:52 +01:00
Hugo Sales 365168d03e
[EXCEPTION] Add ServerException and inherit previous throwable
imported from v2/5ea5d3007563f76a77efbfb66936315441922542
2021-09-14 13:05:51 +01:00
Alexei Sorokin eb12ac5ef1
[DATABASE] Enable fulltext search by default
Also rename fulltext indices to more fitting names

Imported from v2/f84dbb369f01a1d4a9bc362d01cdd100cdc79313
2021-09-14 13:05:51 +01:00
Hugo Sales 4128a5403d
[MEDIA][EXCEPTIONS] Fix errors and deprecations 2021-09-14 13:05:51 +01:00
Hugo Sales 08e5b313ce
[SECURITY] Refactor 2021-09-14 13:05:51 +01:00
Hugo Sales 6438092d86
[AVATAR] Update way avatar is sent, to use proper symfony responses, make config('site', 's_static_delivery') into a boolean 2021-09-14 13:05:51 +01:00
Hugo Sales 699f25a397
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:51 +01:00
Hugo Sales 689a5df670
[TOOLS] Update generate_entity_fields 2021-09-14 13:05:51 +01:00
Hugo Sales bd8f4bd277
[AVATAR] Fixed avatar upload, added avatar inline download and updated template and base controller 2021-09-14 13:05:51 +01:00
Hugo Sales 2bf914f96f
[AVATAR] Handle avatar upload without js and save and validate uploaded files 2021-09-14 13:05:51 +01:00
Hugo Sales 48971b70a0
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:50 +01:00
Hugo Sales 9c660f39ed
[DEPENDENCIES] Update dependencies 2021-09-14 13:05:50 +01:00
Hugo Sales 0cddbc1783
[JS] Whitespace cleanup 2021-09-14 13:05:50 +01:00
Hugo Sales 113c250c41
[MEDIA][AVATAR] Handle avatar validation and storage 2021-09-14 13:05:50 +01:00
Hugo Sales 0ab6c2ef54
[DB] Add entity base class to allow sharing methods such as 'create' 2021-09-14 13:05:50 +01:00
Hugo Sales 4d99bfb9fd
[DB][FILE][AVATAR] Handle deleting files, change file and avatar tables 2021-09-14 13:05:50 +01:00
Hugo Sales 5a68fd287b
[UI][SETTINGS] User notification settings with configurable transports (through plugins) 2021-09-14 13:05:50 +01:00
Hugo Sales 0230dd04df
[PLUGIN] Remove Test plugin 2021-09-14 13:05:50 +01:00
Hugo Sales 86b9f7d7a1
[COMPONENT][PLUGIN] Move Email and XMPP notification handlers from components to plugins, so they can be disabled 2021-09-14 13:05:50 +01:00
Hugo Sales 3fb45176b8
[COMPONENT] Remove 'post on status change' option for email transport 2021-09-14 13:05:49 +01:00
Hugo Sales c7dbae8067
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:49 +01:00
rainydaysavings db8e783233
[UI] Notifications settings styling finished 2021-09-14 13:05:49 +01:00
rainydaysavings 6b85d38ad6
[UI] Notification settings styling progress 2021-09-14 13:05:49 +01:00
rainydaysavings bdae49718f
[UI] Notification settings tabs functional 2021-09-14 13:05:49 +01:00
rainydaysavings 884d2529d3
[UI] Notifications settings page CSS work 2021-09-14 13:05:49 +01:00
rainydaysavings ea33243b60
[UI] Accessibility improvements all around 2021-09-14 13:05:49 +01:00
rainydaysavings 54bade96ad
[UI] Fixed issue where certain form element would be on top the left panel 2021-09-14 13:05:49 +01:00
rainydaysavings d9b48d33b6
[ROUTES] Fix use statement 2021-09-14 13:05:49 +01:00
rainydaysavings d717aac67f
[JS][UI][AVATAR] JS cropping script 2021-09-14 13:05:48 +01:00
rainydaysavings 774383a3c1
[UI] Cropping avatar as a circle, proper preview done 2021-09-14 13:05:48 +01:00
rainydaysavings 574fb38225
[CONTROLLER][UI] Avatar JS cropping added 2021-09-14 13:05:48 +01:00
rainydaysavings 1d5a1818c1
[UI] Login and Register button fixes 2021-09-14 13:05:48 +01:00
rainydaysavings f840d4350f
[UI] Controller and Route for FAQ page created as well as basic template structure 2021-09-14 13:05:48 +01:00
rainydaysavings 9899601777
[UI] Settings pages routes and styling done. 2021-09-14 13:05:48 +01:00
Hugo Sales e5082657b7
[COMPONENT][PLUGIN] Small refactor and add license 2021-09-14 13:05:48 +01:00
Hugo Sales b436a0641d
[CONTROLLER][UI] Add notification settings form 2021-09-14 13:05:48 +01:00
Hugo Sales 4ba71426b6
[MODULE] Reload modules if modified, except in production environment 2021-09-14 13:05:48 +01:00
Hugo Sales 58b6026607
[UTIL] Fix and rename arrayRemoveKeys 2021-09-14 13:05:47 +01:00
Hugo Sales ef1788949c
[CONFIG] Cleanup services.yaml config file 2021-09-14 13:05:47 +01:00
Hugo Sales b3d5c73ab4
[FORMATTING] Update license header in SchemaDef compiler pass 2021-09-14 13:05:47 +01:00
Hugo Sales 62e093c650
[EVENT][ROUTES] Add event to allow modules to add routes, 'add_route' 2021-09-14 13:05:47 +01:00
Hugo Sales 152828ed68
[FRAMEWORK] Avoid double initializing the framework 2021-09-14 13:05:47 +01:00
Hugo Sales aac653d2bd
[EVENT] Fix event handler and rename events to snake_case 2021-09-14 13:05:47 +01:00
Hugo Sales 995b4cfb9b
[PLUGIN] Update example plugin 2021-09-14 13:05:47 +01:00
Hugo Sales ea7d43172a
[MODULE][COMPILER] Add compiler pass responsible for loading, instantiating and wiring enabled modules 2021-09-14 13:05:47 +01:00
Hugo Sales bc9de1c0fa
[MODULE] Added module base class 2021-09-14 13:05:47 +01:00
Hugo Sales b71eded942
[COMMAND] Fix ListEvents command to properly display the callable 2021-09-14 13:05:47 +01:00
Hugo Sales 292c9dc862
[COMPOSER][MODULE] Add autoloading rules for components and plugins 2021-09-14 13:05:46 +01:00
Hugo Sales da0d88e0f2
[MODULE] Renamed modules to components 2021-09-14 13:05:46 +01:00
Hugo Sales 48252d6b8c
[UTIL][FORM] Add form transformer array <--> string 2021-09-14 13:05:46 +01:00
Hugo Sales 3e6eb114c4
[UTIL] Add Common::array_remove_keys 2021-09-14 13:05:46 +01:00
Hugo Sales fe3a3978af
[UI][CONTROLLER] Work on tabbed notification settings panel 2021-09-14 13:05:46 +01:00
Hugo Sales 04e31d273d
[MAIL] Make mailserver a required service 2021-09-14 13:05:46 +01:00
Hugo Sales 71db1870db
[SECURITY] Ensure ARGON2 constants are defined, or throw exception 2021-09-14 13:05:46 +01:00
Hugo Sales 7560db4d5f
[DEPENDENCY] Update dependencies 2021-09-14 13:05:46 +01:00
Hugo Sales fe394e9b20
[UI][CONTROLLER] Refactor UserPanel to use the new Form::handle method and add placeholders in the password fields 2021-09-14 13:05:46 +01:00
Hugo Sales 6fc120571d
[DATABASE] Remove DATABASE::flush from Profile::setSelfTags 2021-09-14 13:05:45 +01:00
Hugo Sales b3bce3efa1
[FORMATTING] Add option to split a string to array by both a comma and a space 2021-09-14 13:05:45 +01:00
Hugo Sales 921da28884
[FORM] Add DataTransformer to and from array 2021-09-14 13:05:45 +01:00
Hugo Sales 93f576679c
[FORM] Add Form::handle which automagically creates a form, handles a request, and writes the data to the given entity and update Form::create to do some more magic as well 2021-09-14 13:05:45 +01:00
Hugo Sales 59eba851f7
[DATABASE][TOOLS] Update local_user to return the proper PhoneNumber type 2021-09-14 13:05:45 +01:00
Hugo Sales 22e292276c
[CORE][SECURITY][UX] Save previous url on /register and /logout 2021-09-14 13:05:45 +01:00
rainydaysavings 199fa0278c
[CONTROLLER][UI] Fixing controller display errors, Settings CSS fixes 2021-09-14 13:05:45 +01:00
rainydaysavings 6d729de07c
[UI][ROUTES][CONTROLLER] Fixing Settings navs and templates 2021-09-14 13:05:45 +01:00
rainydaysavings a9b614bbdd
[UI] Register and Login rework 2021-09-14 13:05:45 +01:00
rainydaysavings e8d03e70ea
[UI] Left panel fix 2021-09-14 13:05:44 +01:00
Hugo Sales d08c4a1f62
[Controller] Update settings/avatar 2021-09-14 13:05:44 +01:00
Hugo Sales db32a5fcfc
[DATABASE][TOOLS] Update local_user, SchemaDefDriver and bin/generate_entity_fields to use the phone_number type (which maps to a varchar 35 and does validation) 2021-09-14 13:05:44 +01:00
Hugo Sales db52e282b9
[UI] Update settings/account to reflect the current values 2021-09-14 13:05:44 +01:00
Hugo Sales fd36e6fa7a
[UI][ROUTES] s%settings/profile%settings/personal_info% 2021-09-14 13:05:44 +01:00
Hugo Sales 17f854b1d9
[CORE][UX] Save previous url to redirect back after registering 2021-09-14 13:05:44 +01:00
Hugo Sales ead29a636d
[DEPENDENCY] Add odolbeau/phone-number-bundle 2021-09-14 13:05:44 +01:00
Hugo Sales 576d6eb11c
[UTIL][NICKNAME][FIX] Add self to constant 2021-09-14 13:05:44 +01:00
Hugo Sales 8b7dd48344
[UI][USERPANEL] Add prefilled fields, mark some as optional and handle self tags in the profile settings page 2021-09-14 13:05:44 +01:00
Hugo Sales 207eeb39ca
[SELFTAGS] Add Profile::{set,get}SelfTags 2021-09-14 13:05:43 +01:00
Hugo Sales 1e911f1ba4
[FORM] Add Form::isRequired 2021-09-14 13:05:43 +01:00
Hugo Sales 6adb527fe0
[DATABASE] Refactor DB.php and make findBy always return an array, instead of a doctrine collection 2021-09-14 13:05:43 +01:00
Hugo Sales 040c400bfe
[UTIL] Update Formatting::{toString,toArray} to allow spliting by either space or comma 2021-09-14 13:05:43 +01:00
Alexei Sorokin 66c38d777a
[SECURITY] Update way passwords are checked and update 2021-09-14 13:05:43 +01:00
rainydaysavings ea131d03e1
[TWIG][ROUTES] Footer links routes and pages added 2021-09-14 13:05:43 +01:00
rainydaysavings fa613b7098
[UI][ROUTES] Footer links added 2021-09-14 13:05:43 +01:00
rainydaysavings 6d4f6b5109
[UI] Fixing problem due to Firefox's autofill filter 2021-09-14 13:05:43 +01:00
rainydaysavings 51f79242b7
[UI] Login template small fix 2021-09-14 13:05:43 +01:00
rainydaysavings 0dc3d3023e
[UI] Left panel template and Login page CSS work done 2021-09-14 13:05:42 +01:00
Hugo Sales 3ba46a9a60
[SECURITY][CONTROLLER] Remove unreachable code from the Security controller 2021-09-14 13:05:42 +01:00
Hugo Sales c26ffe09b6
[CONTROLLER][ADMIN][CONFIG] Fix form to use static strings as keys and add labels seperately; convert input from string to appropriate type 2021-09-14 13:05:42 +01:00
Hugo Sales b772702895
[LIB][Util] Update Common::setConfig to throw an exception if appropriate, add Formatting::{toString,toArray} 2021-09-14 13:05:42 +01:00
Hugo Sales 647fd421ee
[I18N] Remove incomplete autogenerated translation file, to be fixed later 2021-09-14 13:05:42 +01:00
Hugo Sales 91af1be470
[AUTOGENERATED] Update all entity fields 2021-09-14 13:05:42 +01:00
Hugo Sales e0cc125907
[SECURITY] Small refactor in Authenticator.php, to remove unused services 2021-09-14 13:05:42 +01:00
Hugo Sales c973517397
[USER][UI][AUTHENTICATION] Add registration form 2021-09-14 13:05:42 +01:00
Hugo Sales 17dc298dfa
[UTIL][NICKNAME] Small refactor and remove the check between user nickname and group_alias, as these will have different semantics 2021-09-14 13:05:42 +01:00
Hugo Sales 5b578b9519
[DATABASE] Fix typos in user_notification_prefs 2021-09-14 13:05:42 +01:00
Hugo Sales 6e6c7ede1e
[DATABASE] Fix typo in profile table and add a constructor 2021-09-14 13:05:41 +01:00
Hugo Sales 7c6112b887
[FORM][WRAPPER] Merge argument options, not replace 2021-09-14 13:05:41 +01:00
Hugo Sales a85fc2d0bd
[DATABASE] Update LocalUser table to not have a numerical id, add is_email_verified and fix getProfile accordingly 2021-09-14 13:05:41 +01:00
Hugo Sales 7a7f7d3ae1
[MAILER][WRAPPER] Add mailer wrapper that respects the configuration 2021-09-14 13:05:41 +01:00
Hugo Sales 7c35fde8bc
[FIX] Fix bug in DATABASE.php, since findBy can return different types 2021-09-14 13:05:41 +01:00
Hugo Sales 72bf62adc3
[TOOLS] Update generate fields script to output default values 2021-09-14 13:05:41 +01:00
Hugo Sales 672e2b80eb
[DEPENDENCY] Add symfonycasts/verify-email-bundle 2021-09-14 13:05:41 +01:00
Hugo Sales c0da90bd3e
[COMMON][SECURITY][WRAPPER] Added security service static wrapper and Common::getUser 2021-09-14 13:05:41 +01:00
Hugo Sales 97fd7620e7
[CORE][ROUTES] Small refactor on entrypoint and RouteLoader 2021-09-14 13:05:41 +01:00
Hugo Sales 1572261617
[TWIG] Add twig function to output the active tag if the current route matches a given one 2021-09-14 13:05:40 +01:00
Hugo Sales cac00dd6d4
[CONTROLLER][ROUTES] Refactor the base Controller to not reinvent the wheel too much and rely on Symfony's events 2021-09-14 13:05:40 +01:00
Hugo Sales a1c90f2e15
[ROUTES] Change name of admin and settings routes and refactor the way they're specified 2021-09-14 13:05:40 +01:00
Hugo Sales 56f74fffe8
[CONTROLLER][ROUTES] Refactor controllers to use the new base class and remove controller from the class name 2021-09-14 13:05:40 +01:00
Hugo Sales 2796ac5228
[NOTIFICATION][DATABASE] Update user notification prefs table, implementation of Notification and define a base class for notification transport 2021-09-14 13:05:40 +01:00
Hugo Sales df4d246ede
[CONTROLLER] Remove example enqueue 2021-09-14 13:05:40 +01:00
Hugo Sales 59fcd042e9
[DEFAULTS] Add password hashing algorithm default settings 2021-09-14 13:05:40 +01:00
Hugo Sales 0eba267a73
[LOGIN] Implement password checking and related systems 2021-09-14 13:05:40 +01:00
Hugo Sales f3ccdf8017
[USER] Add UserRoles 2021-09-14 13:05:40 +01:00
Hugo Sales 5a74354703
[DATABASE] Add role collumn to profile table 2021-09-14 13:05:39 +01:00
Hugo Sales 8ce0f05371
[UTIL] Update Common::config to ensure the values queried exist 2021-09-14 13:05:39 +01:00
Hugo Sales ae373c7d96
[DEFAULTS][FIX] Fix logic error that kept reloading the table when the file wasn't modified 2021-09-14 13:05:39 +01:00
Hugo Sales 3313897671
[UI][SESSION] Add login and logout pages 2021-09-14 13:05:39 +01:00
Hugo Sales fb53700be2
[LIB][Util] Remove Functional::arity as it got merged upstream as Functional\ary 2021-09-14 13:05:39 +01:00
Hugo Sales d6cd52cede
[LIB][Util] Make Common::config return the unserialized value instead of the entity 2021-09-14 13:05:39 +01:00
Hugo Sales 284fbe2c5b
[CORE] Refactor GNUsocial.php so it initializes itself as a service 2021-09-14 13:05:39 +01:00
Hugo Sales e482ecfb87
[I18N] Remove support for context until it proves necessary, as it broke the code 2021-09-14 13:05:39 +01:00
Hugo Sales 028d7c929f
[TOOLS] Update shebang on scripts to use the correct php executable 2021-09-14 13:05:39 +01:00
Hugo Sales f246667fe5
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:38 +01:00
Hugo Sales 7c8ab40e3a
[DATABASE] Rename user table to local_user, since doctrine shits itself otherwise ._. 2021-09-14 13:05:38 +01:00
Hugo Sales 8f68bde21a
[DEPENDENCY] Add symfony/config as a dependency 2021-09-14 13:05:38 +01:00
Hugo Sales 01b5c4b2f7
[CONFIG] Change way configuration is done to use Symfony's system instead of environment vars 2021-09-14 13:05:38 +01:00
Hugo Sales fffa17448f
[CORE][I18n][DEFAULTS] Remove I18nHelper 2021-09-14 13:05:38 +01:00
Hugo Sales 339003f210
[LIB][Util] Change methods in the Common class to camelCase, add isSystemPath (previously in Nickname.php) 2021-09-14 13:05:38 +01:00
Hugo Sales d0771f77bc
[UTIL][NICKNAME] Import nickname utilities and exceptions from v2 2021-09-14 13:05:38 +01:00
Hugo Sales 07c033de33
[DEFAULTS] Update default reserved usernames 2021-09-14 13:05:38 +01:00
Hugo Sales 3992629a08
[DATABASE][WRAPPER] Add findBy method which allows finding entities with a complex expression 2021-09-14 13:05:38 +01:00
Hugo Sales 0ac1d563de
[DATABASE] Re-import the local_group table, as it'll be used as per the new group semantics 2021-09-14 13:05:37 +01:00
rainydaysavings d6320943ce
[UI] Settings routes refactor, avatar and misc settings added. 2021-09-14 13:05:37 +01:00
rainydaysavings 6dd966bd3f
[UI][CONTROLLER][ROUTES] UserPanel account page form added, account page CSS work 2021-09-14 13:05:37 +01:00
rainydaysavings 5a53915f80
[UI] Fixed top header spacing issue, hamburger menu weird rendering 2021-09-14 13:05:37 +01:00
rainydaysavings d0b04b6084
[UI] FAQ pages markdown fixes 2021-09-14 13:05:37 +01:00
rainydaysavings c9f731507b
[UI][CONTROLLER] Form help messages added, fixed checkbox trick hitbox 2021-09-14 13:05:37 +01:00
rainydaysavings 0dfb96cdeb
[UI] Reset CSS added, small fixes all around 2021-09-14 13:05:37 +01:00
rainydaysavings 1558bffcac
[UI] Settings page CSS redesign port completed 2021-09-14 13:05:37 +01:00
rainydaysavings 63a443e78e
[UI][CONTROLLER][ROUTES] Corrected core action name, UserPanel CSS work 2021-09-14 13:05:37 +01:00
rainydaysavings 0b0bd31a4b
[UI] Fixed FAQ template issues 2021-09-14 13:05:36 +01:00
rainydaysavings 19a96539aa
[UI] Side panel animation added 2021-09-14 13:05:36 +01:00
rainydaysavings 22042a8cb7
[UI] Redesign responsiveness work done 2021-09-14 13:05:36 +01:00
rainydaysavings f8fc226673
[UI] Further work into new side panel design 2021-09-14 13:05:36 +01:00
rainydaysavings 4eaf272929
[UI] Basic implementation of the new base design 2021-09-14 13:05:36 +01:00
rainydaysavings 115257f3bb
[UI] Polishing FAQ CSS 2021-09-14 13:05:36 +01:00
rainydaysavings 0117883bd5
[UI] Standardization of sizes and variable usage for faster theming 2021-09-14 13:05:36 +01:00
rainydaysavings 02318d954c
[UI][CONTROLLER] Profile settings action functionality working 2021-09-14 13:05:36 +01:00
Hugo Sales 643a937152
[DATABASE][WRAPPER] Update DATABASE wrapper so entity names are provided without the namespace 2021-09-14 13:05:36 +01:00
Hugo Sales 0615adbb51
[DOCKER] Add redis to the docker image 2021-09-14 13:05:36 +01:00
Hugo Sales 09c2a762ef
[CACHE] Fix usage of the redis extension 2021-09-14 13:05:35 +01:00
Hugo Sales c0a17af062
[DOCKER] Fix redis extension build process to use LZ4 and add APCu 2021-09-14 13:05:35 +01:00
Hugo Sales 4776cff969
[DEPENDENCY] Add mock polyfill implementations of the redis and memcached extension 2021-09-14 13:05:35 +01:00
Hugo Sales 31ad75564f
[CACHE][Redis] Add special support for redis (fixed size lists), set method and general fixes 2021-09-14 13:05:35 +01:00
Hugo Sales c602cf8422
[LIB][Util] Refactor and implement array indexing methods on RingBuffer 2021-09-14 13:05:35 +01:00
Hugo Sales 071c1aaec4
[DOCKER] Updated php image so redis is compiled with LZ4 compression available, as it's the fastest at decompressing and really fast at compressing. Read performance is more important, with this being used as a cache 2021-09-14 13:05:35 +01:00
Hugo Sales c549bea4a9
[CACHE] Add support for multiple pools with the syntax (as an example) SOCIAL_CACHE_ADAPTER='default=redis://localhost:6379,memcached://localhost:11211;db.config=apcu://' 2021-09-14 13:05:35 +01:00
Hugo Sales d35b6f3437
[DOCKER] Add msgpack and redis extensions to docker image 2021-09-14 13:05:35 +01:00
Hugo Sales cfe1901b51
[DEFAULTS] Add modified time to config table (as value) and only reload the defaults if the file is newer 2021-09-14 13:05:35 +01:00
Hugo Sales e91a141474
[CACHE] Extend the static wrapper to support working with lists in caches that don't natively support them 2021-09-14 13:05:34 +01:00
Hugo Sales 7f5e574cbf
[LIB][Util] Add Ring Buffer data structure 2021-09-14 13:05:34 +01:00
Hugo Sales 05ffc0db9c
[DOCKER] Move certbot files to hidden folder, so it's ignored by GNU global 2021-09-14 13:05:34 +01:00
Hugo Sales 0e0321cfef
[DEFAULTS][FIX] Fix defaults to use value from environment 2021-09-14 13:05:34 +01:00
Hugo Sales 2671c37039
[PHP][EXTENSION][POLYFILL] Add php-ds polyfill, which is used if the native extension is not available 2021-09-14 13:05:34 +01:00
Hugo Sales 279b7e775b
[DOCKER][PHP][EXTENSION] Add PHP ds extension to docker PHP image 2021-09-14 13:05:34 +01:00
Hugo Sales 52aad30030
[TOOLS][configure] Fix to use quotation marks properly 2021-09-14 13:05:34 +01:00
Hugo Sales 9d2f6e7425
[CACHE][WRAPPER] Fix cache wrapper 2021-09-14 13:05:34 +01:00
Hugo Sales 4f85594bec
[FORMATTING][DEFAULTS] Fix formatting and remove redundant config defaults 2021-09-14 13:05:34 +01:00
Hugo Sales b7b50f749b
[CACHE][HTTP] Configure simple HTTP cache 2021-09-14 13:05:33 +01:00
Hugo Sales 65cc487a29
[CACHE] Add a static wrapper around symfony/cache 2021-09-14 13:05:33 +01:00
Hugo Sales 81dd2e4c72
[DEPENDENCY] Add symfony/cache as a dependency 2021-09-14 13:05:33 +01:00
Hugo Sales aae883880f
[LOG][WRAPPER] Refactor log wrapper 2021-09-14 13:05:33 +01:00
Hugo Sales d48cb3f0b8
[QUEUE] Add queueing wrapper, default configuration and example usage 2021-09-14 13:05:33 +01:00
Hugo Sales 441fd8490f
[DEPENDENCY] Add symfony/messenger as a dependency 2021-09-14 13:05:33 +01:00
Hugo Sales 9c483e6e79
[DATABASE] Delete queue_item table, as queueing will be handled by messenger 2021-09-14 13:05:33 +01:00
Hugo Sales 423129486c
[CONTROLLER] Show dummy notices in main/all 2021-09-14 13:05:33 +01:00
Hugo Sales 8e30b9423b
[MODULES] Make ModulesManager check if file exists 2021-09-14 13:05:33 +01:00
Hugo Sales 59b2b98537
[CONTROLLER] Add Controller base class, which handles rendering templates if requested HTML or json, accordingly 2021-09-14 13:05:32 +01:00
Hugo Sales a56c7934ec
[ROUTE] Fix routes, config_admin got deleted 2021-09-14 13:05:32 +01:00
Hugo Sales 936d13d966
[COMMAND][DEPRECATION][FIX] Fix app:events's deprecation 2021-09-14 13:05:32 +01:00
Hugo Sales 3483be1770
[GIT] Update gitignore to ignore composer.local.json, where plugin settings will be placed 2021-09-14 13:05:32 +01:00
Hugo Sales e97ba23a99
[DEPENDENCY] Update all dependencies 2021-09-14 13:05:32 +01:00
Hugo Sales 5b5ca6ccea
[DEPENDENCY] Add wikimedia/composer-merge-plugin as a dependency, to allow managing plugins 2021-09-14 13:05:32 +01:00
rainydaysavings ac46c14344
[DEPENDENCY] Add erusev/parsedown and twig/markdown-extra as dependencies 2021-09-14 13:05:32 +01:00
rainydaysavings 81e8173ed4
[TWIG][CONFIG] Change default_path and add public_path 2021-09-14 13:05:32 +01:00
rainydaysavings 996f2338a5
[CONTROLLER] UserAdminPanel handle request fix
[UI] Minor CSS font size corrections
2021-09-14 13:05:32 +01:00
rainydaysavings 82d50cc962
[TWIG][UI] Settings: removed unnecessary pages, responsive CSS work 2021-09-14 13:05:32 +01:00
rainydaysavings 1498c44e74
[UI][CONTROLLER] Settings page styling almost done. 2021-09-14 13:05:31 +01:00
rainydaysavings 79b9e66315
[TWIG] faq/contact template route fix 2021-09-14 13:05:31 +01:00
rainydaysavings 8674d20327
[FAQ] Removing unnecessary categories. 2021-09-14 13:05:31 +01:00
rainydaysavings 22b68766db
[UI][FAQ] FAQ polish, better use of twig, responsive css. 2021-09-14 13:05:31 +01:00
rainydaysavings 17d737b590
[UI][Mobile][FAQ][ROUTES] FAQ sub pages and routing added, small screen css work started. 2021-09-14 13:05:31 +01:00
rainydaysavings 768607fe98
[UI] Icon assets now work with Symfony asset component, header icon placement fixes 2021-09-14 13:05:31 +01:00
rainydaysavings 432dfdd0ae
[UI][ROUTES][CONTROLLER] Settings pages routes and styling done. 2021-09-14 13:05:31 +01:00
rainydaysavings f3e9671b1a
[UI] Work started on profile settings page. 2021-09-14 13:05:31 +01:00
rainydaysavings 6cf90954dd
[UI][Header] New header implemented. 2021-09-14 13:05:31 +01:00
rainydaysavings ad107542d9
[TWIG][UI] CSS refactoring, containerized twig blocks and settings initial work 2021-09-14 13:05:30 +01:00
rainydaysavings bf0e944aaa
[TWIG] FAQ base template hierarchy fixes
Minor refactoring of routes for FAQ static pages
2021-09-14 13:05:30 +01:00
rainydaysavings 02ddf96371
[UI][ROUTES] Better use of icons, fixing static pages routing. 2021-09-14 13:05:30 +01:00
rainydaysavings 1989cb481a
[UI][FAQ] Better FAQ organization, removing unnecessary categories. 2021-09-14 13:05:30 +01:00
rainydaysavings 727083ec88
[UI][Mobile][FAQ] FAQ polish, better use of twig, responsive css. 2021-09-14 13:05:30 +01:00
rainydaysavings ecd7aedf0c
[UI][Mobile][FAQ] FAQ sub pages and routing added, small screen css work started. 2021-09-14 13:05:30 +01:00
rainydaysavings aac90a9c9e
[UI] SVG icons added
[TWIG][UI] Header completed
2021-09-14 13:05:30 +01:00
rainydaysavings 9d36861076
[UI][FAQ] FAQ page progress, assets folder and assets added 2021-09-14 13:05:30 +01:00
rainydaysavings 124e1a70c1
[UI][FAQ] Controller and Route for FAQ page created as well as basic template structure 2021-09-14 13:05:30 +01:00
Hugo Sales 0eb0d21007
[TOOLS] Fix bootstrap and pre-commit scripts 2021-09-14 13:05:29 +01:00
Hugo Sales 4d92915846
[MODULE] Move 'foreign' entities from core to a module 2021-09-14 13:05:29 +01:00
Hugo Sales 97b583aee7
[AUTOGENERATED] Update autogenerated code 2021-09-14 13:05:29 +01:00
Hugo Sales 2eab90bbb0
[TOOLS] Update bin/generate_entity_fields script 2021-09-14 13:05:29 +01:00
Hugo Sales 5eae3dc351
[CORE][DATABASE] Replace zero dates with CURRENT_TIMESTAMP and add defaults to all 'created' or 'modified'
This commit is a port from v2's 9a515b9234 ([SCHEMA] Improve timestamp storage) to v3.

As explained by Alexei Sorokin:

Avoid the use of deprecated MariaDATABASE "zero dates" globally. If they're present
as attribute defaults somewhere, they will be replaced with NULL implicitly.
The existing "zero dates" in MariaDATABASE storage will be left intact and this
should not present any issues.

The "timestamp" type in table definitions now corresponds to DATETIME in
MariaDATABASE with "DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", which
should be close enough to the original behaviour for compatibility purposes.
It is now the recommended type for "modified" attributes, because of the
update trigger on MariaDATABASE. But there is no such trigger implemented on
PostgreSQL as of this moment.
2021-09-14 13:05:29 +01:00
Hugo Sales 25aeac80a3
[CORE][DATABASE] Restructure the database 2021-09-14 13:05:29 +01:00
Hugo Sales 44eaf43ba9
[ROUTE][ADMIN][CONFIG] Add route to update values in the config table 2021-09-14 13:05:29 +01:00
Hugo Sales e286f39551
[DEFAULTS] Small fixes and add check of SOCIAL_NO_RELOAD_DEFAULTS from the environment, to override the reloading of default values 2021-09-14 13:05:29 +01:00
Hugo Sales 84be8e1711
[DOCUMENTATION] Fixed type annotations and documentation of Common::size_str_to_int 2021-09-14 13:05:29 +01:00
Hugo Sales b7a8861f55
[CORE][Event] Move GSEvent to Event, no longer a name collision 2021-09-14 13:05:28 +01:00
Hugo Sales b32e173749
[FORM] Added Symfony Form wrapper 2021-09-14 13:05:28 +01:00
Hugo Sales bc6ead4ab1
[CORE][Symfony] Fixed deprecation resultant from Symfony 5.1 upgrade
User Deprecated: Since symfony/framework-bundle 5.1: Using type
"Symfony\Component\Routing\RouteCollectionBuilder" for argument 1 of
method "App\Kernel:configureRoutes()" is deprecated, use
"Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator"
instead.
2021-09-14 13:05:28 +01:00
Hugo Sales 7a52c1d823
[TESTS][I18N] Added test for I18n::_m and I18nHelper::formatICU 2021-09-14 13:05:28 +01:00
Hugo Sales 753f852941
[I18N] Fix implementation of I18nHelper::formatICU 2021-09-14 13:05:28 +01:00
Hugo Sales 491e82f94e
[ROUTES] Add easier support for using TemplateController and improved documentation 2021-09-14 13:05:28 +01:00
Hugo Sales f28ff24f2a
[I18N] Small fixes. Still broken, though :') 2021-09-14 13:05:28 +01:00
Hugo Sales fb457d4a45
[AUTOLOAD] Always autoload _m file 2021-09-14 13:05:28 +01:00
Hugo Sales 8649b72192
[DEPENDENCY] Upgrade Symfony framework from 5.0 to 5.1 2021-09-14 13:05:28 +01:00
Hugo Sales db5811a77e
[DEPENDENCY][DEV] Added Symfony Bridge PHPUnit 2021-09-14 13:05:27 +01:00
Hugo Sales 4133fc3290
[GIT] Updated gitignore 2021-09-14 13:05:27 +01:00
Hugo Sales 10ca51e72a
[I18N] Overhaul _m() implementation to support ICU message formats 2021-09-14 13:05:27 +01:00
Hugo Sales a65a46f14e
[I18N] Dumped english translation files 2021-09-14 13:05:27 +01:00
Hugo Sales e3d8ea7912
[TOOLS] Small fix to composer install hook 2021-09-14 13:05:27 +01:00
Hugo Sales 711af58dcd
[I18N] Added ability to call `_m_dynamic` from any class, allowing it to define translations for dynamic-valued calls to `_m` 2021-09-14 13:05:27 +01:00
Hugo Sales 5be901f9ce
[TOOLS] Improve configure script to disallow reserved database names 2021-09-14 13:05:27 +01:00
Hugo Sales dc7387cc8d
[I18N] Custom translation extractor based on Symfony's PhpExtractor, since we use instead of 2021-09-14 13:05:27 +01:00
Hugo Sales f283613443
[I18N] Refactor since rfc/use-static-function is not implemented
As the above mentioned RFC is not implemented, `_m` needs to be
outside of the I18n class, otherwise it would have to always be called
with `I18n::_m`.
2021-09-14 13:05:27 +01:00
Hugo Sales 186b9e7683
[ROUTES] Add static wrapper around Symfony's router 2021-09-14 13:05:27 +01:00
Hugo Sales 4ffb7c338f
[CORE] Refactoring core 2021-09-14 13:05:26 +01:00
Hugo Sales 87bc60a806
[UI][CONFIG] Added admin configuration form 2021-09-14 13:05:26 +01:00
Hugo Sales 436b44df89
[I18N] Fix i18n and add default domain 'Core' 2021-09-14 13:05:26 +01:00
Hugo Sales 13ae29cae2
[DEFAULTS] Fix default config loading logic 2021-09-14 13:05:26 +01:00
Hugo Sales 7c18f10bd2
[TOOLS] Fixed all licence blocks, to use the same, foldable, format 2021-09-14 13:05:26 +01:00
Hugo Sales 82ae4f8920
[DEPENDENCY] Added alchemy/zippy, which adds support for multiple archive formats. Used to allow theme uploads in zip, tar, gz, or other formats 2021-09-14 13:05:26 +01:00
Hugo Sales 02db154495
[DOCUMENTATION][DEFAULTS] Documented all defaults and updated some. Restructured other documentation. 2021-09-14 13:05:26 +01:00
Hugo Sales 4deb446f39
[DEFAULTS] Remove deprecated defaults and convert them to snake_case 2021-09-14 13:05:26 +01:00
Hugo Sales 6cc19b83df
[GIT] Added docker-compose to gitignore, in preparation for using a script to generate them 2021-09-14 13:05:26 +01:00
Hugo Sales a794c28e75
[DATABASE] Change the way defaults are loaded, bulk insert, reload everything in debug mode, only on http requests (not command line) 2021-09-14 13:05:25 +01:00
Hugo Sales 5a61098d28
[TOOLS] Update install scripts 2021-09-14 13:05:25 +01:00
Hugo Sales 988be9dbf1
[DATABASE] Fix 'relation config doesn't exist' 2021-09-14 13:05:25 +01:00
Hugo Sales 0ccc359880
[DATABASE] Postgres doesn't understand '0000-00-00 00:00:00' for datetime, use '-infinity' 2021-09-14 13:05:25 +01:00
Hugo Sales aaf38353ea
[DOCKER] Change postgres data path to the correct one 2021-09-14 13:05:25 +01:00
Hugo Sales b9bc88ddbf
[DATABASE][CONFIG] Loading defaults into database, doctrine static wrapper 2021-09-14 13:05:25 +01:00
Hugo Sales cdb863ba17
[DATABASE][CONFIG] Bring default configs from V2 and implement DATABASE wrapper 2021-09-14 13:05:25 +01:00
Hugo Sales 736a1f7012
[ASSETS] Import old favicon.ico 2021-09-14 13:05:25 +01:00
Hugo Sales dd559402cd
[CORE][UTIL] Moved classes from util to core
And splitted up Common
2021-09-14 13:05:25 +01:00
Hugo Sales f628665589
[FORMATTING] Cherry-pick of Diogo's 763ac735c0758624ebd5957993dc0676b865927a 2021-09-14 13:05:24 +01:00
Diogo Cordeiro f60e37ba3d
[DOCKER][BOOTSTRAP] Add option to use a self signed cert 2021-09-14 13:05:24 +01:00
Diogo Cordeiro cb7518a750
[DOCUMENTATION][TOOL] Small bug fixes and docblock elaboration 2021-09-14 13:05:24 +01:00
Hugo Sales 243aefe683
[CORE] Rename GNU social constants 2021-09-14 13:05:04 +01:00
Hugo Sales 09e70da366
[DOCUMENTATION] Updated INSTALL.md to reflect the fact that a CNAME record can be used directly 2021-09-14 13:05:04 +01:00
Hugo Sales 9449dd26c5
[DOCUMENTATION] Import installation instructions for installing without docker from V2 2021-09-14 13:05:04 +01:00
Hugo Sales 1ce5661f70
[DOCKER] Small fixes to docker setup, imported from V2 2021-09-14 13:05:03 +01:00
Hugo Sales bf88c97f4a
[DOCUMENTATION] Added a code walkthrough document, which explains how the codebase works 2021-09-14 13:05:03 +01:00
Hugo Sales 0620d9a726
[DOCUMENTATION] Added install documentation 2021-09-14 13:05:03 +01:00
Hugo Sales 8a86c5940d
[TOOLS] Updated install script to also support mariadb 2021-09-14 13:05:03 +01:00
Hugo Sales 50e450f082
[TOOLS][DOCKER] Further fixes in the docker environment and fixed the install script 2021-09-14 13:05:03 +01:00
Hugo Sales b1afa9cf91
[DOCKER] Fixed docker environment to properly configure the app environment 2021-09-14 13:05:03 +01:00
Hugo Sales cf1a9fe893
[TOOLS] Added script to configure the installation and to bootstrap certificate creation with Let's Encrypt 2021-09-14 13:05:03 +01:00
Hugo Sales e0b26ad38b
[TOOLS][SSL] Added bin/boostrap_certificates.sh, allowing for easy configuration of SSL certificates with Let's Encrypt 2021-09-14 13:05:03 +01:00
Hugo Sales 06b5fe2cdf
[TOOLS][DOCUMENTATION] Improvements to entity generation script 2021-09-14 13:04:39 +01:00
Hugo Sales cbbdae6831
[DOCUMENTATION] Added generated diagram 2021-09-14 13:04:39 +01:00
Hugo Sales bb5cdc03e4
[DOCUMENTATION][TOOLS] Wrote a tool to generate entity diagrams from the database definition 2021-09-14 13:04:39 +01:00
Hugo Sales a7cc7f4e27
[UTIL] Wrote HTML library to convert arrays to html 2021-09-14 13:04:39 +01:00
Hugo Sales 8ff0f230ed
[GITIGNORE] Add file folder to gitignore 2021-09-14 13:04:39 +01:00
Hugo Sales fe73001c36
[DATABASE] Changed the type of the 'id' field of the ProfileList table from serial to int, as doctrine complains otherwise 2021-09-14 13:04:39 +01:00
Hugo Sales afc4e87353
[TOOLS][CS-FIX] Altered some php-cs-fix rules 2021-09-14 13:04:38 +01:00
Hugo Sales 1f35af7169
[DATABASE][AUTOCODE] Update autocode to use \DateTimeInterface instead of DateTime 2021-09-14 13:04:38 +01:00
Hugo Sales c583c0f266
[TOOLS] Fix the generate_entities_fields script 2021-09-14 13:04:38 +01:00
Hugo Sales 42321b936f
[SCHEMADEF] Bug fixes 2021-09-14 13:04:38 +01:00
Hugo Sales eee803d2e9
[DATABASE] Add missing table names 2021-09-14 13:04:38 +01:00
Hugo Sales e022a5e65e
[MODULES] Fix small error in modules manager 2021-09-14 13:04:38 +01:00
Hugo Sales 6193062590
[DATABASE][AUTOCODE] Autogenerated fields, setters and getters for each entity 2021-09-14 13:04:38 +01:00
Hugo Sales 55bc66d7ed
[TOOLS][AUTOCODE] Fixed generate_entities script 2021-09-14 13:04:38 +01:00
Hugo Sales 7e47846b80
[TOOLS] Change autocode tag to allow editor folding 2021-09-14 13:04:38 +01:00
Hugo Sales f1e72255f1
[DATABASE] Removed calls to common_config 2021-09-14 13:04:37 +01:00
Hugo Sales 03a8c80c4f
[FORMATTING] Changed license block format to allow folding 2021-09-14 13:04:37 +01:00
Hugo Sales 8d41944f90
[DATABASE] Extracted schemaDef method from old files and refactored onto new files 2021-09-14 13:04:37 +01:00
Hugo Sales c38b9a1503
[COMMON] Added toCamelCase and toSnakeCase functions 2021-09-14 13:04:37 +01:00
Hugo Sales 98a5b89e42
[TOOLS] Add script used to port from old class files to entities 2021-09-14 13:04:37 +01:00
Hugo Sales 24c8fefe58
[CORE][DATABASE] Import old classes folder into src/Entity 2021-09-14 13:04:37 +01:00
Hugo Sales 8fd54efe8d
[DATABASE] Remove testing entity 2021-09-14 13:04:37 +01:00
Hugo Sales 1c3ed4cddb
[TOOLS] Add command which imports a file with it's history 2021-09-14 13:04:37 +01:00
Hugo Sales 0c79dfc67b
[MODULES] Rename extensions to modules, add example plugin, change plugin location 2021-09-14 13:04:37 +01:00
Hugo Sales 596009c924
[DOCUMENTATION] Document All The Things! 2021-09-14 13:04:33 +01:00
Hugo Sales 5d1685b142
[CORE][ROUTES] Implemented custom router, with an interface similar to the old one, which allows routes to be seperated into files 2021-09-14 13:01:35 +01:00
Hugo Sales e92a0227a1
[COMMAND][EVENTS] Added command to list events and handlers, and search by regex 2021-09-14 13:01:35 +01:00
Hugo Sales b50909a335
[CORE][COMMAND] Register internal structures on command event 2021-09-14 13:01:34 +01:00
Hugo Sales 6df658a987
[CORE][EXTENSIONS] Added extension (modules, plugins) loading and test plugin, which is able to handle events 2021-09-14 13:01:34 +01:00
Hugo Sales cfc269aca4
[CORE][SCHEMADEF] Clean up SchemaDef compiler pass 2021-09-14 13:01:34 +01:00
Hugo Sales 23b47b2aeb
[CS-FIXER] Updated cs-fixer rules and added a temporary exception to the src/Entity folder (awaiting pr merge) 2021-09-14 13:01:34 +01:00
Hugo Sales e3c0669b37
[DOCTRINE][SCRIPT] Created a script to generate the class fields and accessors from the schema definition 2021-09-14 13:01:34 +01:00
Hugo Sales 1b45936f19
[DOCTRINE][SCHEMADEF] Small refactoring 2021-09-14 13:01:34 +01:00
Hugo Sales 2c9a732256
[CORE][DOCTRINE] Implement SchemaDefDriver, which transforms the old syntax from to doctrine's metadata 2021-09-14 13:01:34 +01:00
Hugo Sales 4d7c8628f6
[DOCTRINE] Configure cli-config for doctrine console and ensure DATABASE is set to UTF-8 2021-09-14 13:01:34 +01:00
Hugo Sales cc72373e3d
[DOCTRINE][SCHEMADEF] Create a new metadata driver to allow us to continue using static schemaDef functions
This has the benefit of requiring fewer code changes, as well as providing a better isolation
between GNU social and symfony, useful in case the framework needs to be changed
2021-09-14 13:01:34 +01:00
Hugo Sales 710aa946ab
[COMPOSER] Update composer dependencies 2021-09-14 13:01:33 +01:00
Hugo Sales 2215b05894
[CORE][I18N] Fix the translation system 2021-09-14 13:01:33 +01:00
Hugo Sales 2b9a15c1e9
[CORE][I18N] Port the translation system to rely on symfony's 2021-09-14 13:01:33 +01:00
Hugo Sales feaee1b238
[CORE][EVENTS] Bring existing Events and Boostrapper back
- Adapt the existing event system to rely on Symfony's event dispatcher
2021-09-14 13:01:33 +01:00
Hugo Sales b396f1227a
[CORE][ROUTES] Example route 2021-09-14 13:01:33 +01:00
Hugo Sales 7da61f8db5
[DOCKER] Updated dockerfile to add memcached 2021-09-14 13:01:33 +01:00
Hugo Sales d6bb3e7caa
[DOCKER] Added preliminary docker container 2021-09-14 13:01:33 +01:00
Hugo Sales 633a3b0773
[COMPOSER] Update composer packages 2021-09-14 13:01:33 +01:00
Hugo Sales 4b31c1f48f
[V3] Big Bang
Beginning anew, this time with a modern framework: symfony
2021-09-14 13:01:33 +01:00
Hugo Sales 11154a0d8c
[V3] Big Crunch
And so, just as it begins, so too must it end
One should not dwell and stall, for more is to come
2021-09-14 13:01:23 +01:00
Diogo Peralta Cordeiro 50dd4fee0e [CORE] Bump PHP version to 7.4 2021-07-18 13:08:41 +01:00
Diogo Peralta Cordeiro 7d8988d50c [VersionBump] 2.0.0beta0
Updated composer and translations

composer install --no-dev
composer dump-autoload --optimize
git add vendor/ --force
make updatepo
2021-07-18 12:51:07 +01:00
Maiyannah Bishop 58d9b91dd3 [API] Security hotfix for source, picked from postActive 2021-07-17 20:25:36 +01:00
Diogo Peralta Cordeiro b6bcd3b8c0 [PEAR] Force using extlib's patched version 2021-07-16 18:31:30 +01:00
Diogo Peralta Cordeiro 31433db539 [ActivityPub][POSTMAN] Do not die on network errors 2021-07-16 18:03:12 +01:00
Diogo Peralta Cordeiro bdb4c54fa8 [DirectMessage] Fix some wrong calls after MessageModel introduction in d9a9a3746b 2021-07-16 17:36:33 +01:00
Diogo Peralta Cordeiro 55293e4008 [ActivityPub][INBOX] CREATE NOTE Attachments, we handle enclosures elsewhere
It was trying to make enclosures with objects instead of strings, also attachments don't use this, only links
2021-07-16 17:07:13 +01:00
Diogo Peralta Cordeiro 066dfbb66d [MEDIA][MediaFile] Prevent issues with huge original filenames 2021-07-16 15:48:02 +01:00
Diogo Peralta Cordeiro bb2c845f62 [ActivityPub][INBOX] CREATE NOTE now accepts <br> tag 2021-07-16 15:48:02 +01:00
Diogo Peralta Cordeiro fbeadc1d49 [StoreRemoteMedia][SCRIPTS] Fix typo in query
This was introduced in 11ebb98919f56f7dcf888adfbebf9e8826f995b4#diff-96141878409d7418ea5a9eefbde509b43482c01R70
The arg number should have been one, as there's only one...
2021-07-16 15:46:25 +01:00
Alexei Sorokin b6ce12a267 Update the project homepage and IRC channel 2021-06-12 11:30:12 +03:00
Hugo Sales 3b86f06134 [INSTALL] Update mailing list URL, as recommended by @Gijs
Closes notabug issue #327
2021-05-10 13:56:16 +00:00
20295 changed files with 77050 additions and 3119544 deletions

3
.dir-locals.el Normal file
View File

@ -0,0 +1,3 @@
((nil . ((php-project-root . auto)
(phpstan-executable . (root . "bin/phpstan"))
)

43
.env Normal file
View File

@ -0,0 +1,43 @@
# In all environments, the following files are loaded if they exist,
# the latter taking precedence over the former:
#
# * .env contains default values for the environment variables needed by the app
# * .env.local uncommitted file with local overrides
# * .env.$APP_ENV committed environment-specific defaults
# * .env.$APP_ENV.local uncommitted environment-specific overrides
#
# Real environment variables win over .env files.
#
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
#
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=6a9ac3a09c73230107373e8e0b71e0a3
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
#TRUSTED_HOSTS='^(localhost|example\.com)$'
###< symfony/framework-bundle ###
###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
###< symfony/mailer ###
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# For a PostgreSQL database, use: "postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=11&charset=utf8"
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
DATABASE_URL=postgresql://postgres:foobar@postgres:5432/social
#?serverVersion=11&charset=utf8
###< doctrine/doctrine-bundle ###
SHELL_VERBOSITY=3
###> symfony/messenger ###
# Choose one of the transports below
# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
MESSENGER_TRANSPORT_DSN_HIGH=doctrine://default?queue_name=high
MESSENGER_TRANSPORT_DSN_LOW=doctrine://default?queue_name=low
# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
###< symfony/messenger ###

6
.env.test Normal file
View File

@ -0,0 +1,6 @@
# define your env variables for the test env here
KERNEL_CLASS='App\Kernel'
APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther
DATABASE_URL=postgresql://postgres:password@db:5432/social

81
.gitignore vendored
View File

@ -1,19 +1,64 @@
avatar/
files/
file/
local/
logs/
log/
run/
config.php
.htaccess
httpd.conf
dataobject.ini
*.bak
*.orig
*.rej
TODO.rym
config-*.php
good-config.php
*.mo
###> symfony/framework-bundle ###
/.env.local
/.env.local.php
/.env.*.local
/config/secrets/prod/prod.decrypt.private.php
/public/bundles/
/var/
/vendor/
###< symfony/framework-bundle ###
###> symfony/phpunit-bridge ###
.phpunit
.phpunit.result.cache
/phpunit.xml
###< symfony/phpunit-bridge ###
###> friendsofphp/php-cs-fixer ###
!.php-cs-fixer.php
/.php_cs.cache
/.php-cs-fixer.cache
###< friendsofphp/php-cs-fixer ###
###> phpunit/phpunit ###
/phpunit.xml
.phpunit.result.cache
###< phpunit/phpunit ###
DOCUMENTATION/database/*
!DOCUMENTATION/database/database.pdf
docker/certbot/.files
docker/certbot/www
docker/*/*.env
docker/mail/etc/hostname
docker/mail/etc/hosts
docker/mail/etc/resolv.conf
docker/mail/config/aliases.db
docker/mail/config/domains.db
docker/mail/config/mailboxes.db
docker/mail/config/passwd.db
docker/mail/etc/service/*
!docker/mail/etc/service/*/run
!docker/testing/*
!docker/testing/docker-compose.yaml
docker/testing/*~
docker-compose.yaml
composer.local.json
social.local.yaml
# V2
config.php
/file
notes
.test_coverage_report
.phpunit_cache

378
.php-cs-fixer.php Normal file
View File

@ -0,0 +1,378 @@
<?php
declare(strict_types = 1);
/*
* This document has been generated with
* https://mlocati.github.io/php-cs-fixer-configurator/#version:3.2.1|configurator
* you can change this configuration by importing this file.
*/
$config = new PhpCsFixer\Config();
return $config
->setRiskyAllowed(true)
->setRules([
// Each line of multi-line DocComments must have an asterisk [PSR-5] and must be aligned with the first one.
'align_multiline_comment' => ['comment_type' => 'phpdocs_like'],
// Each element of an array must be indented exactly once.
'array_indentation' => true,
// Converts simple usages of `array_push($x, $y);` to `$x[] = $y;`.
'array_push' => true,
// PHP arrays should be declared using the configured syntax.
'array_syntax' => ['syntax' => 'short'],
// Use the null coalescing assignment operator `??=` where possible.
'assign_null_coalescing_to_coalesce_equal' => true,
// Binary operators should be surrounded by space as configured.
'binary_operator_spaces' => ['default' => 'align_single_space_minimal', 'operators' => ['??' => 'align']],
// There MUST be one blank line after the namespace declaration.
'blank_line_after_namespace' => true,
// Ensure there is no code on the same line as the PHP open tag and it is followed by a blank line.
'blank_line_after_opening_tag' => true,
// The body of each structure MUST be enclosed by braces. Braces should be properly placed. Body of braces should be properly indented.
'braces' => ['allow_single_line_anonymous_class_with_empty_body' => true, 'allow_single_line_closure' => true, 'position_after_functions_and_oop_constructs' => 'next'],
// A single space or none should be between cast and variable.
'cast_spaces' => true,
// Whitespace around the keywords of a class, trait or interfaces definition should be one space.
'class_definition' => ['single_item_single_line' => true, 'single_line' => true],
// Using `isset($var) &&` multiple times should be done in one call.
'combine_consecutive_issets' => true,
// Calling `unset` on multiple items should be done in one call.
'combine_consecutive_unsets' => true,
// Replace multiple nested calls of `dirname` by only one call with second `$level` parameter. Requires PHP >= 7.0.
'combine_nested_dirname' => true,
// Comments with annotation should be docblock when used on structural elements.
'comment_to_phpdoc' => false,
// Remove extra spaces in a nullable typehint.
'compact_nullable_typehint' => true,
// Concatenation should be spaced according configuration.
'concat_space' => ['spacing' => 'one'],
// The PHP constants `true`, `false`, and `null` MUST be written using the correct casing.
'constant_case' => true,
// Equal sign in declare statement should be surrounded by spaces or not following configuration.
'declare_equal_normalize' => ['space' => 'single'],
// There must not be spaces around `declare` statement parentheses.
'declare_parentheses' => true,
// Force strict types declaration in all files. Requires PHP >= 7.0.
'declare_strict_types' => true,
// Replaces `dirname(__FILE__)` expression with equivalent `__DIR__` constant.
'dir_constant' => true,
// Replaces short-echo `<?=` with long format `<?php echo`/`<?php print` syntax, or vice-versa.
'echo_tag_syntax' => true,
// The keyword `elseif` should be used instead of `else if` so that all control keywords look like single words.
'elseif' => true,
// Empty loop-body must be in configured style.
'empty_loop_body' => true,
// Empty loop-condition must be in configured style.
'empty_loop_condition' => true,
// PHP code MUST use only UTF-8 without BOM (remove BOM).
'encoding' => true,
// Replace deprecated `ereg` regular expression functions with `preg`.
'ereg_to_preg' => true,
// Escape implicit backslashes in strings and heredocs to ease the understanding of which are special chars interpreted by PHP and which not.
'escape_implicit_backslashes' => true,
// Add curly braces to indirect variables to make them clear to understand. Requires PHP >= 7.0.
'explicit_indirect_variable' => true,
// Converts implicit variables into explicit ones in double-quoted strings or heredoc syntax.
'explicit_string_variable' => true,
// PHP code must use the long `<?php` tags or short-echo `<?=` tags and not other tag variations.
'full_opening_tag' => true,
// Transforms imported FQCN parameters and return types in function arguments to short version.
'fully_qualified_strict_types' => true,
// Spaces should be properly placed in a function declaration.
'function_declaration' => ['closure_function_spacing' => 'one'],
// Ensure single space between function's argument and its typehint.
'function_typehint_space' => true,
// Imports or fully qualifies global classes/functions/constants.
'global_namespace_import' => true,
// Heredoc/nowdoc content must be properly indented. Requires PHP >= 7.3.
'heredoc_indentation' => true,
// Convert `heredoc` to `nowdoc` where possible.
'heredoc_to_nowdoc' => true,
// Function `implode` must be called with 2 arguments in the documented order.
'implode_call' => true,
// Pre- or post-increment and decrement operators should be used if possible.
'increment_style' => true,
// Code MUST use configured indentation type.
'indentation_type' => true,
// Lambda must not import variables it doesn't use.
'lambda_not_used_import' => true,
// All PHP files must use same line ending.
'line_ending' => true,
// Ensure there is no code on the same line as the PHP open tag.
'linebreak_after_opening_tag' => true,
// List (`array` destructuring) assignment should be declared using the configured syntax. Requires PHP >= 7.1.
'list_syntax' => ['syntax' => 'short'],
// Use `&&` and `||` logical operators instead of `and` and `or`.
'logical_operators' => true,
// Cast should be written in lower case.
'lowercase_cast' => true,
// PHP keywords MUST be in lower case.
'lowercase_keywords' => true,
// Class static references `self`, `static` and `parent` MUST be in lower case.
'lowercase_static_reference' => true,
// Magic constants should be referred to using the correct casing.
'magic_constant_casing' => true,
// Magic method definitions and calls must be using the correct casing.
'magic_method_casing' => true,
// Replace non multibyte-safe functions with corresponding mb function.
'mb_str_functions' => true,
// In method arguments and method call, there MUST NOT be a space before each comma and there MUST be one space after each comma. Argument lists MAY be split across multiple lines, where each subsequent line is indented once. When doing so, the first item in the list MUST be on the next line, and there MUST be only one argument per line.
'method_argument_space' => ['after_heredoc' => true, 'on_multiline' => 'ensure_fully_multiline'],
// Method chaining MUST be properly indented. Method chaining with different levels of indentation is not supported.
'method_chaining_indentation' => true,
// Replace `strpos()` calls with `str_starts_with()` or `str_contains()` if possible.
'modernize_strpos' => true,
// Replaces `intval`, `floatval`, `doubleval`, `strval` and `boolval` function calls with according type casting operator.
'modernize_types_casting' => true,
// DocBlocks must start with two asterisks, multiline comments must start with a single asterisk, after the opening slash. Both must end with a single asterisk before the closing slash.
'multiline_comment_opening_closing' => true,
// Forbid multi-line whitespace before the closing semicolon or move the semicolon to the new line for chained calls.
'multiline_whitespace_before_semicolons' => true,
// Add leading `\` before constant invocation of internal constant to speed up resolving. Constant name match is case-sensitive, except for `null`, `false` and `true`.
'native_constant_invocation' => true,
// Function defined by PHP should be called using the correct casing.
'native_function_casing' => true,
// Add leading `\` before function invocation to speed up resolving.
'native_function_invocation' => true,
// Native type hints for functions should use the correct case.
'native_function_type_declaration_casing' => true,
// Master language constructs shall be used instead of aliases.
'no_alias_language_construct_call' => true,
// Replace control structure alternative syntax to use braces.
'no_alternative_syntax' => true,
// There should be no empty lines after class opening brace.
'no_blank_lines_after_class_opening' => true,
// There should not be blank lines between docblock and the documented element.
'no_blank_lines_after_phpdoc' => true,
// There must be a comment when fall-through is intentional in a non-empty case body.
'no_break_comment' => true,
// The closing `? >` tag MUST be omitted from files containing only PHP.
'no_closing_tag' => true,
// There should not be any empty comments.
'no_empty_comment' => true,
// There should not be empty PHPDoc blocks.
'no_empty_phpdoc' => true,
// Remove useless (semicolon) statements.
'no_empty_statement' => true,
// Removes extra blank lines and/or blank lines following configuration.
'no_extra_blank_lines' => true,
// Remove leading slashes in `use` clauses.
'no_leading_import_slash' => true,
// The namespace declaration line shouldn't contain leading whitespace.
'no_leading_namespace_whitespace' => true,
// Either language construct `print` or `echo` should be used.
'no_mixed_echo_print' => true,
// Operator `=>` should not be surrounded by multi-line whitespaces.
'no_multiline_whitespace_around_double_arrow' => true,
// Properties MUST not be explicitly initialized with `null` except when they have a type declaration (PHP 7.4).
'no_null_property_initialization' => true,
// Short cast `bool` using double exclamation mark should not be used.
'no_short_bool_cast' => true,
// Single-line whitespace before closing semicolon are prohibited.
'no_singleline_whitespace_before_semicolons' => true,
// There must be no space around double colons (also called Scope Resolution Operator or Paamayim Nekudotayim).
'no_space_around_double_colon' => true,
// When making a method or function call, there MUST NOT be a space between the method or function name and the opening parenthesis.
'no_spaces_after_function_name' => true,
// There MUST NOT be spaces around offset braces.
'no_spaces_around_offset' => true,
// There MUST NOT be a space after the opening parenthesis. There MUST NOT be a space before the closing parenthesis.
'no_spaces_inside_parenthesis' => true,
// Removes `@param`, `@return` and `@var` tags that don't provide any useful information.
'no_superfluous_phpdoc_tags' => true,
// Remove trailing commas in list function calls.
'no_trailing_comma_in_list_call' => true,
// PHP single-line arrays should not have trailing comma.
'no_trailing_comma_in_singleline_array' => true,
// Remove trailing whitespace at the end of non-blank lines.
'no_trailing_whitespace' => true,
// There MUST be no trailing spaces inside comment or PHPDoc.
'no_trailing_whitespace_in_comment' => true,
// Removes unneeded parentheses around control statements.
'no_unneeded_control_parentheses' => true,
// Removes unneeded curly braces that are superfluous and aren't part of a control structure's body.
'no_unneeded_curly_braces' => true,
// In function arguments there must not be arguments with default values before non-default ones.
'no_unreachable_default_argument_value' => true,
// Variables must be set `null` instead of using `(unset)` casting.
'no_unset_cast' => true,
// Unused `use` statements must be removed.
'no_unused_imports' => true,
// There should not be an empty `return` statement at the end of a function.
'no_useless_return' => true,
// In array declaration, there MUST NOT be a whitespace before each comma.
'no_whitespace_before_comma_in_array' => true,
// Remove trailing whitespace at the end of blank lines.
'no_whitespace_in_blank_line' => true,
// Remove Zero-width space (ZWSP), Non-breaking space (NBSP) and other invisible unicode symbols.
'non_printable_character' => true,
// Array index should always be written by using square braces.
'normalize_index_brace' => true,
// Adds or removes `?` before type declarations for parameters with a default `null` value.
'nullable_type_declaration_for_default_null_value' => true,
// There should not be space before or after object operators `->` and `?->`.
'object_operator_without_whitespace' => true,
// Operators - when multiline - must always be at the beginning or at the end of the line.
'operator_linebreak' => true,
// Ordering `use` statements.
'ordered_imports' => true,
// PHPUnit assertion method calls like `->assertSame(true, $foo)` should be written with dedicated method like `->assertTrue($foo)`.
'php_unit_construct' => true,
// PHPUnit assertions like `assertInternalType`, `assertFileExists`, should be used over `assertTrue`.
'php_unit_dedicate_assert' => true,
// PHPUnit assertions like `assertIsArray` should be used over `assertInternalType`.
'php_unit_dedicate_assert_internal_type' => true,
// Usages of `->setExpectedException*` methods MUST be replaced by `->expectException*` methods.
'php_unit_expectation' => true,
// PHPUnit annotations should be a FQCNs including a root namespace.
'php_unit_fqcn_annotation' => true,
// Enforce camel (or snake) case for PHPUnit test methods, following configuration.
'php_unit_method_casing' => true,
// Usage of PHPUnit's mock e.g. `->will($this->returnValue(..))` must be replaced by its shorter equivalent such as `->willReturn(...)`.
'php_unit_mock_short_will_return' => true,
// PHPUnit classes MUST be used in namespaced version, e.g. `\PHPUnit\Framework\TestCase` instead of `\PHPUnit_Framework_TestCase`.
'php_unit_namespaced' => true,
// Usages of `@expectedException*` annotations MUST be replaced by `->setExpectedException*` methods.
'php_unit_no_expectation_annotation' => true,
// Changes the visibility of the `setUp()` and `tearDown()` functions of PHPUnit to `protected`, to match the PHPUnit TestCase.
'php_unit_set_up_tear_down_visibility' => true,
// PHPUnit methods like `assertSame` should be used instead of `assertEquals`.
'php_unit_strict' => true,
// Calls to `PHPUnit\Framework\TestCase` static methods must all be of the same type, either `$this->`, `self::` or `static::`.
'php_unit_test_case_static_method_calls' => true,
// PHPDoc should contain `@param` for all params.
'phpdoc_add_missing_param_annotation' => true,
// All items of the given phpdoc tags must be either left-aligned or (by default) aligned vertically.
'phpdoc_align' => true,
// PHPDoc annotation descriptions should not be a sentence.
'phpdoc_annotation_without_dot' => true,
// Docblocks should have the same indentation as the documented subject.
'phpdoc_indent' => true,
// Fixes PHPDoc inline tags.
'phpdoc_inline_tag_normalizer' => true,
// Changes doc blocks from single to multi line, or reversed. Works for class constants, properties and methods only.
'phpdoc_line_span' => true,
// `@access` annotations should be omitted from PHPDoc.
'phpdoc_no_access' => true,
// No alias PHPDoc tags should be used.
'phpdoc_no_alias_tag' => true,
// `@return void` and `@return null` annotations should be omitted from PHPDoc.
'phpdoc_no_empty_return' => true,
// Classy that does not inherit must not have `@inheritdoc` tags.
'phpdoc_no_useless_inheritdoc' => true,
// Annotations in PHPDoc should be ordered so that `@param` annotations come first, then `@throws` annotations, then `@return` annotations.
'phpdoc_order' => true,
// Order phpdoc tags by value.
'phpdoc_order_by_value' => ['annotations' => ['covers', 'throws']],
// The type of `@return` annotations of methods returning a reference to itself must the configured one.
'phpdoc_return_self_reference' => true,
// Scalar types should always be written in the same form. `int` not `integer`, `bool` not `boolean`, `float` not `real` or `double`.
'phpdoc_scalar' => true,
// Annotations in PHPDoc should be grouped together so that annotations of the same type immediately follow each other, and annotations of a different type are separated by a single blank line.
'phpdoc_separation' => true,
// Single line `@var` PHPDoc should have proper spacing.
'phpdoc_single_line_var_spacing' => true,
// Fixes casing of PHPDoc tags.
'phpdoc_tag_casing' => true,
// Would be neat, but breaks cases where the parents don't have annotations
// // EXPERIMENTAL: Takes `@param` annotations of non-mixed types and adjusts accordingly the function signature. Requires PHP >= 7.0.
// 'phpdoc_to_param_type' => true,
// // EXPERIMENTAL: Takes `@var` annotation of non-mixed types and adjusts accordingly the property signature. Requires PHP >= 7.4.
// 'phpdoc_to_property_type' => true,
// // EXPERIMENTAL: Takes `@return` annotation of non-mixed types and adjusts accordingly the function signature. Requires PHP >= 7.0.
// 'phpdoc_to_return_type' => true,
// PHPDoc should start and end with content, excluding the very first and last line of the docblocks.
'phpdoc_trim' => true,
// Removes extra blank lines after summary and after description in PHPDoc.
'phpdoc_trim_consecutive_blank_line_separation' => true,
// The correct case must be used for standard PHP types in PHPDoc.
'phpdoc_types' => true,
// Sorts PHPDoc types.
'phpdoc_types_order' => true,
// `@var` and `@type` annotations must have type and name in the correct order.
'phpdoc_var_annotation_correct_order' => true,
// Converts `pow` to the `**` operator.
'pow_to_exponentiation' => true,
// Replaces `rand`, `srand`, `getrandmax` functions calls with their `mt_*` analogs or `random_int`.
'random_api_migration' => true,
// Callables must be called without using `call_user_func*` when possible.
'regular_callable_call' => true,
// Local, dynamic and directly referenced variables should not be assigned and directly returned by a function or method.
'return_assignment' => true,
// There should be one or no space before colon, and one space after it in return type declarations, according to configuration.
'return_type_declaration' => true,
// Inside class or interface element `self` should be preferred to the class name itself.
'self_accessor' => true,
// Instructions must be terminated with a semicolon.
'semicolon_after_instruction' => true,
// Cast shall be used, not `settype`.
'set_type_to_cast' => true,
// Cast `(boolean)` and `(integer)` should be written as `(bool)` and `(int)`, `(double)` and `(real)` as `(float)`, `(binary)` as `(string)`.
'short_scalar_cast' => true,
// Converts explicit variables in double-quoted strings and heredoc syntax from simple to complex format (`${` to `{$`).
'simple_to_complex_string_variable' => true,
// Simplify `if` control structures that return the boolean result of their condition.
'simplified_if_return' => true,
// A return statement wishing to return `void` should not return `null`.
'simplified_null_return' => true,
// A PHP file without end tag must always end with a single empty line feed.
'single_blank_line_at_eof' => true,
// There should be exactly one blank line before a namespace declaration.
'single_blank_line_before_namespace' => true,
// There MUST NOT be more than one property or constant declared per statement.
'single_class_element_per_statement' => true,
// There MUST be one use keyword per declaration.
'single_import_per_statement' => true,
// Each namespace use MUST go on its own line and there MUST be one blank line after the use statements block.
'single_line_after_imports' => true,
// Single-line comments and multi-line comments with only one line of actual content should use the `//` syntax.
'single_line_comment_style' => true,
// Convert double quotes to single quotes for simple strings.
'single_quote' => true,
// Ensures a single space after language constructs.
'single_space_after_construct' => true,
// Each trait `use` must be done as single statement.
'single_trait_insert_per_statement' => true,
// Fix whitespace after a semicolon.
'space_after_semicolon' => true,
// Increment and decrement operators should be used if possible.
'standardize_increment' => true,
// Replace all `<>` with `!=`.
'standardize_not_equals' => true,
// String tests for empty must be done against `''`, not with `strlen`.
'string_length_to_empty' => true,
// A case should be followed by a colon and not a semicolon.
'switch_case_semicolon_to_colon' => true,
// Removes extra spaces between colon and case value.
'switch_case_space' => true,
// Switch case must not be ended with `continue` but with `break`.
'switch_continue_to_break' => true,
// Standardize spaces around ternary operator.
'ternary_operator_spaces' => true,
// Use the Elvis operator `?:` where possible.
'ternary_to_elvis_operator' => true,
// Use `null` coalescing operator `??` where possible. Requires PHP >= 7.0.
'ternary_to_null_coalescing' => true,
// Multi-line arrays, arguments list and parameters list must have a trailing comma.
'trailing_comma_in_multiline' => ['after_heredoc' => true, 'elements' => ['arguments', 'arrays', 'parameters']],
// Arrays should be formatted like function/method arguments, without leading or trailing single line space.
'trim_array_spaces' => true,
// A single space or none should be around union type operator.
'types_spaces' => true,
// Unary operators should be placed adjacent to their operands.
'unary_operator_spaces' => true,
// Anonymous functions with one-liner return statement must use arrow functions.
'use_arrow_functions' => true,
// Visibility MUST be declared on all properties and methods; `abstract` and `final` MUST be declared before the visibility; `static` MUST be declared after the visibility.
'visibility_required' => true,
// In array declaration, there MUST be a whitespace after each comma.
'whitespace_after_comma_in_array' => true,
])
->setFinder(
PhpCsFixer\Finder::create()
->exclude('vendor')
->exclude('var')
->exclude('docker')
->exclude('src/Entity')
->notPath('src/Core/DB/DefaultSettings.php')
->in(__DIR__),
);

View File

@ -1,109 +0,0 @@
# GNU social - Log of Changes
## 2.0.0 - THIS. IS. GNU SOCIAL!!! [WIP]
Release name chosen after 300 by Frank Miller where the main protagonist Leonidas, King of Sparta, declines peace with the
Persians, after being disrespected, by shouting at the Persian Messenger "This is Sparta!" and kicking him into a large well
proceeded by the killing of the other Persian messengers.
### Major changes from previous release:
Load and Storage:
- New media handling system
- GS is now structurely divided in includes and public
- OEmbed upgraded to Embed plugin (Now we provide Open Graph information too)
- Added Redis based caching and queues
- Improved memcached support
Federation:
- Added ActivityPub support
- RemoteFollow: Remote follow ActivityPub and OStatus remote actors via the click of a button
- ActorLists: Allow to create collections of Actors and to interact with them - supports both OStatus and ActivityPub
- The Free Network: Automagically migrate internal remote profiles between Free Network protocols
- Enabled the search box to import remote notices and profiles
- Improvements on Nodeinfo (and new route)
General:
- Composer was integrated
Modules:
- Restored built-in plugins
- New modules system: core plugins and plugins physically separated
- Bug fixes of core modules logic
- Improved plugin management tool (now all available plugins are shown and third party can be uploaded and deleted)
## v1.20.9release - The Invicta Crusade
Dropped Support for PHP5.6.x. Minimum PHP version now is 7.0.0.
Release name chosen after Porto city. Porto is one of the oldest cities in Europe and thanks to its fierce resistance during
two battles and sieges in history, it has earned the epithet of Cidade Invicta (Invincible City). The dev team behind this
release studies in Porto, Portugal.
Major changes from previous release:
- Various patches on PEAR related components
- Various database related improvements
- Improved XMPP support
- Added Nodeinfo support
- Various i18n and l10n bug fixes
- Improvements on Internal Session Handler
- Improvements on OpenID support
- Improved Media handling and safer upload
- Redirect to previous page after login
- Initial work on full conversion to PHP7
- Initial work on a better documentation
- Allow login with email
- Various bug fixes
## v1.2.0beta4 - The good reign of PHP5
Dropped support for PHP5.4.
New this version
This is the development branch for the 1.2.x version of GNU social. All daring 1.1.x admins should upgrade to this version.
So far it includes the following changes:
- Backing up a user's account is more and more complete.
- Emojis 😸 (utf8mb4 support)
The last release, 1.1.3, gave us these improvements:
- XSS security fix (thanks Simon Waters, https://www.surevine.com/)
- Many improvements to ease adoption of the Qvitter front-end https://github.com/hannesmannerheim/qvitter
- Protocol adaptions for improved performance and stability
Upgrades from StatusNet 1.1.1 will also experience these improvements:
- Fixes for SQL injection errors in profile lists.
- Improved ActivityStreams JSON representation of activities and objects.
- Upgrade to the Twitter 1.1 API.
- More robust handling of errors in distribution.
- Fix error in OStatus subscription for remote groups.
- Fix error in XMPP distribution.
- Tracking of conversation URI metadata (more coherent convos)
## v1.1.3release - The Spanish Invasion
New this version
This is a security fix and bug fix release since 1.1.3-beta2. All 1.1.x sites should upgrade to this version.
So far it includes the following changes:
- XSS security fix (thanks Simon Waters, https://www.surevine.com/)
- Many improvements to ease adoption of the Qvitter front-end https://github.com/hannesmannerheim/qvitter
- Protocol adaptions for improved performance and stability
- Backing up a user's account now appears to work as it should
Upgrades from StatusNet 1.1.1 will also experience these improvements:
- Fixes for SQL injection errors in profile lists.
- Improved ActivityStreams JSON representation of activities and objects.
- Upgrade to the Twitter 1.1 API.
- More robust handling of errors in distribution.
- Fix error in OStatus subscription for remote groups.
- Fix error in XMPP distribution.
- Tracking of conversation URI metadata (more coherent convos)

View File

@ -1,95 +0,0 @@
## Code of Conduct
### Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
### Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
### Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
### Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
### Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at mattl@gnu.org. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
### Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
## The Code of Conflict
GNU social has a high submission standard and we want to keep quality code in the
codebase and bad code out of it. As such your code will be closely scrutinized,
and you might take this criticism personally. Please understand that this is
meant to keep the standards of the codebase up, and isn't meant personally. All
the same, this isn't an excuse for poor behaviour, and a reviewer shouldn't be
misbehaving towards submitters.
If however, anyone feels personally abused, threatened, or otherwise
uncomfortable due to this process, that is not acceptable. If so, please
contact the project team at mattl@gnu.org, and they will work to resolve the issue
to the best of their ability.
As a reviewer of code, please strive to keep things civil and focused on the
technical issues involved. We are all humans, and frustrations can be high on
both sides of the process. Try to keep in mind the immortal words of Bill and
Ted, "Be excellent to each other."

View File

@ -1 +0,0 @@
GNU social's contributing resources and instructions are made available at [DOCUMENTATION/DEVELOPERS](https://notabug.org/diogo/gnu-social/src/nightly/DOCUMENTATION/DEVELOPERS).

661
COPYING
View File

@ -1,661 +0,0 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<http://www.gnu.org/licenses/>.

View File

@ -3,59 +3,66 @@ Credits for GNU social
The following is an incomplete list of developers
who've worked on GNU social, or its predecessors
StatusNet and Free Social. Apologies for any
oversight; please let mattl@gnu.org know if
oversight; please let mail@diogo.site know if
anyone's been overlooked in error.
Current team
------------
* Matt Lee
* Mikael Nordfeldth
* Diogo Cordeiro
* Bruno Casteleiro
* Miguel Dantas
* Alexei Sorokin
* Diogo Cordeiro
* Eliseu Amaro
* Hugo Sales
V2 team
-------
* Diogo Cordeiro
* Alexei Sorokin
* Bruno Casteleiro
Additional Contributors
-----------------------
* Ciaran Gultnieks
* Michael Landers
* Ori Avtalion
* Garret Buell
* Mike Cochrane
* Matthew Gregg
* Sean Murphy
* Leslie Michael Orchard
* Eric Helgeson
* Ken Sedgwick
* Brian Hendrickson
* Tobias Diekershoff
* Dan Moore
* Fil
* Jeff Mitchell
* Brenda Wallace
* Jeffery To
* Federico Marani
* mEDI
* Brett Taylor
* Brigitte Schuster
* Craig Andrews
* Donald Robertson
* Deb Nicholson
* Ian Denhart
* Steven DuBois
* Blaine Cook
* Henry Story
* Melvin Carvalho
* Stéphane Bérubé
* Akio
* Maiyannah Bishop
* Blaine Cook
* Bob Mottram
* David Yip
* Neil E Hodges
* Moonman
* Normandy
* Verius
* Brenda Wallace
* Brett Taylor
* Brian Hendrickson
* Brigitte Schuster
* Ciaran Gultnieks
* Craig Andrews
* Daniel Supernault
* Dan Moore
* David Yip
* Deb Nicholson
* Donald Robertson
* Eric Helgeson
* Federico Marani
* Fil
* Garret Buell
* Henry Story
* Ian Denhart
* Jeffery To
* Jeff Mitchell
* Ken Sedgwick
* Leslie Michael Orchard
* Maiyannah Bishop
* Matthew Gregg
* Matt Lee
* mEDI
* Melvin Carvalho
* Michael Landers
* Miguel Dantas
* Mikael Nordfeldth
* Mike Cochrane
* Moonman
* Neil E Hodges
* Normandy
* Ori Avtalion
* Sean Murphy
* Stéphane Bérubé
* Steven DuBois
* Tobias Diekershoff
* Verius
Credits for StatusNet
--------------
@ -64,24 +71,24 @@ Leads
* Zach Copley
Team
* Earle Martin
* Marie-Claude Doyon
* Sarven Capadisli
* Robin Millette
* Brion Vibber
* James Walker
* Samantha Doherty
* Florian Biree
* Erik Stambaugh
* 'drry'
* Gina Haeussge
* Tryggvi Björgvinsson
* Adrian Lang
* Ori Avtalion
* Meitar Moscovitz
* Ken Sheppardson
* Simon Waters, Surevine
* Brion Vibber
* 'drry'
* Earle Martin
* Erik Stambaugh
* Florian Biree
* Gina Haeussge
* James Walker
* Joshua Judson Rosen (rozzin)
* Ken Sheppardson
* Marie-Claude Doyon
* Meitar Moscovitz
* Ori Avtalion
* Robin Millette
* Samantha Doherty
* Sarven Capadisli
* Simon Waters, Surevine
* Tryggvi Björgvinsson
Translators
-----------

View File

@ -1,61 +0,0 @@
<?php
// This file is part of GNU social - https://www.gnu.org/software/social
//
// GNU social is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// GNU social is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
/**
* Description of this file.
*
* @package samples
* @author Diogo Cordeiro <diogo@fc.up.pt>
* @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
*/
namespace samples;
defined('GNUSOCIAL') || die();
require_once __DIR__ . DIRECTORY_SEPARATOR . 'SampleHandler.php';
/**
* Description of this class.
*
* @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
*/
class MySampleClass
{
/**
* Constructor for the sample class.
*
* @param string $dummy_word just because.
* @param int $result another just because.
*/
public function __construct(string $dummy_word = '', ?int $result = null)
{
global $demo;
$this->niceWorld();
}
/**
* How cool is this function.
*
* @return string
*/
public function niceWorld(): string
{
return 'hello, world.';
}
}

View File

@ -1,293 +0,0 @@
GNU social Coding Style
===========================
Please comply with [PSR-12](https://www.php-fig.org/psr/psr-12/) and the following standard when working on GNU social
if you want your patches accepted and modules included in supported releases.
If you see code which doesn't comply with the below, please fix it :)
Strings
-------------------------------------------------------------------------------
Use `'` instead of `"` for strings, where substitutions aren't required.
This is a performance issue, and prevents a lot of inconsistent coding styles.
When using substitutions, use curly braces around your variables - like so:
$var = "my_var: {$my_var}";
Comments and Documentation
-------------------------------------------------------------------------------
Comments go on the line ABOVE the code, NOT to the right of the code, unless it is very short.
All functions and methods are to be documented using PhpDocumentor - https://docs.phpdoc.org/guides/
File Headers
-------------------------------------------------------------------------------
File headers follow a consistent format, as such:
// This file is part of GNU social - https://www.gnu.org/software/social
//
// GNU social is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// GNU social is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
/**
* Description of this file.
*
* @package samples
* @author Diogo Cordeiro <diogo@fc.up.pt>
* @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
*/
Please use it.
A few notes:
* The description of the file doesn't have to be exhaustive. Rather it's
meant to be a short summary of what's in this file and what it does. Try
to keep it to 1-5 lines. You can get more in-depth when documenting
individual functions!
* You'll probably see files with multiple authors, this is by
design - many people contributed to GNU social or its forebears! If you
are modifying an existing file, APPEND your own author line, and update
the copyright year if needed. Do not replace existing ones.
You may find `boilerplate.php` useful when creating a new file from scratch.
Paragraph spacing
-------------------------------------------------------------------------------
Where-ever possible, try to keep the lines to 80 characters. Don't
sacrifice readability for it though - if it makes more sense to have it in
one longer line, and it's more easily read that way, that's fine.
With assignments, avoid breaking them down into multiple lines unless
neccesary, except for enumerations and arrays.
'If' statements format
-------------------------------------------------------------------------------
Use switch statements where many else if's are going to be used. Switch/case is faster
if ($var == 'example') {
echo 'This is only an example';
} else {
echo 'This is not a test. This is the real thing';
}
Do NOT make if statements like this:
if ($var == 'example'){ echo 'An example'; }
OR this
if($var = 'example')
echo "An {$var}";
Associative arrays
-------------------------------------------------------------------------------
Always use `[]` instead of `array()`. Associative arrays must be written in the
following manner:
$array = [
'var' => 'value',
'var2' => 'value2'
];
Note that spaces are preferred around the '=>'.
A note about shorthands
-------------------------------------------------------------------------------
Some short hands are evil:
- Use the long format for `<?php`. Do NOT use `<?`.
- Use the long format for `<?php` echo. Do NOT use `<?=`.
Naming conventions
-------------------------------------------------------------------------------
Respect PSR-12 first.
- Classes use PascalCase (e.g. MyClass).
- Functions/Methods use camelCase (e.g. myFunction).
- Variables use snake_case (e.g. my_variable).
A note on variable names, etc. It must be possible to understand what is meant
without neccesarialy seeing it in context, because the code that calls something
might not always make it clear.
So if you have something like:
$notice->post($contents);
Well I can easily tell what you're doing there because the names are straight-
forward and clear.
Something like this:
foo->bar();
Is much less clear.
Also, whereever possible, avoid ambiguous terms. For example, don't use text
as a term for a variable. Call back to "contents" above.
Arrays
-------------------------------------------------------------------------------
Even though PSR-12 doesn't specifically specify rules for array formatting, it
is in the spirit of it to have every array element on a new line like is done
for function and class method arguments and condition expressions, if there is
more than one element.
In this case, even the last element should end on a comma, to ease later
element addition.
$foo = ['first' => 'unu'];
$bar = [
'first' => 'once',
'second' => 'twice',
'third' => 'thrice',
];
Comparisons
-------------------------------------------------------------------------------
Always use symbol based comparison operators (&&, ||) instead of text based
operators (and, or) in an "if" clause as they are evaluated in different order
and at different speeds.
This is will prevent any confusion or strange results.
Use English
-------------------------------------------------------------------------------
All variables, classes, methods, functions and comments must be in English.
Bad english is easier to work with than having to babelfish code to work out
how it works.
Encoding
-------------------------------------------------------------------------------
Files should be in UTF-8 encoding with UNIX line endings.
No ending tag
-------------------------------------------------------------------------------
Files should not end with an ending php tag "?>". Any whitespace after the
closing tag is sent to the browser and cause errors, so don't include them.
Nesting Functions
-------------------------------------------------------------------------------
Avoid, if at all possible. When not possible, document the living daylights
out of why you're nesting it. It's not always avoidable, but PHP 5 has a lot
of obscure problems that come up with using nested functions.
If you must use a nested function, be sure to have robust error-handling.
This is a must and submissions including nested functions that do not have
robust error handling will be rejected and you'll be asked to add it.
Scoping
-------------------------------------------------------------------------------
Properly enforcing scope of functions is something many PHP programmers don't
do, but should.
In general:
* Variables unique to a class should be protected and use interfacing to
change them. This allows for input validation and making sure we don't have
injection, especially when something's exposed to the API, that any program
can use, and not all of them are going to be be safe and trusted.
* Variables not unique to a class should be validated prior to every call,
which is why it's generally not a good idea to re-use stuff across classes
unless there's significant performance gains to doing so.
* Classes should protect functions that they do not want overriden, but they
should avoid protecting the constructor and destructor and related helper
functions as this prevents proper inheritance.
Typecasting
-------------------------------------------------------------------------------
PHP is a soft-typed language and it falls to us developers to make sure that
we are using the proper inputs. Where ever possible use explicit type casting.
Where it in't, you're going to have to make sure that you check all your
inputs before you pass them.
All outputs should be cast as an explicit PHP type.
Not properly typecasting is a shooting offence. Soft types let programmers
get away with a lot of lazy code, but lazy code is buggy code, and frankly, I
don't want it in GNU social if it's going to be buggy.
Consistent exception handling
-------------------------------------------------------------------------------
Consistency is key to good code to begin with, but it is especially important
to be consistent with how we handle errors. GNU social has a variety of built-
in exception classes. Use them, wherever it's possible and appropriate, and
they will do the heavy lifting for you.
Additionally, ensure you clean up any and all records and variables that need
cleanup in a function using try { } finally { } even if you do not plan on
catching exceptions (why wouldn't you, though? That's silly.)
If you do not call an exception handler, you must, at a minimum, record errors
to the log using common_log(level, message)
Ensure all possible control flows of a function have exception handling and
cleanup, where appropriate. Don't leave endpoints with unhandled exceptions.
Try not to leave something in an error state if it's avoidable.
Return values
-------------------------------------------------------------------------------
All functions must return a value. Every single one. This is not optional.
If you are simply making a procedure call, for example as part of a helper
function, then return boolean TRUE on success, and the exception on failure.
When returning the exception, return the whole nine yards, which is to say the
actual PHP exception object, not just an error message.
All return values not the above should be type cast, and you should sanitize
anything returned to ensure it fits into the cast. You might technically make
an integer a string, for instance, but you should be making sure that integer
SHOULD be a string, if you're returning it, and that it is a valid return
value.
A vast majority of programming errors come down to not checking your inputs
and outputs properly, so please try to do so as best and thoroughly as you can.
Layout and Location of files
-------------------------------------------------------------------------------
`/actions/` contains files that determine what happens when something "happens":
for instance, when someone favourites or repeats a notice. Code that is
related to a "happening" should go here.
`/classes/` contains abstract definitions of certain "things" in the codebase
such as a user or notice. If you're making a new "thing", it goes here.
`/lib/` is basically the back-end. Actions will call something in here to get
stuff done usually, which in turn will probably manipulate information stored
in one or more records represented by a class.
`/extlib/` is where external libraries are located. If you include a new
external library, it goes here.
`/plugins/` This is a great way to modularize your own new features. If you want
to create new core features for GNU social, it is probably best to create a
module unless you absolutely must override or modify the core behaviours.

View File

@ -1,32 +0,0 @@
Submission Checklist
================================================================================
This document serves as a handy checklist for submitted merges and patches to
the GNU social project. Following it isn't a gaurantee a patch will be accepted,
but it will help you avoid common problems.
1. Ensure all code control paths in all functions return a value.
2. Ensure all exceptions are trapped in an exception class, or minimally,
written to the log with common_log
3. Ensure the coding format standards are adhered to (see coding_standards.md)
4. Ensure that any new class that deals in public data has a corresponding new
API endpoint.
5. Ensure that all new API endpoints sanitize inputs and outputs properly.
6. Ensure that your version of the code works with PHP 7 on a standard
LAMP and LEMP stack (Linux+Apache+MariaDB+PHP and Linux+nginx+MariaDB+PHP)
7. If implementing new database functions, ensure they work with MariaDB
and postgreSQL.
8. Ensure all data that federates does so properly and has mechanisms to
catch and accomodate for federation transmission failure.
9. Ensure that nothing is left in an error state when it is avoidable.
10. Ensure that all code submitted is properly documented.
11. Ensure that there are no PHP Strict Standards or Parse errors in the code.

File diff suppressed because it is too large Load Diff

View File

@ -1,350 +0,0 @@
Plugin Development
==================
SamplePlugin.php
----------------
Each plugin requires a main class to interact with the GNU social system.
The main class usually extends the Plugin class that comes with GNU social.
The class has standard-named methods that will be called when certain events
happen in the code base. These methods have names like 'onX' where X is an
event name (see EVENTS.txt for the list of available events). Event handlers
have pre-defined arguments, based on which event they're handling. A typical
event handler:
```php
public function onSomeEvent($paramA, &$paramB): bool
{
if ($paramA == 'jed') {
throw new Exception(sprintf(_m("Invalid parameter %s"), $paramA));
}
$paramB = 'spock';
return true;
}
```
Event Handlers
--------------
Event handlers must return a Boolean value.
If they return false, all other event handlers for this event (in other plug-in)
will be skipped, and in some cases the default processing for that event would
be skipped. This is great for replacing the default action of an event.
If the handler returns true, processing of other event handlers and the default
processing will continue. This is great for extending existing functionality.
If the handler throws an exception, processing will stop, and the exception's
error will be shown to the user.
Installation
------------
To enable a plugin (like the SamplePlugin), site admins add the following code to their
config.php file:
```php
addPlugin('Sample');
```
Third Party Plugins must be installed in `local/plugins/{$name}/{$pluginclass}.php`
Here, `{$name}` is the name of the plugin, like 'Sample', and `{$pluginclass}`
is the name of the main class, like 'SamplePlugin'. Plugins that are part of
the main GNU social distribution go in 'plugins' and third-party or local ones
go in 'local'.
Simple plugins can be implemented as a single plugin. Others are more complex
and require additional plugins; these should use their own directory, like
'local/plugins/{$name}/'. All files related to the plugin, including images,
JavaScript, CSS, external libraries or PHP plugins should go in the plugin
directory.
Plugin Configuration
--------------------
Plugins are configured using public instance attributes. To set their values,
site administrators use this syntax:
```php
addPlugin('Sample', ['attr1' => 'foo', 'attr2' => 'bar']);
```
The same plugin class can be initialized multiple times with different arguments:
```php
addPlugin('EmailNotify', ['sendTo' => 'evan@status.net']);
addPlugin('EmailNotify', ['sendTo' => 'brionv@status.net']);
```
```php
class SamplePlugin extends Plugin
{
public $attr1 = null;
public $attr2 = null;
}
```
Initialization
--------------
Plugins overload this method to do any initialization they need, like connecting
to remote servers or creating paths or so on. @return bool hook value; true
means continue processing, false means stop.
```php
public function initialize(): bool
{
return true;
}
```
Clean Up
--------
Plugins overload this method to do any cleanup they need, like disconnecting from
remote servers or deleting temp files or so on.
```php
public function cleanup(): bool
{
return true;
}
```
Database schema setup
---------------------
Plugins can add their own tables to the GNU social database. Plugins should use
GNU social's schema interface to add or delete tables. The ensureTable() method
provides an easy way to ensure a table's structure and availability.
By default, the schema is checked every time GNU social is run (say, when a Web
page is hit). Admins can configure their systems to only check the schema when
the checkschema.php script is run, greatly improving performance. However, they
need to remember to run that script after installing or upgrading a plugin!
```php
public function onCheckSchema(): bool
{
$schema = Schema::get();
// '''For storing user-submitted flags on profiles'''
$schema->ensureTable('user_greeting_count',[
new ColumnDef('user_id', 'integer', null, true, 'PRI'),
new ColumnDef('greeting_count', 'integer')
]
);
return true;
}
```
Load related plugins when needed
--------------------------------
Most non-trivial plugins will require extra plugins to do their work. Typically
these include data classes, action classes, widget classes, or external libraries.
This method receives a class name and loads the PHP file related to that class.
By tradition, action classes typically have files named for the action, all
lower-case. Data classes are in files with the data class name, initial letter
capitalized.
Note that this method will be called for *all* overloaded classes, not just ones
in this plugin! So, make sure to return true by default to let other plugins,
and the core code, get a chance.
```php
public function onAutoload($cls): bool
{
$dir = __DIR__;
switch ($cls)
{
case 'HelloAction':
include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php';
return false;
case 'User_greeting_count':
include_once $dir . '/'.$cls.'.php';
return false;
default:
return true;
}
}
```
Map URLs to actions
-------------------
This event handler lets the plugin map URLs on the site to actions (and thus an
action handler class). Note that the action handler class for an action will be
named 'FoobarAction', where action = 'foobar'. The class must be loaded in the
onAutoload() method.
```php
public function onRouterInitialized($m): bool
{
$m->connect('main/hello',
['action' => 'hello']);
return true;
}
```
Modify the default menu to link to our custom action
-----------------------------------------------------
Using event handlers, it's possible to modify the default UI for pages almost
without limit. In this method, we add a menu item to the default primary menu
for the interface to link to our action.
Action Class
------------
The Action class provides a rich set of events to hook, as well as output methods.
```php
public function onEndPrimaryNav($action): bool
{
// '''common_local_url()''' gets the correct URL for the action name we provide
$action->menuItem(common_local_url('hello'),
_m('Hello'), _m('A warm greeting'), false, 'nav_hello');
return true;
}
public function onPluginVersion(&$versions): bool
{
$versions[] = [
'name' => 'Sample',
'version' => GNUSOCIAL_VERSION,
'author' => 'Brion Vibber, Evan Prodromou',
'homepage' => 'http://example.org/plugin',
'rawdescription' =>
_m('A sample plugin to show basics of development for new hackers.')
];
return true;
}
```
hello.php
---------
This section is taken directly from the 'hello.php'. ( plugins/Sample/hello.php )
Give a warm greeting to our friendly user.
This sample action shows some basic ways of doing output in an action class.
Action classes have several output methods that they override from the parent class.
```php
class HelloAction extends Action
{
var $user = null;
var $gc = null;
}
```
Take arguments for running
--------------------------
This method is called first, and it lets the action class get all its arguments
and validate them. It's also the time to fetch any relevant data from the database.
Action classes should run parent::prepare(array $args = []) as the first line
of this method to make sure the default argument-processing happens.
```php
public function prepare(array $args = []): bool
{
parent::prepare($args);
$this->user = common_current_user();
if (!empty($this->user)) {
$this->gc = User_greeting_count::inc($this->user->id);
}
return true;
}
```
Handle request
--------------
This is the main method for handling a request. Note that most preparation
should be done in the prepare() method; by the time handle() is called the
action should be more or less ready to go.
```php
public function handle(): void
{
parent::handle();
$this->showPage();
}
```
Title of this page
------------------
Override this method to show a custom title.
```php
public function title(): string
{
if (empty($this->user)) {
return _m('Hello');
} else {
return sprintf(_m('Hello, %s'), $this->user->nickname);
}
}
```
Show content in the content area
--------------------------------
The default GNU social page has a lot of decorations: menus, logos, tabs, all
that jazz. This method is used to show content in the content area of the
page; it's the main thing you want to overload. This method also demonstrates
use of a plural localized string.
```php
public function showContent(): void
{
if (empty($this->user)) {
$this->element('p', ['class' => 'greeting'],
_m('Hello, stranger!'));
} else {
$this->element('p', ['class' => 'greeting'],
sprintf(_m('Hello, %s'), $this->user->nickname));
$this->element('p', ['class' => 'greeting_count'],
sprintf(_m('I have greeted you %d time.',
'I have greeted you %d times.',
$this->gc->greeting_count),
$this->gc->greeting_count));
}
}
```
Return true if read only.
-------------------------
Some actions only read from the database; others read and write. The simple
database load-balancer built into GNU social will direct read-only actions to
database mirrors (if they are configured) and read-write actions to the master database.
This defaults to false to avoid data integrity issues, but you should make sure
to overload it for performance gains.
```php
public function isReadOnly($args): bool
{
return false;
}
```

View File

@ -1,90 +0,0 @@
<?php
// This file is part of GNU social - https://www.gnu.org/software/social
//
// GNU social is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// GNU social is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
defined('GNUSOCIAL') || die();
/**
* Fun sample plugin: tweaks input data and adds a 'Cornify' widget to sidebar.
*
* @category Plugin
* @package GNUsocial
* @author Jeroen De Dauw <jeroendedauw@gmail.com>
* @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
*/
class AwesomenessPlugin extends Plugin
{
const PLUGIN_VERSION = '13.37.42';
public function onPluginVersion(array &$versions): bool
{
$versions[] = [
'name' => 'Awesomeness',
'version' => self::PLUGIN_VERSION,
'author' => 'Jeroen De Dauw',
'homepage' => GNUSOCIAL_ENGINE_REPO_URL . 'tree/master/plugins/Awesomeness',
// TRANS: Plugin description for a sample plugin.
'rawdescription' => _m('The Awesomeness plugin adds additional awesomeness ' .
'to a GNU social installation.')
];
return true;
}
/**
* Add the conrnify button
*
* @param Action $action the current action
*
* @return void
*/
public function onEndShowSections(Action $action)
{
$action->elementStart('div', ['id' => 'cornify_section',
'class' => 'section']);
$action->raw(
<<<EOT
<a href="https://www.cornify.com" onclick="cornify_add();return false;">
<img src="https://www.cornify.com/assets/cornify.gif" width="61" height="16" border="0" alt="Cornify" />
</a>
EOT
);
$action->elementEnd('div');
}
public function onEndShowScripts(Action $action)
{
$action->script($this->path('js/cornify.js'));
}
/**
* Hook for new-notice form processing to take our HTML goodies;
* won't affect API posting etc.
*
* @param NewNoticeAction $action
* @param User $user
* @param string $content
* @param array $options
* @return bool hook return
*/
public function onStartSaveNewNoticeWeb($action, $user, &$content, &$options)
{
$content = htmlspecialchars($content);
$options['rendered'] = preg_replace("/(^|\s|-)((?:awesome|awesomeness)[\?!\.\,]?)(\s|$)/i", " <b>$2</b> ", $content);
}
}

View File

@ -1,14 +0,0 @@
Fun sample plugin: tweaks input data and adds a 'Cornify' ( http://www.cornify.com ) widget to sidebar.
Installation
============
add "addPlugin('Awesomeness');"
to the bottom of your config.php
Settings
========
none
Example
=======
addPlugin('Awesomeness');

View File

@ -1,25 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-08-14 14:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:67
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Afrikaans (http://www.transifex.com/gnu-social/gnu-social/language/af/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: af\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/gnu-social/gnu-social/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (Egypt) (http://www.transifex.com/gnu-social/gnu-social/language/ar_EG/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar_EG\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Asturian (http://www.transifex.com/gnu-social/gnu-social/language/ast/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ast\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Belarusian (Tarask) (http://www.transifex.com/gnu-social/gnu-social/language/be@tarask/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: be@tarask\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Дапаўненьне Awesomeness дадае незвычайныя магчымасьці ў усталяваньне GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (http://www.transifex.com/gnu-social/gnu-social/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bengali (India) (http://www.transifex.com/gnu-social/gnu-social/language/bn_IN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bn_IN\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Breton (http://www.transifex.com/gnu-social/gnu-social/language/br/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: br\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan (http://www.transifex.com/gnu-social/gnu-social/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (http://www.transifex.com/gnu-social/gnu-social/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://www.transifex.com/gnu-social/gnu-social/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2019-08-21 14:01+0100\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: German (http://www.transifex.com/gnu-social/gnu-social/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Das Awesomeness-Plugin fügt zusätzliche Großartigkeit zu einer GNU social-Installation hinzu."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek (http://www.transifex.com/gnu-social/gnu-social/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,26 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
# Luke Hollins <luke@farcry.ca>, 2015
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-03-07 12:44+0000\n"
"Last-Translator: Luke Hollins <luke@farcry.ca>\n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/gnu-social/gnu-social/language/en_GB/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_GB\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "The Awesomeness plugin adds additional awesomeness to a GNU social installation."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Esperanto (http://www.transifex.com/gnu-social/gnu-social/language/eo/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,26 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
# Juan Riquelme González <soulchainer@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-26 08:53+0000\n"
"Last-Translator: Juan Riquelme González <soulchainer@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/gnu-social/gnu-social/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "El complemento Awesomeness ('Molonosidad') incrementa en +20 la molonosidad de un sitio GNU social. (Este es un complemento de ejemplo, con un toque de humor)."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2012 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Basque (http://www.transifex.com/gnu-social/gnu-social/language/eu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: eu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Awesomeness pluginak informazio osagarria gehitzen dio GNU social instalatzioari."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Persian (http://www.transifex.com/gnu-social/gnu-social/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Finnish (http://www.transifex.com/gnu-social/gnu-social/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Awesomeness-liitännäinen lisää ylimääräistä upeutta (awesomeness) GNU social-asennukseesi."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: French (http://www.transifex.com/gnu-social/gnu-social/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Le plugin Awesomeness ajoute des suppléments impressionnants à une installation de GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Friulian (http://www.transifex.com/gnu-social/gnu-social/language/fur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Galician (http://www.transifex.com/gnu-social/gnu-social/language/gl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: gl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "O complemento impresionante engade suplementos impresionantes á instalación do GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Hebrew (http://www.transifex.com/gnu-social/gnu-social/language/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: he\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "תוסף מגניבות מוסיף עוד מגניבות להתקנה של סטטוסנט."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Upper Sorbian (http://www.transifex.com/gnu-social/gnu-social/language/hsb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: hsb\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Hungarian (http://www.transifex.com/gnu-social/gnu-social/language/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Armenian (Armenia) (http://www.transifex.com/gnu-social/gnu-social/language/hy_AM/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: hy_AM\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Interlingua (http://www.transifex.com/gnu-social/gnu-social/language/ia/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ia\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Le plug-in Awesomeness rende un installation de GNU social plus impressionante."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Indonesian (http://www.transifex.com/gnu-social/gnu-social/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,26 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
# Ciencisto Dementa <maliktunga@users.noreply.github.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-06-15 01:03+0000\n"
"Last-Translator: Ciencisto Dementa <maliktunga@users.noreply.github.com>\n"
"Language-Team: Ido (http://www.transifex.com/gnu-social/gnu-social/language/io/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: io\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "L'extensilo Awesomeness adjuntas impresanta suplemento a GNU social-instaluro."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Icelandic (http://www.transifex.com/gnu-social/gnu-social/language/is/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: is\n"
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2012 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Italian (http://www.transifex.com/gnu-social/gnu-social/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Il plugin Awesomeness aggiunge ulteriore imponenza all'installazione di GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Japanese (http://www.transifex.com/gnu-social/gnu-social/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Georgian (http://www.transifex.com/gnu-social/gnu-social/language/ka/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ka\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Korean (http://www.transifex.com/gnu-social/gnu-social/language/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Colognian (http://www.transifex.com/gnu-social/gnu-social/language/ksh/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ksh\n"
"Plural-Forms: nplurals=3; plural=(n==0) ? 0 : (n==1) ? 1 : 2;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Luxembourgish (http://www.transifex.com/gnu-social/gnu-social/language/lb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: lb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Lithuanian (http://www.transifex.com/gnu-social/gnu-social/language/lt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: lt\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 09:39+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Latvian (http://www.transifex.com/gnu-social/gnu-social/language/lv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 16:19+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Malagasy (http://www.transifex.com/gnu-social/gnu-social/language/mg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: mg\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Macedonian (http://www.transifex.com/gnu-social/gnu-social/language/mk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: mk\n"
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Приклучокот „Феноменалност“ ѝ дава дополнителна феноменалност на инсталацијата на GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Malayalam (http://www.transifex.com/gnu-social/gnu-social/language/ml/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ml\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Malay (http://www.transifex.com/gnu-social/gnu-social/language/ms/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ms\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Burmese (http://www.transifex.com/gnu-social/gnu-social/language/my/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: my\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmål (http://www.transifex.com/gnu-social/gnu-social/language/nb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 09:30+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Nepali (http://www.transifex.com/gnu-social/gnu-social/language/ne/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ne\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Dutch (http://www.transifex.com/gnu-social/gnu-social/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "De Awesomenessplug-in voegt extra awesomeness toe aan een GNU socialinstallatie."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Nynorsk (http://www.transifex.com/gnu-social/gnu-social/language/nn/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2012 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Polish (http://www.transifex.com/gnu-social/gnu-social/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Wtyczka Awesomeness dodaje dodatkowe niesamowitości do instalacji GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Portuguese (http://www.transifex.com/gnu-social/gnu-social/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "O plugin de Espectacularidade adiciona espectacularidade adicional a uma instalação de GNU social."

View File

@ -1,26 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
# Matheus Henrique Silva <hennsilvam@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-25 08:09+0000\n"
"Last-Translator: Matheus Henrique Silva <hennsilvam@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/gnu-social/gnu-social/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "O plugin Awesomeness adiciona incríveis bonus à instalação de GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian (Romania) (http://www.transifex.com/gnu-social/gnu-social/language/ro_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ro_RO\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Russian (http://www.transifex.com/gnu-social/gnu-social/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Потрясающий плагин добавляет потрясающие вещи в GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Slovenian (http://www.transifex.com/gnu-social/gnu-social/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Serbian (http://www.transifex.com/gnu-social/gnu-social/language/sr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sr\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,26 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
# Kristoffer Grundström <kristoffer.grundstrom1983@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-09-15 18:38+0000\n"
"Last-Translator: Kristoffer Grundström <kristoffer.grundstrom1983@gmail.com>\n"
"Language-Team: Swedish (http://www.transifex.com/gnu-social/gnu-social/language/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Insticksprogrammet Awesomeness lägger till ytterligare ypperlighet till en GNU social-installation."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 08:48+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Tamil (http://www.transifex.com/gnu-social/gnu-social/language/ta/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ta\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Telugu (http://www.transifex.com/gnu-social/gnu-social/language/te/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: te\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Tagalog (http://www.transifex.com/gnu-social/gnu-social/language/tl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: tl\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Ang pampasak ng Pagiging Kahanga-hanga ay nagdaragdag ng karagdagang pagiging kahanga-hanga sa isang pagtatalaga ng GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Turkish (http://www.transifex.com/gnu-social/gnu-social/language/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Ukrainian (http://www.transifex.com/gnu-social/gnu-social/language/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: uk\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Напрочуд дивовижний додаток додає додаткову напрочуд дивовижну функціональність до вашої інсталяції GNU social."

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Urdu (Pakistan) (http://www.transifex.com/gnu-social/gnu-social/language/ur_PK/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur_PK\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Vietnamese (http://www.transifex.com/gnu-social/gnu-social/language/vi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: vi\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese (http://www.transifex.com/gnu-social/gnu-social/language/zh/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese (China) (http://www.transifex.com/gnu-social/gnu-social/language/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,25 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 14:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese (Taiwan) (http://www.transifex.com/gnu-social/gnu-social/language/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr ""

View File

@ -1,241 +0,0 @@
/*
_______ ,-----. .-------. ,---. .--..-./`) ________ ____ __
/ __ \ .' .-, '. | _ _ \ | \ | |\ .-.')| | \ \ / /
| ,_/ \__) / ,-.| \ _ \ | ( ' ) | | , \ | |/ `-' \| .----' \ _. / '
,-./ ) ; \ '_ / | :|(_ o _) / | |\_ \| | `-'`"`| _|____ _( )_ .'
\ '_ '`) | _`,/ \ _/ || (_,_).' __ | _( )_\ | .---. |_( )_ | ___(_ o _)'
> (_) ) __: ( '\_/ \ ;| |\ \ | || (_ o _) | | | (_ o._)__|| |(_,_)'
( . .-'_/ )\ `"/ \ ) / | | \ `' /| (_,_)\ | | | |(_,_) | `-' /
`-'`-' / '. \_/``".' | | \ / | | | | | | | | \ /
`._____.' '-----' ''-' `'-' '--' '--' '---' '---' `-..-'
*/
var cornify_count = 0;
var cornify_add = function(options) {
// Track how often we cornified.
cornify_count += 1;
var cornify_url = 'https://www.cornify.com/';
// Create a container DIV for our 'corn or 'bow.
var div = document.createElement('div');
div.style.position = 'fixed';
// Prepare our lovely variables.
var numType = 'px';
var heightRandom = Math.random() * 0.75;
var windowHeight = 768;
var windowWidth = 1024;
var height = 0;
var width = 0;
var de = document.documentElement;
// Get the window width and height - requires some cross browser checking.
if(typeof(window.innerHeight) == 'number') {
windowHeight = window.innerHeight;
windowWidth = window.innerWidth;
} else if(de && de.clientHeight) {
windowHeight = de.clientHeight;
windowWidth = de.clientWidth;
} else {
numType = '%';
height = Math.round(height*100) + '%';
}
div.onclick = cornify_add; // Click for more magic.
div.style.zIndex = 10;
div.style.outline = 0;
if(cornify_count == 15) {
// Clicking 15 times summons the grand unicorn - which is centered on the screen.
div.style.top = Math.max( 0, Math.round((windowHeight-530)/2)) + 'px';
div.style.left = Math.round((windowWidth-530)/2) + 'px';
div.style.zIndex = 1000;
} else {
// Otherwise we randomize the position.
if(numType == 'px') {
div.style.top = Math.round( windowHeight*heightRandom ) + numType;
} else {
div.style.top = height;
}
div.style.left = Math.round(Math.random()*90) + '%';
}
var img = document.createElement('img');
var currentTime = new Date();
// Used as a cache buster so the browser makes a new request every time instead of usign the previous, cached one.
var submitTime = currentTime.getTime();
if( cornify_count==15 ) submitTime = 0;
// Construct our unicorn & rainbow request.
var url = cornify_url+'getacorn.php?r='+submitTime+'&url='+document.location.href;
// Add younicorns if requested.
if(options && (options.y || options.younicorns)) {
url += '&y='+(options.y ? options.y : options.younicorns);
if(Math.random() > 0.5) {
// Flip horizontally at random.
div.style.transform = 'scaleX(-1)';
};
}
img.setAttribute('src', url);
// Add a nice hover transition.
var ease = "all .1s linear";
div.style.WebkitTransition = ease;
div.style.WebkitTransform = "rotate(1deg) scale(1.01,1.01)";
div.style.transition = "all .1s linear";
div.onmouseover = function() {
var size = 1 + Math.round(Math.random()*10)/100;
var angle = Math.round(Math.random()*20-10);
var result = "rotate("+angle+"deg) scale("+size+","+size+")";
this.style.transform = result;
this.style.WebkitTransform = result;
};
div.onmouseout = function() {
var size = .9+Math.round(Math.random()*10)/100;
var angle = Math.round(Math.random()*6-3);
var result = "rotate("+angle+"deg) scale("+size+","+size+")";
this.style.transform = result;
this.style.WebkitTransform = result;
};
// Append our container DIV to the page.
var body = document.getElementsByTagName('body')[0];
body.appendChild(div);
div.appendChild(img);
// Hooray - now we have a sparkly unicorn (or rainbow) on the page. Another cornification well done. Congrats!
// When clicking 5 times, add a custom stylesheet to make the page look awesome.
if(cornify_count == 5) {
var cssExisting = document.getElementById('__cornify_css');
if(!cssExisting) {
var head = document.getElementsByTagName("head")[0];
var css = document.createElement('link');
css.id = '__cornify_css';
css.type = 'text/css';
css.rel = 'stylesheet';
css.href = 'https://www.cornify.com/css/cornify.css';
css.media = 'screen';
head.appendChild(css);
}
cornify_replace();
}
cornify_updatecount();
};
// Tracks how often we cornified.
var cornify_updatecount = function() {
var p = document.getElementById('cornifycount');
if(p == null) {
var p = document.createElement('p');
p.id = 'cornifycount';
p.style.position = 'fixed';
p.style.bottom = '5px';
p.style.left = '0px';
p.style.right = '0px';
p.style.zIndex = '1000000000';
p.style.color = '#ff00ff';
p.style.textAlign = 'center';
p.style.fontSize = '24px';
p.style.fontFamily = "'Comic Sans MS', 'Comic Sans', 'Marker Felt', serif"; // Only the best!
var body = document.getElementsByTagName('body')[0];
body.appendChild(p);
}
if(cornify_count == 1) {
p.innerHTML = cornify_count+' UNICORN OR RAINBOW CREATED';
} else {
p.innerHTML = cornify_count+' UNICORNS &AMP; RAINBOWS CREATED';
}
// Stores our count in a cookie for our next session.
cornify_setcookie('cornify', cornify_count+'', 1000);
};
var cornify_setcookie = function(name, value, days) {
var d = new Date();
d.setTime(d.getTime()+(days*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = name + "=" + value + "; " + expires;
};
var cornify_getcookie = function(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i].trim();
if(c.indexOf(name)==0) {
return c.substring(name.length,c.length);
}
}
return "";
};
// Retrieve our click count from the cookie when we start up.
cornify_count = parseInt(cornify_getcookie('cornify'));
if(isNaN(cornify_count)) {
cornify_count = 0;
}
// Adds happy words at the beginning of all headers on the page.
var cornify_replace = function() {
// Replace text.
var hc = 6;
var hs;
var h;
var k;
var words = ['Happy','Sparkly','Glittery','Fun','Magical','Lovely','Cute','Charming','Amazing','Wonderful'];
while(hc >= 1) {
hs = document.getElementsByTagName('h' + hc);
for (k = 0; k < hs.length; k++) {
h = hs[k];
h.innerHTML = words[Math.floor(Math.random()*words.length)] + ' ' + h.innerHTML;
}
hc-=1;
}
};
/*
* Adapted from http://www.snaptortoise.com/konami-js/
*/
var cornami = {
input:"",
pattern:"38384040373937396665",
clear:setTimeout('cornami.clear_input()', 5000),
load: function() {
window.document.onkeydown = function(e) {
if (cornami.input == cornami.pattern) {
cornify_add();
clearTimeout(cornami.clear);
return;
}
else {
cornami.input += e ? e.keyCode : event.keyCode;
if (cornami.input == cornami.pattern) cornify_add();
clearTimeout(cornami.clear);
cornami.clear = setTimeout("cornami.clear_input()", 5000);
}
};
},
clear_input: function() {
cornami.input="";
clearTimeout(cornami.clear);
}
};
cornami.load();

View File

@ -1,132 +0,0 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Plugin for testing ad layout
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Ads
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2010 StatusNet Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Plugin for testing ad layout
*
* This plugin uses the UAPPlugin framework to output ad content. However,
* its ad content is just images with one red pixel stretched to the
* right size. It's mostly useful for debugging theme layout.
*
* To use this plugin, set the parameter for the ad size you want to use
* to true (or anything non-null). For example, to make a leaderboard:
*
* addPlugin('BlankAd', array('leaderboard' => true));
*
* @category Plugin
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @seeAlso Location
*/
class BlankAdPlugin extends UAPPlugin
{
const PLUGIN_VERSION = '2.0.0';
/**
* Show a medium rectangle 'ad'
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showMediumRectangle($action)
{
$action->element('img',
array('width' => 300,
'height' => 250,
'src' => $this->path('redpixel.png')),
'');
}
/**
* Show a rectangle 'ad'
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showRectangle($action)
{
$action->element('img',
array('width' => 180,
'height' => 150,
'src' => $this->path('redpixel.png')),
'');
}
/**
* Show a wide skyscraper ad
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showWideSkyscraper($action)
{
$action->element('img',
array('width' => 160,
'height' => 600,
'src' => $this->path('redpixel.png')),
'');
}
/**
* Show a leaderboard ad
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showLeaderboard($action)
{
$action->element('img',
array('width' => 728,
'height' => 90,
'src' => $this->path('redpixel.png')),
'');
}
public function onPluginVersion(array &$versions): bool
{
$versions[] = array('name' => 'BlankAd',
'version' => self::PLUGIN_VERSION,
'author' => 'Evan Prodromou',
'homepage' => GNUSOCIAL_ENGINE_REPO_URL . 'tree/master/plugins/BlankAdPlugin',
'rawdescription' =>
// TRANS: Plugin description.
_m('Plugin for testing ad layout.'));
return true;
}
}

View File

@ -1,14 +0,0 @@
Plugin for testing ad layout
This plugin uses the UAPPlugin framework to output ad content. However,
its ad content is just images with one red pixel stretched to the
right size. It's mostly useful for debugging theme layout.
To use this plugin, set the parameter for the ad size you want to use
to true (or anything non-null).
Example
=======
To make a leaderboard:
addPlugin('BlankAd', array('leaderboard' => true));

View File

@ -1,23 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-08-14 14:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:129
msgid "Plugin for testing ad layout."
msgstr ""

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Afrikaans (http://www.transifex.com/gnu-social/gnu-social/language/af/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: af\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/gnu-social/gnu-social/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (Egypt) (http://www.transifex.com/gnu-social/gnu-social/language/ar_EG/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar_EG\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2011 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:13+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Asturian (http://www.transifex.com/gnu-social/gnu-social/language/ast/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ast\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr "Complementu pa probar la maquetación de publicidad."

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2010 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:13+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Belarusian (Tarask) (http://www.transifex.com/gnu-social/gnu-social/language/be@tarask/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: be@tarask\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr "Дапаўненьне для праверкі рэклямных модуляў."

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (http://www.transifex.com/gnu-social/gnu-social/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bengali (India) (http://www.transifex.com/gnu-social/gnu-social/language/bn_IN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bn_IN\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2010 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:13+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Breton (http://www.transifex.com/gnu-social/gnu-social/language/br/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: br\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr "Astenn da arnodiñ doare pajennaozañ ar bruderezh."

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan (http://www.transifex.com/gnu-social/gnu-social/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech (http://www.transifex.com/gnu-social/gnu-social/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish (http://www.transifex.com/gnu-social/gnu-social/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2010 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:13+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: German (http://www.transifex.com/gnu-social/gnu-social/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr "Plugin zum Testen von Werbungs-Layout."

View File

@ -1,23 +0,0 @@
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-06 15:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek (http://www.transifex.com/gnu-social/gnu-social/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""

Some files were not shown because too many files have changed in this diff Show More