diff src/nabble/view/naml/user.naml @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/nabble/view/naml/user.naml	Thu Mar 21 19:15:52 2019 -0600
@@ -0,0 +1,98 @@
+<macro name="user_header">
+	<span style="white-space:nowrap;" id="nabble-user-header"></span>
+	<script type="text/javascript">Nabble.userHeader();</script>
+</macro>
+
+<macro name="is_active" requires="user">
+	<n.both>
+		<condition1.not.is_banned/>
+		<condition2.not.is_deactivated/>
+	</n.both>
+</macro>
+
+<!-- user_tag_id fixes the tilde char (~) in anonymous names (e.g., "a123~Anon") -->
+<macro name="user_tag_id" requires="user">
+	<n.regex_replace_all. pattern='[^\w]' replacement='_'><n.id/></n.regex_replace_all.>
+</macro>
+
+<macro name="set_visitor_online_js">
+	<n.param_loop. param="visitorOnline">
+		<n.set_visitor_online/>
+	</n.param_loop.>
+</macro>
+
+<macro name="avatar_online_js">
+	<n.param_loop. param="avatarOnline">
+		<n.if.author_is_online search_id="[n.current_parameter_value/]">
+			<then>
+				Nabble.online('<n.current_parameter_value/>');
+			</then>
+		</n.if.author_is_online>
+	</n.param_loop.>
+</macro>
+
+<macro name="avatar" requires="user" parameters="size,group,border_class">
+	<n.set_var. name="image_url">
+		<n.if.is_banned>
+			<then.default_avatar_url size="[n.size/]"/>
+			<else.avatar_url size="[n.size/]"/>
+		</n.if.is_banned>
+	</n.set_var.>
+	<n.remove_spaces_between_tags.>
+		<n.if.is_empty.group>
+			<then>
+				<a href="[n.url/]" rel="nofollow" title="[t]View profile of [t.author.name/][/t]" class="nowrap no-decoration">
+					<img class="avatar [n.avatar_border.border_class/]" src="[n.var name='image_url'/]" height="[n.avatar_pixels.size/]" width="[n.avatar_pixels.size/]" alt="[n.name/]" title="[n.name/]"/>
+					<img src="/images/online.png" class="online[n.search_id/] online invisible" title="[t]User is online[/t]" alt="online"/>
+				</a>
+			</then>
+			<else>
+				<n.put_in_head.>
+					<script type="text/javascript">
+						var avatarBorder = "<n.avatar_border.border_class/>";
+						var userIsOnline = "<t>User is online</t>";
+<![CDATA[
+						Nabble.createAvatar = function(showAvatar, url, id, size) {
+							var dim = size == 'small'? 24 : 100;
+							document.write("<img ");
+							if (showAvatar || showAvatar == null)
+								document.write("src='"+url+"' ");
+							else
+								document.write("src='/images/nop.gif' ");
+							document.write("xsrc='"+url+"' ");
+							document.write("width='"+dim+"' height='"+dim+"' class='"+avatarBorder+" avatar'/>");
+							if (id)
+								document.write('<img src="/images/online.png" class="online'+id+' online invisible" title="'+userIsOnline+'" alt="online"/>');
+						};
+]]>
+					</script>
+				</n.put_in_head.>
+				<span class="avatar[n.group/]">
+					<a href="[n.url/]" rel="nofollow" title="[t]View profile of [t.author.name/][/t]" class="nowrap no-decoration">
+						<script type="text/javascript">
+							Nabble.createAvatar(window.hasAvatar<n.group/>, '<n.var name='image_url'/>', '<n.search_id/>', '<n.size/>');
+						</script>
+					</a>
+				</span>
+			</else>
+		</n.if.is_empty.group>
+	</n.remove_spaces_between_tags.>
+
+	<n.call_later param="visitorOnline"/>
+	<n.call_later value="[n.search_id/]" param="avatarOnline"/>
+</macro>
+
+<macro name="avatar_border" dot_parameter="class">
+	<n.default. to="light-border-color"><n.class/></n.default.>
+</macro>
+
+<macro name="avatar_pixels" dot_parameter="size">
+	<n.if.equal value1="[n.size/]" value2="big">
+		<then>100</then>
+		<else>24</else>
+	</n.if.equal>
+</macro>
+
+<macro name="post_count_value" requires="user">
+	<n.page_user.node_count filter="[n.post_filter/]"/>
+</macro>
\ No newline at end of file