1 <div id="reply-<% reply.id|html>" class="reply<%if !reply.sone.local><%if reply.new> new<%/if><%/if>">
2 <a name="reply-<% reply.id|html>"></a>
3 <div class="reply-time hidden"><% reply.time|html></div>
4 <div class="reply-author hidden"><% reply.sone.id|html></div>
5 <div class="reply-author-local hidden"><% reply.sone.local></div>
6 <%include include/soneMenu.html class=="sone-reply-menu" sone=reply.sone>
7 <div class="avatar reply-avatar">
8 <%ifnull !reply.sone.profile.avatar>
9 <% reply.sone.profile.avatar|build-id sone=reply.sone|image-link max-width==36 max-height==36 mode==enlarge title=="Avatar Image">
11 <img src="/WebOfTrust/GetIdenticon?identity=<% reply.sone.id|html>&width=72&height=72" width="36" height="36" alt="Avatar Image" />
14 <div class="inner-part">
16 <div class="author profile-link"><a href="viewSone.html?sone=<% reply.sone.id|html>"><% reply.sone.niceName|html></a></div>
17 <% reply.text|html|store key==originalText text==true>
18 <% reply.text|parse sone=reply.sone|store key==parts>
19 <% parts|render|store key==parsedText text==true>
20 <% parts|render length=core.preferences.charactersPerPost cut-off-length=core.preferences.postCutOffLength|store key==shortText text==true>
21 <div class="reply-text raw-text<%if !raw> hidden<%/if>"><% originalText></div>
22 <div class="reply-text text<%if raw> hidden<%/if><%if !shortText|match key=parsedText> hidden<%/if>"><% parsedText></div>
23 <div class="reply-text short-text<%if raw> hidden<%/if><%if shortText|match key=parsedText> hidden<%/if>"><% shortText></div>
24 <%if !shortText|match value=parsedText><%if !raw><a class="expand-reply-text" href="viewPost.html?post=<% reply.postId|html>&raw=true"><%= View.Post.ShowMore|l10n|html></a><%/if><%/if>
25 <%if !shortText|match value=parsedText><%if !raw><a class="shrink-reply-text hidden"><%= View.Post.ShowLess|l10n|html></a><%/if><%/if>
28 <%if part.class.simpleName|match value==AlbumPart><!-- ← this is so ugly. -->
29 <% part.album.images.random|store key==image>
30 <div class="album images" style="zoom: 0.80;">
31 <%include include/viewAlbum.html album=part.album hideMoveButtons==true>
35 <div class="reply-status-line status-line">
36 <div class="time"><% reply.time|date format=="MMM d, yyyy, HH:mm:ss"></div>
37 <span class='separator'>·</span>
38 <div class="permalink permalink-author"><a href="sone://<%reply.sone.id|html>">[<%= View.Post.PermalinkAuthor|l10n|html>]</a></div>
39 <%if ! originalText|match value=parsedText>
40 <span class='separator'>·</span>
41 <div class="show-reply-source"><a href="viewPost.html?post=<% post.id|html>&raw=<%if raw>false<%else>true<%/if>"><%= View.Post.ShowSource|l10n|html></a></div>
43 <div class="likes<%if reply.likes.size|match value==0> hidden<%/if>">
44 <span class='separator'>·</span>
45 <span title="<% reply.likes.soneNames|html>">↑<span class="like-count"><% reply.likes.size></span></span>
47 <%ifnull ! currentSone>
48 <span class='separator'>·</span>
49 <form class="like like-reply<%if reply.liked> hidden<%/if>" action="like.html" method="post">
50 <input type="hidden" name="formPassword" value="<% formPassword|html>" />
51 <input type="hidden" name="returnPage" value="<% request.uri|html>" />
52 <input type="hidden" name="type" value="reply" />
53 <input type="hidden" name="reply" value="<% reply.id|html>" />
54 <button type="submit" value="1"><%= View.Post.LikeLink|l10n|html></button>
56 <form class="unlike unlike-reply<%if ! reply.liked> hidden<%/if>" action="unlike.html" method="post">
57 <input type="hidden" name="formPassword" value="<% formPassword|html>" />
58 <input type="hidden" name="returnPage" value="<% request.uri|html>" />
59 <input type="hidden" name="type" value="reply" />
60 <input type="hidden" name="reply" value="<% reply.id|html>" />
61 <button type="submit" value="1"><%= View.Post.UnlikeLink|l10n|html></button>
63 <%if !reply.sone.current>
64 <%ifnull !reply.sone.trust>
65 <span class='separator'>·</span>
66 <form class="trust reply-trust<%if reply.sone.trust.assigned> hidden<%/if>" action="trust.html" method="post">
67 <input type="hidden" name="formPassword" value="<% formPassword|html>" />
68 <input type="hidden" name="returnPage" value="<% request.uri|html>" />
69 <input type="hidden" name="sone" value="<% reply.sone.id|html>" />
70 <button type="submit" title="<%= View.Trust.Tooltip.Trust|l10n|html>">✓</button>
72 <form class="distrust reply-distrust<%if reply.sone.trust.assigned> hidden<%/if>" action="distrust.html" method="post">
73 <input type="hidden" name="formPassword" value="<% formPassword|html>" />
74 <input type="hidden" name="returnPage" value="<% request.uri|html>" />
75 <input type="hidden" name="sone" value="<% reply.sone.id|html>" />
76 <button type="submit" title="<%= View.Trust.Tooltip.Distrust|l10n|html>">✗</button>
78 <form class="untrust reply-untrust<%if !reply.sone.trust.assigned> hidden<%/if>" action="untrust.html" method="post">
79 <input type="hidden" name="formPassword" value="<% formPassword|html>" />
80 <input type="hidden" name="returnPage" value="<% request.uri|html>" />
81 <input type="hidden" name="sone" value="<% reply.sone.id|html>" />
82 <button type="submit" title="<%= View.Trust.Tooltip.Untrust|l10n|html>">↶</button>
87 <%if reply.sone.local>
88 <span class='separator'>·</span>
89 <form class="delete delete-reply" action="deleteReply.html" method="post">
90 <input type="hidden" name="formPassword" value="<% formPassword|html>" />
91 <input type="hidden" name="returnPage" value="<% request.uri|html>" />
92 <input type="hidden" name="reply" value="<% reply.id|html>" />
93 <button type="submit"><%= View.Post.Reply.DeleteLink|l10n|html></button>