mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2026-10-08 17:11:42 +00:00
Revert to using fieldmangler for adding fields
In 5.1.5 we switched to using `<$action-setfield>` instead of `<$fieldmangler>`. The problem was that in the process we lost the validation of field names, making it possible to create fields with illegal names Fixes #1186
This commit is contained in:
@@ -71,24 +71,38 @@ FieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {
|
||||
};
|
||||
|
||||
FieldManglerWidget.prototype.handleAddFieldEvent = function(event) {
|
||||
var tiddler = this.wiki.getTiddler(this.mangleTitle);
|
||||
if(tiddler && typeof event.param === "string") {
|
||||
var name = event.param.toLowerCase().trim();
|
||||
if(name !== "" && !$tw.utils.hop(tiddler.fields,name)) {
|
||||
if(!$tw.utils.isValidFieldName(name)) {
|
||||
alert($tw.language.getString(
|
||||
"InvalidFieldName",
|
||||
{variables:
|
||||
{fieldName: name}
|
||||
}
|
||||
));
|
||||
return true;
|
||||
var tiddler = this.wiki.getTiddler(this.mangleTitle),
|
||||
addition = this.wiki.getModificationFields(),
|
||||
hadInvalidFieldName = false,
|
||||
addField = function(name,value) {
|
||||
var trimmedName = name.toLowerCase().trim();
|
||||
debugger;
|
||||
if(!$tw.utils.isValidFieldName(trimmedName)) {
|
||||
if(!hadInvalidFieldName) {
|
||||
alert($tw.language.getString(
|
||||
"InvalidFieldName",
|
||||
{variables:
|
||||
{fieldName: trimmedName}
|
||||
}
|
||||
));
|
||||
hadInvalidFieldName = true;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
addition[trimmedName] = value || "";
|
||||
}
|
||||
var addition = this.wiki.getModificationFields();
|
||||
addition[name] = "";
|
||||
this.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));
|
||||
return;
|
||||
};
|
||||
addition.title = this.mangleTitle;
|
||||
if(typeof event.param === "string") {
|
||||
addField(event.param,"");
|
||||
}
|
||||
if(typeof event.paramObject === "object") {
|
||||
for(var name in event.paramObject) {
|
||||
addField(name,event.paramObject[name]);
|
||||
}
|
||||
}
|
||||
this.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));
|
||||
return true;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user