From: Matthias Schmidt Date: Tue, 5 Jan 2021 17:43:55 +0000 (+0100) Subject: Add media-related TypeScript interfaces X-Git-Tag: 5.4.0_Alpha_1~461^2~4 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=68be723833a2416f558052bef9da7a37d5279593;p=GitHub%2FWoltLab%2FWCF.git Add media-related TypeScript interfaces --- diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Media/Data.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Media/Data.js new file mode 100644 index 0000000000..b868c617d1 --- /dev/null +++ b/wcfsetup/install/files/js/WoltLabSuite/Core/Media/Data.js @@ -0,0 +1,10 @@ +/** + * @author Matthias Schmidt + * @copyright 2001-2021 WoltLab GmbH + * @license GNU Lesser General Public License + * @module WoltLabSuite/Core/Media/Data + */ +define(["require", "exports"], function (require, exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +}); diff --git a/wcfsetup/install/files/ts/WoltLabSuite/Core/Media/Data.ts b/wcfsetup/install/files/ts/WoltLabSuite/Core/Media/Data.ts new file mode 100644 index 0000000000..4f0bf9d884 --- /dev/null +++ b/wcfsetup/install/files/ts/WoltLabSuite/Core/Media/Data.ts @@ -0,0 +1,84 @@ +/** + * @author Matthias Schmidt + * @copyright 2001-2021 WoltLab GmbH + * @license GNU Lesser General Public License + * @module WoltLabSuite/Core/Media/Data + */ + +import MediaUpload from "./Upload"; +import { FileElements, UploadOptions } from "../Upload/Data"; +import MediaEditor from "./Editor"; +import MediaManager from "./Manager/Base"; +import { RedactorEditor } from "../Ui/Redactor/Editor"; +import { I18nValues } from "../Language/Input"; + +export interface Media { + altText: I18nValues | string; + caption: I18nValues | string; + categoryID: number; + elementTag: string; + captionEnableHtml: number; + filename: string; + formattedFilesize: string; + languageID: number | null; + isImage: number; + isMultilingual: number; + link: string; + mediaID: number; + smallThumbnailLink: string; + smallThumbnailType: string; + tinyThumbnailLink: string; + tinyThumbnailType: string; + title: I18nValues | string; +} + +export interface MediaManagerOptions { + dialogTitle: string; + imagesOnly: boolean; + minSearchLength: number; +} + +export interface MediaManagerEditorOptions extends MediaManagerOptions { + buttonClass?: string; + callbackInsert: (media: Map, insertType: string, thumbnailSize: string) => void; + editor?: RedactorEditor; +} + +export interface MediaManagerSelectOptions extends MediaManagerOptions { + buttonClass?: string; +} + +export interface MediaEditorCallbackObject { + _editorClose?: () => void; + _editorSuccess?: (Media, number?) => void; +} + +export interface MediaUploadSuccessEventData { + files: FileElements; + isMultiFileUpload: boolean; + media: Media[]; + upload: MediaUpload; + uploadId: number; +} + +export interface MediaUploadOptions extends UploadOptions { + elementTagSize: number; + mediaEditor?: MediaEditor; + mediaManager?: MediaManager; +} + +export interface MediaListUploadOptions extends MediaUploadOptions { + categoryId?: number; +} + +export interface MediaUploadAjaxResponseData { + returnValues: { + errors: MediaUploadError[]; + media: Media[]; + }; +} + +export interface MediaUploadError { + errorType: string; + filename: string; +}