Fixed too restrictive validator for extra tags, fixes #382
This commit is contained in:
@@ -77,7 +77,7 @@ namespace UserInterface
|
|||||||
setValidator(UpdatePeriodField, createMandatoryValidator());
|
setValidator(UpdatePeriodField, createMandatoryValidator());
|
||||||
setValidator(UpdateStartTimeField, createMandatoryValidator());
|
setValidator(UpdateStartTimeField, createMandatoryValidator());
|
||||||
setValidator(SimilarityEngineTypeField, createMandatoryValidator());
|
setValidator(SimilarityEngineTypeField, createMandatoryValidator());
|
||||||
setValidator(ExtraTagsField, createUppercaseValidator(extraTagsDelimiter));
|
setValidator(ExtraTagsField, createUppercaseValidator());
|
||||||
|
|
||||||
// populate the model with initial data
|
// populate the model with initial data
|
||||||
loadData();
|
loadData();
|
||||||
|
|||||||
@@ -26,14 +26,9 @@ namespace UserInterface
|
|||||||
{
|
{
|
||||||
class UppercaseValidator : public Wt::WValidator
|
class UppercaseValidator : public Wt::WValidator
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
UppercaseValidator(std::string_view delimiters) : _delimiters{ delimiters } {}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Wt::WValidator::Result validate(const Wt::WString& input) const override;
|
Wt::WValidator::Result validate(const Wt::WString& input) const override;
|
||||||
std::string javaScriptValidate() const override { return {}; }
|
std::string javaScriptValidate() const override { return {}; }
|
||||||
|
|
||||||
std::string _delimiters;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Wt::WValidator::Result UppercaseValidator::validate(const Wt::WString& input) const
|
Wt::WValidator::Result UppercaseValidator::validate(const Wt::WString& input) const
|
||||||
@@ -42,7 +37,7 @@ namespace UserInterface
|
|||||||
return Wt::WValidator::validate(input);
|
return Wt::WValidator::validate(input);
|
||||||
|
|
||||||
const std::string str{ input.toUTF8() };
|
const std::string str{ input.toUTF8() };
|
||||||
const bool valid{ std::all_of(std::cbegin(str),std::cend(str), [&](char c) { return std::isupper(c) || _delimiters.find(c) != std::string::npos;}) };
|
const bool valid{ std::all_of(std::cbegin(str), std::cend(str), [&](char c) { return !std::isalpha(c) || std::isupper(c);}) };
|
||||||
|
|
||||||
if (!valid)
|
if (!valid)
|
||||||
return Wt::WValidator::Result(Wt::ValidationState::Invalid, Wt::WString::tr("Lms.field-must-be-in-upper-case"));
|
return Wt::WValidator::Result(Wt::ValidationState::Invalid, Wt::WString::tr("Lms.field-must-be-in-upper-case"));
|
||||||
@@ -50,8 +45,8 @@ namespace UserInterface
|
|||||||
return Wt::WValidator::Result(Wt::ValidationState::Valid);
|
return Wt::WValidator::Result(Wt::ValidationState::Valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Wt::WValidator> createUppercaseValidator(std::string_view delimiters)
|
std::unique_ptr<Wt::WValidator> createUppercaseValidator()
|
||||||
{
|
{
|
||||||
return std::make_unique<UppercaseValidator>(delimiters);
|
return std::make_unique<UppercaseValidator>();
|
||||||
}
|
}
|
||||||
} // namespace UserInterface
|
} // namespace UserInterface
|
||||||
|
|||||||
@@ -23,5 +23,5 @@
|
|||||||
|
|
||||||
namespace UserInterface
|
namespace UserInterface
|
||||||
{
|
{
|
||||||
std::unique_ptr<Wt::WValidator> createUppercaseValidator(std::string_view delimiters);
|
std::unique_ptr<Wt::WValidator> createUppercaseValidator();
|
||||||
} // namespace UserInterface
|
} // namespace UserInterface
|
||||||
|
|||||||
Reference in New Issue
Block a user