Skip to content

Commit be36cf7

Browse files
committed
unification of UIs and small bug fixes
1 parent 34261b7 commit be36cf7

5 files changed

Lines changed: 63 additions & 53 deletions

File tree

EvalView/static/EvalView/css/direct-assessment-document-mqm-esa.css

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,6 @@
8080
font-size: small;
8181
}
8282

83-
.quotelike {
84-
font-size: 16px;
85-
margin: 0;
86-
padding: 5px;
87-
background-color: #eee;
88-
}
89-
90-
.question-box {
91-
margin-bottom: 10px;
92-
color: #555;
93-
94-
}
95-
9683
.item-box {
9784
margin-bottom: 20px;
9885
border-radius: 4px;

EvalView/static/EvalView/js/direct-assessment-document-mqm-esa.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,8 @@ $(document).ready(() => {
194194
$(".item-box").each((_i, el) => {
195195
let $el = $(el);
196196

197-
// Skip document-level items (those with document-box class)
198-
if ($el.hasClass('document-box')) {
197+
// Skip document-level items (those with document-box class or containing document-box)
198+
if ($el.hasClass('document-box') || $el.find('.document-box').length > 0) {
199199
console.log("Skipping MQM handler for document-level item:", $el.attr("data-item-id"));
200200
return;
201201
}

EvalView/static/EvalView/js/scalar-slider.js

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -239,37 +239,47 @@
239239
var numericValue = toNumber(value, 0);
240240
var percentage = numericValue / this.options.max;
241241

242-
// Interpolate between red (0) and green (100)
243-
// Red: #d82e28, Orange: #f07f46, Yellow: #f5c46b, Yellow-green: #b7e276, Green: #2db034
244-
var r, g, b;
245-
if (percentage <= 0.2) {
246-
// Red to orange (0-20)
247-
var t = percentage * 5;
248-
r = Math.round(216 * (1 - t) + 240 * t);
249-
g = Math.round(46 * (1 - t) + 127 * t);
250-
b = Math.round(40 * (1 - t) + 70 * t);
251-
} else if (percentage <= 0.4) {
252-
// Orange to yellow (20-40)
253-
var t = (percentage - 0.2) * 5;
254-
r = Math.round(240 * (1 - t) + 245 * t);
255-
g = Math.round(127 * (1 - t) + 196 * t);
256-
b = Math.round(70 * (1 - t) + 107 * t);
257-
} else if (percentage <= 0.6) {
258-
// Yellow to yellow-green (40-60)
259-
var t = (percentage - 0.4) * 5;
260-
r = Math.round(245 * (1 - t) + 183 * t);
261-
g = Math.round(196 * (1 - t) + 226 * t);
262-
b = Math.round(107 * (1 - t) + 118 * t);
263-
} else {
264-
// Yellow-green to green (60-100)
265-
var t = (percentage - 0.6) * 2.5;
266-
r = Math.round(183 * (1 - t) + 45 * t);
267-
g = Math.round(226 * (1 - t) + 176 * t);
268-
b = Math.round(118 * (1 - t) + 52 * t);
269-
}
242+
// Color stops from CSS quality-option-1 through quality-option-10
243+
// Each represents 10% of the scale (0-9, 10-19, ..., 90-100)
244+
var colorStops = [
245+
{r: 216, g: 46, b: 40}, // #d82e28 - option-1 (0-9)
246+
{r: 225, g: 104, b: 75}, // #e1684b - option-2 (10-19)
247+
{r: 240, g: 127, b: 70}, // #f07f46 - option-3 (20-29)
248+
{r: 240, g: 173, b: 78}, // #f0ad4e - option-4 (30-39)
249+
{r: 245, g: 196, b: 107}, // #f5c46b - option-5 (40-49)
250+
{r: 211, g: 231, b: 98}, // #d3e762 - option-6 (50-59)
251+
{r: 183, g: 226, b: 118}, // #b7e276 - option-7 (60-69)
252+
{r: 142, g: 220, b: 141}, // #8edc8d - option-8 (70-79)
253+
{r: 94, g: 191, b: 100}, // #5ebf64 - option-9 (80-89)
254+
{r: 45, g: 176, b: 52} // #2db034 - option-10 (90-100)
255+
];
256+
257+
// Find which segment we're in (0-9)
258+
var segment = Math.min(Math.floor(percentage * 10), 9);
259+
var nextSegment = Math.min(segment + 1, 9);
260+
261+
// Calculate position within the segment (0.0 to 1.0)
262+
var segmentPosition = (percentage * 10) - segment;
263+
264+
// Interpolate between the two color stops
265+
var color1 = colorStops[segment];
266+
var color2 = colorStops[nextSegment];
267+
268+
var r = Math.round(color1.r * (1 - segmentPosition) + color2.r * segmentPosition);
269+
var g = Math.round(color1.g * (1 - segmentPosition) + color2.g * segmentPosition);
270+
var b = Math.round(color1.b * (1 - segmentPosition) + color2.b * segmentPosition);
270271

271272
var color = 'rgb(' + r + ',' + g + ',' + b + ')';
272-
var textColor = percentage < 0.3 || percentage > 0.85 ? '#fff' : '#2f3b11';
273+
274+
// Determine text color based on segment for better readability
275+
var textColor = '#2f3b11';
276+
if (segment === 0 || segment === 1) {
277+
textColor = '#fff'; // White text for dark red/orange
278+
} else if (segment === 9) {
279+
textColor = '#fff'; // White text for dark green
280+
} else if (segment === 8) {
281+
textColor = '#14351a'; // Darker text for lighter green
282+
}
273283

274284
this.$range.css({'background': color, 'background-color': color});
275285
this.$handle.css({'background': color, 'background-color': color, 'border-color': color, 'color': textColor});

EvalView/templates/EvalView/pairwise-assessment-document-esa.html

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -502,16 +502,19 @@
502502
return;
503503
}
504504

505-
var $sentenceItem = $('.item-box.quotelike').filter(function() {
506-
return !$(this).hasClass('pseudoquotelike');
507-
}).first();
505+
// In pairwise ESA, we have a pairwise-row containing two item-boxes
506+
var $pairwiseRow = $('.pairwise-row').first();
507+
if (!$pairwiseRow.length) {
508+
return;
509+
}
508510

509-
if (!$sentenceItem.length) {
511+
var $itemBoxes = $pairwiseRow.find('.item-box');
512+
if ($itemBoxes.length !== 2) {
510513
return;
511514
}
512515

513-
var sentenceScore1 = $sentenceItem.find('input[name="score1"]').val();
514-
var sentenceScore2 = $sentenceItem.find('input[name="score2"]').val();
516+
var sentenceScore1 = $itemBoxes.eq(0).find('input[name="score"]').val();
517+
var sentenceScore2 = $itemBoxes.eq(1).find('input[name="score"]').val();
515518

516519
console.log('Prepopulating document scores from single sentence:', sentenceScore1, sentenceScore2);
517520

@@ -1172,6 +1175,17 @@
11721175
setTimeout(() => { obj.fadeOut(700, () => { obj.remove() }) }, timeout);
11731176
}
11741177

1178+
function toggle_doc_button(visible) {
1179+
// Override the version in direct-assessment-document-mqm-esa.js
1180+
// to add prepopulation of document scores from single sentence
1181+
$("#button-next-doc").toggle(visible);
1182+
1183+
// When enabling the document button (all segments scored), prepopulate document scores
1184+
if (visible && _has_single_sentence_document()) {
1185+
prepopulateDocumentScoresIfNeeded();
1186+
}
1187+
}
1188+
11751189
-->
11761190
</script>
11771191

@@ -1491,13 +1505,13 @@
14911505
<div class="row">
14921506
<div class="col-sm-6">
14931507
<small class="segment-label">{{ candidate1_label }}</small>
1494-
{% with sliderid=item.itemID slidernum=1 mono=monolingual scale_100=scale_100 %}
1508+
{% with sliderid=item.itemID slidernum=1 sep="-" mono=monolingual scale_100=scale_100 doclvl=doc_guidelines %}
14951509
{% include 'EvalView/_scalar_slider.html' %}
14961510
{% endwith %}
14971511
</div>
14981512
<div class="col-sm-6">
14991513
<small class="segment-label">{{ candidate2_label }}</small>
1500-
{% with sliderid=item.itemID slidernum=2 mono=monolingual scale_100=scale_100 %}
1514+
{% with sliderid=item.itemID slidernum=2 sep="-" mono=monolingual scale_100=scale_100 doclvl=doc_guidelines %}
15011515
{% include 'EvalView/_scalar_slider.html' %}
15021516
{% endwith %}
15031517
</div>

EvalView/templates/EvalView/pairwise-assessment-document.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
.source-btn-done { float: right; display: none; padding-bottom:5px; padding-left:5px; }
4343
.preview-box .row { padding-top:0; font-size:95%; /*font-weight:bold;*/ }
4444

45-
.candidate-text {font-size: 1.2em;}
4645
.candidate-text.active .diff { background: #ff06; }
4746
.segment-label { display:block; font-size:x-small; font-style:italic; color: gray; padding-left: 10px; }
4847

0 commit comments

Comments
 (0)