From 559c22f6269b2a3035fa1d4d27dc6501ffb2b42b Mon Sep 17 00:00:00 2001 From: Gregory Brzezinski Date: Sat, 22 Jul 2023 21:16:00 +0300 Subject: [PATCH] Fix wde fs import --- front/src/apps/finder/finder-window.js | 54 ++++++++++++++----- front/src/apps/finder/finder.js | 1 - front/src/wde/wde.js | 16 +++++- front/src/wde/widgets/file-view/file-view.js | 4 +- .../src/wde/widgets/file-view/file-view.less | 16 +++--- front/src/web-fs/web-fs.js | 2 +- 6 files changed, 65 insertions(+), 28 deletions(-) diff --git a/front/src/apps/finder/finder-window.js b/front/src/apps/finder/finder-window.js index f7c6952..2afb6aa 100644 --- a/front/src/apps/finder/finder-window.js +++ b/front/src/apps/finder/finder-window.js @@ -98,9 +98,9 @@ export default class FinderWindow{ () => { this.ReRenderDir() }, this.#wde) - // newWindow.querySelector("#closeWindowButton").addEventListener('click', () => { - // this.#wde.Decorat.CloseWindow(newWindow) - // }) + newWindow.querySelector("#closeWindowButton").addEventListener('click', () => { + this.#wde.Decorat.CloseWindow(newWindow) + }) // newWindow.querySelector("#RootButton").addEventListener('click', () =>{ // this.RenderDir('/') @@ -126,7 +126,6 @@ export default class FinderWindow{ * @returns */ async CreateMobileView(args, runContext){ - const params = new URLSearchParams({isMobile: false}) //FIXME const response = await fetch(`/app/${this.#appId}/render?` + params, { @@ -135,14 +134,41 @@ export default class FinderWindow{ }) if (response.status != 200){ const error = await response.json() - this.#wde.Alert(error.message) + this.#finder.WDE().Alert(error.message) return } const html = await response.text() - console.log(this.#wde) - let newView = this.#wde.Decorat.CreateNewView(this.#appId) + // console.log(html) + // console.log(this.#finder.WDE()) + let newView = this.#finder.WDE().Decorat.CreateNewView(this.#appId) newView.innerHTML = html + + this.fileView = new this.#wde.FileView( + newView.querySelector(".FileTileView"), + (event) => { this.Click(event) }, + (event) => { this.RightClick(event) }, + (event, draggedElem) => { this.DropEvent(event, draggedElem)}, + () => { this.ReRenderDir() }, + this.#wde) + + // newView.querySelector("#closeWindowButton").addEventListener('click', () => { + // this.#wde.Decorat.CloseWindow(newView) + // }) + + // newView.querySelector("#RootButton").addEventListener('click', () =>{ + // this.RenderDir('/') + // }) + + // newView.querySelector("#HomeButton").addEventListener('click', () =>{ + // this.RenderDir('/home/user') + // }) + + // let scrollBar = new this.#wde.ScrollBar(newView.querySelector(".scrollbar-place"), newView.querySelector(".FileTileView")) + + this.windowElem = newView + this.RenderDir(args[0]) } + /** * @param {string} path */ @@ -304,30 +330,30 @@ export default class FinderWindow{ let res = false switch (event.target.children[0].getAttribute("action")) { case "createPathLink": - res = await WebFS.CreatePathLink(`${this.curPath}/${fileName}`, `${this.curPath}/Link to ${fileName}` ) + res = await this.#finder.WDE().WebFS().CreatePathLink(`${this.curPath}/${fileName}`, `${this.curPath}/Link to ${fileName}` ) if (res){ this.ReRenderDir() } break case "createDir": - res = await WebFS.CreateDirectory(`${this.curPath}`) - console.log(res) + res = await this.#finder.WDE().WebFS().CreateDirectory(`${this.curPath}`) + // console.log(res) if (res){ this.ReRenderDir() } break case "deleteFile": - res = await WebFS.DeleteFile(`${this.curPath}/${fileName}`) - console.log(res) + res = await this.#finder.WDE().WebFS().DeleteFile(`${this.curPath}/${fileName}`) + // console.log(res) if (res){ this.ReRenderDir() } break case "getInfo": - Finder.RenderProperites(path) + this.#finder.RenderProperites(path) break case "openAsDir": - this.#wde.Open(`/Applications/${this.#appId}.app`,[`${this.curPath}/${fileName}`]) + this.#finder.WDE().Open(`/Applications/${this.#appId}.app`,[`${this.curPath}/${fileName}`]) break default: break; diff --git a/front/src/apps/finder/finder.js b/front/src/apps/finder/finder.js index b2b2499..7c5c035 100644 --- a/front/src/apps/finder/finder.js +++ b/front/src/apps/finder/finder.js @@ -41,7 +41,6 @@ export default class Finder extends WDEApplication{ * @returns {boolean} */ async RenderProperites(path){ - // return if (path == null || path ==""){ return } diff --git a/front/src/wde/wde.js b/front/src/wde/wde.js index 0831e97..a9d9d5f 100644 --- a/front/src/wde/wde.js +++ b/front/src/wde/wde.js @@ -1,5 +1,5 @@ import WDEApplication from "./application.js" - +import WebFS from "../web-fs/web-fs.js" export default class AbstractWebDesktopEnvironment{ /** @type {string} */ #apiAddress @@ -7,12 +7,19 @@ export default class AbstractWebDesktopEnvironment{ _applications = {} /** @type {AbstractWebDesktopEnvironment} */ #wde + /** @type {WebFS} */ + #webFS + /** @constructor */ constructor(apiAddress){ this.#apiAddress = apiAddress + this.#webFS = WebFS } - /** @returns {string} */ + /** + * @deprecated + * @returns {string} + */ GetApiAddress(){ return `${location.protocol}//${this.#apiAddress}` } @@ -85,6 +92,11 @@ export default class AbstractWebDesktopEnvironment{ // console.log(appId) return this._applications[appId] } + + /** @returns {WebFS} */ + WebFS(){ + return this.#webFS + } } /** diff --git a/front/src/wde/widgets/file-view/file-view.js b/front/src/wde/widgets/file-view/file-view.js index 222a419..d1b255a 100644 --- a/front/src/wde/widgets/file-view/file-view.js +++ b/front/src/wde/widgets/file-view/file-view.js @@ -126,10 +126,10 @@ export default class WDEFileView{ const params = new URLSearchParams({ path: path }) - const response = await fetch(`${this.#wde.GetApiAddress()}/system/wde/widgets/file-tile-view?` + params) + const response = await fetch(`/system/wde/widgets/file-tile-view?` + params) if (response.status != 200){ //TODO Error text message - WebDesktopEnvironment.Alert("TODO") + WebDesktopEnvironment.Alert("TODO") //TODO return } let html = await response.text() diff --git a/front/src/wde/widgets/file-view/file-view.less b/front/src/wde/widgets/file-view/file-view.less index 0b9072b..7073b4c 100644 --- a/front/src/wde/widgets/file-view/file-view.less +++ b/front/src/wde/widgets/file-view/file-view.less @@ -3,7 +3,7 @@ width: 100%; height: 100%; - background-color: @col-white; + // background-color: @col-white; @@ -65,13 +65,13 @@ /* background-image: url("./icons/folder.png"); */ background-size: cover; - image-rendering: optimizeSpeed; /* STOP SMOOTHING, GIVE ME SPEED */ - image-rendering: -moz-crisp-edges; /* Firefox */ - image-rendering: -o-crisp-edges; /* Opera */ - image-rendering: -webkit-optimize-contrast; /* Chrome (and eventually Safari) */ - image-rendering: pixelated; /* Universal support since 2021 */ - image-rendering: optimize-contrast; /* CSS3 Proposed */ - -ms-interpolation-mode: nearest-neighbor; /* IE8+ */ + // image-rendering: optimizeSpeed; /* STOP SMOOTHING, GIVE ME SPEED */ + // image-rendering: -moz-crisp-edges; /* Firefox */ + // image-rendering: -o-crisp-edges; /* Opera */ + // image-rendering: -webkit-optimize-contrast; /* Chrome (and eventually Safari) */ + // image-rendering: pixelated; /* Universal support since 2021 */ + // image-rendering: optimize-contrast; /* CSS3 Proposed */ + // -ms-interpolation-mode: nearest-neighbor; /* IE8+ */ } .FileTileView .Selected .Icon{ diff --git a/front/src/web-fs/web-fs.js b/front/src/web-fs/web-fs.js index 133fd8c..5b94cf3 100644 --- a/front/src/web-fs/web-fs.js +++ b/front/src/web-fs/web-fs.js @@ -3,7 +3,7 @@ export default class WebFS{ * @param {string} path * @returns {boolean} */ - static async CreateDirectory(path){ + static async CreateDirectory(path){ if (path == undefined){ WebDesktopEnvironment.Alert("Path is undefined") return false