Add support for remote interaction ([this thing](https://eldritch.cafe/users/Barmaid/remote_follow) in mastodon) - [x] create the endpoint dispatching remote interactions to local pages - [x] add this endpoint to web-finger - [x] propose remote interaction when following and not connected - [x] propose remote interaction when liking/sharing and not connected - [x] propose remote interaction when commenting and not connected - [x] fetch posts/comments we don't know but remote interaction was requested for ?
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| @use template_utils::*;
 | |
| @use plume_models::users::User;
 | |
| @use routes::*;
 | |
| 
 | |
| @(ctx: BaseContext, user: &User, follows: bool, is_remote: bool, instance_url: String)
 | |
| 
 | |
| <div class="h-card">
 | |
|     <div class="user">
 | |
|         <div class="flex wrap">
 | |
|             @avatar(ctx.0, &user, Size::Medium, false, ctx.1)
 | |
| 
 | |
|             <h1 class="grow flex vertical">
 | |
|                 <span class="p-name">@user.name()</span>
 | |
|                 <small class="p-nickname">@user.fqn</small>
 | |
|             </h1>
 | |
| 
 | |
|             <p>
 | |
|                 @if user.is_admin {
 | |
|                     <span class="badge">@i18n!(ctx.1, "Admin")</span>
 | |
|                 }
 | |
| 
 | |
|                 @if ctx.2.clone().map(|u| u.id == user.id).unwrap_or(false) {
 | |
|                     <span class="badge">@i18n!(ctx.1, "It is you")</span>
 | |
|                     <a href="@uri!(user::edit: name = &user.username)" class="button inline-block">@i18n!(ctx.1, "Edit your profile")</a>
 | |
|                 }
 | |
|             </p>
 | |
|         </div>
 | |
| 
 | |
|         @if is_remote {
 | |
|             <a class="inline-block u-url" href="@user.ap_url" rel="me" target="_blank">@i18n!(ctx.1, "Open on {0}"; instance_url)</a>
 | |
|         } else {
 | |
|             <a class="u-url" href="@user.ap_url"></a>
 | |
|         }
 | |
| 
 | |
|         @if ctx.2.clone().map(|u| u.id != user.id).unwrap_or(true) {
 | |
|             <form class="inline" method="post" action="@uri!(user::follow: name = &user.fqn)">
 | |
|             @if follows {
 | |
|                 <input type="submit" value="@i18n!(ctx.1, "Unsubscribe")">
 | |
|             } else {
 | |
|                 <input type="submit" value="@i18n!(ctx.1, "Subscribe")">
 | |
|             }
 | |
|             </form>
 | |
|         }
 | |
|     </div>
 | |
|     <div class="user-summary p-note">
 | |
|         @Html(user.summary_html.clone())
 | |
|     </div>
 | |
| </div>
 |