diff --git a/services/web/app/views/project/editor/new-file-modal.pug b/services/web/app/views/project/editor/new-file-modal.pug index 969b1e2564..17cca3bc5a 100644 --- a/services/web/app/views/project/editor/new-file-modal.pug +++ b/services/web/app/views/project/editor/new-file-modal.pug @@ -149,7 +149,10 @@ script(type='text/ng-template', id='newFileModalTemplate') ng-model="data.name" name="name" ) - div.alert.alert-danger.row-spaced-small(ng-if="state.error") Error, something went wrong! + div.alert.alert-danger.row-spaced-small(ng-if="error") + div(ng-switch="error") + span(ng-switch-when="already exists") #{translate("file_already_exists")} + span(ng-switch-default) Error, something went wrong! div(ng-if="type == 'url'", ng-controller="UrlLinkedFileModalController") form(novalidate, name="newLinkedFileForm") label(for="url") URL to fetch the file from diff --git a/services/web/public/src/directives/focus.js b/services/web/public/src/directives/focus.js index 923d5c73fe..0d8c7400b4 100644 --- a/services/web/public/src/directives/focus.js +++ b/services/web/public/src/directives/focus.js @@ -80,9 +80,8 @@ define(['base'], function(App) { } })) - return (selectName = function(element) { - // Select up to last '.'. I.e. everything - // except the file extension + selectName = function(element) { + // Select up to last '.'. I.e. everything except the file extension element.focus() const name = element.val() if (element[0].setSelectionRange != null) { @@ -92,5 +91,5 @@ define(['base'], function(App) { } return element[0].setSelectionRange(0, selectionEnd) } - }) + } }) diff --git a/services/web/public/src/ide/file-tree/controllers/FileTreeController.js b/services/web/public/src/ide/file-tree/controllers/FileTreeController.js index 126025067a..9e866bbeb4 100644 --- a/services/web/public/src/ide/file-tree/controllers/FileTreeController.js +++ b/services/web/public/src/ide/file-tree/controllers/FileTreeController.js @@ -148,7 +148,7 @@ define(['base'], function(App) { const validate = function() { const { name } = $scope.inputs - return ($scope.state.valid = name != null && name.length > 0) + $scope.state.valid = name != null && name.length > 0 } $scope.$watch('inputs.name', validate) @@ -169,7 +169,7 @@ define(['base'], function(App) { .catch(function(response) { const { data } = response $scope.error = data - return ($scope.state.inflight = false) + $scope.state.inflight = false }) }) } @@ -338,7 +338,7 @@ define(['base'], function(App) { } const fileName = newVal.split('/').reverse()[0] if (fileName) { - return ($scope.data.name = fileName) + $scope.data.name = fileName } }) @@ -352,14 +352,14 @@ define(['base'], function(App) { $scope.data.projects, p => p._id === $scope.data.selectedProjectId ) - return ($scope.data.name = + $scope.data.name = (project != null ? project.name : undefined) != null ? `${project.name}.pdf` - : 'output.pdf') + : 'output.pdf' } else { const fileName = newVal.split('/').reverse()[0] if (fileName) { - return ($scope.data.name = fileName) + $scope.data.name = fileName } } }) @@ -418,7 +418,7 @@ define(['base'], function(App) { const validate = function() { const { state } = $scope const { data } = $scope - return ($scope.state.valid = + $scope.state.valid = !state.inFlight.projects && !state.inFlight.entities && data.projects && @@ -429,7 +429,7 @@ define(['base'], function(App) { ($scope.state.isOutputFilesMode && data.projectOutputFiles && data.selectedProjectOutputFile)) && - data.name) + data.name } $scope.$watch('state', validate, true) $scope.$watch('data', validate, true) @@ -519,7 +519,7 @@ define(['base'], function(App) { } } _setInFlight('create') - return ide.fileTreeManager + ide.fileTreeManager .createLinkedFile(name, $scope.parent_folder, provider, payload) .then(function() { _reset({ err: false }) @@ -527,7 +527,7 @@ define(['base'], function(App) { }) .catch(function(response) { const { data } = response - return _reset({ err: true }) + $scope.error = data }) }) }