mirror of
https://github.com/qurator-spk/neat.git
synced 2025-06-11 20:59:54 +02:00
Support wikidata IDs in GND-ID column (automatic linking to wikidata.org)
This commit is contained in:
parent
023fd82f5d
commit
e2f6c4f4f1
1 changed files with 57 additions and 18 deletions
75
neat.js
75
neat.js
|
@ -192,10 +192,19 @@ function setupInterface(data, file, urls) {
|
|||
$("#table td:contains('I-TODO')").addClass('ner_todo');
|
||||
}
|
||||
|
||||
function makeTdEditable(td) {
|
||||
function fillStandardTd(td, content) {
|
||||
td.text(content);
|
||||
}
|
||||
|
||||
function fillEntityDisambiguationTd(td, content) {
|
||||
}
|
||||
|
||||
function makeTdEditable(td, content) {
|
||||
|
||||
let tableInfo = $(td).data('tableInfo');
|
||||
|
||||
editingTd = {
|
||||
data: td.innerHTML,
|
||||
data: data.data[tableInfo.nRow][tableInfo.column],
|
||||
finish:
|
||||
function (isOk) {
|
||||
|
||||
|
@ -203,9 +212,7 @@ function setupInterface(data, file, urls) {
|
|||
|
||||
let newValue = $('#edit-area').val();
|
||||
|
||||
$(td).html(newValue);
|
||||
|
||||
let tableInfo = $(td).data('tableInfo');
|
||||
tableInfo.fillAction($(td), newValue);
|
||||
|
||||
data.data[tableInfo.nRow][tableInfo.column] = newValue;
|
||||
|
||||
|
@ -214,7 +221,7 @@ function setupInterface(data, file, urls) {
|
|||
updateTable();
|
||||
}
|
||||
else {
|
||||
$(td).html(editingTd.data);
|
||||
tableInfo.fillAction($(td), editingTd.data);
|
||||
}
|
||||
editingTd = null;
|
||||
$(td).focus();
|
||||
|
@ -226,7 +233,7 @@ function setupInterface(data, file, urls) {
|
|||
textArea.style.height = td.clientHeight + 'px';
|
||||
textArea.id = 'edit-area';
|
||||
|
||||
$(textArea).val($(td).html());
|
||||
$(textArea).val(data.data[tableInfo.nRow][tableInfo.column]);
|
||||
$(td).html('');
|
||||
$(td).append(textArea);
|
||||
textArea.focus();
|
||||
|
@ -321,15 +328,15 @@ function setupInterface(data, file, urls) {
|
|||
|
||||
function makeLineSplitMerge(td) {
|
||||
|
||||
let tableInfo = $(td).data('tableInfo');
|
||||
|
||||
editingTd = {
|
||||
data: td.innerHTML,
|
||||
data: data.data[tableInfo.nRow][tableInfo.column],
|
||||
finish: function(action, isOk) {
|
||||
|
||||
$(td).html(editingTd.data);
|
||||
$(td).addClass('editable');
|
||||
|
||||
let tableInfo = $(td).data('tableInfo');
|
||||
|
||||
editingTd = null;
|
||||
|
||||
tableEditAction(tableInfo.nRow, action)
|
||||
|
@ -355,15 +362,16 @@ function setupInterface(data, file, urls) {
|
|||
|
||||
function makeTagEdit(td) {
|
||||
|
||||
editingTd = {
|
||||
data: td.innerHTML,
|
||||
finish: function(isOk) {
|
||||
let tableInfo = $(td).data('tableInfo');
|
||||
|
||||
let tableInfo = $(td).data('tableInfo');
|
||||
editingTd = {
|
||||
data: data.data[tableInfo.nRow][tableInfo.column],
|
||||
finish: function(isOk) {
|
||||
|
||||
data.data[tableInfo.nRow][tableInfo.column] = editingTd.data;
|
||||
|
||||
$(td).html(editingTd.data);
|
||||
tableInfo.fillAction($(td), data.data[tableInfo.nRow][tableInfo.column])
|
||||
|
||||
$(td).addClass('editable');
|
||||
|
||||
editingTd = null;
|
||||
|
@ -510,6 +518,7 @@ function setupInterface(data, file, urls) {
|
|||
if (do_not_display.has(column)) return
|
||||
|
||||
let clickAction = function() { console.log('Do something different');}
|
||||
let fillAction = function(td, content) { td.text(content); };
|
||||
|
||||
if (column == 'No.') {
|
||||
clickAction = makeLineSplitMerge;
|
||||
|
@ -519,6 +528,28 @@ function setupInterface(data, file, urls) {
|
|||
clickAction = makeTdEditable;
|
||||
|
||||
listener.simple_combo('enter', function() { $(td).click(); });
|
||||
|
||||
if (column == 'GND-ID') {
|
||||
fillAction =
|
||||
function(td,content) {
|
||||
if (String(content).match(/^Q[0-9]+$/g) == null) {
|
||||
td.text(content);
|
||||
}
|
||||
else {
|
||||
td.html("");
|
||||
|
||||
var link = $('<a href="https://www.wikidata.org/wiki/' + content + '">' +
|
||||
content + "</a>")
|
||||
link.click(
|
||||
function(event) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
);
|
||||
|
||||
td.append(link);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((column == 'NE-TAG') || (column == 'NE-EMB')) {
|
||||
|
@ -555,8 +586,14 @@ function setupInterface(data, file, urls) {
|
|||
}
|
||||
|
||||
td.attr('tabindex', 0).
|
||||
text(content).
|
||||
data('tableInfo', { 'nRow': nRow, 'column': column , 'clickAction': clickAction })
|
||||
data('tableInfo',
|
||||
{'nRow': nRow,
|
||||
'column': column ,
|
||||
'clickAction': clickAction,
|
||||
'fillAction': fillAction
|
||||
});
|
||||
|
||||
fillAction(td,content);
|
||||
|
||||
row.append(td);
|
||||
});
|
||||
|
@ -621,7 +658,9 @@ function setupInterface(data, file, urls) {
|
|||
|
||||
tableInfo.nRow = nRow;
|
||||
|
||||
td.text(content).data('tableInfo', tableInfo);
|
||||
td.data('tableInfo', tableInfo);
|
||||
|
||||
tableInfo.fillAction(td, content);
|
||||
|
||||
pColumn++;
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue