Added some form elements + autocomplete attributes

This commit is contained in:
emeric
2020-06-23 14:41:38 +02:00
parent a293273940
commit 2ca3e6a237
9 changed files with 309 additions and 283 deletions
+53 -51
View File
@@ -6,62 +6,64 @@
<message id="Lms.Admin.Database.template"> <message id="Lms.Admin.Database.template">
<div class ="row"> <div class ="row">
<div class="col-lg-8"> <div class="col-lg-8">
<legend>${tr:Lms.Admin.Database.database}</legend> <form>
<div class="form-horizontal"> <legend>${tr:Lms.Admin.Database.database}</legend>
<div class="form-group"> <div class="form-horizontal">
<label class="col-lg-3 control-label" for="${id:media-directory}"> <div class="form-group">
${tr:Lms.Admin.Database.path} <label class="col-lg-3 control-label" for="${id:media-directory}">
</label> ${tr:Lms.Admin.Database.path}
<div class="col-lg-9"> </label>
${media-directory} <div class="col-lg-9">
${media-directory-info class="help-block"} ${media-directory}
${media-directory-info class="help-block"}
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:update-period}">
${tr:Lms.Admin.Database.update-period}
</label>
<div class="col-lg-9">
${update-period}
${update-period-info class="help-block"}
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:update-start-time}">
${tr:Lms.Admin.Database.update-start-time}
</label>
<div class="col-lg-9">
${update-start-time}
${update-start-time-info class="help-block"}
</div>
</div>
</div>
<legend>${tr:Lms.Admin.Database.scan-options}</legend>
<div class="form-horizontal">
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:recommendation-engine-type}">
${tr:Lms.Admin.Database.recommendation-engine-type}
</label>
<div class="col-lg-9">
${recommendation-engine-type}
${recommendation-engine-type-info class="help-block"}
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:tags}">
${tr:Lms.Admin.Database.tags}
</label>
<div class="col-lg-9">
${tags}
${tags-info class="help-block"}
</div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-lg-3 control-label" for="${id:update-period}"> <div class="col-lg-offset-3 col-lg-9">
${tr:Lms.Admin.Database.update-period} ${apply-btn class="btn-primary"} ${discard-btn} ${immediate-scan-btn class="btn-info"}
</label>
<div class="col-lg-9">
${update-period}
${update-period-info class="help-block"}
</div> </div>
</div> </div>
<div class="form-group"> </form>
<label class="col-lg-3 control-label" for="${id:update-start-time}">
${tr:Lms.Admin.Database.update-start-time}
</label>
<div class="col-lg-9">
${update-start-time}
${update-start-time-info class="help-block"}
</div>
</div>
</div>
<legend>${tr:Lms.Admin.Database.scan-options}</legend>
<div class="form-horizontal">
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:recommendation-engine-type}">
${tr:Lms.Admin.Database.recommendation-engine-type}
</label>
<div class="col-lg-9">
${recommendation-engine-type}
${recommendation-engine-type-info class="help-block"}
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:tags}">
${tr:Lms.Admin.Database.tags}
</label>
<div class="col-lg-9">
${tags}
${tags-info class="help-block"}
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-3 col-lg-9">
${apply-btn class="btn-primary"} ${discard-btn} ${immediate-scan-btn class="btn-info"}
</div>
</div>
</div> </div>
</div> </div>
<br/> <br/>
+32 -30
View File
@@ -9,42 +9,44 @@
<div class="page-header"> <div class="page-header">
<h2>${tr:Lms.Admin.InitWizard.header}</h2> <h2>${tr:Lms.Admin.InitWizard.header}</h2>
</div> </div>
<div class="form-horizontal"> <form>
<div class="form-group"> <div class="form-horizontal">
<label class="col-lg-3 control-label" for="${id:admin-login}"> <div class="form-group">
${tr:Lms.login} <label class="col-lg-3 control-label" for="${id:admin-login}">
</label> ${tr:Lms.login}
<div class="col-lg-9"> </label>
${admin-login} <div class="col-lg-9">
${admin-login-info class="help-block"} ${admin-login}
${admin-login-info class="help-block"}
</div>
</div> </div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-lg-3 control-label" for="${id:password}"> <label class="col-lg-3 control-label" for="${id:password}">
${tr:Lms.password} ${tr:Lms.password}
</label> </label>
<div class="col-lg-9"> <div class="col-lg-9">
${password} ${password}
${password-info class="help-block"} ${password-info class="help-block"}
</div>
</div> </div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-lg-3 control-label" for="${id:password-confirm}"> <label class="col-lg-3 control-label" for="${id:password-confirm}">
${tr:Lms.password-confirm} ${tr:Lms.password-confirm}
</label> </label>
<div class="col-lg-9"> <div class="col-lg-9">
${password-confirm} ${password-confirm}
${password-confirm-info class="help-block"} ${password-confirm-info class="help-block"}
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-3 col-lg-9">
${create-btn class="btn-primary"}
</div>
</div> </div>
</div> </div>
<div class="form-group"> </form>
<div class="col-lg-offset-3 col-lg-9">
${create-btn class="btn-primary"}
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
+18 -16
View File
@@ -5,8 +5,9 @@
<div class="row"> <div class="row">
<div class="col-lg-8"> <div class="col-lg-8">
<legend>${title}</legend> <legend>${title}</legend>
<div class="form-horizontal"> <form>
${<if-has-last-login>} <div class="form-horizontal">
${<if-has-last-login>}
<div class="form-group"> <div class="form-group">
<label class="control-label col-lg-3" for="{id:last-login}"> <label class="control-label col-lg-3" for="{id:last-login}">
${tr:Lms.Admin.User.last-login} ${tr:Lms.Admin.User.last-login}
@@ -18,7 +19,7 @@
</div> </div>
</div> </div>
${</if-has-last-login>} ${</if-has-last-login>}
${<if-has-login>} ${<if-has-login>}
<div class="form-group"> <div class="form-group">
<label class="control-label col-lg-3" for="${id:login}"> <label class="control-label col-lg-3" for="${id:login}">
${tr:Lms.login} ${tr:Lms.login}
@@ -29,16 +30,16 @@
</div> </div>
</div> </div>
${</if-has-login>} ${</if-has-login>}
<div class="form-group"> <div class="form-group">
<label class="control-label col-lg-3" for="${id:password}"> <label class="control-label col-lg-3" for="${id:password}">
${tr:Lms.password-new} ${tr:Lms.password-new}
</label> </label>
<div class="col-lg-9"> <div class="col-lg-9">
${password} ${password}
${password-info class="help-block"} ${password-info class="help-block"}
</div>
</div> </div>
</div> ${<if-demo>}
${<if-demo>}
<div class="form-group"> <div class="form-group">
<div class="col-lg-offset-3 col-lg-3" for="${id:demo}"> <div class="col-lg-offset-3 col-lg-3" for="${id:demo}">
<div class="checkbox"> <div class="checkbox">
@@ -48,12 +49,13 @@
</div> </div>
</div> </div>
${</if-demo>} ${</if-demo>}
<div class="form-group"> <div class="form-group">
<div class="col-lg-offset-3 col-lg-9"> <div class="col-lg-offset-3 col-lg-9">
${save-btn class="btn-primary"} ${save-btn class="btn-primary"}
</div>
</div> </div>
</div> </div>
</div> </form>
</div> </div>
</div> </div>
</message> </message>
+40 -39
View File
@@ -4,50 +4,51 @@
<message id="Lms.Auth.template"> <message id="Lms.Auth.template">
<div class="container"> <div class="container">
<div class="page-header"> <div class="page-header">
<h2>${tr:Lms.Auth.welcome}</h2> <h2>${tr:Lms.Auth.welcome}</h2>
</div>
<div class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2" for="${id:login-name}">
${tr:Lms.login}
</label>
<div class="col-sm-5">
${login-name}
</div>
<div class="help-block col-sm-5">
${login-name-info}
</div>
</div> </div>
<form>
<div class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2" for="${id:login-name}">
${tr:Lms.login}
</label>
<div class="col-sm-5">
${login-name}
</div>
<div class="help-block col-sm-5">
${login-name-info}
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2" for="${id:password}"> <label class="control-label col-sm-2" for="${id:password}">
${tr:Lms.password} ${tr:Lms.password}
</label> </label>
<div class="col-sm-5"> <div class="col-sm-5">
${password} ${password}
</div> </div>
<div class="help-block col-sm-5"> <div class="help-block col-sm-5">
${password-info} ${password-info}
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2" for="${id:remember-me}"> <label class="control-label col-sm-2" for="${id:remember-me}">
${tr:Lms.Auth.remember-me} ${tr:Lms.Auth.remember-me}
</label> </label>
<div class="col-sm-5"> <div class="col-sm-5">
<div class="checkbox"><label>${remember-me}</label></div> <div class="checkbox"><label>${remember-me}</label></div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
${login-btn class="btn-primary"}
</div>
</div>
</div> </div>
</div> </form>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
${login-btn class="btn-primary"}
</div>
</div>
</div>
</div> </div>
</message> </message>
</messages> </messages>
+141 -139
View File
@@ -6,168 +6,170 @@
<message id="Lms.Settings.template"> <message id="Lms.Settings.template">
<div class="row"> <div class="row">
<div class="col-lg-8"> <div class="col-lg-8">
<legend>${tr:Lms.Settings.appearance}</legend> <form>
<div class="form-horizontal"> <legend>${tr:Lms.Settings.appearance}</legend>
<div class="form-group"> <div class="form-horizontal">
<div class="col-lg-offset-3 col-lg-9"> <div class="form-group">
<div class="checkbox"> <div class="col-lg-offset-3 col-lg-9">
<label>${dark-mode}${tr:Lms.Settings.dark-mode}</label> <div class="checkbox">
${dark-mode-info clas="help-block"} <label>${dark-mode}${tr:Lms.Settings.dark-mode}</label>
${dark-mode-info clas="help-block"}
</div>
</div> </div>
</div> </div>
</div> </div>
</div> <legend>${tr:Lms.Settings.audio}</legend>
<legend>${tr:Lms.Settings.audio}</legend> <div class="alert alert-info">
<div class="alert alert-info"> ${tr:Lms.Settings.audio-settings-are-local}
${tr:Lms.Settings.audio-settings-are-local}
</div>
<div class="form-horizontal">
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:transcode-mode}">
${tr:Lms.Settings.transcode-mode}
</label>
<div class="col-lg-9">
${transcode-mode}
${transcode-mode-info class="help-block"}
</div>
</div> </div>
<div class="form-group"> <div class="form-horizontal">
<label class="col-lg-3 control-label" for="${id:transcode-format}"> <div class="form-group">
${tr:Lms.Settings.transcode-format} <label class="col-lg-3 control-label" for="${id:transcode-mode}">
</label> ${tr:Lms.Settings.transcode-mode}
<div class="col-lg-9"> </label>
${transcode-format} <div class="col-lg-9">
${transcode-format-info class="help-block"} ${transcode-mode}
</div> ${transcode-mode-info class="help-block"}
</div> </div>
<div class="form-group"> </div>
<label class="col-lg-3 control-label" for="${id:transcode-bitrate}"> <div class="form-group">
${tr:Lms.Settings.transcode-bitrate} <label class="col-lg-3 control-label" for="${id:transcode-format}">
</label> ${tr:Lms.Settings.transcode-format}
<div class="col-lg-9"> </label>
<div class="input-group"> <div class="col-lg-9">
${transcode-bitrate} ${transcode-format}
<span class="input-group-addon">kbps</span> ${transcode-format-info class="help-block"}
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:transcode-bitrate}">
${tr:Lms.Settings.transcode-bitrate}
</label>
<div class="col-lg-9">
<div class="input-group">
${transcode-bitrate}
<span class="input-group-addon">kbps</span>
</div>
${transcode-bitrate-info class="help-block"}
</div> </div>
${transcode-bitrate-info class="help-block"}
</div> </div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-lg-3 control-label" for="${id:replaygain-mode}"> <label class="col-lg-3 control-label" for="${id:replaygain-mode}">
${tr:Lms.Settings.replaygain-mode} ${tr:Lms.Settings.replaygain-mode}
</label> </label>
<div class="col-lg-9"> <div class="col-lg-9">
${replaygain-mode} ${replaygain-mode}
${replaygain-mode-info class="help-block"} ${replaygain-mode-info class="help-block"}
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:replaygain-preamp}">
${tr:Lms.Settings.replaygain-preamp}
</label>
<div class="col-lg-9">
<div class="input-group">
${replaygain-preamp}
<span class="input-group-addon">dB</span>
</div> </div>
${replaygain-preamp-info class="help-block"}
</div> </div>
</div> <div class="form-group">
<div class="form-group"> <label class="col-lg-3 control-label" for="${id:replaygain-preamp}">
<label class="col-lg-3 control-label" for="${id:replaygain-preamp-no-rg-info}"> ${tr:Lms.Settings.replaygain-preamp}
${tr:Lms.Settings.replaygain-preamp-no-rg-info} </label>
</label> <div class="col-lg-9">
<div class="col-lg-9"> <div class="input-group">
<div class="input-group"> ${replaygain-preamp}
${replaygain-preamp-no-rg-info} <span class="input-group-addon">dB</span>
<span class="input-group-addon">dB</span> </div>
${replaygain-preamp-info class="help-block"}
</div> </div>
${replaygain-preamp-no-rg-info-info class="help-block"}
</div> </div>
</div> <div class="form-group">
</div> <label class="col-lg-3 control-label" for="${id:replaygain-preamp-no-rg-info}">
${<if-has-subsonic-api>} ${tr:Lms.Settings.replaygain-preamp-no-rg-info}
<legend>${tr:Lms.Settings.subsonic-api}</legend> </label>
<div class="form-horizontal"> <div class="col-lg-9">
<div class="form-group"> <div class="input-group">
<div class="col-lg-offset-3 col-lg-9"> ${replaygain-preamp-no-rg-info}
<div class="checkbox"> <span class="input-group-addon">dB</span>
<label>${subsonic-transcode-enable}${tr:Lms.Settings.transcode-enable}</label> </div>
${subsonic-transcode-enable-info class="help-block"} ${replaygain-preamp-no-rg-info-info class="help-block"}
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> ${<if-has-subsonic-api>}
<label class="col-lg-3 control-label" for="${id:subsonic-transcode-format}"> <legend>${tr:Lms.Settings.subsonic-api}</legend>
${tr:Lms.Settings.transcode-format} <div class="form-horizontal">
</label> <div class="form-group">
<div class="col-lg-9"> <div class="col-lg-offset-3 col-lg-9">
${subsonic-transcode-format} <div class="checkbox">
${subsonic-transcode-format-info class="help-block"} <label>${subsonic-transcode-enable}${tr:Lms.Settings.transcode-enable}</label>
</div> ${subsonic-transcode-enable-info class="help-block"}
</div> </div>
<div class="form-group"> </div>
<label class="col-lg-3 control-label" for="${id:subsonic-transcode-bitrate}"> </div>
${tr:Lms.Settings.transcode-bitrate} <div class="form-group">
</label> <label class="col-lg-3 control-label" for="${id:subsonic-transcode-format}">
<div class="col-lg-9"> ${tr:Lms.Settings.transcode-format}
<div class="input-group"> </label>
${subsonic-transcode-bitrate} <div class="col-lg-9">
<span class="input-group-addon">kbps</span> ${subsonic-transcode-format}
${subsonic-transcode-format-info class="help-block"}
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:subsonic-transcode-bitrate}">
${tr:Lms.Settings.transcode-bitrate}
</label>
<div class="col-lg-9">
<div class="input-group">
${subsonic-transcode-bitrate}
<span class="input-group-addon">kbps</span>
</div>
${subsonic-transcode-bitrate-info class="help-block"}
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:subsonic-artist-list-mode}">
${tr:Lms.Settings.subsonic-artist-list-mode}
</label>
<div class="col-lg-9">
${subsonic-artist-list-mode}
${subsonic-artist-list-mode-info class="help-block"}
</div> </div>
${subsonic-transcode-bitrate-info class="help-block"}
</div> </div>
</div> </div>
<div class="form-group"> ${</if-has-subsonic-api>}
<label class="col-lg-3 control-label" for="${id:subsonic-artist-list-mode}"> <legend>${tr:Lms.Settings.change-password}</legend>
${tr:Lms.Settings.subsonic-artist-list-mode} <div class="form-horizontal">
</label> ${<if-has-old-password>}
<div class="col-lg-9"> <div class="form-group">
${subsonic-artist-list-mode} <label class="col-lg-3 control-label" for="${id:password-old}">
${subsonic-artist-list-mode-info class="help-block"} ${tr:Lms.password-old}
</label>
<div class="col-lg-9">
${password-old}
${password-old-info class="help-block"}
</div>
</div> </div>
</div> ${</if-has-old-password>}
</div> <div class="form-group">
${</if-has-subsonic-api>} <label class="col-lg-3 control-label" for="${id:password}">
<legend>${tr:Lms.Settings.change-password}</legend> ${tr:Lms.password-new}
<div class="form-horizontal"> </label>
${<if-has-old-password>} <div class="col-lg-9">
<div class="form-group"> ${password}
<label class="col-lg-3 control-label" for="${id:password-old}"> ${password-info class="help-block"}
${tr:Lms.password-old} </div>
</label>
<div class="col-lg-9">
${password-old}
${password-old-info class="help-block"}
</div> </div>
</div> <div class="form-group">
${</if-has-old-password>} <label class="col-lg-3 control-label" for="${id:password-confirm}">
<div class="form-group"> ${tr:Lms.password-confirm}
<label class="col-lg-3 control-label" for="${id:password}"> </label>
${tr:Lms.password-new} <div class="col-lg-9">
</label> ${password-confirm}
<div class="col-lg-9"> ${password-confirm-info class="help-block"}
${password} </div>
${password-info class="help-block"}
</div> </div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="${id:password-confirm}">
${tr:Lms.password-confirm}
</label>
<div class="col-lg-9">
${password-confirm}
${password-confirm-info class="help-block"}
</div>
</div>
<div class="form-group"> <div class="form-group">
<div class="col-lg-offset-3 col-lg-9"> <div class="col-lg-offset-3 col-lg-9">
${apply-btn class="btn-primary"} ${discard-btn} ${apply-btn class="btn-primary"} ${discard-btn}
</div>
</div> </div>
</div> </div>
</div> </form>
</div> </div>
</div> </div>
</message> </message>
+4 -1
View File
@@ -181,12 +181,15 @@ Auth::Auth()
}; };
// LoginName // LoginName
setFormWidget(AuthModel::LoginNameField, std::make_unique<Wt::WLineEdit>()); auto loginName {std::make_unique<Wt::WLineEdit>()};
loginName->setAttributeValue("autocomplete", "username");
setFormWidget(AuthModel::LoginNameField, std::move(loginName));
// Password // Password
auto password = std::make_unique<Wt::WLineEdit>(); auto password = std::make_unique<Wt::WLineEdit>();
password->setEchoMode(Wt::EchoMode::Password); password->setEchoMode(Wt::EchoMode::Password);
password->enterPressed().connect(this, processAuth); password->enterPressed().connect(this, processAuth);
password->setAttributeValue("autocomplete", "current-password");
setFormWidget(AuthModel::PasswordField, std::move(password)); setFormWidget(AuthModel::PasswordField, std::move(password));
// Remember me // Remember me
+3
View File
@@ -387,17 +387,20 @@ SettingsView::refreshView()
auto oldPassword {std::make_unique<Wt::WLineEdit>()}; auto oldPassword {std::make_unique<Wt::WLineEdit>()};
oldPassword->setEchoMode(Wt::EchoMode::Password); oldPassword->setEchoMode(Wt::EchoMode::Password);
oldPassword->setAttributeValue("autocomplete", "current-password");
t->setFormWidget(SettingsModel::PasswordOldField, std::move(oldPassword)); t->setFormWidget(SettingsModel::PasswordOldField, std::move(oldPassword));
} }
// Password // Password
auto password {std::make_unique<Wt::WLineEdit>()}; auto password {std::make_unique<Wt::WLineEdit>()};
password->setEchoMode(Wt::EchoMode::Password); password->setEchoMode(Wt::EchoMode::Password);
password->setAttributeValue("autocomplete", "new-password");
t->setFormWidget(SettingsModel::PasswordField, std::move(password)); t->setFormWidget(SettingsModel::PasswordField, std::move(password));
// Password confirm // Password confirm
auto passwordConfirm {std::make_unique<Wt::WLineEdit>()}; auto passwordConfirm {std::make_unique<Wt::WLineEdit>()};
passwordConfirm->setEchoMode(Wt::EchoMode::Password); passwordConfirm->setEchoMode(Wt::EchoMode::Password);
passwordConfirm->setAttributeValue("autocomplete", "new-password");
t->setFormWidget(SettingsModel::PasswordConfirmField, std::move(passwordConfirm)); t->setFormWidget(SettingsModel::PasswordConfirmField, std::move(passwordConfirm));
// Audio // Audio
+17 -7
View File
@@ -113,17 +113,27 @@ InitWizardView::InitWizardView()
auto model = std::make_shared<InitWizardModel>(); auto model = std::make_shared<InitWizardModel>();
// AdminLogin // AdminLogin
setFormWidget(InitWizardModel::AdminLoginField, std::make_unique<Wt::WLineEdit>()); {
auto adminLogin {std::make_unique<Wt::WLineEdit>()};
adminLogin->setAttributeValue("autocomplete", "username");
setFormWidget(InitWizardModel::AdminLoginField, std::move(adminLogin));
}
// Password // Password
auto passwordEdit = std::make_unique<Wt::WLineEdit>(); {
passwordEdit->setEchoMode(Wt::EchoMode::Password); auto passwordEdit = std::make_unique<Wt::WLineEdit>();
setFormWidget(InitWizardModel::PasswordField, std::move(passwordEdit) ); passwordEdit->setEchoMode(Wt::EchoMode::Password);
passwordEdit->setAttributeValue("autocomplete", "current-password");
setFormWidget(InitWizardModel::PasswordField, std::move(passwordEdit) );
}
// Password confirmation // Password confirmation
auto passwordConfirmEdit = std::make_unique<Wt::WLineEdit>(); {
passwordConfirmEdit->setEchoMode(Wt::EchoMode::Password); auto passwordConfirmEdit = std::make_unique<Wt::WLineEdit>();
setFormWidget(InitWizardModel::PasswordConfirmField, std::move(passwordConfirmEdit)); passwordConfirmEdit->setEchoMode(Wt::EchoMode::Password);
passwordConfirmEdit->setAttributeValue("autocomplete", "current-password");
setFormWidget(InitWizardModel::PasswordConfirmField, std::move(passwordConfirmEdit));
}
Wt::WPushButton* saveButton = bindNew<Wt::WPushButton>("create-btn", Wt::WString::tr("Lms.create")); Wt::WPushButton* saveButton = bindNew<Wt::WPushButton>("create-btn", Wt::WString::tr("Lms.create"));
saveButton->clicked().connect([=] saveButton->clicked().connect([=]
+1
View File
@@ -227,6 +227,7 @@ UserView::refreshView()
// Password // Password
auto passwordEdit = std::make_unique<Wt::WLineEdit>(); auto passwordEdit = std::make_unique<Wt::WLineEdit>();
passwordEdit->setEchoMode(Wt::EchoMode::Password); passwordEdit->setEchoMode(Wt::EchoMode::Password);
passwordEdit->setAttributeValue("autocomplete", "off");
t->setFormWidget(UserModel::PasswordField, std::move(passwordEdit)); t->setFormWidget(UserModel::PasswordField, std::move(passwordEdit));
// Demo account // Demo account