This commit is contained in:
Moritz Jung 2023-05-29 19:46:28 +02:00
commit ed78ffcd64
33 changed files with 468 additions and 364 deletions

View file

@ -38,7 +38,7 @@ export class MediaDbAdvancedSearchModal extends Modal {
this.closeCallback = closeCallback;
}
keyPressCallback(event: KeyboardEvent) {
keyPressCallback(event: KeyboardEvent): void {
if (event.key === 'Enter') {
this.search();
}
@ -66,7 +66,7 @@ export class MediaDbAdvancedSearchModal extends Modal {
}
}
onOpen() {
onOpen(): void {
const { contentEl } = this;
contentEl.createEl('h2', { text: this.title });
@ -123,7 +123,7 @@ export class MediaDbAdvancedSearchModal extends Modal {
});
}
onClose() {
onClose(): void {
this.closeCallback();
const { contentEl } = this;
contentEl.empty();

View file

@ -16,12 +16,12 @@ export class MediaDbFolderImportModal extends Modal {
this.selectedApi = plugin.apiManager.apis[0].apiName;
}
submit() {
submit(): void {
this.onSubmit(this.selectedApi, this.titleFieldName, this.appendContent);
this.close();
}
onOpen() {
onOpen(): void {
const { contentEl } = this;
contentEl.createEl('h2', { text: 'Import folder as Media DB entries' });
@ -90,7 +90,7 @@ export class MediaDbFolderImportModal extends Modal {
});
}
onClose() {
onClose(): void {
const { contentEl } = this;
contentEl.empty();
}

View file

@ -33,7 +33,7 @@ export class MediaDbIdSearchModal extends Modal {
this.closeCallback = closeCallback;
}
keyPressCallback(event: KeyboardEvent) {
keyPressCallback(event: KeyboardEvent): void {
if (event.key === 'Enter') {
this.search();
}
@ -59,7 +59,7 @@ export class MediaDbIdSearchModal extends Modal {
}
}
onOpen() {
onOpen(): void {
const { contentEl } = this;
contentEl.createEl('h2', { text: this.title });
@ -108,7 +108,7 @@ export class MediaDbIdSearchModal extends Modal {
});
}
onClose() {
onClose(): void {
this.closeCallback();
const { contentEl } = this;
contentEl.empty();

View file

@ -40,14 +40,14 @@ export class MediaDbPreviewModal extends Modal {
}
async preview(): Promise<void> {
let { contentEl } = this;
const { contentEl } = this;
contentEl.addClass('media-db-plugin-preview-modal');
contentEl.createEl('h2', { text: this.title });
const previewWrapper = contentEl.createDiv({ cls: 'media-db-plugin-preview-wrapper' });
for (let result of this.elements) {
for (const result of this.elements) {
previewWrapper.createEl('h3', { text: result.englishTitle });
const fileDiv = previewWrapper.createDiv();

View file

@ -1,16 +1,10 @@
import { ButtonComponent, Modal, Notice, Setting, TextComponent, ToggleComponent } from 'obsidian';
import { MediaTypeModel } from '../models/MediaTypeModel';
import MediaDbPlugin from '../main';
import {
ADVANCED_SEARCH_MODAL_DEFAULT_OPTIONS,
AdvancedSearchModalData,
AdvancedSearchModalOptions,
SEARCH_MODAL_DEFAULT_OPTIONS,
SearchModalData,
SearchModalOptions,
} from '../utils/ModalHelper';
import { SEARCH_MODAL_DEFAULT_OPTIONS, SearchModalData, SearchModalOptions } from '../utils/ModalHelper';
import { MEDIA_TYPES } from '../utils/MediaTypeManager';
import { unCamelCase } from '../utils/Utils';
import { MediaType } from '../utils/MediaType';
export class MediaDbSearchModal extends Modal {
plugin: MediaDbPlugin;
@ -18,7 +12,7 @@ export class MediaDbSearchModal extends Modal {
query: string;
isBusy: boolean;
title: string;
selectedTypes: { name: string; selected: boolean }[];
selectedTypes: { name: MediaType; selected: boolean }[];
searchBtn: ButtonComponent;
@ -47,7 +41,7 @@ export class MediaDbSearchModal extends Modal {
this.closeCallback = closeCallback;
}
keyPressCallback(event: KeyboardEvent) {
keyPressCallback(event: KeyboardEvent): void {
if (event.key === 'Enter') {
this.search();
}
@ -59,7 +53,7 @@ export class MediaDbSearchModal extends Modal {
return;
}
const types: string[] = this.selectedTypes.filter(x => x.selected).map(x => x.name);
const types: MediaType[] = this.selectedTypes.filter(x => x.selected).map(x => x.name);
if (types.length === 0) {
new Notice('MDB | No Type selected');
@ -75,7 +69,7 @@ export class MediaDbSearchModal extends Modal {
}
}
onOpen() {
onOpen(): void {
const { contentEl } = this;
contentEl.createEl('h2', { text: this.title });
@ -130,7 +124,7 @@ export class MediaDbSearchModal extends Modal {
});
}
onClose() {
onClose(): void {
this.closeCallback();
const { contentEl } = this;
contentEl.empty();

View file

@ -40,14 +40,14 @@ export class MediaDbSearchResultModal extends SelectModal<MediaTypeModel> {
}
// Renders each suggestion item.
renderElement(item: MediaTypeModel, el: HTMLElement) {
renderElement(item: MediaTypeModel, el: HTMLElement): void {
el.createEl('div', { text: this.plugin.mediaTypeManager.getFileName(item) });
el.createEl('small', { text: `${item.getSummary()}\n` });
el.createEl('small', { text: `${item.type.toUpperCase() + (item.subType ? ` (${item.subType})` : '')} from ${item.dataSource}` });
}
// Perform action on the selected suggestion.
submit() {
submit(): void {
if (!this.busy) {
this.busy = true;
this.submitButton.setButtonText('Creating entry...');
@ -55,12 +55,12 @@ export class MediaDbSearchResultModal extends SelectModal<MediaTypeModel> {
}
}
skip() {
skip(): void {
this.skipButton.setButtonText('Skipping...');
this.skipCallback();
}
onClose() {
onClose(): void {
this.closeCallback();
}
}

View file

@ -59,7 +59,7 @@ export abstract class SelectModal<T> extends Modal {
abstract skip(): void;
disableAllOtherElements(elementId: number) {
disableAllOtherElements(elementId: number): void {
for (const selectModalElement of this.selectModalElements) {
if (selectModalElement.id !== elementId) {
selectModalElement.setActive(false);
@ -67,7 +67,7 @@ export abstract class SelectModal<T> extends Modal {
}
}
deHighlightAllOtherElements(elementId: number) {
deHighlightAllOtherElements(elementId: number): void {
for (const selectModalElement of this.selectModalElements) {
if (selectModalElement.id !== elementId) {
selectModalElement.setHighlighted(false);
@ -75,7 +75,7 @@ export abstract class SelectModal<T> extends Modal {
}
}
async onOpen() {
async onOpen(): Promise<void> {
const { contentEl, titleEl } = this;
titleEl.createEl('h2', { text: this.title });
@ -122,7 +122,7 @@ export abstract class SelectModal<T> extends Modal {
});
}
activateHighlighted() {
activateHighlighted(): void {
for (const selectModalElement of this.selectModalElements) {
if (selectModalElement.isHighlighted()) {
selectModalElement.setActive(!selectModalElement.isActive());
@ -133,7 +133,7 @@ export abstract class SelectModal<T> extends Modal {
}
}
highlightUp() {
highlightUp(): void {
for (const selectModalElement of this.selectModalElements) {
if (selectModalElement.isHighlighted()) {
this.getPreviousSelectModalElement(selectModalElement).setHighlighted(true);
@ -145,7 +145,7 @@ export abstract class SelectModal<T> extends Modal {
this.selectModalElements.last().setHighlighted(true);
}
highlightDown() {
highlightDown(): void {
for (const selectModalElement of this.selectModalElements) {
if (selectModalElement.isHighlighted()) {
this.getNextSelectModalElement(selectModalElement).setHighlighted(true);

View file

@ -45,7 +45,7 @@ export class SelectModalElement<T> {
return this.highlighted;
}
setHighlighted(value: boolean) {
setHighlighted(value: boolean): void {
this.highlighted = value;
if (this.highlighted) {
this.addClass(this.hoverClass);