summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2020-12-19 21:41:00 +0900
committersyuilo <syuilotan@yahoo.co.jp>2020-12-19 21:41:00 +0900
commitcdc07945af29a4ec3f7e783c26aa1cd0c1e444e8 (patch)
tree349271f404dbf2dd54785a4b684f6743e1f13812 /src
parentpageの選択肢が動作していない問題を修正 (diff)
downloadsharkey-cdc07945af29a4ec3f7e783c26aa1cd0c1e444e8.tar.gz
sharkey-cdc07945af29a4ec3f7e783c26aa1cd0c1e444e8.tar.bz2
sharkey-cdc07945af29a4ec3f7e783c26aa1cd0c1e444e8.zip
Pageの複製を実装
Diffstat (limited to 'src')
-rw-r--r--src/client/pages/page-editor/page-editor.vue27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/client/pages/page-editor/page-editor.vue b/src/client/pages/page-editor/page-editor.vue
index d33dd1b7fe..f2f6589ab0 100644
--- a/src/client/pages/page-editor/page-editor.vue
+++ b/src/client/pages/page-editor/page-editor.vue
@@ -5,6 +5,7 @@
<div class="buttons" style="margin: 16px 0;">
<MkButton inline @click="save" primary class="save"><Fa :icon="faSave"/> {{ $t('save') }}</MkButton>
+ <MkButton inline @click="duplicate" class="duplicate" v-if="pageId"><Fa :icon="faCopy"/> {{ $t('duplicate') }}</MkButton>
<MkButton inline @click="del" class="delete" v-if="pageId"><Fa :icon="faTrashAlt"/> {{ $t('delete') }}</MkButton>
</div>
@@ -93,7 +94,7 @@ import 'prismjs/components/prism-clike';
import 'prismjs/components/prism-javascript';
import 'prismjs/themes/prism-okaidia.css';
import 'vue-prism-editor/dist/prismeditor.min.css';
-import { faICursor, faPlus, faMagic, faCog, faCode, faExternalLinkSquareAlt, faPencilAlt } from '@fortawesome/free-solid-svg-icons';
+import { faICursor, faPlus, faMagic, faCog, faCode, faExternalLinkSquareAlt, faPencilAlt, faCopy } from '@fortawesome/free-solid-svg-icons';
import { faSave, faStickyNote, faTrashAlt } from '@fortawesome/free-regular-svg-icons';
import { v4 as uuid } from 'uuid';
import XVariable from './page-editor.script-block.vue';
@@ -159,7 +160,7 @@ export default defineComponent({
hpml: null,
script: '',
url,
- faPlus, faICursor, faSave, faStickyNote, faMagic, faCog, faTrashAlt, faExternalLinkSquareAlt, faCode
+ faPlus, faICursor, faSave, faStickyNote, faMagic, faCog, faTrashAlt, faExternalLinkSquareAlt, faCode, faCopy
};
},
@@ -231,8 +232,8 @@ export default defineComponent({
},
methods: {
- save() {
- const options = {
+ getSaveOptions() {
+ return {
title: this.title.trim(),
name: this.name.trim(),
summary: this.summary,
@@ -244,6 +245,10 @@ export default defineComponent({
variables: this.variables,
eyeCatchingImageId: this.eyeCatchingImageId,
};
+ },
+
+ save() {
+ const options = this.getSaveOptions();
const onError = err => {
if (err.id == '3d81ceae-475f-4600-b2a8-2bc116157532') {
@@ -305,6 +310,20 @@ export default defineComponent({
});
},
+ duplicate() {
+ this.title = this.title + ' - copy';
+ this.name = this.name + '-copy';
+ os.api('pages/create', this.getSaveOptions()).then(page => {
+ this.pageId = page.id;
+ this.currentName = this.name.trim();
+ os.dialog({
+ type: 'success',
+ text: this.$t('_pages.created')
+ });
+ this.$router.push(`/pages/edit/${this.pageId}`);
+ });
+ },
+
async add() {
const { canceled, result: type } = await os.dialog({
type: null,