You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.1 KiB
JavaScript
59 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
/* globals define*/
|
|
|
|
define('postSelect', ['components'], function(components) {
|
|
var PostSelect = {};
|
|
|
|
PostSelect.pids = [];
|
|
|
|
PostSelect.init = function(onSelect) {
|
|
PostSelect.pids.length = 0;
|
|
components.get('topic').on('click', '[data-pid]', function() {
|
|
togglePostSelection($(this), onSelect);
|
|
});
|
|
disableClicksOnPosts();
|
|
};
|
|
|
|
|
|
function togglePostSelection(post, callback) {
|
|
var newPid = post.attr('data-pid');
|
|
|
|
if (parseInt(post.attr('data-index'), 10) === 0) {
|
|
return;
|
|
}
|
|
|
|
if (newPid) {
|
|
var index = PostSelect.pids.indexOf(newPid);
|
|
if(index === -1) {
|
|
PostSelect.pids.push(newPid);
|
|
post.css('opacity', '0.5');
|
|
} else {
|
|
PostSelect.pids.splice(index, 1);
|
|
post.css('opacity', '1.0');
|
|
}
|
|
|
|
if (PostSelect.pids.length) {
|
|
PostSelect.pids.sort(function(a,b) { return a - b; });
|
|
}
|
|
callback();
|
|
}
|
|
}
|
|
|
|
|
|
function disableClicks() {
|
|
return false;
|
|
}
|
|
|
|
function disableClicksOnPosts() {
|
|
components.get('post').on('click', 'button,a', disableClicks);
|
|
}
|
|
|
|
PostSelect.enableClicksOnPosts = function() {
|
|
components.get('post').off('click', 'button,a', disableClicks);
|
|
};
|
|
|
|
|
|
|
|
return PostSelect;
|
|
}); |