Skip to content

Commit 4ae7fbd

Browse files
committed
ensure users with JS disabled can still create subscriptions
1 parent 51d2cbc commit 4ae7fbd

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

app/assets/javascripts/subscriptions.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,17 @@ document.addEventListener('DOMContentLoaded', () => {
2020
/**
2121
* Synchronizes qualifier field with the given type
2222
* @param {string} type subscription type
23+
* @param {boolean} [clear] whether to clear qualifier value
2324
*/
24-
const syncQualifier = (type) => {
25+
const syncQualifier = (type, clear = true) => {
2526
const field = document.querySelector('.js-sub-qualifier-select');
2627
const label = document.querySelector('.js-sub-qualifier-label');
2728

2829
if (field instanceof HTMLElement) {
29-
$(field).val(null).trigger('change');
30+
if (clear) {
31+
$(field).val(null).trigger('change');
32+
}
33+
3034
field.closest('.form-group')?.classList.toggle('hide', !isQualifiable(type));
3135
}
3236

@@ -50,6 +54,10 @@ document.addEventListener('DOMContentLoaded', () => {
5054
syncQualifier($event.target.value);
5155
}
5256
});
57+
58+
if (isTypeSelect(el)) {
59+
syncQualifier(el.value, false);
60+
}
5361
});
5462

5563
$('.js-sub-qualifier-select').select2({

app/views/subscriptions/_qualifier.html.erb

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
subscription : Subscription to render qualifier field for
77
"%>
88

9-
<div class="form-group<%= ' hide' unless subscription.qualified? %>">
9+
<div class="form-group hide">
1010
<%= form.label :qualifier,
1111
subscription.type&.capitalize || 'Qualifier',
1212
class: "form-element js-sub-qualifier-label" %>
@@ -21,3 +21,14 @@
2121
data: { create: 'false', placeholder: '', use_ids: subscription.user? },
2222
multiple: false %>
2323
</div>
24+
25+
<noscript>
26+
<div class="form-group">
27+
<%= form.label :qualifier, 'Qualifier', class: "form-element" %>
28+
<div class="form-caption">
29+
Must be a valid user id, category id, or tag <strong>name</strong> for user, category,
30+
or tag subscriptions respectively, or <strong>blank</strong> otherwise.
31+
</div>
32+
<%= form.text_field :qualifier, class: 'form-element' %>
33+
</div>
34+
</noscript>

0 commit comments

Comments
 (0)