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>