Update from Git Manager GUI
This commit is contained in:
@@ -1944,6 +1944,55 @@
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
/* ── E-Mail-Adresse ändern ──────────────────────────────────────────── */
|
||||
$(document).on('click', '#wbfSaveEmail', function () {
|
||||
var $btn = $(this);
|
||||
var email = $('#wbfNewEmail').val().trim();
|
||||
var password = $('#wbfEmailPassword').val();
|
||||
var $msg = $('#wbfEmailMsg');
|
||||
if (!email) { $msg.removeClass('wbf-ok').addClass('wbf-err').text('Bitte E-Mail eingeben.'); return; }
|
||||
if (!password) { $msg.removeClass('wbf-ok').addClass('wbf-err').text('Bitte Passwort eingeben.'); return; }
|
||||
$btn.prop('disabled', true);
|
||||
wbfPost('wbf_change_email', { new_email: email, password: password }, function (d) {
|
||||
$msg.removeClass('wbf-err').addClass('wbf-ok').text(d.message || 'E-Mail geaendert.');
|
||||
$('#wbfNewEmail').val('');
|
||||
$('#wbfEmailPassword').val('');
|
||||
$btn.prop('disabled', false);
|
||||
}, function (d) {
|
||||
$msg.removeClass('wbf-ok').addClass('wbf-err').text(d.message || 'Fehler.');
|
||||
$btn.prop('disabled', false);
|
||||
});
|
||||
});
|
||||
|
||||
/* ── Toggle-Switch (Notification Prefs) ─────────────────────────────── */
|
||||
$(document).on('click', '.wbf-toggle', function () {
|
||||
var $t = $(this);
|
||||
var on = String($t.data('state')) === '1';
|
||||
var val = on ? '0' : '1';
|
||||
$t.data('state', val).attr('data-state', val);
|
||||
if (val === '1') { $t.addClass('wbf-toggle--on'); }
|
||||
else { $t.removeClass('wbf-toggle--on'); }
|
||||
});
|
||||
|
||||
/* ── Benachrichtigungs-Einstellungen speichern ───────────────────────── */
|
||||
$(document).on('click', '#wbfSaveNotifPrefs', function () {
|
||||
var $btn = $(this);
|
||||
var $msg = $('#wbfNotifPrefsMsg');
|
||||
$btn.prop('disabled', true);
|
||||
wbfPost('wbf_save_notification_prefs', {
|
||||
notify_reply: String($('#wbfNotifReply').data('state')) === '1' ? '1' : '0',
|
||||
notify_mention: String($('#wbfNotifMention').data('state')) === '1' ? '1' : '0',
|
||||
notify_message: String($('#wbfNotifMessage').data('state')) === '1' ? '1' : '0'
|
||||
}, function (d) {
|
||||
$msg.removeClass('wbf-err').addClass('wbf-ok').text(d.message || 'Gespeichert!');
|
||||
$btn.prop('disabled', false);
|
||||
}, function (d) {
|
||||
$msg.removeClass('wbf-ok').addClass('wbf-err').text(d.message || 'Fehler.');
|
||||
$btn.prop('disabled', false);
|
||||
});
|
||||
});
|
||||
|
||||
/* ── Lesezeichen ────────────────────────────────────────────────────── */
|
||||
$(document).on('click', '.wbf-bookmark-btn', function () {
|
||||
var $btn = $(this);
|
||||
@@ -1959,4 +2008,110 @@
|
||||
});
|
||||
});
|
||||
|
||||
/* ── Nutzer ignorieren / Ignorierung aufheben ────────────────────────── */
|
||||
$(document).on('click', '.wbf-ignore-btn', function () {
|
||||
var $btn = $(this);
|
||||
var ignoredId = parseInt($btn.data('id'), 10);
|
||||
var name = $btn.data('name') || 'diesen Nutzer';
|
||||
var isIgnored = String($btn.data('ignored')) === '1';
|
||||
|
||||
// Bestätigung nur beim Ignorieren, nicht beim Entblocken
|
||||
if (!isIgnored) {
|
||||
if (!confirm(name + ' ignorieren?\n\nDessen Beiträge werden in Threads ausgeblendet und DMs werden blockiert.')) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$btn.prop('disabled', true);
|
||||
|
||||
wbfPost('wbf_toggle_ignore', { ignored_id: ignoredId }, function (d) {
|
||||
var nowIgnored = d.ignored;
|
||||
|
||||
// Alle Buttons mit dieser User-ID auf der Seite aktualisieren
|
||||
$('.wbf-ignore-btn[data-id="' + ignoredId + '"]').each(function () {
|
||||
var $b = $(this);
|
||||
$b.data('ignored', nowIgnored ? '1' : '0');
|
||||
$b.attr('data-ignored', nowIgnored ? '1' : '0');
|
||||
|
||||
// Icon + Label aktualisieren
|
||||
$b.find('i').attr('class', 'fas fa-' + (nowIgnored ? 'eye' : 'eye-slash'));
|
||||
|
||||
// Button-Variante (Post-Footer, klein ohne wbf-btn)
|
||||
if (!$b.hasClass('wbf-btn')) {
|
||||
$b.text('');
|
||||
$b.append('<i class="fas fa-' + (nowIgnored ? 'eye' : 'eye-slash') + '"></i> ' + (nowIgnored ? 'Entblocken' : 'Ignorieren'));
|
||||
} else {
|
||||
// Profil-Variante mit wbf-btn
|
||||
$b.html('<i class="fas fa-' + (nowIgnored ? 'eye' : 'eye-slash') + '"></i> ' + (nowIgnored ? 'Ignorierung aufheben' : 'Nutzer ignorieren'));
|
||||
}
|
||||
$b.prop('disabled', false);
|
||||
});
|
||||
|
||||
// Posts des Users auf der aktuellen Seite ein-/ausblenden
|
||||
$('.wbf-post, .wbf-post--op').each(function () {
|
||||
var $post = $(this);
|
||||
// Buttons innerhalb dieses Posts mit der User-ID suchen
|
||||
var $ib = $post.find('.wbf-ignore-btn[data-id="' + ignoredId + '"]');
|
||||
if (!$ib.length) return;
|
||||
|
||||
if (nowIgnored) {
|
||||
// Ignoriert → Overlay zeigen wenn noch nicht vorhanden
|
||||
if (!$post.find('.wbf-ignored-bar').length) {
|
||||
var barHtml = '<div class="wbf-ignored-bar">' +
|
||||
'<span><i class="fas fa-eye-slash"></i> Beitrag von ignoriertem Nutzer: <strong>' +
|
||||
$('<span>').text(name).html() + '</strong></span>' +
|
||||
'<button class="wbf-show-ignored-btn" type="button">Trotzdem anzeigen</button>' +
|
||||
'</div>' +
|
||||
'<div class="wbf-ignored-content" style="display:none">';
|
||||
$post.addClass('wbf-post--ignored');
|
||||
$post.prepend(barHtml);
|
||||
// Restlichen Inhalt in ignored-content verschieben
|
||||
$post.children(':not(.wbf-ignored-bar):not(.wbf-ignored-content)').wrapAll('<div class="wbf-ignored-content-inner">');
|
||||
$post.find('.wbf-ignored-content').append($post.find('.wbf-ignored-content-inner').children());
|
||||
$post.find('.wbf-ignored-content-inner').remove();
|
||||
}
|
||||
} else {
|
||||
// Entblockt → Overlay entfernen
|
||||
var $bar = $post.find('.wbf-ignored-bar');
|
||||
var $content = $post.find('.wbf-ignored-content');
|
||||
if ($bar.length) {
|
||||
// Inhalt wieder nach oben holen
|
||||
$content.children().unwrap();
|
||||
$bar.remove();
|
||||
$post.removeClass('wbf-post--ignored');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Ignore-Liste im Profil aktualisieren (falls Nutzer auf eigener Profil-Seite)
|
||||
if (!nowIgnored) {
|
||||
// Eintrag aus der Liste entfernen
|
||||
$('#wbf-ignore-item-' + ignoredId).fadeOut(300, function () {
|
||||
$(this).remove();
|
||||
var remaining = $('#wbfIgnoreList .wbf-ignore-item').length;
|
||||
$('#wbfIgnoreCount').text(remaining);
|
||||
if (remaining === 0) {
|
||||
$('#wbfIgnoreList').replaceWith('<p class="wbf-profile-empty" id="wbfIgnoreEmpty">Du ignorierst niemanden.</p>');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Toast-Meldung
|
||||
var $t = $('<div class="wbf-toast">' + (d.message || (nowIgnored ? name + ' ignoriert.' : 'Ignorierung aufgehoben.')) + '</div>').appendTo('body');
|
||||
setTimeout(function () { $t.remove(); }, 3000);
|
||||
|
||||
}, function () {
|
||||
// Fehler-Callback
|
||||
$('.wbf-ignore-btn[data-id="' + ignoredId + '"]').prop('disabled', false);
|
||||
});
|
||||
});
|
||||
|
||||
/* "Trotzdem anzeigen" — eingeklappten ignorierten Post aufdecken */
|
||||
$(document).on('click', '.wbf-show-ignored-btn', function () {
|
||||
var $bar = $(this).closest('.wbf-ignored-bar');
|
||||
var $content = $bar.next('.wbf-ignored-content');
|
||||
$content.slideDown(200);
|
||||
$bar.hide();
|
||||
});
|
||||
|
||||
}(jQuery));
|
||||
Reference in New Issue
Block a user