Commit graph

325 commits

Author SHA1 Message Date
Julianna Tetreault
79bc765f3c
"Empty State" for GDPR Delete Requests (#17583)
* Adds an empty state to the GDPR delete requests table

* Refactors and fixes gdprDeleteRequests.spec.js

* Updates aria-describedby for the GDPR delete requests table
2022-05-09 06:50:15 -06:00
Julianna Tetreault
810d5cf3a6
"Empty State" for Invited Members (#17571)
* WIP: Adds an empty state to the invitations table

* Pulls invited member empty state into partial

* WIP: Center empty state within invited members table body

* Removes partial and adjusts empty space styling

* Adds an e2e for the empty state to invitedUsers.spec.js

* Moves empty state outside of table and adds aria-describedby to table

* Update app/views/admin/invitations/index.html.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Adjusts ara-describedby erb tag

* Updates the route used within invitedUsers.spec.js to fix e2e failure

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2022-05-05 13:24:06 -06:00
Ridhwana
6f880ee5b6
Update the Sidebar to include the Member Manager (#17538)
* feat: update all the paths as a first order of business

* feat: update all the folders to no longer appear under users

* feat: update specs

* feat: update specs

* feat: remove User namespace

* feat: remove route namespace

* feat: path change

* feat: move the menu items to the sidebar

* feat: add a badge

* feat: remove tabs partial

* xs font

* feat: update describe blocks

* feat: update cypress tests

* chore: oops member_manager instead of member_management

* feat: c-indicator

* feat: update the tests

* feat: update the gdpr test

* feat: add the invitations

* chore: align

* feat: update the GDPR constant

* feat: rename to GDPR actions

* feat: add member manager route
2022-05-05 12:46:47 +02:00
Suzanne Aitchison
50d2359049
add crayons modal to gdpr confirm delete flow (#17568) 2022-05-05 08:19:34 +01:00
Suzanne Aitchison
6313114fc2
Update invitations search aria-label (#17569)
* update invitations search aria-label

* nudge Travis
2022-05-05 08:13:53 +01:00
Suzanne Aitchison
25bf8a0711
Remove name from invitation flow (#17438)
* remove name from invite user flow

* remove name from invitation instructions

* update invitations spec

* update specs and invitation actions overflow menu name

* allow users to set name when accepting invite
2022-05-03 09:33:12 +01:00
Ridhwana
994a121c62
feat: add search by email back (#17511) 2022-04-29 09:59:10 -04:00
yheuhtozr
ef290a5120
controllers/admin i18n (#17085)
* admin controllers i18n

* remove ja.yml

* fix for spec

* fix for spec 2

* Apply suggestions from code review

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>

* Update config/locales/controllers/admin/fr.yml

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
2022-04-26 09:40:09 -06:00
Ridhwana
d9ca26b521
DO NOT MERGE: Remove the Member Index View Feature Flags + old code (#17388)
* feat: remove feature flag on the member index view and re-arrange some partials

* feat: remove Feature Flag for the invitations view

* feat: remove Feature Flag for the gdpr view

* feat: remove Feature Flag for the controls

* feat: remove the feature flag in the tests

* remove extra queries that we no longer use

* Update app/views/admin/invitations/index.html.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Update app/views/admin/invitations/index.html.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Update app/views/admin/users/index/_controls.html.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Update app/views/admin/users/gdpr_delete_requests/index.html.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Update cypress/integration/seededFlows/adminFlows/users/userIndexView.spec.js

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Update cypress/integration/seededFlows/adminFlows/users/userIndexView.spec.js

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Update app/views/admin/users/gdpr_delete_requests/index.html.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* feat: attempt to fix Cypress test

* fix: soem other cypress tests

* fix: search bar

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2022-04-25 14:49:34 +02:00
Suzanne Aitchison
33eb6070f4
Reference checkboxes by name (#17403) 2022-04-22 10:44:25 -04:00
Daniel Uber
de1e1ea7b8
Confirm signout happened by looking for Log in link (#17392)
Similar to checking that "Unpin post" is shown after pinning, wait for
"Log in" to show after signing out before checking that signed out
users can see a pinned post.

Recommended by @aitchiss in a comment on #17385 as a way to limit
false negatives (where we check the previously signed in user's view)
2022-04-21 10:34:05 -05:00
Daniel Uber
2f4f98462e
e2e: Reload the page after changing authentication (#17387)
* Reload the config page after changing auth

When testing in Chrome (but not Firefox or Electron) I noticed this
test would fail. The issue appears to have been findByLabelText (used
to check Email enabled, Facebook enabled, etc are not visible) was not
finding the labels when the group was still hidden.

I _think_ there was a time, when this test was first written, that
submitting the form reloaded the page (simple form post), but that may
have been replaced with an xhr submission and some client side
replacement?

I tried not clicking the Authentication after enabling invite only (to
prevent hiding the form content, leaving this section expanded),
however this caused the "Email enabled" check to fail (it was still
visible). I think this means it had been passing because it was not
visible because the section was hidden, not because the label had been
updated properly after the submission.

I'm not sure if fixing the test here papers over a UI issue, but it
would be best if these tests worked consistently across browsers. I
suspect this may have behaved differently in earlier versions of
Chrome, or only been tested interactively in Chrome when the page
still reloaded, and this caused some drift.

* Update cypress/integration/seededFlows/adminFlows/config/authenticationSection.spec.js

prefer reload to calling visit a second time

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2022-04-21 09:46:17 -05:00
Daniel Uber
f6a648c607
Address a flaky spec by waiting (#17385)
We had seen an increase in CI timeouts (no output received for 10
minutes).

Running this example (signed out user sees the pinned article)
repeatedly I was able to reproduce the failure seen in Travis, and
checking the last few times this occurred it appears to be linked to
the pinArticle.spec.js last test, which fails with an
ApplicationPolicy when pinning.

The likeliest source of this issue is the POST (pin the article) is
received concurrently with the session delete (logging the admin user
out), resulting in a race. If/when the signout occurs before the
article policy is checked (does the current user have permission to
pin an article), the cypress running stalls.

This occurred both interactively (bin/e2e or cypress open) and
headless (cypress run/CI). The error went away reliably after
inserting this guard to check for the "Unpin post" link on the page,
which forces the POST to have completed and redirected back to the
admin page before logging out.

My understanding of this problem is borne out in the local test logs,
where the signout and pin requests arrive concurrently and process out
of order (and the POST gives a 404 instead of a 302).

    Started DELETE "/users/sign_out" for 127.0.0.1 at 2022-04-20 12:09:23 -0500
    Started POST "/admin/content_manager/articles/1/pin" for 127.0.0.1 at 2022-04-20 12:09:23 -0500
    Completed 204 No Content in 42ms (ActiveRecord: 6.2ms | Allocations: 6323)
    Completed 404 Not Found in 4ms (ActiveRecord: 0.4ms | Allocations: 833)
2022-04-21 09:18:08 -05:00
Suzanne Aitchison
9d9bf8763a
fix bug in search and filter indicators (#17341) 2022-04-20 17:57:57 +01:00
Suzanne Aitchison
963f0c1136
style the orgs, add cypress tests (#17370) 2022-04-20 15:37:20 +01:00
Suzanne Aitchison
b4b7d4bd39
Admin member index: invitations responsive layout (#17278)
* add expandable search control at mobile size

* add invitations smaller layout

* replace missing member image

* tweaks following merge

* minor layout tweaks

* add actions to smaller view, update cypress specs
2022-04-19 10:00:15 +01:00
Jeremy Friesen
3a37db7b30
Ensuring /new remains a call to action end point for DEV (#17294)
There are two problems engrained in this:

1. The undocumented expectation of `/new` needed to other sites linking
with prefill information.
2. The prefill parameters being lost during the authentication process.

The first bug was introduced as part forem/forem#16536.  The second is
likely introduced as part of a Rails upgrade (namely `request.path` most
likely once included the query parameters but with our current
implementation it does not).

Closes forem/forem#17292
2022-04-14 14:50:40 -04:00
Ridhwana
2746e77fd5
Adding a modal for the CSV export (#17259) 2022-04-14 18:19:28 +02:00
Suzanne Aitchison
a0a4b8a851
Member index (Phase 2) - Invitations actions (#17213)
* Add actions to invitations table

* table style tweaks

* add specs for cancel and resend actions

* rspec resend test
2022-04-14 08:26:36 +01:00
Suzanne Aitchison
b1e7d8a5ec
Member index (phase 2) - Search invitations (#17210)
* add ability to search invitations

* add an invited scope

* add a cypress test
2022-04-12 10:40:44 +01:00
Jeremy Friesen
61ccc29fed
Conditionally disabling Listings (Waiting on Product but technically Good to Go) (#16437)
* Conditionally disabling Listings

Prior to this commit, we were assuming everyone still had the Listing's
feature turned on.

With this commit, we move from the "implicitly on" nature of
`FeatureFlag.accessible?` to the "explicitly off" nature of
`FeatureFlag.enabled?`.  The key differentiator is that we are not
"pushing out a feature flag setting to other forems."  Listings now
become an "opt-in".

This requires a few things:

1) Ensure that DEV.to enables the `:listing_feature` before we deploy
   this branch.
2) Communicate this change to other Forem adopters and provide a
   timeline for when we'll deploy this change.
3) Documentation.  Given that we have this feature, but it will be
   disabled by default, we want to look into communicating what it is
   and how to enable it.

Further, I chose to do the least effort change on our specs.  Namely to
treat the specs as though someone fully enabled the listing feature.

This pull request is a "competetor" to #16423.

Closes forem/rfcs#291

Relates to #16420 and #16461.

* Favoring only setting feature for specific tests.

* Adjusting cypress to avoid listing check

* Removing redundant test based on feedback

* Fixing feature spec

* Fixing cypress test
2022-04-11 20:23:56 -04:00
Suzanne Aitchison
bd097bca25
Member index: add copy email to clipboard functionality (#17146)
* functioning on large screen view

* layout tweak

* tidy up

* remove redundant change

* refocus dropdown button when clipboard copy executes and closes dropdown

* add cypress test

* add missed attr

* implement in responsive layouts

* use runtime copy utility
2022-04-08 14:08:15 +01:00
Jeremy Friesen
07983e38be
Adjusting conditional create post rendering (#17132)
* Revert "conditionally render create post button for admins #16490 (#16606)"

This reverts commit 1cb45995cb.

* Adding conditional create post rendering

This pull request does two things:

- Reverts the forem/forem#16606
- Replaces the conditional rendering with the approach from forem/forem#17076

What to consider:

- How does this impact Cumulative Layout Shift (CLS).  Prior to this
  commit, we didn't "flicker" the "Create Post" button into view if the
  site didn't have the conditional.
- In reverting forem/forem#16606 we remove a dependency on Turbo.
- We reduce one network call, relying instead on the async_info to carry
  the visible/hidden logic.

If the "flicker" is a problem we could add a conditional in the page for
if the site has enabled that feature.  However, that's a place holder as
we're looking at possible other reasons for allowing/disabling the
create a post.

This is a non-blocking PR, as in we can merge or not merge this and
proceed with what we have.  Instead the main goal is to "unify" our approach.

* Update cypress/integration/seededFlows/policyFlows/limitPostCreationToAdmins.spec.js

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Leveraging change from forem/forem#17143

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2022-04-07 09:11:37 -04:00
Julianna Tetreault
ccf33c50a0
Add Data (User Details, Status, etc.) to the Member Index View Columns (#17033)
* Adds data to the member column in Member Index View

* Adds roles, statuses, and latest activity to Member Index views

* Adds the list of orgs a user belongs to in Member Index view

* Updates the image URL to link to each users member detail view

* Adds comment_suspended to user current_status and makes roles prettier

* Fixes bullet warning and encapsulates org logic in method

* Properly displays today and yesterday in words

* Refactors #current_organizations to use ternary

* Updates user.rb Member Index View-related methods

* Adjusts the styling of user roles and adds tooltip to roles

* Updates Member Index View to be mobile-friendly

* Updates userIndexView.spec.js

* Updates capitalization within userIndexView.spec.js

* Updates Member Index View per mobile designs and feedback

* Adds member status logic inline with SVGs

* Updates the status column for mobile layout

* Adjust current_role tooltips for Member Index View

* Adds organization name tooltip to member orgas

* Adds organization pics to Member Index View and cleans up helpers

* Addresses PR review feedback (Thanks, Suzanne!)

* Uses CSS in place of SVGs for member statuses

* Adds E2E test for and removes link to org page from Member Index View

* Addresses PR feedback comments by refactoring Member Index View code

* Removes leftover code in user.rb

* Update method that tooltips rely on

* Spells regular correctly :

* Adds a spec that tests Admin::UsersHelper#format_last_activity_timestamp

* Adjusts #cascading_high_level_roles logic and roles

* Adds a spec for #cascading_high_level_roles

* Adds a #last_activity spec to the User model

* Adjusts code a bit per PR feedback. Thanks, Ridhwana! :)

* Updates specs for Member Index View helpers

* Adds Timecop.freeze to help with timestamp failure in user_spec.rb
2022-04-06 11:48:25 -06:00
Jeremy Friesen
c3c884f4d0
Conditional rendering of "Create Post" link (#17076)
* WIP - Conditional rendering of "Create Post" link

This PR builds on the conversation from forem/forem#17056 and moves in a
slightly different direction.

Important in all of this is that the ability to create a post is
enforced on the server.  If the "Create Post" button were to be visible
but the user couldn't create a post when they clicked the button, they
would get an authorization error (or some such response).

This PR posits a different and perhaps competing approach to
forem/forem#16606.  This PR provides a general approach in which we add
class attributes in our HTML erb files.

Note: I have not included Cypress tests as I don't want to yet commit
that time.  I'm also wondering if this is the "right" thing to do.  I
definitely think we want to add some JS tests.  But could we do JS and
unit tests?  (How do we reach consensus regarding our test approach?)

Again, thank you for the conversation and expect an even more "complete"
PR after we have our discussion.

* Extracting AsyncInfo model to ease testing

* Renaming forbidden to visible

* Adding cypress test to assert no 'Create Post'

These are always treacherous.  What happens when we rename the button?
The test will continue to work.

* Apply suggestions from code review

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Switching to pack file for policy

Follows on [Suzanne's comment](https://github.com/forem/forem/pull/17076#issuecomment-1088567286)

* Update app/javascript/packs/applyApplicationPolicyToggles.js

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2022-04-05 12:47:12 -04:00
Julianna Tetreault
d23fe02a55
Removes a letter from E2E expectation in creatorSignup.spec.js (#17117) 2022-04-04 22:12:31 -04:00
Jeremy Friesen
2fda726409
Revert "Added a way to sort comments on an article (#16686)" (#17093)
This reverts commit 1345334b33.
2022-04-04 08:36:34 -04:00
VISHAL DEEPAK
1345334b33
Added a way to sort comments on an article (#16686)
* Added a way to sort comments on an article

* Sorting of comments now uses crayons-dropwn. Some minor fixes as per comments on PR

* Add and fix test cases for sorting comments functionality

* Changes in code for sort comments.  Code  is more aligned with forem's conventions

* Added cyperss tests for sort comments on an article. Cleaned up code to better follow forem conventions

* Get fresh handle of triggerButton everytime clickOustideListener is clicked. Fix Cypress test cases to reflect the earlier.
2022-04-01 09:26:18 -05:00
Suzanne Aitchison
38a9ac41f7
Admin member index: initial small screen skeleton layout (#17046)
* initial skeleton

* tweaks

* tweaks to header

* Update cypress spec for small screens

* nudge Travis
2022-03-30 16:59:39 +01:00
Suzanne Aitchison
70a5e9437f
Admin member index: show/hide search and filter controls (#17009)
* initial work to show the expand/collapse search and filter on member index

* replace icon with actual button

* simplify logic in pack

* add cypress tests

* make sure both fields part of same form

* add an indicator in mobile view when field has a value

* make sure empty params treated same as missing params

* make sure indicators stay in step with current user input

* partials for inputs

* rename pack file
2022-03-29 15:37:37 +01:00
Daniel Uber
d9a5c204e1
Skip tests for profile preview cards on the home feed (#17014)
This is failing for me (and had been flaky previously).

https://app.travis-ci.com/forem/forem/builds/248455560 blocked a
deployment because of an error (`@followsRequest` timed out waiting).

I'm able to reproduce this locally and disabling until we can find a
stable fix.
2022-03-25 14:23:40 -05:00
Suzanne Aitchison
fcdb9d3fe5
Improvements to home feed profile preview card cypress spec (#17011)
* improvements to profile preview card cypress spec

* woops - missed staging files

* make sure follow buttons have been initialized

* wait on follow button fetching on load
2022-03-25 13:57:48 -04:00
ludwiczakpawel
2cec22e146
Removing bootstrap from Config's collapsable sections (#16620)
* .

* updates

* update specs

* expand profile field before deleting

* expand auth section in rspec test

* expand smtp settings summary in rspec

* update user experience section specs

* more spec tweaks

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2022-03-22 14:57:07 +01:00
Nick Taylor
37cf5107f5
Created a utility function for checking the flash success message for user udpates in the admin (#16956) 2022-03-21 15:38:31 -05:00
Suzanne Aitchison
9fff142fcc
Update color picker input specs (#16834)
* add custom command, rework creator settings spec

* update other color picker specs
2022-03-09 14:25:22 +00:00
Suzanne Aitchison
5ae9eb4257
Implement new color picker in listings category form, cleanup old code (#16770)
* remove old color picker initializer

* update listing category picker

* remove old color picker styles
2022-03-08 12:43:18 +00:00
Suzanne Aitchison
aff5f4ce0d
add new color picker to user experience config (#16769) 2022-03-08 12:43:01 +00:00
Suzanne Aitchison
d6056a2b5a
add new color picker to admin tag form (#16768) 2022-03-08 10:38:19 +00:00
Daniel Uber
bec3cc144d
Disable brand color picker in cypress (#16817)
We're seeing these fail intermittently (typing the color doesn't
result in the desired color in the form), and will disable temporarily
to avoid unrelated build failures.
2022-03-07 15:58:52 -06:00
Suzanne Aitchison
d6a9e133d3
pipe tags click (#16785) 2022-03-04 14:01:50 +00:00
Suzanne Aitchison
db288c0b4b
Use the Preact ColorPicker in creator onboarding (#16731)
* use Preact ColorPicker in creator onboarding

* update tests

* update comments

* Update app/javascript/packs/admin/creatorOnboarding.jsx

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
2022-03-03 08:22:10 +00:00
Suzanne Aitchison
ac7f1a6db6
Fix error in feed follow buttons where user name has apostrophe (#16758)
* escape apostrophes in names

* woops
2022-03-02 15:53:48 -05:00
Julianna Tetreault
5652a89cd6
Update the Copy for all Modals in the Admin Member Detail View (#16708)
* Updates the copy for all modals within Admin Member Detail view

* Resolve most failing tests within managaUserOptions.spec.js

* Update app/views/admin/users/show/profile/actions/_export.html.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Update cypress/integration/seededFlows/adminFlows/users/manageUserOptions.spec.js

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2022-02-28 13:02:57 -07:00
Ridhwana
92e59d76c4
remove verify emails from the dropdown (#16699) 2022-02-25 17:36:46 +02:00
Michael Kohl
3322b49e84
✂️ Remove myself from core contributors (#16672)
* Remove myself from core contributors

* Update comments

* Update more comments
2022-02-25 09:56:19 -05:00
Julianna Tetreault
5f26dc6809
Update the Copy for the "Overview" Tab and Its Modals (#16645)
* Updates the overview copy and over modal copy

* Updates E2E tests for Admin Member View overview fields

* Fixes copy on credit button in manageCredits.spec.js
2022-02-25 07:17:00 -07:00
Suzanne Aitchison
1dcd593c10
✂️ Remove clipboard packages no longer needed ✂️ (#16683)
* remove clipboard copy packages no longer needed

* add to tests to make sure clipboard populated
2022-02-24 16:47:22 +00:00
Suzanne Aitchison
24d02b6a53
Add new ColorPicker to organization settings (#16642)
* Use new color picker in org settings

* add cypress spec

* remove i18n keys no longer needed
2022-02-23 09:05:39 +00:00
Julianna Tetreault
b8a87b842b
Implement Tabs for the Admin Member Detail View (#16640)
* WIP: Adds tabs to the Admin Member Detail View

* WIP: Adds tabs in the least elegant way to Admin Member Detail View

* WIP: Comments out unused code

* WIP: Initial code set up for tabs

* feat: add a tab param to the route

* feat: set the current tab and direct to the overview tab in all other cases

* chore: remove all other unused code

* Renames @tab to @current_tab and MemberDetails to UserDetails

* Removes unused route and reverts renaming of params

* Removes unused route from admin.rb

* Adds an E2E test that tests tabbing through Admin Member Detail tabs

* Updates navigateTabs E2E and _tabs.html.erb per feedback

* Updates tnavigateTabs.spec.js

* Updates navigateTabs.spec.js per Suzannes suggestion :)

* Removes useless comment from Admin::UsersController

Co-authored-by: Ridhwana <ridhwana.khan16@gmail.com>
2022-02-18 10:47:53 -07:00
Suzanne Aitchison
46404ed8c2
Add new color picker to user settings page (#16625) 2022-02-18 08:43:56 +00:00