* feat: added new linking backend
* feat: added duplicateEmail to hash
* fix: stored the duplicate email on the user
* feat: initial implmentation of account linking in auth
* test: fix unit tests
* fix+test: translations and tests added
* chore+test: rename view to LINK_ACCOUNT + more tests
* feat+test: account linking admin + more tests
* feat: Handle incomplete accounts
* chore: add some comments
* feat: expose duplicateEmail through graphql and impl for stream
* feat: admin to use duplicateEmail from graphql
* fix: no need to validate password for account linking
* fix: dont validate password
* fix: no need to render error message when account was incomplete
* chore: log to console when encountering incomplete account
* chore: adjust comment
* chore: simplify + add comments
* chore: wording
* chore: comments
Co-authored-by: Vinh <vinh@vinh.tech>
Co-authored-by: Kim Gardner <kgardnr@gmail.com>
* move download comments to my comments tab
* only show download comments if available
* move ignored users management to same tab as notifications, rename to preferences
* fix query and ts defs
* add url to jwt
* make account tab go to external url if provided
* ensure url is an optional jwt field
* update tabs for stream profile
* update classnames for tabs
* fix tests
* feat: initial webhook impl
* feat: added support for key rotation
* feat: harmonized fetcher
* feat: added expired secrets cleaning
* feat: event system refactor
* feat: added story event
* feat: simplfiied webhook handler
* feat: added ref's to locations where user events can be added
* feat: added UI to support webhooks
* fix: renaming some Webhook -> WebhookEndpoint
* fix: review comments to adjuist flow
* feat: added localizations
* fix: linting, updated snapshots
* fix: adapted for new fluent
* fix: rearranged folders
* fix: linting
* feat: added webhooks documentation
* feat: improved toc generation
* feat: added some tests to webhooks
* fix: chain transition hooks
* feat: added tests around webhook ui
* fix: renamed events
* fix: adjusted circle markdown linting
* fix: adjusted doctoc script call
* review: review fixes
* review: review comments
* review: adjusted signing secret confirmation
* review: adjusted styles to harmonize button usage
* fix: updated snapshots and tests
* review: move form out of webhooks
Moved the form out of the webhooks by relocating the layout used for the
route associated with the configure routes.
* fix: fixed bugs and snapshots with tests
* feat: revised slack message format to use block api
* fix: fixed a small text bug
Co-authored-by: Vinh <vinh@vinh.tech>
Co-authored-by: Kim Gardner <kgardnr@gmail.com>
* resovle import error by removing useContext from ui component
* update snaps
* create useUIContext hook
* add site and community models
* create sites and communities on install
* add site name to install wizard
* add site id to stories
* pass site id to stream query in embed
* fix spec
* add sites query
* list sites in organization config
* add route for new sites
* add create site mutation
* view and update sites
* show embed codes for sites
* add site id to comments
* allow filtering moderation queues by site id
* add site selector to queue
* move sites config routes
* Revert "move sites config routes"
This reverts commit 4ed5345d3e1df6263f8390b64214956c43c4d8cd.
* update sites routes
* show site name in moderate card
* remove site selector from queue selector
* style create site form
* edit site form
* clean up ts
* move :storyID paths to /storeis/:storyID
* make queues respect site id
* add site switcher
* styles for site selector
* add global notifications
* style app notifications
* clear notifications after x miliseconds
* use notification component in add site form
* fix types
* make notifications dismissable
* dismiss site created notification
* remove button letter spacing if lowercase
* filter stories by site in search
* add site name to story search results
* add site column to stories table
* filter stories table by site
* make sure notification displays after site creation
* paginate sites table
* paginage site selector
* add paginated site filter to stories table
* fix merge conflicts
* sort by createdAt
* default to 20 sites
* delete comments
* add translation tags
* make site ID not mandatory
* Fix tests and specs
* only include site id in embed code for multisite
* update tenant cache when adding first site
* only show site selector if multiple sites
* use story url instead of site id for story upsert
* update snaps
* make ui conditional on multisite
* update snaps and remove unnecessary site ID
* sloppily calculate counts for filtered queues
* get origins of allowed domains
* add migration
* enable migration
* only show permitted domains if mulltisite is false
* remove site id from embed code
* update snaps
* undo updates to singletonresolver
* remove refernces to communities
* fix mints
* remove community reference
* update copy in installation
* use sites services in installer
* remove unused loader
* correct error text for useNotification
* order sites by name
* make multisite a computed property
* use map/filter instead of for/of for url origins
* add missing/incorrect translations
* remove references to siteID
* remove references to tenant isURLpermitted
* add comments to schema updates
* simplify filtering stories by site
* remove domains config from advanced
* fix: adjusted CSP header generation
* add migration to create indexes on site
* clear notifications on navigate
* remove count for filtering by site
* throw duplicate error for allowed domains
* handle errors for create/update sites
* remove contacturl and contactemail from sites
* fix types for counts
* sort imports
* ensure props get passed down to link version of button component
* add url and email fields back into organization config
* sort imports
* fix moderation queues resolver types
* fix appearance of sites dropdown
* add status role to notificaiton
* remove duplicate layout file
* fix: rename allowedDomains -> allowdOrigins
* move Link conditional from button to basebutton component
* fix merge conflict
* fix mutation optimistic response
* make sure to prop gets passed to link
* change labels on install steps
* show story's site in site selector when moderating by story
* feat: support site counting
* update snap
* remove multisite from settings
* move paginated select to admin/components
* fix circular import errors
* remove uicontext component from v2 timestamp
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
* [Fix] Use .match instead of .test to avoid false positives when matching regex returned groups
* Add test to assure memoized regexp for banned words will match properly
* fix: fixes bug with wordlist matching
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
* CRUD announcements
* only show announcement if not disabled
* make announcements dismissable
* add announcement mutations
* update announcement form logic
* style announcements on stream
* update snap
* localize strings
* close form if announcement is removed
* move announcement config below sitewide commenting config
* move date calculation inside useMemo
* move announcementconfig code to announcementconfigcontainer
* use coralContext for localStorage
* fix type of announcement createdAt
* move announcement form to modal
* remove payload pruning from configure route
* simplify announcement display logic
* make validation message full width
Co-authored-by: Kim Gardner <kgardnr@gmail.com>
When a user did not have any comments when the migration 1575649180000
hits, they are not migrated to get a `commentCounts` property. This
migration finds those users without `commentCounts` and sets them to the
empty comment counts.
Co-authored-by: Kim Gardner <kgardnr@gmail.com>
* Adding Swedish translation
* updated snap file for Swedish translation
* Translated sv/auth.ftl and partially translated install.ftl and errors.ftl to swedish
* Translated server/error completly and removed the swedish translation file install
* Fixed merge conflict with Finnish language that was added before this PR was completed
* Fixed wrong semi colon and white space
Co-authored-by: Kim Gardner <kgardnr@gmail.com>
* fix: addresses CORL-848
Fixed copy for new commenters feature.
* fix: address CORL-847
Revert the line hight changes on select fields for now.
* fix: addressed CORL-851
Changed copy on CSS field.
* fix: addressed CORL-840
Changed deletion window to 24 hours.
Refactored durations to use TIME enum.
* Create activeStories GraphQL query endpoint
Set lastCommentedAt on stories when they are
commented upon.
Use lastCommentedAt to retrieve the activeStories.
Create a migration to partial index
lastCommentedAt on stories to make retrieval fast.
CORL-836
* fix: adjusted query to use index, more @auth directives
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
* Allow sending of moderation decisions to Google
If enabled in the config, moderation decisions can
be sent to Google.
Simplify OnOffField test id's
Consolidate guard clauses
Reconstruct tenant url's when sending perspective feedback
Use the comment revision id when sending perspective feedback
Use retrieveStory instead of findStory
Clarify logging warning levels on perspective feedback
Clean html tags from sent comment body
Fix include to match new graph context refactors
CORL-825
* Handle asynchronous perspective operation more cleanly
CORL-825
* feat: initial impl
* Create preliminary comment moderation slices
CORL-688
* Move slices logic into stacks
CORL-688
* Create user comment counts
CORL-688
* Create naive mutation that initializes user comment counts
CORL-688
* Use bulk updates in user counts migration
CORL-688
* fix: review
* fix: fixed issue with aggregation
* Migrate creating comment into stacks
CORL-688
* Migrate editing a comment to the stacks
CORL-688
* Break publishing comment status out of updateAllCounts
CORL-688
* review: removed variable scoping in favor of export
* revert: feb8e8196cd448f5cd24f1ca2eb0b91fe9bd43c7
* review: simplification of stacks implementation
This simplifies the stacks implementation to better reuse code related
to count management and event publishing. This can be used to great
effect with the upcomming events PR #2738.
* Consolidate the tenant and common context together
CORL-688
* review: removed variable scoping in favor of export
* revert: feb8e8196cd448f5cd24f1ca2eb0b91fe9bd43c7
* review: simplification of stacks implementation
This simplifies the stacks implementation to better reuse code related
to count management and event publishing. This can be used to great
effect with the upcomming events PR #2738.
* fix: check if authorID is null before update user counts
CORL-688
* Consolidate common/tenant context supporting files
CORL-688
* feat: renamed TenantContext -> GraphContext
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
* add new commenters config
* fix specs and fixtures, add translation strings
* save whether a commenter is new
* fix specs and snaps
* add admin role to new config options
* Update copy
* remvoe unused ref
* feat: initial impl
* Create preliminary comment moderation slices
CORL-688
* Move slices logic into stacks
CORL-688
* Create user comment counts
CORL-688
* Create naive mutation that initializes user comment counts
CORL-688
* Use bulk updates in user counts migration
CORL-688
* fix: review
* fix: fixed issue with aggregation
* Migrate creating comment into stacks
CORL-688
* Migrate editing a comment to the stacks
CORL-688
* Break publishing comment status out of updateAllCounts
CORL-688
* review: removed variable scoping in favor of export
* revert: feb8e8196cd448f5cd24f1ca2eb0b91fe9bd43c7
* review: simplification of stacks implementation
This simplifies the stacks implementation to better reuse code related
to count management and event publishing. This can be used to great
effect with the upcomming events PR #2738.
* Remove un-necessary isNew flags on users
CORL-664
* review: removed variable scoping in favor of export
* revert: feb8e8196cd448f5cd24f1ca2eb0b91fe9bd43c7
* review: simplification of stacks implementation
This simplifies the stacks implementation to better reuse code related
to count management and event publishing. This can be used to great
effect with the upcomming events PR #2738.
* fix: check if authorID is null before update user counts
CORL-688
* fix: addressed bug in shared count retrival
Co-authored-by: Tessa Thornton <tessathornton@gmail.com>
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
* feat: initial impl
* Create preliminary comment moderation slices
CORL-688
* Move slices logic into stacks
CORL-688
* Create user comment counts
CORL-688
* Create naive mutation that initializes user comment counts
CORL-688
* Use bulk updates in user counts migration
CORL-688
* fix: review
* fix: fixed issue with aggregation
* Migrate creating comment into stacks
CORL-688
* Migrate editing a comment to the stacks
CORL-688
* Break publishing comment status out of updateAllCounts
CORL-688
* review: removed variable scoping in favor of export
* revert: feb8e8196cd448f5cd24f1ca2eb0b91fe9bd43c7
* review: simplification of stacks implementation
This simplifies the stacks implementation to better reuse code related
to count management and event publishing. This can be used to great
effect with the upcomming events PR #2738.
* fix: check if authorID is null before update user counts
CORL-688
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
* Prefix comment download filename with "coral"
CORL-827
* Scrub html tags from downloaded comment data
CORL-828
Co-authored-by: Kim Gardner <kgardnr@gmail.com>
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
Count management has been adjusted to instead preserve the zero values
of the counts. Old count maintainence functions were also removed
because they were untested and not used.
Co-authored-by: Kim Gardner <kgardnr@gmail.com>
* Create preliminary schema for setting Slack channels
CORL-645
* Implement preliminary slack notification using tenant slack channels
CORL-645
* Very preliminarily get data loading with FieldArray's for slack channels
CORL-645
* Update settings input on schema to allow saving Slack settings to tenant
CORL-645
* Filter off UNMODERATED queue events from slack channels
We don't send these to slack through our filters, we only care
about pending, reported, and featured
CORL-645
* Include a moderation link in comments pushed to Slack
CORL-645
* Hook up proper callback functions for adding/removing slack channels
CORL-645
* Add missing translation for Slack navigation item
CORL-645
* Update snapshots for preliminary Slack configuration changes
CORL-645
* Add some FormField wrappers around slack config elements
Makes the UI appear a little nicer
CORL-645
* Set up slack config to only provide one slack channel
We need to do this until we can get ArrayField's working
in final-form.
CORL-645
* Disable the other trigger checkboxes when "All Comments" is checked
CORL-645
* Clean up the formatting of Slack messages
CORL-645
* Add error handling around sending comments to Slack
CORL-645
* Add links to external Slack setup documentation
CORL-645
* Replace form state with wrapped field element
CORL-645
* Clean up fetch request sending Slack notifications
CORL-645
* Prefer global string replacement over RegEx
CORL-645
* Use URL class to construct comment URL's
CORL-645
* Require slack configuration in schema
CORL-645
* Initialize Slack in fixtures
Also fix up a flaky test that wasn't waiting
on form submission and on-change events.
CORL-645
* Preliminarily fix up styles to match other config pages
CORL-645
* Create placeholder add/remove buttons
* Convert SlackConfigContainer to FunctionalComponent
CORL-645
* Add name field to slack channels
CORL-645
* Disable inner fields on Slack channel when not enabled
CORL-645
* Improve the delete channel button
CORL-645
* Use pureMerge to extract slack channel settings
CORL-645
* Do a bit of cleanup on the add channel button
CORL-645
* CORL-729 Upgrade final form, fix and improve tests
This is a squashed rebase from these commits:
a300b31c23ab11e5e6f0668bc03ece7697360aaa feat: error on optimisic response warnings during test
dd8a9776865ec41d346e23ae0743d0d4fb0caa21 fix: turn off @typescript-eslint/prefer-regexp-exec rule
b995daacf1722cace60d755e672cb6a3a20d6bc2 feat: mute false warnings in test
e44f9e28307cd63a82c1fb7ac013667dd7b7bc46 fix: wrap remaining tests with act
afbd4329b97f3dbc9f873ea4ff234d98bb651ccf feat: fail when act(async () => ...) without await warnings
51dfb60b7d75411ba2e1a28db33f4aba5cf84de1 feat: fail tests with act warnings
97f93546ed8113e207882411eb4cdb7675b0796c fix: mock window.resizeTo globally in tests
850958b8c4d2fc0aca67ae580296433af223f8ab fix: more tests with act
24c05ab88e9a416e4962acc3f20f2c764ba07657 fix: wrap charCountEditComment test in acts
ed590b82d147470bba74055dc682e6b70d2e76fb fix signInWithEmail
4a2b9402cb6ce9565d99ae1a950eaa422ff603c3 fix: PostCommentFormContainer
815ebe6ef364d954d4bd0a35495934c9d014170b fix: use final form initialize instead of reset and remove obsolete
d3101f2112ed3ffe8d06609620e31e6655d2cf6d Merge branch 'feature/CORL-729-final-form' of https://github.com/coralproject/talk into feature/CORL-729-final-form
a0658da610a5f39b6fae78ffb8dd291b22d54e50 fix: addEmailAddress
60f7fc99a44dfa49dfd401a0ef49c60973b3e8e3 fix: use proper act pattern in renderConfigure.spec.tsx
d66bdfc2245c2b1ee03a1b3a3a56f1d5ba14ddc4 Stop propagation of Modal content click events (#2706)
ec6689594136e22a5b9f05ea284162702dc4955d fix: use proper act pattern in createUsername.spec.tsx
ef239496964a5f9a91ee1c4424ad81537c4f47fe fix: stream configuration
c7e06a0c6aef6b299c41392af81f8a20855028bf fix: user proper act pattern in streamConfiguration
9712e659e394a898500ed649464ff14d4870e589 Merge branch 'feature/CORL-729-final-form' of https://github.com/coralproject/talk into feature/CORL-729-final-form
9e5cfbaf3593615b457055de23f187fa07edd4c4 fix: signIn test
99b44a4a1bbb7ff2cd44c6821ad33b80f90c4a99 fix: user proper act pattern in stories.spec.tsx
ed7c1a92f93ab9aaa85ff92837b0ed21560cb358 fix: user proper act pattern in addEmailAddress
a04b392cb2148b9a24791b062027796c409d053e fix: remove obsolete snapshots
59df67c0f9b9d26c74e2cca7d333f5868b0b202d fix: signUp test
7656f179df95b4cd96b37afbc88a1c3a2944fdf4 fix: use proper act pattern on createPassword
85246fbf1f9ab49ad3a09c11ab79bf537059b548 fix: use correct act() pattern in createUsername.spec.tsx
d5239373a2d1bbed0bfe8c1ca62ef6a70ef5c7d9 fix: the correct way to use act on form submit :-)
d84ecd168354f4acb422a5ddb725fb8faf9c3184 fix: moderation test
d8df62ab1a6486144684ff917c47e6e375ffbe03 fix: reportComment test
2756e3184bb292168e8d34e201f340c3799941e6 fix: auth tests
a28695dbdd313a7bc3dade9ac1f92d6ef0061526 Properly handle final-form actions in tests
2fafc8ea3458c5b15b66f3d65f0947672dd1a516 Update snapshots now that final form isn't overwriting props
1f9bbaec8678a7653124898ba4a2e84ddc1ef243 fix: prevent final form from overwriting field props
f6c66c003d1917db2dcb3f757e8a303266c381fa fix: prevent final form fields overwrite out props
48d1fc7318ee4ba7bf72839127e9a0b1487c1729 chore: rename translation string
728373da5728a4e7c039bd0c3a3cf0037e9f5177 fix: purge relay metadata from request
7cdea925087a6b9b6e318bbb1b31b798be87dc2f fix: radiobuttons
9735bae79222219a81a28d458976a596201b650b chore: revert obsolete checks
0b556e1693584430a5814e81d87b0f233efd1a30 fix: refactor admin configure
b245afc7b196035bcb454e031c966e63c77ce522 fix: implement withForm HOC
5787400051211f5d2e1773d7207f32b66b02a2a1 Update the Configure page form state to properly load form values
8c2af3e22a96a3d2e50e7f06fb45d1fb79cf0c8e Replace form.reset() with setTimeout(form.reset)
27d9c90e3f0166cc2db45db461619be15a3cb950 Update radio buttons and on/off fields to work with final-form updates
b852dd14af85b14ff8e0d2823e1e83bf278b29b9 Replace any on OnSubmit with typed form submission interfaces
f049a70aaf4872825ac3b2aa62dc5cb7f945290a (f) Preliminarily get Coral compiling with latest final-form libraries
* feat: act is now actAndReturn
* fix: print original filename and line number in custom console impl
* feat: trace process warnings
* fix: server warnings about potentially memory leak with too many listeners
* chore: upgraded node 12, more log lines
- upgraded from 10 LTS to 12 LTS
- added log line with userID to GraphQL
log entry
* fix: adjusted some intl formats