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

Highlight the changed files in the file list view

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

+ 2 - 0
services/web/app/views/templates.jade

@@ -68,6 +68,7 @@
 				input.rename.js-rename
 			.dropdown-caret
 				i.icon-chevron-down
+			.entity-label.label.label-success
 
 	script(type="text/template")#folderTemplate
 		.entity-list-item(class="entity-{{ type }}", entity-type="{{ type }}", id="{{ id }}")
@@ -80,6 +81,7 @@
 				input.rename.js-rename
 			.dropdown-caret
 				i.icon-chevron-down
+			.entity-label.label.label-success
 	
 	script(type="text/template")#entityListTemplate
 		.contents

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

@@ -15,6 +15,7 @@ define [
 		events: () ->
 			events = {}
 			events["click ##{@model.id} > .js-clickable"] = "parentOnClick"
+			events["click ##{@model.id} > .entity-label"] = "parentOnClick"
 			events["click .dropdown-caret"] = "showContextMenuFromCaret"
 			events["contextmenu"] = "showContextMenuFromRightClick"
 			return events
@@ -29,6 +30,7 @@ define [
 			@$nameEl = @$(".name")
 			@$inputEl = @$("input.js-rename")
 			@$entityListItemEl = @$el.children(".entity-list-item")
+			@$labelEl = @$entityListItemEl.children(".entity-label")
 
 		_makeEditable: () ->
 			if @ide.isAllowedToDoIt "readAndWrite"
@@ -48,6 +50,17 @@ define [
 			@$nameEl.hide()
 			@$inputEl.show()
 
+		setLabels: (labels) ->
+			label = labels[@model.get("id")]
+			if label?
+				@$entityListItemEl.addClass("show-label")
+				@$labelEl.text("±")
+				return true
+			else
+				@$entityListItemEl.removeClass("show-label")
+				@$labelEl.text("")
+				return false
+
 		select: () ->
 			@selected = true
 			@$entityListItemEl.addClass("selected")

+ 2 - 3
services/web/public/coffee/file-tree/FileTreeManager.coffee

@@ -277,6 +277,5 @@ define [
 			entity.collection?.remove(entity)
 			delete @views[entity_id]
 			
-				
-
-
+		setLabels: (labels) ->
+			@view.setLabels(labels)

+ 3 - 0
services/web/public/coffee/file-tree/FileTreeView.coffee

@@ -19,4 +19,7 @@ define [
 			@rootFolderView = new RootFolderView(model: rootFolder, manager: @manager)
 			entities.append(@rootFolderView.$el)
 			@rootFolderView.render()
+
+		setLabels: (labels) ->
+			@rootFolderView.setLabels(labels)
 			

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

@@ -107,11 +107,13 @@ define [
 			@$contents.hide()
 			@$toggle.find(".js-open").hide()
 			@$toggle.find(".js-closed").show()
+			@$entityListItemEl.removeClass("folder-open")
 
 		showEntries: () ->
 			@$contents.show()
 			@$toggle.find(".js-open").show()
 			@$toggle.find(".js-closed").hide()
+			@$entityListItemEl.addClass("folder-open")
 
 		onToggle: (e) ->
 			e.preventDefault()
@@ -146,3 +148,17 @@ define [
 					@manager.showUploadFileModal(@model)
 			}]
 
+		setLabels: (labels) ->
+			showLabel = false
+			for entity in @views
+				if entity.setLabels(labels)
+					showLabel = true
+
+			if showLabel
+				@$entityListItemEl.addClass("show-label")
+				@$labelEl.text("±")
+				return true
+			else
+				@$entityListItemEl.removeClass("show-label")
+				@$labelEl.text("")
+				return false

+ 19 - 6
services/web/public/coffee/track-changes/TrackChangesManager.coffee

@@ -59,7 +59,9 @@ define [
 				@autoSelectDiff()
 
 			@changeListView.on "change_diff", (fromIndex, toIndex) =>
-				@selectDocAndUpdateDiff(fromIndex, toIndex)
+				@findDocsInChange(fromIndex, toIndex)
+				@updateLabels()
+				@updateDiff()
 
 			@showUpgradeView()
 
@@ -97,6 +99,7 @@ define [
 			@disable()
 			@ide.fileTreeManager.openDoc(@doc_id)
 			@ide.tabManager.show "code"
+			@resetLabels()
 
 		autoSelectDiff: () ->
 			if @changes.models.length == 0
@@ -118,17 +121,27 @@ define [
 			@changeListView.setSelectionRange(fromIndex, 0)
 			@updateDiff()
 
-		selectDocAndUpdateDiff: (fromIndex, toIndex) ->
-			doc_ids = []
+		findDocsInChange: (fromIndex, toIndex) ->
+			@changed_doc_ids = []
 			for change in @changes.models.slice(toIndex, fromIndex + 1)
 				for doc in change.get("docs") or []
-					doc_ids.push doc.id if doc.id not in doc_ids
+					@changed_doc_ids.push doc.id if doc.id not in @changed_doc_ids
 
-			if !@doc_id? or @doc_id not in doc_ids
-				@doc_id = doc_ids[0]
+			if !@doc_id? or @doc_id not in @changed_doc_ids
+				@doc_id = @changed_doc_ids[0]
 
 			@updateDiff()
 
+		updateLabels: () ->
+			labels = {}
+			for doc_id in @changed_doc_ids
+				labels[doc_id] = true
+			@ide.fileTreeManager.setLabels(labels)
+
+		resetLabels: () ->
+			@ide.fileTreeManager.setLabels({})
+
+
 		updateDiff: () ->
 			fromIndex = @changeListView.selectedFromIndex
 			toIndex   = @changeListView.selectedToIndex

+ 25 - 0
services/web/public/stylesheets/less/editor.less

@@ -467,6 +467,9 @@ body.editor {
 		.dropdown-caret {
 			display: none;
 		}
+		.entity-label {
+			display: none;
+		}
 	}
 
 	.entity-folder {
@@ -527,6 +530,28 @@ body.editor {
 			}
 		}
 	}
+
+	.entity-list-item.show-label {
+		.dropdown-caret {
+			display: none;
+		}
+		.entity-label {
+			display: block;
+			position: absolute;
+			top: 3px;
+			right: 3px;
+			font-size: 12px;
+			line-height: 12px;
+			padding: 3px 6px;
+			font-weight: normal;
+		}
+	}
+
+	.entity-list-item.folder-open.show-label {
+		.entity-label {
+			display: none;
+		}
+	}
 	
 	li img, .entity-list-item i {
 		margin: 4px;