Mercurial Hosting > nabble
diff src/nabble/view/naml/use_google_analytics.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/use_google_analytics.naml Thu Mar 21 19:15:52 2019 -0600 @@ -0,0 +1,107 @@ +<macro name="use_google_analytics" requires="servlet"> + <n.if.not.visitor.is_site_admin> + <then> + <n.login.><t>Only authorized users can proceed in this area.</t></n.login.> + </then> + </n.if.not.visitor.is_site_admin> + + <n.if.is_submitted_form> + <then> + <n.catch_exception. id="save-block"> + <n.if.is_valid_analytics_id.google_analytics_code_field.value> + <then> + <n.save_google_analytics_tweak/> + <n.redirect_to.root_node.url/> + </then> + <else.throw_template_exception name="invalid_analytics_id"/> + </n.if.is_valid_analytics_id.google_analytics_code_field.value> + </n.catch_exception.> + </then> + <else> + <n.google_analytics_code_field.set_value value="[n.naml_configuration.get_value name='googleAnalyticsId' default=''/]"/> + </else> + </n.if.is_submitted_form> + + <n.html> + <head> + <meta name="robots" content="noindex,nofollow"/> + <n.title.><t>Use Google Analytics</t></n.title.> + <n.google_analytics_code_field.focus/> + </head> + <body> + <n.edit_header first_text="[n.root_node.subject/]" second_text="[t]Use Google Analytics[/t]" /> + + <n.if.both condition1="[n.is_submitted_form/]" condition2="[n.has_exception for='save-block'/]"> + <then> + <n.format_error.handle_exception. for="save-block"> + <n.exception. name="invalid_analytics_id"> + <t>Enter a valid analytics account ID.</t> + </n.exception.> + </n.format_error.handle_exception.> + </then> + </n.if.both> + + <div style="margin:1.5em 0"> + <t>Here you can use Google Analytics to measure the success of your app.</t> + <t>Enter below your analytics account ID and you will be able to track visits, visitors and other important statistics about your web traffic.</t> + </div> + + <n.form.> + <t>Analytics Account ID:</t> + <n.google_analytics_code_field.input type="text" size="20" maxlength="20"/> + <t>(e.g., UA-12345-0)</t> + <div style="margin-top:1.5em"> + <input type="submit" class="toolbar action-button" value="[t]Save Changes[/t]" /> + <t>or</t> <a href="[n.root_node.url/]"><t>Cancel</t></a> + </div> + </n.form.> + </body> + </n.html> +</macro> + +<macro name="is_valid_analytics_id" dot_parameter="code"> + <n.either> + <condition1.is_empty.code/> + <condition2.regex_matches text="[n.code/]" pattern="UA-\d+-\d+"/> + </n.either> +</macro> + +<macro name="save_google_analytics_tweak"> + <n.naml_configuration.> + <n.set> + <name>googleAnalyticsId</name> + <value><n.google_analytics_code_field.value/></value> + <default></default> + <naml> + <![CDATA[ + <override_macro name="js_google_analytics"> + <n.overridden/> + <script> + ga('create', ']]><n.google_analytics_code_field.value/><![CDATA[', 'auto'); + ga('send', 'pageview'); + </script> + </override_macro> + ]]> + </naml> + </n.set> + <n.apply/> + </n.naml_configuration.> +</macro> + +<macro name="google_analytics_code_field" dot_parameter="do"> + <n.field. name="google_analytics_code"><n.do/></n.field.> +</macro> + +<macro name="use_google_analytics_path"> + <n.encode_url.> + /template/NamlServlet.jtp?macro=use_google_analytics + </n.encode_url.> +</macro> + +<macro name="use_google_analytics_link" dot_parameter="text" parameters="title, class"> + <a href="[n.use_google_analytics_path/]" class="[n.class/]" rel="nofollow" title="[n.title/]"><n.default. to="[t]Use Google Analytics[/t]"><n.text/></n.default.></a> +</macro> + +<macro name="google_analytics_configurations"> + googleAnalyticsId +</macro>