72 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| @use plume_models::blocklisted_emails::BlocklistedEmail;
 | |
| @use crate::templates::base;
 | |
| @use crate::template_utils::*;
 | |
| @use crate::routes::*;
 | |
| 
 | |
| @(ctx:BaseContext, emails: Vec<BlocklistedEmail>, page:i32, n_pages:i32)
 | |
|     @:base(ctx, i18n!(ctx.1, "Blocklisted Emails"), {}, {}, {
 | |
|     <h1>@i18n!(ctx.1,"Blocklisted Emails")</h1>
 | |
|     @tabs(&[
 | |
|         (&uri!(instance::admin).to_string(), i18n!(ctx.1, "Configuration"), false),
 | |
|         (&uri!(instance::admin_instances: page = _).to_string(), i18n!(ctx.1, "Instances"), false),
 | |
|         (&uri!(instance::admin_users: page = _).to_string(), i18n!(ctx.1, "Users"), false),
 | |
|         (&uri!(instance::admin_email_blocklist:page=_).to_string(), i18n!(ctx.1, "Email blocklist"), true),
 | |
|     ])
 | |
|     <form method="post" action="@uri!(instance::add_email_blocklist)">
 | |
|         @(Input::new("email_address", i18n!(ctx.1, "Email address"))
 | |
|         .details(i18n!(ctx.1, "The email address you wish to block. In order to block domains, you can use globbing syntax, for example '*@example.com' blocks all addresses from example.com"))
 | |
|         .set_prop("minlength", 1)
 | |
|         .html(ctx.1))
 | |
|         @(Input::new("note", i18n!(ctx.1, "Note")).optional().html(ctx.1))
 | |
|         <label for="notify_user">@i18n!(ctx.1, "Notify the user?")
 | |
|             <input id="notify_user" type="checkbox" name="notify_user">
 | |
|             <small>
 | |
|                 @i18n!(ctx.1, "Optional, shows a message to the user when they attempt to create an account with that address")
 | |
|             </small>
 | |
|         </label>
 | |
|         @(Input::new("notification_text", i18n!(ctx.1, "Blocklisting notification"))
 | |
|             .optional()
 | |
|         .details(i18n!(ctx.1, "The message to be shown when the user attempts to create an account with this email address")).html(ctx.1))
 | |
|         <input type="submit"  value='@i18n!(ctx.1, "Add blocklisted address")'>
 | |
|     </form>
 | |
|     <form method="post" action="@uri!(instance::delete_email_blocklist)">
 | |
|         <header>
 | |
|             @if emails.is_empty() {
 | |
|                <p class="center" >@i18n!(ctx.1, "There are no blocked emails on your instance")</p>
 | |
|             } else {
 | |
|                <input type="submit" class="destructive" value='@i18n!(ctx.1, "Delete selected emails")'>
 | |
|             }
 | |
|         </header>
 | |
|     <div class="list">
 | |
|         @for email in emails {
 | |
|         <div class="card flex compact">
 | |
|             <input type="checkbox" name="@email.id">
 | |
|             <p class="grow">
 | |
|                 <strong>
 | |
|                     @i18n!(ctx.1, "Email address:")
 | |
|                 </strong> @email.email_address
 | |
|             </p>
 | |
|             <p class="grow">
 | |
|                 <strong>
 | |
|                     @i18n!(ctx.1, "Blocklisted for:")
 | |
|                 </strong> @email.note
 | |
|             </p>
 | |
| 
 | |
|             <p class="grow">
 | |
|                 @if email.notify_user {
 | |
|                 <strong>
 | |
|                     @i18n!(ctx.1, "Will notify them on account creation with this message:")
 | |
|                 </strong>
 | |
|                 @email.notification_text
 | |
|                 } else {
 | |
|                 @i18n!(ctx.1, "The user will be silently prevented from making an account")
 | |
|                 }
 | |
|             </p>
 | |
| 
 | |
|         </div>
 | |
|         }
 | |
|     </div>
 | |
|     </form>
 | |
|     @paginate(ctx.1, page, n_pages)
 | |
| })
 |