8.0.13 closePopup() not working

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?

image

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:
image

but it should look that way:
image

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’)

I do that! It worked in earlier versions of Ignition.

In log file when I'm trying to close PopUp, I get this message:

Received event for missing view "PopUps/ActiveAlarms@P3NaWtTac"

what is this @P3NaWtTac?

and when I save project, I get this:

View 'PopUps/ActiveAlarms@P3NaWtTac' restarted but missing from session.

:woozy_face:

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.

1 Like

omg. sorry. I was not so attentive.

but do You know waht happend with shape stroke property?

Please ask that question in a different thread so that this thread is not hijacked.

1 Like

Hi there,

I use 8.0.16 version of Ignition

I have one question:

image
I have a popup configured with 2 buttons on it:

  1. When You press “JAH”, then the entered data have to be set into special tag (it’s working. don’t worry)
  2. 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:
system.perspective.closePopup('')

:woozy_face:

Tervist!

You should put your script under “Events”, not under “Scripts”:

1 Like

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.

because it was on Button Events, but it did not work, so I decided to put this function into root scripts...

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?

"JAH" button Event onClick:

"EI" button Event onClick:

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
:woozy_face:

You are NOT using the same script in both buttons; one is passing an empty String and one is not. BOTH should pass the empty String.

1 Like

:flushed:
omg… I need some rest…
thanx!
stupid mistake :expressionless:
sorry for taking Your time…

1 Like

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.

Any clue ?

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).

1 Like