Comments (1)
Thanks for reporting this. Here are some notes on my findings so far, don't have an answer yet so these are partially notes for myself (or others who might look into this).
The Entity/DataExport screen has a bit of a different sort of form in that when submitted it can result in a download (for Out to Browser) or server side for the other two Output options. That makes a difference for client rendered HTML with Quasar which is designed for client side processing and programmatic interaction with the server rather than the simple HTML form submit.
Most of the macros for the qvt render mode have variations in them for client side forms with data going to a JavaScript object (plain JS object, ie a map) with a m-form or m-form-link Vue component wrapper around them to handle the submit (for data submission or navigation), but in this case it generates a plain HTML form element with no Vue component wrapper. That's a problem because the Quasar q-radio Vue component does generate a input with type="radio" but does not maintain state in the DOM, it only maintains state via JavaScript (using Vue form functionality with v-model, etc) so a plain browser form submit won't work as it won't pick up those values. That is an issue in addition to it not maintaining state for the user to see, which is the symptom that is described here.
It might be possible to handle the download in JavaScript without relying on how browsers handle form submits using either a hidden iframe or createObjectURL() as described here:
https://stackoverflow.com/questions/3749231/download-file-using-javascript-jquery
This is a bit more of a pain for this particular form because the client doesn't know if it is a file to download or a response that tells the client to navigate to a screen (the same screen in this case). That might be possible with the hidden iframe approach but would be easier with the createObjectURL() approach. The downside to createObjectURL() is that it pulls the data into memory and might not work for large files (client memory limits). The hidden iframe would trigger the normal browser streaming download if the response is for a download, and for a JSON response telling the client to navigate it might work to look at the contents of the iframe after the data is downloaded to see if it contains such JSON.
from moqui-runtime.
Related Issues (20)
- Is the macro-template support the vuet type? HOT 1
- The default expire-time-idle in MoquiDevConf should be bigger than 60 HOT 1
- o.moqui.i.a.XmlAction Error running groovy script (org.moqui.BaseArtifactException: Error in string expression HOT 7
- form.background-reload-id does not work in vapps HOT 1
- Quasar vs Vue UI Server Issue
- Quasar multiple form-lists interference.
- CVE-2021-23358 (High) detected in underscore-min-1.7.0.js HOT 1
- WS-2019-0103 (Medium) detected in handlebars-2.0.0.min.js HOT 1
- WS-2016-0034 (High) detected in swagger-uiv2.1.4 HOT 1
- WS-2016-0044 (Medium) detected in swagger-uiv2.1.4 HOT 1
- WS-2019-0234 (Medium) detected in swagger-uiv2.1.4 HOT 1
- CVE-2016-1000229 (Medium) detected in swagger-uiv2.1.4 HOT 1
- WS-2017-0143 (Medium) detected in swagger-uiv2.1.4 HOT 1
- CVE-2019-19919 (High) detected in handlebars-2.0.0.min.js HOT 1
- CVE-2016-1000233 (Medium) detected in swagger-uiv2.1.4 HOT 1
- CVE-2015-8861 (Medium) detected in handlebars-2.0.0.min.js HOT 1
- WS-2019-0064 (High) detected in handlebars-2.0.0.min.js HOT 1
- Allowed ips for /status has to be an exact match, no patterns are allowed. HOT 1
- Upgrade elFinder HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from moqui-runtime.