* Fix "For student" link in footer isn't working because of hash being placed before querystring
* add scroll to top behaviour if "For students" link is accessed on the plans page
* Add an extra delay to make sure computation is finished before performing scroll to top behaviour
GitOrigin-RevId: 46b906271223267bc47ffcd781c25dc03f23a8e7
* Add some FR translations for the menu header and plans page
* Replace single quotes in translations
* Fix typo and missing translation
* Updates after rebase
GitOrigin-RevId: 637f60513afad1a44a38fabcc6afa261c658d322
* Remove frontend project list angular code (pugfiles + controllers)
* Remove unused translation keys in every language
GitOrigin-RevId: e0514721d6a32ca2de7d1be9433da3476ba1680c
* Implement INR geopricing test
* Show again the INR banner after 30 days
* Update INRBanner to direct users to the plans page and add tracking
* Remove local testing hack in GeoIpLookup
* Update formatter for subscription dashboard
* Flip assignment to assign all users and add event segmentations
* Fix linting
* Review suggestions - factorised recommended currency helper function
GitOrigin-RevId: b1616520f8c7ead689a840720057297e67d3f574
* Use a block widget for top padding
* Update review panel positions when the editor geometry changes
* Remove editorPaddingTop from position calculations
* Recalculate review panel on start adding comment
* Assert on line content rather than index
* Use broadcastChange
* Keep focus in the editor when opening the review panel
* debounce broadcastChange
* Set CULL_AFTER to Infinity
GitOrigin-RevId: a8d7b8967736a9164b5264eeaadf334c15ec95ce
- Extract/duplicate the style from editor file tree (only extract styling that's being used in history file tree)
- Change some of the class name to avoid duplicated class name from the editor file tree
- Revert change to editor file tree since it has been moved to history file tree
GitOrigin-RevId: 6c3b20080c9b428363024db622f60e3540d919e6
* Update Copybara options in preparation for open-sourcing the source editor
* Move files
* Update paths
* Remove source-editor module and checks for its existence
* Explicitly mention CM6 license in files that contain code adapted from CM6
GitOrigin-RevId: 89b7cc2b409db01ad103198ccbd1b126ab56349b
* Add react file tree UI to history view
* Use history data from API to render react file tree in history view
GitOrigin-RevId: 2b1eb5422f0c91fdf5e87e21d1e5d06defd45e98
* Implement onboarding video tour split test:
- Add split test infrastructure
- Create new `OnboardingVideoTourModal` component
- Place the component inside the editor pug template with a split test
* add event segmentation for `onboarding-video-tour-close-button-click` event:
1. video: `first` | `second`
2. firstVideoWatchingTimeInSecond: total time watching first video
2. secondVideoWatchingTimeInSecond: total time watching second video (0 if skipped)
* add event segmentation for:
1. `onboarding-video-tour-dismiss-button-click`
2. `onboarding-video-tour-next-button-click`
3. `onboarding-video-tour-done-button-click`
with these key/value:
1. firstVideoWatchingTimeInSecond: total time watching first video
2. secondVideoWatchingTimeInSecond: total time watching second video (0 if skipped/not watched yet)
* Use contentful to host video assets
GitOrigin-RevId: 27a6f38d15d7a03b07455e216dda63d99983ca80
* Refactor & change `add-affiliation.tsx` file:
* Change class from `user-profile` to `add-affiliation`
* Add new optional `className` props for custom styling
* Show affiliation widget on mobile screen:
* Fix bug on use add affiliation hooks: return type should be `boolean`, not `boolean | 0`
GitOrigin-RevId: 800b951e2a012797266b1780993b4ed9a918d565
* Rename manage group entry point
* Migrate group management root page to React
* Add cypress tests for the group management react page
* Fix linting
* Add checkbox labels for screen-readers + remove unused classes
* Await on add/remove members calls
* Display the export CSV link for a full group
* Display error message when group is full
* Sort locales
* Handle the managers management page in React version
* Fix missing type in GroupMemberRow
* Split members and managers React pages
* Build API paths on frontend side + add cypress tests for each page
* Fix linting
* Update unit tests
* Review improvements
* Type API errors
GitOrigin-RevId: d124a9d24cbf33de8aacc5d69e9d46e7bcda93c5
* Update split test config and infrastructure for plans-page-layout-v3
* Implement view for `old-plans-page-annual` variant of the new split test:
- Make `annual` the default view for all elements on the old plans page
- Change the tooltip background to green for monthly/student view
* Implement a new design for the new plans page:
- switch annual and monthly locations (annual on the left now)
- change the tooltip background to green color for all choice
- make the monthly-annual switch has green background if annual is chosen
* Fix mobile view plans page header style
GitOrigin-RevId: b2b3c6ac6adbe26bf6def7e072493f503793cfcb
* Add new event segmentations for the upgrade button in dashboard to help analysis
* Also add an extra check for the upgrade button in the navbar since it's only appeared in the project dashboard react version
GitOrigin-RevId: fca14e3adfbafd0fd143b045ba43588913f7297b
* Implement new users micro survey for project dashboard page on react and non-react version
* Add 'new-users-micro-survey-click' and 'new-users-micro-survey-prompt' new event for the analytics
GitOrigin-RevId: 9aabe931987638b38995d404aa90ac4d40b2f3b5
- Implement the banner on both react and non-react project dashboard
- Use split test with 4 different variants, `save`, `empower`, `did-you-know`, and `default`, each variant has a different copy, except the `default` which won't show the banner to users
GitOrigin-RevId: ee76769dfd38b8e52de8cc0f201c24e41905d016
- Importing SettingsController from the angular code, which enables post requests for every select menu and socket handler for compiler, texlive version, and main document select option
- New context for the data handling infrastructure between react and angular. The data is still located in the angular version, and I use the context only as a proxy to fetch/post new data.
GitOrigin-RevId: 59009bceb128d82969a2318e90036aacf79f9887
* Improve "compile" keypress handling
* Remove "compile" keypress handling from PDF preview
* Remove compile shortcuts from CM6
* Use an event for Vim keybindings
* Remove event handlers from Angular/Ace
* Move useCompileTriggers into DetachCompileProvider
GitOrigin-RevId: 7f0e667b5106a849458e06ebb0f7a413d5d63430
* Update "go to line" hotkey for cm6 and add new info text in hotkeys modal
* Differentiate modal title between cm6 and ace hotkeys
* Update test to reflect change in hotkeys modal title
* Add test for hotkeys modal bottom text
* Update test on editor left menu hotkeys button to reflect change in hotkeys modal title
GitOrigin-RevId: 61bae16313ea7a37fa3b9441dbe5a93ab7823d01
Implement legacy source editor survey:
* Force user to switch to cm6 if they haven't seen switch away survey
* Only show user switch away survey if they open ace from another editor
* We need to wait 3 seconds until the survey is being shown
* Add comment to explain the reasoning of not showing cm6 switch away survey for rich text users
* Use localstorage `editor.has_seen_cm6_switch_away_survey` setter to not show the survey if user has seen the survey
* the `editor.has_seen_cm6_switch_away_survey` will have the value `true` even if user is not interacting with it, so update comment to reflect that
* Add `once: true` option to keydown event to avoid unnecessary callback invocation upon key presses
GitOrigin-RevId: c26be2bb39efac2dff112c821fca893e5993dcbf
* Initialize left menu react migration and migration download menu UI to react
* Add test case to DownloadMenu react component
* Update test description and add an href check to one of the download link
* Extract storybook document mock to its own fixture file
* Add mockCompileOnLoad config on storybook editor scope
- if mockCompileOnLoad: true (default), then the default compile mock will be used
- If mockCompileOnLoad: false, then we have to provide a compile mock on the storybook component
* Create download menu storybook component
* Use a single "editor-left-menu" controller on the editor left menu migrations
* Remove the form import from the react version of the left menu
* Change inline style to utility class name
GitOrigin-RevId: 5357c7bfc78bf40f52b9b308df8f2b60d793fbf7
* change event segmentation to plans-page-layout-v2-annual
* update some new plans page event to have new event key
* add location segmentation key for some of the group plans events
GitOrigin-RevId: 99d8258112d9661955a196e57ca05a017afba0f4
* [web] set-password: reject same as current password
* [web] Add 'peek' operation on tokens
This allows us to improve the UX of the reset-password form,
by not invalidating the token in the case where the new
password will be rejected by validation logic.
We give up to three attempts before invalidating the token.
* [web] Add hide-on-error feature to async forms
This allows us to hide the form elements when certain
named error conditions occur.
* [web] reset-password: handle same-password rejection
We also change the implementation to use the new
peekValueFromToken API, and to expire the token explicitely
after it has been used to set the new password.
* [web] Validate OneTimeToken when loading password reset form
* [web] Rate limit GET: /user/password/set
Now that we are peeking at OneTimeToken when accessing this page,
we add rate to the GET request, matching that of the POST request.
* [web] Tidy up pug layout and mongo query for token peeking
Co-authored-by: Mathias Jakobsen <mathias.jakobsen@overleaf.com>
GitOrigin-RevId: 835205cc7c7ebe1209ee8e5b693efeb939a3056a
* Add onboarding survey page
* Add onboarding new analytics events to mixpanel allowlist
* [web] Try Premium prompt
* moved try-premium code to overleaf-integration
* fixed sheet styling
* Add onboarding flow redirect handling to registration handlers (#9462)
* Add redirect logic for onboarding flow after registration
* Update UPGRADE_PROMPT_URL
* Cleanup style of OverleafAuthenticationController
* Refactor finishLogin calls to call wrapped function in OverleafAuthenticationController
* Refactor user properties/onboarding flow redirect into finishLogin wrapper
* Fix async/await calls after refactoring
* Update tests for finishLogin refactoring
* Don't redirect to upgrade prompt if user has premium via commons
Co-authored-by: Miguel Serrano <mserranom@users.noreply.github.com>
GitOrigin-RevId: 7c392aa6949f99fa909f9ca4e4baad4c4d4ff6be