Update from Git Manager GUI
This commit is contained in:
@@ -510,17 +510,16 @@
|
||||
});
|
||||
});
|
||||
|
||||
/* ── Profil speichern ───────────────────────────────────────── */
|
||||
$(document).on('click', '#wbfSaveProfile, #wbfSaveProfileCf', function () {
|
||||
/* ── Profil speichern (alles auf einmal) ───────────────────── */
|
||||
$(document).on('click', '#wbfSaveProfile', function () {
|
||||
var $btn = $(this).prop('disabled', true);
|
||||
var $msg = $(this).siblings('.wbf-msg').length ? $(this).siblings('.wbf-msg') : $('#wbfProfileMsg');
|
||||
var $msg = $('#wbfProfileMsg');
|
||||
var data = {
|
||||
display_name: $('#wbfEditName').val(),
|
||||
bio: $('#wbfEditBio').val(),
|
||||
signature: $('#wbfEditSignature').val(),
|
||||
new_password: $('#wbfNewPassword').val()
|
||||
signature: $('#wbfEditSignature').val()
|
||||
};
|
||||
// Benutzerdefinierte Profilfelder einsammeln
|
||||
// Alle benutzerdefinierten Felder (alle Kategorien) einsammeln
|
||||
$('.wbf-cf-input').each(function () {
|
||||
data[$(this).data('field')] = $(this).val();
|
||||
});
|
||||
@@ -533,6 +532,40 @@
|
||||
});
|
||||
});
|
||||
|
||||
/* ── Passwort ändern ────────────────────────────────────────── */
|
||||
$(document).on('click', '#wbfSavePassword', function () {
|
||||
var $btn = $(this).prop('disabled', true);
|
||||
var $msg = $('#wbfPasswordMsg');
|
||||
var cur = $('#wbfCurrentPassword').val();
|
||||
var pw1 = $('#wbfNewPassword').val();
|
||||
var pw2 = $('#wbfNewPassword2').val();
|
||||
|
||||
if (!cur) {
|
||||
showMsg($msg, 'Bitte aktuelles Passwort eingeben.', false);
|
||||
return $btn.prop('disabled', false);
|
||||
}
|
||||
if (pw1.length < 6) {
|
||||
showMsg($msg, 'Neues Passwort mindestens 6 Zeichen.', false);
|
||||
return $btn.prop('disabled', false);
|
||||
}
|
||||
if (pw1 !== pw2) {
|
||||
showMsg($msg, 'Die Passwörter stimmen nicht überein.', false);
|
||||
return $btn.prop('disabled', false);
|
||||
}
|
||||
|
||||
wbfPost('wbf_update_profile', {
|
||||
current_password: cur,
|
||||
new_password: pw1
|
||||
}, function (d) {
|
||||
showMsg($msg, d.message, true);
|
||||
$('#wbfCurrentPassword, #wbfNewPassword, #wbfNewPassword2').val('');
|
||||
$btn.prop('disabled', false);
|
||||
}, function (d) {
|
||||
showMsg($msg, d.message || 'Fehler', false);
|
||||
$btn.prop('disabled', false);
|
||||
});
|
||||
});
|
||||
|
||||
/* ── Signatur Zeichenzähler ─────────────────────────────────── */
|
||||
$(document).on('input', '#wbfEditSignature', function () {
|
||||
$('#wbfSigCount').text($(this).val().length);
|
||||
@@ -542,10 +575,16 @@
|
||||
$(document).on('change', '#wbfAvatarFile', function () {
|
||||
var file = this.files[0];
|
||||
if (!file) return;
|
||||
|
||||
// Sofort-Vorschau — synchron, kein Callback, kein Warten
|
||||
var objectUrl = URL.createObjectURL(file);
|
||||
$('#wbfProfileAvatar').attr('src', objectUrl).css('opacity', '.6');
|
||||
|
||||
var fd = new FormData();
|
||||
fd.append('action', 'wbf_upload_avatar');
|
||||
fd.append('nonce', WBF.nonce);
|
||||
fd.append('avatar', file);
|
||||
|
||||
$.ajax({
|
||||
url: WBF.ajax_url,
|
||||
type: 'POST',
|
||||
@@ -553,9 +592,19 @@
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: function (res) {
|
||||
$('#wbfProfileAvatar').css('opacity', '1');
|
||||
if (res.success) {
|
||||
$('.wbf-profile-page__avatar').attr('src', res.data.avatar_url);
|
||||
// Object-URL freigeben, endgültige Server-URL setzen
|
||||
URL.revokeObjectURL(objectUrl);
|
||||
var finalUrl = res.data.avatar_url + '?v=' + Date.now();
|
||||
$('#wbfProfileAvatar').attr('src', finalUrl);
|
||||
// Topbar-Avatar ebenfalls aktualisieren
|
||||
$('.wbf-topbar__user img').attr('src', finalUrl);
|
||||
$('.wbf-profile-widget__avatar img').attr('src', finalUrl);
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
$('#wbfProfileAvatar').css('opacity', '1');
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -1091,7 +1140,7 @@
|
||||
var html = '';
|
||||
d.notifications.forEach(function (n) {
|
||||
var isUnread = n.is_read == 0;
|
||||
var avatar = n.actor_avatar || '';
|
||||
var avatar = $('<img>').attr('src', n.actor_avatar || '').attr('alt', '').attr('class', 'wbf-dm-inbox-item__avatar')[0].outerHTML;
|
||||
var base = WBF.forum_url || window.location.href.split('?')[0];
|
||||
var sep = base.indexOf('?') !== -1 ? '&' : '?';
|
||||
var actor = '<strong>' + $('<span>').text(n.actor_name).html() + '</strong>';
|
||||
@@ -1118,7 +1167,7 @@
|
||||
}
|
||||
|
||||
html += '<a class="wbf-notif-item' + (isUnread ? ' wbf-notif-item--unread' : '') + '" href="' + url + '">' +
|
||||
'<div class="wbf-notif-item__avatar"><img src="' + avatar + '" alt=""></div>' +
|
||||
'<div class="wbf-notif-item__avatar">' + avatar + '</div>' +
|
||||
'<div class="wbf-notif-item__body">' +
|
||||
'<div class="wbf-notif-item__text">' + text +
|
||||
(sub ? '<br><span style="color:var(--c-muted);font-size:.78rem">' + $('<span>').text(sub).html() + '</span>' : '') +
|
||||
@@ -1218,7 +1267,7 @@
|
||||
var delBtn = '<button class="wbf-dm-msg__del" data-id="' + m.id + '" title="Loeschen"><i class="fas fa-trash-can"></i></button>';
|
||||
var html = '<div class="' + cls + '" data-msg-id="' + m.id + '">';
|
||||
if (!isMine) {
|
||||
html += '<img src="' + (m.sender_avatar||'') + '" class="wbf-dm-inbox-item__avatar">';
|
||||
html += $('<img>').attr('src', m.sender_avatar || '').attr('class', 'wbf-dm-inbox-item__avatar')[0].outerHTML;
|
||||
}
|
||||
html += '<div class="wbf-dm-msg__bubble"><div class="wbf-dm-msg__text">'
|
||||
+ $('<span>').text(m.content).html().replace(/\n/g,'<br>')
|
||||
@@ -1452,7 +1501,7 @@
|
||||
var html = '';
|
||||
d.users.forEach(function(u) {
|
||||
html += '<div class="wbf-mention-item" data-username="' + $('<span>').text(u.username).html() + '">'
|
||||
+ '<img src="' + (u.avatar_url || '') + '" width="22" height="22" style="border-radius:50%;flex-shrink:0">'
|
||||
+ $('<img>').attr('src', u.avatar_url || '').attr('width', '22').attr('height', '22').css({'border-radius':'50%','flex-shrink':'0'})[0].outerHTML
|
||||
+ '<span>' + $('<span>').text(u.display_name).html() + '</span>'
|
||||
+ '<small>@' + $('<span>').text(u.username).html() + '</small>'
|
||||
+ '</div>';
|
||||
@@ -1500,7 +1549,7 @@
|
||||
var delBtn = '<button class="wbf-dm-msg__del" data-id="' + m.id + '" title="Löschen"><i class="fas fa-trash-can"></i></button>';
|
||||
if (!isMine) {
|
||||
html += '<div class="' + cls + '" data-msg-id="' + m.id + '">'
|
||||
+ '<img src="' + (m.sender_avatar || '') + '" class="wbf-dm-msg__avatar">'
|
||||
+ $('<img>').attr('src', m.sender_avatar || '').attr('class', 'wbf-dm-msg__avatar')[0].outerHTML
|
||||
+ '<div class="wbf-dm-msg__bubble"><div class="wbf-dm-msg__text">'
|
||||
+ $('<span>').text(m.content).html().replace(/\n/g,'<br>')
|
||||
+ '</div><div class="wbf-dm-msg__time">' + time + delBtn + '</div></div></div>';
|
||||
@@ -1524,7 +1573,7 @@
|
||||
var href = window.location.pathname + '?forum_dm=inbox&with=' + conv.partner_id;
|
||||
var unread = parseInt(conv.unread_cnt) > 0;
|
||||
html += '<a class="wbf-dm-inbox-item' + (unread ? ' wbf-dm-inbox-item--unread' : '') + '" href="' + href + '">'
|
||||
+ '<img src="' + (conv.partner_avatar || '') + '" class="wbf-dm-inbox-item__avatar">'
|
||||
+ $('<img>').attr('src', conv.partner_avatar || '').attr('class', 'wbf-dm-inbox-item__avatar')[0].outerHTML
|
||||
+ '<div class="wbf-dm-inbox-item__body">'
|
||||
+ '<span class="wbf-dm-inbox-item__name">' + $('<span>').text(conv.partner_name).html() + '</span>'
|
||||
+ (unread ? '<span class="wbf-dm-inbox-item__badge">' + conv.unread_cnt + '</span>' : '')
|
||||
@@ -1550,7 +1599,7 @@
|
||||
var backUrl = window.location.pathname + '?forum_dm=inbox';
|
||||
$('#wbfDmHeader').html(
|
||||
'<a href="' + backUrl + '" class="wbf-dm-back-btn" title="Zurück zur Inbox"><i class="fas fa-arrow-left"></i></a>'
|
||||
+ '<img src="' + (p.avatar_url||'') + '" class="wbf-dm-inbox-item__avatar">'
|
||||
+ $('<img>').attr('src', p.avatar_url || '').attr('class', 'wbf-dm-inbox-item__avatar')[0].outerHTML
|
||||
+ '<strong>' + $('<span>').text(p.display_name).html() + '</strong>'
|
||||
+ '<a href="?forum_profile=' + p.id + '" style="font-size:.78rem;color:var(--c-muted);text-decoration:none">@' + $('<span>').text(p.username).html() + '</a>'
|
||||
);
|
||||
@@ -1634,7 +1683,7 @@
|
||||
var html = '';
|
||||
d.users.forEach(function(u) {
|
||||
html += '<div class="wbf-tag-suggest-item" data-id="' + u.id + '" data-name="' + $('<span>').text(u.display_name).html() + '">'
|
||||
+ '<img src="' + (u.avatar_url||'') + '" width="22" height="22" style="border-radius:50%;flex-shrink:0">'
|
||||
+ $('<img>').attr('src', u.avatar_url || '').attr('width', '22').attr('height', '22').css({'border-radius':'50%','flex-shrink':'0'})[0].outerHTML
|
||||
+ $('<span>').text(u.display_name).html()
|
||||
+ '<span style="color:var(--c-muted);font-size:.75rem">@' + $('<span>').text(u.username).html() + '</span>'
|
||||
+ '</div>';
|
||||
|
||||
Reference in New Issue
Block a user