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

Make track changes file view read only

James Allen 12 лет назад
Родитель
Сommit
e91d4d61e9

+ 4 - 0
services/web/public/coffee/file-tree/DeletedDocsFolderView.coffee

@@ -24,6 +24,10 @@ define [
 		hideToggle: () ->
 		hideToggle: () ->
 			@$(".js-toggle").hide()
 			@$(".js-toggle").hide()
 
 
+		makeReadOnly: () ->
+
+		makeReadWrite: () ->
+
 		
 		
 
 
 
 

+ 13 - 8
services/web/public/coffee/file-tree/EntityView.coffee

@@ -23,7 +23,8 @@ define [
 		render: () ->
 		render: () ->
 			@$el.append(Mustache.to_html @entityTemplate, @model.attributes)
 			@$el.append(Mustache.to_html @entityTemplate, @model.attributes)
 			@_bindToDomElements()
 			@_bindToDomElements()
-			@_makeEditable()
+			@_initializeRenameBox()
+			@_initializeDrag()
 			return @
 			return @
 
 
 		_bindToDomElements: () ->
 		_bindToDomElements: () ->
@@ -32,12 +33,6 @@ define [
 			@$entityListItemEl = @$el.children(".entity-list-item")
 			@$entityListItemEl = @$el.children(".entity-list-item")
 			@$labelEl = @$entityListItemEl.children(".entity-label")
 			@$labelEl = @$entityListItemEl.children(".entity-label")
 
 
-		_makeEditable: () ->
-			if @ide.isAllowedToDoIt "readAndWrite"
-				@_initializeRenameBox()
-				@_initializeDrag()
-			@hideRenameBox()
-
 		bindToModel: () ->
 		bindToModel: () ->
 			@model.on "change:name", (model) =>
 			@model.on "change:name", (model) =>
 				@$nameEl.text(model.get("name"))
 				@$nameEl.text(model.get("name"))
@@ -84,7 +79,7 @@ define [
 		onDoubleClick: (e) ->
 		onDoubleClick: (e) ->
 			e.preventDefault()
 			e.preventDefault()
 			e.stopPropagation()
 			e.stopPropagation()
-			if @ide.isAllowedToDoIt "readAndWrite"
+			if !@readonly
 				@startRename()
 				@startRename()
 
 
 		showContextMenuFromCaret: (e) ->
 		showContextMenuFromCaret: (e) ->
@@ -121,6 +116,7 @@ define [
 				delete @contextMenu
 				delete @contextMenu
 
 
 		getContextMenuEntries: () ->
 		getContextMenuEntries: () ->
+			return null if @readonly
 			return [{
 			return [{
 				text: "Rename"
 				text: "Rename"
 				onClick: () =>
 				onClick: () =>
@@ -171,5 +167,14 @@ define [
 			@manager.renameEntity(@model, name)
 			@manager.renameEntity(@model, name)
 			@hideRenameBox()
 			@hideRenameBox()
 
 
+		makeReadOnly: () ->
+			console.log @
+			@$entityListItemEl.draggable("disable")
+			@readonly = true
+
+		makeReadWrite: () ->
+			@$entityListItemEl.draggable("enable")
+			delete @readonly
+
 			
 			
 
 

+ 15 - 0
services/web/public/coffee/file-tree/FileTreeManager.coffee

@@ -17,6 +17,7 @@ define [
 			@multiSelectedEntities = []
 			@multiSelectedEntities = []
 			@ide.on "afterJoinProject", (@project) =>
 			@ide.on "afterJoinProject", (@project) =>
 				@populateFileTree()
 				@populateFileTree()
+				@makeReadWriteIfAllowed()
 				@project_id = @project.id
 				@project_id = @project.id
 				if @ide.editor?.current_doc_id?
 				if @ide.editor?.current_doc_id?
 					@openDoc(@ide.editor.current_doc_id)
 					@openDoc(@ide.editor.current_doc_id)
@@ -312,3 +313,17 @@ define [
 
 
 		hideDeletedDocs: () ->
 		hideDeletedDocs: () ->
 			@deletedDocsView.$el.hide()
 			@deletedDocsView.$el.hide()
+
+		makeReadOnly: () ->
+			for id, view of @views or []
+				view.makeReadOnly?()
+
+		makeReadWrite: () ->
+			for id, view of @views or []
+				view.makeReadWrite?()
+
+		makeReadWriteIfAllowed: () ->
+			if @ide.isAllowedToDoIt("readAndWrite")
+				@makeReadWrite()
+			else
+				@makeReadOnly()

+ 1 - 0
services/web/public/coffee/file-tree/FolderView.coffee

@@ -123,6 +123,7 @@ define [
 				@showEntries()
 				@showEntries()
 
 
 		getContextMenuEntries: (args...) ->
 		getContextMenuEntries: (args...) ->
+			return null if @readonly
 			entries = EntityView::getContextMenuEntries.apply(this, args)
 			entries = EntityView::getContextMenuEntries.apply(this, args)
 			entries.push {
 			entries.push {
 				divider: true
 				divider: true

+ 9 - 4
services/web/public/coffee/file-tree/RootFolderView.coffee

@@ -36,8 +36,7 @@ define [
 				type: "project"
 				type: "project"
 			})
 			})
 			@_bindToDomElements()
 			@_bindToDomElements()
-			if @ide.isAllowedToDoIt("readAndWrite")
-				@renderActions()
+			@renderActions()
 			@hideRenameBox()
 			@hideRenameBox()
 			@hideToggle()
 			@hideToggle()
 			@renderEntries()
 			@renderEntries()
@@ -45,8 +44,8 @@ define [
 			return @
 			return @
 
 
 		renderActions: () ->
 		renderActions: () ->
-			actions = $(@actionsTemplate)
-			actions.insertAfter(@$entityListItemEl)
+			@$actions = $(@actionsTemplate)
+			@$actions.insertAfter(@$entityListItemEl)
 			@$(".js-new-entity-menu > a").dropdown()
 			@$(".js-new-entity-menu > a").dropdown()
 
 
 		onClick: () ->
 		onClick: () ->
@@ -61,6 +60,12 @@ define [
 		hideToggle: () ->
 		hideToggle: () ->
 			@$(".js-toggle").hide()
 			@$(".js-toggle").hide()
 
 
+		makeReadOnly: () ->
+			@$actions.hide()
+
+		makeReadWrite: () ->
+			@$actions.show()
+
 		
 		
 
 
 
 

+ 2 - 0
services/web/public/coffee/track-changes/TrackChangesManager.coffee

@@ -72,6 +72,7 @@ define [
 			@ide.editor.disable()
 			@ide.editor.disable()
 			@ide.fileViewManager.disable()
 			@ide.fileViewManager.disable()
 
 
+			@ide.fileTreeManager.makeReadOnly()
 			@ide.fileTreeManager.showDeletedDocs()
 			@ide.fileTreeManager.showDeletedDocs()
 
 
 			@enable()
 			@enable()
@@ -96,6 +97,7 @@ define [
 			@ide.fileTreeManager.openDoc(@doc_id)
 			@ide.fileTreeManager.openDoc(@doc_id)
 			@ide.tabManager.show "code"
 			@ide.tabManager.show "code"
 			@resetLabels()
 			@resetLabels()
+			@ide.fileTreeManager.makeReadWriteIfAllowed()
 			@ide.fileTreeManager.hideDeletedDocs()
 			@ide.fileTreeManager.hideDeletedDocs()
 
 
 		autoSelectDiff: () ->
 		autoSelectDiff: () ->