Skip to content

Commit 6173a94

Browse files
committed
show progress when api calling
1 parent 54802fd commit 6173a94

File tree

2 files changed

+36
-8
lines changed

2 files changed

+36
-8
lines changed

note_client/src/components/Note.vue

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,17 @@
5555
centered>
5656
削除してもよろしいですか?
5757
</b-modal>
58+
<b-modal
59+
ref="progressModal"
60+
hide-header
61+
hide-footer
62+
no-fade
63+
no-close-on-backdrop
64+
no-close-on-esc
65+
centered>
66+
{{ message }}
67+
<b-progress :value="10" :max="10" animated></b-progress>
68+
</b-modal>
5869
</div>
5970
</template>
6071

@@ -75,6 +86,13 @@ module.exports = {
7586
this.message = message
7687
this.$refs.errorModal.show()
7788
},
89+
showProgress(message) {
90+
this.message = message
91+
this.$refs.progressModal.show()
92+
},
93+
hideProgress() {
94+
this.$refs.progressModal.hide()
95+
},
7896
selectPage(page) {
7997
let result, message
8098
[result, message] = this.controller.selectPage(page)
@@ -83,18 +101,27 @@ module.exports = {
83101
}
84102
},
85103
save() {
86-
let result, message
87-
[result, message] = this.controller.save(
104+
let result, message, promise
105+
[result, message, promise] = this.controller.save(
88106
csrfToken.getCsrfTokenFromCookie(document.cookie))
89107
if (!result) {
90108
this.showError(message)
109+
} else {
110+
this.showProgress(message)
111+
promise.then(this.hideProgress)
91112
}
92113
},
93114
revert() {
94115
this.controller.revert()
95116
},
96117
destroy() {
97-
this.controller.destroy(csrfToken.getCsrfTokenFromCookie(document.cookie))
118+
let result, message, promise
119+
[result, message, promise] = this.controller.destroy(
120+
csrfToken.getCsrfTokenFromCookie(document.cookie))
121+
if (result && promise) {
122+
this.showProgress(message)
123+
promise.then(this.hideProgress)
124+
}
98125
},
99126
create() {
100127
this.controller.create()

note_client/src/controller/note.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ class NoteController {
3232

3333
save(csrfToken=null) {
3434
if (!this.selectedPage.title || !this.selectedPage.content) {
35-
return [false, "タイトルと内容は必須です。"]
35+
return [false, "タイトルと内容は必須です。", null]
3636
}
37-
this.pageApi.save(this.selectedPage, csrfToken)
37+
let promise = this.pageApi.save(this.selectedPage, csrfToken)
3838
.then((instance) => {
3939
Object.assign(this.selectedPage, instance)
4040
})
41-
return [true, null]
41+
return [true, "保存しています...", promise]
4242
}
4343

4444
revert() {
@@ -51,13 +51,14 @@ class NoteController {
5151
if (this.selectedPage.id == null) {
5252
this.pages.pop()
5353
this.selectedPage = null
54-
return
54+
return [true, null, null]
5555
}
56-
this.pageApi.destroy(this.selectedPage, csrfToken)
56+
let promise = this.pageApi.destroy(this.selectedPage, csrfToken)
5757
.then(() => {
5858
this.selectedPage = null
5959
this.load()
6060
})
61+
return [true, "削除しています...", promise]
6162
}
6263

6364
create(csrfToken=null) {

0 commit comments

Comments
 (0)