Improve support for terms in schema
This commit is contained in:
parent
5e99e0d2e3
commit
f6eceefd8e
@ -301,6 +301,7 @@ SchemaAlignmentDialog._addNameDesc = function(item, json) {
|
|||||||
.attr('value', 'ALIAS')
|
.attr('value', 'ALIAS')
|
||||||
.text('Alias')
|
.text('Alias')
|
||||||
.appendTo(type_input);
|
.appendTo(type_input);
|
||||||
|
type_input.val(type);
|
||||||
|
|
||||||
var toolbar = $('<div></div>').addClass('wbs-toolbar').appendTo(namedesc);
|
var toolbar = $('<div></div>').addClass('wbs-toolbar').appendTo(namedesc);
|
||||||
$('<img src="images/close.png" />').attr('alt', 'remove name/description').click(function() {
|
$('<img src="images/close.png" />').attr('alt', 'remove name/description').click(function() {
|
||||||
@ -317,10 +318,10 @@ SchemaAlignmentDialog._nameDescToJSON = function (namedesc) {
|
|||||||
var type = namedesc.find('select').first().val();
|
var type = namedesc.find('select').first().val();
|
||||||
var value = namedesc.find('.wbs-namedesc-value').first().data("jsonValue");
|
var value = namedesc.find('.wbs-namedesc-value').first().data("jsonValue");
|
||||||
return {
|
return {
|
||||||
type: "wbnamedescexpr",
|
type: "wbnamedescexpr",
|
||||||
name_type: type,
|
name_type: type,
|
||||||
value: value,
|
value: value,
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -551,7 +552,7 @@ SchemaAlignmentDialog._getPropertyType = function(pid, callback) {
|
|||||||
props: "datatype",
|
props: "datatype",
|
||||||
},
|
},
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
callback(data.entities[pid].datatype);
|
callback(data.entities[pid].datatype);
|
||||||
}});
|
}});
|
||||||
}
|
}
|
||||||
@ -884,7 +885,7 @@ $.suggest("langsuggest", {
|
|||||||
success: function(data) {
|
success: function(data) {
|
||||||
self.response(self.convertResults(data));
|
self.response(self.convertResults(data));
|
||||||
},
|
},
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
};
|
};
|
||||||
$.ajax(ajax_options);
|
$.ajax(ajax_options);
|
||||||
},
|
},
|
||||||
|
@ -76,6 +76,7 @@ public class QuickStatementsExporter implements WriterExporter {
|
|||||||
if (item.getItemId().getId() == "Q0") {
|
if (item.getItemId().getId() == "Q0") {
|
||||||
writer.write("CREATE\n");
|
writer.write("CREATE\n");
|
||||||
qid = "LAST";
|
qid = "LAST";
|
||||||
|
item.normalizeLabelsAndAliases();
|
||||||
}
|
}
|
||||||
|
|
||||||
translateNameDescr(qid, item.getLabels(), "L", item.getItemId(), writer);
|
translateNameDescr(qid, item.getLabels(), "L", item.getItemId(), writer);
|
||||||
|
@ -156,4 +156,28 @@ public class ItemUpdate {
|
|||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This should only be used when creating a new item.
|
||||||
|
* This ensures that we never add an alias without adding
|
||||||
|
* a label in the same language.
|
||||||
|
*/
|
||||||
|
public void normalizeLabelsAndAliases() {
|
||||||
|
// Ensure that we are only adding aliases with labels
|
||||||
|
List<String> labelLanguages = new ArrayList<String>();
|
||||||
|
for(MonolingualTextValue label : labels) {
|
||||||
|
labelLanguages.add(label.getLanguageCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MonolingualTextValue> filteredAliases = new ArrayList<>();
|
||||||
|
for(MonolingualTextValue alias : aliases) {
|
||||||
|
if(!labelLanguages.contains(alias.getLanguageCode())) {
|
||||||
|
labelLanguages.add(alias.getLanguageCode());
|
||||||
|
labels.add(alias);
|
||||||
|
} else {
|
||||||
|
filteredAliases.add(alias);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
aliases = filteredAliases;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,8 +23,10 @@ public abstract class WbLanguageExpr extends BiJsonizable {
|
|||||||
String type = obj.getString(jsonTypeKey);
|
String type = obj.getString(jsonTypeKey);
|
||||||
if (WbLanguageConstant.jsonType.equals(type)) {
|
if (WbLanguageConstant.jsonType.equals(type)) {
|
||||||
return WbLanguageConstant.fromJSON(obj);
|
return WbLanguageConstant.fromJSON(obj);
|
||||||
|
} else if (WbLanguageVariable.jsonType.equals(type)) {
|
||||||
|
return WbLanguageVariable.fromJSON(obj);
|
||||||
} else {
|
} else {
|
||||||
throw new JSONException("unknown type for WbLocationExpr");
|
throw new JSONException("unknown type for WbLanguageExpr");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,8 @@ public class WbNameDescExpr extends BiJsonizable {
|
|||||||
_value.write(writer, options);
|
_value.write(writer, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void contributeTo(ItemUpdate item, ExpressionContext ctxt) throws SkipStatementException {
|
public void contributeTo(ItemUpdate item, ExpressionContext ctxt) {
|
||||||
|
try {
|
||||||
MonolingualTextValue val = _value.evaluate(ctxt);
|
MonolingualTextValue val = _value.evaluate(ctxt);
|
||||||
switch (_type) {
|
switch (_type) {
|
||||||
case LABEL:
|
case LABEL:
|
||||||
@ -48,6 +49,9 @@ public class WbNameDescExpr extends BiJsonizable {
|
|||||||
item.addAlias(val);
|
item.addAlias(val);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} catch (SkipStatementException e) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user