Sid Gifari File Manager
🏠 Root
/
home
/
ailwtbdh
/
public_html
/
wp-content
/
plugins
/
wpforo
/
assets
/
js
/
Editing: ajax.js
/* global wpforo */ $wpf.ajaxSetup({ url: wpforo.ajax_url, data: { referer: window.location.origin + window.location.pathname, }, }); function wpforo_post_url_fixer (hash) { var postid = 0; var match = hash.match(/^#post-(\d+)$/); if (match && (postid = match[1])) { if (!$wpf(hash).length && $wpf.active === 0) { $wpf.ajax({ type: 'POST', data: { postid: postid, action: 'wpforo_post_url_fixer', _wpfnonce: wpforo['nonces']['wpforo_post_url_fixer'], }, }).done(function (response) { if (/^https?:\/\/[^\r\n\t\s\0'"]+$/.test(response)) { window.location.assign(response); } wpforo_trigger_custom_event(document, 'wpforo_post_url_fixer', { response }); }); } } } $wpf(document).ready(function ($) { var wpforo_wrap = $('#wpforo-wrap'); //location hash ajax redirect fix setTimeout(function () { wpforo_post_url_fixer(window.location.hash); }, 500); window.onhashchange = function () { wpforo_post_url_fixer(window.location.hash); }; // Reactions wpforo_wrap.on('click', '.wpforo-reaction .wpf-react:not(.wpf-processing)', function () { var $this = $(this); var wrap = $this.closest('.wpf-reaction-wrap'); var type = $this.data('type'); if (!type.trim()) type = 'up'; var postid = $this.closest('[data-postid]').data('postid'); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', data: { postid, type, action: 'wpforo_react', _wpfnonce: wpforo['nonces']['wpforo_react'], }, }).done(function (response) { if (response.success) { $('.reacted-users', wrap.closest('.wpforo-post')).html(response.data['likers']); wrap.replaceWith(response.data['like_button']); } wpforo_trigger_custom_event(document, 'wpforo_react', { response }); }).always(function () { $this.removeClass('wpf-processing'); }); }); wpforo_wrap.on('click', '.wpforo-reaction .wpf-unreact:not(.wpf-processing)', function () { var $this = $(this); var wrap = $this.closest('.wpf-reaction-wrap'); var postid = $this.closest('[data-postid]').data('postid'); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', data: { postid, action: 'wpforo_unreact', _wpfnonce: wpforo['nonces']['wpforo_unreact'], }, }).done(function (response) { if (response.success) { $('.reacted-users', wrap.closest('.wpforo-post')).html(response.data['likers']); wrap.replaceWith(response.data['like_button']); } wpforo_trigger_custom_event(document, 'wpforo_unreact', { response }); }).always(function () { $this.removeClass('wpf-processing'); }); }); // Vote wpforo_wrap.on('click', '.wpforo-voteup:not(.wpf-processing)', function () { wpforo_load_show(); var type = $(this).data('type'), postid = $(this).data('postid'), $this = $(this); var buttons = $('.wpforo-voteup, .wpforo-votedown', $this.closest('.wpforo-post-voting')); buttons.addClass('wpf-processing'); var votestatus = ($this.hasClass('wpf-vote-active') ? 'clear' : 'up'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { itemtype: type, postid, votestatus, action: 'wpforo_vote_ajax', _wpfnonce: wpforo['nonces']['wpforo_vote_ajax'], }, }).done(function (response) { if (response.success) { $this.parents('.post-wrap').find('.wpfvote-num').text(response.data.votes).fadeIn(); var buttons_wrap = $this.closest('.wpforo-post-voting'); if (buttons_wrap.length) { var vote_active_buttons = $('.wpf-vote-active', buttons_wrap); if (vote_active_buttons.length) vote_active_buttons.removeClass('wpf-vote-active'); } if (votestatus !== 'clear') $this.addClass('wpf-vote-active'); } wpforo_load_hide(); wpforo_notice_show(response.data.notice, (response.success ? 'success' : 'error')); buttons.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_voteup_ajax', { response }); }); }); wpforo_wrap.on('click', '.wpforo-votedown:not(.wpf-processing)', function () { wpforo_load_show(); var type = $(this).data('type'), postid = $(this).data('postid'), $this = $(this); var buttons = $('.wpforo-voteup, .wpforo-votedown', $this.closest('.wpforo-post-voting')); buttons.addClass('wpf-processing'); var votestatus = ($this.hasClass('wpf-vote-active') ? 'clear' : 'down'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { itemtype: type, postid, votestatus, action: 'wpforo_vote_ajax', _wpfnonce: wpforo['nonces']['wpforo_vote_ajax'], }, }).done(function (response) { if (response.success) { $this.parents('.post-wrap').find('.wpfvote-num').text(response.data.votes).fadeIn(); var buttons_wrap = $this.closest('.wpforo-post-voting'); if (buttons_wrap.length) { var vote_active_buttons = $('.wpf-vote-active', buttons_wrap); if (vote_active_buttons.length) vote_active_buttons.removeClass('wpf-vote-active'); } if (votestatus !== 'clear') $this.addClass('wpf-vote-active'); } wpforo_load_hide(); wpforo_notice_show(response.data.notice, (response.success ? 'success' : 'error')); buttons.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_vote_down_ajax', { response }); }); }); // Answer wpforo_wrap.on('click', '.wpf-toggle-answer:not(.wpf-processing)', function () { wpforo_load_show(); var postid = $(this).data('postid'), $this = $(this); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { postid: postid, answerstatus: 0, action: 'wpforo_answer_ajax', _wpfnonce: wpforo['nonces']['wpforo_answer_ajax'], }, }).done(function (response) { if (response.success) { $this.removeClass('wpf-toggle-answer').addClass('wpf-toggle-not-answer'); setTimeout(function () { window.location.reload(); }, 300); } wpforo_load_hide(); wpforo_notice_show(response.data.notice, (response.success ? 'success' : 'error')); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_answer_ajax', { response }); }); }); wpforo_wrap.on('click', '.wpf-toggle-not-answer:not(.wpf-processing)', function () { wpforo_load_show(); var postid = $(this).data('postid'), $this = $(this); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { postid: postid, answerstatus: 1, action: 'wpforo_answer_ajax', _wpfnonce: wpforo['nonces']['wpforo_answer_ajax'], }, }).done(function (response) { if (response.success) { $this.removeClass('wpf-toggle-not-answer').addClass('wpf-toggle-answer'); setTimeout(function () { window.location.reload(); }, 300); } wpforo_load_hide(); wpforo_notice_show(response.data.notice, (response.success ? 'success' : 'error')); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_not_answer_ajax', { response }); }); }); // Quote wpforo_wrap.on('click', '.wpforo-quote:not(.wpf-processing)', function () { wpforo_load_show(); var $this = $(this); $this.addClass('wpf-processing'); var main_form = $('form.wpforo-main-form[data-textareaid]'); var wrap = main_form.closest('.wpf-form-wrapper'); wrap.show(); var post_wrap = $(this).closest('[id^=post-][data-postid]'); var postid = post_wrap.data('postid'); if (!postid) postid = 0; $('.wpf-form-post-parentid').val(postid); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { postid: postid, action: 'wpforo_quote_ajax', _wpfnonce: wpforo['nonces']['wpforo_quote_ajax'], }, }).done(function (response) { var phrase = wpforo_phrase('Reply with quote'); phrase = phrase.charAt(0).toUpperCase() + phrase.slice(1); $('.wpf-reply-form-title').html(phrase); $('.wpf-form-postid', main_form).val(0); wpforo_editor.set_content(response.data); wpforo_load_hide(); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_quote_ajax', { response }); }); }); // Report wpforo_wrap.on('click', '.wpforo-report', function () { wpforo_load_show(); var form = $('form#wpforo-report'); $('#wpforo-report-postid', form).val($(this).data('postid')); wpforo_dialog_show('', form, '45%', '295px'); $('#wpforo-report-content', form).trigger('focus'); wpforo_load_hide(); }); $(document).on('click', '#wpforo-report-send:not(.wpf-processing)', wpforo_report_send); $(document).on('keydown', 'form#wpforo-report', function (e) { if ((e.ctrlKey || e.metaKey) && (e.code === 'Enter' || e.code === 'NumpadEnter')) { $('#wpforo-report-send').trigger('click'); } }); function wpforo_report_send () { wpforo_load_show(); var $this = $(this); $this.addClass('wpf-processing'); var postid = $('#wpforo-report-postid').val(); var messagecontent = $('#wpforo-report-content').val(); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { postid: postid, reportmsg: messagecontent, action: 'wpforo_report_ajax', _wpfnonce: wpforo['nonces']['wpforo_report_ajax'], }, }).done(function (response) { wpforo_dialog_hide(); $('#wpforo-report-content').val(''); wpforo_load_hide(); wpforo_notice_show(response.data, (response.success ? 'success' : 'error')); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_report_ajax', { response }); }); } // Sticky wpforo_wrap.on('click', '.wpforo-sticky:not(.wpf-processing)', function () { wpforo_load_show(); var topicid = $(this).data('topicid'), $this = $(this); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { topicid: topicid, status: 'sticky', action: 'wpforo_sticky_ajax', _wpfnonce: wpforo['nonces']['wpforo_sticky_ajax'], }, }).done(function (response) { if (response.success) { $this.find('.wpforo-sticky-txt').text(' ' + wpforo_phrase('Unsticky')); $this.removeClass('wpforo-sticky').addClass('wpforo-unsticky'); if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Unsticky')); } } wpforo_load_hide(); wpforo_notice_show(response.data.notice, (response.success ? 'success' : 'error')); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_sticky_ajax', { response }); }); }); wpforo_wrap.on('click', '.wpforo-unsticky:not(.wpf-processing)', function () { wpforo_load_show(); var topicid = $(this).data('topicid'), $this = $(this); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { topicid: topicid, status: 'unsticky', action: 'wpforo_sticky_ajax', _wpfnonce: wpforo['nonces']['wpforo_sticky_ajax'], }, }).done(function (response) { if (response.success) { $this.find('.wpforo-sticky-txt').text(' ' + wpforo_phrase('Sticky')); $this.removeClass('wpforo-unsticky').addClass('wpforo-sticky'); if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Sticky')); } } wpforo_load_hide(); wpforo_notice_show(response.data.notice, (response.success ? 'success' : 'error')); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_unsticky_ajax', { response }); }); }); // Approve wpforo_wrap.on('click', '.wpforo-approve:not(.wpf-processing)', function () { wpforo_load_show(); var postid_value = $(this).attr('id'), $this = $(this); var postid = postid_value.replace('wpfapprove', ''); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { postid: postid, status: 'approve', action: 'wpforo_approve_ajax', _wpfnonce: wpforo['nonces']['wpforo_approve_ajax'], }, }).done(function (response) { if (response.success) { $('#' + postid_value).removeClass('wpforo-approve').addClass('wpforo-unapprove'); $('#approveicon' + postid).removeClass('fa-check').addClass('fa-exclamation-circle'); $('#wpforo-wrap #post-' + postid + ' .wpf-mod-message').hide(); $('#wpforo-wrap .wpf-status-title').hide(); $('#approvetext' + postid).text(' ' + wpforo_phrase('Unapprove')); if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Unapprove')); } } wpforo_load_hide(); window.location.reload(); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_approve_ajax', { response }); }); }); // Unapprove wpforo_wrap.on('click', '.wpforo-unapprove:not(.wpf-processing)', function () { wpforo_load_show(); var postid_value = $(this).attr('id'), $this = $(this); var postid = postid_value.replace('wpfapprove', ''); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { postid: postid, status: 'unapprove', action: 'wpforo_approve_ajax', _wpfnonce: wpforo['nonces']['wpforo_approve_ajax'], }, }).done(function (response) { if (response.success) { $('#' + postid_value).removeClass('wpforo-unapprove').addClass('wpforo-approve'); $('#approveicon' + postid).removeClass('fa-exclamation-circle').addClass('fa-check'); $('#wpforo-wrap #post-' + postid + ' .wpf-mod-message').visible(); $('#wpforo-wrap .wpf-status-title').visible(); $('#approvetext' + postid).text(' ' + wpforo_phrase('Approve')); if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Approve')); } } wpforo_load_hide(); window.location.reload(); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_unapprove_ajax', { response }); }); }); // Private wpforo_wrap.on('click', '.wpforo-private:not(.wpf-processing)', function () { wpforo_load_show(); var postid_value = $(this).attr('id'), $this = $(this); var topicid = postid_value.replace('wpfprivate', ''); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { topicid: topicid, status: 'private', action: 'wpforo_private_ajax', _wpfnonce: wpforo['nonces']['wpforo_private_ajax'], }, }).done(function (response) { if (response.success) { $('#' + postid_value).removeClass('wpforo-private').addClass('wpforo-public'); $('#privateicon' + topicid).removeClass('fa-eye-slash').addClass('fa-eye'); $('#privatetext' + topicid).text(' ' + wpforo_phrase('Public')); if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Public')); } } wpforo_load_hide(); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_private_ajax', { response }); }); }); wpforo_wrap.on('click', '.wpforo-public:not(.wpf-processing)', function () { wpforo_load_show(); var postid_value = $(this).attr('id'), $this = $(this); var topicid = postid_value.replace('wpfprivate', ''); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { topicid: topicid, status: 'public', action: 'wpforo_private_ajax', _wpfnonce: wpforo['nonces']['wpforo_private_ajax'], }, }).done(function (response) { if (response.success) { $('#' + postid_value).removeClass('wpforo-public').addClass('wpforo-private'); $('#privateicon' + topicid).removeClass('fa-eye').addClass('fa-eye-slash'); $('#privatetext' + topicid).text(' ' + wpforo_phrase('Private')); if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Private')); } } wpforo_load_hide(); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_unprivate_ajax', { response }); }); }); // Solved wpforo_wrap.on('click', '.wpforo-solved:not(.wpf-processing)', function () { wpforo_load_show(); var postid_value = $(this).attr('id'), $this = $(this); var postid = postid_value.replace('wpfsolved', ''); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { postid: postid, status: 'solved', action: 'wpforo_solved_ajax', _wpfnonce: wpforo['nonces']['wpforo_solved_ajax'], }, }).done(function (response) { if (response.success) { $('#' + postid_value).removeClass('wpforo-solved').addClass('wpforo-unsolved'); $('#solvedtext' + postid).text(' ' + wpforo_phrase('Unsolved')); if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Unsolved')); } } wpforo_load_hide(); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_solved_ajax', { response }); }); }); wpforo_wrap.on('click', '.wpforo-unsolved:not(.wpf-processing)', function () { wpforo_load_show(); var postid_value = $(this).attr('id'), $this = $(this); var postid = postid_value.replace('wpfsolved', ''); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { postid: postid, status: 'unsolved', action: 'wpforo_solved_ajax', _wpfnonce: wpforo['nonces']['wpforo_solved_ajax'], }, }).done(function (response) { if (response.success) { $('#' + postid_value).removeClass('wpforo-unsolved').addClass('wpforo-solved'); $('#solvedtext' + postid).text(' ' + wpforo_phrase('Solved')); if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Solved')); } } wpforo_load_hide(); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_unsolved_ajax', { response }); }); }); // Close wpforo_wrap.on('click', '.wpforo-close:not(.wpf-processing)', function () { wpforo_load_show(); var postid_value = $(this).attr('id'), $this = $(this); var topicid = postid_value.replace('wpfclose', ''); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { topicid: topicid, status: 'close', action: 'wpforo_close_ajax', _wpfnonce: wpforo['nonces']['wpforo_close_ajax'], }, }).done(function (response) { if (response.success) { $('#' + postid_value).removeClass('wpforo-close').addClass('wpforo-open'); $('#closeicon' + topicid).removeClass('fa-lock').addClass('fa-unlock'); $('#closetext' + topicid).text(' ' + wpforo_phrase('Open')); if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Open')); } $('.wpf-form-wrapper').remove(); $('.wpforo-reply').remove(); $('.wpforo-quote').remove(); $('.wpforo-edit').remove(); $('.wpf-answer-button').remove(); $('.wpf-add-comment-button').remove(); } wpforo_load_hide(); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_close_ajax', { response }); }); }); wpforo_wrap.on('click', '.wpforo-open:not(.wpf-processing)', function () { wpforo_load_show(); var postid_value = $(this).attr('id'), $this = $(this); var topicid = postid_value.replace('wpfclose', ''); $this.addClass('wpf-processing'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { topicid: topicid, status: 'closed', action: 'wpforo_close_ajax', _wpfnonce: wpforo['nonces']['wpforo_close_ajax'], }, }).done(function (response) { if (response.success) { if ($this.is('[wpf-tooltip]')) { $this.attr('wpf-tooltip', wpforo_phrase('Close')); } window.location.reload(); } wpforo_load_hide(); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_open_ajax', { response }); }); }); // Edit post wpforo_wrap.on('click', '.wpforo-edit:not(.wpf-processing)', function () { var $this = $(this); var wrap = $(this).closest('[id^=post-][data-postid]'); if (wrap.length) { $this.addClass('wpf-processing'); var children = wrap.contents().not(':hidden'); var loading = $('<div class="wpforo-loading-portable"><i class="fas fa-3x fa-circle-notch fa-spin"></i></div>'); wrap.append(loading); var show_form = function (form, init) { loading.remove(); children.fadeOut('fast'); var f = $(form); f.on('click', '.wpf-edit-post-cancel', function (e) { e.stopPropagation(); e.preventDefault(); f.fadeOut('fast'); children.fadeIn('slow'); wpforo_editor.set_active(wpforo_editor.get_main()); $('html').scrollTop((wrap.offset().top - 80)); }); if (init) { f.appendTo(wrap); wpforo_trigger_custom_event(document, 'wpforo_topic_portable_form', f); } f.fadeIn('slow'); $('html').scrollTop((wrap.offset().top - 80)); $this.removeClass('wpf-processing'); }; var f = $('.wpf-form-wrapper', wrap); if (f.length) { show_form(f); } else { $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { postid: parseInt(wrap.data('postid')), action: 'wpforo_post_edit', _wpfnonce: wpforo['nonces']['wpforo_post_edit'], }, }).done(function (response) { if (response.success) show_form(response.data.html, true); wpforo_trigger_custom_event(document, 'wpforo_post_edit', { response }); }); } } }); // Delete wpforo_wrap.on('click', '.wpforo-delete:not(.wpf-processing)', function () { if (confirm(wpforo_ucwords(wpforo_phrase('are you sure you want to delete?')))) { wpforo_load_show(); var $this = $(this); $this.addClass('wpf-processing'); var postid_value = $(this).attr('id'); var is_topic = postid_value.indexOf('topic'); var postid, status_value; if (is_topic === -1) { postid = postid_value.replace('wpfreplydelete', ''); status_value = 'reply'; } else { postid = postid_value.replace('wpftopicdelete', ''); status_value = 'topic'; } var forumid = 0; var wpf_forumid = $('input[type=\'hidden\'].wpf-form-forumid'); if (wpf_forumid.length) forumid = wpf_forumid.val(); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { forumid: forumid, postid: postid, status: status_value, action: 'wpforo_delete_ajax', _wpfnonce: wpforo['nonces']['wpforo_delete_ajax'], }, }).done(function (response) { if (response.success) { if (is_topic === -1) { var to_be_removed = $('#post-' + response.data.postid); if (to_be_removed.hasClass('wpf-answer-wrap')) { var qa_item_wrap = to_be_removed.parents('.wpforo-qa-item-wrap'); if (qa_item_wrap.length) to_be_removed = qa_item_wrap; } to_be_removed.remove().delay(200); $('#wpf-post-replies-' + response.data.postid).remove().delay(100); $('#wpf-ttgg-' + response.data.root + ' .wpf-post-replies-count').text(response.data.root_count); } else { window.location.assign(response.data.location); } } wpforo_load_hide(); wpforo_notice_show(response.data.notice, (response.success ? 'success' : 'error')); $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_delete_ajax', { response }); }); } }); // Subscribe wpforo_wrap.on('click', '.wpf-subscribe-forum:not(.wpf-processing), .wpf-subscribe-topic:not(.wpf-processing), .wpf-subscribe-user:not(.wpf-processing)', function () { wpforo_load_show(); var $this = $(this); $this.addClass('wpf-processing'); var type = $this.data('type'); var itemid = $this.data('itemid'); $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { itemid, type, status: 'subscribe', action: 'wpforo_subscribe_ajax', _wpfnonce: wpforo['nonces']['wpforo_subscribe_ajax'], }, }).done(function (response) { if (response.success) { $this.removeClass('wpfcl-5').removeClass('wpf-subscribe-' + type).addClass('wpf-unsubscribe-' + type).text(' ' + wpforo_phrase('Unsubscribe')); } wpforo_notice_show(response.data.notice, (response.success ? 'success' : 'error')); wpforo_trigger_custom_event(document, 'wpforo_subscribe_ajax', { response }); }).always(function () { wpforo_load_hide(); $this.removeClass('wpf-processing'); }); }); wpforo_wrap.on('click', '.wpf-unsubscribe-forum:not(.wpf-processing), .wpf-unsubscribe-topic:not(.wpf-processing), .wpf-unsubscribe-user:not(.wpf-processing)', function () { wpforo_load_show(); var $this = $(this); $this.addClass('wpf-processing'); var type = $this.data('type'); var itemid = $this.data('itemid'); var button_phrase = ''; if (type === 'forum') { button_phrase = wpforo_ucwords(wpforo_phrase('Subscribe for new topics')); } else if (type === 'topic') { button_phrase = wpforo_ucwords(wpforo_phrase('Subscribe for new replies')); } else if (type === 'user') { button_phrase = wpforo_ucwords(wpforo_phrase('Subscribe for new posts')); } $.ajax({ type: 'POST', url: wpforo.ajax_url, data: { itemid, type, status: 'unsubscribe', action: 'wpforo_subscribe_ajax', _wpfnonce: wpforo['nonces']['wpforo_subscribe_ajax'], }, }).done(function (response) { if (response.success) { $this.removeClass('wpf-unsubscribe-' + type).addClass('wpf-subscribe-' + type).addClass('wpfcl-5').text(' ' + button_phrase); } wpforo_notice_show(response.data.notice, (response.success ? 'success' : 'error')); wpforo_trigger_custom_event(document, 'wpforo_unsubscribe_ajax', { response }); }).always(function () { wpforo_load_hide(); $this.removeClass('wpf-processing'); }); }); wpforo_wrap.on('change', '.wpf-topic-form-forumid', function () { var $this = $(this); var form_wrap = $this.closest('.wpf-topic-form-extra-wrap'); var form_ajax_wrap = $('.wpf-topic-form-ajax-wrap', form_wrap); var l = $('<i class="fas fa-spinner fa-spin wpf-icon-spinner"></i>'); form_ajax_wrap.empty(); l.appendTo(form_ajax_wrap); $this.attr('disabled', true); $('.wpf-topic-form-no-selected-forum', form_wrap).hide(); var forumid = parseInt($this.val()); if (forumid) { $.ajax({ type: 'POST', data: { forumid: forumid, action: 'wpforo_topic_portable_form', _wpfnonce: wpforo['nonces']['wpforo_topic_portable_form'], }, }).done(function (response) { l.remove(); if (response.success) { var f = $(response.data); form_ajax_wrap.empty(); f.appendTo(form_ajax_wrap); f.fadeIn('slow'); wpforo_trigger_custom_event(document, 'wpforo_topic_portable_form', f); } $this.attr('disabled', false); }); } }); wpforo_wrap.on('click', '.wpforo-tools', function () { var tools = $('#wpf_moderation_tools'); if (tools.is(':visible')) { tools.slideUp(250, 'linear'); } else { wpforo_load_show(); tools.find('.wpf-tool-tabs .wpf-tool-tab').removeClass('wpf-tt-active'); tools.find('.wpf-tool-tabs .wpf-tool-tab:first-child').addClass('wpf-tt-active'); wpforo_topic_tools_tab_load(); } }); wpforo_wrap.on('click', '#wpf_moderation_tools .wpf-tool-tabs .wpf-tool-tab:not(.wpf-tt-active)', function () { wpforo_notice_hide(); $(this).siblings('.wpf-tool-tab').removeClass('wpf-tt-active'); if (!$(this).hasClass('wpf-tt-active')) $(this).addClass('wpf-tt-active'); wpforo_topic_tools_tab_load(); }); wpforo_topic_tools_tab_load(); wpforo_wrap.on('click', 'div.wpfl-4:not(.wpf-processing) .wpf-load-threads a.wpf-threads-filter', function () { var wrap = $(this).parents('div.wpfl-4'); var topics_list = $('.wpf-thread-list', wrap); topics_list.data('paged', 0); topics_list.data('filter', $(this).data('filter')); $('.wpf-more-topics > a', wrap).trigger('click'); $(this).siblings('a.wpf-threads-filter').removeClass('wpf-active'); $(this).addClass('wpf-active'); }); wpforo_wrap.on('click', 'div.wpfl-4:not(.wpf-processing) .wpf-more-topics > a', function () { var $this = $(this); var wrap = $this.parents('div.wpfl-4'); wrap.addClass('wpf-processing'); var topics_list = $('.wpf-thread-list', wrap); var filter = topics_list.data('filter'); var forumid = topics_list.data('forumid'); var paged = topics_list.data('paged'); var append = paged !== 0; topics_list.data('paged', ++paged); var load_msg = wpforo_phrase('Loading Topics'); wpforo_load_show(load_msg); var i = $('.wpf-load-threads a.wpf-threads-filter[data-filter="' + filter + '"] i', wrap); var i_class = i.attr('class'); var i_spin_class = 'fas fa-circle-notch fa-spin'; var i_toggle_class = i_class + ' ' + i_spin_class; var i2 = $('i', $this); var i2_class = i2.attr('class'); var i2_toggle_class = i2_class + ' ' + i_spin_class; wpforo_notice_hide(); i.toggleClass(i_toggle_class); if (append) i2.toggleClass(i2_toggle_class); $.ajax({ type: 'POST', data: { forumid: forumid, filter: filter, paged: paged, action: 'wpforo_layout4_loadmore', _wpfnonce: wpforo['nonces']['wpforo_layout4_loadmore'], }, }).done(function (response) { if (response.success) { if (append) { topics_list.append(response.data.output_html); } else { topics_list.html(response.data.output_html); $this.show(); } } else { if (!append) { topics_list.html('<span class="wpf-no-thread">' + wpforo_phrase('No threads found') + '</span>'); } } if (response.data.no_more) { $this.hide(); } i.toggleClass(i_toggle_class); if (append) i2.toggleClass(i2_toggle_class); wpforo_load_hide(); wrap.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_layout4_loadmore', { response }); }); }); wpforo_wrap.on('click', '.wpforo-qa-show-rest-comments:not(.wpf-processing)', function () { wpforo_load_show(); var $this = $(this); $this.addClass('wpf-processing'); var wrap = $this.parents('.wpforo-qa-item-wrap'); var root_wrap = wrap.children('.post-wrap'); var comments_list = $('.wpforo-qa-comments', wrap); var parentid = root_wrap.data('postid'); $.ajax({ type: 'POST', data: { parentid: parentid, action: 'wpforo_qa_comment_loadrest', _wpfnonce: wpforo['nonces']['wpforo_qa_comment_loadrest'], }, }).done(function (response) { if (response.success) { comments_list.append(response.data['output_html']); $this.remove(); wpforo_load_hide(); } $this.removeClass('wpf-processing'); wpforo_trigger_custom_event(document, 'wpforo_qa_comment_loadrest', { response }); }); }); wpforo_wrap.on('click', 'form[data-textareaid] .wpforo_post_preview:not(.wpf-disabled):not(.wpf-processing)', function () { var $this = $(this); var ico = $('.wpf-rev-preview-ico', $this); var form = $this.closest('form[data-textareaid]'); //$('.wpforo_save_revision', form).trigger("click"); var textareaid = form.data('textareaid'); var postid = $('input.wpf-form-postid', form).val(); var body = wpforo_editor.get_content('raw'); var body_info = wpforo_editor.get_stats(); if (textareaid && body_info.has_content) { $this.addClass('wpf-processing'); wpforo_load_show(); ico.toggleClass('fa-eye fa-circle-notch fa-spin'); $.ajax({ type: 'POST', data: { textareaid: textareaid, postid: postid, body: body, action: 'wpforo_post_preview', _wpfnonce: wpforo['nonces']['wpforo_post_preview'], }, }).done(function (response) { if (response.success) { $('.wpforo-revisions-action-buttons .wpforo-revision-action-button', form).removeClass('wpf-rev-button-active'); $this.addClass('wpf-rev-button-active'); $('.wpforo-revisions-preview-wrap', form).html(response.data); } wpforo_trigger_custom_event(document, 'wpforo_post_preview', { response }); }).always(function () { wpforo_load_hide(); ico.toggleClass('fa-eye fa-circle-notch fa-spin'); $this.removeClass('wpf-processing'); }); } }); wpforo_wrap.on('click', 'form[data-textareaid] .wpforo_save_revision:not(.wpf-processing)', function () { var $this = $(this); if ($this.is(':visible')) { var ico = $('.wpf-rev-save-ico', $this); var form = $this.closest('form[data-textareaid]'); var textareaid = form.data('textareaid'); var postid = $('input.wpf-form-postid', form).val(); var body = wpforo_editor.get_content('raw'); var body_info = wpforo_editor.get_stats(); if (textareaid && body_info.has_content) { $this.addClass('wpf-processing'); wpforo_load_show('Saving Draft'); ico.toggleClass('fa-save fa-circle-notch fa-spin'); $.ajax({ type: 'POST', data: { textareaid: textareaid, postid: postid, body: body, action: 'wpforo_save_revision', _wpfnonce: wpforo['nonces']['wpforo_save_revision'], }, }).done(function (response) { if (response.success) { wpforo_deactivate_revision_action_buttons(form); $('.wpf-rev-history-count', form).text(response.data.revisions_count); if (response.data.revisionhtml && $('.wpforo_revisions_history', form).hasClass('wpf-rev-button-active')) { var revisions_preview_wrap = $('.wpforo-revisions-preview-wrap', form); revisions_preview_wrap.prepend(response.data.revisionhtml); var wpforo_revision = $('.wpforo-revision', revisions_preview_wrap); if (wpforo_revision.length >= wpforo.revision_options.max_drafts_per_page) { wpforo_revision.each(function (i) { if (i >= wpforo.revision_options.max_drafts_per_page) $(this).remove(); }); } } } wpforo_trigger_custom_event(document, 'wpforo_save_revision', { response }); }).always(function () { wpforo_load_hide(); ico.toggleClass('fa-save fa-circle-notch fa-spin'); $this.removeClass('wpf-processing'); }); } } }); wpforo_wrap.on('click', 'form[data-textareaid] .wpforo_revisions_history:not(.wpf-processing)', function () { var $this = $(this); var ico = $('.wpf-rev-ico', $this); var form = $this.closest('form[data-textareaid]'); var textareaid = form.data('textareaid'); var postid = $('input.wpf-form-postid', form).val(); if (textareaid) { $this.addClass('wpf-processing'); wpforo_load_show(); ico.toggleClass('fa-history fa-circle-notch fa-spin'); $.ajax({ type: 'POST', data: { textareaid: textareaid, postid: postid, action: 'wpforo_get_revisions_history', _wpfnonce: wpforo['nonces']['wpforo_get_revisions_history'], }, }).done(function (response) { if (response.success) { $('.wpf-rev-history-count', form).text(response.data.revisions_count); $('.wpforo-revisions-action-buttons .wpforo-revision-action-button', form).removeClass('wpf-rev-button-active'); $this.addClass('wpf-rev-button-active'); $('.wpforo-revisions-preview-wrap', form).html(response.data.revisionhtml); } wpforo_trigger_custom_event(document, 'wpforo_get_revisions_history', { response }); }).always(function () { wpforo_load_hide(); ico.toggleClass('fa-history fa-circle-notch fa-spin'); $this.removeClass('wpf-processing'); }); } }); wpforo_wrap.on('click', 'form[data-textareaid] .wpforo-revision-action-restore:not(.wpf-processing)', function () { var $this = $(this); var ico = $('.wpf-rev-ico', $this); var form = $this.closest('form[data-textareaid]'); var rev_wrap = $this.closest('.wpforo-revision[data-revisionid]'); if (rev_wrap.length) { $this.addClass('wpf-processing'); wpforo_load_show('Restore Revision'); ico.toggleClass('fa-history fa-circle-notch fa-spin'); var revisionid = rev_wrap.data('revisionid'); $.ajax({ type: 'POST', data: { revisionid: revisionid, action: 'wpforo_get_revision', _wpfnonce: wpforo['nonces']['wpforo_get_revision'], }, }).done(function (response) { if (response.success) { wpforo_editor.set_content(response.data.body); } wpforo_trigger_custom_event(document, 'wpforo_get_revision', { response }); }).always(function () { wpforo_load_hide(); ico.toggleClass('fa-history fa-circle-notch fa-spin'); $this.removeClass('wpf-processing'); }); } }); wpforo_wrap.on('click', 'form[data-textareaid] .wpforo-revision-action-delete:not(.wpf-processing)', function () { var $this = $(this); var ico = $('.wpf-rev-ico', $this); var form = $this.closest('form[data-textareaid]'); var rev_wrap = $this.closest('.wpforo-revision[data-revisionid]'); if (rev_wrap.length) { $this.addClass('wpf-processing'); wpforo_load_show('Deleting Revision'); ico.toggleClass('fa-trash fa-circle-notch fa-spin'); var revisionid = rev_wrap.data('revisionid'); $.ajax({ type: 'POST', data: { revisionid: revisionid, action: 'wpforo_delete_revision', _wpfnonce: wpforo['nonces']['wpforo_delete_revision'], }, }).done(function (response) { if (response.success) { rev_wrap.fadeOut(500, function () { rev_wrap.remove(); $('.wpf-rev-history-count', form).text(response.data.revisions_count); }); } wpforo_trigger_custom_event(document, 'wpforo_delete_revision', { response }); }).always(function () { wpforo_load_hide(); ico.toggleClass('fa-trash fa-circle-notch fa-spin'); $this.removeClass('wpf-processing'); }); } }); wpforo_wrap.on('click', '.wpforo-user-actions .wpf-ab-mute_mention:not(.wpf-processing)', function () { var $this = $(this); var currentstate = parseInt($this.data('currentstate')); if (isNaN(currentstate)) currentstate = 0; $this.addClass('wpf-processing'); wpforo_load_show(); $.ajax({ type: 'POST', data: { currentstate, action: 'wpforo_mute_mentions', _wpfnonce: wpforo['nonces']['wpforo_mute_mentions'], }, }).done(function (response) { if (response.success) { $('> i', $this).replaceWith(response.data['ico']); wpforo_setAttr($this, 'data-currentstate', response.data['currentstate']); var label = $this.data((response.data['currentstate'] ? 'active_label' : 'inactive_label')); wpforo_setAttr($this, 'wpf-tooltip', label); } wpforo_trigger_custom_event(document, 'wpforo_mute_mentions', { response }); }).always(function () { wpforo_load_hide(); $this.removeClass('wpf-processing'); }); }); wpforo_wrap.on('click', '.wpforo-user-actions .wpf-ab-ban:not(.wpf-processing)', function () { var $this = $(this); var currentstate = parseInt($this.data('currentstate')); if (isNaN(currentstate)) currentstate = 1; $this.addClass('wpf-processing'); wpforo_load_show(); $.ajax({ type: 'POST', data: { currentstate, action: 'wpforo_user_ban', _wpfnonce: wpforo['nonces']['wpforo_user_ban'], }, }).done(function (response) { if (response.success) { wpforo_setAttr($this, 'data-currentstate', response.data['currentstate']); var label = $this.data((response.data['currentstate'] ? 'active_label' : 'inactive_label')); wpforo_setAttr($this, 'wpf-tooltip', label); } wpforo_notice_show(response.data['notice']); wpforo_trigger_custom_event(document, 'wpforo_user_ban', { response }); }).always(function () { wpforo_load_hide(); $this.removeClass('wpf-processing'); }); }); function wpforo_activate_revision_action_buttons (form) { var rev_saved = $('.wpforo_revision_saved', form); if (rev_saved.is(':visible')) { rev_saved.fadeOut(1000, function () { var save_revision = $('.wpforo_save_revision', form); save_revision.show(); if (wpforo.revision_options.is_draft_on && parseInt(wpforo.revision_options.auto_draft_interval) && !save_revision.data('auto_draft')) { setInterval(function () { save_revision.trigger('click'); }, wpforo.revision_options.auto_draft_interval); save_revision.data('auto_draft', true); } }); } } function wpforo_deactivate_revision_action_buttons (form) { $('.wpforo_revision_saved', form).show(); $('.wpforo_save_revision', form).hide(); } function wpforo_content_changed () { var form = $('form[data-textareaid="' + wpforo_editor.get_active_textareaid() + '"]'); if (wpforo_editor.get_stats().has_content) { wpforo_activate_revision_action_buttons(form); $('.wpforo_post_preview', form).removeClass('wpf-disabled'); } else { wpforo_deactivate_revision_action_buttons(form); $('.wpforo_post_preview', form).addClass('wpf-disabled'); } } function wpforo_content_ctrl_s () { $('form[data-textareaid="' + wpforo_editor.get_active_textareaid() + '"] .wpforo_save_revision').trigger('click'); } wpforo_wrap.on('input propertychange', 'form[data-textareaid] textarea', function (e) { wpforo_trigger_custom_event(document, 'wpforo_textarea_content_changed', e); }); document.addEventListener('wpforo_tinymce_content_changed', wpforo_content_changed); document.addEventListener('wpforo_textarea_content_changed', wpforo_content_changed); document.addEventListener('wpforo_tinymce_ctrl_s', wpforo_content_ctrl_s); document.addEventListener('wpforo_textarea_ctrl_s', wpforo_content_ctrl_s); wpforo_tags_suggest(); document.addEventListener('wpforo_topic_portable_form', function (e) { wpforo_tags_suggest(); window.wpforo_fix_form_data_attributes(); var f = e.detail; if (f && f.length) { var t = $('[type="text"][required]', f); if (t.length && t.val().length) { wpforo_tinymce_initializeIt('[data-wpforoeditor="tinymce"]'); } else { wpforo_tinymce_initializeIt('[data-wpforoeditor="tinymce"]', true); t.trigger('focus'); } } }); wpforo_wrap.on('click', '.wpforo-rcn-wrap .wpforo-rcn-dismiss-button:not(.wpf-processing)', function () { var $this = $(this); $this.addClass('wpf-processing'); wpforo_load_show(); var wrap = $(this).closest('.wpforo-rcn-wrap'); $.ajax({ type: 'POST', data: { backend: 0, action: 'wpforo_dissmiss_recaptcha_note', }, }).done(function (response) { if (response.success) { wrap.remove(); wpforo_notice_show('done', 'success'); } wpforo_trigger_custom_event(document, 'wpforo_dissmiss_recaptcha_note', { response }); }).always(function () { wpforo_load_hide(); $this.removeClass('wpf-processing'); }); }); wpforo_wrap.on('click', '.wpf-admincp .wpf-acp-toggle:not(.wpf-processing)', function () { var $this = $(this); $this.addClass('wpf-processing'); var wrap = $this.closest('.wpf-admincp'); $('.wpf-acp-body', wrap).slideToggle(function () { $('.fas', $this).toggleClass('fa-minus-square fa-plus-square'); var toggle_status = $(this).is(':visible') ? 'open' : 'close'; $.ajax({ type: 'POST', data: { toggle_status: toggle_status, action: 'wpforo_acp_toggle', _wpfnonce: wpforo['nonces']['wpforo_acp_toggle'], }, }).always(function () { $this.removeClass('wpf-processing'); }); }); }); /* -- #################################################### -- */ /* image adjust and upload from frontend */ function processfile (file, max_width, max_height, quality, callback) { if (!(/image/i).test(file.type)) { alert('File ' + file.name + ' is not an image.'); return false; } // read the files var reader = new FileReader(); reader.readAsArrayBuffer(file); reader.onload = function (event) { // blob stuff var blob = new Blob([event.target.result]); // create blob... window.URL = window.URL || window.webkitURL; var blobURL = window.URL.createObjectURL(blob); // and get its URL // helper Image object var image = new Image(); image.src = blobURL; //preview.appendChild(image); // preview commented out, I am using the canvas instead image.onload = function () { // have to wait till it's loaded var resized = resizeMe(image, max_width, max_height, quality); // send it to canvas callback(resized); }; }; } // === RESIZE ==== function resizeMe (img, max_width, max_height, quality) { var canvas = document.createElement('canvas'); var width = img.width; var height = img.height; // calculate the width and height, constraining the proportions if (width > height) { if (width > max_width) { //height *= max_width / width; height = Math.round(height *= max_width / width); width = max_width; } } else { if (height > max_height) { //width *= max_height / height; width = Math.round(width *= max_height / height); height = max_height; } } // resize the canvas and draw the image data into it canvas.width = width; canvas.height = height; var ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0, width, height); return canvas.toDataURL('image/jpeg', quality); // get the data from canvas as 70% JPG (can be also PNG, etc.) } function OpenFileDialog (accept, callback) { // this function must be called from a user // activation event (ie an onclick event) // Create an input element var inputElement = document.createElement('input'); // Set its type to file inputElement.type = 'file'; // Set accept to the file types you want the user to select. // Include both the file extension and the mime type inputElement.accept = accept; // set onchange event to call callback when user has selected file inputElement.addEventListener('change', callback); // dispatch a click event to open the file dialog inputElement.dispatchEvent(new MouseEvent('click')); } wpforo_wrap.on('click', '.wpforo-profile .wpforo-profile-head .wpf-edit-cover:not(.wpf-processing)', function (e) { if (e.target.dataset['action'] === 'editcover') { var options = $('.wpf-edit-cover-options', $(this)); options.css('display', (options.is(':visible') ? 'none' : 'flex')); } }); wpforo_wrap.on('click', '.wpforo-profile .wpforo-profile-head .wpf-edit-cover .wpf-upload-cover:not(.wpf-processing)', function () { if (!(window.File && window.FileReader && window.FileList && window.Blob)) { alert('The File APIs are not fully supported in this browser.'); return false; } var that = $(this); that.closest('.wpf-edit-cover-options').hide(); OpenFileDialog('image/png,image/jpg,image/jpeg,image/gif', function () { if (this.files.length) { that.addClass('wpf-processing'); wpforo_load_show('Uploading...'); processfile(this.files[0], 1120, 460, 0.7, function (imageblob) { $wpf.ajax({ type: 'POST', data: { image_blob: imageblob, action: 'wpforo_profile_cover_upload', _wpfnonce: wpforo['nonces']['wpforo_profile_cover_upload'], }, }).done(function () { that.closest('.wpforo-profile-head').css('background-image', 'url(\'' + imageblob + '\')'); wpforo_trigger_custom_event(document, 'wpforo_profile_cover_upload', { imageblob }); }).always(function () { that.removeClass('wpf-processing'); wpforo_load_hide(); }); }); } }); }); wpforo_wrap.on('click', '.wpforo-profile .wpforo-profile-head .wpf-edit-cover .wpf-delete-cover:not(.wpf-processing)', function () { var that = $(this); that.closest('.wpf-edit-cover-options').hide(); that.addClass('wpf-processing'); wpforo_load_show('Uploading...'); $wpf.ajax({ type: 'POST', data: { action: 'wpforo_profile_cover_delete', _wpfnonce: wpforo['nonces']['wpforo_profile_cover_delete'], }, }).done(function (r) { if (r.success) that.closest('.wpforo-profile-head').css('background-image', 'url(\'' + r.data['background_url'] + '\')'); wpforo_trigger_custom_event(document, 'wpforo_profile_cover_delete', { r }); }).always(function () { that.removeClass('wpf-processing'); wpforo_load_hide(); }); }); wpforo_wrap.on('click', '.wpforo-profile .wpforo-follow-user:not(.wpf-processing)', function () { if (document.body.classList.contains('logged-in')) { var that = $(this); var userid = parseInt(that.data('userid')); var stat = !parseInt(that.data('stat')); that.addClass('wpf-processing'); wpforo_load_show(); $wpf.ajax({ type: 'POST', data: { userid, stat: (stat ? 1 : 0), action: 'wpforo_follow_unfollow_user', _wpfnonce: wpforo['nonces']['wpforo_follow_unfollow_user'], }, }).done(function (r) { if (r.success) { that.data('stat', r.data['stat']); that.prop('stat', r.data['stat']); that.attr('stat', r.data['stat']); $('.wpforo-follow-user-label', that).text(r.data['phrase']); $('.wpforo-follow-user-followers-count', that.closest('.wpforo-follow-wrap')).text(r.data['followers_count']); } wpforo_notice_show(r.data['notice'], (r.success ? 'success' : 'error')); wpforo_trigger_custom_event(document, 'wpforo_follow_unfollow_user', { stat, r }); }).always(function () { that.removeClass('wpf-processing'); wpforo_load_hide(); }); } else { wpforo_notice_show(wpforo['notice']['login_or_register']); } }); wpforo_wrap.on('click', '.wpforo-post-head .wpf-pb-more', function () { var that = $(this); var wrap = that.closest('.wpforo-post-head'); var topicid = parseInt(that.closest('.wpforo-topic-head-wrap[data-topicid]').data('topicid')); if (!isNaN(topicid) && topicid) { that.find('span > svg').toggle(); var more = $('.wpf-topic-more-info', wrap); var already_loaded = !!more.html().trim(); if (!(!already_loaded && more.is(':visible'))) more.toggle(); if (!already_loaded) { more.addClass('wpforo-section-loading'); $wpf.ajax({ type: 'POST', data: { topicid, action: 'wpforo_get_topic_head_more_info', _wpfnonce: wpforo['nonces']['wpforo_get_topic_head_more_info'], }, }).done(function (r) { if (r.success) { more.html(r.data['html']); } wpforo_trigger_custom_event(document, 'wpforo_get_topic_head_more_info', { r }); }).always(function () { more.removeClass('wpforo-section-loading'); }); } var ico = $('i.fa-chevron-up, i.fa-chevron-down', that); var label = $('span', that); if (more.is(':visible')) { ico.removeClass('fa-chevron-down').addClass('fa-chevron-up'); } else { ico.removeClass('fa-chevron-up').addClass('fa-chevron-down'); } } }); var topic_head_more_info = $('.wpforo-topic-head-wrap .wpf-topic-more-info', wpforo_wrap); if (topic_head_more_info.is(':visible') && !topic_head_more_info.html().trim()) { $('.wpforo-post-head .wpf-pb-more', wpforo_wrap).trigger('click'); } wpforo_wrap.on('click', '.wpf-tmi-overview .wpf-action.wpf-topic-overview-load-more:not(.wpf-processing)', function () { var that = $(this); var wrap = that.closest('.wpf-tmi-overview'); var tree = $('.wpf-topic-overview-tree', wrap); var nomore = parseInt(tree.data('nomore')); if (!nomore) { var topicid = parseInt(that.closest('.wpforo-topic-head-wrap[data-topicid]').data('topicid')); if (!isNaN(topicid)) { that.addClass('wpf-processing'); wpforo_load_show(); var chunksize = parseInt(tree.data('chunksize')); var offset = parseInt(tree.data('offset')); if (isNaN(chunksize)) chunksize = 5; if (isNaN(offset)) offset = 0; offset = offset + chunksize; $wpf.ajax({ type: 'POST', data: { topicid, chunksize, offset, action: 'wpforo_get_topic_overview_chunk', _wpfnonce: wpforo['nonces']['wpforo_get_topic_overview_chunk'], }, }).done(function (r) { if (r.success) { var nomore = r.data['nomore'] ? 1 : 0; tree.append(r.data['html']); wpforo_setAttr(tree, 'data-offset', offset); wpforo_setAttr(tree, 'data-chunksize', chunksize); wpforo_setAttr(tree, 'data-nomore', nomore); } wpforo_trigger_custom_event(document, 'wpforo_get_topic_overview_chunk', { r }); }).always(function () { that.removeClass('wpf-processing'); wpforo_load_hide(); }); } } }); wpforo_wrap.on('click', '.wpf-tmi-overview .wpf-topic-overview-tree .wpf-tmi-item .wpf-link.wpf-tmi-item-body-excerpt:not(.wpf-processing)', function () { var $this = $(this); var postid = parseInt($this.data('postid')); if (!isNaN(postid)) { if (!wpforo['overview']) wpforo['overview'] = []; var overview = wpforo['overview'][postid]; if (!overview) { $this.addClass('wpf-processing'); wpforo_load_show(); $.ajax({ type: 'POST', data: { postid, action: 'wpforo_get_overview', _wpfnonce: wpforo['nonces']['wpforo_get_overview'], }, }).done(function (r) { if (r.success) { wpforo['overview'][postid] = r.data; wpforo_dialog_show(r.data['title'], r.data['content'], '50%', '350px'); } wpforo_trigger_custom_event(document, 'wpforo_get_overview', { r }); }).always(function () { $this.removeClass('wpf-processing'); wpforo_load_hide(); }); } else { wpforo_dialog_show(overview['title'], overview['content'], '50%', '350px'); } } }); wpforo_wrap.on('click', '.wpf-action.wpforo-bookmark:not(.wpf-processing), .wpf-action.wpforo-unbookmark:not(.wpf-processing)', {}, function () { var $this = $(this); var wrap = $this.closest('.post-wrap[data-postid], .reply-wrap[data-postid], .comment-wrap[data-postid]'); if (wrap.length) { var postid = parseInt(wrap.data('postid')); if (!isNaN(postid)) { $this.addClass('wpf-processing'); var _action = ($this.hasClass('wpforo-bookmark') ? 'wpforo_bookmark' : 'wpforo_unbookmark'); $.ajax({ type: 'POST', data: { postid, action: _action, _wpfnonce: wpforo['nonces'][_action], }, }).done(function (r) { if (r.success) $this.replaceWith(r.data['button']); wpforo_trigger_custom_event(document, _action, { r }); }).always(function () { $this.removeClass('wpf-processing'); }); } } }); wpforo_wrap.on('click', '.sbn-action .wpf-sbn-unsbscrb:not(.wpf-processing)', {}, function () { var $this = $(this); var wrap = $this.closest('.wpforo-sb'); var key = $this.data('key'); var boardid = $this.data('boardid'); if (key) { $this.addClass('wpf-processing'); $.ajax({ type: 'POST', data: { key, boardid, action: 'wpforo_unsubscribe', _wpfnonce: wpforo['nonces']['wpforo_unsubscribe'], }, }).done(function (r) { if (r.success) wrap.remove(); wpforo_notice_show(r.data['notice'], (r.success ? 'success' : 'error')); wpforo_trigger_custom_event(document, 'wpforo_unsubscribe', { r }); }).always(function () { $this.removeClass('wpf-processing'); }); } }); function action_get_member_template ($this, wrap, href) { if ($this && $this.length && wrap && wrap.length && href) { $this.addClass('wpf-processing'); wpforo_load_show(); $.ajax({ type: 'POST', data: { href, 'action': 'wpforo_get_member_template', _wpfnonce: wpforo['nonces']['wpforo_get_member_template'], }, }).done(function (r) { if (r.success) { $this.siblings().removeClass('wpf-active'); $this.addClass('wpf-active'); wrap.html(r.data['html']); } wpforo_trigger_custom_event(document, 'wpforo_get_member_template', { r }); }).always(function () { $this.removeClass('wpf-processing'); wpforo_load_hide(); }); } } wpforo_wrap.on('click', '.wpf-member-template-link.wpf-ajax-link:not(.wpf-processing)', {}, function (e) { e.preventDefault(); var $this = $(this); var wrap = $this.closest('.wpf-profile-body'); var href = e.target.href; action_get_member_template($this, wrap, href); }); wpforo_wrap.on('click', '.wpf-member-template-link.wpf-ajax-link .wpf-navi .wpf-navi-dropdown', {}, function () { this.onchange = false; }); wpforo_wrap.on('change', '.wpf-member-template-link.wpf-ajax-link .wpf-navi .wpf-navi-dropdown', {}, function (e) { var $this = $(this).closest('.wpf-member-template-link.wpf-ajax-link'); var wrap = $this.closest('.wpf-profile-body'); action_get_member_template($this, wrap, e.target.value); }); let ts_input_old_value = ''; let ts_request; wpforo_wrap.on('input propertychange', '.wpf-topic-create[data-suggestion="true"] form .wpf-field-name-title input[type="text"]', {}, function () { if ($('input[name=wpfaction][value=topic_add]', $(this).closest('form')).length) { if (ts_request && ts_request.readyState !== 4) ts_request.abort(); setTimeout(() => { const $this = $(this); let input_value = $this.val().trim(); if (input_value.length && ts_input_old_value !== input_value) { wpforo_load_show(); ts_request = $.ajax({ type: 'POST', data: { title: input_value, action: 'wpforo_search_existed_topics', _wpfnonce: wpforo['nonces']['wpforo_search_existed_topics'], }, }).done(function (r) { const tlist = document.createElement('div'); tlist.classList.add('wpf-suggested-topics-list'); $this.siblings('.wpf-suggested-topics-list').remove(); $this.after(tlist); if (r.success) { tlist.innerHTML = '<div class="wpf-suggested-topics-title">' + wpforo_phrase('Discussions that may already have the information you are looking for') + ' <i class="fa-solid fa-angles-down"></i></div>'; r.data.forEach(function (topic) { const node = document.createElement('div'); node.classList.add('wpf-suggested-topic-node'); node.innerHTML = `<i class="fa-solid fa-caret-right"></i> <a href="${topic['url']}" target="_blank">${topic['title']}</a>`; tlist.append(node); }); } wpforo_trigger_custom_event(document, 'wpforo_search_existed_topics', { r }); }).always(function () { wpforo_load_hide(); }); ts_input_old_value = input_value; } }, 700); wpforo_load_hide(); } }); wpforo_wrap.on('focusout', '.wpf-topic-create form .wpf-field-name-title', {}, function () { setTimeout(function () { $('.wpf-topic-create form .wpf-field-name-title .wpf-suggested-topics-list').remove(); }, 100); }); wpforo_wrap.on('click', '.wpforo-user-actions .wpforo-user-tools .wpf-ab-delete', {}, function (e) { const a = $(this).closest('a'); if (a.length) { const action_url = a[0].href; if (action_url) { e.preventDefault(); const pwd = prompt('Please confirm the account deletion by entering your account password.'); if (pwd) { wpforo_load_show(); $.ajax({ type: 'POST', data: { pwd: pwd, action: 'wpforo_confirm_current_user_password', _wpfnonce: wpforo['nonces']['wpforo_confirm_current_user_password'], }, }).done((r) => { if (r.success) { window.location.assign(action_url + '&pwd=' + pwd); } else { wpforo_notice_show('The password you entered is incorrect.', 'error'); } }).always(function () { wpforo_load_hide(); }); } else { wpforo_notice_show('To permanently delete your account from this website, please enter your password for confirmation.', 'error'); } } } }); }); function wpforo_init_phrases () { if ($wpf.active === 0) { $wpf.ajax({ url: wpforo.ajax_url, type: 'POST', dataType: 'json', async: false, data: { action: 'wpforo_get_phrases', _wpfnonce: wpforo['nonces']['wpforo_get_phrases'], }, }).done(function (r) { window.wpforo_phrases = r; wpforo_trigger_custom_event(document, 'wpforo_get_phrases', { r }); }); } } function wpforo_ucwords (str) { return (str + '').replace(/^([a-z])|\s+([a-z])/, function ($1) { return $1.toUpperCase(); }); } function wpforo_topic_tools_tab_load () { var active_tab = $wpf('#wpf_moderation_tools').find('.wpf-tool-tab.wpf-tt-active'); if (active_tab.length) { var active_tab_id = active_tab.attr('id'); if (active_tab_id && $wpf.active === 0) { wpforo_notice_hide(); $wpf('#wpf_tool_tab_content_wrap').html('<i class="fas fa-spinner fa-spin wpf-icon-spinner"></i>'); $wpf.ajax({ type: 'POST', data: { active_tab_id: active_tab_id, action: 'wpforo_active_tab_content_ajax', _wpfnonce: wpforo['nonces']['wpforo_active_tab_content_ajax'], }, }).done(function (response) { if (response) { $wpf('#wpf_tool_tab_content_wrap').html(response); $wpf('#wpf_moderation_tools').slideDown(400, 'linear'); } wpforo_load_hide(); wpforo_trigger_custom_event(document, 'wpforo_active_tab_content_ajax', { response }); }); } } } function wpforo_tags_suggest () { var wpf_tags = $wpf('.wpf-tags'); wpf_tags.suggest( wpforo.ajax_url + (/\?/.test(wpforo.ajax_url) ? '&' : '?') + 'action=wpforo_tag_search', { multiple: true, multipleSep: ',', delay: 1000, minchars: 3, resultsClass: 'wpf_ac_results', selectClass: 'wpf_ac_over', matchClass: 'wpf_ac_match', onSelect: function () {}, }, ); $wpf('.wpf_ac_results').on('blur', function () { wpf_tags.removeClass('wpf-ac-loading'); }); wpf_tags.on('blur', function () { wpf_tags.removeClass('wpf-ac-loading'); }); wpf_tags.on('keydown', function (e) { var tags = wpf_tags.val(); if (tags.length >= 1) { switch (e.code) { case 'ArrowUp': // up case 'ArrowDown': // down case 'Backspace': // backspace case 'Tab': // tab case 'Enter': // return case 'NumpadEnter': // return case 'Escape': // escape case 'Space': // space case 'Comma': // comma wpf_tags.removeClass('wpf-ac-loading'); break; default: wpf_tags.addClass('wpf-ac-loading'); } } setTimeout(function () { wpf_tags.removeClass('wpf-ac-loading'); }, 1000); }, ); }
Save
Cancel