diff options
| author | Ruin0x11 | 2020-05-04 00:09:33 -0700 |
|---|---|---|
| committer | Ruin0x11 | 2020-05-04 00:09:33 -0700 |
| commit | e6bf102bc03504d9abc584f15da70a5fed7fa950 (patch) | |
| tree | 346cbeceeb03185b0fee1c9d96a9e7697726575f /client/js/views/pool_edit_view.js | |
| parent | d59ecb8e230a55e6875076824723580bd3f4419b (diff) | |
Add list of posts to pools
Diffstat (limited to 'client/js/views/pool_edit_view.js')
| -rw-r--r-- | client/js/views/pool_edit_view.js | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/client/js/views/pool_edit_view.js b/client/js/views/pool_edit_view.js index fac8430..7cd8bc9 100644 --- a/client/js/views/pool_edit_view.js +++ b/client/js/views/pool_edit_view.js @@ -4,6 +4,7 @@ const events = require('../events.js'); const api = require('../api.js'); const misc = require('../util/misc.js'); const views = require('../util/views.js'); +const Post = require('../models/post.js'); const template = views.getTemplate('pool-edit'); @@ -22,8 +23,13 @@ class PoolEditView extends events.EventTarget { 'input', e => this._evtNameInput(e)); } + if (this._postsFieldNode) { + this._postsFieldNode.addEventListener( + 'input', e => this._evtPostsInput(e)); + } + for (let node of this._formNode.querySelectorAll( - 'input, select, textarea')) { + 'input, select, textarea, posts')) { node.addEventListener( 'change', e => { this.dispatchEvent(new CustomEvent('change')); @@ -74,6 +80,21 @@ class PoolEditView extends events.EventTarget { this._namesFieldNode.setCustomValidity(''); } + _evtPostsInput(e) { + const regex = /^\d+$/; + const list = misc.splitByWhitespace(this._postsFieldNode.value); + + for (let item of list) { + if (!regex.test(item)) { + this._postsFieldNode.setCustomValidity( + `Pool ID "${item}" is not an integer.`); + return; + } + } + + this._postsFieldNode.setCustomValidity(''); + } + _evtSubmit(e) { e.preventDefault(); this.dispatchEvent(new CustomEvent('submit', { @@ -91,6 +112,10 @@ class PoolEditView extends events.EventTarget { description: this._descriptionFieldNode ? this._descriptionFieldNode.value : undefined, + + posts: this._postsFieldNode ? + misc.splitByWhitespace(this._postsFieldNode.value) : + undefined, }, })); } @@ -110,6 +135,10 @@ class PoolEditView extends events.EventTarget { get _descriptionFieldNode() { return this._formNode.querySelector('.description textarea'); } + + get _postsFieldNode() { + return this._formNode.querySelector('.posts input'); + } } module.exports = PoolEditView; |