From bdda8146aa75ab9a91063afe4e19a36f94826f05 Mon Sep 17 00:00:00 2001 From: mProjectsCode Date: Tue, 18 Oct 2022 11:38:22 +0200 Subject: [PATCH] fix for #67 --- src/main.ts | 28 +++++++++++--------------- src/modals/MediaDbSearchResultModal.ts | 1 - src/settings/PropertyMapper.ts | 2 -- src/utils/Utils.ts | 3 ++- 4 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/main.ts b/src/main.ts index 24df6f5..280d308 100644 --- a/src/main.ts +++ b/src/main.ts @@ -232,7 +232,7 @@ export default class MediaDbPlugin extends Plugin { let fileContent = await this.generateMediaDbNoteContents(mediaTypeModel, options); - await this.createNote(this.mediaTypeManager.getFileName(mediaTypeModel), fileContent, options.openNote); + await this.createNote(this.mediaTypeManager.getFileName(mediaTypeModel), fileContent, options); } catch (e) { console.warn(e); new Notice(e.toString()); @@ -325,18 +325,18 @@ export default class MediaDbPlugin extends Plugin { * * @param fileName * @param fileContent - * @param openFile + * @param options */ - async createNote(fileName: string, fileContent: string, openFile: boolean = false) { - fileName = replaceIllegalFileNameCharactersInString(fileName); - const filePath = `${this.settings.folder.replace(/\/$/, '')}/${fileName}.md`; - - // find and possibly create the folder set in settings - const folder = this.app.vault.getAbstractFileByPath(this.settings.folder); + async createNote(fileName: string, fileContent: string, options: CreateNoteOptions) { + // find and possibly create the folder set in settings or passed in folder + const folder = options.folder ?? this.app.vault.getAbstractFileByPath(this.settings.folder); if (!folder) { - await this.app.vault.createFolder(this.settings.folder.replace(/\/$/, '')); + await this.app.vault.createFolder(folder.path); } + fileName = replaceIllegalFileNameCharactersInString(fileName); + const filePath = `${folder.path}/${fileName}.md`; + // find and delete file with the same name const file = this.app.vault.getAbstractFileByPath(filePath); if (file) { @@ -348,7 +348,7 @@ export default class MediaDbPlugin extends Plugin { console.debug(`MDB | created new file at ${filePath}`); // open newly crated file - if (openFile) { + if (options.openNote) { const activeLeaf = this.app.workspace.getUnpinnedLeaf(); if (!activeLeaf) { console.warn('MDB | no active leaf, not opening newly created note'); @@ -377,10 +377,7 @@ export default class MediaDbPlugin extends Plugin { throw new Error('MDB | active note is not a Media DB entry or is missing metadata'); } - - let oldMediaTypeModel = this.mediaTypeManager.createMediaTypeModelFromMediaType(metadata, metadata.type); - // console.debug(oldMediaTypeModel); let newMediaTypeModel = await this.apiManager.queryDetailedInfoById(metadata.id, metadata.dataSource); @@ -389,15 +386,14 @@ export default class MediaDbPlugin extends Plugin { } newMediaTypeModel = Object.assign(oldMediaTypeModel, newMediaTypeModel.getWithOutUserData()); - // console.debug(newMediaTypeModel); // deletion not happening anymore why is this log statement still here console.debug('MDB | deleting old entry'); if (onlyMetadata) { - await this.createMediaDbNoteFromModel(newMediaTypeModel, {attachFile: activeFile, openNote: true}); + await this.createMediaDbNoteFromModel(newMediaTypeModel, {attachFile: activeFile, folder: activeFile.parent, openNote: true}); } else { - await this.createMediaDbNoteFromModel(newMediaTypeModel, {attachTemplate: true, openNote: true}); + await this.createMediaDbNoteFromModel(newMediaTypeModel, {attachTemplate: true, folder: activeFile.parent, openNote: true}); } } diff --git a/src/modals/MediaDbSearchResultModal.ts b/src/modals/MediaDbSearchResultModal.ts index c44a91f..bce91ee 100644 --- a/src/modals/MediaDbSearchResultModal.ts +++ b/src/modals/MediaDbSearchResultModal.ts @@ -62,7 +62,6 @@ export class MediaDbSearchResultModal extends SelectModal { } onClose() { - console.log('close'); this.closeCallback(); } } diff --git a/src/settings/PropertyMapper.ts b/src/settings/PropertyMapper.ts index 34cec39..24f0419 100644 --- a/src/settings/PropertyMapper.ts +++ b/src/settings/PropertyMapper.ts @@ -16,8 +16,6 @@ export class PropertyMapper { * @param obj */ convertObject(obj: object): object { - console.log('test1'); - if (!obj.hasOwnProperty('type')) { return obj; } diff --git a/src/utils/Utils.ts b/src/utils/Utils.ts index 133f6d7..c99ddb1 100644 --- a/src/utils/Utils.ts +++ b/src/utils/Utils.ts @@ -1,5 +1,5 @@ import {MediaTypeModel} from '../models/MediaTypeModel'; -import {TFile} from 'obsidian'; +import {TFile, TFolder} from 'obsidian'; export const pluginName: string = 'obsidian-media-db-plugin'; @@ -211,6 +211,7 @@ export interface CreateNoteOptions { attachTemplate?: boolean, attachFile?: TFile, openNote?: boolean, + folder?: TFolder, } export function migrateObject(object: T, oldData: any, defaultData: T): void {