Roundup Tracker - Issues

Issue 2551352

classification
classic classhelper overwrites current window if javascript is disabled.
Type: behavior Severity: normal
Components: Web interface Versions:
process
Status: fixed fixed
:
: rouilj : rouilj
Priority: normal : Blocker

Created on 2024-05-16 18:48 by rouilj, last changed 2024-05-22 23:06 by rouilj.

Messages
msg8052 Author: [hidden] (rouilj) Date: 2024-05-16 18:48
The result of calling db.<class>.classhelp() results in an a tag with an
href of the backend end classhelper template. It depends on an onclick
handler to open a popup window. However if javascript is disabled, clicking
on the link replaces the current page because the a link is missing a target
attribute.

E.G.

   <a class="classhelp" [...] href="issue? 
@startwith=0&amp;@template=help&amp;properties=id,title&amp;property=superseder&amp;form=itemS
ynopsis&amp;type=checkbox&amp;@sort=title&amp;@pagesize=100" onclick="javascript:[...]">\

This could result in lost work if the browsers back button doesn't
restore filled in data. I am going to add a target="_blank" to the
generated a link to open the classhelper in a new window/tab.

Also if javascript is disabled, the classhelper doesn't and can't work
even in a new window. Without javascript there is no way to select items
and insert them into the original page. It is useful for paging through
the results and manually copying id numbers to the original page.

So I am also going to add a noscript tag to the top of the classhelper
to tell people that clicking on apply/cancel etc. don't work. It will
show up only when javacript is unavailable leaving the classhelper
usable for read only viewing of the data.

This should not change how the new classhelper web component acts. The target
parameter is used only if the a link gets a click event. Since the web component
prevents the link from getting a click event, the target is ignored.
msg8053 Author: [hidden] (rouilj) Date: 2024-05-16 20:25
The noscript tag seems to not play well with frames. I added it to the center 
row (@template=help-list) where the results table is displayed.

The noscript text was not displayed in firefox (but was visible in devtools).
It was displayed in chrome, but it was scrolled off the top of the screen and
not visible to the user by default. In neither case did selecting a checkbox
cause the id number to be placed in the bottom submit text input. So javascript
*was* turned off.

Also I discovered that a frameset can only contain frame tag/elements. Anything
else seems to be ignored. I tried putting the noscript above the frameset
in user.help.html.
msg8059 Author: [hidden] (rouilj) Date: 2024-05-22 23:06
Added target="_blank" in changeset:   7970:b63fcfc2c984.

Still no luck in figuring out how to display a notice using noscript, but
at least we don't have it replacing a partly filled form.
 
cbb.
History
Date User Action Args
2024-05-22 23:06:43rouiljsetstatus: open -> fixed
resolution: fixed
messages: + msg8059
2024-05-16 20:25:25rouiljsetstatus: new -> open
messages: + msg8053
2024-05-16 18:48:20rouiljcreate