From 908fb4da87aa8c0602d8dea3d2c5478497b4dac5 Mon Sep 17 00:00:00 2001 From: Julia Gru <56249914+julczka@users.noreply.github.com> Date: Wed, 26 Apr 2023 13:15:56 +0200 Subject: [PATCH] fix blinking show logs --- .../logviewer/workspace/logviewer.context.ts | 17 ++++--- .../log-viewer-messages-list.element.ts | 50 ++++++++++++------- .../views/search/log-search-view.element.ts | 8 ++- 3 files changed, 44 insertions(+), 31 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer.context.ts index 73c793e4dd..20a633fa60 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer.context.ts @@ -73,6 +73,9 @@ export class UmbLogViewerWorkspaceContext { #canShowLogs = new UmbBasicState(null); canShowLogs = createObservablePart(this.#canShowLogs, (data) => data); + #isLoadingLogs = new UmbBasicState(null); + isLoadingLogs = createObservablePart(this.#isLoadingLogs, (data) => data); + #filterExpression = new UmbStringState(''); filterExpression = createObservablePart(this.#filterExpression, (data) => data); @@ -86,6 +89,8 @@ export class UmbLogViewerWorkspaceContext { logs = createObservablePart(this.#logs, (data) => data?.items); logsTotal = createObservablePart(this.#logs, (data) => data?.total); + + #polling = new UmbObjectState({ enabled: false, interval: 2000 }); polling = createObservablePart(this.#polling, (data) => data); @@ -105,13 +110,7 @@ export class UmbLogViewerWorkspaceContext { this.validateLogSize(); } - reset() { - this.#logs.next({ items: [], total: 0 }); - this.setCurrentPage(1); - } - onChangeState = () => { - this.reset(); const searchQuery = query(); let sanitizedQuery = ''; @@ -266,6 +265,9 @@ export class UmbLogViewerWorkspaceContext { return; } + this.#isLoadingLogs.next(true); + + const skip = (this.currentPage - 1) * 100; const take = 100; @@ -279,9 +281,10 @@ export class UmbLogViewerWorkspaceContext { }; const { data } = await this.#repository.getLogs(options); - + this.#isLoadingLogs.next(false); if (data) { this.#logs.next(data); + } }; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts index c9c07dca5d..a69089577c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts @@ -8,8 +8,6 @@ import { DirectionModel, LogMessageResponseModel } from '@umbraco-cms/backoffice @customElement('umb-log-viewer-messages-list') export class UmbLogViewerMessagesListElement extends UmbLitElement { - - @query('#logs-scroll-container') private _logsScrollContainer!: UUIScrollContainerElement; @@ -22,6 +20,9 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement { @state() private _logsTotal = 0; + @state() + private _isLoading = true; + #logViewerContext?: UmbLogViewerWorkspaceContext; constructor() { @@ -40,6 +41,10 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement { this._logs = logs ?? []; }); + this.observe(this.#logViewerContext.isLoadingLogs, (isLoading) => { + this._isLoading = isLoading === null ? this._isLoading : isLoading; + }); + this.observe(this.#logViewerContext.logsTotal, (total) => { this._logsTotal = total ?? 0; }); @@ -74,6 +79,24 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement { `; } + #renderLogs() { + return html`${this._logs.length > 0 + ? html` ${this._logs.map( + (log) => html`` + )}` + : html` + Sorry, we cannot find what you are looking for. + `}`; + } + render() { return html`

Total items: ${this._logsTotal}

@@ -90,25 +113,14 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement {
Machine name
Message
- ${this._logs.length > 0 - ? html` ${this._logs.map( - (log) => html`` - )}` - : html` - Sorry, we cannot find what you are looking for. - `} - ${this._renderPagination()} + ${this._isLoading + ? html` Loading log messages... ` + : html`${this.#renderLogs()}${this._renderPagination()}`}
`; } - + static styles = [ UUITextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts index 264981edab..7258faf17c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts @@ -7,10 +7,8 @@ import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-a @customElement('umb-log-viewer-search-view') export class UmbLogViewerSearchViewElement extends UmbLitElement { - - @state() - private _canShowLogs = false; + private _canShowLogs = true; #logViewerContext?: UmbLogViewerWorkspaceContext; @@ -29,7 +27,7 @@ export class UmbLogViewerSearchViewElement extends UmbLitElement { if (!this.#logViewerContext) return; this.#canShowLogsObserver = this.observe(this.#logViewerContext.canShowLogs, (canShowLogs) => { - this._canShowLogs = canShowLogs ?? false; + this._canShowLogs = canShowLogs ?? this._canShowLogs; }); } @@ -52,7 +50,7 @@ export class UmbLogViewerSearchViewElement extends UmbLitElement { `; } - + static styles = [ UUITextStyles, css`