Parcourir la source

basic package aware autocomplete

Nate Stemen il y a 9 ans
Parent
commit
f113ba6342

+ 0 - 28
services/web/app/coffee/Features/Labels/LabelsController.coffee

@@ -1,28 +0,0 @@
-EditorRealTimeController = require "../Editor/EditorRealTimeController"
-LabelsHandler = require './LabelsHandler'
-logger = require 'logger-sharelatex'
-
-
-module.exports = LabelsController =
-
-	getAllLabels: (req, res, next) ->
-		project_id = req.params.project_id
-		logger.log {project_id}, "getting all labels for project"
-		LabelsHandler.getAllMetaForProject project_id, (err, projectMeta) ->
-			if err?
-				logger.err {project_id, err}, "[LabelsController] error getting all labels from project"
-				return next(err)
-			res.json {projectId: project_id, projectMeta: projectMeta}
-
-	broadcastLabelsForDoc: (req, res, next) ->
-		project_id = req.params.project_id
-		doc_id = req.params.doc_id
-		logger.log {project_id, doc_id}, "getting labels for doc"
-		LabelsHandler.getMetaForDoc project_id, doc_id, (err, docMeta) ->
-			if err?
-				logger.err {project_id, doc_id, err}, "[LabelsController] error getting labels from doc"
-				return next(err)
-			EditorRealTimeController.emitToRoom project_id, 'broadcastDocMeta', {
-				docId: doc_id, meta: docMeta
-			}
-			res.sendStatus(200)

+ 29 - 0
services/web/app/coffee/Features/Metadata/MetaController.coffee

@@ -0,0 +1,29 @@
+EditorRealTimeController = require "../Editor/EditorRealTimeController"
+MetaHandler = require './MetaHandler'
+logger = require 'logger-sharelatex'
+
+
+module.exports = MetaController =
+
+	getMetadata: (req, res, next) ->
+		project_id = req.params.project_id
+		logger.log {project_id}, "getting all labels for project"
+		MetaHandler.getAllMetaForProject project_id, (err, projectMeta) ->
+			if err?
+				logger.err {project_id, err}, "[MetaController] error getting all labels from project"
+				return next err
+			res.json {projectId: project_id, projectMeta: projectMeta}
+
+	broadcastMetadataForDoc: (req, res, next) ->
+		project_id = req.params.project_id
+		doc_id = req.params.doc_id
+		logger.log {project_id, doc_id}, "getting labels for doc"
+		MetaHandler.getMetaForDoc project_id, doc_id, (err, docMeta) ->
+			if err?
+				logger.err {project_id, doc_id, err}, "[MetaController] error getting labels from doc"
+				return next err
+			EditorRealTimeController.emitToRoom project_id, 'broadcastDocMeta', {
+				docId: doc_id, meta: docMeta
+			}
+			res.sendStatus 200
+MetaController

+ 8 - 7
services/web/app/coffee/Features/Labels/LabelsHandler.coffee → services/web/app/coffee/Features/Metadata/MetaHandler.coffee

@@ -2,7 +2,7 @@ ProjectEntityHandler = require "../Project/ProjectEntityHandler"
 DocumentUpdaterHandler = require('../DocumentUpdater/DocumentUpdaterHandler')
 DocumentUpdaterHandler = require('../DocumentUpdater/DocumentUpdaterHandler')
 
 
 
 
-module.exports = LabelsHandler =
+module.exports = MetaHandler =
 
 
 	labelCaptureRegex: () ->
 	labelCaptureRegex: () ->
 		/\\label\{([^\}\n\\]{0,80})\}/g
 		/\\label\{([^\}\n\\]{0,80})\}/g
@@ -17,7 +17,7 @@ module.exports = LabelsHandler =
 			ProjectEntityHandler.getAllDocs projectId, (err, docs) ->
 			ProjectEntityHandler.getAllDocs projectId, (err, docs) ->
 				if err?
 				if err?
 					return callback err
 					return callback err
-				projectMeta = LabelsHandler.extractMetaFromProjectDocs docs
+				projectMeta = MetaHandler.extractMetaFromProjectDocs docs
 				callback null, projectMeta
 				callback null, projectMeta
 
 
 	getMetaForDoc: (projectId, docId, callback=(err, docMeta)->) ->
 	getMetaForDoc: (projectId, docId, callback=(err, docMeta)->) ->
