File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2525 */
2626
2727import type {
28+ CancellableEventResponse ,
2829 DashboardTileMergeEvent ,
2930 ILookerConnection ,
3031 ILookerEmbedSDK ,
@@ -75,25 +76,31 @@ const initializeControls = () => {
7576 * The default behavior is for the edit merge query page to be opened in a top
7677 * level window.
7778 */
78- const openMergeQuery = ( event : DashboardTileMergeEvent ) : any => {
79- if (
80- event . dashboard_modified &&
81- ! window . confirm (
79+ const openMergeQuery = (
80+ event : DashboardTileMergeEvent
81+ ) : CancellableEventResponse => {
82+ let doMergeEdit = false
83+ if ( ! event . dashboard_modified ) {
84+ doMergeEdit = true
85+ } else {
86+ doMergeEdit = window . confirm (
8287 'The dashboard has unsaved changes which may be lost if the merge query is edited. Proceed?'
8388 )
84- ) {
85- return
8689 }
87- window . open ( `/merge_edit?merge_url=${ encodeURI ( event . url ) } ` )
88- updateStatus ( 'Merge query edit opened in a new window' )
90+ if ( doMergeEdit ) {
91+ window . open ( `/merge_edit?merge_url=${ encodeURIComponent ( event . url ) } ` )
92+ updateStatus ( 'Merge query edit opened in a new window' )
93+ } else {
94+ updateStatus ( 'Merge query edit cancelled' )
95+ }
8996 return { cancel : true }
9097}
9198
9299/**
93100 * The merge edit url is stored in history state
94101 */
95102const getEmbedMergeEditUrl = ( ) => {
96- const embedUrl = decodeURI ( history . state ?. merge_url || '' )
103+ const embedUrl = decodeURIComponent ( history . state ?. merge_url || '' )
97104 return embedUrl || '/embed/preload'
98105}
99106
Original file line number Diff line number Diff line change 2727// IDs for content to demonstrate can be configured in the .env file or in demo_config.ts
2828
2929import type {
30+ CancellableEventResponse ,
3031 DashboardTileMergeEvent ,
3132 ILookerConnection ,
3233 ILookerEmbedSDK ,
@@ -122,17 +123,23 @@ const updateStatus = (status: string) => {
122123 * The default behavior is for the edit merge query page to be opened in a top
123124 * level window.
124125 */
125- const openMergeQuery = ( event : DashboardTileMergeEvent ) : any => {
126- if (
127- event . dashboard_modified &&
128- ! window . confirm (
126+ const openMergeQuery = (
127+ event : DashboardTileMergeEvent
128+ ) : CancellableEventResponse => {
129+ let doMergeEdit = false
130+ if ( ! event . dashboard_modified ) {
131+ doMergeEdit = true
132+ } else {
133+ doMergeEdit = window . confirm (
129134 'The dashboard has unsaved changes which may be lost if the merge query is edited. Proceed?'
130135 )
131- ) {
132- return
133136 }
134- window . open ( `/merge_edit?merge_url=${ encodeURI ( event . url ) } ` )
135- updateStatus ( 'Merge query edit opened in a new window' )
137+ if ( doMergeEdit ) {
138+ window . open ( `/merge_edit?merge_url=${ encodeURIComponent ( event . url ) } ` )
139+ updateStatus ( 'Merge query edit opened in a new window' )
140+ } else {
141+ updateStatus ( 'Merge query edit cancelled' )
142+ }
136143 return { cancel : true }
137144}
138145
You can’t perform that action at this time.
0 commit comments