diff options
| author | Hunternif <hunternif@gmail.com> | 2019-05-07 21:47:08 +0700 |
|---|---|---|
| committer | Hunternif <hunternif@gmail.com> | 2019-05-07 21:47:08 +0700 |
| commit | 684e5e5ddcb69cb80742dc6b43e5d6ea092d89d0 (patch) | |
| tree | 9148e62774897437baf66eaa6ae952d4e8be3095 /client/js/controllers | |
| parent | 67ba7981b6eeb859bbb69277ec9bd77d16903c0d (diff) | |
client: tags with categories are saved immediately after input, in all places: upload page, post editor, bulk tag editor
Diffstat (limited to 'client/js/controllers')
| -rw-r--r-- | client/js/controllers/post_list_controller.js | 16 | ||||
| -rw-r--r-- | client/js/controllers/post_main_controller.js | 23 | ||||
| -rw-r--r-- | client/js/controllers/post_upload_controller.js | 23 |
3 files changed, 12 insertions, 50 deletions
diff --git a/client/js/controllers/post_list_controller.js b/client/js/controllers/post_list_controller.js index a7a5793..9dffbf2 100644 --- a/client/js/controllers/post_list_controller.js +++ b/client/js/controllers/post_list_controller.js @@ -4,6 +4,7 @@ const router = require('../router.js'); const api = require('../api.js'); const settings = require('../models/settings.js'); const uri = require('../util/uri.js'); +const tags = require('../tags.js'); const PostList = require('../models/post_list.js'); const topNavigation = require('../models/top_navigation.js'); const PageController = require('../controllers/page_controller.js'); @@ -66,20 +67,27 @@ class PostListController { router.showNoDispatch( uri.formatClientLink('posts', e.detail.parameters)); Object.assign(this._ctx.parameters, e.detail.parameters); + this._bulkEditTags.map(tagName => + tags.resolveTagAndCategory(tagName) + .catch(error => window.alert(error.message)) + ); this._syncPageController(); } _evtTag(e) { Promise.all( - this._bulkEditTags.map(tag => - e.detail.post.tags.addByName(tag))) - .then(e.detail.post.save()) + this._bulkEditTags.map(tag => { + let tagData = tags.parseTagAndCategory(tag); + return e.detail.post.tags.addByName(tagData.name); + })) + .then(() => e.detail.post.save()) .catch(error => window.alert(error.message)); } _evtUntag(e) { for (let tag of this._bulkEditTags) { - e.detail.post.tags.removeByName(tag); + let tagData = tags.parseTagAndCategory(tag); + e.detail.post.tags.removeByName(tagData.name); } e.detail.post.save().catch(error => window.alert(error.message)); } diff --git a/client/js/controllers/post_main_controller.js b/client/js/controllers/post_main_controller.js index 2adf33b..1f802c6 100644 --- a/client/js/controllers/post_main_controller.js +++ b/client/js/controllers/post_main_controller.js @@ -153,29 +153,6 @@ class PostMainController extends BasePostController { } post.save() .then(() => { - this._view.sidebarControl.showSuccess('Post saved.'); - // now save the new tags with categories - if (!e.detail.newTags) { - return Promise.resolve(); - } - let tagPromises = []; - for (let newTag of e.detail.newTags) { - // load the tag that was created during updating the post - tagPromises.push( - Tag.get(newTag.names[0]).then(tag => { - tag.category = newTag.category; - return tag.save(); - } - ).then(() => { - e.detail.newTags.removeByName(newTag.names[0]); - }, error => { - this._view.sidebarControl.showError(error.message); - }) - ); - } - return Promise.all(tagPromises); - }) - .then(() => { this._view.sidebarControl.enableForm(); misc.disableExitConfirmation(); }, error => { diff --git a/client/js/controllers/post_upload_controller.js b/client/js/controllers/post_upload_controller.js index 4982530..f176803 100644 --- a/client/js/controllers/post_upload_controller.js +++ b/client/js/controllers/post_upload_controller.js @@ -65,29 +65,6 @@ class PostUploadController { uploadable, e.detail.skipDuplicates, e.detail.copyTagsToOriginals)), Promise.resolve()) .then(() => { - // now save the new tags with categories - //TODO: re-use this code in post_main_controller.js - if (!e.detail.newTags) { - return Promise.resolve(); - } - let tagPromises = []; - for (let newTag of e.detail.newTags) { - // load the tag that was created during updating the post - tagPromises.push( - Tag.get(newTag.names[0]).then(tag => { - tag.category = newTag.category; - return tag.save(); - } - ).then(() => { - e.detail.newTags.removeByName(newTag.names[0]); - }, error => { - tagErrors.push(error.message); - }) - ); - } - return Promise.all(tagPromises); - }) - .then(() => { this._view.clearMessages(); misc.disableExitConfirmation(); const ctx = router.show(uri.formatClientLink('posts')); |