@@ -27,13 +27,13 @@ module.exports = LabelsHandler =
 			ProjectEntityHandler.getDoc projectId, docId, (err, lines) ->
 			ProjectEntityHandler.getDoc projectId, docId, (err, lines) ->
 				if err?
 				if err?
 					return callback err
 					return callback err
-				docMeta = LabelsHandler.extractMetaFromDoc lines
+				docMeta = MetaHandler.extractMetaFromDoc lines
 				callback null, docMeta
 				callback null, docMeta
 
 
 	extractMetaFromDoc: (lines) ->
 	extractMetaFromDoc: (lines) ->
 		docMeta = {labels: [], packages: []}
 		docMeta = {labels: [], packages: []}
-		label_re = LabelsHandler.labelCaptureRegex()
-		package_re = LabelsHandler.packageCaptureRegex()
+		label_re = MetaHandler.labelCaptureRegex()
+		package_re = MetaHandler.packageCaptureRegex()
 		for line in lines
 		for line in lines
 			while labelMatch = label_re.exec line
 			while labelMatch = label_re.exec line
 				if labelMatch[1]
 				if labelMatch[1]
@@ -41,11 +41,12 @@ module.exports = LabelsHandler =
 			while packageMatch = package_re.exec line
 			while packageMatch = package_re.exec line
 				if packageMatch[2]
 				if packageMatch[2]
 					for pkg in packageMatch[2].split ','
 					for pkg in packageMatch[2].split ','
-						docMeta.packages.push pkg.trim()
+						if pkg.trim()
+							docMeta.packages.push pkg.trim()
 		return docMeta
 		return docMeta
 
 
 	extractMetaFromProjectDocs: (projectDocs) ->
 	extractMetaFromProjectDocs: (projectDocs) ->
 		projectMeta = {}
 		projectMeta = {}
 		for _path, doc of projectDocs
 		for _path, doc of projectDocs
-			projectMeta[doc._id] = LabelsHandler.extractMetaFromDoc doc.lines
+			projectMeta[doc._id] = MetaHandler.extractMetaFromDoc doc.lines
 		return projectMeta
 		return projectMeta

+ 3 - 4
services/web/app/coffee/router.coffee

@@ -43,8 +43,7 @@ SudoModeController = require('./Features/SudoMode/SudoModeController')
 SudoModeMiddlewear = require('./Features/SudoMode/SudoModeMiddlewear')
 SudoModeMiddlewear = require('./Features/SudoMode/SudoModeMiddlewear')
 AnalyticsRouter = require('./Features/Analytics/AnalyticsRouter')
 AnalyticsRouter = require('./Features/Analytics/AnalyticsRouter')
 AnnouncementsController = require("./Features/Announcements/AnnouncementsController")
 AnnouncementsController = require("./Features/Announcements/AnnouncementsController")
-LabelsController = require('./Features/Labels/LabelsController')
-# MetadataController = require('./Features/ProjectMetadata/MetadataController')
+MetaController = require('./Features/Metadata/MetaController')
 
 
 logger = require("logger-sharelatex")
 logger = require("logger-sharelatex")
 _ = require("underscore")
 _ = require("underscore")
@@ -202,8 +201,8 @@ module.exports = class Router
 		webRouter.get  '/Project/:Project_id/download/zip', AuthorizationMiddlewear.ensureUserCanReadProject, ProjectDownloadsController.downloadProject
 		webRouter.get  '/Project/:Project_id/download/zip', AuthorizationMiddlewear.ensureUserCanReadProject, ProjectDownloadsController.downloadProject
 		webRouter.get  '/project/download/zip', AuthorizationMiddlewear.ensureUserCanReadMultipleProjects, ProjectDownloadsController.downloadMultipleProjects
 		webRouter.get  '/project/download/zip', AuthorizationMiddlewear.ensureUserCanReadMultipleProjects, ProjectDownloadsController.downloadMultipleProjects
 
 
