@byu-oit/vue-decision-processing-components 8.35.7 → 8.35.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/deploy.yml +51 -0
- package/.repo-meta.yml +55 -55
- package/AdmitPeriodConfig.vue +115 -115
- package/ApiCallButton.vue +91 -91
- package/ApplicantInfo.vue +100 -100
- package/AssignmentBulkDialog.vue +153 -153
- package/AssignmentDialog.vue +117 -117
- package/AssignmentSummary.vue +75 -75
- package/BackgroundBadge.vue +83 -83
- package/BackgroundDetailCrime.vue +78 -78
- package/BackgroundDetailPluralMarriage.vue +43 -43
- package/BackgroundDetailSexRegistry.vue +43 -43
- package/BackgroundDetailUniversity.vue +37 -37
- package/CHANGELOG.md +676 -670
- package/Dashboard.vue +201 -201
- package/DashboardApplicationList.vue +50 -50
- package/DecisionDialog.vue +178 -178
- package/Details.vue +124 -124
- package/DetailsActivity.vue +59 -59
- package/DetailsBackground.vue +143 -143
- package/DetailsBackgroundDetail.vue +47 -47
- package/DetailsBackgroundSummary.vue +66 -66
- package/DetailsCesHold.vue +107 -107
- package/DetailsCollege.vue +93 -93
- package/DetailsContact.vue +65 -65
- package/DetailsDecision.vue +183 -183
- package/DetailsDecisionHistory.vue +56 -56
- package/DetailsEndorsement.vue +74 -74
- package/DetailsEssay.vue +59 -59
- package/DetailsFilenote.vue +62 -62
- package/DetailsFilenoteList.vue +109 -109
- package/DetailsFlagSection.vue +176 -176
- package/DetailsHeader.vue +263 -263
- package/DetailsHighSchool.vue +99 -99
- package/DetailsHsTranscript.vue +100 -100
- package/DetailsInstitute.vue +90 -90
- package/DetailsMission.vue +88 -88
- package/DetailsNewAppHistory.vue +50 -50
- package/DetailsNotes.vue +83 -83
- package/DetailsPathway.vue +45 -45
- package/DetailsScoringSection.vue +128 -128
- package/DetailsSection.vue +116 -116
- package/DetailsSeminary.vue +184 -184
- package/DetailsSrs.vue +52 -52
- package/DetailsSubnav.vue +54 -54
- package/DetailsTestScores.vue +131 -131
- package/ExpandIndicator.vue +75 -75
- package/ExternalLink.vue +34 -34
- package/FilterBreadcrumb.vue +85 -85
- package/FilterButton.vue +86 -86
- package/FilterButtonAdmitPeriod.vue +104 -109
- package/FilterButtonAppType.vue +103 -103
- package/FilterButtonAssignedTo.vue +96 -96
- package/FilterButtonClearFilters.vue +65 -65
- package/FilterButtonSex.vue +105 -105
- package/FlagButton.vue +59 -59
- package/FlagDialog.vue +129 -129
- package/Footer.vue +432 -432
- package/Header.vue +132 -132
- package/HighSchoolSummary.vue +60 -60
- package/InternationalIndicator.vue +44 -44
- package/InternationalStatus.vue +48 -48
- package/LICENSE +201 -201
- package/LoadingBadge.vue +58 -58
- package/ManageAssignments.vue +123 -123
- package/NoAuth.vue +14 -14
- package/NoteDialog.vue +106 -106
- package/ObjectViewer.vue +49 -49
- package/Queues.vue +268 -268
- package/QuickLinks.vue +25 -25
- package/README.md +2 -2
- package/RecentApplications.vue +53 -53
- package/Report.vue +340 -340
- package/ReportDetail.vue +279 -279
- package/ReportList.vue +87 -87
- package/ReportPhotos.vue +65 -65
- package/ReportSvg.vue +78 -78
- package/ReportViewer.vue +165 -165
- package/RequestAccess.vue +14 -14
- package/RequestAccessList.vue +45 -45
- package/RoleSelector.vue +29 -29
- package/Search.vue +22 -22
- package/ShowApplicantIds.vue +100 -100
- package/SortableHeader.vue +53 -53
- package/Spinner.vue +34 -34
- package/StarredIndicator.vue +36 -36
- package/StatBox.vue +73 -73
- package/StatCharts.vue +196 -196
- package/SupportDialog.vue +172 -172
- package/UserInfo.vue +52 -52
- package/YesNoIndicator.vue +48 -48
- package/dateTimeFormat.js +67 -67
- package/gpaCalculation.js +162 -162
- package/gpaFilter.js +5 -5
- package/hsSummary.json +2019 -2019
- package/package.json +36 -36
- package/parsers/application.js +396 -396
- package/parsers/decisionHistory.js +27 -27
- package/parsers/filenotes.js +27 -27
- package/parsers/notes.js +49 -49
- package/parsers/packet.js +88 -88
- package/parsers/packetList.js +57 -57
- package/parsers/reports.js +13 -13
- package/sat2Act.js +46 -46
- package/test.js +48 -48
- package/themes/ByuiFooter.vue +38 -38
- package/themes/ByuiHeader.vue +96 -96
- package/themes/LdsbcFooter.vue +38 -38
- package/themes/LdsbcHeader.vue +100 -100
- package/vuexModules/application/activity.js +32 -32
- package/vuexModules/application/applicationList.js +71 -71
- package/vuexModules/application/background.js +47 -47
- package/vuexModules/application/bio.js +38 -38
- package/vuexModules/application/citizenship.js +30 -30
- package/vuexModules/application/collegeSummaries.js +32 -32
- package/vuexModules/application/essay.js +26 -26
- package/vuexModules/application/highSchoolSummaries.js +40 -40
- package/vuexModules/application/index.js +157 -157
- package/vuexModules/application/institute.js +30 -30
- package/vuexModules/application/mission.js +48 -48
- package/vuexModules/application/personalRecords.js +24 -24
- package/vuexModules/application/questions.js +23 -23
- package/vuexModules/application/seminary.js +39 -39
- package/vuexModules/application/testScores.js +26 -26
- package/vuexModules/notes/index.js +22 -22
- package/vuexModules/packet/decision.js +43 -43
- package/vuexModules/packet/decisionHistory.js +28 -28
- package/vuexModules/packet/flags.js +174 -174
- package/vuexModules/packet/index.js +52 -52
- package/vuexModules/packet/packetList.js +127 -127
- package/vuexModules/packet/processes.js +28 -28
- package/vuexModules/reports/index.js +32 -32
- package/vuexModules/ui/index.js +56 -56
- package/vuexModules/users/index.js +46 -46
- package/yyyyMmFilter.js +7 -7
package/DetailsSeminary.vue
CHANGED
|
@@ -1,184 +1,184 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
Copyright 2018 Brigham Young University
|
|
3
|
-
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
you may not use this file except in compliance with the License.
|
|
6
|
-
You may obtain a copy of the License at
|
|
7
|
-
|
|
8
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
|
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
See the License for the specific language governing permissions and
|
|
14
|
-
limitations under the License.
|
|
15
|
-
-->
|
|
16
|
-
<template>
|
|
17
|
-
<div>
|
|
18
|
-
<div v-if="seminary" class="grid">
|
|
19
|
-
<table class="table table-borderless table-sm full-width">
|
|
20
|
-
<thead>
|
|
21
|
-
<tr>
|
|
22
|
-
<th>Seminary Type</th>
|
|
23
|
-
<th>Years Completed</th>
|
|
24
|
-
<th>Attendance</th>
|
|
25
|
-
</tr>
|
|
26
|
-
</thead>
|
|
27
|
-
<tbody>
|
|
28
|
-
<tr>
|
|
29
|
-
<td>{{seminary.seminaryType}}</td>
|
|
30
|
-
<td>{{seminary.yearsCompleted}}</td>
|
|
31
|
-
<td>{{seminary.attendancePercentage}}</td>
|
|
32
|
-
</tr>
|
|
33
|
-
</tbody>
|
|
34
|
-
</table>
|
|
35
|
-
<table v-if="!hideRecommendation && seminary.recommendation && consolidateHeaders" class="table table-borderless table-sm full-width">
|
|
36
|
-
<thead>
|
|
37
|
-
<tr>
|
|
38
|
-
<th>Instructor</th>
|
|
39
|
-
<th>Email</th>
|
|
40
|
-
<th>Years Teaching</th>
|
|
41
|
-
<th>Will Graduate?</th>
|
|
42
|
-
</tr>
|
|
43
|
-
</thead>
|
|
44
|
-
<tbody>
|
|
45
|
-
<tr v-if="seminary.recommendation.instructor">
|
|
46
|
-
<td>{{seminary.recommendation.instructor.name.response}}</td>
|
|
47
|
-
<td>{{seminary.recommendation.instructor.email.response}}</td>
|
|
48
|
-
<td>{{seminary.recommendation.instructor.yearsTeaching.response}}</td>
|
|
49
|
-
<td>{{seminary.recommendation.graduate.response}}</td>
|
|
50
|
-
</tr>
|
|
51
|
-
</tbody>
|
|
52
|
-
</table>
|
|
53
|
-
<template v-if="seminary.seminaryExplanation">
|
|
54
|
-
<h6 class="full-width">Explanation</h6>
|
|
55
|
-
<p class="full-width"> {{ seminary.seminaryExplanation }} </p>
|
|
56
|
-
</template>
|
|
57
|
-
<template v-if="!hideClasses">
|
|
58
|
-
<div v-for="(c, i) of seminary.seminaryClasses" :key="i" class="card">
|
|
59
|
-
<h6 class="card-header">{{c.seminaryClass}}</h6>
|
|
60
|
-
<div class="card-body">
|
|
61
|
-
<h6>{{c.academicYear}}</h6>
|
|
62
|
-
<div v-for="termInfo of c.termInfo" :key="termInfo.term">
|
|
63
|
-
Term {{termInfo.term}}
|
|
64
|
-
<br>
|
|
65
|
-
Reading: {{termInfo.reading}}
|
|
66
|
-
<br>
|
|
67
|
-
{{termInfo.attendance}} attendance
|
|
68
|
-
<br>
|
|
69
|
-
<span v-if="termInfo.grade">Grade: {{termInfo.grade}}</span>
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
</div>
|
|
73
|
-
</template>
|
|
74
|
-
<div v-if="!hideRecommendation && seminary.recommendation" class="full-width">
|
|
75
|
-
<h4>Seminary Recommendation</h4>
|
|
76
|
-
<table v-if="!consolidateHeaders" class="table table-sm">
|
|
77
|
-
<thead>
|
|
78
|
-
<tr>
|
|
79
|
-
<th>Instructor</th>
|
|
80
|
-
<th>Email</th>
|
|
81
|
-
<th>Years Teaching</th>
|
|
82
|
-
<th>Will Graduate?</th>
|
|
83
|
-
</tr>
|
|
84
|
-
</thead>
|
|
85
|
-
<tbody>
|
|
86
|
-
<tr v-if="seminary.recommendation.instructor">
|
|
87
|
-
<td>{{seminary.recommendation.instructor.name.response}}</td>
|
|
88
|
-
<td>{{seminary.recommendation.instructor.email.response}}</td>
|
|
89
|
-
<td>{{seminary.recommendation.instructor.yearsTeaching.response}}</td>
|
|
90
|
-
<td>{{seminary.recommendation.graduate.response}}</td>
|
|
91
|
-
</tr>
|
|
92
|
-
</tbody>
|
|
93
|
-
</table>
|
|
94
|
-
<table class="table table-borderless table-sm">
|
|
95
|
-
<thead>
|
|
96
|
-
<tr>
|
|
97
|
-
<template v-for="(c, i) of seminary.recommendation.responseCriteria">
|
|
98
|
-
<th class="selection-cell">
|
|
99
|
-
<span v-html="c"></span>
|
|
100
|
-
</th>
|
|
101
|
-
<th v-if="i === 0">
|
|
102
|
-
Prompt
|
|
103
|
-
</th>
|
|
104
|
-
</template>
|
|
105
|
-
</tr>
|
|
106
|
-
</thead>
|
|
107
|
-
<tbody>
|
|
108
|
-
<tr v-for="q of seminary.recommendation.questions" :key="q.id">
|
|
109
|
-
<template v-for="(c, i) of seminary.recommendation.responseCriteria">
|
|
110
|
-
<td :class="{ 'selected': i === q.response, 'selection-cell': true }">
|
|
111
|
-
<FontAwesomeIcon v-if="i === q.response" :icon="checkIcon" />
|
|
112
|
-
<span class="alt-text">{{ (i === q.response) ? c: '' }}</span>
|
|
113
|
-
</td>
|
|
114
|
-
<td v-if="i === 0">
|
|
115
|
-
{{ q.prompt }}
|
|
116
|
-
</td>
|
|
117
|
-
</template>
|
|
118
|
-
</tr>
|
|
119
|
-
</tbody>
|
|
120
|
-
</table>
|
|
121
|
-
|
|
122
|
-
<div v-if="seminary.recommendation.comments">
|
|
123
|
-
{{ seminary.recommendation.comments.response }}
|
|
124
|
-
</div>
|
|
125
|
-
</div>
|
|
126
|
-
</div>
|
|
127
|
-
<div v-else>
|
|
128
|
-
No seminary information reported.
|
|
129
|
-
</div>
|
|
130
|
-
</div>
|
|
131
|
-
</template>
|
|
132
|
-
<script>
|
|
133
|
-
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
|
134
|
-
import { faCheck } from '@fortawesome/free-solid-svg-icons'
|
|
135
|
-
import { mapState } from 'vuex'
|
|
136
|
-
|
|
137
|
-
export default {
|
|
138
|
-
name: 'DetailsSeminary',
|
|
139
|
-
components: { FontAwesomeIcon },
|
|
140
|
-
props: {
|
|
141
|
-
hideClasses: Boolean,
|
|
142
|
-
hideRecommendation: Boolean,
|
|
143
|
-
consolidateHeaders: Boolean
|
|
144
|
-
},
|
|
145
|
-
computed: {
|
|
146
|
-
...mapState({
|
|
147
|
-
seminary: state => state.application.seminary
|
|
148
|
-
}),
|
|
149
|
-
checkIcon () {
|
|
150
|
-
return faCheck
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
</script>
|
|
155
|
-
<style scoped>
|
|
156
|
-
.grid {
|
|
157
|
-
display: grid;
|
|
158
|
-
grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
|
|
159
|
-
grid-auto-rows: auto;
|
|
160
|
-
grid-gap: 0.5rem;
|
|
161
|
-
/* grid-auto-flow: dense; */
|
|
162
|
-
}
|
|
163
|
-
.full-width {
|
|
164
|
-
grid-column: 1 / -1;
|
|
165
|
-
}
|
|
166
|
-
h6 {
|
|
167
|
-
font-weight: bold;
|
|
168
|
-
}
|
|
169
|
-
th.selection-cell {
|
|
170
|
-
min-width: 5rem;
|
|
171
|
-
}
|
|
172
|
-
td.selection-cell {
|
|
173
|
-
text-align: center;
|
|
174
|
-
}
|
|
175
|
-
td.selected {
|
|
176
|
-
color: var(--primary, blue);
|
|
177
|
-
}
|
|
178
|
-
.alt-text {
|
|
179
|
-
font-size: 0;
|
|
180
|
-
}
|
|
181
|
-
@media only speech {
|
|
182
|
-
.alt-text { font-size: 1rem; }
|
|
183
|
-
}
|
|
184
|
-
</style>
|
|
1
|
+
<!--
|
|
2
|
+
Copyright 2018 Brigham Young University
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
-->
|
|
16
|
+
<template>
|
|
17
|
+
<div>
|
|
18
|
+
<div v-if="seminary" class="grid">
|
|
19
|
+
<table class="table table-borderless table-sm full-width">
|
|
20
|
+
<thead>
|
|
21
|
+
<tr>
|
|
22
|
+
<th>Seminary Type</th>
|
|
23
|
+
<th>Years Completed</th>
|
|
24
|
+
<th>Attendance</th>
|
|
25
|
+
</tr>
|
|
26
|
+
</thead>
|
|
27
|
+
<tbody>
|
|
28
|
+
<tr>
|
|
29
|
+
<td>{{seminary.seminaryType}}</td>
|
|
30
|
+
<td>{{seminary.yearsCompleted}}</td>
|
|
31
|
+
<td>{{seminary.attendancePercentage}}</td>
|
|
32
|
+
</tr>
|
|
33
|
+
</tbody>
|
|
34
|
+
</table>
|
|
35
|
+
<table v-if="!hideRecommendation && seminary.recommendation && consolidateHeaders" class="table table-borderless table-sm full-width">
|
|
36
|
+
<thead>
|
|
37
|
+
<tr>
|
|
38
|
+
<th>Instructor</th>
|
|
39
|
+
<th>Email</th>
|
|
40
|
+
<th>Years Teaching</th>
|
|
41
|
+
<th>Will Graduate?</th>
|
|
42
|
+
</tr>
|
|
43
|
+
</thead>
|
|
44
|
+
<tbody>
|
|
45
|
+
<tr v-if="seminary.recommendation.instructor">
|
|
46
|
+
<td>{{seminary.recommendation.instructor.name.response}}</td>
|
|
47
|
+
<td>{{seminary.recommendation.instructor.email.response}}</td>
|
|
48
|
+
<td>{{seminary.recommendation.instructor.yearsTeaching.response}}</td>
|
|
49
|
+
<td>{{seminary.recommendation.graduate.response}}</td>
|
|
50
|
+
</tr>
|
|
51
|
+
</tbody>
|
|
52
|
+
</table>
|
|
53
|
+
<template v-if="seminary.seminaryExplanation">
|
|
54
|
+
<h6 class="full-width">Explanation</h6>
|
|
55
|
+
<p class="full-width"> {{ seminary.seminaryExplanation }} </p>
|
|
56
|
+
</template>
|
|
57
|
+
<template v-if="!hideClasses">
|
|
58
|
+
<div v-for="(c, i) of seminary.seminaryClasses" :key="i" class="card">
|
|
59
|
+
<h6 class="card-header">{{c.seminaryClass}}</h6>
|
|
60
|
+
<div class="card-body">
|
|
61
|
+
<h6>{{c.academicYear}}</h6>
|
|
62
|
+
<div v-for="termInfo of c.termInfo" :key="termInfo.term">
|
|
63
|
+
Term {{termInfo.term}}
|
|
64
|
+
<br>
|
|
65
|
+
Reading: {{termInfo.reading}}
|
|
66
|
+
<br>
|
|
67
|
+
{{termInfo.attendance}} attendance
|
|
68
|
+
<br>
|
|
69
|
+
<span v-if="termInfo.grade">Grade: {{termInfo.grade}}</span>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
</template>
|
|
74
|
+
<div v-if="!hideRecommendation && seminary.recommendation" class="full-width">
|
|
75
|
+
<h4>Seminary Recommendation</h4>
|
|
76
|
+
<table v-if="!consolidateHeaders" class="table table-sm">
|
|
77
|
+
<thead>
|
|
78
|
+
<tr>
|
|
79
|
+
<th>Instructor</th>
|
|
80
|
+
<th>Email</th>
|
|
81
|
+
<th>Years Teaching</th>
|
|
82
|
+
<th>Will Graduate?</th>
|
|
83
|
+
</tr>
|
|
84
|
+
</thead>
|
|
85
|
+
<tbody>
|
|
86
|
+
<tr v-if="seminary.recommendation.instructor">
|
|
87
|
+
<td>{{seminary.recommendation.instructor.name.response}}</td>
|
|
88
|
+
<td>{{seminary.recommendation.instructor.email.response}}</td>
|
|
89
|
+
<td>{{seminary.recommendation.instructor.yearsTeaching.response}}</td>
|
|
90
|
+
<td>{{seminary.recommendation.graduate.response}}</td>
|
|
91
|
+
</tr>
|
|
92
|
+
</tbody>
|
|
93
|
+
</table>
|
|
94
|
+
<table class="table table-borderless table-sm">
|
|
95
|
+
<thead>
|
|
96
|
+
<tr>
|
|
97
|
+
<template v-for="(c, i) of seminary.recommendation.responseCriteria">
|
|
98
|
+
<th class="selection-cell">
|
|
99
|
+
<span v-html="c"></span>
|
|
100
|
+
</th>
|
|
101
|
+
<th v-if="i === 0">
|
|
102
|
+
Prompt
|
|
103
|
+
</th>
|
|
104
|
+
</template>
|
|
105
|
+
</tr>
|
|
106
|
+
</thead>
|
|
107
|
+
<tbody>
|
|
108
|
+
<tr v-for="q of seminary.recommendation.questions" :key="q.id">
|
|
109
|
+
<template v-for="(c, i) of seminary.recommendation.responseCriteria">
|
|
110
|
+
<td :class="{ 'selected': i === q.response, 'selection-cell': true }">
|
|
111
|
+
<FontAwesomeIcon v-if="i === q.response" :icon="checkIcon" />
|
|
112
|
+
<span class="alt-text">{{ (i === q.response) ? c: '' }}</span>
|
|
113
|
+
</td>
|
|
114
|
+
<td v-if="i === 0">
|
|
115
|
+
{{ q.prompt }}
|
|
116
|
+
</td>
|
|
117
|
+
</template>
|
|
118
|
+
</tr>
|
|
119
|
+
</tbody>
|
|
120
|
+
</table>
|
|
121
|
+
|
|
122
|
+
<div v-if="seminary.recommendation.comments">
|
|
123
|
+
{{ seminary.recommendation.comments.response }}
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
<div v-else>
|
|
128
|
+
No seminary information reported.
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</template>
|
|
132
|
+
<script>
|
|
133
|
+
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
|
134
|
+
import { faCheck } from '@fortawesome/free-solid-svg-icons'
|
|
135
|
+
import { mapState } from 'vuex'
|
|
136
|
+
|
|
137
|
+
export default {
|
|
138
|
+
name: 'DetailsSeminary',
|
|
139
|
+
components: { FontAwesomeIcon },
|
|
140
|
+
props: {
|
|
141
|
+
hideClasses: Boolean,
|
|
142
|
+
hideRecommendation: Boolean,
|
|
143
|
+
consolidateHeaders: Boolean
|
|
144
|
+
},
|
|
145
|
+
computed: {
|
|
146
|
+
...mapState({
|
|
147
|
+
seminary: state => state.application.seminary
|
|
148
|
+
}),
|
|
149
|
+
checkIcon () {
|
|
150
|
+
return faCheck
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
</script>
|
|
155
|
+
<style scoped>
|
|
156
|
+
.grid {
|
|
157
|
+
display: grid;
|
|
158
|
+
grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
|
|
159
|
+
grid-auto-rows: auto;
|
|
160
|
+
grid-gap: 0.5rem;
|
|
161
|
+
/* grid-auto-flow: dense; */
|
|
162
|
+
}
|
|
163
|
+
.full-width {
|
|
164
|
+
grid-column: 1 / -1;
|
|
165
|
+
}
|
|
166
|
+
h6 {
|
|
167
|
+
font-weight: bold;
|
|
168
|
+
}
|
|
169
|
+
th.selection-cell {
|
|
170
|
+
min-width: 5rem;
|
|
171
|
+
}
|
|
172
|
+
td.selection-cell {
|
|
173
|
+
text-align: center;
|
|
174
|
+
}
|
|
175
|
+
td.selected {
|
|
176
|
+
color: var(--primary, blue);
|
|
177
|
+
}
|
|
178
|
+
.alt-text {
|
|
179
|
+
font-size: 0;
|
|
180
|
+
}
|
|
181
|
+
@media only speech {
|
|
182
|
+
.alt-text { font-size: 1rem; }
|
|
183
|
+
}
|
|
184
|
+
</style>
|
package/DetailsSrs.vue
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div v-if="hasInfo" class="card">
|
|
3
|
-
<div class="card-body">
|
|
4
|
-
<h6 class="card-title">Self Reliance</h6>
|
|
5
|
-
<dl class="card-text">
|
|
6
|
-
<dt>Certificates:</dt>
|
|
7
|
-
<dd>{{srs.certificates}}</dd>
|
|
8
|
-
|
|
9
|
-
<dt>Facilitator:</dt>
|
|
10
|
-
<dd>{{srs.facilitator}}</dd>
|
|
11
|
-
|
|
12
|
-
<dt>Site:</dt>
|
|
13
|
-
<dd>{{srs.site}}</dd>
|
|
14
|
-
</dl>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
</template>
|
|
18
|
-
<script>
|
|
19
|
-
import { mapState } from 'vuex'
|
|
20
|
-
|
|
21
|
-
export default {
|
|
22
|
-
name: 'DetailsSrs',
|
|
23
|
-
computed: {
|
|
24
|
-
...mapState({
|
|
25
|
-
srs: state => state.srs,
|
|
26
|
-
hasInfo: state => !/none/.test(state.srs.certificates)
|
|
27
|
-
}),
|
|
28
|
-
hasInfo () {
|
|
29
|
-
const certificates = this.srs.certificates
|
|
30
|
-
if (!certificates) {
|
|
31
|
-
return false
|
|
32
|
-
}
|
|
33
|
-
return !/none/.test(certificates)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
</script>
|
|
38
|
-
<style scoped>
|
|
39
|
-
dl {
|
|
40
|
-
display: grid;
|
|
41
|
-
grid-template-columns: [label] auto [value] auto;
|
|
42
|
-
grid-column-gap: 0.5rem;
|
|
43
|
-
}
|
|
44
|
-
dt {
|
|
45
|
-
font-weight: bold;
|
|
46
|
-
text-align: right;
|
|
47
|
-
grid-column-start: label;
|
|
48
|
-
}
|
|
49
|
-
dd {
|
|
50
|
-
grid-column-start: value;
|
|
51
|
-
}
|
|
52
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div v-if="hasInfo" class="card">
|
|
3
|
+
<div class="card-body">
|
|
4
|
+
<h6 class="card-title">Self Reliance</h6>
|
|
5
|
+
<dl class="card-text">
|
|
6
|
+
<dt>Certificates:</dt>
|
|
7
|
+
<dd>{{srs.certificates}}</dd>
|
|
8
|
+
|
|
9
|
+
<dt>Facilitator:</dt>
|
|
10
|
+
<dd>{{srs.facilitator}}</dd>
|
|
11
|
+
|
|
12
|
+
<dt>Site:</dt>
|
|
13
|
+
<dd>{{srs.site}}</dd>
|
|
14
|
+
</dl>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
</template>
|
|
18
|
+
<script>
|
|
19
|
+
import { mapState } from 'vuex'
|
|
20
|
+
|
|
21
|
+
export default {
|
|
22
|
+
name: 'DetailsSrs',
|
|
23
|
+
computed: {
|
|
24
|
+
...mapState({
|
|
25
|
+
srs: state => state.srs,
|
|
26
|
+
hasInfo: state => !/none/.test(state.srs.certificates)
|
|
27
|
+
}),
|
|
28
|
+
hasInfo () {
|
|
29
|
+
const certificates = this.srs.certificates
|
|
30
|
+
if (!certificates) {
|
|
31
|
+
return false
|
|
32
|
+
}
|
|
33
|
+
return !/none/.test(certificates)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
</script>
|
|
38
|
+
<style scoped>
|
|
39
|
+
dl {
|
|
40
|
+
display: grid;
|
|
41
|
+
grid-template-columns: [label] auto [value] auto;
|
|
42
|
+
grid-column-gap: 0.5rem;
|
|
43
|
+
}
|
|
44
|
+
dt {
|
|
45
|
+
font-weight: bold;
|
|
46
|
+
text-align: right;
|
|
47
|
+
grid-column-start: label;
|
|
48
|
+
}
|
|
49
|
+
dd {
|
|
50
|
+
grid-column-start: value;
|
|
51
|
+
}
|
|
52
|
+
</style>
|
package/DetailsSubnav.vue
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="details-subnav">
|
|
3
|
-
<router-link to="/last-list" class="back">
|
|
4
|
-
<font-awesome-icon :icon="leftIcon"/>
|
|
5
|
-
Back to list
|
|
6
|
-
</router-link>
|
|
7
|
-
<span class="spacer"></span>
|
|
8
|
-
<router-link class="prev" :to="`/detail/${prevApp}`" v-if="prevApp">
|
|
9
|
-
<font-awesome-icon :icon="leftIcon"/>
|
|
10
|
-
Previous
|
|
11
|
-
</router-link>
|
|
12
|
-
<router-link class="next" :to="`/detail/${nextApp}`" v-if="nextApp">
|
|
13
|
-
Next
|
|
14
|
-
<font-awesome-icon :icon="rightIcon"/>
|
|
15
|
-
</router-link>
|
|
16
|
-
</div>
|
|
17
|
-
</template>
|
|
18
|
-
<script>
|
|
19
|
-
import get from 'lodash.get'
|
|
20
|
-
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
|
21
|
-
import { faCaretLeft, faCaretRight } from '@fortawesome/free-solid-svg-icons'
|
|
22
|
-
|
|
23
|
-
export default {
|
|
24
|
-
name: 'DetailsSubnav',
|
|
25
|
-
components: { FontAwesomeIcon },
|
|
26
|
-
props: {
|
|
27
|
-
appId: {
|
|
28
|
-
type: String
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
computed: {
|
|
32
|
-
nextApp () {
|
|
33
|
-
return this.appId ? this.$store.getters.nextApplication(this.appId) : false
|
|
34
|
-
},
|
|
35
|
-
prevApp () {
|
|
36
|
-
return this.appId ? this.$store.getters.prevApplication(this.appId) : false
|
|
37
|
-
},
|
|
38
|
-
leftIcon () { return faCaretLeft },
|
|
39
|
-
rightIcon () { return faCaretRight }
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
</script>
|
|
43
|
-
<style scoped>
|
|
44
|
-
.details-subnav {
|
|
45
|
-
display: grid;
|
|
46
|
-
grid-template-columns: auto 1fr auto auto;
|
|
47
|
-
grid-gap: 0.5rem;
|
|
48
|
-
box-shadow: inset 0rem 0.1rem 0.1rem rgba(0,0,0,0.25), 0rem 0.1rem 0.1rem rgba(0,0,0,0.25);
|
|
49
|
-
}
|
|
50
|
-
.back, .prev, .next {
|
|
51
|
-
text-transform: uppercase;
|
|
52
|
-
cursor: pointer;
|
|
53
|
-
}
|
|
54
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="details-subnav">
|
|
3
|
+
<router-link to="/last-list" class="back">
|
|
4
|
+
<font-awesome-icon :icon="leftIcon"/>
|
|
5
|
+
Back to list
|
|
6
|
+
</router-link>
|
|
7
|
+
<span class="spacer"></span>
|
|
8
|
+
<router-link class="prev" :to="`/detail/${prevApp}`" v-if="prevApp">
|
|
9
|
+
<font-awesome-icon :icon="leftIcon"/>
|
|
10
|
+
Previous
|
|
11
|
+
</router-link>
|
|
12
|
+
<router-link class="next" :to="`/detail/${nextApp}`" v-if="nextApp">
|
|
13
|
+
Next
|
|
14
|
+
<font-awesome-icon :icon="rightIcon"/>
|
|
15
|
+
</router-link>
|
|
16
|
+
</div>
|
|
17
|
+
</template>
|
|
18
|
+
<script>
|
|
19
|
+
import get from 'lodash.get'
|
|
20
|
+
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
|
21
|
+
import { faCaretLeft, faCaretRight } from '@fortawesome/free-solid-svg-icons'
|
|
22
|
+
|
|
23
|
+
export default {
|
|
24
|
+
name: 'DetailsSubnav',
|
|
25
|
+
components: { FontAwesomeIcon },
|
|
26
|
+
props: {
|
|
27
|
+
appId: {
|
|
28
|
+
type: String
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
computed: {
|
|
32
|
+
nextApp () {
|
|
33
|
+
return this.appId ? this.$store.getters.nextApplication(this.appId) : false
|
|
34
|
+
},
|
|
35
|
+
prevApp () {
|
|
36
|
+
return this.appId ? this.$store.getters.prevApplication(this.appId) : false
|
|
37
|
+
},
|
|
38
|
+
leftIcon () { return faCaretLeft },
|
|
39
|
+
rightIcon () { return faCaretRight }
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
</script>
|
|
43
|
+
<style scoped>
|
|
44
|
+
.details-subnav {
|
|
45
|
+
display: grid;
|
|
46
|
+
grid-template-columns: auto 1fr auto auto;
|
|
47
|
+
grid-gap: 0.5rem;
|
|
48
|
+
box-shadow: inset 0rem 0.1rem 0.1rem rgba(0,0,0,0.25), 0rem 0.1rem 0.1rem rgba(0,0,0,0.25);
|
|
49
|
+
}
|
|
50
|
+
.back, .prev, .next {
|
|
51
|
+
text-transform: uppercase;
|
|
52
|
+
cursor: pointer;
|
|
53
|
+
}
|
|
54
|
+
</style>
|