view src/nabble/view/naml/subscribe.naml @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children 72765b66e2c3
line wrap: on
line source

<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>

		<n.show_mailing_list_alert/>

		<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="show_mailing_list_alert" requires="node_page">
	<n.if>
		<condition>
			<n.either>
				<condition1.page_node.is_associated_with_mailing_list_archive/>
				<condition2.page_node.has_sub_archive/>
			</n.either>
		</condition>
		<then>
			<div class="info-message rounded" style="padding:.5em;margin-top:1em">
				<t><b>IMPORTANT:</b> This subscription is independent of the real mailing list subscription.
				Basically, you will subscribe to the forum archive, not to the mailing list itself.
				The archive subscription won't guarantee that your messages will be accepted by mailing list.</t>
				<n.if.page_node.is_a_mailing_list_archive>
					<then>
						<n.page_node.get_associated_mailing_list_archive.>
						<t>If you want to subscribe to the mailing list instead,
						<n.mailing_list_options_link.>visit this page</n.mailing_list_options_link.>.</t>
						</n.page_node.get_associated_mailing_list_archive.>
					</then>
				</n.if.page_node.is_a_mailing_list_archive>
			</div>
		</then>
	</n.if>
</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
				and you can reply to them to participate in the discussion. Your subscription works the same
				as a mailing list.</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
				and you can reply to them to participate in the discussion. Your subscription works the same
				as a mailing list.</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>