mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 15:03:25 +00:00
Fix #1187 Add client side check on field name validity
This commit is contained in:
@@ -133,6 +133,7 @@ class Fields implements ControllerProviderInterface
|
|||||||
'are_you_sure_delete' => _('Do you really want to delete the field %s ?'),
|
'are_you_sure_delete' => _('Do you really want to delete the field %s ?'),
|
||||||
'validation_blank' => _('Field can not be blank.'),
|
'validation_blank' => _('Field can not be blank.'),
|
||||||
'validation_name_exists' => _('Field name already exists.'),
|
'validation_name_exists' => _('Field name already exists.'),
|
||||||
|
'validation_name_invalid' => _('Field name is not valid.'),
|
||||||
'validation_tag_invalid' => _('Field source is not valid.'),
|
'validation_tag_invalid' => _('Field source is not valid.'),
|
||||||
'field_error' => _('Field %s contains errors.'),
|
'field_error' => _('Field %s contains errors.'),
|
||||||
'fields_save' => _('Your configuration has been successfuly saved.'),
|
'fields_save' => _('Your configuration has been successfuly saved.'),
|
||||||
|
@@ -106,10 +106,14 @@ define([
|
|||||||
var fieldNameId = fieldName.attr("id");
|
var fieldNameId = fieldName.attr("id");
|
||||||
var fieldNameValue = fieldName.val();
|
var fieldNameValue = fieldName.val();
|
||||||
|
|
||||||
// check for empty or duplicate field name
|
var nameExists = ("undefined" !== typeof AdminFieldApp.fieldListView.collection.find(function(model) {
|
||||||
var notValid = "" === fieldNameValue || "undefined" !== typeof AdminFieldApp.fieldListView.collection.find(function(model) {
|
|
||||||
return model.get("name").toLowerCase() === fieldNameValue.toLowerCase() && self.model.get("id") !== model.get("id");
|
return model.get("name").toLowerCase() === fieldNameValue.toLowerCase() && self.model.get("id") !== model.get("id");
|
||||||
});
|
}));
|
||||||
|
|
||||||
|
var nameValid = /^[a-zA-Z]([a-zA-Z0-9]+)$/i.test(fieldNameValue);
|
||||||
|
|
||||||
|
// check for empty or duplicate field name
|
||||||
|
var notValid = "" === fieldNameValue || nameExists || !nameValid;
|
||||||
|
|
||||||
if (notValid) {
|
if (notValid) {
|
||||||
fieldName
|
fieldName
|
||||||
@@ -117,10 +121,10 @@ define([
|
|||||||
.addClass("error")
|
.addClass("error")
|
||||||
.find(".help-block")
|
.find(".help-block")
|
||||||
.empty()
|
.empty()
|
||||||
.append(i18n.t("validation_name_exists"));
|
.append(i18n.t("" === fieldNameValue ? "validation_blank" : (nameExists ? "validation_name_exists" : "validation_name_invalid")));
|
||||||
// add error
|
// add error
|
||||||
AdminFieldApp.errorManager.addModelFieldError(new Error(
|
AdminFieldApp.errorManager.addModelFieldError(new Error(
|
||||||
self.model, fieldNameId, i18n.t("" === fieldNameValue ? "validation_blank" : "validation_name_exists")
|
self.model, fieldNameId, i18n.t("" === fieldNameValue ? "validation_blank" : (nameExists ? "validation_name_exists" : "validation_name_invalid"))
|
||||||
));
|
));
|
||||||
} else if (fieldName.closest(".control-group").hasClass("error")) {
|
} else if (fieldName.closest(".control-group").hasClass("error")) {
|
||||||
fieldName
|
fieldName
|
||||||
|
Reference in New Issue
Block a user