@clickview/ship-it 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/A3/Analytics Web.md +0 -0
  2. package/dist/A3/ClickView Online.md +28 -0
  3. package/dist/A3/ClickView.Curator.md +19 -0
  4. package/dist/A3/Clients.md +21 -0
  5. package/dist/A3/Domain.Api.md +15 -0
  6. package/dist/A3/Krakend.md +33 -0
  7. package/dist/A3/Library Editor.md +0 -0
  8. package/dist/A3/Lite.md +35 -0
  9. package/dist/A3/Master.Api.md +10 -0
  10. package/dist/A3/Master.Auth.md +51 -0
  11. package/dist/A3/Release Notes.md +683 -0
  12. package/dist/A3/Subjects.API.md +18 -0
  13. package/dist/A3/Users.Api.md +89 -0
  14. package/dist/A3/clickview.md +325 -0
  15. package/dist/X3/X3 Testing Notes.csv +1222 -0
  16. package/dist/X3/X3 Testing Notes.xlsx +0 -0
  17. package/dist/Z1/Analytics Web.md +0 -0
  18. package/dist/Z1/ClickView Online.md +24 -0
  19. package/dist/Z1/ClickView.Cron.md +8 -0
  20. package/dist/Z1/ClickView.Curator.md +28 -0
  21. package/dist/Z1/ClickView.EmailService.md +17 -0
  22. package/dist/Z1/Clients.md +29 -0
  23. package/dist/Z1/Discover.Api.md +20 -0
  24. package/dist/Z1/Domain.Api.md +34 -0
  25. package/dist/Z1/FileGenerator.md +13 -0
  26. package/dist/Z1/Image.Api.md +14 -0
  27. package/dist/Z1/Krakend.md +8 -0
  28. package/dist/Z1/Library Editor.md +0 -0
  29. package/dist/Z1/Lite.md +47 -0
  30. package/dist/Z1/Master.Auth.md +43 -0
  31. package/dist/Z1/Objects.Api.md +30 -0
  32. package/dist/Z1/Permissions.Api.md +10 -0
  33. package/dist/Z1/Prospect.Api.md +16 -0
  34. package/dist/Z1/RealtimeSalesforceSync.md +16 -0
  35. package/dist/Z1/Release Notes.md +855 -0
  36. package/dist/Z1/Search.Api.md +19 -0
  37. package/dist/Z1/Share.Api.md +12 -0
  38. package/dist/Z1/Ship It.md +23 -0
  39. package/dist/Z1/Subjects.API.md +16 -0
  40. package/dist/Z1/Users.Api.md +26 -0
  41. package/dist/Z1/VideoProcessorService.md +11 -0
  42. package/dist/Z1/Z1 Testing Notes.csv +1079 -0
  43. package/dist/Z1/Z1 Testing Notes.xlsx +0 -0
  44. package/dist/Z1/clickview.md +316 -0
  45. package/lib/src/constants/MonorepoPackageJsonFiles.js +1 -0
  46. package/lib/src/constants/TeamCityBuildIDs.js +2 -1
  47. package/lib/src/tasks/InstallPackagesTask.js +3 -1
  48. package/lib/src/utils/Commits.js +4 -0
  49. package/package.json +1 -1
