Refresh parent page after close popup

  • 2
  • Question
  • Updated 1 year ago
  • Answered
Hi - so I have a pop-up that is used to update address fields on a record. When I save the changes and close the pop-up, I want to refresh the original parent record on the page. 

I've tried adding in a Query Model action on the button that activates the pop-up - assuming it would action after the pop-up closes, but it actions right after the pop-up opens.

If I had a separate Refresh button that re-queries, then that works fine after the pop-up has closed - but I really want to have the refresh when the pop-up saves and closes.

Thanks
Photo of Simon Parker

Simon Parker

  • 420 Points 250 badge 2x thumb

Posted 4 years ago

  • 2
Photo of mB Pat Vachon

mB Pat Vachon, Champion

  • 42,714 Points 20k badge 2x thumb
Well, there are several ways to do this. Just depends what you're doing in the popup.

Quick note, all the suggestions I've got assume that something is done to a model in the popup or a button is pushed.

If the user does nothing in the popup and closes the popup by clicking on the X. Refreshing the model on the parent page can't be done unless there is a way to do this in javascript.

So, I'm assuming that you're needing to refresh the parent page because something done in the popup affects the parent page model(s) .

Two options.
1. Create an On Model Save action for the model in the popup. Set one action to query all the models you'd like. This ensures that no matter what, if changes are made then the related models will be updated.
2. Put the above mentioned action in a button on the popup. This is less desired as this requires a component where you can add custom buttons or row actions, which you may not have currently.
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
What we've been doing lately is adding custom "save and close" buttons to our popups.  These do a chain of things. 

1. Save the "New record model"
2. Save the "underneath model" - in case changes have been made  in the table that have not yet been saved. 
 -- In both steps if there are validation errors you stop the chain and return the user to either the popup or the underlying page. 
3. Query both models - to do the refresh you are asking about
4. Close the popup. 

We usually wrap the whole think in a "block ui and show message" action so the user is informed that the page is working. 

The only downside to this strategy is that you need a page title component in your popup to host your custom buttons,  and the "save" button is not aware of changes - so it is not greyed out when the popup first loads. 

Hopefully that helps. 
Photo of Justin Norris

Justin Norris

  • 782 Points 500 badge 2x thumb
Hey Rob, could you share a bit more about how you set up this custom "save and close" button. How do you achieve this set of steps? 

I am trying to solve for the same use case. 

Thanks. 
Photo of James Bullard

James Bullard

  • 112 Points 100 badge 2x thumb
Hey Rob,

I tried this out, but I think my use case is different.  Our popup uses different models than the parent page (the popup inserts records to another object) so the parent page model is not available to query model.

I can't re-direct to URL since my parent table is actually a sub-component of a VF page.

Any other way to get a refresh/re-query sent to the parent page?  javasnippet?

Next day update:  Nevermind.  It works now.  I'm not really sure why, but it works.

thanks, jhb
(Edited)
Photo of Elissa Bradley

Elissa Bradley

  • 1,672 Points 1k badge 2x thumb
Hi All, 

My pop-up contains a Page Include.  I use this combination - pop-up + page include - on many different pages.  In all cases, I need to refresh the parent page so that changes made within my pop-up/page include are shown when the pop-up is closed.  Any ideas?
Photo of mB Pat Vachon

mB Pat Vachon, Champion

  • 42,714 Points 20k badge 2x thumb
There's only one to do this that I know of. It involves using a query action and editing the options of the query action via XML to query the named Model on the parent page as it is not in the list of models to choose from on the page include page.
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
This works perfectly well.  I was suprized.... 
Photo of Elissa Bradley

Elissa Bradley

  • 1,672 Points 1k badge 2x thumb
That does indeed work perfectly well!  Very cool.

It is really slow, however - a full 6 seconds to query and close the pop-up.  I know I have models across pages that use the same name.  I'm going to try to rename and see if that helps with speed....thoughts on that?
Photo of Elissa Bradley

Elissa Bradley

  • 1,672 Points 1k badge 2x thumb
Ooh - better solution to this.  Put the Button Actions in the following order: 

- Save Model Changes
- Close Topmost Popup
- Query Models 

(No need to query BEFORE the popup is closed.  This way, the popup is closed quickly and the query still happens - no waiting and wondering for the user.)  

Perhaps this was obvious to everyone else.  :-)
Photo of Poc

Poc

  • 496 Points 250 badge 2x thumb
The above solutions seem not being able to handle that the popup is in pageInclude. Cause we could find out the parent models inside the page-included popup.