-		webRouter.get '/project/:project_id/labels', AuthorizationMiddlewear.ensureUserCanReadProject, AuthenticationController.requireLogin(), LabelsController.getAllLabels
-		webRouter.post '/project/:project_id/doc/:doc_id/labels', AuthorizationMiddlewear.ensureUserCanReadProject, AuthenticationController.requireLogin(), LabelsController.broadcastLabelsForDoc
+		webRouter.get '/project/:project_id/metadata', AuthorizationMiddlewear.ensureUserCanReadProject, AuthenticationController.requireLogin(), MetaController.getMetadata
+		webRouter.post '/project/:project_id/doc/:doc_id/metadata', AuthorizationMiddlewear.ensureUserCanReadProject, AuthenticationController.requireLogin(), MetaController.broadcastMetadataForDoc
 
 
 		webRouter.get    '/tag', AuthenticationController.requireLogin(), TagsController.getAllTags
 		webRouter.get    '/tag', AuthenticationController.requireLogin(), TagsController.getAllTags
 		webRouter.post   '/tag', AuthenticationController.requireLogin(), TagsController.createTag
 		webRouter.post   '/tag', AuthenticationController.requireLogin(), TagsController.createTag

+ 9 - 9
services/web/public/coffee/ide.coffee

@@ -9,7 +9,7 @@ define [
 	"ide/pdf/PdfManager"
 	"ide/pdf/PdfManager"
 	"ide/binary-files/BinaryFilesManager"
 	"ide/binary-files/BinaryFilesManager"
 	"ide/references/ReferencesManager"
 	"ide/references/ReferencesManager"
-	"ide/labels/LabelsManager"
+	"ide/metadata/MetadataManager"
 	"ide/review-panel/ReviewPanelManager"
 	"ide/review-panel/ReviewPanelManager"
 	"ide/SafariScrollPatcher"
 	"ide/SafariScrollPatcher"
 	"ide/FeatureOnboardingController",
 	"ide/FeatureOnboardingController",
@@ -47,12 +47,12 @@ define [
 	PdfManager
 	PdfManager
 	BinaryFilesManager
 	BinaryFilesManager
 	ReferencesManager
 	ReferencesManager
-	LabelsManager
+	MetadataManager
 	ReviewPanelManager
 	ReviewPanelManager
 	SafariScrollPatcher
 	SafariScrollPatcher
 ) ->
 ) ->
 
 
-	App.controller "IdeController", ($scope, $timeout, ide, localStorage, sixpack, event_tracking, labels) ->
+	App.controller "IdeController", ($scope, $timeout, ide, localStorage, sixpack, event_tracking, metadata) ->
 		# Don't freak out if we're already in an apply callback
 		# Don't freak out if we're already in an apply callback
 		$scope.$originalApply = $scope.$apply
 		$scope.$originalApply = $scope.$apply
 		$scope.$apply = (fn = () ->) ->
 		$scope.$apply = (fn = () ->) ->
