Just upgraded to 8.0.13 tonight. Have the weekend to figure out any bugs. Right away noticed that close buttons no longer work on popup views.
Have multiple popups using custom close buttons - some using the popup event and some using the system.perspective.closePopup() function. I’m using the correct identifier in each case and none of the buttons are closing the popups. togglePopup() doesn’t work for me either. These buttons worked in 8.0.12.
There was a bug in 8.0.12 where if closePopup() (and/or togglePopup() ) was called but the id specified did not match any open Popup, Perspective just indiscriminately closed the most recently focused Popup. We fixed that issue in 8.0.13, so I would examine the Popup being opened and make sure that closePopup is specifying the correct id. If you want to continue using the caution-to-the-wind approach, you can provide an empty string for the id argument in order to mimic the 8.0.12 behavior:
system.perspective.closePopup(id='')
To be clear, this is not a bug in 8.0.13; you happen to be using a bug in 8.0.12 and probably assumed it was working as intended up until now - as did many people.
UPDATE: Never mind, I figured it out. I have to update the “Identifier” text box with the ID used when opening the popup.
@cmallonee In 8.0.12, I configured a popup to serve as a message box of sorts. When the user pressed a “Submit” button, an INSERT query ran and a popup came up showing the RecordID of the row the user just inserted into SQL. That popup was just a label and an “OK” button. On the “onActionPerformed” event of the “OK” button, I configured a popup event to close itself. That is now not working.
From your response, I gather I somehow need to point the Close command to a specific instance of the popup view? How can I do that?
Correct. This had always been required for targeting Popups to close in a Session; it just didn't work correctly before 8.0.13. If you find that you have to allocate Popup IDs dynamically, you also have the option of translating your Popup Action into a Script Action and invoking system.perspective.openPopup() (or closePopup() ).
I use 8.0.15 version of Ignition.
The function system.perspective.closePopup() doesn’t work for me…
It worked it earlier versions… but after the update it doesn’t
Can anyone help me with that?
And… icon’s shape strokes work strange…
it looks like that:
You can either use system.perspective.closePopup(’’) using quotes inside the parentheses, or use the name of the popup, as specified in your call to system.perspective.openPopup(‘name’, ‘viewpath’)
Yes, but if you read the solution for this thread, you'll see why it no longer works like you originally had it.
@P3NaWtTac Is the name of a View in memory. You're most likely seeing this message because the View has some sort of Event thread running on the Gateway (like a binding or Message Handler) which is attempting to the update the View after it has been closed. It's benign logging.
When You press “JAH”, then the entered data have to be set into special tag (it’s working. don’t worry)
When You press “EI”, the PopUp have to be closed without any manipulations…
so… the second button does not closing… why??
I use the same script for close the popup:
I don’t know why you put that script into a custom function, but it doesn’t belong there; it belongs in a Script Action invoked as part of an Event triggered by the Button, as @quper posted. That posted Event/Action combo is correct, and is part of the Button - not the root.
Please provide a screenshot of the script in the appropriate location and then we’ll work to see why it’s supposedly not working for you. Have you specified an id for the Popup? An id is not required to get this working, but it helps us to diagnose and/or help with the issue. Does the Page have more than one Popup open?
I open only one popup here on the page
page does not have page ID...
You know...
We have another Project - the copy of current... and there this PopUp works fine... scripts and windows are the same... these projects located on different Servers
Hello there, digging this up for pretty much the same problem.
Here’s the situation:
I have a dock with a button, that when clicked (onClick script) opens a popup with
system.perspective.openPopup("tcu_selection", "PopUp/TcuSelection", title="Select a TCU", params={'site_id': 1}, modal=True, overlayDismiss=True)
The PopUp/TcuSelection view has a button, which should close the popup when clicked. It has this code as onClick script:
self.perspective.closePopup("tcu_selection")
But you guessed it, the popup won’t close this way. It closes fine when clicking the x button or outside of the popup, but that script line has no effect whatsoever, except crashing the script and skipping the rest of the code if I put anything after it.
I tried with and without the popup id, replacing it with just "", but no dice.
I’m kinda guessing that it has something to do with the optional pageId parameter to the function… But I don’t even know if I’m on the right track, and I cannot figure out how to get out of this.
If you look at your Gateway logs you’ll see that the closePopup call is failing because the script object has no attribute “perspective”. Replace self with system and you’re good-to-go.
Essentially, you want to use a “system” function, but you’re trying to use it as if it belongs to the script (“self” would refer to the script in this usage).