summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorOni-Men <sensyaheis@gmail.com>2019-08-28 08:00:05 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-08-28 08:00:05 +0900
commit2d6d9f30e1dc8e902ecaa9a9f6e2a4a6a73b6fe9 (patch)
treebc19d2dfbf0a6797a28e6bca267060d0fd074ed6 /src/client
parentSave memo automatically (#5351) (diff)
downloadsharkey-2d6d9f30e1dc8e902ecaa9a9f6e2a4a6a73b6fe9.tar.gz
sharkey-2d6d9f30e1dc8e902ecaa9a9f6e2a4a6a73b6fe9.tar.bz2
sharkey-2d6d9f30e1dc8e902ecaa9a9f6e2a4a6a73b6fe9.zip
ページURLが他と重複してたらエラーを投げるように (#5354)
* [Page]nameが重複したときの処理を追加 * page-editor側のerr.idにuuidを適用 * refactor * uuidをわけた
Diffstat (limited to 'src/client')
-rw-r--r--src/client/app/common/views/pages/page-editor/page-editor.vue54
1 files changed, 31 insertions, 23 deletions
diff --git a/src/client/app/common/views/pages/page-editor/page-editor.vue b/src/client/app/common/views/pages/page-editor/page-editor.vue
index b29bbd4d35..b8db59da41 100644
--- a/src/client/app/common/views/pages/page-editor/page-editor.vue
+++ b/src/client/app/common/views/pages/page-editor/page-editor.vue
@@ -220,37 +220,38 @@ export default Vue.extend({
methods: {
save() {
+ const options = {
+ title: this.title.trim(),
+ name: this.name.trim(),
+ summary: this.summary,
+ font: this.font,
+ hideTitleWhenPinned: this.hideTitleWhenPinned,
+ alignCenter: this.alignCenter,
+ content: this.content,
+ variables: this.variables,
+ eyeCatchingImageId: this.eyeCatchingImageId,
+ };
+
if (this.pageId) {
- this.$root.api('pages/update', {
- pageId: this.pageId,
- title: this.title.trim(),
- name: this.name.trim(),
- summary: this.summary,
- font: this.font,
- hideTitleWhenPinned: this.hideTitleWhenPinned,
- alignCenter: this.alignCenter,
- content: this.content,
- variables: this.variables,
- eyeCatchingImageId: this.eyeCatchingImageId,
- }).then(page => {
+ options.pageId = this.pageId;
+ this.$root.api('pages/update', options)
+ .then(page => {
this.currentName = this.name.trim();
this.$root.dialog({
type: 'success',
text: this.$t('page-updated')
});
+ }).catch(err => {
+ if(err.id == '2298a392-d4a1-44c5-9ebb-ac1aeaa5a9ab'){
+ this.$root.dialog({
+ type: 'error',
+ text: this.$t('name-already-exists')
+ });
+ }
});
} else {
- this.$root.api('pages/create', {
- title: this.title.trim(),
- name: this.name.trim(),
- summary: this.summary,
- font: this.font,
- hideTitleWhenPinned: this.hideTitleWhenPinned,
- alignCenter: this.alignCenter,
- content: this.content,
- variables: this.variables,
- eyeCatchingImageId: this.eyeCatchingImageId,
- }).then(page => {
+ this.$root.api('pages/create', options)
+ .then(page => {
this.pageId = page.id;
this.currentName = this.name.trim();
this.$root.dialog({
@@ -258,6 +259,13 @@ export default Vue.extend({
text: this.$t('page-created')
});
this.$router.push(`/i/pages/edit/${this.pageId}`);
+ }).catch(err => {
+ if(err.id == '4650348e-301c-499a-83c9-6aa988c66bc1'){
+ this.$root.dialog({
+ type: 'error',
+ text: this.$t('name-already-exists')
+ });
+ }
});
}
},