1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-16 20:41:27 +02:00
Files
php-e107/e107_plugins/forum/js/forum.js
Achim Ennenbach 26022e4507 choose editor in forum and quick reply
New prefs for forum: editor & quickreply
editor makes it possible to choose between bbcode or tinymce (if installed and html enabled)
quickreply gives the option to choose between the standard textarea or the choosen editor (from pref editor)
2018-07-25 22:48:14 +02:00

146 lines
3.4 KiB
JavaScript

/**
* @file
* Forum JavaScript behaviors integration.
*/
var e107 = e107 || {'settings': {}, 'behaviors': {}};
(function ($)
{
/**
* Behavior to bind click events on action buttons/links.
*
* @type {{attach: e107.behaviors.forumActions.attach}}
* @see "e107_web/js/core/all.jquery.js" file for more information.
*/
e107.behaviors.forumActions = {
attach: function (context, settings)
{
$('a[data-forum-action], input[data-forum-action]', context).once('data-forum-action').each(function ()
{
$(this).on('click', function (e)
{
e.preventDefault();
var $this = $(this);
var action = $this.attr('data-forum-action');
var thread = $this.attr('data-forum-thread');
var post = $this.attr('data-forum-post');
if (typeof tinymce == 'undefined')
{
var text = $('#forum-quickreply-text').val();
}
else
{
var text = tinymce.get('forum-quickreply-text').getContent();
}
var insert = $this.attr('data-forum-insert');
var token = $this.attr('data-token');
var script = $this.attr("src");
$.ajax({
type: "POST",
url: script,
data: {thread: thread, action: action, post: post, text: text, insert: insert, e_token: token},
success: function (data)
{
try
{
var d = $.parseJSON(data);
} catch(e)
{
// Not JSON.
return;
}
// Update e_token value on quick-reply form for the next Ajax request.
if(d.e_token)
{
$this.attr('data-token', d.e_token);
}
// Show pup-up message.
if(d.msg)
{
var alertType = 'info';
if(d.status == 'ok')
{
alertType = 'success';
}
if(d.status == 'error')
{
alertType = 'danger';
}
if(jQuery().notify)
{
$('#uiAlert').notify({
type: alertType,
message: {text: d.msg},
fadeOut: {enabled: true, delay: 3000}
}).show();
}
else
{
alert(d.msg);
location.reload();
return;
}
}
if(action == 'stick' || action == 'unstick' || action == 'lock' || action == 'unlock')
{
location.reload();
return;
}
if(action == 'track')
{
if(d.html != false)
{
$('#' + insert).html(d.html);
// Attach all registered behaviors to the new content.
e107.attachBehaviors();
}
}
if(action == 'quickreply' && d.status == 'ok')
{
if(d.html != false)
{
$(d.html).appendTo('#forum-viewtopic').hide().slideDown(1000);
// Attach all registered behaviors to the new content.
e107.attachBehaviors();
}
if (typeof tinymce == 'undefined')
{
$('#forum-quickreply-text').val('');
}
else
{
tinymce.get('forum-quickreply-text').setContent('');
}
return;
}
if(d.hide)
{
var t = '#thread-' + thread;
var p = '#post-' + post;
$(t).hide('slow');
$(p).hide('slow').slideUp(800);
}
}
});
});
});
}
};
})(jQuery);