Update persona upload methods to fetch

cbeb7ddcec7de6b1ab50dc0cb4f89cf7d1b12c2f

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +25 -24Showing whitespace changes
public/scripts/personas.js+25 -24
@@ -268,7 +268,7 @@ export async function getUserAvatars(doRender = true, openPageAt = '') {
268 * Uploads an avatar file to the server268 * Uploads an avatar file to the server
269 * @param {string} url URL for the avatar file269 * @param {string} url URL for the avatar file
270 * @param {string} [name] Optional name for the avatar file270 * @param {string} [name] Optional name for the avatar file
271 * @returns {Promise} Promise object representing the AJAX request271 * @returns {Promise} Promise that resolves when the avatar is uploaded
272 */272 */
273async function uploadUserAvatar(url, name) {273async function uploadUserAvatar(url, name) {
274 const fetchResult = await fetch(url);274 const fetchResult = await fetch(url);
@@ -281,18 +281,17 @@ async function uploadUserAvatar(url, name) {
281 formData.append('overwrite_name', name);281 formData.append('overwrite_name', name);
282 }282 }
283283
284 return jQuery.ajax({284 const headers = getRequestHeaders();
285 type: 'POST',285 delete headers['Content-Type'];
286 url: '/api/avatars/upload',286
287 data: formData,287 await fetch('/api/avatars/upload', {
288 beforeSend: () => { },288 method: 'POST',
289 cache: false,289 headers: headers,
290 contentType: false,290 cache: 'no-cache',
291 processData: false,291 body: formData,
292 success: async function () {
293 await getUserAvatars(true, name);
294 },
295 });292 });
293
294 await getUserAvatars(true, name);
296}295}
297296
298async function changeUserAvatar(e) {297async function changeUserAvatar(e) {
@@ -333,15 +332,19 @@ async function changeUserAvatar(e) {
333 formData.set('avatar', convertedFile);332 formData.set('avatar', convertedFile);
334 }333 }
335334
336 jQuery.ajax({335 const headers = getRequestHeaders();
337 type: 'POST',336 delete headers['Content-Type'];
338 url: url,337
339 data: formData,338 const response = await fetch(url, {
340 beforeSend: () => { },339 method: 'POST',
341 cache: false,340 headers: headers,
342 contentType: false,341 cache: 'no-cache',
343 processData: false,342 body: formData,
344 success: async function (data) {343 });
344
345 if (response.ok) {
346 const data = await response.json();
347
345 // If the user uploaded a new avatar, we want to make sure it's not cached348 // If the user uploaded a new avatar, we want to make sure it's not cached
346 const name = formData.get('overwrite_name');349 const name = formData.get('overwrite_name');
347 if (name) {350 if (name) {
@@ -356,9 +359,7 @@ async function changeUserAvatar(e) {
356 }359 }
357360
358 await getUserAvatars(true, name || data.path);361 await getUserAvatars(true, name || data.path);
359 },362 }
360 error: (jqXHR, exception) => { },
361 });
362363
363 // Will allow to select the same file twice in a row364 // Will allow to select the same file twice in a row
364 form.reset();365 form.reset();