RandomSec/OpenRefine/extensions/wikidata/module/scripts/menu-bar-extension.js
2022-01-30 23:08:52 +01:00

154 lines
4.1 KiB
JavaScript

// Load the localization file
var dictionary = {};
$.ajax({
url: "command/core/load-language?",
type: "POST",
async: false,
data: {
module: "wikidata",
// lang : lang
},
success: function (data) {
dictionary = data['dictionary'];
lang = data['lang'];
}
});
$.i18n().load(dictionary, lang);
ExporterManager.MenuItems.push({});
ExporterManager.MenuItems.push({
id: "performWikibaseEdits",
label: $.i18n('wikibase-extension/wikibase-edits'),
click: function () {
PerformEditsDialog.checkAndLaunch();
}
});
ExporterManager.MenuItems.push({
id: "exportQuickStatements",
label: $.i18n('wikibase-extension/qs-file'),
click: function () {
WikibaseExporterMenuBar.checkSchemaAndExport("quickstatements");
}
});
ExporterManager.MenuItems.push({
id: "exportWikibaseSchema",
label: $.i18n('wikibase-extension/wikibase-schema'),
click: function () {
WikibaseExporterMenuBar.checkSchemaAndExport("wikibase-schema");
}
});
WikibaseExporterMenuBar = {};
WikibaseExporterMenuBar.exportTo = function (format) {
var targetUrl = null;
if (format === "quickstatements") {
targetUrl = "statements.txt";
} else {
targetUrl = "schema.json";
}
var form = document.createElement("form");
$(form).css("display", "none")
.attr("method", "post")
.attr("action", "command/core/export-rows/" + targetUrl)
.attr("target", "openrefine-export-" + format);
$('<input />')
.attr("name", "engine")
.val(JSON.stringify(ui.browsingEngine.getJSON()))
.appendTo(form);
$('<input />')
.attr("name", "project")
.val(theProject.id)
.appendTo(form);
$('<input />')
.attr("name", "format")
.val(format)
.appendTo(form);
document.body.appendChild(form);
window.open("about:blank", "openrefine-export");
form.submit();
document.body.removeChild(form);
};
WikibaseExporterMenuBar.checkSchemaAndExport = function (format) {
var onSaved = function (callback) {
WikibaseExporterMenuBar.exportTo(format);
};
if (!SchemaAlignment.isSetUp()) {
SchemaAlignment.launch(null);
} else if (SchemaAlignment._hasUnsavedChanges) {
SchemaAlignment._save(onSaved);
} else {
onSaved();
}
};
//extend the column header menu
$(function () {
ExtensionBar.MenuItems.push(
{
"id": "reconcile",
"label": $.i18n('wikibase-extension/menu-label'),
"submenu": [
{
id: "wikidata/select-instance",
label: $.i18n('wikibase-extension/select-wikibase-instance'),
click: function () {
WikibaseDialog.launch()
}
},
{
id: "wikidata/edit-schema",
label: $.i18n('wikibase-extension/edit-wikibase-schema'),
click: function () {
SchemaAlignment.launch(false);
}
},
{
id: "wikidata/manage-account",
label: $.i18n('wikibase-extension/manage-wikibase-account'),
click: function () {
ManageAccountDialog.checkAndLaunch();
}
},
{},
{
id: "wikidata/import-schema",
label: $.i18n('wikibase-extension/import-wikibase-schema'),
click: function () {
ImportSchemaDialog.launch();
}
},
{
id: "wikidata/export-schema",
label: $.i18n('wikibase-extension/export-schema'),
click: function () {
WikibaseExporterMenuBar.checkSchemaAndExport("wikibase-schema");
}
},
{},
{
id: "wikidata/perform-edits",
label: $.i18n('wikibase-extension/perform-edits-on-wikibase'),
click: function () {
PerformEditsDialog.checkAndLaunch();
}
},
{
id: "wikidata/export-qs",
label: $.i18n('wikibase-extension/export-to-qs'),
click: function () {
WikibaseExporterMenuBar.checkSchemaAndExport("quickstatements");
}
}
]
}
);
});