* [CORL-863] Allow streams to be converted/configured to Q&A (#2809)
* Create preliminary schema changes for Q&A
Adds a mode and expert User onto the StorySettings.
Adds a mode selection drop down on a story's
Configure tab.
CORL-863
* Allow multiple experts, remove form elements from search
Makes the previous expert user on a Q&A story now
an array of users who can be assigned.
Converts the previous form based search that was
pulled from the admin community area into a set
of events built on callbacks.
CORL-863
* Create addExpertToStory mutation
CORL-863
* Create removeExpertFromStory mutation
CORL-863
* Conditionally show the the expert selection options
CORL-863
* Create a dropdown search control for Q&A experts
CORL-863
* Fixing up tests to match new QA stream options
Adds a few localization fixes to make sure tests
pass.
Updates existing snapshots.
CORL-863
* Add load more button to expert search list
CORL-863
* Update experts query to match react upgrades
CORL-863
* Move the Q&A config to its own section under stream config
Create enable and disable Q&A mutations/button toggle.
CORL-863
* Fix alignment and layout of expert list items
CORL-863
* Define translations and update tests
CORL-863
* Use official copy for Q&A config
CORL-863
* [CORL-856] Show expert badge on comments (#2829)
* Create preliminary schema changes for Q&A
Adds a mode and expert User onto the StorySettings.
Adds a mode selection drop down on a story's
Configure tab.
CORL-863
* Allow multiple experts, remove form elements from search
Makes the previous expert user on a Q&A story now
an array of users who can be assigned.
Converts the previous form based search that was
pulled from the admin community area into a set
of events built on callbacks.
CORL-863
* Create addExpertToStory mutation
CORL-863
* Create removeExpertFromStory mutation
CORL-863
* Conditionally show the the expert selection options
CORL-863
* Create a dropdown search control for Q&A experts
CORL-863
* Fixing up tests to match new QA stream options
Adds a few localization fixes to make sure tests
pass.
Updates existing snapshots.
CORL-863
* Add load more button to expert search list
CORL-863
* Update experts query to match react upgrades
CORL-863
* Move the Q&A config to its own section under stream config
Create enable and disable Q&A mutations/button toggle.
CORL-863
* Fix alignment and layout of expert list items
CORL-863
* Define translations and update tests
CORL-863
* Use official copy for Q&A config
CORL-863
* Show expert badges on comments when Q&A is enabled
CORL-856
* Update mutation responses and tests due to added expert fields
CORL-856
* Use EXPERT user tags to denote expert users
Removes the need for viewerIsExpert and
authorIsExpert loader/resolvers on Stories
and Comments respectively.
CORL-856
* [CORL-879] Add an unanswered tab to stream when in Q&A mode (#2838)
* Create preliminary schema changes for Q&A
Adds a mode and expert User onto the StorySettings.
Adds a mode selection drop down on a story's
Configure tab.
CORL-863
* Allow multiple experts, remove form elements from search
Makes the previous expert user on a Q&A story now
an array of users who can be assigned.
Converts the previous form based search that was
pulled from the admin community area into a set
of events built on callbacks.
CORL-863
* Create addExpertToStory mutation
CORL-863
* Create removeExpertFromStory mutation
CORL-863
* Conditionally show the the expert selection options
CORL-863
* Create a dropdown search control for Q&A experts
CORL-863
* Fixing up tests to match new QA stream options
Adds a few localization fixes to make sure tests
pass.
Updates existing snapshots.
CORL-863
* Add load more button to expert search list
CORL-863
* Update experts query to match react upgrades
CORL-863
* Move the Q&A config to its own section under stream config
Create enable and disable Q&A mutations/button toggle.
CORL-863
* Fix alignment and layout of expert list items
CORL-863
* Define translations and update tests
CORL-863
* Use official copy for Q&A config
CORL-863
* Show expert badges on comments when Q&A is enabled
CORL-856
* Update mutation responses and tests due to added expert fields
CORL-856
* Use EXPERT user tags to denote expert users
Removes the need for viewerIsExpert and
authorIsExpert loader/resolvers on Stories
and Comments respectively.
CORL-856
* Show an unanswered comment stream when Q&A is enabled
CORL-879
* Do not visually show the unanswered tag
CORL-879
* [CORL-859] Convert Featured stream into Answered for Q&A (#2842)
* Create preliminary schema changes for Q&A
Adds a mode and expert User onto the StorySettings.
Adds a mode selection drop down on a story's
Configure tab.
CORL-863
* Allow multiple experts, remove form elements from search
Makes the previous expert user on a Q&A story now
an array of users who can be assigned.
Converts the previous form based search that was
pulled from the admin community area into a set
of events built on callbacks.
CORL-863
* Create addExpertToStory mutation
CORL-863
* Create removeExpertFromStory mutation
CORL-863
* Conditionally show the the expert selection options
CORL-863
* Create a dropdown search control for Q&A experts
CORL-863
* Fixing up tests to match new QA stream options
Adds a few localization fixes to make sure tests
pass.
Updates existing snapshots.
CORL-863
* Add load more button to expert search list
CORL-863
* Update experts query to match react upgrades
CORL-863
* Move the Q&A config to its own section under stream config
Create enable and disable Q&A mutations/button toggle.
CORL-863
* Fix alignment and layout of expert list items
CORL-863
* Define translations and update tests
CORL-863
* Use official copy for Q&A config
CORL-863
* Show expert badges on comments when Q&A is enabled
CORL-856
* Update mutation responses and tests due to added expert fields
CORL-856
* Use EXPERT user tags to denote expert users
Removes the need for viewerIsExpert and
authorIsExpert loader/resolvers on Stories
and Comments respectively.
CORL-856
* Show an unanswered comment stream when Q&A is enabled
CORL-879
* Create preliminary schema changes for Q&A
Adds a mode and expert User onto the StorySettings.
Adds a mode selection drop down on a story's
Configure tab.
CORL-863
* Do not visually show the unanswered tag
CORL-879
* Allow multiple experts, remove form elements from search
Makes the previous expert user on a Q&A story now
an array of users who can be assigned.
Converts the previous form based search that was
pulled from the admin community area into a set
of events built on callbacks.
CORL-863
* Create addExpertToStory mutation
CORL-863
* Create removeExpertFromStory mutation
CORL-863
* Create a dropdown search control for Q&A experts
CORL-863
* Fixing up tests to match new QA stream options
Adds a few localization fixes to make sure tests
pass.
Updates existing snapshots.
CORL-863
* Add load more button to expert search list
CORL-863
* Update experts query to match react upgrades
CORL-863
* Move the Q&A config to its own section under stream config
Create enable and disable Q&A mutations/button toggle.
CORL-863
* Fix alignment and layout of expert list items
CORL-863
* Define translations and update tests
CORL-863
* Show expert badges on comments when Q&A is enabled
CORL-856
* Use official copy for Q&A config
CORL-863
* Update mutation responses and tests due to added expert fields
CORL-856
* Use EXPERT user tags to denote expert users
Removes the need for viewerIsExpert and
authorIsExpert loader/resolvers on Stories
and Comments respectively.
CORL-856
* Create the answered stream for Q&A
CORL-859
* Sort the Q&A on Most Voted by default
CORL-859
* Fix type mismatch between post comment form and fragments
CORL-859
* Adding localizations for Q&A tags
* Hide feature flags in Q&A streams
* Allow experts to clear answered questions
Can click a button that shows up in the unanswered
tab under answered questions to refresh the stream,
clearing the answered questions from that tab.
* Show arrow upvote icon when in Q&A mode
Also localized the upvote text so it can
be translated.
* Hide mod/report buttons on answered questions
* Remove unnecessary fragment container
* Remove errant debug console log
* Make story mode required on story settings
* Make remove button outlined, not filled
* Further schema changes around Q&A and experts
Rename add/remove story expert to removeStoryExpert
and addStoryExpert naming.
Replace enableQA and disableQA mutators with single
updateStoryMode mutator.
* Remove story mode from UpdateStorySettings
* Replace inline string val's with enum
* add dependencies to useEffect
* docs cleanup around tags.type index check
* Approve a question when it is answered in Q&A
Approves using the author's id as the moderator
* Add comment around use of TAG on comments edge
* Use tagFilter instead of $elemMatch to filter by tags
* Improve responsive styles for expert list items
* Update copy to "Done" from "Remove answered questions"
* Text styling for no users found text
Styles the expert search list to have proper
text styling when no users are found for the
search keyword.
* Remove duplicate checks around story experts
Not necessary as Mongo does this for us.
* Fix a missed "sort imports" during rebase
* Refactor Q&A moderation phases for clarity
Simplify logic and update comments.
Rename: "answered" -> "tagExpertAnswers"
Rename: "unanswered" -> "tagUnansweredQuestions"
* Remove username & email from add expert mutation
* Format expert list emails with Localized
* Break out no comments logic into fragment
* Remove ref handling from expert search field
Use value assignment on TextField instead.
* Replace Box with Flex and CSS
* Show Q&A tooltip on Answered tab
Co-authored-by: Kim Gardner <kgardnr@gmail.com>
* 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>
* show comment counts for stories in story table
* remove debug code
* add 'approved' moderation queue to moderation tabs
* add site/story specific routes
* Revert "remove debug code"
This reverts commit ed3a44304d225c79336423f34d0bde57a998cd69.
* Revert "show comment counts for stories in story table"
This reverts commit 61eb00c70c873fd2d10f1476601c7a69ae12651d.
* use SHORT_NUMBER fluent function to format comment counts
* fix: short number algo
* chore: remove whitespace
* chore: rename var
Co-authored-by: Vinh <vinh@vinh.tech>
* 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>
We don't want to clog up the variables list with every
design token from AirTable. Instead, more efficient to
use Post CSS var's that compile down into the CSS bundle
more efficiently.
CORL-748
* Semi-bold selected text on radio buttons
Makes it very obvious which item is selected.
CORL-875
* fix: updated snapshots
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
* Align the sidebar and config content in Admin>Configure
CORL-874
* fix: updated snapshots
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>