* count things in redis
* add rest routes for daily comment totals
* add route for new commenters
* retrieve hourly totals for new commenters and comments
* add rate limiting
* add routes and components for dashboard
* add top stories component
* add activity charts
* clean up rest responses
* style dashboard components
* make dashboard site-aware
* change new commenters to new signups
* generate new signups by day chart
* update status pie chart
* update status pie chart
* allow site selection in dashboard
* cache daily signups
* count user bans in redis
* clean up route and method names
* clean up comment statuses chart and change from pie to bar
* fix package lock
* make daily counts time zone aware
* count rejected comments
* clean up today counts
* count comments from site
* store hourly keys in utc
* show daily user signups
* move siteID from params to query params
* add average line for daily comments chart
* make average comments count hourly
* show percent values for rejected comments
* style dashboard
* simplify dashboard rest routes
* style today totals and top stories
* style signup and comment activity chart
* add site selector to nav
* feat: redis/mongo refactor
* fix: some small tweaks
- Added comments to magic numbers
- Added errors for missing input
- Consolidated promise resolutions
* Revert "add site selector to nav"
This reverts commit 1c2b1dee34fb2742b04932079fd45f7f3de98418.
* show first site dashboard by default
* style dashboard site switcher
* updte snapshot
* add dashboard 118n keys
* udpate comment activiyt chart with legend and tooltip
* implement refresh button and loading states
* change colours of charts for today
* adjust today values spacing
* remove unused package
* don't pass redis into oauth strat
* remove unused package
* Revert "remove unused package"
This reverts commit 5b7c83a072604810ce7097865655e9ef8114d9e0.
* fix merge conflicts
* Fix icons bug on smaller screens
* resolve merge conflict
Co-authored-by: Wyatt Johnson <me@wyattjoh.ca>
* [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>
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
* 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.
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>
* fix: workaround for eslint typescript bug when creating or renaming files.
* fix: downgrade
* fix: do not lint during build
* fix: no need to permanently show eslint status in vscode.
* feat: speedup scripts & make server development faster
* feat: fix server debugging + allow attaching to a running node process
* feat: make npm run during watch less chatty
* chore: Rename InnerProps to Props
* feat: Render community guidelines
* chore: refactor schema communityGuidelines* settings into it's own type
* test: update snapshots
* wip
* Adding chokidar and types
* specifiying build tasks
* new structure, new types, executor and watchers
* Adding log
* Fully implemented watchers
* adapt vscode launc
* Add .babelrc.js to toplevel tsconfig project
* Typo
* Get schema path from .graphqlconfig
* Use watcher binary
* Add joi validation to watcher
* Remove fb-watchman for now
* Use correct ignore path
* Fix dist folder
* Allow setting watcher
* Per default only spawn one process at a time
* Support runOnInit
* Rename RestartingExecutor to LongRunningExecutor
* Use debounce instead of throttle
* Remove console log
* Debounce command execution
* Simplify debounce
* Watcher name change
* Typos
* Rename "watcher" root level config to "backend"