removed admin topics
parent
8abaa812ec
commit
7f193041a8
@ -1,192 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
/* global define, socket, app, templates, RELATIVE_PATH */
|
|
||||||
|
|
||||||
define(function() {
|
|
||||||
var Topics = {};
|
|
||||||
|
|
||||||
Topics.init = function() {
|
|
||||||
var topicsListEl = $('.topics'),
|
|
||||||
loadMoreEl = $('#topics_loadmore');
|
|
||||||
|
|
||||||
this.resolveButtonStates();
|
|
||||||
|
|
||||||
topicsListEl.on('click', '[data-action]', function() {
|
|
||||||
var $this = $(this),
|
|
||||||
action = $this.attr('data-action'),
|
|
||||||
tid = $this.parents('[data-tid]').attr('data-tid');
|
|
||||||
|
|
||||||
switch (action) {
|
|
||||||
case 'pin':
|
|
||||||
if (!$this.hasClass('active')) {
|
|
||||||
socket.emit('topics.pin', tid, Topics.pin);
|
|
||||||
} else {
|
|
||||||
socket.emit('topics.unpin', tid, Topics.unpin);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'lock':
|
|
||||||
if (!$this.hasClass('active')) {
|
|
||||||
socket.emit('topics.lock', tid, Topics.lock);
|
|
||||||
} else {
|
|
||||||
socket.emit('topics.unlock', tid, Topics.unlock);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'delete':
|
|
||||||
if (!$this.hasClass('active')) {
|
|
||||||
socket.emit('topics.delete', tid, Topics.setDeleted);
|
|
||||||
} else {
|
|
||||||
socket.emit('topics.restore', tid, Topics.restore);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
loadMoreEl.on('click', function() {
|
|
||||||
if (!$(this).hasClass('disabled')) {
|
|
||||||
var topics = $('.topics li[data-tid]');
|
|
||||||
|
|
||||||
if(!topics.length) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var lastTid = parseInt(topics.eq(topics.length - 1).attr('data-tid'), 10);
|
|
||||||
|
|
||||||
$(this).html('<i class="fa fa-refresh fa-spin"></i> Retrieving topics');
|
|
||||||
socket.emit('admin.topics.getMore', {
|
|
||||||
limit: 10,
|
|
||||||
after: lastTid
|
|
||||||
}, function(err, topics) {
|
|
||||||
if(err) {
|
|
||||||
return app.alertError(err.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
var btnEl = $('#topics_loadmore');
|
|
||||||
|
|
||||||
if (topics.length > 0) {
|
|
||||||
templates.preload_template('admin/topics', function() {
|
|
||||||
templates['admin/topics'].parse({topics:[]});
|
|
||||||
var html = templates.prepare(templates['admin/topics'].blocks.topics).parse({
|
|
||||||
topics: topics
|
|
||||||
}),
|
|
||||||
topicsListEl = $('.topics');
|
|
||||||
|
|
||||||
// Fix relative paths
|
|
||||||
html = html.replace(/\{relative_path\}/g, RELATIVE_PATH);
|
|
||||||
|
|
||||||
topicsListEl.html(topicsListEl.html() + html);
|
|
||||||
|
|
||||||
Topics.resolveButtonStates();
|
|
||||||
|
|
||||||
btnEl.html('Load More Topics');
|
|
||||||
$('span.timeago').timeago();
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
// Exhausted all topics
|
|
||||||
btnEl.addClass('disabled');
|
|
||||||
btnEl.html('No more topics');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, false);
|
|
||||||
};
|
|
||||||
|
|
||||||
Topics.resolveButtonStates = function() {
|
|
||||||
// Resolve proper button state for all topics
|
|
||||||
var topicsListEl = $('.topics'),
|
|
||||||
topicEls = topicsListEl.find('li'),
|
|
||||||
numTopics = topicEls.length;
|
|
||||||
|
|
||||||
for (var x = 0; x < numTopics; x++) {
|
|
||||||
var topic = topicEls.eq(x);
|
|
||||||
if (topic.attr('data-pinned') === '1') {
|
|
||||||
topic.find('[data-action="pin"]').addClass('active');
|
|
||||||
topic.removeAttr('data-pinned');
|
|
||||||
}
|
|
||||||
if (topic.attr('data-locked') === '1') {
|
|
||||||
topic.find('[data-action="lock"]').addClass('active');
|
|
||||||
topic.removeAttr('data-locked');
|
|
||||||
}
|
|
||||||
if (topic.attr('data-deleted') === '1') {
|
|
||||||
topic.find('[data-action="delete"]').addClass('active');
|
|
||||||
topic.removeAttr('data-deleted');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Topics.setDeleted = function(err, response) {
|
|
||||||
if(err) {
|
|
||||||
return app.alert(err.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (response && response.tid) {
|
|
||||||
var btnEl = $('li[data-tid="' + response.tid + '"] button[data-action="delete"]');
|
|
||||||
btnEl.addClass('active');
|
|
||||||
btnEl.siblings('[data-action="lock"]').addClass('active');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Topics.restore = function(err, response) {
|
|
||||||
if(err) {
|
|
||||||
return app.alert(err.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (response && response.tid) {
|
|
||||||
var btnEl = $('li[data-tid="' + response.tid + '"] button[data-action="delete"]');
|
|
||||||
|
|
||||||
btnEl.removeClass('active');
|
|
||||||
btnEl.siblings('[data-action="lock"]').removeClass('active');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Topics.lock = function(err, response) {
|
|
||||||
if(err) {
|
|
||||||
return app.alert(err.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (response && response.tid) {
|
|
||||||
var btnEl = $('li[data-tid="' + response.tid + '"] button[data-action="lock"]');
|
|
||||||
|
|
||||||
btnEl.addClass('active');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Topics.unlock = function(err, response) {
|
|
||||||
if(err) {
|
|
||||||
return app.alert(err.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (response && response.tid) {
|
|
||||||
var btnEl = $('li[data-tid="' + response.tid + '"] button[data-action="lock"]');
|
|
||||||
|
|
||||||
btnEl.removeClass('active');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
Topics.unpin = function(err, response) {
|
|
||||||
if(err) {
|
|
||||||
return app.alert(err.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (response && response.tid) {
|
|
||||||
var btnEl = $('li[data-tid="' + response.tid + '"] button[data-action="pin"]');
|
|
||||||
|
|
||||||
btnEl.removeClass('active');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Topics.pin = function(err, response) {
|
|
||||||
if(err) {
|
|
||||||
return app.alert(err.message);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (response && response.tid) {
|
|
||||||
var btnEl = $('li[data-tid="' + response.tid + '"] button[data-action="pin"]');
|
|
||||||
|
|
||||||
btnEl.addClass('active');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return Topics;
|
|
||||||
});
|
|
Loading…
Reference in New Issue