| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- define [
- "base"
- ], (App) ->
- MAX_PROJECT_NAME_LENGTH = 150
- App.controller "ProjectNameController", ["$scope", "$element", "settings", "ide", ($scope, $element, settings, ide) ->
- projectNameReadOnlyEl = $element.find(".name")[0]
- $scope.state =
- renaming: false
- overflowed: false
- $scope.inputs = {}
- $scope.startRenaming = () ->
- $scope.inputs.name = $scope.project.name
- $scope.state.renaming = true
- $scope.$emit "project:rename:start"
- $scope.finishRenaming = () ->
- $scope.state.renaming = false
- newName = $scope.inputs.name
- if $scope.project.name == newName
- return
- oldName = $scope.project.name
- $scope.project.name = newName
- settings.saveProjectSettings({name: $scope.project.name})
- .catch (response) ->
- { data, status } = response
- $scope.project.name = oldName
- if status == 400
- ide.showGenericMessageModal("Error renaming project", data)
- else
- ide.showGenericMessageModal("Error renaming project", "Please try again in a moment")
- ide.socket.on "projectNameUpdated", (name) ->
- $scope.$apply () ->
- $scope.project.name = name
- $scope.$watch "project.name", (name) ->
- if name?
- window.document.title = name + " - Online LaTeX Editor ShareLaTeX"
- $scope.$applyAsync () ->
- # This ensures that the element is measured *after* the binding is done (i.e. project name is rendered).
- $scope.state.overflowed = (projectNameReadOnlyEl.scrollWidth > projectNameReadOnlyEl.clientWidth)
- ]
|