subscribe.naml
<macro name="subscribe" requires="servlet">
<n.node_page.>
<n.html>
<head>
<meta name="robots" content="noindex,nofollow"/>
<n.title.><t>Subscribe via email</t></n.title.>
<n.main_title_css/>
</head>
<body>
<n.if.visitor.is_anonymous>
<then>
<n.edit_header first_text="[n.page_node.subject/]" second_text="[t]Email Subscription[/t]" />
<n.if.is_submitted_form>
<then>
<n.if.equal value1="send-anonymous" value2="[n.action_parameter/]">
<then>
<n.catch_exception. id="send-email-block">
<n.handle_anonymous_subscription/>
</n.catch_exception.>
</then>
</n.if.equal>
<n.if.has_exception for="send-email-block">
<then.show_subscription_error/>
<else.show_success_message/>
</n.if.has_exception>
</then>
</n.if.is_submitted_form>
<n.anonymous_subscription_form/>
</then>
<else>
<n.visitor.profile_header/>
<n.if.is_submitted_form>
<then.save_field_values/>
<else.load_field_values/>
</n.if.is_submitted_form>
<n.subscription_form/>
</else>
</n.if.visitor.is_anonymous>
</body>
</n.html>
</n.node_page.>
</macro>
<macro name="save_field_values">
<n.if.equal value1="save-subscription" value2="[n.action_parameter/]">
<then>
<n.page_node.visitor_subscription.save
to="[n.subscription_to_field.value/]"
type="[n.subscription_type_field.value/]"
/>
<n.redirect_to.subscription_saved_url/>
</then>
</n.if.equal>
</macro>
<macro name="load_field_values">
<n.subscription_to_field.set_value.>
<n.if.page_node.visitor_is_subscribed>
<then.page_node.visitor_subscription.to/>
<else>DESCENDANTS</else>
</n.if.page_node.visitor_is_subscribed>
</n.subscription_to_field.set_value.>
<n.subscription_type_field.set_value.>
<n.if.page_node.visitor_is_subscribed>
<then.page_node.visitor_subscription.type/>
<else>INSTANT</else>
</n.if.page_node.visitor_is_subscribed>
</n.subscription_type_field.set_value.>
</macro>
<macro name="subscription_form" requires="node_page">
<div class="shaded-bg-color rounded second-font main-title">
<n.if.page_node.visitor_is_subscribed>
<then><t>Edit Subscription</t></then>
<else><t>Confirm Subscription</t></else>
</n.if.page_node.visitor_is_subscribed>
</div>
<n.form.>
<input type="hidden" name="action" value="save-subscription"/>
<n.if.page_node.is_app>
<then.app_subscription_controls/>
<else.post_subscription_controls/>
</n.if.page_node.is_app>
<br/>
<input type="submit" class="toolbar action-button" value="[t]Save Subscription[/t]"/>
<n.if.page_node.visitor_is_subscribed>
<then>
<input type="button" class="toolbar action-button" value="[t]Unsubscribe[/t]" onclick="window.location='[n.page_node.unsubscribe_path/]'"/>
</then>
</n.if.page_node.visitor_is_subscribed>
<t>or</t> <a href="javascript:history.back()"><t>Cancel</t></a>
</n.form.>
</macro>
<macro name="app_subscription_controls">
<table style="margin:.2em 0 .5em">
<tr>
<td><img src="[n.page_node.image_icon/]" class="image16"/></td>
<td class="weak-color" style="font-weight:bold">
<n.page_node.subject/>
</td>
</tr>
</table>
<div style="margin:.5em 1em .2em">
<n.subscription_to_field.radio id="all" option_value="DESCENDANTS"/>
<label for="all">
<n.if.page_node.is_app>
<then><t>Receive every message posted in <t.location><n.italic.page_node.subject/></t.location>.</t></then>
<else><t>Receive every reply under this topic.</t></else>
</n.if.page_node.is_app>
</label>
</div>
<div style="margin:0 1em .2em">
<n.subscription_to_field.radio id="direct" option_value="CHILDREN"/>
<label for="direct">
<n.if.page_node.is_app>
<then><t>Receive new topics only.</t></then>
<else><t>Receive direct replies only.</t></else>
</n.if.page_node.is_app>
</label>
</div>
<div style="margin:1em 0;font-weight:bold">
<t>Subscription Format</t>
</div>
<div style="margin:.5em 1em .2em">
<n.subscription_type_field.radio id="individual" option_value="INSTANT"/>
<label for="individual"><t>Individual emails</t> <span class="weak-color"><t>(you can reply by email)</t></span></label>
</div>
<div style="margin:0 1em .2em">
<n.subscription_type_field.radio id="daily" option_value="DAILY_DIGEST"/>
<label for="daily"><t>Daily digest</t></label>
</div>
</macro>
<macro name="post_subscription_controls" requires="node_page">
<n.subscription_to_field.set_value value="DESCENDANTS"/>
<n.subscription_to_field.hidden/>
<n.subscription_type_field.set_value value="INSTANT"/>
<n.subscription_type_field.hidden/>
<div style="font-weight:bold;margin: 2em 0 .5em">
<t>Do you really want to subscribe to <t.location><a href="[n.page_node.url/]"><n.page_node.subject/></a></t.location>?</t>
</div>
<div class="weak-color">
<t>You will receive an email for each new message posted under this topic.</t>
</div>
</macro>
<macro name="unsubscribe_path" requires="node">
/template/NamlServlet.jtp?macro=unsubscribe&node=<n.id/>
</macro>
<macro name="subscription_to_field" dot_parameter="do">
<n.field. name="subscription_to"><n.do/></n.field.>
</macro>
<macro name="subscription_type_field" dot_parameter="do">
<n.field. name="subscription_type"><n.do/></n.field.>
</macro>
<macro name="image_icon" requires="node">
<n.if.is_app>
<then>/images/forum_sm.png</then>
<else>/images/thread_sm.png</else>
</n.if.is_app>
</macro>
<macro name="show_success_message">
<table class="info-message" style="width:100%;padding:.5em">
<tr>
<td><img src="/images/success.png"/></td>
<td style="width:100%;font-weight:bold">
<t>Success: a confirmation email has been sent to you.</t>
</td>
</tr>
</table>
</macro>
<macro name="action_parameter">
<n.get_parameter name='action'/>
</macro>
<macro name="email_parameter">
<n.get_parameter name='email'/>
</macro>
<macro name="code_parameter">
<n.get_parameter name='code'/>
</macro>
<macro name="handle_anonymous_subscription" requires="node_page">
<n.set_local_subscription.page_node.subscription_for email="[n.email_parameter/]" />
<n.if.visitor.can_view.page_node>
<then>
<n.if.local_subscription.is_subscribed>
<then.throw_template_exception name="already_subscribed"/>
<else.local_subscription.send_subscription_confirmation/>
</n.if.local_subscription.is_subscribed>
</then>
<else.throw_template_exception name="not_authorized"/>
</n.if.visitor.can_view.page_node>
</macro>
<macro name="show_subscription_error" requires="node_page">
<n.format_error.handle_exception. for="send-email-block">
<n.exception. name="invalid_email">
<t>Enter a valid email address.</t>
</n.exception.>
<n.exception. name="not_authorized">
<t>Sorry, but this email is not authorized to view messages under <t.location.page_node.subject/>.</t>
</n.exception.>
<n.exception. name="already_subscribed">
<t>This email is already subscribed.</t>
</n.exception.>
</n.format_error.handle_exception.>
</macro>
<macro name="anonymous_subscription_form">
<div style="margin:1em 0">
<t>Enter below your email address and we will send a confirmation email to you.</t>
<div class="second-font big-title" style="margin:1em 0 .2em">
<t>Enter your email address</t>
</div>
<n.form.>
<input type="hidden" name="node" value="[n.page_node.id/]"/>
<input type="hidden" name="action" value="send-anonymous"/>
<input type="text" size="40" maxlength="80" name="email"/><br/>
<n.if.page_node.is_post>
<then>
<input type="hidden" name="subscription_to" value="DESCENDANTS"/>
<div class="weak-color">
<t>You will receive an email for each new message posted under this topic.</t>
</div>
</then>
<else>
<input id="sChildren" type="radio" name="subscription_to" value="CHILDREN" checked="true"><label for="sChildren"><t>New topics only</t></label></input><br/>
<input id="sDescendants" type="radio" name="subscription_to" value="DESCENDANTS"><label for="sDescendants"><t>All posts</t></label></input><br/>
</else>
</n.if.page_node.is_post>
<input type="submit" class="toolbar action-button" value="[t]Subscribe[/t]" style="margin-top:.5em"/>
</n.form.>
</div>
</macro>
<macro name="send_subscription_confirmation" requires="subscription,node_page" unindent="true">
<n.set_local_subscription.this_subscription />
<n.new_email.>
<n.send>
<to><n.email_parameter/></to>
<subject><t>Subscribe to <t.location.page_node.subject/></t></subject>
<text_part>
<t>Dear user,</t>
<t>You have been invited to subscribe to <t.location.page_node.subject/>, which is available at:</t>
<n.page_node.url/>
<t>With your subscription, updates will be sent directly to your email address.</t>
<t>To confirm your subscription, click on the link below:</t>
<n.local_subscription.subscription_confirmation_subscribe_by_code_url/>
<t>Sincerely,</t>
<t>The Nabble team</t>
________________________________________
<t>Free Embeddable <t.app.page_node.view_name/></t> powered by Nabble
<n.nabble_homepage/>
</text_part>
<html_part>
<t>Dear user,</t><br/>
<br/>
<t>You have been invited to subscribe to <t.location.bold.page_node.subject/>, which is available at:</t><br/>
<a href="[n.page_node.url/]"><n.page_node.url/></a><br/>
<br/>
<t>With your subscription, updates will be sent directly to your email address.</t><br/>
<br/>
<t>To confirm your subscription, click on the link below:</t>
<div style="background-color:#FFFADB;border:#EDDD79 solid 1px;margin:1.2em 0;padding:.5em">
<a href="[n.local_subscription.subscription_confirmation_subscribe_by_code_url/]">
<n.local_subscription.subscription_confirmation_subscribe_by_code_url/>
</a>
</div>
<t>Sincerely,</t><br/>
<t>The Nabble team</t><br/>
________________________________________<br/>
<t>Free Embeddable <t.app.page_node.view_name/></t> powered by Nabble<br/>
<n.nabble_homepage/>
</html_part>
</n.send>
</n.new_email.>
</macro>
<macro name="subscription_confirmation_subscribe_by_code_url" requires="subscription">
<n.subscribe_by_code_url subscription_to="[n.subscription_to_field.value/]"/>
</macro>
<macro name="subscribe_by_code_url" parameters="subscription_to" requires="subscription">
<n.remove_spaces.>
<n.base_url/>
<n.encode_url.>
/template/NamlServlet.jtp?macro=subscribe_by_code&node=<n.node.id/>&code=<n.subscription_code/>
<n.add_to_path name="subscription_to" value="[n.subscription_to/]" />
</n.encode_url.>
</n.remove_spaces.>
</macro>
<macro name="subscribe_by_code" requires="servlet">
<n.node_page.>
<n.catch_exception. id="save-subscription">
<n.page_node.get_subscription_by_code. code="[n.code_parameter/]">
<n.if.not.is_subscribed>
<then.save to="[n.subscription_to_field.value/]" type="INSTANT" />
<else.throw_template_exception name="already_subscribed"/>
</n.if.not.is_subscribed>
</n.page_node.get_subscription_by_code.>
</n.catch_exception.>
<n.html>
<head>
<meta name="robots" content="noindex,nofollow"/>
<n.title.><t>Subscription Confirmation</t></n.title.>
</head>
<body>
<n.edit_header first_text="[n.page_node.subject/]" second_text="Subscription Confirmation" />
<br/>
<n.if.has_exception for="save-subscription">
<then>
<n.handle_exception. for="save-subscription">
<n.exception. name="invalid_link">
<h2><t>Invalid Code</t></h2>
<p><t>The code in the URL is not valid.</t>
<t>Please contact Nabble Support if you need help.</t></p>
</n.exception.>
<n.exception. name="already_subscribed">
<h2><t>Already Subscribed</t></h2>
<p><t>You are already subscribed to <n.page_node.subject/>.</t></p>
</n.exception.>
</n.handle_exception.>
</then>
<else>
<h2><t>Subscription Confirmed</t></h2>
<p><t>From now on, you will receive an email for each message posted under <t.location.page_node.subject/>.</t></p>
</else>
</n.if.has_exception>
</body>
</n.html>
</n.node_page.>
</macro>
<macro name="subscription_saved_url">
<n.remove_spaces.>
<n.page_node.base_url/>
/template/NamlServlet.jtp?macro=subscription_saved&node=<n.page_node.id/>
</n.remove_spaces.>
</macro>
<macro name="subscription_saved" requires="servlet">
<n.node_page.>
<n.subscription_msg
header="[t]Subscription Confirmed[/t]"
message="[t]Your subscription has been successfully saved.[/t]"
/>
</n.node_page.>
</macro>
<macro name="subscription_msg" parameters="header,message">
<n.html>
<head>
<n.title.><n.header/></n.title.>
<n.main_title_css/>
</head>
<body>
<n.visitor.profile_header/>
<div class="shaded-bg-color rounded second-font main-title">
<n.header/>
</div>
<table style="margin-bottom:1em">
<tr valign="top">
<td><img src="/images/success.png" class="image16"/></td>
<td>
<b><n.message/></b>
<p><a href="[n.page_node.url/]"><t>Return to <t.location.page_node.subject/></t></a></p>
</td>
</tr>
</table>
</body>
</n.html>
</macro>
<macro name="main_title_css">
<style type="text/css">
div.main-title {
font-size:120%;
font-weight:bold;
margin:1em 0;
padding: .2em;
}
</style>
</macro>
<macro name="edit_path" requires="subscription">
/template/NamlServlet.jtp?macro=subscribe&node=<n.node.id/>
</macro>