mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-03 12:36:02 +01:00
interim commit to thread options
This commit is contained in:
@@ -40,7 +40,7 @@ var config = {
|
||||
|
||||
// Privileged Actions Reputation Thresholds
|
||||
"privilege_thresholds": {
|
||||
"manage_thread": 2000
|
||||
"manage_thread": 1000
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@ var ajaxify = {};
|
||||
jQuery('#content').fadeOut(100);
|
||||
|
||||
load_template(function() {
|
||||
|
||||
exec_body_scripts(content);
|
||||
|
||||
ajaxify.enable();
|
||||
|
||||
@@ -146,7 +146,6 @@ function load_template(callback) {
|
||||
url = (url === '' || url === '/') ? 'home' : url;
|
||||
|
||||
jQuery.get(API_URL + url, function(data) {
|
||||
console.log(data)
|
||||
document.getElementById('content').innerHTML = templates[url.split('/')[0]].parse(JSON.parse(data));
|
||||
if (callback) callback();
|
||||
});
|
||||
|
||||
@@ -47,9 +47,8 @@
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var locked = '{locked}',
|
||||
expose_tools = '{expose_tools}';
|
||||
|
||||
console.log(expose_tools);
|
||||
expose_tools = '{expose_tools}',
|
||||
tid = '{topic_id}';
|
||||
|
||||
jQuery('document').ready(function() {
|
||||
var room = 'topic_' + '{topic_id}',
|
||||
@@ -61,7 +60,7 @@
|
||||
if (locked === '1') set_locked_state(true);
|
||||
|
||||
if (expose_tools === '1') {
|
||||
var deleteThreadEl = document.getElementById('delete-thread');
|
||||
var deleteThreadEl = document.getElementById('delete_thread');
|
||||
|
||||
adminTools.style.visibility = 'inherit';
|
||||
|
||||
@@ -69,14 +68,14 @@
|
||||
deleteThreadEl.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
if (confirm('really delete thread? (THIS DIALOG TO BE REPLACED WITH BOOTBOX)')) {
|
||||
console.log('socket shiz');
|
||||
socket.emit('api:topic.delete', { tid: tid });
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
ajaxify.register_events(['event:rep_up', 'event:rep_down', 'event:new_post', 'api:get_users_in_room']);
|
||||
ajaxify.register_events(['event:rep_up', 'event:rep_down', 'event:new_post', 'api:get_users_in_room', 'event:topic_deleted']);
|
||||
socket.on('api:get_users_in_room', function(users) {
|
||||
var anonymous = users.anonymous,
|
||||
usernames = users.usernames,
|
||||
@@ -106,7 +105,6 @@
|
||||
adjust_rep(-1, data.pid, data.uid);
|
||||
});
|
||||
|
||||
|
||||
socket.on('event:new_post', function(data) {
|
||||
var html = templates.prepare(templates['topic'].blocks['posts']).parse(data),
|
||||
uniqueid = new Date().getTime();
|
||||
@@ -115,7 +113,11 @@
|
||||
set_up_posts(uniqueid);
|
||||
});
|
||||
|
||||
|
||||
socket.on('event:topic_deleted', function(data) {
|
||||
if (data.tid === tid && data.status === 'ok') {
|
||||
console.log('thread deleted!!');
|
||||
}
|
||||
});
|
||||
|
||||
function adjust_rep(value, pid, uid) {
|
||||
var post_rep = jQuery('.post_rep_' + pid),
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
var RDB = require('./redis.js'),
|
||||
posts = require('./posts.js'),
|
||||
utils = require('./utils.js'),
|
||||
user = require('./user.js');
|
||||
user = require('./user.js'),
|
||||
configs = require('../config.js');
|
||||
|
||||
(function(Topics) {
|
||||
|
||||
@@ -135,8 +136,71 @@ var RDB = require('./redis.js'),
|
||||
timeout: 2000
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
};
|
||||
|
||||
Topics.lock = function(tid, uid, socket) {
|
||||
user.getUserField(uid, 'reputation', function(rep) {
|
||||
if (rep >= configs.privilege_thresholds.manage_thread) {
|
||||
// Mark thread as locked
|
||||
RDB.set('tid:' + tid + ':locked', 1);
|
||||
|
||||
if (socket) {
|
||||
socket.emit('event:topic_locked', {
|
||||
tid: tid,
|
||||
status: 'ok'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Topics.unlock = function(tid, uid, socket) {
|
||||
user.getUserField(uid, 'reputation', function(rep) {
|
||||
if (rep >= configs.privilege_thresholds.manage_thread) {
|
||||
// Mark thread as locked
|
||||
RDB.set('tid:' + tid + ':locked', 0);
|
||||
|
||||
if (socket) {
|
||||
socket.emit('event:topic_unlocked', {
|
||||
tid: tid,
|
||||
status: 'ok'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Topics.delete = function(tid, uid, socket) {
|
||||
user.getUserField(uid, 'reputation', function(rep) {
|
||||
if (rep >= configs.privilege_thresholds.manage_thread) {
|
||||
// Mark thread as deleted
|
||||
RDB.set('tid:' + tid + ':deleted', 1);
|
||||
Topics.lock(tid, uid);
|
||||
|
||||
if (socket) {
|
||||
socket.emit('event:topic_deleted', {
|
||||
tid: tid,
|
||||
status: 'ok'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Topics.restore = function(tid, uid, socket) {
|
||||
user.getUserField(uid, 'reputation', function(rep) {
|
||||
if (rep >= configs.privilege_thresholds.manage_thread) {
|
||||
// Mark thread as deleted
|
||||
RDB.set('tid:' + tid + ':deleted', 0);
|
||||
Topics.lock(tid, uid);
|
||||
|
||||
if (socket) {
|
||||
socket.emit('event:topic_restored', {
|
||||
tid: tid,
|
||||
status: 'ok'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}(exports));
|
||||
@@ -356,9 +356,8 @@ passport.deserializeUser(function(uid, done) {
|
||||
});
|
||||
|
||||
app.get('/test', function(req, res) {
|
||||
global.modules.posts.create(2, 2, 'test', function(pid) {
|
||||
res.send('<pre>' + pid + '</pre>');
|
||||
}, 1, 1);
|
||||
global.modules.topics.delete(1, 1);
|
||||
res.send();
|
||||
});
|
||||
}(WebServer));
|
||||
|
||||
|
||||
@@ -183,6 +183,22 @@ var SocketIO = require('socket.io').listen(global.server,{log:false}),
|
||||
socket.on('api:user.active.get_record', function() {
|
||||
modules.user.active.get_record(socket);
|
||||
});
|
||||
|
||||
socket.on('api:topic.delete', function(data) {
|
||||
modules.topics.delete(data.tid, uid, socket);
|
||||
});
|
||||
|
||||
socket.on('api:topic.restore', function(data) {
|
||||
modules.topics.restore(data.tid, uid, socket);
|
||||
});
|
||||
|
||||
socket.on('api:topic.lock', function(data) {
|
||||
modules.topics.lock(data.tid, uid, socket);
|
||||
});
|
||||
|
||||
socket.on('api:topic.unlock', function(data) {
|
||||
modules.topics.unlock(data.tid, uid, socket);
|
||||
});
|
||||
});
|
||||
|
||||
}(SocketIO));
|
||||
|
||||
Reference in New Issue
Block a user