Commit Graph

43 Commits

Author SHA1 Message Date
Thomas Tracy
bc64c9e278 fix: [APER-1936] Changes for a11y review (#71)
* fix: [APER-1936] Changes for a11y review

- Fixes skip nav link to work properly
- inline styles pending tasks link
- adds <main>
- adds sr-only span to "view message" links in task history table
- header/footer updated in seperate PR

* chore: add sr-only span to unit test

* fix: fix space before sr-only span"
2022-08-19 10:31:30 -04:00
Maxwell Frank
c905ede6fe fix: cohorts disabled when 'all learners' is selected 2022-08-04 14:17:57 -04:00
Thomas Tracy
eea663675b fix: [MICROBA-1903] validate date time (#62)
* fix: [MICROBA-1903] validate date time

Currently, we do not validate date and time to be a date on the future on the front end. We do handle this on the backend. This updates form validation to force the user to enter a data in the future.
2022-08-03 09:57:25 -04:00
Maxwell Frank
9c6644c1b9 Mfrank/microba 1881 microba 1908 (#63)
* refactor: replaced Pending Tasks with alert and made general styling/accesibility updates

* addressed linter flags

* refactor: replaced Pending Tasks with alert and made general styling/accesibility updates

* fixed linting issues again

* refactor: replaced Pending Tasks with alert and made general styling/accesibility updates

* fixed checkbox responsiveness and darkened text under input

Co-authored-by: Maxwell Frank <mfrank@2u.com>
2022-08-02 11:41:27 -04:00
Thomas Tracy
339f9b303f fix: await post to properly update form (#59) 2022-07-29 09:24:42 -04:00
Thomas Tracy
aec97816fb fix: [MICROBA-1877] fix cancel button (#56)
The various form states were getting mixed up during error handling,
which lead to some strange situations where the cancel button was
appearing when it shouldnt have been. This PR centralizes all of the
form state changes into a useEffect hook to handle any and all state
changes throughout the form. This approach not only centralizes the
fragmented code, but prevents the state mixups that were happening
previously.

It also has the added benefit if down the line more state changes need
to be added, the changes are all happening in one place.
2022-07-25 15:02:02 -04:00
Thomas Tracy
31669aa1f2 feat: [MICROBA-1902] Confirm email deletion (#55)
This PR adds an alert style pop up to confirm with the user that they
are deleting an email from the scheduled email table intentionally.
2022-07-21 12:58:58 -04:00
Thomas Tracy
3deaeece2c feat: Add cancel button for editing an email (#49)
Right now, canceling edit mode is clunky. This adds a button to
explicitly cancel the mode for the editor.
2022-07-13 11:51:10 -04:00
Maxwell Frank
5a20359856 WIP - Removing Pending tasks and styling changes - Microba 1824 (#47)
* refactor: replaced Pending Tasks with alert and made general styling/accesibility updates

* addressed linter flags

* refactor: replaced Pending Tasks with alert and made general styling/accesibility updates

* fixed linting issues again

* refactor: replaced Pending Tasks with alert and made general styling/accesibility updates

Co-authored-by: Maxwell Frank <mfrank@2u.com>
2022-06-28 10:04:55 -04:00
Thomas Tracy
99b9a51598 feat: [MICROBA-1840] delete/edit scheduled emails (#44)
This PR adds delete and edit functionality to emails that are scheduled to be sent at a future date. The workflow for editing is as such:

    A user clicks edit on the table
    The contents of the email are copied to the editor, and the user makes edits
    The user is warned that this is editing an email, and that it will not create a new task, instead updating the selected one
    If they accept, the email is updated.

For delete, the user just hits the delete button, and its gone. There is now warning popup as of yet.

This PR also adds the toast component for success and errors when sending emails.
2022-06-23 14:20:48 -04:00
Thomas Tracy
5d88b19c07 feat: Add ScheduledBulkEmailTable (#42)
This PR refactors some of the code around the context store to be more in line with the project organization ADR in this repo. Essentially, it splits the reducers and actions into slices used by the components that need them to prevent pollution of data in the store.

This PR also handles most of the refactor around the BulkEmailTool making use of the BulkEmailToolProvider in order to share data between components. This allows for better copyToEditor functionality, amongst other changes, as the email form now handles its state within the context store.

The Provider and its store is purposefully tied to the BulkEmailTool as to prevent any bleeding of state information between tools that may be added to the comms MFE in the future.

This PR also adds the first iteration of the scheduled emails table. This table will allow for viewing, deleting, and editing emails in the future. For now, it only adds viewing. The viewing modal DOES support copy to editor functionality but it is NOT editing the original entry and WILL schedule a new email if submitted.
2022-06-06 10:27:31 -04:00
Justin Hynes
298f573113 fix: use originalUserIsStaff to gate bulk email tool over isStaff
[MICROBA-1822][CR-4822]

* use `originalUserIsStaff` to gate bulk email tool access over `isStaff`

Additional Context
Access to this tool was originally gated by looking at the `isStaff` value from the CourseMetadata data returned to us from the LMS. The user masquerading feature seems to have some interesting interactions with the Instructor Dashboard and we may be denying legitimate staff/admin/instructors access to the tool. Instead of using the value of `isStaff` we will now use `originalUserIsStaff` to determine if the user accessing the tool should be allowed access (and this follows how the Learning MFE gates content).
2022-06-01 14:24:04 -04:00
Thomas Tracy
6dd09451a3 refactor: [MICROBA-1506] refactor message modal (#41)
This pr extracts out the message modal so that it can be reused
elsewhere in the app. Specifically so we can reuse it for the "view"
button in the scheduled emails table.
2022-05-17 12:05:27 -04:00
Thomas Tracy
ffa0361c22 feat: [MICROBA-1506] bulkEmailTool data context (#39)
Currently, our bulk email tool in concept looks something like this:
- BulkEmailTool
	- BulkEmailForm
	- BulkEmailTaskManager

Right now, the two components under the parent BulkEmailTool dont really
need to communicate with each other. For scheduled email, these two
components are going to be relying on the same data, and there need to
be provided that data by the parent. In order to make things more
manageable, this PR sets up some boilerplate and patterning for this
data. What this PR will include:
- Documentation around the pattern
- Necessary boilerplate to leverage the context store for the
  BulkEmailTool
- Tests around said store

What this PR will not include:
- Changes to the UI or form functionality
2022-05-16 11:43:04 -04:00
Thomas Tracy
200f19dd9a feat: [MICROBA-1528] add schedule email UI (#36)
This handles a few things around the scheduled email UI. This includes:
1. Adding the schedule email UI date/time picker.
2. Adds states to the submit button for scheduling emails.
3. Drys out intl code and some submitting states.
4. Matches the email form UI to mocks.

This however does not include:
1. A table to show scheduled emails. Scheduled emails at the moment are
   displayed in the "pending tasks" section.
2. Matching the tasks section to the mocks.
2022-05-04 12:49:02 -04:00
Thomas Tracy
a37d63a4a3 chore: update edx frontend packages (#35) 2022-04-25 09:22:31 -04:00
Thomas Tracy
d67348929d fix: [MICROBA-1799] fix bulk email tool on safari (#34)
Course teams were having issues sending bulk emails to themselves and
students. This was caused by two problems.

1. The language selector tool was failing because of no default language
   settings in safari is possible
2. The translated string for the "continue" button on the submit modal
   was messing with the markup and causing the event to POST the email
to not properly fire.

To fix the language issue for now, we are disabling the language
selector plugin. To fix the markup issue, we are forcing the string to
render in a fragment to remove the additional span, allowing the event
to fire no matter where the user clicks the button.
2022-04-15 13:47:24 -04:00
Thomas Tracy
f2c66ebcf6 fix: disable emoticons to prevent messages from being cut off (#31) 2022-03-30 10:34:54 -04:00
Thomas Tracy
d0de55d11a fix: Support feedback of tool (#30)
- Missing left align tool (just a typo)
- Missing advanced image options (missing configuration)
- Page title was never set

Other issues such as email title, google+, and sender address are not
related to the MFE and are quirks to do with the staging environment.
2022-03-25 12:29:16 -04:00
Thomas Tracy
90a26d7897 fix: [MICROBA-1760] code block on toolbar (#29) 2022-03-15 12:00:52 -04:00
Justin Hynes
9bc69e39e2 fix: fix oversized logo in header
[MICROBA-1743]

* Add styling overrides for images and text in header to make logo sizes consistent in the PageContainer component.
2022-03-14 09:58:40 -04:00
Justin Hynes
1477460abc feat: suggested UI improvements from bugbash
[MICROBA-1743]

* Use `LearningHeader` component which can display the course information (title, org, number) in the header to the learner (matching existing design).
* Refactor components to introduce a `PageContainer` component in order to support displaying course information in header.
* Refactor the BulkEmailTool component to take advantage of the new course metadata context provider.
* Add tests for new `PageContainer` component.
* Fix existing tests due to refactor.
* Add "Email" label above recipient selection checkboxes to match existing design.
2022-03-11 11:35:00 -05:00
Justin Hynes
8987ccd01c fix: (MICROBA-1743) Minor UI updates after bug bash
[MICROBA-1743]

* Remove `instructor` from the path of the bulk course email tool in the Comms MFE.
* Remove `file` option from TinyMCE text editor.
2022-03-07 10:33:01 -05:00
Thomas Tracy
762cfe2a99 fix: [MICROBA-1709] Fix cohort display bug (#22)
There was a small issue with the cohorts looking a little weird in the
checkbox list. This even out the list and forces each item to be the
same size.
2022-02-28 16:16:19 -05:00
Thomas Tracy
ad87d08d04 feat: [MICROBA-1664] Add copy email button (#20)
The old tool had a button in the modal used to view past emails that
allowed you to copy the content into the editor. This replicates that
functionality, but without the ability to fill in the subject field of
the email. This was done to keep certain components more seperate.
2022-02-11 14:26:41 -05:00
Thomas Tracy
1b1e304cfc fix: [MICROBA-1703] Add missing form instructions (#18)
Add/move instructions for submitting the email form.
Also fixes a sneaky bug when selecting cohorts.
2022-02-08 15:05:53 -05:00
Thomas Tracy
031d73d78b feat: add features to text editor (#17) 2022-02-08 13:52:48 -05:00
Thomas Tracy
a168c90ca2 feat: [MICROBA-1688] Add cohorts to recipients (#16) 2022-02-03 13:48:52 -05:00
Thomas Tracy
7d2fa72768 chore: add edx-next theme to repo (#15) 2022-02-02 11:14:41 -05:00
Justin Hynes
9498dbc691 feat: add tests for bulk course email task manager components
[MICROBA-1621]

* Fix display bug for the error Alert component found during test writing
* Add tests for BulkEmailTaskHistory component
* Fix bug with a column name in the bulk course email content history table
* Add tests for the BulkEmailContentHistory component
* Add tests for the BulkEmailPendingTasks component
2022-01-31 14:18:19 -05:00
Thomas Tracy
ce9cdf642b feat: [MICROBA-1620] Wire BulkEmailForm to API (#11)
- Wires up the BulkEmailForm to be able to actually send email tasks to
  the instructor api
- Adds testing for the BulkEmailForm, as well as BulkEmailTool itself
- Does some cleanup, and adds some additional testing tools as needed
2022-01-27 14:51:17 -05:00
Justin Hynes
796b8010b1 feat: Implement task history and pending task tables
[MICROBA-1621]
* Add a table to the BulkEmailTaskHistory component of the task manager.
* Add a table to the BulkEmailPendingTasks component of the task manager.
* Extract messages to messages.js.
* Add custom hook used to make REST API calls to edx-platform on a regular cadence (every 30 seconds).
* Use the new hook in BulkEmailPendingTasks to retrieve pending instructor tasks for display in a table.
* Create a new BulkEmailHistoryTable component to cutdown on code duplication between task manager componenets that display tables.
* Refactor existing components to use the new BulkEmailHistoryTable component (and reduce amount of duplicate code in the task manager)
* Use a StatefulButton (over a regular button) to show a spinner/loading icon when fetching data for our tables.
2022-01-25 08:29:08 -05:00
Thomas Tracy
2eac5bc12d chore: update setupTest to mock out edX libraries (#13) 2022-01-20 14:25:59 -05:00
Justin Hynes
50747195bf feat: Add historical email content data to bulk course email task manager
[MICROBA-1621]

* Add table that displays info about previously sent bulk course email messages through our tool.
* Add modal to view the contents of previously sent messages.
* Extract strings to a dedicated `messages.js` file to help make the `BulkEmailContentHistory.jsx` file more readable.
2022-01-12 15:44:16 -05:00
Thomas Tracy
ab274d1ea9 feat: [Microba-1620] Add email form to BulkEmailTool (#8)
* feat: [MB-1620] Add email body editor

Add email body and subject line to bulk email tool.
2022-01-12 15:26:43 -05:00
Justin Hynes
2a927017ca feat: add API calls to get data needed by the bulk email task manager section
[MICROBA-1621]

* Add support to the Instructor Dashboard `list_instructor_tasks`, `list_email_content`, and `list_background_email_tasks`  REST API endpoints of edx-platform.
2022-01-07 08:29:12 -05:00
Thomas Tracy
fa46bd5fc5 feat: protect bulk email from non staff (#6)
This will protect the bulk email tool and ONLY the bulk email tool from non-staff users if they know the direct URL. this will not protect the entire app from non-staff entirely.
2022-01-06 11:15:26 -05:00
Justin Hynes
432b6f89be feat: Add some basic scaffolding for the bulk email tool task manager section of the comms MFE
[MICROBA-1621]
* Adds a section for the pending tasks section of the task manager
* Adds a section for the bulk course email task history data
* Adds a section for the bulk course email content history data
2022-01-06 08:18:16 -05:00
Thomas Tracy
008165073a feat: Add top navigation menu (#4)
Adds course navigation menu to the top of the app
2022-01-04 14:10:16 -05:00
Thomas Tracy
3f4b1a1ca5 feat:[MICROBA-1618] Add proper routing and some data (#3)
* feat: add proper routing and some data management
2021-12-13 09:58:34 -05:00
Thomas Tracy
8d1cc534b7 chore: [MICROBA-1498] Add bulk email component structure (#2)
* chore: Add bulk email component structure
2021-12-09 09:38:09 -05:00
Thomas Tracy
434ba53702 chore: find replace template string 2021-12-03 12:41:03 -05:00
Matt Tuchfarber
62bcd459cb Initial commit 2021-12-03 11:33:31 -05:00