[Bug-1645]Perspective File Upload component onFileReceived not firing in a popup

I was wondering if anyone else has encountered this. I have a view where I use the File Upload component to allow the user to add pictures, which I then write to a SQL database using the onFileReceived event. This works great in the designer and when I i use the view as a primary view of a page. When I try to use the view in a popup, the onFileReceived event doesn’t fire. I confirmed this by just changing the scripting to write to the gateway log, and saw that this worked in the designer and primary view, but not in the popup. I have a button in the popup that fires off just fine.

I just tested this on 8.0.15 and found that the event is working as expected, in that I logged the name of the file received and did indeed see the logging while using the File Upload Component in a Popup.
Could you provide the View you’re using for the Popup and I could take a look at it?

Were you able to solve this? I’m running into the same issue and I’m not sure what the cause is.

Thanks!

The original poster never replied, so no further action was taken. If you could supply the View in which you are encountering this I could look into it. I would also need to know what version of Perspective you are using. Also, can you take a screenshot of the Popup in which the File Upload component lives in an active session? I’d like to verify the entire Popup is visible within the viewport during the time this issue is supposedly encountered because there’s a known issue encountered when ANY portion of the Popup is not within the viewport.

I never did. We ended up pulling up the view as a docked view rather than a popup, and that worked.

Okay, we found the issue.

If you look at the generated “Identifier” for the Popup in the Popup Action dialog, you’ll see that the identifier is 8oTL/TGk.
Screen Shot 2021-01-25 at 11.38.17AM

When we attempt to upload the file, we generate a request URL which contains the path of the component making the request. When the request is received, the system verifies against the location of the component. When the component is in a Popup, the identifier is part of the path we check against; the inclusion of the / character as part of the identifier results in an added layer within the path, and so the verification fails.

I’ll open a ticket to verify we don’t allow the \ character to be generated as part of an identifier for Popups.

Workaround:
Replace the \ character within the identifier with any letter or number, or better yet supply your own identifier which means something to the Popup, like popup-camera. Supplying your own ID allows you to use other actions to close/toggle the Popup as needed.

3 Likes

Hey guys, I’ve had a very similar issue compared to the original post and couldn’t figure it out for some time. I stumbled across this thread and I can see that I have the same issue, but with a different symbol in the identifier.

image

Just wanted to highlight that the “+” symbol also causes this problem, and is still an issue in 8.1.2 (in case this hadn’t been noted already).

Thanks