MediaWiki:Common.js: Difference between revisions
OCR: team_transfer doc type + group summary |
OCR multi-person: Select all matched + one match picker per person |
||
| Line 1,382: | Line 1,382: | ||
var $meta = $('<span>', { 'class': 'ocr-fact-meta' }).text(metaBits.join(' · ')); | var $meta = $('<span>', { 'class': 'ocr-fact-meta' }).text(metaBits.join(' · ')); | ||
$row.append($check, $label, $val, $tgt, $meta); | $row.append($check, $label, $val, $tgt, $meta); | ||
if (fact.match_candidates && fact.match_candidates.length && !fact.target_title) { | if (!opts.hideMatchPick && fact.match_candidates && fact.match_candidates.length && !fact.target_title) { | ||
var $pick = $('<select>', { 'class': 'ocr-match-pick' }); | var $pick = $('<select>', { 'class': 'ocr-match-pick' }); | ||
$pick.append($('<option>', { value: '', text: 'Pick match…' })); | $pick.append($('<option>', { value: '', text: 'Pick match…' })); | ||
| Line 1,437: | Line 1,437: | ||
}); | }); | ||
$g.append($('<label>').text('Wiki page ').append($tgtShared)); | $g.append($('<label>').text('Wiki page ').append($tgtShared)); | ||
/* One match picker per person (not per fact row) */ | |||
var candidates = first.match_candidates || []; | |||
items.forEach(function (f) { | |||
if ((!candidates || !candidates.length) && f.match_candidates && f.match_candidates.length) { | |||
candidates = f.match_candidates; | |||
} | |||
}); | |||
if (candidates && candidates.length && !sharedTitle) { | |||
var $pick = $('<select>', { 'class': 'ocr-match-pick' }); | |||
$pick.append($('<option>', { value: '', text: 'Pick match…' })); | |||
candidates.forEach(function (t) { | |||
$pick.append($('<option>', { value: t, text: t })); | |||
}); | |||
$pick.on('change', function () { | |||
var v = $pick.val(); | |||
if (v) { | |||
$tgtShared.val(v).trigger('change'); | |||
$g.removeClass('ocr-person-unresolved').addClass('ocr-person-matched'); | |||
} | |||
}); | |||
$g.append($pick); | |||
} | |||
$tgtShared.on('input change', function () { | $tgtShared.on('input change', function () { | ||
var v = $.trim($tgtShared.val() || ''); | var v = $.trim($tgtShared.val() || ''); | ||
$g.find('.ocr-fact-target').val(v); | $g.find('.ocr-fact-target').val(v); | ||
if (v) { | |||
$g.removeClass('ocr-person-unresolved').addClass('ocr-person-matched'); | |||
} else { | |||
$g.removeClass('ocr-person-matched').addClass('ocr-person-unresolved'); | |||
} | |||
}); | }); | ||
items.forEach(function (fact) { | items.forEach(function (fact) { | ||
var $row = renderFactRow(fact, job, { hideTarget: true }); | var $row = renderFactRow(fact, job, { hideTarget: true, hideMatchPick: true }); | ||
$row.find('.ocr-fact-target').val(sharedTitle || fact.target_title || ''); | $row.find('.ocr-fact-target').val(sharedTitle || fact.target_title || ''); | ||
$g.append($row); | $g.append($row); | ||
| Line 1,546: | Line 1,573: | ||
$facts.append($('<p>').append($('<strong>').text('People on this document'))); | $facts.append($('<p>').append($('<strong>').text('People on this document'))); | ||
var $toolbar = $('<div>', { 'class': 'ocr-multi-toolbar' }); | var $toolbar = $('<div>', { 'class': 'ocr-multi-toolbar' }); | ||
var $selMatched = $('<button>', { type: 'button', text: 'Select matched | var $selMatched = $('<button>', { type: 'button', text: 'Select all matched' }); | ||
var $deselUnres = $('<button>', { type: 'button', text: 'Deselect unresolved' }); | var $deselUnres = $('<button>', { type: 'button', text: 'Deselect unresolved' }); | ||
$toolbar.append($selMatched, $deselUnres); | $toolbar.append($selMatched, $deselUnres); | ||
| Line 1,555: | Line 1,582: | ||
var $row = $(this); | var $row = $(this); | ||
var label = ($row.find('.ocr-fact-label').text() || '').toLowerCase(); | var label = ($row.find('.ocr-fact-label').text() || '').toLowerCase(); | ||
/* Prefer team/IPW rows; skip notes and already-on-page */ | |||
if (label.indexOf('team') !== -1 || label.indexOf('ipw') !== -1) { | if (label.indexOf('team') !== -1 || label.indexOf('ipw') !== -1) { | ||
$row.find('input[type="checkbox"]').prop('checked', !$row.hasClass('ocr-fact-already')); | $row.find('input[type="checkbox"]').prop('checked', !$row.hasClass('ocr-fact-already')); | ||