ソースを参照

Merge pull request #761 from sharelatex/as-remove-rt-feature-flag

Prepare rich text for deploy
Alasdair Smith 8 年 前
親
コミット
dec103d582

+ 2 - 1
services/web/app/coffee/Features/Project/ProjectController.coffee

@@ -28,6 +28,7 @@ Modules = require '../../infrastructure/Modules'
 ProjectEntityHandler = require './ProjectEntityHandler'
 ProjectEntityHandler = require './ProjectEntityHandler'
 crypto = require 'crypto'
 crypto = require 'crypto'
 { V1ConnectionError } = require '../Errors/Errors'
 { V1ConnectionError } = require '../Errors/Errors'
+Features = require('../../infrastructure/Features')
 
 
 module.exports = ProjectController =
 module.exports = ProjectController =
 
 
@@ -344,7 +345,7 @@ module.exports = ProjectController =
 					themes: THEME_LIST
 					themes: THEME_LIST
 					maxDocLength: Settings.max_doc_length
 					maxDocLength: Settings.max_doc_length
 					useV2History: !!project.overleaf?.history?.display
 					useV2History: !!project.overleaf?.history?.display
-					showRichText: req.query?.rt == 'true'
+					richTextEnabled: Features.hasFeature('rich-text')
 					showTestControls: req.query?.tc == 'true' || user.isAdmin
 					showTestControls: req.query?.tc == 'true' || user.isAdmin
 					showPublishModal: req.query?.pm == 'true'
 					showPublishModal: req.query?.pm == 'true'
 				timer.done()
 				timer.done()

+ 3 - 0
services/web/app/coffee/infrastructure/Features.coffee

@@ -22,5 +22,8 @@ module.exports = Features =
 				return !Settings.overleaf?
 				return !Settings.overleaf?
 			when 'affiliations'
 			when 'affiliations'
 				return Settings?.apis?.v1?.url?
 				return Settings?.apis?.v1?.url?
+			when 'rich-text'
+				isEnabled = true # Switch to false to disable
+				Settings.overleaf? and isEnabled
 			else
 			else
 				throw new Error("unknown feature: #{feature}")
 				throw new Error("unknown feature: #{feature}")

+ 1 - 0
services/web/app/views/project/editor.pug

@@ -133,6 +133,7 @@ block requirejs
 		window.maxDocLength = #{maxDocLength};
 		window.maxDocLength = #{maxDocLength};
 		window.trackChangesState = data.trackChangesState;
 		window.trackChangesState = data.trackChangesState;
 		window.wikiEnabled = #{!!(settings.apis.wiki && settings.apis.wiki.url)};
 		window.wikiEnabled = #{!!(settings.apis.wiki && settings.apis.wiki.url)};
+		window.richTextEnabled = #{richTextEnabled}
 		window.requirejs = {
 		window.requirejs = {
 			"paths" : {
 			"paths" : {
 				"moment": "libs/#{lib('moment')}",
 				"moment": "libs/#{lib('moment')}",

+ 1 - 1
services/web/app/views/project/editor/editor.pug

@@ -43,7 +43,7 @@ div.full-size(
 			ace-editor="editor",
 			ace-editor="editor",
 			ng-if="!editor.showRichText",
 			ng-if="!editor.showRichText",
 			ng-show="!!editor.sharejs_doc && !editor.opening",
 			ng-show="!!editor.sharejs_doc && !editor.opening",
-			style=showRichText ? "top: 32px" : "",
+			style=richTextEnabled ? "top: 32px" : "",
 			theme="settings.theme",
 			theme="settings.theme",
 			keybindings="settings.mode",
 			keybindings="settings.mode",
 			font-size="settings.fontSize",
 			font-size="settings.fontSize",

+ 1 - 1
services/web/app/views/project/editor/review-panel.pug

@@ -1,4 +1,4 @@
-#review-panel(style=showRichText ? "top: 32px" : "")
+#review-panel(style=richTextEnabled ? "top: 32px" : "")
 	.rp-in-editor-widgets
 	.rp-in-editor-widgets
 		a.rp-track-changes-indicator(
 		a.rp-track-changes-indicator(
 			href
 			href

+ 7 - 2
services/web/public/coffee/ide/editor/EditorManager.coffee

@@ -6,7 +6,7 @@ define [
 	"ide/editor/controllers/SavingNotificationController"
 	"ide/editor/controllers/SavingNotificationController"
 ], (Document) ->
 ], (Document) ->
 	class EditorManager
 	class EditorManager
-		constructor: (@ide, @$scope, localStorage) ->
+		constructor: (@ide, @$scope, @localStorage) ->
 			@$scope.editor = {
 			@$scope.editor = {
 				sharejs_doc: null
 				sharejs_doc: null
 				open_doc_id: null
 				open_doc_id: null
@@ -14,7 +14,7 @@ define [
 				opening: true
 				opening: true
 				trackChanges: false
 				trackChanges: false
 				wantTrackChanges: false
 				wantTrackChanges: false
-				showRichText: localStorage("editor.mode.#{@$scope.project_id}") == 'rich-text'
+				showRichText: @showRichText()
 			}
 			}
 
 
 			@$scope.$on "entity:selected", (event, entity) =>
 			@$scope.$on "entity:selected", (event, entity) =>
@@ -41,6 +41,11 @@ define [
 				return if !value?
 				return if !value?
 				@_syncTrackChangesState(@$scope.editor.sharejs_doc)
 				@_syncTrackChangesState(@$scope.editor.sharejs_doc)
 
 
+		showRichText: () ->
+			if !window.richTextEnabled
+				return false
+			@localStorage("editor.mode.#{@$scope.project_id}") == 'rich-text'
+
 		autoOpenDoc: () ->
 		autoOpenDoc: () ->
 			open_doc_id = 
 			open_doc_id = 
 				@ide.localStorage("doc.open_id.#{@$scope.project_id}") or
 				@ide.localStorage("doc.open_id.#{@$scope.project_id}") or

+ 3 - 0
services/web/test/unit/coffee/Project/ProjectControllerTests.coffee

@@ -72,6 +72,8 @@ describe "ProjectController", ->
 		@Modules =
 		@Modules =
 			hooks:
 			hooks:
 				fire: sinon.stub()
 				fire: sinon.stub()
+		@Features =
+			hasFeature: sinon.stub()
 		@ProjectController = SandboxedModule.require modulePath, requires:
 		@ProjectController = SandboxedModule.require modulePath, requires:
 			"settings-sharelatex":@settings
 			"settings-sharelatex":@settings
 			"logger-sharelatex":
 			"logger-sharelatex":
@@ -102,6 +104,7 @@ describe "ProjectController", ->
 			"../../infrastructure/Modules": @Modules
 			"../../infrastructure/Modules": @Modules
 			"./ProjectEntityHandler": @ProjectEntityHandler
 			"./ProjectEntityHandler": @ProjectEntityHandler
 			"../Errors/Errors": Errors
 			"../Errors/Errors": Errors
+			"../../infrastructure/Features": @Features
 
 
 		@projectName = "£12321jkj9ujkljds"
 		@projectName = "£12321jkj9ujkljds"
 		@req =
 		@req =