Use signleton marked options service. Fix popover size to not overflow viewport size. Add path routing for rulenode help assets to k8s ingress configuration.
This commit is contained in:
parent
69e2f0c115
commit
720d264832
@ -424,6 +424,10 @@ spec:
|
||||
backend:
|
||||
serviceName: tb-node
|
||||
servicePort: 8080
|
||||
- path: /assets/help/.*/rulenode/.*
|
||||
backend:
|
||||
serviceName: tb-node
|
||||
servicePort: 8080
|
||||
- path: /oauth2/.*
|
||||
backend:
|
||||
serviceName: tb-node
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
limitations under the License.
|
||||
|
||||
-->
|
||||
<div class="tb-dashboard-page mat-content" [ngClass]="{'mobile-app': isMobileApp && !isEdit}" style="padding-top: 150px;" tb-toast toastTarget="dashboardRoot"
|
||||
<div class="tb-dashboard-page mat-content" [ngClass]="{'mobile-app': isMobileApp && !isEdit}" tb-toast toastTarget="dashboardRoot"
|
||||
fxFlex tb-fullscreen [fullscreen]="widgetEditMode || iframeMode || forceFullscreen || isFullscreen">
|
||||
<tb-hotkeys-cheatsheet #cheatSheetComponent></tb-hotkeys-cheatsheet>
|
||||
<section class="tb-dashboard-toolbar"
|
||||
|
||||
@ -1355,8 +1355,9 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI
|
||||
parentDashboard: this.widgetContext.parentDashboard ?
|
||||
this.widgetContext.parentDashboard : this.widgetContext.dashboard
|
||||
},
|
||||
{width: popoverWidth, height: popoverHeight},
|
||||
popoverStyle,
|
||||
{width: popoverWidth, height: popoverHeight}
|
||||
{}
|
||||
);
|
||||
this.widgetContext.registerPopoverComponent(component);
|
||||
}
|
||||
@ -1398,6 +1399,7 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI
|
||||
this.dialog.open(this.embedDashboardDialogComponent, {
|
||||
disableClose: true,
|
||||
panelClass: ['tb-dialog', 'tb-fullscreen-dialog'],
|
||||
viewContainerRef: this.widgetContentContainer,
|
||||
data: {
|
||||
dashboard,
|
||||
state: objToBase64([ stateObject ]),
|
||||
|
||||
@ -16,8 +16,8 @@
|
||||
:host {
|
||||
.tb-help-markdown {
|
||||
overflow: auto;
|
||||
max-width: 50vw;
|
||||
max-height: 50vh;
|
||||
max-width: 80vw;
|
||||
max-height: 80vh;
|
||||
margin-top: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,6 +31,8 @@ $box-shadow-base: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0,
|
||||
text-align: left;
|
||||
cursor: auto;
|
||||
user-select: text;
|
||||
max-width: 100vw;
|
||||
max-height: 100vh;
|
||||
|
||||
&::after {
|
||||
position: absolute;
|
||||
@ -74,6 +76,8 @@ $box-shadow-base: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0,
|
||||
box-shadow: $box-shadow-base;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
&-close-button {
|
||||
@ -97,9 +101,17 @@ $box-shadow-base: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0,
|
||||
}
|
||||
}
|
||||
|
||||
&-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
&-inner-content {
|
||||
padding: 12px 16px;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
// Arrows
|
||||
|
||||
@ -312,7 +312,7 @@ export class TbPopoverService {
|
||||
|
||||
displayPopover<T>(trigger: Element, renderer: Renderer2, hostView: ViewContainerRef,
|
||||
componentType: Type<T>, preferredPlacement: PopoverPlacement = 'top', hideOnClickOutside = true,
|
||||
injector?: Injector, context?: any, popoverStyle: any = {}, style?: any): TbPopoverComponent {
|
||||
injector?: Injector, context?: any, overlayStyle: any = {}, popoverStyle: any = {}, style?: any): TbPopoverComponent {
|
||||
const componentRef = hostView.createComponent(this.componentFactory);
|
||||
const component = componentRef.instance;
|
||||
this.popoverWithTriggers.push({
|
||||
@ -329,6 +329,7 @@ export class TbPopoverService {
|
||||
component.tbComponentFactory = this.resolver.resolveComponentFactory(componentType);
|
||||
component.tbComponentInjector = injector;
|
||||
component.tbComponentContext = context;
|
||||
component.tbOverlayStyle = overlayStyle;
|
||||
component.tbPopoverInnerStyle = popoverStyle;
|
||||
component.tbComponentStyle = style;
|
||||
component.tbHideOnClickOutside = hideOnClickOutside;
|
||||
@ -474,7 +475,7 @@ export class TbPopoverService {
|
||||
</div>
|
||||
<div class="tb-popover-inner" [ngStyle]="tbPopoverInnerStyle" role="tooltip">
|
||||
<div class="tb-popover-close-button" (click)="closeButtonClick($event)">×</div>
|
||||
<div>
|
||||
<div style="width: 100%; height: 100%;">
|
||||
<div class="tb-popover-inner-content">
|
||||
<ng-container *ngIf="tbContent">
|
||||
<ng-container *tbStringTemplateOutlet="tbContent">{{ tbContent }}</ng-container>
|
||||
|
||||
@ -314,7 +314,8 @@ import { MarkedOptionsService } from '@shared/components/marked-options.service'
|
||||
sanitize: SecurityContext.NONE,
|
||||
markedOptions: {
|
||||
provide: MarkedOptions,
|
||||
useClass: MarkedOptionsService
|
||||
useFactory: (markedOptionsService: MarkedOptionsService) => markedOptionsService,
|
||||
deps: [MarkedOptionsService]
|
||||
}
|
||||
})
|
||||
],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user