From: Cyperghost Date: Thu, 4 Jul 2024 07:35:31 +0000 (+0200) Subject: Rename `WoltLabSuite/Core/Component/File/File` to `WoltLabSuite/Core/Component/File... X-Git-Tag: 6.1.0_Alpha_1~41^2~2 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=2f62e36a9f1a85a75caf8822b9fbe0f07a9b2b3b;p=GitHub%2FWoltLab%2FWCF.git Rename `WoltLabSuite/Core/Component/File/File` to `WoltLabSuite/Core/Component/File/Helper` --- diff --git a/ts/WoltLabSuite/Core/Component/Attachment/Entry.ts b/ts/WoltLabSuite/Core/Component/Attachment/Entry.ts index 118d270a8c..a90175cfd8 100644 --- a/ts/WoltLabSuite/Core/Component/Attachment/Entry.ts +++ b/ts/WoltLabSuite/Core/Component/Attachment/Entry.ts @@ -9,7 +9,7 @@ import { insertFileInformation, removeUploadProgress, trackUploadProgress, -} from "WoltLabSuite/Core/Component/File/File"; +} from "WoltLabSuite/Core/Component/File/Helper"; type FileProcessorData = { attachmentID: number; diff --git a/ts/WoltLabSuite/Core/Component/File/File.ts b/ts/WoltLabSuite/Core/Component/File/File.ts deleted file mode 100644 index 93f3f8ddd3..0000000000 --- a/ts/WoltLabSuite/Core/Component/File/File.ts +++ /dev/null @@ -1,90 +0,0 @@ -import WoltlabCoreFileElement from "WoltLabSuite/Core/Component/File/woltlab-core-file"; -import { getPhrase } from "WoltLabSuite/Core/Language"; -import { formatFilesize } from "WoltLabSuite/Core/FileUtil"; - -export function trackUploadProgress(element: HTMLElement, file: WoltlabCoreFileElement): void { - const progress = document.createElement("progress"); - progress.classList.add("fileList__item__progress__bar"); - progress.max = 100; - const readout = document.createElement("span"); - readout.classList.add("fileList__item__progress__readout"); - - file.addEventListener("uploadProgress", (event: CustomEvent) => { - progress.value = event.detail; - readout.textContent = `${event.detail}%`; - - if (progress.parentNode === null) { - element.classList.add("fileProcessor__item--uploading"); - - const wrapper = document.createElement("div"); - wrapper.classList.add("fileList__item__progress"); - wrapper.append(progress, readout); - - element.append(wrapper); - } - }); -} - -export function removeUploadProgress(element: HTMLElement): void { - if (!element.classList.contains("fileProcessor__item--uploading")) { - return; - } - - element.classList.remove("fileProcessor__item--uploading"); - element.querySelector(".fileList__item__progress")?.remove(); -} - -export function fileInitializationFailed(element: HTMLElement, file: WoltlabCoreFileElement, reason: unknown): void { - if (reason instanceof Error) { - throw reason; - } - - if (file.apiError === undefined) { - return; - } - - let errorMessage: string; - - const validationError = file.apiError.getValidationError(); - if (validationError !== undefined) { - switch (validationError.param) { - case "preflight": - errorMessage = getPhrase(`wcf.upload.error.${validationError.code}`); - break; - - default: - errorMessage = "Unrecognized error type: " + JSON.stringify(validationError); - break; - } - } else { - errorMessage = `Unexpected server error: [${file.apiError.type}] ${file.apiError.message}`; - } - - markElementAsErroneous(element, errorMessage); -} - -function markElementAsErroneous(element: HTMLElement, errorMessage: string): void { - element.classList.add("fileList__item--error"); - - const errorElement = document.createElement("div"); - errorElement.classList.add("fileList__item__errorMessage"); - errorElement.textContent = errorMessage; - - element.append(errorElement); -} - -export function insertFileInformation(container: HTMLElement, file: WoltlabCoreFileElement): void { - const fileWrapper = document.createElement("div"); - fileWrapper.classList.add("fileList__item__file"); - fileWrapper.append(file); - - const filename = document.createElement("div"); - filename.classList.add("fileList__item__filename"); - filename.textContent = file.filename || file.dataset.filename!; - - const fileSize = document.createElement("div"); - fileSize.classList.add("fileList__item__fileSize"); - fileSize.textContent = formatFilesize(file.fileSize || parseInt(file.dataset.fileSize!)); - - container.append(fileWrapper, filename, fileSize); -} diff --git a/ts/WoltLabSuite/Core/Component/File/Helper.ts b/ts/WoltLabSuite/Core/Component/File/Helper.ts new file mode 100644 index 0000000000..93f3f8ddd3 --- /dev/null +++ b/ts/WoltLabSuite/Core/Component/File/Helper.ts @@ -0,0 +1,90 @@ +import WoltlabCoreFileElement from "WoltLabSuite/Core/Component/File/woltlab-core-file"; +import { getPhrase } from "WoltLabSuite/Core/Language"; +import { formatFilesize } from "WoltLabSuite/Core/FileUtil"; + +export function trackUploadProgress(element: HTMLElement, file: WoltlabCoreFileElement): void { + const progress = document.createElement("progress"); + progress.classList.add("fileList__item__progress__bar"); + progress.max = 100; + const readout = document.createElement("span"); + readout.classList.add("fileList__item__progress__readout"); + + file.addEventListener("uploadProgress", (event: CustomEvent) => { + progress.value = event.detail; + readout.textContent = `${event.detail}%`; + + if (progress.parentNode === null) { + element.classList.add("fileProcessor__item--uploading"); + + const wrapper = document.createElement("div"); + wrapper.classList.add("fileList__item__progress"); + wrapper.append(progress, readout); + + element.append(wrapper); + } + }); +} + +export function removeUploadProgress(element: HTMLElement): void { + if (!element.classList.contains("fileProcessor__item--uploading")) { + return; + } + + element.classList.remove("fileProcessor__item--uploading"); + element.querySelector(".fileList__item__progress")?.remove(); +} + +export function fileInitializationFailed(element: HTMLElement, file: WoltlabCoreFileElement, reason: unknown): void { + if (reason instanceof Error) { + throw reason; + } + + if (file.apiError === undefined) { + return; + } + + let errorMessage: string; + + const validationError = file.apiError.getValidationError(); + if (validationError !== undefined) { + switch (validationError.param) { + case "preflight": + errorMessage = getPhrase(`wcf.upload.error.${validationError.code}`); + break; + + default: + errorMessage = "Unrecognized error type: " + JSON.stringify(validationError); + break; + } + } else { + errorMessage = `Unexpected server error: [${file.apiError.type}] ${file.apiError.message}`; + } + + markElementAsErroneous(element, errorMessage); +} + +function markElementAsErroneous(element: HTMLElement, errorMessage: string): void { + element.classList.add("fileList__item--error"); + + const errorElement = document.createElement("div"); + errorElement.classList.add("fileList__item__errorMessage"); + errorElement.textContent = errorMessage; + + element.append(errorElement); +} + +export function insertFileInformation(container: HTMLElement, file: WoltlabCoreFileElement): void { + const fileWrapper = document.createElement("div"); + fileWrapper.classList.add("fileList__item__file"); + fileWrapper.append(file); + + const filename = document.createElement("div"); + filename.classList.add("fileList__item__filename"); + filename.textContent = file.filename || file.dataset.filename!; + + const fileSize = document.createElement("div"); + fileSize.classList.add("fileList__item__fileSize"); + fileSize.textContent = formatFilesize(file.fileSize || parseInt(file.dataset.fileSize!)); + + container.append(fileWrapper, filename, fileSize); +} diff --git a/ts/WoltLabSuite/Core/Form/Builder/Field/Controller/FileProcessor.ts b/ts/WoltLabSuite/Core/Form/Builder/Field/Controller/FileProcessor.ts index b4fd565ca6..4c24c31167 100644 --- a/ts/WoltLabSuite/Core/Form/Builder/Field/Controller/FileProcessor.ts +++ b/ts/WoltLabSuite/Core/Form/Builder/Field/Controller/FileProcessor.ts @@ -14,7 +14,7 @@ import { insertFileInformation, removeUploadProgress, trackUploadProgress, -} from "WoltLabSuite/Core/Component/File/File"; +} from "WoltLabSuite/Core/Component/File/Helper"; import { clearPreviousErrors } from "WoltLabSuite/Core/Component/File/Upload"; const _data = new Map(); diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/Attachment/Entry.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/Attachment/Entry.js index ae2adac05f..4929fbc07e 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/Attachment/Entry.js +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/Attachment/Entry.js @@ -1,4 +1,4 @@ -define(["require", "exports", "tslib", "WoltLabSuite/Core/Ui/Dropdown/Simple", "WoltLabSuite/Core/Dom/Change/Listener", "../Ckeditor/Event", "WoltLabSuite/Core/Api/Files/DeleteFile", "WoltLabSuite/Core/Language", "WoltLabSuite/Core/Component/File/File"], function (require, exports, tslib_1, Simple_1, Listener_1, Event_1, DeleteFile_1, Language_1, File_1) { +define(["require", "exports", "tslib", "WoltLabSuite/Core/Ui/Dropdown/Simple", "WoltLabSuite/Core/Dom/Change/Listener", "../Ckeditor/Event", "WoltLabSuite/Core/Api/Files/DeleteFile", "WoltLabSuite/Core/Language", "WoltLabSuite/Core/Component/File/Helper"], function (require, exports, tslib_1, Simple_1, Listener_1, Event_1, DeleteFile_1, Language_1, Helper_1) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAttachmentFromFile = void 0; @@ -113,18 +113,18 @@ define(["require", "exports", "tslib", "WoltLabSuite/Core/Ui/Dropdown/Simple", " function createAttachmentFromFile(file, editor) { const element = document.createElement("li"); element.classList.add("fileList__item", "attachment__item"); - (0, File_1.insertFileInformation)(element, file); + (0, Helper_1.insertFileInformation)(element, file); void file.ready .then(() => { fileInitializationCompleted(element, file, editor); }) .catch((reason) => { - (0, File_1.fileInitializationFailed)(element, file, reason); + (0, Helper_1.fileInitializationFailed)(element, file, reason); }) .finally(() => { - (0, File_1.removeUploadProgress)(element); + (0, Helper_1.removeUploadProgress)(element); }); - (0, File_1.trackUploadProgress)(element, file); + (0, Helper_1.trackUploadProgress)(element, file); return element; } exports.createAttachmentFromFile = createAttachmentFromFile; diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/File/File.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/File/File.js deleted file mode 100644 index b4eb537772..0000000000 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/File/File.js +++ /dev/null @@ -1,77 +0,0 @@ -define(["require", "exports", "WoltLabSuite/Core/Language", "WoltLabSuite/Core/FileUtil"], function (require, exports, Language_1, FileUtil_1) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.insertFileInformation = exports.fileInitializationFailed = exports.removeUploadProgress = exports.trackUploadProgress = void 0; - function trackUploadProgress(element, file) { - const progress = document.createElement("progress"); - progress.classList.add("fileList__item__progress__bar"); - progress.max = 100; - const readout = document.createElement("span"); - readout.classList.add("fileList__item__progress__readout"); - file.addEventListener("uploadProgress", (event) => { - progress.value = event.detail; - readout.textContent = `${event.detail}%`; - if (progress.parentNode === null) { - element.classList.add("fileProcessor__item--uploading"); - const wrapper = document.createElement("div"); - wrapper.classList.add("fileList__item__progress"); - wrapper.append(progress, readout); - element.append(wrapper); - } - }); - } - exports.trackUploadProgress = trackUploadProgress; - function removeUploadProgress(element) { - if (!element.classList.contains("fileProcessor__item--uploading")) { - return; - } - element.classList.remove("fileProcessor__item--uploading"); - element.querySelector(".fileList__item__progress")?.remove(); - } - exports.removeUploadProgress = removeUploadProgress; - function fileInitializationFailed(element, file, reason) { - if (reason instanceof Error) { - throw reason; - } - if (file.apiError === undefined) { - return; - } - let errorMessage; - const validationError = file.apiError.getValidationError(); - if (validationError !== undefined) { - switch (validationError.param) { - case "preflight": - errorMessage = (0, Language_1.getPhrase)(`wcf.upload.error.${validationError.code}`); - break; - default: - errorMessage = "Unrecognized error type: " + JSON.stringify(validationError); - break; - } - } - else { - errorMessage = `Unexpected server error: [${file.apiError.type}] ${file.apiError.message}`; - } - markElementAsErroneous(element, errorMessage); - } - exports.fileInitializationFailed = fileInitializationFailed; - function markElementAsErroneous(element, errorMessage) { - element.classList.add("fileList__item--error"); - const errorElement = document.createElement("div"); - errorElement.classList.add("fileList__item__errorMessage"); - errorElement.textContent = errorMessage; - element.append(errorElement); - } - function insertFileInformation(container, file) { - const fileWrapper = document.createElement("div"); - fileWrapper.classList.add("fileList__item__file"); - fileWrapper.append(file); - const filename = document.createElement("div"); - filename.classList.add("fileList__item__filename"); - filename.textContent = file.filename || file.dataset.filename; - const fileSize = document.createElement("div"); - fileSize.classList.add("fileList__item__fileSize"); - fileSize.textContent = (0, FileUtil_1.formatFilesize)(file.fileSize || parseInt(file.dataset.fileSize)); - container.append(fileWrapper, filename, fileSize); - } - exports.insertFileInformation = insertFileInformation; -}); diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Component/File/Helper.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/File/Helper.js new file mode 100644 index 0000000000..b4eb537772 --- /dev/null +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Component/File/Helper.js @@ -0,0 +1,77 @@ +define(["require", "exports", "WoltLabSuite/Core/Language", "WoltLabSuite/Core/FileUtil"], function (require, exports, Language_1, FileUtil_1) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.insertFileInformation = exports.fileInitializationFailed = exports.removeUploadProgress = exports.trackUploadProgress = void 0; + function trackUploadProgress(element, file) { + const progress = document.createElement("progress"); + progress.classList.add("fileList__item__progress__bar"); + progress.max = 100; + const readout = document.createElement("span"); + readout.classList.add("fileList__item__progress__readout"); + file.addEventListener("uploadProgress", (event) => { + progress.value = event.detail; + readout.textContent = `${event.detail}%`; + if (progress.parentNode === null) { + element.classList.add("fileProcessor__item--uploading"); + const wrapper = document.createElement("div"); + wrapper.classList.add("fileList__item__progress"); + wrapper.append(progress, readout); + element.append(wrapper); + } + }); + } + exports.trackUploadProgress = trackUploadProgress; + function removeUploadProgress(element) { + if (!element.classList.contains("fileProcessor__item--uploading")) { + return; + } + element.classList.remove("fileProcessor__item--uploading"); + element.querySelector(".fileList__item__progress")?.remove(); + } + exports.removeUploadProgress = removeUploadProgress; + function fileInitializationFailed(element, file, reason) { + if (reason instanceof Error) { + throw reason; + } + if (file.apiError === undefined) { + return; + } + let errorMessage; + const validationError = file.apiError.getValidationError(); + if (validationError !== undefined) { + switch (validationError.param) { + case "preflight": + errorMessage = (0, Language_1.getPhrase)(`wcf.upload.error.${validationError.code}`); + break; + default: + errorMessage = "Unrecognized error type: " + JSON.stringify(validationError); + break; + } + } + else { + errorMessage = `Unexpected server error: [${file.apiError.type}] ${file.apiError.message}`; + } + markElementAsErroneous(element, errorMessage); + } + exports.fileInitializationFailed = fileInitializationFailed; + function markElementAsErroneous(element, errorMessage) { + element.classList.add("fileList__item--error"); + const errorElement = document.createElement("div"); + errorElement.classList.add("fileList__item__errorMessage"); + errorElement.textContent = errorMessage; + element.append(errorElement); + } + function insertFileInformation(container, file) { + const fileWrapper = document.createElement("div"); + fileWrapper.classList.add("fileList__item__file"); + fileWrapper.append(file); + const filename = document.createElement("div"); + filename.classList.add("fileList__item__filename"); + filename.textContent = file.filename || file.dataset.filename; + const fileSize = document.createElement("div"); + fileSize.classList.add("fileList__item__fileSize"); + fileSize.textContent = (0, FileUtil_1.formatFilesize)(file.fileSize || parseInt(file.dataset.fileSize)); + container.append(fileWrapper, filename, fileSize); + } + exports.insertFileInformation = insertFileInformation; +}); diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Form/Builder/Field/Controller/FileProcessor.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Form/Builder/Field/Controller/FileProcessor.js index abcafe6364..3b9c31eb20 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/Core/Form/Builder/Field/Controller/FileProcessor.js +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Form/Builder/Field/Controller/FileProcessor.js @@ -4,7 +4,7 @@ * @license GNU Lesser General Public License * @since 6.1 */ -define(["require", "exports", "tslib", "WoltLabSuite/Core/Language", "WoltLabSuite/Core/Api/Files/DeleteFile", "WoltLabSuite/Core/Dom/Change/Listener", "WoltLabSuite/Core/Component/File/File", "WoltLabSuite/Core/Component/File/Upload"], function (require, exports, tslib_1, Language_1, DeleteFile_1, Listener_1, File_1, Upload_1) { +define(["require", "exports", "tslib", "WoltLabSuite/Core/Language", "WoltLabSuite/Core/Api/Files/DeleteFile", "WoltLabSuite/Core/Dom/Change/Listener", "WoltLabSuite/Core/Component/File/Helper", "WoltLabSuite/Core/Component/File/Upload"], function (require, exports, tslib_1, Language_1, DeleteFile_1, Listener_1, Helper_1, Upload_1) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getValues = exports.FileProcessor = void 0; @@ -85,7 +85,7 @@ define(["require", "exports", "tslib", "WoltLabSuite/Core/Language", "WoltLabSui container.append(buttons); } #markElementUploadHasFailed(container, element, reason) { - (0, File_1.fileInitializationFailed)(container, element, reason); + (0, Helper_1.fileInitializationFailed)(container, element, reason); container.classList.add("innerError"); } getDeleteButton(element) { @@ -165,9 +165,9 @@ define(["require", "exports", "tslib", "WoltLabSuite/Core/Language", "WoltLabSui } } if (!this.showBigPreview) { - (0, File_1.insertFileInformation)(container, element); + (0, Helper_1.insertFileInformation)(container, element); } - (0, File_1.trackUploadProgress)(container, element); + (0, Helper_1.trackUploadProgress)(container, element); element.ready .then(() => { if (this.#replaceElement !== undefined) { @@ -191,7 +191,7 @@ define(["require", "exports", "tslib", "WoltLabSuite/Core/Language", "WoltLabSui this.#markElementUploadHasFailed(container, element, reason); }) .finally(() => { - (0, File_1.removeUploadProgress)(container); + (0, Helper_1.removeUploadProgress)(container); }); } #fileInitializationCompleted(element, container) {