-
Notifications
You must be signed in to change notification settings - Fork 672
Appointment Form Redesign: Implement Recurrence form #31342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 96 commits
f4715c8
1d437a4
fbe2c0c
7edd33a
d778ed8
f0a0f84
f049340
08f13a1
ec5f897
3cabdaf
924259c
a8898bd
5180c88
70fd0c4
ae0a406
3745e61
e1a8156
d9fb18f
4b61fa0
df4bd17
56700cc
248ce40
6ea4af1
37cf38d
24d736c
867b734
9c31618
05b6395
2b47984
892bfc0
df5dd0d
de0c52e
2189653
f1eb8a4
94a0df5
0de67fe
810ea19
a90de09
fae6f22
fe41eb7
9cc815b
7dd89d0
4006b58
7fd9b07
8e91e2e
900ab3b
b1b3336
c664c47
b9c8f32
db10ac7
a52dd43
b08ce3c
1f15241
eed9e76
0502ab1
3006aea
b3bf006
5afd749
b9a1071
9b4414c
0732443
a4d4ad8
fdb89e5
8a10d88
991190e
7ed2c75
db100c0
045dcfa
3d18229
62b28d5
3ebe5f9
d7781f4
63b52d2
a260f6b
e1621c0
e05437c
e17fae5
baee802
5d043e6
b0f7217
bfe1591
b99450e
a7563de
5984e1e
e921b28
62bfd1f
69f0313
7b370ae
c450158
1a8e1e7
8be6802
900cde6
3a0caf6
019186b
76cfa38
f0adad9
b4e17fe
7493365
4e22acc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -467,6 +467,31 @@ $scheduler-appointment-form-label-padding: 20px; | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-form { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| position: relative; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| overflow: hidden; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-main-group { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| transition: transform 0.3s ease-in-out; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| transform: translateX(0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| &.dx-scheduler-form-main-hidden { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| transform: translateX(-100%); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-recurrence-group { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| position: absolute; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| top: 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| left: 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| width: 100%; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| transition: transform 0.3s ease-in-out; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| transform: translateX(100%); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| &:not(.dx-scheduler-form-recurrence-hidden) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| transform: translateX(0); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /* Icons alignment */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-group-with-icon .dx-box-item:has(.dx-scheduler-form-icon) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| flex: 0 1 auto !important; // stylelint-disable-line declaration-no-important | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -475,7 +500,9 @@ $scheduler-appointment-form-label-padding: 20px; | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-date-range-group .dx-box-item:has(.dx-scheduler-form-icon), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-description-group .dx-box-item:has(.dx-scheduler-form-icon), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-resources-group .dx-box-item:has(.dx-scheduler-default-resources-icon) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-resources-group .dx-box-item:has(.dx-scheduler-default-resources-icon), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-recurrence-settings-group .dx-box-item:has(.dx-scheduler-form-icon), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-recurrence-end-group .dx-box-item:has(.dx-scheduler-form-icon) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| align-items: start; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -502,19 +529,107 @@ $scheduler-appointment-form-label-padding: 20px; | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-start-date-group .dx-item, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-end-date-group .dx-item { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-end-date-group .dx-item, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-recurrence-settings-group .dx-item, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-day-of-month-group .dx-item, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-day-of-year-group .dx-item { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| align-items: end; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-datebox input.dx-texteditor-input { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| padding-inline-end: 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /* Recurrence End section - Grid layout with equal heights */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-recurrence-end-group { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-field-item-label { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| display: flex; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| align-items: center; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > .dx-box-item { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| height: 100%; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| margin: 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| padding: 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // RadioGroup column | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-scheduler-form-recurrence-end-radio { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-field-item-content { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| height: 100%; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| padding: 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-radiogroup { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| padding: 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| height: 100%; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| .dx-item.dx-radiobutton { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| margin: 8px 0 0 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| padding: 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| height: 32px !important; // stylelint-disable-line declaration-no-important | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| &:first-child { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| margin-top: 0; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+572
to
+578
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| height: 32px !important; // stylelint-disable-line declaration-no-important | |
| &:first-child { | |
| margin-top: 0; | |
| } | |
| } | |
| } | |
| // Increase specificity to override other height rules | |
| .dx-scheduler-form-recurrence-end-radio .dx-item.dx-radiobutton { | |
| height: 32px; | |
| } | |
| .dx-item.dx-radiobutton:first-child { | |
| margin-top: 0; | |
| } |
Copilot
AI
Oct 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The use of !important suggests a specificity issue in the CSS. Consider restructuring the selectors to avoid needing !important, which can make future maintenance more difficult.
| .dx-item.dx-radiobutton { | |
| margin: 8px 0 0 0; | |
| padding: 0; | |
| height: 32px !important; // stylelint-disable-line declaration-no-important | |
| &:first-child { | |
| margin-top: 0; | |
| } | |
| } | |
| .dx-radiogroup-item { | |
| align-items: center; | |
| } | |
| } | |
| // moved .dx-item.dx-radiobutton styles outside to increase specificity | |
| .dx-radiogroup-item { | |
| align-items: center; | |
| } | |
| } | |
| // Increased specificity to avoid !important | |
| .dx-scheduler-form-recurrence-end-radio .dx-item.dx-radiobutton { | |
| margin: 8px 0 0 0; | |
| padding: 0; | |
| height: 32px; | |
| &:first-child { | |
| margin-top: 0; | |
| } | |
| } |
Copilot
AI
Oct 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Multiple uses of !important (lines 610, 614) indicate potential CSS specificity issues. Consider refactoring the selectors to achieve the desired styling without requiring !important declarations.
| .dx-field-item, | |
| .dx-empty-item { | |
| height: 32px; | |
| margin: 0; | |
| padding: 0 !important; // stylelint-disable-line declaration-no-important | |
| } | |
| .dx-field-item-content { | |
| padding: 0 !important; // stylelint-disable-line declaration-no-important | |
| // Increase specificity by combining with parent class | |
| .dx-scheduler-form-recurrence-end-inputs .dx-field-item, | |
| .dx-scheduler-form-recurrence-end-inputs .dx-empty-item { | |
| height: 32px; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| .dx-scheduler-form-recurrence-end-inputs .dx-field-item-content { | |
| padding: 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The
!importantdeclaration is used to override styles. Consider restructuring the CSS specificity to avoid the need for!important, which can make future style changes more difficult.