Fixed too restrictive validator for extra tags, fixes #382

This commit is contained in:
emeric
2023-11-27 20:40:20 +01:00
parent 1f282c0517
commit 6b5e53de1d
3 changed files with 5 additions and 10 deletions
+1 -1
View File
@@ -77,7 +77,7 @@ namespace UserInterface
setValidator(UpdatePeriodField, createMandatoryValidator());
setValidator(UpdateStartTimeField, createMandatoryValidator());
setValidator(SimilarityEngineTypeField, createMandatoryValidator());
setValidator(ExtraTagsField, createUppercaseValidator(extraTagsDelimiter));
setValidator(ExtraTagsField, createUppercaseValidator());
// populate the model with initial data
loadData();
+3 -8
View File
@@ -26,14 +26,9 @@ namespace UserInterface
{
class UppercaseValidator : public Wt::WValidator
{
public:
UppercaseValidator(std::string_view delimiters) : _delimiters{ delimiters } {}
private:
Wt::WValidator::Result validate(const Wt::WString& input) const override;
std::string javaScriptValidate() const override { return {}; }
std::string _delimiters;
};
Wt::WValidator::Result UppercaseValidator::validate(const Wt::WString& input) const
@@ -42,7 +37,7 @@ namespace UserInterface
return Wt::WValidator::validate(input);
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)
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);
}
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
+1 -1
View File
@@ -23,5 +23,5 @@
namespace UserInterface
{
std::unique_ptr<Wt::WValidator> createUppercaseValidator(std::string_view delimiters);
std::unique_ptr<Wt::WValidator> createUppercaseValidator();
} // namespace UserInterface