luci-mod-admin-full: properly reset internal device form field

In some cases the hidden internal device field was not reset, e.g. after
aborting a wifi scan and using the browser back buttons to navigate to the
overview page again.

In such a case, the previous device hidden field was still present and a new
one getting created, causing further wireless scan attempts to get invoked
with multiple radio names as parameter which fails.

Fix this issue by using the new generic cbi_submit() helper any by dropping
the faulty wifi_action() function.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2018-07-18 10:02:07 +02:00
parent c09e154560
commit 90f9c59a2d
2 changed files with 2 additions and 10 deletions

View file

@ -79,8 +79,8 @@ local tpl_radio = tpl.Template(nil, [[
<div class="td middle cbi-section-actions">
<div>
<input type="button" class="cbi-button cbi-button-neutral" title="<%:Restart radio interface%>" value="<%:Restart%>" data-radio="<%=dev:name()%>" onclick="wifi_restart(event)" />
<input type="submit" class="cbi-button cbi-button-action important" title="<%:Find and join network%>" value="<%:Scan%>" data-radio="<%=dev:name()%>" onclick="wifi_action(event, 'join')" />
<input type="submit" class="cbi-button cbi-button-add" title="<%:Provide new network%>" value="<%:Add%>" data-radio="<%=dev:name()%>" onclick="wifi_action(event, 'add')" />
<input type="button" class="cbi-button cbi-button-action important" title="<%:Find and join network%>" value="<%:Scan%>" onclick="cbi_submit(this, 'device', '<%=dev:name()%>', '<%=url('admin/network/wireless_join')%>')" />
<input type="button" class="cbi-button cbi-button-add" title="<%:Provide new network%>" value="<%:Add%>" onclick="cbi_submit(this, 'device', '<%=dev:name()%>', '<%=url('admin/network/wireless_add')%>')" />
</div>
</div>
</div>

View file

@ -26,14 +26,6 @@
{ token: '<%=token%>' }, XHR.run);
}
function wifi_action(ev, action) {
var i = ev.target,
e = i.getAttribute('data-radio');
i.parentNode.appendChild(E('input', { type: 'hidden', name: 'device', value: e }));
i.form.action = '<%=url('admin/network/wireless_')%>' + action;
}
var networks = [ ];
document.querySelectorAll('[data-network]').forEach(function(n) {