mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-07 20:40:26 +08:00
Merge pull request #7624 from aignatov-bio/ai-sci-10766-update-file-renaming
Remove extension from file renaming [SCI-10766]
This commit is contained in:
commit
1c70e34d55
4 changed files with 21 additions and 18 deletions
|
@ -323,7 +323,7 @@ class AssetsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
ActiveRecord::Base.transaction do
|
ActiveRecord::Base.transaction do
|
||||||
old_name = @asset.name
|
old_name = @asset.file_name
|
||||||
@asset.last_modified_by = current_user
|
@asset.last_modified_by = current_user
|
||||||
@asset.rename_file(new_name)
|
@asset.rename_file(new_name)
|
||||||
@asset.save!
|
@asset.save!
|
||||||
|
|
|
@ -44,8 +44,7 @@
|
||||||
<Teleport to="body">
|
<Teleport to="body">
|
||||||
<RenameAttachmentModal
|
<RenameAttachmentModal
|
||||||
v-if="renameModal"
|
v-if="renameModal"
|
||||||
:url_path="attachment.attributes.urls.rename"
|
:attachment="attachment"
|
||||||
:fileName="attachment.attributes.file_name"
|
|
||||||
@attachment:update="$emit('attachment:update', $event)"
|
@attachment:update="$emit('attachment:update', $event)"
|
||||||
@close="renameModal = false"
|
@close="renameModal = false"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div ref="modal" @keydown.esc="close" class="modal" id="renameAttachmentModal" tabindex="-1" role="dialog">
|
<div ref="modal" @keydown.esc="close" class="modal" id="renameAttachmentModal" tabindex="-1" role="dialog">
|
||||||
<div class="modal-dialog modal-md" role="document">
|
<div class="modal-dialog modal-sm" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="sn-icon sn-icon-close"></i></button>
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="sn-icon sn-icon-close"></i></button>
|
||||||
|
@ -9,9 +9,14 @@
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p>{{ i18n.t('assets.from_clipboard.file_name')}}</p>
|
<label class="sci-label">
|
||||||
<div class="sci-input-container" :class="{ 'error': error }" :data-error-text="error">
|
{{ i18n.t('assets.from_clipboard.file_name')}}
|
||||||
<input ref="input" v-model="name" type="text" class="sci-input-field" @keyup.enter="renameAttachment(name)" required="true" />
|
</label>
|
||||||
|
<div class="flex gap-1 items-center">
|
||||||
|
<div class="sci-input-container" :class="{ 'error': error }" :data-error-text="error">
|
||||||
|
<input ref="input" v-model="name" type="text" class="sci-input-field" @keyup.enter="renameAttachment(name)" required="true" />
|
||||||
|
</div>
|
||||||
|
<div class="shrink-0">.{{ this.attachment.attributes.file_extension }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
@ -31,14 +36,10 @@ export default {
|
||||||
name: 'RenameAttachmentModal',
|
name: 'RenameAttachmentModal',
|
||||||
mixins: [modalMixin],
|
mixins: [modalMixin],
|
||||||
props: {
|
props: {
|
||||||
url_path: {
|
attachment: {
|
||||||
type: String,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
fileName: {
|
|
||||||
type: String,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -47,7 +48,7 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.name = this.fileName;
|
this.name = this.attachment.attributes.file_name_without_extension;
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
name() {
|
name() {
|
||||||
|
@ -71,10 +72,9 @@ export default {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const payload = { asset: { name: newName } };
|
const payload = { asset: { name: `${newName}.${this.attachment.attributes.file_extension}` } };
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await axios.patch(this.url_path, payload);
|
const response = await axios.patch(this.attachment.attributes.urls.rename, payload);
|
||||||
this.$emit('attachment:update', response.data.data);
|
this.$emit('attachment:update', response.data.data);
|
||||||
this.close();
|
this.close();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
|
@ -9,7 +9,7 @@ class AssetSerializer < ActiveModel::Serializer
|
||||||
include ApplicationHelper
|
include ApplicationHelper
|
||||||
|
|
||||||
attributes :file_name, :file_extension, :view_mode, :icon, :urls, :updated_at_formatted,
|
attributes :file_name, :file_extension, :view_mode, :icon, :urls, :updated_at_formatted,
|
||||||
:file_size, :medium_preview, :large_preview, :asset_type, :wopi,
|
:file_size, :medium_preview, :large_preview, :asset_type, :wopi, :file_name_without_extension,
|
||||||
:wopi_context, :pdf_previewable, :file_size_formatted, :asset_order,
|
:wopi_context, :pdf_previewable, :file_size_formatted, :asset_order,
|
||||||
:updated_at, :metadata, :image_editable, :image_context, :pdf, :attached, :parent_type,
|
:updated_at, :metadata, :image_editable, :image_context, :pdf, :attached, :parent_type,
|
||||||
:edit_version_range
|
:edit_version_range
|
||||||
|
@ -23,6 +23,10 @@ class AssetSerializer < ActiveModel::Serializer
|
||||||
object.render_file_name
|
object.render_file_name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def file_name_without_extension
|
||||||
|
File.basename(object.file_name, '.*')
|
||||||
|
end
|
||||||
|
|
||||||
def file_extension
|
def file_extension
|
||||||
File.extname(object.file_name)[1..]
|
File.extname(object.file_name)[1..]
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue