* Adding logic to hide Create Post on empty dashboard
As implemented, folks won't see this page if they can't create a post.
However, as our implementation drifts, we should continue to apply the
same policy.
See forem/forem#16999 for the conditional logic that redirects users.
* Adding a hack to fix a unit test
This commit provides two things:
1. Some notes related to my analysis regarding the dashboard
2. Conditional redirects and rendering based on article policies
The code comments say most of what I want to say, but to reiterate:
When a user can't create articles nor do they already have published
articles, then we don't want to avoid showing them stats related to
articles.
Closesforem/forem#16913
Related to forem/forem#16908 and forem/forem#16931
This commit compresses the policy check that spanned both :new? and
:enabled?. We hide the ability to upload a video (as per the altered
html.erb files of this commit) but we didn't enforce the same logic in
the controller.
Further, as Videos are a subset of Article, I'm adding the "verify the
user is not suspended" test.
Directly relates to #16483
For sleuthing this relates:
- #16728
- forem/forem#16537
- #16634
And for historical context, this relates to:
- #10955
- #10954
- forem/internalEngineering#149
* Refactoring to add helper method
Prior to this commit, we made view level calls to service modules. This
refactor provides convenience methods on the model.
Furthermore, it addresses a few Rubocop violations that "come along for
the ride."
* Ensuring cached entity squaks like User
* Fixing broken spec
* Fixing typo
* Make dashboard left side nav an ul with the anchors as li items
* Add correct class to new ul element so that nothing changes visually
Suggested by @aitchiss and tested by @msarit, I thought some css styling may need to be applied, thanks!
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* fix analytic page have no back-to-dashboard button when user have no organization
* resolve conflict with main
* remove dump
* add test for back to dashboard button
* change dashboard landmark nesting
* switch to main db/schema.rb
* remove unnecessary div
* revert scema.rb to main
* fix user_visits_dashboard test
* change aside to nav, put nav back into main-content
* remove unnecessary file
* remove duplicate nav
* add id to main
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* Create DiscussionLocks
* Fix specs
* Update nullify_blank_notes_and_reason
* Update before_validation call
* Updated DiscussionLockPolicy for clarity
* Move permitted_attributes to a constant
* Update route
* Apply suggestions from code review for frontend
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* Add title tags
* Wrap unlock confirm in main element
* Wrap flash messages up in div
* Actually fix title tags
* Hide comment reply button when discussion is locked
* Add E2E tests
* Try to fix E2E tests
* Cypress...you work locally but not in CI...why!?
* PR feedback
* Update E2E tests
* More E2E updates 😭
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* use dropdownutils in dashboard and manage pages
* add tests for the toggle menu on dashboard
* add test for archiving from manage post view
* small tweak to avoid unhandled errors
* small tweaks to form methods
* Rename SiteConfig
* More renaming
* Update spec
* Update mandatory settings mapping
* More renaming
* e2e test fixes
* You have a rename, and you have a rename
* Spec fix
* More changes
* Temporarily disable specs
* After-merge update
* Undo rename for migration
* undo rename of DUS
* Fix DUS
* Fix merge problem
* Remove redundant DUS
* Fix specs
* Remove unused code
* Change wrong class name
* More cleanup
* Re-add missing values to constant
* Fix constant
* Fix spec
* Remove obsolete fields
* Add accidentally removed field
* Update spec
* Move methods from Settings::General to ForemInstance
* Remove unneeded model
* Change mentions of 'site config'
* Sanitize tag URLs
For tags with non-ASCII names, we were generating busted URLs, which
would then cause errors. This commit fixes that particular error by
generating usable URLs.
* Use URL generator that will sanitize tag names
* Remove path prefix when using a URL generator
* fix following tags input a11y errors
* give hidden inputs unique ids
* update html element code in initScrolling, update test with new ids
* refactor
* trigger travis
* target the textfield inside the div in the test
* Small UI refactor that makes the stats page resonsive (to some degree)
* Add import to scss file
* Whoops
* Implement feedback from review
* Extract flex value into variable
* Update app/javascript/analytics/dashboard.js
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
* Remove pro role on user, expose pro dashboard to all users as analytics
* Remove pro from Elasticsearch mappings
* Update user role docs to use :trusted over :pro
* Remove pro from Role model spec
* Remove more references to pro, as noted by @rhymes
The issue is caused because published_timestamp` is converted to local date wherea the `edited_at` date is not.
Fixed by using `local_date` while presenting the `edited_at` date to keep the behaviour same.
* Move HexComparere to Hex::Comparer service
* Create USER_COLORS constant and constant specs
* Move formats to constants
* Rename Hex::Comparer to Color::CompareHex
* Replace follows#update with follows#bulk_update
* Allow follows#bulk_update to receive multiple follows and remove follows#update
* Add FollowPolicy#bulk_update? and remove update?
* Combine save button into one in following_tag.html
* Rename follows_update_spec to follows_bulk_update_spec and update
* Update buildTagsHTML to conform to the view
* Allow scrolls down dashboard test to update multiple tag values
* Includes follower and followable in follows#bulk_update
* Mark and pass changed field.
* fix typo in html
* Update follows in transaction
* Extract js script to another file and update view
* Rename disableUnchangedButton.js to dashboardTagsDisableUnchangedButtons.js