Fix url encoding issue for modal widgets widgetId

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
Michael Telatynski 2020-09-25 15:03:54 +01:00
parent fbbba75f81
commit e3b0bf1915
3 changed files with 8 additions and 3 deletions

View file

@ -30,6 +30,7 @@ import {Notifier} from "../Notifier";
import type {Renderer} from "react-dom";
import RightPanelStore from "../stores/RightPanelStore";
import WidgetStore from "../stores/WidgetStore";
import {ModalWidgetStore} from "../stores/ModalWidgetStore";
declare global {
interface Window {
@ -53,6 +54,7 @@ declare global {
mxNotifier: typeof Notifier;
mxRightPanelStore: RightPanelStore;
mxWidgetStore: WidgetStore;
mxModalWidgetStore: ModalWidgetStore;
}
interface Document {

View file

@ -83,8 +83,9 @@ export default class ModalWidgetDialog extends React.PureComponent<IProps, IStat
public render() {
// TODO: Don't violate every single security principle
const widgetUrl = this.props.widgetDefinition.url
+ `?widgetId=${this.getWidgetId()}&parentUrl=${encodeURIComponent(window.location.href)}`;
const widgetId = encodeURIComponent(this.getWidgetId());
const parentUrl = encodeURIComponent(window.location.href);
const widgetUrl = `${this.props.widgetDefinition.url}?widgetId=${widgetId}&parentUrl=${parentUrl}`;
let buttons;
if (this.props.widgetDefinition.buttons) {

View file

@ -52,7 +52,7 @@ export class ModalWidgetStore extends AsyncStoreWithClient<IState> {
this.openSourceWidgetId = sourceWidgetId;
this.modalInstance = Modal.createTrackedDialog('Modal Widget', '', ModalWidgetDialog, {
widgetDefinition: {...requestData},
sourceWidgetId: sourceWidgetId,
sourceWidgetId,
onFinished: (success: boolean, data?: any) => {
if (!success) {
this.closeModalWidget(sourceWidgetId, {
@ -84,3 +84,5 @@ export class ModalWidgetStore extends AsyncStoreWithClient<IState> {
}
};
}
window.mxModalWidgetStore = ModalWidgetStore.instance;