mirror of
https://github.com/RetroShare/RSNewWebUI.git
synced 2026-09-14 11:05:47 +05:00
forums subscribe fix
This commit is contained in:
parent
f280bd1e11
commit
2d01eca511
@ -46,4 +46,8 @@ img.channelpic {
|
||||
}
|
||||
.p{
|
||||
margin:0;
|
||||
}
|
||||
#toggleunsub{
|
||||
position: relative;
|
||||
background: gray;
|
||||
}
|
||||
@ -86,7 +86,6 @@ const MessageView = () => {
|
||||
return {
|
||||
oninit: (v) => {
|
||||
if (Data.DisplayChannels[v.attrs.id]) {
|
||||
console.log(Data.DisplayChannels[v.attrs.id].all);
|
||||
cname = Data.DisplayChannels[v.attrs.id].name;
|
||||
cimage = Data.DisplayChannels[v.attrs.id].image;
|
||||
if (rs.userList.userMap[Data.DisplayChannels[v.attrs.id].author]) {
|
||||
@ -146,11 +145,12 @@ const MessageView = () => {
|
||||
csubscribed ? 'Subscribed' : 'Subscribe'
|
||||
),
|
||||
m(
|
||||
'button',
|
||||
'button[id=toggleunsub]',
|
||||
{
|
||||
style: 'display:' + (toggleUnsubscribe ? 'block' : 'none'),
|
||||
onclick: () => {
|
||||
if (csubscribed) {
|
||||
console.log(csubscribed);
|
||||
rs.rsJsonApiRequest(
|
||||
'/rsgxschannels/subscribeToChannel',
|
||||
{
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
.forums-node-panel {
|
||||
position: relative;
|
||||
bottom: 100px;
|
||||
margin-left: 200px;
|
||||
margin-left: 300px;
|
||||
animation: fadein 0.5s;
|
||||
}
|
||||
|
||||
@ -36,8 +36,13 @@ table.forums tr.hidden{
|
||||
|
||||
#forumdetails{
|
||||
position: relative;
|
||||
margin-left: auto;
|
||||
margin-left: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
.p{
|
||||
margin:0;
|
||||
}
|
||||
#toggleunsub{
|
||||
position: relative;
|
||||
background: gray;
|
||||
}
|
||||
@ -3,16 +3,19 @@ const widget = require('widgets');
|
||||
const rs = require('rswebui');
|
||||
const util = require('forums/forums_util');
|
||||
|
||||
const getForums =
|
||||
{
|
||||
PopularForums : [],
|
||||
load(){
|
||||
|
||||
rs.rsJsonApiRequest('/rsgxsforums/getForumsSummaries', {}, (data) => {
|
||||
getForums.PopularForums = data.forums;
|
||||
console.log(getForums.PopularForums);
|
||||
const getForums = {
|
||||
All: [],
|
||||
PopularForums: [],
|
||||
SubscribedForums: [],
|
||||
async load() {
|
||||
await rs.rsJsonApiRequest('/rsgxsforums/getForumsSummaries', {}, (data) => {
|
||||
getForums.All = data.forums;
|
||||
getForums.PopularForums = getForums.All;
|
||||
getForums.SubscribedForums = getForums.All.filter(
|
||||
(forum) => forum.mSubscribeFlags === util.GROUP_SUBSCRIBE_SUBSCRIBED
|
||||
);
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
const sections = {
|
||||
MyForums: require('forums/my_forums'),
|
||||
@ -22,36 +25,43 @@ const sections = {
|
||||
};
|
||||
|
||||
const Layout = {
|
||||
oninit: getForums.load,
|
||||
// oninit : getForums.load,
|
||||
onupdate: getForums.load,
|
||||
view: (vnode) =>
|
||||
m('.tab-page', [
|
||||
m(util.SearchBar, {
|
||||
list: getForums.PopularForums
|
||||
list: getForums.All,
|
||||
}),
|
||||
m(widget.Sidebar, {
|
||||
tabs: Object.keys(sections),
|
||||
baseRoute: '/forums/',
|
||||
}),
|
||||
m('.forums-node-panel', vnode.children),
|
||||
m(
|
||||
'.forum-node-panel',
|
||||
|
||||
vnode.attrs.check
|
||||
? m(util.MessageView, {
|
||||
id: vnode.attrs.id,
|
||||
})
|
||||
: m(sections[vnode.attrs.tab], {
|
||||
list: getForums[vnode.attrs.tab],
|
||||
})
|
||||
),
|
||||
]),
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
view: (vnode) => {
|
||||
const tab = vnode.attrs.tab;
|
||||
if (Object.prototype.hasOwnProperty.call(vnode.attrs, 'mGroupId')) {
|
||||
return m(
|
||||
Layout,
|
||||
m(util.MessageView, {
|
||||
id: vnode.attrs.mGroupId,
|
||||
})
|
||||
);
|
||||
return m(Layout, {
|
||||
check: true, // for forum description
|
||||
id: vnode.attrs.mGroupId,
|
||||
});
|
||||
}
|
||||
return m(
|
||||
Layout,
|
||||
m((sections[tab]), {
|
||||
list: getForums.PopularForums,
|
||||
}),
|
||||
);
|
||||
return m(Layout, {
|
||||
check: false,
|
||||
tab: vnode.attrs.tab,
|
||||
});
|
||||
// this check is implemented for Layout and helps to send in updated list each time.
|
||||
},
|
||||
};
|
||||
|
||||
@ -1,6 +1,11 @@
|
||||
const m = require('mithril');
|
||||
const rs = require('rswebui');
|
||||
|
||||
const GROUP_SUBSCRIBE_ADMIN = 0x01; // means: you have the admin key for this group
|
||||
const GROUP_SUBSCRIBE_PUBLISH = 0x02; // means: you have the publish key for thiss group. Typical use: publish key in forums are shared with specific friends.
|
||||
const GROUP_SUBSCRIBE_SUBSCRIBED = 0x04; // means: you are subscribed to a group, which makes you a source for this group to your friend nodes.
|
||||
const GROUP_SUBSCRIBE_NOT_SUBSCRIBED = 0x08;
|
||||
|
||||
const Data = {
|
||||
DisplayForums: {},
|
||||
};
|
||||
@ -14,7 +19,6 @@ async function updateDisplayForums(keyid, details = {}) {
|
||||
},
|
||||
(data) => {
|
||||
details = data.forumsInfo[0];
|
||||
// console.log(details);
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
@ -23,6 +27,7 @@ async function updateDisplayForums(keyid, details = {}) {
|
||||
name: details.mMeta.mGroupName,
|
||||
isSearched: true,
|
||||
description: details.mDescription,
|
||||
isSubscribed: details.mMeta.mSubscribeFlags === GROUP_SUBSCRIBE_SUBSCRIBED,
|
||||
};
|
||||
}
|
||||
});
|
||||
@ -65,11 +70,14 @@ const ForumSummary = () => {
|
||||
};
|
||||
|
||||
const MessageView = () => {
|
||||
let cname = '';
|
||||
let fname = '';
|
||||
let fsubscribed = {};
|
||||
let toggleUnsubscribe = false;
|
||||
return {
|
||||
oninit: (v) => {
|
||||
if (Data.DisplayForums[v.attrs.id]) {
|
||||
cname = Data.DisplayForums[v.attrs.id].name;
|
||||
fname = Data.DisplayForums[v.attrs.id].name;
|
||||
fsubscribed = Data.DisplayForums[v.attrs.id].isSubscribed;
|
||||
}
|
||||
},
|
||||
view: (v) =>
|
||||
@ -89,7 +97,57 @@ const MessageView = () => {
|
||||
},
|
||||
m('i.fas.fa-arrow-left')
|
||||
),
|
||||
m('h3', cname),
|
||||
m(
|
||||
'button',
|
||||
{
|
||||
onclick: () => {
|
||||
if (!fsubscribed) {
|
||||
rs.rsJsonApiRequest(
|
||||
'/rsgxsforums/subscribeToForum',
|
||||
{
|
||||
forumId: v.attrs.id,
|
||||
subscribe: true,
|
||||
},
|
||||
(data) => {
|
||||
console.log(data);
|
||||
}
|
||||
).then(() => {
|
||||
Data.DisplayForums[v.attrs.id].isSubscribed = true;
|
||||
fsubscribed = true;
|
||||
});
|
||||
} else {
|
||||
toggleUnsubscribe = !toggleUnsubscribe;
|
||||
}
|
||||
},
|
||||
},
|
||||
fsubscribed ? 'Subscribed' : 'Subscribe'
|
||||
),
|
||||
m(
|
||||
'button[id=toggleunsub]',
|
||||
{
|
||||
style: 'display:' + (toggleUnsubscribe ? 'block' : 'none'),
|
||||
onclick: () => {
|
||||
if (fsubscribed) {
|
||||
rs.rsJsonApiRequest(
|
||||
'/rsgxsforums/subscribeToForum',
|
||||
{
|
||||
forumId: v.attrs.id,
|
||||
subscribe: false,
|
||||
},
|
||||
(data) => {
|
||||
console.log(data);
|
||||
}
|
||||
).then(() => {
|
||||
Data.DisplayForums[v.attrs.id].isSubscribed = false;
|
||||
fsubscribed = false;
|
||||
toggleUnsubscribe = false;
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
'Unsubscribe?'
|
||||
),
|
||||
m('h3', fname),
|
||||
m('[id=forumdetails]', [
|
||||
m('p', m('b', 'Posts: '), 'posts'),
|
||||
m('p', m('b', 'Date created: '), '1/1/11'),
|
||||
@ -154,4 +212,8 @@ module.exports = {
|
||||
MessageView,
|
||||
DisplayForumsFromList,
|
||||
Table,
|
||||
GROUP_SUBSCRIBE_ADMIN,
|
||||
GROUP_SUBSCRIBE_NOT_SUBSCRIBED,
|
||||
GROUP_SUBSCRIBE_PUBLISH,
|
||||
GROUP_SUBSCRIBE_SUBSCRIBED,
|
||||
};
|
||||
|
||||
@ -1,11 +1,35 @@
|
||||
const m = require('mithril');
|
||||
const util = require('forums/forums_util');
|
||||
|
||||
const Layout = () => {
|
||||
return{
|
||||
view: () => [
|
||||
m('.widget', [m('h2', 'Subscribed Forums'), m('hr'), ])
|
||||
]
|
||||
};
|
||||
return {
|
||||
view: (v) => [
|
||||
m('.widget', [
|
||||
m('h3', 'Subscribed Forums'),
|
||||
m('hr'),
|
||||
m(
|
||||
util.Table,
|
||||
m(
|
||||
'tbody',
|
||||
[v.attrs.list.map((forum) =>
|
||||
m(util.ForumSummary, {
|
||||
details: forum,
|
||||
category: 'SubscribedForums',
|
||||
}),
|
||||
),
|
||||
v.attrs.list.map((forum) =>
|
||||
m(util.DisplayForumsFromList, {
|
||||
id: forum.mGroupId,
|
||||
category: 'SubscribedForums',
|
||||
}),
|
||||
),
|
||||
]
|
||||
)
|
||||
),
|
||||
]),
|
||||
],
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = Layout();
|
||||
module.exports = Layout;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user