diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 4d65723bb3e4e..ef95fd8eb6393 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1939,7 +1939,7 @@ } if (options.scrollTo) { - this.scrollTo(fileData.name); + this.scrollTo(fileData.name, options.showDetailsView !== undefined ? options.showDetailsView : true); } // defaults to true if not defined @@ -3060,7 +3060,7 @@ * * @since 8.2 */ - createDirectory: function(name) { + createDirectory: function(name, options) { var self = this; var deferred = $.Deferred(); var promise = deferred.promise(); @@ -3076,7 +3076,8 @@ this.filesClient.createDirectory(targetPath) .done(function() { - self.addAndFetchFileInfo(targetPath, '', {scrollTo:true}).then(function(status, data) { + options = _.extend({scrollTo: true}, options || {}); + self.addAndFetchFileInfo(targetPath, '', options).then(function(status, data) { deferred.resolve(status, data); }, function() { OC.Notification.show(t('files', 'Could not create folder "{dir}"', @@ -3087,8 +3088,9 @@ .fail(function(createStatus) { // method not allowed, folder might exist already if (createStatus === 405) { + options = _.extend({scrollTo: true}, options || {}); // add it to the list, for completeness - self.addAndFetchFileInfo(targetPath, '', {scrollTo:true}) + self.addAndFetchFileInfo(targetPath, '', options) .done(function(status, data) { OC.Notification.show(t('files', 'Could not create folder "{dir}" because it already exists', {dir: name}), {type: 'error'} @@ -3326,11 +3328,11 @@ this.$el.find('.mask').remove(); this.$table.removeClass('hidden'); }, - scrollTo:function(file) { + scrollTo:function(file, showDetailsView = true) { if (!_.isArray(file)) { file = [file]; } - if (file.length === 1) { + if (file.length === 1 && showDetailsView) { _.defer(function() { this.showDetailsView(file[0]); }.bind(this)); @@ -3546,7 +3548,10 @@ }, getUniqueName: function(name) { - if (this.findFileEl(name).exists()) { + var fileNamesOld = this.files.findIndex(function(el) { + return el.name === name + }) + if (fileNamesOld !== -1) { var numMatch; var parts=name.split('.'); var extension = ""; diff --git a/apps/files/js/newfilemenu.js b/apps/files/js/newfilemenu.js index b84973ef9f985..72178398f37c0 100644 --- a/apps/files/js/newfilemenu.js +++ b/apps/files/js/newfilemenu.js @@ -52,11 +52,11 @@ iconClass: 'icon-folder', fileType: 'folder', actionHandler: function(name) { - const uniqueName = self.fileList.getUniqueName(name); - let tempPromise = self.fileList.createDirectory(uniqueName); + const uniqueName = self.fileList.getUniqueName(name) + let tempPromise = self.fileList.createDirectory(uniqueName, { showDetailsView: false }) Promise.all([tempPromise]).then(() => { - self.fileList.rename(uniqueName); - }); + self.fileList.rename(uniqueName) + }) } }]; diff --git a/apps/files/src/views/TemplatePicker.vue b/apps/files/src/views/TemplatePicker.vue index 081eb70b0d3c9..76a81dd81b24f 100644 --- a/apps/files/src/views/TemplatePicker.vue +++ b/apps/files/src/views/TemplatePicker.vue @@ -211,7 +211,8 @@ export default { const fileInfo = response.data.ocs.data this.logger.debug('Created new file', fileInfo) - await fileList?.addAndFetchFileInfo(this.name) + const options = _.extend({ scrollTo: true }, { showDetailsView: false } || {}) + await fileList?.addAndFetchFileInfo(this.name, undefined, options) fileList.rename(this.name) this.close() } catch (error) {