Mercurial Hosting > nabble
diff src/nabble/view/naml/widget.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/widget.naml Thu Mar 21 19:15:52 2019 -0600 @@ -0,0 +1,246 @@ +<macro name="sidebar_widget" requires="node_page,servlet"> + <n.actions_widget/> + <n.people_widget/> + <n.subscribe_widget/> + <n.categories_widget/> + <n.archives_widget/> +</macro> + +<macro name="people_widget"> + <n.put_in_head.> + <style type="text/css"> + a.people-small-link { + float:right; + font-size:80%; + padding:.1em .3em; + } + </style> + </n.put_in_head.> + <n.site_users. length="50"> + <n.filter_by.current_user.can_be_displayed_in.page_node/> + <n.if.has_more_elements n="2"> + <then> + <n.widget.> + <h2 class="sidebar-section shaded-bg-color"> + <n.page_node.people_link text="[t]All Users[/t]" class="people-small-link"/> + <t>People</t> + </h2> + <div id="recent-posters"> + <n.sub_list. start="0" length="12"> + <n.people_widget_table/> + </n.sub_list.> + </div> + </n.widget.> + </then> + </n.if.has_more_elements> + </n.site_users.> +</macro> + +<macro name="people_widget_table" requires="user_list"> + <table style="width:100%"> + <n.loop.> + <tr> + <td><n.current_user.avatar size="small"/></td> + <n.if.next_user> + <then><td><n.current_user.avatar size="small"/></td></then> + </n.if.next_user> + <n.if.next_user> + <then><td><n.current_user.avatar size="small"/></td></then> + </n.if.next_user> + <n.if.next_user> + <then><td><n.current_user.avatar size="small"/></td></then> + </n.if.next_user> + </tr> + </n.loop.> + </table> +</macro> + +<macro name="actions_widget" requires="node_page"> + <n.widget.> + <table class="actions" style="border-collapse:collapse;width:100%"> + <n.new_topic_action_row/> + <n.app_dropdown_action_row/> + <n.app_views_action_row/> + <n.app_feeds_action_row/> + </table> + </n.widget.> +</macro> + +<macro name="new_topic_action_row" requires="node_page"> + <tr> + <td style="width:20px"> + <img src="/images/icon_post_message.png" class="image16" border="0"/> + </td> + <td class="nowrap" style="padding-left:.2em"> + <n.page_node.new_topic_link + text="[t]New Post[/t]" + title="[t]Post new message in [t.location.page_node.subject/][/t]" + /> + </td> + </tr> +</macro> + +<macro name="app_dropdown_action_row" requires="node_page"> + <tr> + <td style="width:20px;padding-top:.5em"> + <img src="/images/gear.png" class="image16" border="0" /> + </td> + <td class="nowrap" style="padding:.5em 0 0 .2em"> + <n.page_node.app_dropdown/> + </td> + </tr> +</macro> + +<macro name="app_views_action_row" requires="node_page"> + <tr> + <td style="width:20px;padding-top:.5em"> + <img src="/images/eye.png" class="image16"/> + </td> + <td class="nowrap" style="padding:.5em 0 0 .2em"> + <n.page_node.views show_text="true"/> + </td> + </tr> +</macro> + +<macro name="app_feeds_action_row" requires="node_page"> + <tr> + <td style="width:20px;padding-top:.5em"> + <img src="/images/feeds.png" width="16" height="16" border="0" alt="feeds"/> + </td> + <td class="nowrap" style="padding:.5em 0 0 .2em"> + <n.page_node.feeds_link/> + </td> + </tr> +</macro> + +<macro name="subscribe_widget"> + <n.widget.> + <div id="subscribe-widget" class="invisible"> + <h2 class="sidebar-section shaded-bg-color"><t>Subscribe via email</t></h2> + <ul id="subscribe-widget-form" class="sidebar-section"> + <n.form. macro="subscribe"> + <input type="hidden" name="node" value="[n.page_node.id/]"/> + <input type="hidden" name="action" value="send-anonymous"/> + <input type="hidden" name="subscription_to" value="CHILDREN"/> + <table> + <tr> + <td><b><t>Email</t></b></td> + <td><input type="text" size="25" maxlength="80" name="email"/></td> + </tr> + <tr> + <td></td> + <td><input type="submit" value="[t]Subscribe[/t]" style="margin-top:.5em"/></td> + </tr> + </table> + </n.form.> + </ul> + </div> + <script type="text/javascript"> + if (!Nabble.userId) + Nabble.get('subscribe-widget').style.display = 'block'; + </script> + </n.widget.> +</macro> + +<macro name="categories_widget"> + <n.widget.> + <n.if.page_node.has_subapps> + <then> + <h2 class="sidebar-section shaded-bg-color"><t>Subcategories</t></h2> + <ul class="sidebar-section"> + <n.page_node.subapps_list.loop.> + <li class="medium-border-color"><n.current_node.node_link.url/></li> + </n.page_node.subapps_list.loop.> + </ul> + <n.separator/> + </then> + </n.if.page_node.has_subapps> + </n.widget.> +</macro> + +<macro name="archives_widget" requires="node_page,servlet"> + <n.widget.> + <h2 class="sidebar-section shaded-bg-color"><t>Archives</t></h2> + <ul class="sidebar-section"> + <n.page_node.monthly_archives.> + <li class="medium-border-color"> + <a href="[n.page_node.path/]"><t>All</t></a> + <span class="weak-color">(<n.total/>)</span> + </li> + + <n.year_list.loop.> + <li class="medium-border-color"> + <div class="year bold"> + <span>▸</span> + <n.current_year.year/> + </div> + <div style="margin:.3em 0 .3em 1em; display:none"> + <n.current_year.month_list.loop.> + <n.set_var. name="year-month"><n.current_month.year/><n.current_month.month/></n.set_var.> + <n.set_var. name="class"> + <n.if.equal value1="[n.var name='year-month'/]" value2="[n.app_date/]"> + <then>highlight</then> + </n.if.equal> + </n.set_var.> + <n.set_var. name="archive-url"> + <n.page_node.app_path_by_date date="[n.var name='year-month'/]"/> + </n.set_var.> + <div class="[n.var name='class'/]" style="margin:.2em 0; padding: .2em .3em"> + <a href="[n.var name='archive-url'/]" rel="nofollow"><n.current_month.archive_text/></a> + <span class="weak-color">(<n.current_month.count/>)</span> + </div> + </n.current_year.month_list.loop.> + </div> + </li> + </n.year_list.loop.> + </n.page_node.monthly_archives.> + </ul> + <script type="text/javascript"> + $(document).ready(function() { + function collapse(e) { + $(e).children().first().html('▸'); + $(e).next().slideUp(); + }; + function expand(e) { + $(e).children().first().html('▾'); + $(e).next().slideDown(); + }; + var $years = $('.year'); + $years.css('cursor', 'pointer'); + var expanded = false; + $years.each(function() { + var isOpen = $('div.highlight', $(this).next()).size() > 0; + if (isOpen) { + expand(this); + expanded = true; + } + $(this).click(function() { + var isOpen = $(this).next().is(':visible'); + if (isOpen) + collapse(this); + else + expand(this); + }); + }); + if (!expanded) { + expand($years.eq(0).get()); + } + }); + </script> + </n.widget.> +</macro> + +<macro name="archive_text" requires="month_row"> + <n.if.equal value1="[n.month/]" value2="01"><then><t>January</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="02"><then><t>February</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="03"><then><t>March</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="04"><then><t>April</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="05"><then><t>May</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="06"><then><t>June</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="07"><then><t>July</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="08"><then><t>August</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="09"><then><t>September</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="10"><then><t>October</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="11"><then><t>November</t></then></n.if.equal> + <n.if.equal value1="[n.month/]" value2="12"><then><t>December</t></then></n.if.equal> +</macro>