$(textarea).trigger('change');
});
+ $(".comment-edit-wrapper textarea, .wall-item-comment-wrapper textarea")
+ .editor_autocomplete(baseurl + '/search/acl')
+ .bbco_autocomplete('bbcode');
+
+ // Ensures asynchronously-added comment forms recognize mentions, tags and BBCodes as well
+ document.addEventListener("postprocess_liveupdate", function() {
+ $(".comment-edit-wrapper textarea, .wall-item-comment-wrapper textarea")
+ .editor_autocomplete(baseurl + '/search/acl')
+ .bbco_autocomplete('bbcode');
+ });
+
/* popup menus */
function close_last_popup_menu() {
if (last_popup_menu) {
});
/* notifications template */
- var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html());
var notifications_all = unescape($('<div>').append($("#nav-notifications-see-all").clone()).html()); //outerHtml hack
var notifications_mark = unescape($('<div>').append($("#nav-notifications-mark-all").clone()).html()); //outerHtml hack
var notifications_empty = unescape($("#nav-notifications-menu").html());
var notification_id = 0;
// Insert notifs into the notifications-menu
- $(data.notifications).each(function(key, notification) {
- var text = notification.message.format('<span class="contactname">' + notification.name + '</span>');
- var contact = ('<a href="' + notification.url + '"><span class="contactname">' + notification.name + '</span></a>');
- var seenclass = (notification.seen == 1) ? "notification-seen" : "notification-unseen";
- var html = notifications_tpl.format(
- notification.href, // {0} // link to the source
- notification.photo, // {1} // photo of the contact
- text, // {2} // preformatted text (autor + text)
- notification.date, // {3} // date of notification (time ago)
- seenclass, // {4} // visited status of the notification
- new Date(notification.timestamp*1000), // {5} // date of notification
- notification.url, // {6} // profile url of the contact
- notification.message.format(contact), // {7} // preformatted html (text including author profile url)
- '' // {8} // Deprecated
- );
- nnm.append(html);
+ $(data.notifications).each(function(key, navNotif) {
+ nnm.append(navNotif.html);
});
// Desktop Notifications
- $(data.notifications.reverse()).each(function(key, e) {
- notification_id = parseInt(e.timestamp);
- if (notification_lastitem !== null && notification_id > notification_lastitem && Number(e.seen) === 0) {
+ $(data.notifications.reverse()).each(function(key, navNotif) {
+ notification_id = parseInt(navNotif.timestamp);
+ if (notification_lastitem !== null && notification_id > notification_lastitem && Number(navNotif.seen) === 0) {
if (getNotificationPermission() === "granted") {
var notification = new Notification(document.title, {
- body: decodeHtml(e.message.replace('→ ', '').format(e.name)),
- icon: e.photo,
- });
- notification['url'] = e.href;
+ body: decodeHtml(navNotif.plaintext),
+ icon: navNotif.contact.photo,
+ });
+ notification['url'] = navNotif.href;
notification.addEventListener("click", function(ev) {
window.location = ev.target.url;
});
function NavUpdate() {
if (!stopped) {
- var pingCmd = 'ping?format=json' + ((localUser != 0) ? '&uid=' + localUser : '');
+ var pingCmd = 'ping';
$.get(pingCmd, function(data) {
if (data.result) {
// send nav-update event
commentBusy = false;
$('body').css('cursor', 'auto');
}
- /* autocomplete @nicknames */
- $(".comment-edit-form textarea").editor_autocomplete(baseurl + '/search/acl');
- /* autocomplete bbcode */
- $(".comment-edit-form textarea").bbco_autocomplete('bbcode');
}
function liveUpdate(src) {
* @param {string} verb The verb of the action
* @param {boolean} un Whether to perform an activity removal instead of creation
*/
-function dolike(ident, verb, un) {
+function doActivityItem(ident, verb, un) {
unpause();
$('#like-rotator-' + ident.toString()).show();
verb = un ? 'un' + verb : verb;
- $.get('like/' + ident.toString() + '?verb=' + verb, NavUpdate);
+ $.post('item/' + ident.toString() + '/activity/' + verb, NavUpdate);
liking = 1;
force_update = true;
update_item = ident.toString();
}
-function dosubthread(ident) {
+function doFollowThread(ident) {
unpause();
$('#like-rotator-' + ident.toString()).show();
- $.get('subthread/' + ident.toString(), NavUpdate);
+ $.post('item/' + ident.toString() + '/follow', NavUpdate);
liking = 1;
+ force_update = true;
+ update_item = ident.toString();
}
-function dostar(ident) {
+function doStar(ident) {
ident = ident.toString();
$('#like-rotator-' + ident).show();
- $.get('starred/' + ident, function(data) {
- if (data.match(/1/)) {
- $('#starred-' + ident).addClass('starred');
- $('#starred-' + ident).removeClass('unstarred');
+ $.post('item/' + ident + '/star')
+ .then(function(data) {
+ if (data.state === 1) {
+ $('#starred-' + ident)
+ .addClass('starred')
+ .removeClass('unstarred');
$('#star-' + ident).addClass('hidden');
$('#unstar-' + ident).removeClass('hidden');
} else {
- $('#starred-' + ident).addClass('unstarred');
- $('#starred-' + ident).removeClass('starred');
+ $('#starred-' + ident)
+ .addClass('unstarred')
+ .removeClass('starred');
$('#star-' + ident).removeClass('hidden');
$('#unstar-' + ident).addClass('hidden');
}
+ })
+ .always(function () {
$('#like-rotator-' + ident).hide();
});
}
-function dopin(ident) {
+function doPin(ident) {
ident = ident.toString();
$('#like-rotator-' + ident).show();
- $.get('pinned/' + ident, function(data) {
- if (data.match(/1/)) {
- $('#pinned-' + ident).addClass('pinned');
- $('#pinned-' + ident).removeClass('unpinned');
+ $.post('item/' + ident + '/pin')
+ .then(function(data) {
+ if (data.state === 1) {
+ $('#pinned-' + ident)
+ .addClass('pinned')
+ .removeClass('unpinned');
$('#pin-' + ident).addClass('hidden');
$('#unpin-' + ident).removeClass('hidden');
} else {
- $('#pinned-' + ident).addClass('unpinned');
- $('#pinned-' + ident).removeClass('pinned');
+ $('#pinned-' + ident)
+ .addClass('unpinned')
+ .removeClass('pinned');
$('#pin-' + ident).removeClass('hidden');
$('#unpin-' + ident).addClass('hidden');
}
+ })
+ .always(function () {
$('#like-rotator-' + ident).hide();
});
}
-function doignore(ident) {
+function doIgnoreThread(ident) {
ident = ident.toString();
$('#like-rotator-' + ident).show();
- $.get('item/ignore/' + ident, function(data) {
- if (data === 1) {
+ $.post('item/' + ident + '/ignore', function(data) {
+ if (data.state === 1) {
$('#ignored-' + ident)
.addClass('ignored')
.removeClass('unignored');