summaryrefslogtreecommitdiff
path: root/client/js/controllers
diff options
context:
space:
mode:
authorRuin0x11 <ipickering2@gmail.com>2020-05-04 00:09:33 -0700
committerRuin0x11 <ipickering2@gmail.com>2020-05-04 00:09:33 -0700
commite6bf102bc03504d9abc584f15da70a5fed7fa950 (patch)
tree346cbeceeb03185b0fee1c9d96a9e7697726575f /client/js/controllers
parentd59ecb8e230a55e6875076824723580bd3f4419b (diff)
Add list of posts to pools
Diffstat (limited to 'client/js/controllers')
-rw-r--r--client/js/controllers/pool_controller.js8
-rw-r--r--client/js/controllers/pool_create_controller.js6
-rw-r--r--client/js/controllers/pool_list_controller.js10
-rw-r--r--client/js/controllers/post_list_controller.js7
-rw-r--r--client/js/controllers/tag_list_controller.js7
-rw-r--r--client/js/controllers/user_list_controller.js3
6 files changed, 24 insertions, 17 deletions
diff --git a/client/js/controllers/pool_controller.js b/client/js/controllers/pool_controller.js
index 8623cf8..99e2e9b 100644
--- a/client/js/controllers/pool_controller.js
+++ b/client/js/controllers/pool_controller.js
@@ -5,6 +5,7 @@ const api = require('../api.js');
const misc = require('../util/misc.js');
const uri = require('../util/uri.js');
const Pool = require('../models/pool.js');
+const Post = require('../models/post.js');
const PoolCategoryList = require('../models/pool_category_list.js');
const topNavigation = require('../models/top_navigation.js');
const PoolView = require('../views/pool_view.js');
@@ -42,6 +43,7 @@ class PoolController {
canEditNames: api.hasPrivilege('pools:edit:names'),
canEditCategory: api.hasPrivilege('pools:edit:category'),
canEditDescription: api.hasPrivilege('pools:edit:description'),
+ canEditPosts: api.hasPrivilege('pools:edit:posts'),
canMerge: api.hasPrivilege('pools:merge'),
canDelete: api.hasPrivilege('pools:delete'),
categories: categories,
@@ -84,6 +86,12 @@ class PoolController {
if (e.detail.description !== undefined) {
e.detail.pool.description = e.detail.description;
}
+ if (e.detail.posts !== undefined) {
+ e.detail.pool.posts.clear()
+ for (let post_id of e.detail.posts) {
+ e.detail.pool.posts.add(Post.fromResponse({ id: parseInt(post_id) }))
+ }
+ }
e.detail.pool.save().then(() => {
this._view.showSuccess('Pool saved.');
this._view.enableForm();
diff --git a/client/js/controllers/pool_create_controller.js b/client/js/controllers/pool_create_controller.js
index 0aa3c76..ef6dded 100644
--- a/client/js/controllers/pool_create_controller.js
+++ b/client/js/controllers/pool_create_controller.js
@@ -39,7 +39,7 @@ class PoolCreateController {
_evtCreate(e) {
this._view.clearMessages();
this._view.disableForm();
- e.detail.pool.save()
+ api.post(uri.formatApiLink('pool'), e.detail)
.then(() => {
this._view.clearMessages();
misc.disableExitConfirmation();
@@ -50,10 +50,6 @@ class PoolCreateController {
this._view.enableForm();
});
}
-
- _evtChange(e) {
- misc.enableExitConfirmation();
- }
}
module.exports = router => {
diff --git a/client/js/controllers/pool_list_controller.js b/client/js/controllers/pool_list_controller.js
index 626dc1e..1de3926 100644
--- a/client/js/controllers/pool_list_controller.js
+++ b/client/js/controllers/pool_list_controller.js
@@ -13,26 +13,26 @@ const EmptyView = require('../views/empty_view.js');
const fields = [
'id',
'names',
- /* 'suggestions',
- * 'implications', */
+ 'posts',
'creationTime',
'postCount',
'category'];
class PoolListController {
constructor(ctx) {
+ this._pageController = new PageController();
+
if (!api.hasPrivilege('pools:list')) {
this._view = new EmptyView();
this._view.showError('You don\'t have privileges to view pools.');
return;
}
+ this._ctx = ctx;
+
topNavigation.activate('pools');
topNavigation.setTitle('Listing pools');
- this._ctx = ctx;
- this._pageController = new PageController();
-
this._headerView = new PoolsHeaderView({
hostNode: this._pageController.view.pageHeaderHolderNode,
parameters: ctx.parameters,
diff --git a/client/js/controllers/post_list_controller.js b/client/js/controllers/post_list_controller.js
index fd1adfe..c79824a 100644
--- a/client/js/controllers/post_list_controller.js
+++ b/client/js/controllers/post_list_controller.js
@@ -17,18 +17,19 @@ const fields = [
class PostListController {
constructor(ctx) {
+ this._pageController = new PageController();
+
if (!api.hasPrivilege('posts:list')) {
this._view = new EmptyView();
this._view.showError('You don\'t have privileges to view posts.');
return;
}
+ this._ctx = ctx;
+
topNavigation.activate('posts');
topNavigation.setTitle('Listing posts');
- this._ctx = ctx;
- this._pageController = new PageController();
-
this._headerView = new PostsHeaderView({
hostNode: this._pageController.view.pageHeaderHolderNode,
parameters: ctx.parameters,
diff --git a/client/js/controllers/tag_list_controller.js b/client/js/controllers/tag_list_controller.js
index 8bc7dbb..e82461d 100644
--- a/client/js/controllers/tag_list_controller.js
+++ b/client/js/controllers/tag_list_controller.js
@@ -20,18 +20,19 @@ const fields = [
class TagListController {
constructor(ctx) {
+ this._pageController = new PageController();
+
if (!api.hasPrivilege('tags:list')) {
this._view = new EmptyView();
this._view.showError('You don\'t have privileges to view tags.');
return;
}
+ this._ctx = ctx;
+
topNavigation.activate('tags');
topNavigation.setTitle('Listing tags');
- this._ctx = ctx;
- this._pageController = new PageController();
-
this._headerView = new TagsHeaderView({
hostNode: this._pageController.view.pageHeaderHolderNode,
parameters: ctx.parameters,
diff --git a/client/js/controllers/user_list_controller.js b/client/js/controllers/user_list_controller.js
index fa878d8..5d666f8 100644
--- a/client/js/controllers/user_list_controller.js
+++ b/client/js/controllers/user_list_controller.js
@@ -12,6 +12,8 @@ const EmptyView = require('../views/empty_view.js');
class UserListController {
constructor(ctx) {
+ this._pageController = new PageController();
+
if (!api.hasPrivilege('users:list')) {
this._view = new EmptyView();
this._view.showError('You don\'t have privileges to view users.');
@@ -22,7 +24,6 @@ class UserListController {
topNavigation.setTitle('Listing users');
this._ctx = ctx;
- this._pageController = new PageController();
this._headerView = new UsersHeaderView({
hostNode: this._pageController.view.pageHeaderHolderNode,