mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2025-07-25 02:00:07 +02:00
219 lines
9.1 KiB
Diff
219 lines
9.1 KiB
Diff
diff --git a/services/web/frontend/js/features/review-panel-new/context/review-panel-providers.tsx b/services/web/frontend/js/features/review-panel-new/context/review-panel-providers.tsx
|
|
index 20e157dfee9..ad943772d0d 100644
|
|
--- a/services/web/frontend/js/features/review-panel-new/context/review-panel-providers.tsx
|
|
+++ b/services/web/frontend/js/features/review-panel-new/context/review-panel-providers.tsx
|
|
@@ -4,10 +4,16 @@ import { ChangesUsersProvider } from './changes-users-context'
|
|
import { TrackChangesStateProvider } from './track-changes-state-context'
|
|
import { ThreadsProvider } from './threads-context'
|
|
import { ReviewPanelViewProvider } from './review-panel-view-context'
|
|
+import { useProjectContext } from '@/shared/context/project-context'
|
|
|
|
export const ReviewPanelProviders: FC<React.PropsWithChildren> = ({
|
|
children,
|
|
}) => {
|
|
+ const { features } = useProjectContext()
|
|
+ if (!features.trackChangesVisible) {
|
|
+ return children
|
|
+ }
|
|
+
|
|
return (
|
|
<ReviewPanelViewProvider>
|
|
<ChangesUsersProvider>
|
|
diff --git a/services/web/frontend/js/features/share-project-modal/components/add-collaborators.tsx b/services/web/frontend/js/features/share-project-modal/components/add-collaborators.tsx
|
|
index 8606fb11fad..e80fb037116 100644
|
|
--- a/services/web/frontend/js/features/share-project-modal/components/add-collaborators.tsx
|
|
+++ b/services/web/frontend/js/features/share-project-modal/components/add-collaborators.tsx
|
|
@@ -176,24 +176,34 @@ export default function AddCollaborators({ readOnly }: { readOnly?: boolean }) {
|
|
])
|
|
|
|
const privilegeOptions = useMemo(() => {
|
|
- return [
|
|
+ const options: {
|
|
+ key: string
|
|
+ label: string
|
|
+ description?: string | null
|
|
+ }[] = [
|
|
{
|
|
key: 'readAndWrite',
|
|
label: t('editor'),
|
|
},
|
|
- {
|
|
+ ]
|
|
+
|
|
+ if (features.trackChangesVisible) {
|
|
+ options.push({
|
|
key: 'review',
|
|
label: t('reviewer'),
|
|
description: !features.trackChanges
|
|
? t('comment_only_upgrade_for_track_changes')
|
|
: null,
|
|
- },
|
|
- {
|
|
- key: 'readOnly',
|
|
- label: t('viewer'),
|
|
- },
|
|
- ]
|
|
- }, [features.trackChanges, t])
|
|
+ })
|
|
+ }
|
|
+
|
|
+ options.push({
|
|
+ key: 'readOnly',
|
|
+ label: t('viewer'),
|
|
+ })
|
|
+
|
|
+ return options
|
|
+ }, [features.trackChanges, features.trackChangesVisible, t])
|
|
|
|
return (
|
|
<OLForm className="add-collabs">
|
|
diff --git a/services/web/frontend/js/features/share-project-modal/components/edit-member.tsx b/services/web/frontend/js/features/share-project-modal/components/edit-member.tsx
|
|
index 6d806968b12..9f24cddc4ad 100644
|
|
--- a/services/web/frontend/js/features/share-project-modal/components/edit-member.tsx
|
|
+++ b/services/web/frontend/js/features/share-project-modal/components/edit-member.tsx
|
|
@@ -244,14 +244,22 @@ function SelectPrivilege({
|
|
const { features } = useProjectContext()
|
|
|
|
const privileges = useMemo(
|
|
- (): Privilege[] => [
|
|
- { key: 'owner', label: t('make_owner') },
|
|
- { key: 'readAndWrite', label: t('editor') },
|
|
- { key: 'review', label: t('reviewer') },
|
|
- { key: 'readOnly', label: t('viewer') },
|
|
- { key: 'removeAccess', label: t('remove_access') },
|
|
- ],
|
|
- [t]
|
|
+ (): Privilege[] =>
|
|
+ features.trackChangesVisible
|
|
+ ? [
|
|
+ { key: 'owner', label: t('make_owner') },
|
|
+ { key: 'readAndWrite', label: t('editor') },
|
|
+ { key: 'review', label: t('reviewer') },
|
|
+ { key: 'readOnly', label: t('viewer') },
|
|
+ { key: 'removeAccess', label: t('remove_access') },
|
|
+ ]
|
|
+ : [
|
|
+ { key: 'owner', label: t('make_owner') },
|
|
+ { key: 'readAndWrite', label: t('editor') },
|
|
+ { key: 'readOnly', label: t('viewer') },
|
|
+ { key: 'removeAccess', label: t('remove_access') },
|
|
+ ],
|
|
+ [features.trackChangesVisible, t]
|
|
)
|
|
|
|
const downgradedPseudoPrivilege: Privilege = {
|
|
diff --git a/services/web/frontend/js/features/source-editor/components/codemirror-editor.tsx b/services/web/frontend/js/features/source-editor/components/codemirror-editor.tsx
|
|
index c1808cbb301..4bdfe2682c8 100644
|
|
--- a/services/web/frontend/js/features/source-editor/components/codemirror-editor.tsx
|
|
+++ b/services/web/frontend/js/features/source-editor/components/codemirror-editor.tsx
|
|
@@ -18,6 +18,7 @@ import {
|
|
} from './codemirror-context'
|
|
import MathPreviewTooltip from './math-preview-tooltip'
|
|
import { useToolbarMenuBarEditorCommands } from '@/features/ide-redesign/hooks/use-toolbar-menu-editor-commands'
|
|
+import { useProjectContext } from '@/shared/context/project-context'
|
|
|
|
// TODO: remove this when definitely no longer used
|
|
export * from './codemirror-context'
|
|
@@ -67,6 +68,7 @@ function CodeMirrorEditor() {
|
|
|
|
function CodeMirrorEditorComponents() {
|
|
useToolbarMenuBarEditorCommands()
|
|
+ const { features } = useProjectContext()
|
|
|
|
return (
|
|
<ReviewPanelProviders>
|
|
@@ -83,8 +85,8 @@ function CodeMirrorEditorComponents() {
|
|
<CodeMirrorCommandTooltip />
|
|
|
|
<MathPreviewTooltip />
|
|
- <ReviewTooltipMenu />
|
|
- <ReviewPanelNew />
|
|
+ {features.trackChangesVisible && <ReviewTooltipMenu />}
|
|
+ {features.trackChangesVisible && <ReviewPanelNew />}
|
|
|
|
{sourceEditorComponents.map(
|
|
({ import: { default: Component }, path }) => (
|
|
diff --git a/services/web/frontend/js/features/source-editor/components/toolbar/toolbar-items.tsx b/services/web/frontend/js/features/source-editor/components/toolbar/toolbar-items.tsx
|
|
index e70663683fc..c5d9f3d3e47 100644
|
|
--- a/services/web/frontend/js/features/source-editor/components/toolbar/toolbar-items.tsx
|
|
+++ b/services/web/frontend/js/features/source-editor/components/toolbar/toolbar-items.tsx
|
|
@@ -14,6 +14,7 @@ import { LegacyTableDropdown } from './table-inserter-dropdown-legacy'
|
|
import { withinFormattingCommand } from '@/features/source-editor/utils/tree-operations/formatting'
|
|
import { isSplitTestEnabled } from '@/utils/splitTestUtils'
|
|
import { isMac } from '@/shared/utils/os'
|
|
+import { useProjectContext } from '@/shared/context/project-context'
|
|
|
|
export const ToolbarItems: FC<{
|
|
state: EditorState
|
|
@@ -31,6 +32,7 @@ export const ToolbarItems: FC<{
|
|
const { t } = useTranslation()
|
|
const { toggleSymbolPalette, showSymbolPalette, writefullInstance } =
|
|
useEditorContext()
|
|
+ const { features } = useProjectContext()
|
|
const isActive = withinFormattingCommand(state)
|
|
|
|
const symbolPaletteAvailable = getMeta('ol-symbolPaletteAvailable')
|
|
@@ -127,13 +129,15 @@ export const ToolbarItems: FC<{
|
|
command={commands.wrapInHref}
|
|
icon="add_link"
|
|
/>
|
|
- <ToolbarButton
|
|
- id="toolbar-add-comment"
|
|
- label={t('add_comment')}
|
|
- disabled={state.selection.main.empty}
|
|
- command={commands.addComment}
|
|
- icon="add_comment"
|
|
- />
|
|
+ {features.trackChangesVisible && (
|
|
+ <ToolbarButton
|
|
+ id="toolbar-add-comment"
|
|
+ label={t('add_comment')}
|
|
+ disabled={state.selection.main.empty}
|
|
+ command={commands.addComment}
|
|
+ icon="add_comment"
|
|
+ />
|
|
+ )}
|
|
<ToolbarButton
|
|
id="toolbar-ref"
|
|
label={t('toolbar_insert_cross_reference')}
|
|
diff --git a/services/web/test/frontend/features/review-panel/review-panel.spec.tsx b/services/web/test/frontend/features/review-panel/review-panel.spec.tsx
|
|
index d6677878108..58ac3e443da 100644
|
|
--- a/services/web/test/frontend/features/review-panel/review-panel.spec.tsx
|
|
+++ b/services/web/test/frontend/features/review-panel/review-panel.spec.tsx
|
|
@@ -181,6 +181,7 @@ describe('<ReviewPanel />', function () {
|
|
removeChangeIds,
|
|
},
|
|
},
|
|
+ projectFeatures: { trackChangesVisible: true },
|
|
})
|
|
|
|
cy.wrap(scope).as('scope')
|
|
@@ -626,7 +627,7 @@ describe('<ReviewPanel /> for free users', function () {
|
|
function mountEditor(ownerId = USER_ID) {
|
|
const scope = mockScope(undefined, {
|
|
permissions: { write: true, trackedWrite: false, comment: true },
|
|
- projectFeatures: { trackChanges: false },
|
|
+ projectFeatures: { trackChanges: false, trackChangesVisible: true },
|
|
projectOwner: {
|
|
_id: ownerId,
|
|
},
|
|
diff --git a/services/web/test/frontend/features/share-project-modal/components/share-project-modal.test.jsx b/services/web/test/frontend/features/share-project-modal/components/share-project-modal.test.jsx
|
|
index b86207fb0f7..dfce8134d1c 100644
|
|
--- a/services/web/test/frontend/features/share-project-modal/components/share-project-modal.test.jsx
|
|
+++ b/services/web/test/frontend/features/share-project-modal/components/share-project-modal.test.jsx
|
|
@@ -694,6 +694,7 @@ describe('<ShareProjectModal/>', function () {
|
|
features: {
|
|
collaborators: 0,
|
|
compileGroup: 'standard',
|
|
+ trackChangesVisible: true,
|
|
},
|
|
},
|
|
},
|
|
@@ -723,6 +724,7 @@ describe('<ShareProjectModal/>', function () {
|
|
...project,
|
|
features: {
|
|
collaborators: 1,
|
|
+ trackChangesVisible: true,
|
|
},
|
|
members: [
|
|
{
|