@@ -72,10 +72,10 @@ define [
 			view: "editor"
 			view: "editor"
 			chatOpen: false
 			chatOpen: false
 			pdfLayout: 'sideBySide'
 			pdfLayout: 'sideBySide'
-			pdfHidden: false,
-			pdfWidth: 0,
-			reviewPanelOpen: localStorage("ui.reviewPanelOpen.#{window.project_id}"),
-			miniReviewPanelVisible: false,
+			pdfHidden: false
+			pdfWidth: 0
+			reviewPanelOpen: localStorage("ui.reviewPanelOpen.#{window.project_id}")
+			miniReviewPanelVisible: false
 		}
 		}
 		$scope.onboarding = {
 		$scope.onboarding = {
 			autoCompile: if window.user.betaProgram and window.showAutoCompileOnboarding then 'unseen' else 'dismissed'
 			autoCompile: if window.user.betaProgram and window.showAutoCompileOnboarding then 'unseen' else 'dismissed'
@@ -140,7 +140,7 @@ define [
 		ide.pdfManager = new PdfManager(ide, $scope)
 		ide.pdfManager = new PdfManager(ide, $scope)
 		ide.permissionsManager = new PermissionsManager(ide, $scope)
 		ide.permissionsManager = new PermissionsManager(ide, $scope)
 		ide.binaryFilesManager = new BinaryFilesManager(ide, $scope)
 		ide.binaryFilesManager = new BinaryFilesManager(ide, $scope)
-		ide.labelsManager = new LabelsManager(ide, $scope, labels)
+		ide.metadataManager = new MetadataManager(ide, $scope, metadata)
 
 
 		inited = false
 		inited = false
 		$scope.$on "project:joined", () ->
 		$scope.$on "project:joined", () ->
@@ -155,7 +155,7 @@ define [
 			$timeout(
 			$timeout(
 				() ->
 				() ->
 					if $scope.permissions.write
 					if $scope.permissions.write
-						ide.labelsManager.loadProjectLabelsFromServer()
+						ide.metadataManager.loadProjectMetaFromServer()
 						_labelsInitialLoadDone = true
 						_labelsInitialLoadDone = true
 				, 200
 				, 200
 			)
 			)

+ 6 - 7
services/web/public/coffee/ide/editor/directives/aceEditor.coffee

@@ -9,11 +9,11 @@ define [
 	"ide/editor/directives/aceEditor/highlights/HighlightsManager"
 	"ide/editor/directives/aceEditor/highlights/HighlightsManager"
 	"ide/editor/directives/aceEditor/cursor-position/CursorPositionManager"
 	"ide/editor/directives/aceEditor/cursor-position/CursorPositionManager"
 	"ide/editor/directives/aceEditor/track-changes/TrackChangesManager"
 	"ide/editor/directives/aceEditor/track-changes/TrackChangesManager"
-	"ide/editor/directives/aceEditor/labels/LabelsManager"
-	"ide/labels/services/labels"
+	"ide/editor/directives/aceEditor/metadata/MetadataManager"
+	"ide/metadata/services/metadata"
 	"ide/graphics/services/graphics"
 	"ide/graphics/services/graphics"
 	"ide/preamble/services/preamble"
 	"ide/preamble/services/preamble"
-], (App, Ace, SearchBox, ModeList, UndoManager, AutoCompleteManager, SpellCheckManager, HighlightsManager, CursorPositionManager, TrackChangesManager, LabelsManager) ->
+], (App, Ace, SearchBox, ModeList, UndoManager, AutoCompleteManager, SpellCheckManager, HighlightsManager, CursorPositionManager, TrackChangesManager, MetadataManager) ->
 	EditSession = ace.require('ace/edit_session').EditSession
 	EditSession = ace.require('ace/edit_session').EditSession
 	ModeList = ace.require('ace/ext/modelist')
 	ModeList = ace.require('ace/ext/modelist')
 
 
@@ -35,9 +35,8 @@ define [
 			url = ace.config._moduleUrl(args...) + "?fingerprint=#{window.aceFingerprint}"
 			url = ace.config._moduleUrl(args...) + "?fingerprint=#{window.aceFingerprint}"
 			return url
 			return url
 
 
-	# console.log 'making it to right before aceEditor'
 
 
-	App.directive "aceEditor", ($timeout, $compile, $rootScope, event_tracking, localStorage, $cacheFactory, labels, graphics, preamble) ->
+	App.directive "aceEditor", ($timeout, $compile, $rootScope, event_tracking, localStorage, $cacheFactory, metadata, graphics, preamble) ->
 		monkeyPatchSearch($rootScope, $compile)
 		monkeyPatchSearch($rootScope, $compile)
 
 
 		return  {
 		return  {
@@ -104,8 +103,8 @@ define [
 				highlightsManager     = new HighlightsManager(scope, editor, element)
 				highlightsManager     = new HighlightsManager(scope, editor, element)
 				cursorPositionManager = new CursorPositionManager(scope, editor, element, localStorage)
 				cursorPositionManager = new CursorPositionManager(scope, editor, element, localStorage)
 				trackChangesManager   = new TrackChangesManager(scope, editor, element)
 				trackChangesManager   = new TrackChangesManager(scope, editor, element)
-				labelsManager = new LabelsManager(scope, editor, element, labels)
-				autoCompleteManager = new AutoCompleteManager(scope, editor, element, labelsManager, graphics, preamble)
+				metadataManager = new MetadataManager(scope, editor, element, metadata)
+				autoCompleteManager = new AutoCompleteManager(scope, editor, element, metadataManager, graphics, preamble)
 
 
 
 
 				# Prevert Ctrl|Cmd-S from triggering save dialog
 				# Prevert Ctrl|Cmd-S from triggering save dialog

+ 8 - 9
services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee

@@ -9,8 +9,7 @@ define [
 	aceSnippetManager = ace.require('ace/snippets').snippetManager
 	aceSnippetManager = ace.require('ace/snippets').snippetManager
 
 
 	class AutoCompleteManager
 	class AutoCompleteManager
-		constructor: (@$scope, @editor, @element, @labelsManager, @graphics, @preamble) ->
-			@suggestionManager = new CommandManager(@labelsManager)
+		constructor: (@$scope, @editor, @element, @metadataManager, @graphics, @preamble) ->
 
 
 			@monkeyPatchAutocomplete()
 			@monkeyPatchAutocomplete()
 
 
@@ -34,7 +33,7 @@ define [
 				enableLiveAutocompletion: false
 				enableLiveAutocompletion: false
 			})
 			})
 
 
-			# metadataManager = @metadataManager
+			commandCompleter = new CommandManager(@metadataManager)
 
 
 			SnippetCompleter = new EnvironmentManager()
 			SnippetCompleter = new EnvironmentManager()
 
 
@@ -65,7 +64,7 @@ define [
 								}
 								}
 							callback null, result
 							callback null, result
 
 
-			labelsManager = @labelsManager
+			metadataManager = @metadataManager
 			LabelsCompleter =
 			LabelsCompleter =
 				getCompletions: (editor, session, pos, prefix, callback) ->
 				getCompletions: (editor, session, pos, prefix, callback) ->
 					context = Helpers.getContext(editor, pos)
 					context = Helpers.getContext(editor, pos)
@@ -83,7 +82,7 @@ define [
 									meta: "cross-reference",
 									meta: "cross-reference",
 									score: 60
 									score: 60
 								}
 								}
-							for label in labelsManager.getAllLabels()
+							for label in metadataManager.getAllLabels()
 								result.push {
 								result.push {
 									caption: "\\#{commandName}{#{label}#{if needsClosingBrace then '}' else ''}",
 									caption: "\\#{commandName}{#{label}#{if needsClosingBrace then '}' else ''}",
 									value: "\\#{commandName}{#{label}#{if needsClosingBrace then '}' else ''}",
 									value: "\\#{commandName}{#{label}#{if needsClosingBrace then '}' else ''}",
@@ -129,10 +128,10 @@ define [
 								callback null, result
 								callback null, result
 
 
 			@editor.completers = [
 			@editor.completers = [
-				@suggestionManager,
-				SnippetCompleter,
-				ReferencesCompleter,
-				LabelsCompleter,
+				commandCompleter
+				SnippetCompleter
+				ReferencesCompleter
+				LabelsCompleter
 				GraphicsCompleter
 				GraphicsCompleter
 			]
 			]
 
 

+ 11 - 8
services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/CommandManager.coffee

@@ -1,4 +1,6 @@
-define [], () ->
+define [
+	"./package_definitions"
+	], (packageCommandMappings) ->
 	noArgumentCommands = [
 	noArgumentCommands = [
 		'item', 'hline', 'lipsum', 'centering', 'noindent', 'textwidth', 'draw',
 		'item', 'hline', 'lipsum', 'centering', 'noindent', 'textwidth', 'draw',
 		'maketitle', 'newpage', 'verb', 'bibliography', 'hfill', 'par',
 		'maketitle', 'newpage', 'verb', 'bibliography', 'hfill', 'par',
@@ -77,10 +79,10 @@ define [], () ->
 						special
 						special
 					)
 					)
 
 
-	packageCommandMappings = {
-		amsmath: ['holyshititworks', 'mathematics']
-		natbib: ['somebibliographystuff']
-	}
+	# packageCommandMappings = {
+	# 	amsmath: ['holyshititworks', 'mathematics']
+	# 	natbib: ['somebibliographystuff']
+	# }
 
 
 	class Parser
 	class Parser
 		constructor: (@doc, @prefix) ->
 		constructor: (@doc, @prefix) ->
@@ -171,10 +173,10 @@ define [], () ->
 				return false
 				return false
 
 
 	class CommandManager
 	class CommandManager
-		constructor: (@labelsManager) ->
+		constructor: (@metadataManager) ->
 
 
 		getCompletions: (editor, session, pos, prefix, callback) ->
 		getCompletions: (editor, session, pos, prefix, callback) ->
-			packages = @labelsManager.getAllPackages()
+			packages = @metadataManager.getAllPackages()
 			packageCommands = []
 			packageCommands = []
 			for pkg in packages
 			for pkg in packages
 				if packageCommandMappings[pkg]?
 				if packageCommandMappings[pkg]?
@@ -182,7 +184,8 @@ define [], () ->
 						packageCommands.push {
 						packageCommands.push {
 							caption: "\\#{cmd}"
 							caption: "\\#{cmd}"
 							snippet: "\\#{cmd}"
 							snippet: "\\#{cmd}"
-							meta: "cmd"
+							meta: "#{pkg}-cmd"
+							score: 60
 						}
 						}
 
 
 			doc = session.getValue()
 			doc = session.getValue()

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/package_definitions.coffee


+ 18 - 14
services/web/public/coffee/ide/editor/directives/aceEditor/labels/LabelsManager.coffee → services/web/public/coffee/ide/editor/directives/aceEditor/metadata/MetadataManager.coffee

@@ -9,8 +9,8 @@ define [
 		else
 		else
 			return null
 			return null
 
 
-	class LabelsManager
-		constructor: (@$scope, @editor, @element, @Labels) ->
+	class MetadataManager
+		constructor: (@$scope, @editor, @element, @Metadata) ->
 			@debouncer = {}  # DocId => Timeout
 			@debouncer = {}  # DocId => Timeout
 
 
 			onChange = (change) =>
 			onChange = (change) =>
@@ -21,8 +21,12 @@ define [
 				cursorPosition = @editor.getCursorPosition()
 				cursorPosition = @editor.getCursorPosition()
 				end = change.end
 				end = change.end
 				range = new Range(end.row, 0, end.row, end.column)
 				range = new Range(end.row, 0, end.row, end.column)
-				lineUpToCursor = @editor.getSession().getTextRange(range)
-				commandFragment = getLastCommandFragment(lineUpToCursor)
+				lineUpToCursor = @editor.getSession().getTextRange range
+				if lineUpToCursor.trim() == '%' or lineUpToCursor.startsWith '\\'
+					# fix in case change is just (un)comment out a package
+					range = new Range end.row, 0, end.row, end.column + 80
+					lineUpToCursor = @editor.getSession().getTextRange range
+				commandFragment = getLastCommandFragment lineUpToCursor
 
 
 				linesContainPackage = _.any(
 				linesContainPackage = _.any(
 					change.lines,
 					change.lines,
@@ -39,20 +43,20 @@ define [
 				lastCommandFragmentIsMeta = lastCommandFragmentIsPackage or lastCommandFragmentIsLabel
 				lastCommandFragmentIsMeta = lastCommandFragmentIsPackage or lastCommandFragmentIsLabel
 
 
 				if linesContainMeta or lastCommandFragmentIsMeta
 				if linesContainMeta or lastCommandFragmentIsMeta
-					@scheduleLoadCurrentDocLabelsFromServer()
+					@scheduleLoadCurrentDocMetaFromServer()
 
 
 			@editor.on "changeSession", (e) =>
 			@editor.on "changeSession", (e) =>
 				e.oldSession.off "change", onChange
 				e.oldSession.off "change", onChange
 				e.session.on "change", onChange
 				e.session.on "change", onChange
 
 
-		loadCurrentDocLabelsFromServer: () ->
-			currentDocId = @$scope.docId
-			@Labels.loadDocLabelsFromServer currentDocId
+		# loadCurrentDocLabelsFromServer: () ->
+		# 	currentDocId = @$scope.docId
+		# 	@Metadata.loadDocMetaFromServer currentDocId
 
 
-		loadDocLabelsFromServer: (docId) ->
-			@Labels.loadDocLabelsFromServer docId
+		loadDocMetaFromServer: (docId) ->
+			@Metadata.loadDocMetaFromServer docId
 
 
-		scheduleLoadCurrentDocLabelsFromServer: () ->
+		scheduleLoadCurrentDocMetaFromServer: () ->
 			# De-bounce loading labels with a timeout
 			# De-bounce loading labels with a timeout
 			currentDocId = @$scope.docId
 			currentDocId = @$scope.docId
 			existingTimeout = @debouncer[currentDocId]
 			existingTimeout = @debouncer[currentDocId]
@@ -61,14 +65,14 @@ define [
 				delete @debouncer[currentDocId]
 				delete @debouncer[currentDocId]
 			@debouncer[currentDocId] = setTimeout(
 			@debouncer[currentDocId] = setTimeout(
 				() =>
 				() =>
-					@loadDocLabelsFromServer currentDocId
+					@loadDocMetaFromServer currentDocId
 					delete @debouncer[currentDocId]
 					delete @debouncer[currentDocId]
 				, 1000
 				, 1000
 				, this
 				, this
 			)
 			)
 
 
 		getAllLabels: () ->
 		getAllLabels: () ->
-			@Labels.getAllLabels()
+			@Metadata.getAllLabels()
 
 
 		getAllPackages: () ->
 		getAllPackages: () ->
-			@Labels.getAllPackages()
+			@Metadata.getAllPackages()

+ 0 - 13
services/web/public/coffee/ide/labels/LabelsManager.coffee

@@ -1,13 +0,0 @@
-define [], () ->
-
-	class LabelsManager
-
-		constructor: (@ide, @$scope, @labels) ->
-
-			@ide.socket.on 'broadcastDocMeta', (data) =>
-				@labels.onBroadcastDocLabels data
-			@$scope.$on 'entity:deleted', @labels.onEntityDeleted
-			@$scope.$on 'file:upload:complete', @labels.fileUploadComplete
-
-		loadProjectLabelsFromServer: () ->
-			@labels.loadProjectLabelsFromServer()

+ 13 - 0
services/web/public/coffee/ide/metadata/MetadataManager.coffee

@@ -0,0 +1,13 @@
+define [], () ->
+
+	class MetadataManager
+
+		constructor: (@ide, @$scope, @metadata) ->
+
+			@ide.socket.on 'broadcastDocMeta', (data) =>
+				@metadata.onBroadcastDocMeta data
+			@$scope.$on 'entity:deleted', @metadata.onEntityDeleted
+			@$scope.$on 'file:upload:complete', @metadata.fileUploadComplete
+
+		loadProjectMetaFromServer: () ->
+			@metadata.loadProjectMetaFromServer()

+ 14 - 14
services/web/public/coffee/ide/labels/services/labels.coffee → services/web/public/coffee/ide/metadata/services/metadata.coffee

@@ -2,46 +2,46 @@ define [
 	"base"
 	"base"
 ], (App) ->
 ], (App) ->
 
 
-	App.factory 'labels', ($http, ide) ->
+	App.factory 'metadata', ($http, ide) ->
 
 
 		state = {documents: {}}
 		state = {documents: {}}
 
 
-		labels = {
+		metadata = {
 			state: state
 			state: state
 		}
 		}
 
 
-		labels.onBroadcastDocLabels = (data) ->
+		metadata.onBroadcastDocMeta = (data) ->
 			if data.docId? and data.meta?
 			if data.docId? and data.meta?
 				state.documents[data.docId] = data.meta
 				state.documents[data.docId] = data.meta
 
 
-		labels.onEntityDeleted = (e, entity) ->
+		metadata.onEntityDeleted = (e, entity) ->
 			if entity.type == 'doc'
 			if entity.type == 'doc'
 				delete state.documents[entity.id]
 				delete state.documents[entity.id]
 
 
-		labels.onFileUploadComplete = (e, upload) ->
+		metadata.onFileUploadComplete = (e, upload) ->
 			if upload.entity_type == 'doc'
 			if upload.entity_type == 'doc'
-				labels.loadDocLabelsFromServer upload.entity_id
+				metadata.loadDocMetaFromServer upload.entity_id
 
 
-		labels.getAllLabels = () ->
+		metadata.getAllLabels = () ->
 			_.flatten(meta.labels for docId, meta of state.documents)
 			_.flatten(meta.labels for docId, meta of state.documents)
 
 
-		labels.getAllPackages = () ->
+		metadata.getAllPackages = () ->
 			_.flatten(meta.packages for docId, meta of state.documents)
 			_.flatten(meta.packages for docId, meta of state.documents)
 
 
-		labels.loadProjectLabelsFromServer = () ->
+		metadata.loadProjectMetaFromServer = () ->
 			$http
 			$http
-				.get("/project/#{window.project_id}/labels")
+				.get("/project/#{window.project_id}/metadata")
 				.then (response) ->
 				.then (response) ->
 					{ data } = response
 					{ data } = response
 					if data.projectMeta
 					if data.projectMeta
 						for docId, docMeta of data.projectMeta
 						for docId, docMeta of data.projectMeta
-							state.documents[docId] = docMeta.labels
+							state.documents[docId] = docMeta
 
 
-		labels.loadDocLabelsFromServer = (docId) ->
+		metadata.loadDocMetaFromServer = (docId) ->
 			$http
 			$http
 				.post(
 				.post(
-					"/project/#{window.project_id}/doc/#{docId}/labels",
+					"/project/#{window.project_id}/doc/#{docId}/metadata",
 					{_csrf: window.csrfToken}
 					{_csrf: window.csrfToken}
 				)
 				)
 
 
-		return labels
+		return metadata

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff