Просмотр исходного кода

Merge pull request #11771 from overleaf/msm-force-ace-sp

[web] Force Ace editor in Server Pro

GitOrigin-RevId: 1ea5675ad1c64a15dc30566c02d694feb2aaed3c
Miguel Serrano 3 лет назад
Родитель
Сommit
286cbc66a8

+ 1 - 0
services/web/app/src/Features/Project/ProjectController.js

@@ -1204,6 +1204,7 @@ const ProjectController = {
             const detachRole = req.params.detachRole
             const detachRole = req.params.detachRole
 
 
             const showLegacySourceEditor =
             const showLegacySourceEditor =
+              !Features.hasFeature('saas') ||
               legacySourceEditorAssignment.variant === 'default' ||
               legacySourceEditorAssignment.variant === 'default' ||
               // Also allow override via legacy_source_editor=true in query string
               // Also allow override via legacy_source_editor=true in query string
               shouldDisplayFeature('legacy_source_editor')
               shouldDisplayFeature('legacy_source_editor')

+ 6 - 4
services/web/app/views/project/editor/editor-pane.pug

@@ -49,11 +49,13 @@
 				else
 				else
 					.toolbar.toolbar-editor
 					.toolbar.toolbar-editor
 
 
-				div(ng-if="editor.newSourceEditor")
-					if moduleIncludesAvailable('editor:source-editor')
-						!= moduleIncludes('editor:source-editor', locals)
-				div(ng-if="!editor.newSourceEditor")
+				if !moduleIncludesAvailable('editor:source-editor')
 					include ./source-editor
 					include ./source-editor
+				else
+					div(ng-if="editor.newSourceEditor")
+						!= moduleIncludes('editor:source-editor', locals)
+					div(ng-if="!editor.newSourceEditor")
+						include ./source-editor
 
 
 				if !isRestrictedTokenMember
 				if !isRestrictedTokenMember
 							include ./review-panel
 							include ./review-panel

+ 18 - 13
services/web/frontend/js/features/source-editor/components/editor-switch.tsx

@@ -40,6 +40,7 @@ function Badge() {
 }
 }
 
 
 const showLegacySourceEditor: boolean = getMeta('ol-showLegacySourceEditor')
 const showLegacySourceEditor: boolean = getMeta('ol-showLegacySourceEditor')
+const hasNewSourceEditor: boolean = getMeta('ol-hasNewSourceEditor')
 
 
 function EditorSwitch() {
 function EditorSwitch() {
   const [newSourceEditor, setNewSourceEditor] = useScopeValue(
   const [newSourceEditor, setNewSourceEditor] = useScopeValue(
@@ -95,18 +96,22 @@ function EditorSwitch() {
       <fieldset className="toggle-switch">
       <fieldset className="toggle-switch">
         <legend className="sr-only">Editor mode.</legend>
         <legend className="sr-only">Editor mode.</legend>
 
 
-        <input
-          type="radio"
-          name="editor"
-          value="cm6"
-          id="editor-switch-cm6"
-          className="toggle-switch-input"
-          checked={!richTextOrVisual && !!newSourceEditor}
-          onChange={handleChange}
-        />
-        <label htmlFor="editor-switch-cm6" className="toggle-switch-label">
-          <span>Source</span>
-        </label>
+        {hasNewSourceEditor && (
+          <>
+            <input
+              type="radio"
+              name="editor"
+              value="cm6"
+              id="editor-switch-cm6"
+              className="toggle-switch-input"
+              checked={!richTextOrVisual && !!newSourceEditor}
+              onChange={handleChange}
+            />
+            <label htmlFor="editor-switch-cm6" className="toggle-switch-label">
+              <span>Source</span>
+            </label>
+          </>
+        )}
 
 
         {showLegacySourceEditor ? (
         {showLegacySourceEditor ? (
           <>
           <>
@@ -120,7 +125,7 @@ function EditorSwitch() {
               onChange={handleChange}
               onChange={handleChange}
             />
             />
             <label htmlFor="editor-switch-ace" className="toggle-switch-label">
             <label htmlFor="editor-switch-ace" className="toggle-switch-label">
-              <span>Source (legacy)</span>
+              <span>{hasNewSourceEditor ? 'Source (legacy)' : 'Source'}</span>
             </label>
             </label>
           </>
           </>
         ) : null}
         ) : null}