fix(web): Preserve SSH key content on form validation error

This commit is contained in:
keerthi 2025-04-22 12:41:20 +05:30
parent 8424863969
commit 4f261c906e
2 changed files with 5 additions and 1 deletions

View file

@ -121,6 +121,7 @@ struct SetUnixCredPartial {
struct AddSshPublicKeyPartial { struct AddSshPublicKeyPartial {
title_error: Option<String>, title_error: Option<String>,
key_error: Option<String>, key_error: Option<String>,
key_value: Option<String>,
} }
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]
@ -902,6 +903,7 @@ pub(crate) async fn view_add_ssh_publickey(
return Ok((AddSshPublicKeyPartial { return Ok((AddSshPublicKeyPartial {
title_error: None, title_error: None,
key_error: None, key_error: None,
key_value: None,
},) },)
.into_response()); .into_response());
} }
@ -920,6 +922,7 @@ pub(crate) async fn view_add_ssh_publickey(
return Ok((AddSshPublicKeyPartial { return Ok((AddSshPublicKeyPartial {
title_error: None, title_error: None,
key_error: Some("Key cannot be parsed".to_string()), key_error: Some("Key cannot be parsed".to_string()),
key_value: Some(new_key.key),
},) },)
.into_response()); .into_response());
} }
@ -965,6 +968,7 @@ pub(crate) async fn view_add_ssh_publickey(
AddSshPublicKeyPartial { AddSshPublicKeyPartial {
title_error, title_error,
key_error, key_error,
key_value: Some(new_key.key),
}, },
) )
.into_response()) .into_response())

View file

@ -16,7 +16,7 @@
<textarea class="form-control(% if let Some(_) = key_error %) is-invalid(% endif %)" id="key-content" rows="5" name="key" <textarea class="form-control(% if let Some(_) = key_error %) is-invalid(% endif %)" id="key-content" rows="5" name="key"
aria-describedby="key-validation-feedback" aria-describedby="key-validation-feedback"
placeholder="Begins with 'ssh-rsa', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'ssh-ed25519', 'sk-ecdsa-sha2-nistp256@openssh.com', or 'sk-ssh-ed25519@openssh.com'" placeholder="Begins with 'ssh-rsa', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521', 'ssh-ed25519', 'sk-ecdsa-sha2-nistp256@openssh.com', or 'sk-ssh-ed25519@openssh.com'"
></textarea> >(% if let Some(key_value) = key_value %)(( key_value ))(% endif %)</textarea>
<div id="key-validation-feedback" class="invalid-feedback"> <div id="key-validation-feedback" class="invalid-feedback">
(% if let Some(key_error) = key_error %)(( key_error ))(% endif %) (% if let Some(key_error) = key_error %)(( key_error ))(% endif %)
</div> </div>