@@ -0,0 +1,855 @@
1
+
2
+ # clickview
3
+
4
+ ## Before release
5
+
6
+ ### other
7
+ - [ ] Curriculums used in the public product need to be added to `public_presentations` table in Subject API
8
+ - [ ] After releasing, we need to update the `curriculums.view` permission in production (this is technically an `After release` action. It **must** happen **after** pushing, otherwise we will break public play pages and send unauthenticated users to the sign in page)
9
+ - `PUT v1/permissions/35` the following payload (please sanity check the id before updating - the permission already existing in both staging and production):
10
+ - The change below is to add `public` to the `permissionSet` property. This will allow public users to be able to view curriculum links.
11
+ ```
12
+ {
13
+ "id": 35,
14
+ "name": "curriculums.view",
15
+ "description": "Can view curriculum links",
16
+ "visibility": "Internal",
17
+ "type": "Static",
18
+ "dateCreated": "2023-02-14T03:26:39Z",
19
+ "permissionSets": [
20
+ "public"
21
+ ],
22
+ "roles": [
23
+ "Admin",
24
+ "SuperAdmin"
25
+ ],
26
+ "userTypes": [
27
+ "Staff"
28
+ ]
29
+ }
30
+ ```
31
+ - Create a `feedback.submit` permission in permission API for staff and admins only. Not students.
32
+
33
+ ## Dependencies
34
+ https://gitlab.cvinternal.net/clickview/back-end/discover.api/-/merge_requests/103
35
+ - https://gitlab.cvinternal.net/clickview/front-end/lite/-/merge_requests/348
36
+ - https://gitlab.cvinternal.net/clickview/back-end/clickview.subjects.api/-/merge_requests/189
37
+ - https://gitlab.cvinternal.net/clickview/back-end/discover.api/-/merge_requests/102
38
+ - https://gitlab.cvinternal.net/clickview/front-end/lite/-/merge_requests/346
39
+ - https://gitlab.cvinternal.net/clickview/front-end/lite/-/merge_requests/345
40
+ - https://gitlab.cvinternal.net/clickview/front-end/lite/-/merge_requests/343
41
+ - https://gitlab.cvinternal.net/clickview/front-end/ClickView.Curator/-/merge_requests/1056
42
+ - https://gitlab.cvinternal.net/clickview/front-end/ClickView.Online/-/merge_requests/3194
43
+
44
+ ## Analytics
45
+
46
+ ### Code changes
47
+ - Fix the missing scroll button in the results table. Fix INBOX-4407.
48
+
49
+ ## Common
50
+
51
+ ### Code changes
52
+ - Importing cloneDeep using `lodash.clonedeep` to ensure the rest of lodash isn't coming with it.
53
+ - Updated the recursive denormalizer test to cater for a use case that wasn't covered.
54
+ - Updated `ObjectHelper.deepClone()` to use `cloneDeep` from lodash. Addresses INBOX-4054.
55
+
56
+ ## Curator
57
+
58
+ ### Code changes
59
+ - Update playlist request key to correctly fetch playlist with `subjectPresentationAudience`. Fix INBOX-4414
60
+ - Update playlist request key to correctly fetch playlist with `subjectPresentationAudience`. Fix INBOX-4426
61
+
62
+ ### Customer changes
63
+ - Fixed an issue in curation studio where if you were managing a dashboard or topic in a presentation that isn't associated with your account, the audiences would always display as "Missing Audience" even if it had one. Fixes CC-471
64
+ - In curation studio, published dashboards can no longer be edited. Curators now have to create a copy of the published dashboard, then make changes to the copy, then publish that. Implements CC-464
65
+ - Curators can now create a copy of discover and topic dashboards. Implements CC-465
66
+ - Fixed an issue in user manager where the bulk upload template file couldn't be downloaded in Safari. Fixes INBOX-4434
67
+ - In the user manager page, users can now bulk-select by uploading a spreadsheet containing the student/staff they want to select. Implements LTE-1726
68
+ - When curating a topic page, curators can now search within the entire presentation rather than just within the topic. Implements CC-466
69
+
70
+ ## Library Editor
71
+
72
+ ### Customer changes
73
+ - Fixed an issue where video results in the search dropdown displayed very small thumbnails. Fixes INBOX-4457
74
+
75
+ ## Lite
76
+
77
+ ### Customer changes
78
+ - On mobile, the search bar will now automatically focus when opened up.
79
+ - Curriculum links are now accessible in the public version of NP
80
+ - Implements LTE-1759
81
+ - Fixed an error where changing presentations as a public user could send them to the login page
82
+ - Fixes INBOX-4490
83
+ - Switching presentation will now be a little faster than usual
84
+ - During the sign up workflow, students are now prompted to enter their date of birth before we collect their email address. We do not collect and PII from students who are under the age of 13, instead they are sent to our free videos on the marketing website. Once a student has filled out our date of birth form, they cannot get back to the sign up form, it will always show them the link to the free videos page. This is done in order to protect young students who cannot consent to their data being collection, in compliance with COPPA in the United States of America.
85
+ - Fixed an issue in user manager where the bulk upload template file couldn't be downloaded in Safari. Fixes INBOX-4434
86
+ - The "explore all subjects" page should now always display the subjects in alphabetical order. Fixes INBOX-4048
87
+ - In Lite user manager page, users can now bulk-select by uploading a spreadsheet containing the student/staff they want to select. Implements LTE-1726
88
+ - When loading into a specific table of contents section on a topic page, you should land a bit closer than before. Implements LTE-1775 and fixes INBOX-4453
89
+ - Fixed an issue on mobile where the left nav would initially be expanded then immediately collapsed, resulting in a harsh first landing experience. Implements LTE-1775
90
+ - Fixed the partial loading for the breadcrumbs, audience filter, and banner on the topic page not matching up with the actual UI accurately Implements LTE-1775
91
+ - Adjusted the partial loading for 4 video widgets (Implements LTE-1775):
92
+ - "Enhanced large slider"
93
+ - "Featured video"
94
+ - "Hero video"
95
+ - "2 side by side thumbnails"
96
+ - Fixed the alignment of the thumbnail and video title text on the featured media widget on smaller screens Implements LTE-1775
97
+ - Fixed an issue where students could provide feedback via the footer on the discover page.
98
+ - Fixed an issue where all pages had smooth scrolling. Fixes LTE-1762
99
+ - In the lite discover dashboard, for three types of widget templates (1. Enhanced large slider 2. Large slider 3. Small slider), their title can be clicked and navigate to a video list view of that widget. Implements LTE-1727.
100
+ - If a prospects school is not supported they now can request a trial like in marketing. Implements LTE-1733.
101
+ - Fixed an issue on topics where if you apply a filter that reveals an empty state, then you click "Clear", the page doesn't revert back to the filterless view and the audience filters disappear. Fixes INBOX-4412
102
+ - Fixed a bug where if a teacher is direct sharing to another teacher, the search dropdown would display the teacher's display name. Fixes INBOX-4362
103
+ - Fixed a but where if a teacher is adding another teacher to a classroom, the search dropdown would display the teacher's display name. Fixes INBOX-4362
104
+ - Styling of the sign up form has been slightly updated to be more in line with our Auth forms.
105
+ - The email, location and school inputs in the sign up for now have clear buttons to clear their content.
106
+ - The location and school input typeaheads now have keyboard support: Down, up arrows as well as enter will now work as expected.
107
+ - As a user in a multi-presentation school, if you search for a topic and get a result with the same name from >1 presentation, they will be ordered by the learning level of the presentation.
108
+ - In search results of small screen, the interactive will show 3 question. Implements INBOX-4344.
109
+ - Customer will get an alert message after update video details. Implements INBOX-4116.
110
+ - When student has no contents, the empty state copy has been updated. Implements INBOX-4291.
111
+
112
+ ### Code changes
113
+ - Refactored `useTopicPresentation` to become `usePresentation` that now supports use of both topic and curriculum presentations
114
+ - Cleaned up `useCurriculums` to utilize `usePresentation`
115
+ - Updated play page components to consistently use curriculums
116
+ - Update curriculum handling in search results
117
+ - Re-worked our completion step to take a `CompletionStepId`. We now have 3 completion step types, trial status, added to braze, and young student.
118
+ - Add bootstrap keys for `permissions` and `products`
119
+ - Add a new CuratedDashbaordWidgetView based on the domain option.
120
+ - Add new appLinks type to the dashboard.
121
+ - Add event listener to video guidance tag to set the active status of popout. Fix LTE-1728.
122
+ - Shrink the activity status badge size. Fix LTE-1744
123
+ - Added a new sign up step named `add-to-braze`. Implements LTE-1752.
124
+ - Added a form that add a prospect with all their details to braze. Implements LTE-1763.
125
+ - Updated terms and condition link to point to global marketing website. Fixes LTE-1735.
126
+ - Fixed a bug that was causing us to drop events when logging our playlists.
127
+ - Fixed a but that was causing the edit video details to break after favouriting the video. Fixes INBOX-4292.
128
+ - Fixed the sign in button on the public play pages not being an anchor. Fixes INBOX-4372
129
+ - Updated usage of hardcoded country codes to use `LocalityHelper`.
130
+ - 'Use my current location' is selectable when navigating by keyboard.
131
+ - 'Can't find your school?' is selectable when navigating by keyboard.
132
+ - Fixed a bug where clearing SearchLocalityInput in Cant find school step clearing the school name.
133
+ - Fixed style imports to be relative.
134
+ - Fixed banner height in topic classification board at web-mobile screen size. Fix INBOX-4410
135
+ - Hide the text of follow/unfollow button at the web-mobile screen size. Fix INBOX-4410
136
+ - Cleaning up markup and utility classes across all steps of the sign up app.
137
+ - Only show the level above for breadcrumb in web-mobile. Fix INBOX-4382;
138
+ - Increase the padding of the audience filter when wrapped in web-mobile. Fix INBOX-4398
139
+ - Fix content updates banner bg image position Fix INBOX-4381
140
+ - For the `hasCurriculumLinks` request, make the array of objectId unique and sort them in key so it can be cached more accurately. Fixes INBOX-4316.
141
+ - Show 3 question of interactives in search result in mobile.
142
+ - Add alerts on callbacks after saving video details.
143
+ - Update copy of empty state in student feed.
144
+ - Reorder the `Share` button after the `Add to playlist` button in the lite interactive page. Fix INBOX-4334
145
+
146
+ ## Monorepo
147
+
148
+ ### Code changes
149
+ - Add `ship-it.config` file for latest changes in ship it https://gitlab.cvinternal.net/clickview/front-end/ship-it/-/merge_requests/42
150
+ - Adding a type for cloneDeep to all projects.
151
+ - Cleanup commands for cross platform builds. Closes INBOX-4286
152
+ - Remove all docker build scripts
153
+ - Replace `export` and `set` environment variable calls with `cross-env` package to enable cross platform building without needing separate linux only commands
154
+
155
+ ## Online
156
+
157
+ ### Customer changes
158
+ - Fixed an issue in user manager where the bulk upload template file couldn't be downloaded in Safari. Fixes INBOX-4434
159
+ - In the user manager page, users can now bulk-select by uploading a spreadsheet containing the student/staff they want to select. Implements LTE-1726
160
+
161
+ ## Player
162
+
163
+ ### Customer changes
164
+ - Enable spellcheck for annotation editor when editing interactives. Fixes INBOX-4357.
165
+
166
+ ### Code changes
167
+ - Added `spellCheck` for DraftJs editor since it render a `div` with `contentEditable=true`
168
+
169
+ ## Shared
170
+
171
+ ### Code changes
172
+ - Now fetching the parent video for clips and interactives using the `_parentVideo` virtual assoc.
173
+ - Now fetching the parent clip for interactives using `_parentClip`.
174
+ - Updated our types for clips and interactives to no longer have `video` or `clip` properties, instead they have `_parentVideo` or `_parentClip` properties, whose type is a subset of the video and clip types.
175
+ - Update public support for curriculum requests
176
+ - Clean up `publicUrl` for presentation requests
177
+ - Gracefully handle missing curriculum in `CurriculumDropdown`
178
+ - Update invalidation keys when updating presentation
179
+ - Fix "What's included" doesn't include link resources. Fix LTE-1754
180
+ - Removed the `forcedMediaQuery` prop that's unused and littered throughout the codebase.
181
+ - Shrink the width of alert in mobile. Fixes INBOX-3963.
182
+ - Add SelectWithSpreadSheet component
183
+ - Add a helper function to build & split query params to fetch user
184
+ - Fixed an error during parsing an empty CSV file
185
+ - Cleaned up code in `EditVideoDetails` to only pass the relevant form data as initial values.
186
+ - Cleaned up the `<FormWrapper />`, it will no longer recursively use `ObjectHelper.deepClone()`
187
+ - Updated the `ReorderHelper` to pass only the object ids back into flight. Fixes STG-271
188
+ - Shrink the padding of the overlay title of the video thumbnail on the web-mobile screen. Fix INBOX-4385
189
+ - Update the layout of the editing status for `EditableCoverFixedPillListSmallWidgetTemplate`. Implements INBOX-4384
190
+ - `updateVideo` request accepts `always` callback.
191
+
192
+ ### Customer changes
193
+ - Alert in mobile will display 'x' icon at the first line.
194
+
195
+ ## Styles
196
+
197
+ ### Customer changes
198
+ - Fix the styling of our tooltip, it no longer will show the border bottom across the arrow.
199
+
200
+ ## Tooling
201
+
202
+ ### Code changes
203
+ - The `I18nPlugin` will now watch all the `*.lang.json` files for file changes, and output the updated language file.
204
+
205
+ ## Testing
206
+ - In the curation studio, adding a playlist widget, when adding playlists, the audience information should be displayed correctly.
207
+ - Ship it runs
208
+ - In NP on mobile, the search bar should now automatically focus when opened up. On desktop, it should not automatically focus ever.
209
+ - The way clips and interactives fetch their parent video has been reworked in order to accommodate a share change, which means clips and interactives will need a regression test. Testing that the video item in lists or widgets, as well as their pages behave properly.
210
+ - Playlists
211
+ - Watch History
212
+ - My Videos
213
+ - Favourite videos
214
+ - Student feed
215
+ - Student feed in a playlist
216
+ - Beneath the video on the page page
217
+ - Search results
218
+ - Share links, both full page and embed
219
+ - Creating clips
220
+ - Creating interactives on clips
221
+ - In analytics, test that viewing interactive results, and the top videos feature work.
222
+ - In NP:
223
+ - As an authenticated user:
224
+ - Accessing curriculum links on the play page as a staff/admin should continue to load as expected (regression)
225
+ - Curriculum links should load (for accounts with one or many available curriculums)
226
+ - Switching curriculums should work as expected and correctly load the links for the nominated curriculum
227
+ - It should be possible to access the curriculum link applink from both V@G and video details page
228
+ - Accessing curriculum links on a video list view as a staff/admin should continue to load as expected (regression)
229
+ - Curriculum links should load (for accounts with one or many available curriculums)
230
+ - Switching curriculums should work as expected and correctly load the links for the nominated curriculum
231
+ - Accessing curriculum links in search results as a staff/admin should continue to load as expected (regression)
232
+ - Curriculum links shouldn't be accessible to students
233
+ - Page loading should loading the user's last nominated presentation (when switching between many)
234
+ - Videos access via share link should load as expected and the curriculums should be viewable
235
+ - As a public/unauthenticated user:
236
+ - It should be possible to view curriculum links on the play page
237
+ - Curriculum links should load (AU and US will have many curriculums available. GB and GB-SCT will only have access to one curriculum each).
238
+ - Switching curriculums should work as expected and correctly load the links for the nominated curriculum
239
+ - It should be possible to access the curriculum link applink from both V@G and video details page
240
+ - We currently don't show any actions on public video list views. For the time being this will remain.
241
+ - Search results, video lists in both series and playlists should continue to load as expected (regression)
242
+ - Nominated curriculums should be persisted in local storage in the same way that we do for topic presentations
243
+ - Switching presentations should no longer show an error in the console
244
+ - Switching presentations should no longer send the user to the login page if they reload after switching
245
+ - Hover over a video you do not have access to, take a deep breath of relaxation because that god forsaken border styling issue is gone.
246
+ - In the classifìcation dashboard (Lite and Curator), the 'what's included' tag of a video, the resources section should also contain the link resources of the current video.
247
+ - In curation studio, you should no longer be allowed to edit a published dashboard.
248
+ - In curation studio, you should still be able to edit draft dashboards.
249
+ - Every frontend project needs a regression test, clicking around to a few pages (Online, Curator, Lite, Reports)
250
+ - In Curator, you should now be able to copy discover and topic dashboards using the "Copy dashboard" action on the dashboards list page. Editing a copy should not affect the original dashboard.
251
+ - Sign up for a trial as a student, enter date of birth that is younger than 13 years of age. Ensure you are linked to the marketing free videos page. Ensure that if you go back to the sign up form you are always sent to the free videos page.
252
+ - On the initial page load, permissions and products should not be fetched
253
+ - After the flight cache expires, permissions and products should be fetched correctly
254
+ - In NP, in small size(320px - 575px), the close icon in alert will be at the first line. Can test with 'favourited' any video.
255
+ - Open user manager in safari in either NP, Curator, or Online. Go to bulk upload, and click to download the template. The file should download.
256
+ - When uploading a video in NP, the "Upload video" text in the button shouldn't wrap at any screen size. Fixes INBOX-4436
257
+ - In library editor's search bar dropdown, video result thumbnails should look normal. They shouldn't look like how they do in the screenshot on this ticket: https://clickview.atlassian.net/browse/INBOX-4457
258
+ - Subjects on the "Explore all subjects" page should be in alphabetical order
259
+ - In Lite/Curator/Online, the user manager page for students and staff, the 'Select with spreadsheet' action was added to the actions dropdown. It should find and select all the valid users from the spreadsheet in the current schools.
260
+ - It should find both verified and unverified users.
261
+ - It should not find users from other schools.
262
+ - Uploading an empty CSV file should trigger the error popup.
263
+ - CSV doesn't contain any of the Email and Username columns will trigger the error popup.
264
+ - It should find users with the correct user type, e.g., in the student manager page, it will only find all the students in the spreadsheet.
265
+ - Notes to Jav: Online requires more attention if you are able to do a deep test.
266
+ - Regression test: in Lite/Curator/Online, the user manager page for students and staff, click on the 'Add new student/staff', and choose to upload a CSV that only contains headings but no content should trigger the correct warning popup.
267
+ - The partial loading on the topics page should look really really accurate on:
268
+ - Mobile
269
+ - IPad
270
+ - Desktop
271
+ - Curated topics pages on mobile should not have any UI issues.
272
+ - As a student, you should no longer see an option to provide feedback via the form at the bottom of the discover page.
273
+ - When navigating between 2 pages, it should not "smooth scroll" between them.
274
+ - On a curated topics page with a able of contents, the TOC should still have smooth scrolling behavior.
275
+ - In Curation Studio when editing a topic page, you should now see an option to search within the whole presentation when creating a widget.
276
+ - In the lite discover dashboard, for three types of widget templates (1. Enhanced large slider 2. Large slider 3. Small slider), their title can be clicked and navigate to a video list view of that widget containing all the videos within that widget.
277
+ - In lite, view the classification dashboard on a mobile web screen. The video guidance of the `Hero video` widget and `2 side by side` widget can be opened and closed by tapping the badge.
278
+ - In Lite, start the sign up process and select a school which has a trial status of 'unavailable'
279
+ - Click get started and we should be taken to 'add-to-braze' step which asks more information about the user
280
+ - The form is validated client side and should not allow for
281
+ - strings larger than 255 characters
282
+ - strings starting with `$` (braze thing)
283
+ - phone number can only be digits between 4 and 255 characters long
284
+ - Clicking submit button should send the user data to braze and we should be able to look up the user with that email in it.
285
+ - The user should also have a custom event named `marketing_free_trial_signup`
286
+ - Playlist re-ordering needs to be tested in Lite and NP. In Lite, it needs to be tested on a video that has clips and interactives, after loading to the play page and then going back to the playlist to re-order. Previously this threw an error https://clickview.atlassian.net/browse/STG-271
287
+ - Favourite a video in my videos and then make sure the edit details page loads.
288
+ - Because one of our core utilities were replaced, there are quite a few places that need a very brief regression test. We're just looking for the UI behaving normally
289
+ - Direct sharing to classrooms in the NP share popup
290
+ - The playlist play page in online
291
+ - The audience filter in reports
292
+ - Editing a workspace video in Online and NP
293
+ - Bulk uploading users to user manager (Just NP is enough)
294
+ - Approving and rejecting library requests in library editor
295
+ - Editing a clip's details in NP, make sure changing the name of the clip doesn't modify the start and end time
296
+ - In analytics, checking the results of an interactive, when there are more than 13 questions, the scroll to right button should be displayed.
297
+ - In chrome settings, make sure to enable spellcheck. visit `chrome://settings/?search=spell+check`
298
+ - In Lite, create a new interactive and add an annotation.
299
+ - If we start typing in the editor and misspell any words we should trigger the spellcheck.
300
+ - On a topics page, apply a filter so that all content disappears. This should reveal an empty state. Then, click "Clear" to clear the filters. The page should revert back to the original filterless view.
301
+ - In NP, when sharing to another teacher, they should not appear with their `displayName` but rather their full name.
302
+ - In NP, when adding another teacher to a classroom, they should not appear in the search dropdown with their `displayName` but rather their full name.
303
+ - In Signup App, Go through the steps until you reach searching school step.
304
+ - Search for a locality and we should be able to navigate to 'Use my location' then press enter
305
+ - Seach for a school and we should be able to navigate to 'Cant find your school?' then press enter
306
+ - We should be able to submit the form as normal and get a free trial.
307
+ - Regression test signing up.
308
+ - View the classification dashboard in the small browser window (mobile) in Lite. There should be a gap between the wrapped audience filter.
309
+ Also, the breadcrumb should only show one item, the parent level of the current topic.
310
+
311
+ ![image__21_](/uploads/c91532841489df4bd6473bc3437a627f/image__21_.png)
312
+ - Login to an account with both "AU Primary" and "AU Secondary" presentations. Search for "English". In the results, the english topic from the primary presentation should be shown before the english topic from the secondary presentation.
313
+ - In NP, the curriculum links should show when a video have it and work as usual.
314
+ - In NP, find an interactive by using search, in mobile, there should have 3 question showing.
315
+ - In NP, edit a video in 'My Videos', after save the changes, an alert should show and say whether it is successfully of failed to update video details.
316
+ - In NP, login as a student without content and go to student feed, the copy should be updated.
317
+ - In lite, preview an interactive, the button `Share` should be after `Add to playlist` button.
318
+ - All projects build on windows and linux
319
+
320
+
321
+ # Share.Api
322
+
323
+ ## Dependencies
324
+ * [ ] Needs to be pushed after Objects API Z1 release
325
+
326
+
327
+ ## Code changes
328
+ * Added parent video virtual assoc to the interactive and clip
329
+
330
+
331
+ ## Testing
332
+ `_parentVideo` and `_parentClip` properties must exist for shared by me and feed responses
333
+
334
+
335
+
336
+ # Search.Api
337
+
338
+ ## Dependencies
339
+ * [ ] Needs to be pushed after Objects API Z1 release has been pushed
340
+
341
+
342
+ ## Code changes
343
+ * Added parent video virtual assoc to the interactive and clip
344
+
345
+ * Added playlist filter. Fixes INBOX-4085
346
+
347
+ - Add audience to video in clip and interactive
348
+
349
+
350
+ ## Testing
351
+ * `_parentVideo` and `_parentClip` properties must exist in the search result for interactive and clip
352
+
353
+ * Should be able to filter videos by playlist ids by passing `playlist` filter in the query parameter
354
+
355
+
356
+
357
+
358
+ # Ship It
359
+
360
+ ## Code changes
361
+ - Fixed ship-it default project config being modified by `_.merge()`
362
+
363
+ - Added support for `.ship-it.config` project config files in project directory. Fixes INBOX-4378
364
+ - Add a `.ship-it.config` file to the root of a project to configure ship it for that project. Current settings include:
365
+ - `monorepo.enabled` = Enables monorepo support
366
+ - `monorepo.validSubProjects` = An array of valid sub projects which is used for section validation in MR descriptions
367
+ - Changed description validation logic
368
+ - Description sections are now case sensitive
369
+ - The valid sub project sections are controlled by the project config
370
+ - Removed support for adding unknown sections in the MR description
371
+ - Added a heading transformer to fix casing issues of known headings
372
+ - Added error output to description validation
373
+ - Updated release note heading ordering logic
374
+ - monorepo projects are now ordered alphabetically
375
+ - Notes are now at the bottom
376
+
377
+
378
+ ## Testing
379
+
380
+ - Run for Y2 release and compare the results with and without these changes. They should be mostly the same (except some MR validation errors because of heading case changes)
381
+
382
+
383
+
384
+ # Discover.Api
385
+
386
+ ## Dependencies
387
+ * [ ] Should be pushed after Objects API Z1 release has been pushed
388
+
389
+
390
+ ## Code changes
391
+ * Added `_parentVideo` and `_parentClip` virtual assoc for both clip and interactive
392
+
393
+ - Dashboard added new action method to copy dashboard and widgets
394
+
395
+ * Added `links` to video's ogql. Implements LTE-1754
396
+
397
+
398
+ ## Testing
399
+ * All clip and interactive should have `_parentVideo` and `_parentClip` virtual assocs
400
+
401
+ - Find a dashboard id from `dashboards` tbl, POST to `v1/dashboards/{id}` endpoint, it should crate a new record in the `dashboards` tbl and a few records in the `dashboard_widgets`. Verify the new and old dashboards have the same dashboard widgets.
402
+
403
+ * In Discover Api, when fetching video content from widgets, property `links` should be available
404
+
405
+
406
+
407
+ # FileGenerator
408
+
409
+ ## Code changes
410
+ - Added `TaskLogScope` to be used to create a log scope for each process task
411
+ - Add a `TaskId` for each task so we can group logs together to help diagnose issues like INBOX-4386
412
+
413
+ - Remove extra `ToList()` from all `ToArray()` calls when adding email attachments to reduce memory usage
414
+
415
+
416
+ ## Testing
417
+ - `TaskKey` and `TaskId` are populated for logs in Seq
418
+
419
+ - Emails generated from FileGenerator (ie Content Reports) should have attachments that work
420
+
421
+
422
+
423
+ # Clients
424
+
425
+ ## ClickView.Clients.Master
426
+
427
+ ### Code changes
428
+ - Remove `morelinq` and use .NET `Chunk()` extension method
429
+ - Cleanup tests and re-order them based on the order they exist in the interface
430
+ - Added tests around checking methods return null/empty when objects cannot be found
431
+ - Move client creation to a `CreateClient()` method
432
+ - Added `UpdateObjectAsync` without a type parameter that returns nothing
433
+ * Added new methods to Clients.Master
434
+ * GetUsersByUsernameAsync
435
+ * GetUsersByEmailAsync
436
+ * GetRootMemberObjectsAsync
437
+ Implements INBOX-4368
438
+
439
+ ## ClickView.Clients.Permission
440
+
441
+ ### Code changes
442
+ - Added `GetPublicPermissionsAsync()`
443
+ - Added missing `[Obsolete]` attribute for `GetUserPermissionsAsync(ulong userId)` on `IPermissionApiClient` (was on the base class but not the interface)
444
+
445
+ ## monorepo
446
+
447
+ ### Code changes
448
+ - Add `ship-it.config` file for latest changes in ship it https://gitlab.cvinternal.net/clickview/front-end/ship-it/-/merge_requests/42
449
+
450
+ ## Testing
451
+ - Ship it runs
452
+ * N/A
453
+
454
+
455
+ # Lite
456
+
457
+ ## Before release
458
+ - [ ] Update `ClickView.Clients.Permission` to 2.10.0
459
+
460
+ - Update Braze sdk urls in octo to the proxied prod urls
461
+
462
+
463
+ ## Dependencies
464
+ https://gitlab.cvinternal.net/clickview/front-end/clickview/-/merge_requests/2968
465
+
466
+ - https://gitlab.cvinternal.net/clickview/back-end/clients/-/merge_requests/64
467
+
468
+
469
+ ## Customer changes
470
+ - Improved performance of the initial page load for all regions
471
+
472
+
473
+ ## Code changes
474
+ - Add `GetObjectClassificationPaths` endpoint to get an object's curriculum links
475
+ - Add `CheckObjectExistsInPresentations` endpoint to check if an object has curriculum links
476
+
477
+ - Run all `IBootstrapHandler` in parallel to improve the initial page load times
478
+
479
+ - Added bootstrap handlers for products and permissions. Implements LTE-1783
480
+ - Replace existing permission api passthrough with the bootstrap permission handler
481
+ - Moved `GetRoutePrefix` to be an extension method for `HttpRequest`
482
+
483
+ - The `PhraseHandler` bootstrap handler will now always read from disk in development, allowing the team to make language changes without having to restart the dotnet project. Fixes INBOX-4460.
484
+
485
+ - Add a new template for "Select with spreadsheet" in the user manager.
486
+
487
+ - Update braze sdk urls in `appsettings.json`
488
+
489
+
490
+ ## Testing
491
+ - N/A
492
+
493
+ - Lite loads with bootstrap data in `window.bootstrapData`
494
+
495
+ - Permissions and products should exist in `window.bootstrapData` with the correct data types:
496
+ - Permissions should be an array of strings
497
+ - Products should be an array of product objects
498
+
499
+
500
+
501
+ - N/A
502
+
503
+
504
+
505
+ # Master.Auth
506
+
507
+ ## Before release
508
+ - Update `ClickView.Clients.Master` to `2.10.0`
509
+
510
+
511
+ ## Dependencies
512
+ - https://gitlab.cvinternal.net/clickview/back-end/clients/-/merge_requests/65
513
+
514
+
515
+ ## Code changes
516
+ - Nullable warning fixes
517
+ - Clever `DistrictAdmin.Title` is now nullable
518
+ - Added `IUrlHelper.RouteUri` extension method which returns a non nullable Uri
519
+ - Throw an exception in `CertificateLoader.ReadFromThumbprint` if the certification cannot be found (matches `LoadFromFile`)
520
+ - Fix string check in `LockoutRepository.GetLockoutEndAsync`
521
+ - Add `MaybeNullWhen` to `ActivateAjaxController.TryValidateRequest`
522
+ - Add `MemberNotNullWhen` to `LoggedOutViewModel.TriggerExternalSignOut`
523
+ - Use `CreatedAtRoute` instead of `Url.Link` in `POST /v1/clients`
524
+ - MasterApiClient returns nullable objects on 404
525
+ - Apparently `IMemoryCache.GetOrCreateAsync()` can return null even when not marked as null
526
+
527
+ - Replace local `MasterApiClient` with `ClickView.Clients.Master`
528
+
529
+ - Update MediatR to the latest version
530
+ - Remove DI package (no longer needed)
531
+ - Implement `INotificationPublisher` instead of a custom `MediatR` class
532
+
533
+ - Restructure the authenticator folders
534
+
535
+ * Populating year group and user group properties to user analytics object. Fixes INBOX-4342
536
+
537
+
538
+ ## Testing
539
+ - When creating a new auth client, the 201 contains the correct location in the header and the body is the client id
540
+ - The link in the activation email should be `https` and the correct URL
541
+
542
+ - Can login
543
+
544
+ - When logging in, the users last sign in time should be updated
545
+
546
+
547
+ * `cv_product_auth_login` events should have `userGroup` and `yearGroup` properties populated
548
+
549
+
550
+
551
+ # ClickView.EmailService
552
+
553
+ ## Code changes
554
+ - Fix dependencies having direct object references instead of the method creation func
555
+ - Dependencies should be disposed on shutdown now
556
+ - Small code cleanups
557
+ - Remove #region
558
+ - Move private methods under public methods
559
+ - Change `Attachment.Bytes` to be a byte array instead of a list of bytes
560
+ - Avoids the extra memory allocations converting Lists to Arrays etc
561
+ - Remove `ForEach(async)` in `MailerService` and replace with a normal `foreach`
562
+ - Update `MailerService.AddAttachment` to copy to a local memory stream so the HttpClient's response can be disposed correctly
563
+
564
+
565
+ ## Testing
566
+ - Sending emails with attachments should work (make sure they are attachments and not links to the files)
567
+ - Sending emails with the `UrlAttachments` property populated should have those files added to the email as attachments
568
+
569
+
570
+
571
+ # ClickView Online
572
+
573
+ ## Customer changes
574
+ * Students should be able to download the videos from their workspace
575
+
576
+ - The copy of confirm popup when creating interactive from a video from exchange is updated to say 'Would you like other teachers on the Exchange to be able to see your interactive for {videoName}? Fixes INBOX-4251.
577
+
578
+
579
+ ## Code changes
580
+ - Add QueryUsers endpoint
581
+
582
+ - Add new SelectWithSpreadsheet template
583
+
584
+ * Added `Student` to `OnlineConfig.config > Download > roles`. Fixes INBOX-4395
585
+
586
+ - Fix the logic to identify if a video is from exchange.
587
+
588
+
589
+ ## Testing
590
+
591
+
592
+ * In Online, students should be able to download videos from their own workspace
593
+
594
+ - Find a video in exchange and create an interactive from it, add any question(s) then keep clicking 'Save and continue' until `Publish your interactive` popup shows. The popup should say 'Would you like other teachers on the Exchange to be able to see your interactive for {videoName}?
595
+
596
+
597
+
598
+ # ClickView.Curator
599
+
600
+ ## Customer changes
601
+ - Improve curator performance by ~100% to ~300%
602
+
603
+
604
+ ## Code changes
605
+ - Add QueryUser to user api
606
+
607
+ - Add new SelectWithSpreadsheet template
608
+
609
+ - Split the `AjaxController` into individual controllers instead of one big partial controller. Closes INBOX-4471
610
+ - Reduces the number of services needed to be created in the DI for every ajax request
611
+
612
+ - Improve performance of mongodb connections
613
+ - Only use a single instance of the `MongoClient` instead of creating one for every request.
614
+ - Added `MongoConnectionFactory` to handle MongoDb connections
615
+ - Mark all mongodb repositories as singleton
616
+ - Mark MasterApi clients as Singleton
617
+ - Improve loading speed of `/ajax/playlists/{id}` by fetching the playlist and the mongodb data in parallel. Fixes INBOX-3708
618
+
619
+
620
+ ## Testing
621
+
622
+
623
+ - General smoke test of curator (every ajax endpoint was updated)
624
+
625
+ - Loading playlists on the `/dashboards/{id}` page should be a little faster than 13s
626
+
627
+
628
+
629
+ # Subjects.API
630
+
631
+ ## Customer changes
632
+ - Fixes an issue where fetching a classification by its id would sometimes throw a 500 if the id was unknown
633
+
634
+
635
+ ## Code changes
636
+ - Added `/v2/objects/exists` as a v2 alternative to `/v1/customers/{customerid}/users/{userid}/presentations/objects`
637
+ - Update `ExistsInPresentationsAsync` to check if the first object exists instead of using count to hopefully reduce load on master api
638
+
639
+ - Don't throw exceptions in `HashIdExtensions.TryDecodeUlong`
640
+
641
+
642
+ ## Testing
643
+
644
+ - `GET /v2/classifications/aaaa` should return 404 not 500
645
+
646
+
647
+
648
+ # ClickView.Cron
649
+
650
+ ## Code changes
651
+ * Was missing lite upgrade task registration. Fixes INBOX-4317
652
+
653
+
654
+ ## Testing
655
+ * Make sure `Lite upgrade task` runs on schedule
656
+
657
+
658
+
659
+ # Domain.Api
660
+
661
+ ## Dependencies
662
+ * Merge after https://gitlab.cvinternal.net/clickview/back-end/search.api/-/merge_requests/129
663
+
664
+
665
+ ## Customer changes
666
+ * Fixed an issue where playlist share links do not work after domain migration. Close INBOX-4320
667
+
668
+
669
+ ## Code changes
670
+ * Sending playlist ids as to search API as filter. Fixes INBOX-4085
671
+
672
+ * Get rid of `Log4Net` logging as it is no longer in use for production
673
+ * Update non-production configs to use staging seq for logging
674
+
675
+ * Upgrade the nuget packages to their latest if they can be upgraded
676
+ * Minor code clean up to fix up some warnings
677
+
678
+ * Replace `CustomerId` and `EmailAddress` with `MasterCustomerId` and `UserId` in `SharedResource`
679
+ * Look up sharer's user context by using `MasterCustomerId` and `UserId` instead of customer guid and username
680
+ * Clean up code
681
+
682
+
683
+ ## Testing
684
+ * `Search in this playlist` feature in online should work
685
+
686
+ * Everything should be still in one piece
687
+
688
+ * Regression test to ensure that everything should be still working
689
+
690
+ * In Online, create a school-only share link of a playlist or use the existing playlist share link
691
+ * Go to shortcode api db to change the `EmailAddress` to something else of that playlist sharecode to mimic the domain migration
692
+ * Use another account from the same customer to open the share link, the shared playlist should be loaded
693
+
694
+
695
+
696
+ # Objects.Api
697
+
698
+ ## Code changes
699
+ * Updated the code to allow users to access interactives in archived videos. Fixes INBOX-4425
700
+
701
+ * Currently users can see both archived and published videos in playlists but can't reorder archived videos. This change fixes it. Fixes INBOX-4404
702
+
703
+ * If the resources, links, etc was shared then use sharer's permision values to perform the read checks. Fixes INBOX-4356
704
+
705
+ * Added `BaseTimeLimitVirtualAssocHandler` which can be inherited by any virtual assoc that needs to timeout after a certain period. Implements INBOX-4187
706
+ * Default timeout is set to 1.5 seconds
707
+ * Any virtual assoc that takes more than the timeout period will log to seq and return null
708
+
709
+ * Added virtual assoc hander to get parent video and clip of an interactive
710
+ * Added virtual assoc handler to get parent video of a clip
711
+ * Added mapping for the new virtual assoc handlers
712
+ * Returning virtual assoc as null if the data is null
713
+ * Made result consistent between single and array of virtual assocs
714
+
715
+
716
+ ## Testing
717
+ * On online, create an interactive on an archived video and go to the video play page. In the interactive tab, the interactive should show up
718
+
719
+ * Add a video to a playlist and then archive it. You should still be able to see the video in the playlist and reorder the video.
720
+
721
+ * When content is shared, links and resources should be available to the shared user
722
+
723
+ * Virtual assoc that takes more than 1.5 seconds should timeout and return null
724
+
725
+ * Sending `_parentVideo` or `_parentClip` should return video and clip that the interactive or clip was created on
726
+
727
+
728
+
729
+ # Krakend
730
+
731
+ ## Code changes
732
+ - Added user api endpoint to retrieve user ids by list of username and emails
733
+
734
+
735
+ ## Testing
736
+ - Pass on list of emails and list of usernames to `GET v1/users/ids` endpoint, it should return list of unique user ids
737
+
738
+
739
+
740
+ # Users.Api
741
+
742
+ ## Before release
743
+ - Add new route mapping to the Krakend and release Kranend in the same time
744
+
745
+
746
+ ## Customer changes
747
+ * Address an issue where students are unable to sign in when they are created with provided email but not provided with credentials by the admin. Close CORE-1060
748
+
749
+
750
+ ## Code changes
751
+ - UserController adds `GET v1/users/ids` endpoint with optional `usertype` and `customerIdOverride` arguments, which reads list of emails and list of usernames and returns list of unique user ids belonging to the school
752
+
753
+ * Reset the password to `null` if an email is provided when creating a user regardless of the user type
754
+ * Do not need to auto generate password if email is provided even though `GeneratePassword` is set to `true` in the `CreateUserRequest`
755
+
756
+
757
+ ## Testing
758
+ - Log in using an account `with curator access`. Pass on list of emails and list of usernames to `GET v1/users/ids` endpoint, it should return list of unique user ids.
759
+ - Log in using an account `without curator access`.Pass on list of emails and list of usernames to `GET v1/users/ids` endpoint, it should return list of unique user ids.
760
+ - Try to get a big list of of email and username and ensure all the user ids are returned.
761
+
762
+ * In user manager, create a student account with an email, an activation email should be sent to the provided email
763
+ * In user manager, create a student account without an email, the credentials should appear on the UI for shareing with student
764
+ * In user manager, upload a spreadsheet to create students in bulk with emails set for each student, each student should receive an activation email to activate their account by themselves
765
+ * In user manager, upload a spreadsheet to create student in bulk with emails set for some of students and without setting password for any student, activation email should be sent to those students that have emails set. For those that have no email, the passwords are automatically created for them and the credentials are included in the `Create users bulk action report` csv file.
766
+
767
+
768
+
769
+ # Permissions.Api
770
+
771
+ ## Code changes
772
+ - Replace local master api client with `ClickView.Clients.Master`
773
+
774
+
775
+ ## Testing
776
+ - When a customer is moved to a different access policy that disables the customer, the customer is disabled in master api
777
+ - Api returns correct products for a customer (online shou;d have the correct url region for the instance region of the customer)
778
+ - Api returns correct permissions for a user
779
+
780
+
781
+
782
+ # VideoProcessorService
783
+
784
+ ## Code changes
785
+ - Update all packages
786
+
787
+
788
+ ## Testing
789
+ - General smoke test of processing videos
790
+ - Processes the video
791
+ - Uploads it to aws
792
+ - generates a thumbnail
793
+
794
+
795
+
796
+ # Image.Api
797
+
798
+ ## Before release
799
+ - Remove `ChromePath` and `BrowserLifetime` from octo
800
+
801
+
802
+ ## Code changes
803
+ - `/v1/previews` will no longer return previews for pdfs
804
+ - Remove Puppeteer this is no longer needed in image api
805
+ - Remove template service which was used in the screenshot services (remove)
806
+
807
+
808
+ ## Testing
809
+ - The resources in NP have thumbnails/preview images. In staging this will only happen for new resources since we didnt generate them for the old ones
810
+
811
+
812
+
813
+ # RealtimeSalesforceSync
814
+
815
+ ## Before release
816
+ - Update `GoodStuff.EventHandling.Master` with the latest released version
817
+
818
+
819
+ ## Dependencies
820
+ - Merge after https://gitlab.cvinternal.net/back-end/goodstuff-internal/-/merge_requests/14
821
+
822
+
823
+ ## Code changes
824
+ - Master event codes replaced with `GoodStuff.EventHandling.Master`. Implements INBOX-3289
825
+
826
+
827
+ ## Testing
828
+ - RealtimeSalesforceSync should work as expected
829
+
830
+
831
+
832
+ # Prospect.Api
833
+
834
+ ## Dependencies
835
+ - https://gitlab.cvinternal.net/clickview/back-end/Master.Auth/-/merge_requests/343
836
+ - Clients
837
+ - https://gitlab.cvinternal.net/clickview/front-end/lite/-/merge_requests/333
838
+ - https://gitlab.cvinternal.net/clickview/back-end/users.api/-/merge_requests/150
839
+
840
+
841
+ ## Code changes
842
+ - Require `internal.prospect.read` for read endpoints and `internal.prospect.write` for write endpoints
843
+
844
+
845
+ ## Testing
846
+ - Ensure a 403 is returned when calling any Prospect API endpoints without the `internal.prospect.read` or `internal.prospect.write` scopes
847
+ - Ensure both write and read Prospect API endpoints work when using the `internal.prospect.read` or `internal.prospect.write` scopes
848
+
849
+
850
+
851
+ # Analytics Web
852
+
853
+
854
+ # Library Editor
855
+