/* eslint-disable max-len, no-return-assign, no-unused-vars, */ // TODO: This file was created by bulk-decaffeinate. // Fix any style issues and re-enable lint. /* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ import App from '../../../base' const MAX_PROJECT_NAME_LENGTH = 150 export default App.controller( 'ProjectNameController', function ($scope, $element, settings, ide) { const projectNameReadOnlyEl = $element.find('.name')[0] $scope.state = { renaming: false, overflowed: false, } $scope.inputs = {} $scope.startRenaming = function () { $scope.inputs.name = $scope.project.name $scope.state.renaming = true return $scope.$emit('project:rename:start') } $scope.finishRenaming = function () { $scope.state.renaming = false const newName = $scope.inputs.name if ($scope.project.name === newName) { return } const oldName = $scope.project.name $scope.project.name = newName return settings .saveProjectSettings({ name: $scope.project.name }) .catch(function (response) { const { data, status } = response $scope.project.name = oldName if (status === 400) { return ide.showGenericMessageModal('Error renaming project', data) } else { return ide.showGenericMessageModal( 'Error renaming project', 'Please try again in a moment' ) } }) } ide.socket.on('projectNameUpdated', name => $scope.$apply(() => ($scope.project.name = name)) ) return $scope.$watch('project.name', function (name) { if (name != null) { window.document.title = name + ` - Online LaTeX Editor ${ExposedSettings.appName}` return $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) ) } }) } )