ページURLが他と重複してたらエラーを投げるように (#5354)

* [Page]nameが重複したときの処理を追加

* page-editor側のerr.idにuuidを適用

* refactor

* uuidをわけた
This commit is contained in:
Oni-Men
2019-08-28 08:00:05 +09:00
committed by syuilo
parent 85721065fd
commit 2d6d9f30e1
5 changed files with 63 additions and 23 deletions

View File

@ -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')
});
}
});
}
},