Skip to content

Commit 9a1042a

Browse files
committed
[#2099] Enable toggle active/inactive for submit button
1 parent c4a02c0 commit 9a1042a

File tree

8 files changed

+42
-36
lines changed

8 files changed

+42
-36
lines changed

src/open_inwoner/accounts/views/contactmoments.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
from open_inwoner.openklant.api_models import KlantContactMoment
1616
from open_inwoner.openklant.clients import build_client
1717
from open_inwoner.openklant.constants import Status
18-
from open_inwoner.openklant.forms import ContactForm
1918
from open_inwoner.openklant.models import ContactFormSubject
19+
from open_inwoner.openklant.views.contactform import ContactFormView
2020
from open_inwoner.openklant.wrap import (
2121
fetch_klantcontactmoment,
2222
fetch_klantcontactmomenten,
@@ -127,9 +127,14 @@ def get_kcm_subject(
127127
return subject.subject
128128

129129

130-
class KlantContactMomentListView(PaginationMixin, KlantContactMomentBaseView):
130+
class KlantContactMomentListView(
131+
PaginationMixin, ContactFormView, KlantContactMomentBaseView
132+
):
133+
"""
134+
Display "contactmomenten" (questions), and a form (via ContactFormView) to send a new question
135+
"""
136+
131137
template_name = "pages/contactmoment/list.html"
132-
form_class = ContactForm
133138
paginate_by = 9
134139

135140
@cached_property
@@ -150,7 +155,6 @@ def get_context_data(self, **kwargs):
150155
**get_fetch_parameters(self.request, use_vestigingsnummer=True)
151156
)
152157
ctx["contactmomenten"] = [self.get_kcm_data(kcm) for kcm in kcms]
153-
ctx["question_form"] = ContactForm(user=self.request.user)
154158
paginator_dict = self.paginate_with_context(ctx["contactmomenten"])
155159
ctx.update(paginator_dict)
156160
return ctx

src/open_inwoner/js/components/cases/case_contact_form.js renamed to src/open_inwoner/js/components/form/DisableContactFormButton.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
export class DisableCaseContactButton {
2-
static selector = '.case-contact-form'
1+
export class DisableContactFormButton {
2+
static selector = '.contact-form'
33

44
constructor(form) {
55
this.form = form
@@ -21,5 +21,5 @@ export class DisableCaseContactButton {
2121
}
2222

2323
document
24-
.querySelectorAll(DisableCaseContactButton.selector)
25-
.forEach((caseContactForm) => new DisableCaseContactButton(caseContactForm))
24+
.querySelectorAll(DisableContactFormButton.selector)
25+
.forEach((ContactForm) => new DisableContactFormButton(ContactForm))
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
import './FileInput'
22
import './ChoiceListSingle'
3+
import './DisableContactFormButton'

src/open_inwoner/js/components/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import './autocomplete-search'
99
import './autocomplete'
1010
import './autosumbit'
1111
import './cases'
12-
import { DisableCaseContactButton } from './cases/case_contact_form'
12+
import { DisableContactFormButton } from './form/DisableContactFormButton'
1313
import { DisableSubmitButton } from './cases/document_upload'
1414
import './confirmation'
1515
import './contacts'
@@ -48,8 +48,8 @@ const elementWrappers = [
4848
[CreateGumshoe.selector, (elt) => new CreateGumshoe(elt)],
4949
[DisableSubmitButton.selector, (elt) => new DisableSubmitButton(elt)],
5050
[
51-
DisableCaseContactButton.selector,
52-
(elt) => new DisableCaseContactButton(elt),
51+
DisableContactFormButton.selector,
52+
(elt) => new DisableContactFormButton(elt),
5353
],
5454
[Notification.selector, (elt) => new Notification(elt)],
5555
[AnchorMobile.selector, (elt) => new AnchorMobile(elt)],

src/open_inwoner/scss/components/Cases/CaseDetail.scss

-11
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,4 @@
8787
#cases-contact-form-content > h2 {
8888
margin-top: var(--spacing-large);
8989
}
90-
91-
.case-contact-form {
92-
.button[type='submit']:disabled,
93-
.button--primary.button--disabled {
94-
background-color: var(--color-gray) !important;
95-
border-color: var(--color-gray) !important;
96-
color: var(--color-white);
97-
cursor: default;
98-
pointer-events: none;
99-
}
100-
}
10190
}

src/open_inwoner/scss/components/Contactmomenten/Contactmomenten.scss

+12-4
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,6 @@
4040
max-width: 100% !important;
4141
}
4242
}
43-
44-
.button {
45-
float: left;
46-
}
4743
}
4844
}
4945

@@ -120,6 +116,18 @@
120116
}
121117
}
122118

119+
120+
.contact-form {
121+
.button[type='submit']:disabled,
122+
.button--primary.button--disabled {
123+
background-color: var(--color-gray) !important;
124+
border-color: var(--color-gray) !important;
125+
color: var(--color-white);
126+
cursor: default;
127+
pointer-events: none;
128+
}
129+
}
130+
123131
// overrides of elements outside of components
124132
section {
125133
display: block;

src/open_inwoner/templates/pages/cases/contact_form.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ <h2 class="h2" id="contact">{% trans 'Stel een vraag' %}</h2>
99
{% endblocktrans %}
1010
</p>
1111

12-
{% render_form form=contact_form method="POST" id="contact-form" hxpost=hxpost_contact_action hxtarget="#cases-contact-form" extra_classes="case-contact-form" %}
12+
{% render_form form=contact_form method="POST" id="contact-form" hxpost=hxpost_contact_action hxtarget="#cases-contact-form" extra_classes="contact-form" %}
1313
{% csrf_token %}
1414
{% textarea contact_form.question %}
1515
<div class="form__submit">

src/open_inwoner/templates/pages/contactmoment/list.html

+13-9
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ <h2 class="h2">{% trans "Stel een vraag" %}</h2>
1616
{% endblocktrans %}
1717
</p>
1818
</div>
19-
{% button href="#question-form" text=_("Stel een vraag") title=_("Stel een vraag") primary=True icon="arrow_downward" icon_position="after" %}
19+
<div class="button-row">
20+
{% button href="#question-form" text=_("Stel een vraag") title=_("Stel een vraag") primary=True icon="arrow_downward" icon_position="after" %}
21+
</div>
2022
</div>
2123
</section>
2224

@@ -76,16 +78,18 @@ <h2 class="h2">{% trans "Stel een vraag" %}</h2>
7678
</p>
7779
</div>
7880
<div>
79-
<form action="#" method="POST" id="question-form">
81+
<form action="{% url 'cases:contactmoment_list' %}" method="POST" id="question-form" class="contact-form">
8082
{% csrf_token %}
81-
{% for field in question_form.fields %}
82-
{% autorender_field question_form field %}
83-
{% endfor %}
8483

85-
<button class="button button--textless button--icon button--icon-after button--primary" type="submit">
86-
<span aria-hidden="true" class="material-icons">arrow_forward</span>
87-
{% trans "Verstuur vraag" %}
88-
</button>
84+
{% input form.subject no_help=True icon="expand_more" %}
85+
{% input form.phonenumber no_help=True %}
86+
{% input form.question no_help=True %}
87+
88+
<div class="form__submit">
89+
{% button_row %}
90+
{% button text=_("Vraag versturen") icon="east" icon_position="after" icon_outlined=True id="submit_question" type="submit" disabled=True primary=True name="question_form_submit" %}
91+
{% endbutton_row %}
92+
</div>
8993
</form>
9094
</div>
9195
</div>

0 commit comments

Comments
 (0)