Skip to content

Commit 6e4df19

Browse files
committed
Add opinion scale left and right labels
1 parent 0ffc2ea commit 6e4df19

File tree

4 files changed

+58
-12
lines changed

4 files changed

+58
-12
lines changed

examples/questionnaire/Example.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,16 +96,17 @@
9696
subtitle: '1 - Awful, 5 - So, so, 10 - Excellent',
9797
type: QuestionType.IconRate,
9898
required: true,
99-
99+
maxSize: 6,
100100
}),
101101
new QuestionModel({
102102
id: 'opinion_scale_num',
103103
tagline: 'Hi! Welcome to our demo survey 😊',
104104
title: 'Tell us about our service',
105-
subtitle: '1 - Awful, 5 - So, so, 10 - Excellent',
106105
type: QuestionType.OpinionScale,
107106
required: true,
108-
maxSize: -3
107+
maxSize: 8,
108+
labelLeft: 'Awful',
109+
labelRight: 'Excellent'
109110
}),
110111
new QuestionModel({
111112
id: 'first_name',

src/assets/css/common.css

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,8 @@ header.vff-header svg.f-logo {
542542
.vff p,
543543
.vff .f-section-text,
544544
.vff span.f-tagline,
545-
.vff span.f-sub {
545+
.vff span.f-sub,
546+
.vff .fh2 span.f-label-scale {
546547
font-size: 1.1em;
547548
line-height: 1.34;
548549
}
@@ -585,7 +586,8 @@ header.vff-header svg.f-logo {
585586
}
586587

587588
.vff .fh2 span.f-tagline,
588-
.vff .fh2 span.f-sub {
589+
.vff .fh2 span.f-sub,
590+
.vff .fh2 span.f-label-scale {
589591
font-size: .51em;
590592
}
591593

@@ -744,7 +746,6 @@ header.vff-header svg.f-logo {
744746
*/
745747

746748
.vff .field-opinionscale ul.f-radios {
747-
width: 100%;
748749
max-width: 750px;
749750
min-width: auto;
750751
display: -ms-flexbox;
@@ -790,12 +791,30 @@ header.vff-header svg.f-logo {
790791
margin: 0;
791792
}
792793

794+
.vff .f-label-scale-wrap {
795+
display: -ms-flexbox;
796+
display: flex;
797+
justify-content: space-between;
798+
max-width: 750px;
799+
min-width: auto;
800+
margin: 8px -8px 0 0;
801+
}
802+
803+
.vff .f-label-scale {
804+
margin-right: 8px;
805+
font-weight: 400;
806+
color: var(--vff-secondary-text-color);
807+
}
808+
809+
.vff .f-label-scale-num {
810+
display: none;
811+
}
812+
793813
/*
794814
field rate
795815
*/
796816

797817
.vff .field-iconrate ul.f-radios {
798-
width: 100%;
799818
max-width: 750px;
800819
min-width: auto;
801820
display: -ms-flexbox;
@@ -814,6 +833,7 @@ header.vff-header svg.f-logo {
814833
max-width: 64px;
815834
height: 100%;
816835
flex: 1 0 0%;
836+
display: -ms-flexbox;
817837
display: flex;
818838
-webkit-box-align: center;
819839
align-items: center;
@@ -829,6 +849,7 @@ header.vff-header svg.f-logo {
829849

830850
.vff .field-iconrate ul.f-radios li .f-icon-wrap {
831851
flex: 1 1 0%;
852+
display: -ms-flexbox;
832853
display: flex;
833854
-webkit-box-align: center;
834855
align-items: center;
@@ -1210,7 +1231,8 @@ header.vff-header svg.f-logo {
12101231
}
12111232

12121233
.vff .fh2 span.f-sub,
1213-
.vff .fh2 span.f-tagline {
1234+
.vff .fh2 span.f-tagline,
1235+
.vff .fh2 span.f-label-scale {
12141236
font-size: .58em;
12151237
}
12161238

@@ -1283,7 +1305,8 @@ header.vff-header svg.f-logo {
12831305
}
12841306

12851307
.vff .fh2 span.f-sub,
1286-
.vff .fh2 span.f-tagline {
1308+
.vff .fh2 span.f-tagline,
1309+
.vff .fh2 span.f-label-scale {
12871310
font-size: .64em;
12881311
}
12891312

@@ -1314,7 +1337,8 @@ header.vff-header svg.f-logo {
13141337
}
13151338

13161339
.vff .field-multiplepicturechoice ul.f-radios,
1317-
.vff .field-opinionscale ul.f-radios {
1340+
.vff .field-opinionscale ul.f-radios,
1341+
.vff .f-label-scale-wrap {
13181342
max-width: 320px;
13191343
}
13201344

@@ -1327,6 +1351,14 @@ header.vff-header svg.f-logo {
13271351
-ms-flex: 0 0 calc(20% - 8px);
13281352
flex: 0 0 calc(20% - 8px);
13291353
}
1354+
1355+
.vff .f-label-scale-wrap {
1356+
flex-direction: column;
1357+
}
1358+
1359+
.vff .f-label-scale-num {
1360+
display: inline;
1361+
}
13301362
}
13311363

13321364
@media screen and (max-height:400px) {
@@ -1360,7 +1392,8 @@ header.vff-header svg.f-logo {
13601392
}
13611393

13621394
.vff .fh2 span.f-sub,
1363-
.vff .fh2 span.f-tagline {
1395+
.vff .fh2 span.f-tagline,
1396+
.vff .fh2 span.f-label-scale {
13641397
font-size: .6em;
13651398
}
13661399

src/components/QuestionTypes/OpinionScaleType.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,16 @@
2222
</div>
2323
</li>
2424
</ul>
25+
<div v-if="!isIconScale && (question.labelLeft || question.labelRight)" class="f-label-scale-wrap">
26+
<span class="f-label-scale">
27+
<span class="f-label-scale-num">1 - </span>
28+
{{ question.labelLeft }}
29+
</span>
30+
<span class="f-label-scale">
31+
<span class="f-label-scale-num">{{ question.options.length }} - </span>
32+
{{ question.labelRight }}
33+
</span>
34+
</div>
2535
</div>
2636
</template>
2737

src/models/QuestionModel.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,9 @@ export default class QuestionModel {
132132
this.accept = null
133133
this.maxSize = null
134134
this.rows = []
135-
this.columns = []
135+
this.columns = [],
136+
this.labelLeft = null,
137+
this.labelRight = null
136138

137139
Object.assign(this, options)
138140

0 commit comments

Comments
 (0)