insertFileInformation,
removeUploadProgress,
trackUploadProgress,
-} from "WoltLabSuite/Core/Component/File/File";
+} from "WoltLabSuite/Core/Component/File/Helper";
type FileProcessorData = {
attachmentID: number;
+++ /dev/null
-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<number>) => {
- 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);
-}
--- /dev/null
+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<number>) => {
+ 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);
+}
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<string, FileProcessor>();
-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;
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;
+++ /dev/null
-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;
-});
--- /dev/null
+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;
+});
* @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
* @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;
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) {
}
}
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) {
this.#markElementUploadHasFailed(container, element, reason);
})
.finally(() => {
- (0, File_1.removeUploadProgress)(container);
+ (0, Helper_1.removeUploadProgress)(container);
});
}
#fileInitializationCompleted(element, container) {