Mercurial Hosting > nabble
view src/nabble/view/naml/adv_search.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 source
<macro name="adv_search_page" requires="servlet"> <n.node_page.> <n.catch_exception. id="set-block"> <n.if.is_submitted_form> <then> <n.redirect_to.page_node.> <n.search_path> <query> <n.compress.> <n.set_message_text_contains_group/> <n.set_message_subject_contains_group/> <n.set_author_name_group/> <n.set_any_message_part_contains_group/> </n.compress.> </query> <days> <n.get_int. default="0" exception="days_field_not_integer"> <n.get_parameter name="days" /> </n.get_int.> </days> </n.search_path> </n.redirect_to.page_node.> </then> </n.if.is_submitted_form> </n.catch_exception.> <n.html> <head> <meta name="robots" content="noindex,nofollow"/> <n.title.><t>Advanced Search</t></n.title.> <style type="text/css"> div.group-header { padding: .2em; margin-top:1em; font-size: 120%; font-weight: bold; } td.form-label { white-space: nowrap; } </style> </head> <body> <n.adv_search_exceptions/> <h1><t>Advanced Search</t></h1> <p><t>Use the options below to precisely specify your search criteria.</t></p> <n.form.> <table class="advanced-search-table"> <n.message_text_contains_group/> <n.message_subject_contains_group/> <n.author_name_group/> <n.any_message_part_contains_group/> <n.message_date_group/> <n.submit_button/> </table> </n.form.> </body> </n.html> </n.node_page.> </macro> <macro name="adv_search_exceptions"> <n.format_error.handle_exception. for="set-block"> <n.exception. name="days_field_not_integer"> <t>Invalid number of days, must be integer.</t> </n.exception.> </n.format_error.handle_exception.> </macro> <macro name="set_message_text_contains_group"> <n.adv_search_and_query name="messageand" field="message" /> <n.adv_search_or_query name="messageor" field="message" /> <n.adv_search_phrase_query name="messagephrase" field="message" /> <n.adv_search_not_query name="messagenot" field="message" /> </macro> <macro name="set_message_subject_contains_group"> <n.adv_search_and_query name="subjectand" field="subject" /> <n.adv_search_or_query name="subjector" field="subject" /> <n.adv_search_phrase_query name="subjectphrase" field="subject" /> <n.adv_search_not_query name="subjectnot" field="subject" /> </macro> <macro name="set_author_name_group"> <n.adv_search_phrase_query name="authorphrase" field="author" /> <n.adv_search_not_phrase_query name="authorphrasenot" field="author" /> </macro> <macro name="set_any_message_part_contains_group"> <n.get_parameter name="alland" /> <n.adv_search_or_query name="allor" /> <n.adv_search_phrase_query name="allphrase" /> <n.adv_search_not_query name="allnot" /> </macro> <macro name="message_text_contains_group"> <tr> <td colspan="2"> <div class="shaded-bg-color rounded second-font group-header"> <t>Message text contains</t> </div> </td> </tr> <tr> <td class="form-label"><t>all of the words:</t></td> <td><n.adv_search_input name="messageand" /></td> </tr> <tr> <td class="form-label"><t>at least one of the words:</t></td> <td><n.adv_search_input name="messageor" /></td> </tr> <tr> <td class="form-label"><t>the exact phrase:</t></td> <td><n.adv_search_input name="messagephrase" /></td> </tr> <tr> <td class="form-label end-group"><t>none of the words:</t></td> <td class="end-group"><n.adv_search_input name="messagenot" /></td> </tr> </macro> <macro name="message_subject_contains_group"> <tr> <td colspan="2"> <div class="shaded-bg-color rounded second-font group-header"> <t>Message subject contains</t> </div> </td> </tr> <tr> <td class="form-label"><t>all of the words:</t></td> <td><n.adv_search_input name="subjectand" /></td> </tr> <tr> <td class="form-label"><t>at least one of the words:</t></td> <td><n.adv_search_input name="subjector" /></td> </tr> <tr> <td class="form-label"><t>the exact phrase:</t></td> <td><n.adv_search_input name="subjectphrase" /></td> </tr> <tr> <td class="form-label end-group"><t>none of the words:</t></td> <td class="end-group"><n.adv_search_input name="subjectnot" /></td> </tr> </macro> <macro name="author_name_group"> <tr> <td colspan="2"> <div class="shaded-bg-color rounded second-font group-header"> <t>Author name</t> </div> </td> </tr> <tr> <td class="form-label"><t>is:</t></td> <td><n.adv_search_input name="authorphrase" /></td> </tr> <tr> <td class="form-label end-group"><t>is not:</t></td> <td class="end-group"><n.adv_search_input name="authorphrasenot" /></td> </tr> </macro> <macro name="any_message_part_contains_group"> <tr> <td colspan="2"> <div class="shaded-bg-color rounded second-font group-header"> <t>Any message part contains</t> </div> </td> </tr> <tr> <td class="form-label"><t>all of the words:</t></td> <td><n.adv_search_input name="alland" /></td> </tr> <tr> <td class="form-label"><t>at least one of the words:</t></td> <td><n.adv_search_input name="allor" /></td> </tr> <tr> <td class="form-label"><t>the exact phrase:</t></td> <td><n.adv_search_input name="allphrase" /></td> </tr> <tr> <td class="form-label end-group"><t>none of the words:</t></td> <td class="end-group"><n.adv_search_input name="allnot" /></td> </tr> </macro> <macro name="message_date_group"> <tr> <td colspan="2"> <div class="shaded-bg-color rounded second-font group-header"> <t>Message date</t> </div> </td> </tr> <tr> <td class="form-label end-group"><t>is within the last:</t></td> <td><input name="days" size="5" value="[n.hide_if. equals='0'][n.hide_null.get_parameter name='days' /][/n.hide_if.]" /> <t>days</t></td> </tr> </macro> <macro name="submit_button"> <tr> <td></td> <td style="padding-top:.5em"> <input type="submit" class="toolbar action-button" value="[t]Search[/t]"/> </td> </tr> </macro> <macro name="adv_search_input" parameters="name"> <input name="[n.name/]" type="text" style="width:370px;" value="[n.hide_null.get_parameter.name/]"/> </macro> <macro name="adv_search_and_query" parameters="name,field"> <n.regex_replace_all. pattern='(".+?"|[^ "]+)' replacement="[n.field/]:$0"><n.get_parameter name="[n.name/]" /></n.regex_replace_all.> </macro> <macro name="remove_double_quotes" dot_parameter="text"> <n.regex_replace_all. pattern='"' replacement=""><n.text/></n.regex_replace_all.> </macro> <macro name="adv_search_phrase_query" parameters="name,field"> <n.set_var. name="value"><n.trim.remove_double_quotes.get_parameter name="[n.name/]" /></n.set_var.> <n.if.not.is_empty.var name="value"> <then> <n.hide_null.append text="[n.field/]" suffix=":" />"<n.var name="value" />" </then> </n.if.not.is_empty.var> </macro> <macro name="adv_search_or_query" parameters="name,field"> <n.set_var. name="value"><n.trim.get_parameter name="[n.name/]" /></n.set_var.> <n.set_var. name="field"><n.hide_null.append text="[n.field/]" suffix=":" /></n.set_var.> <n.if.not.is_empty.var name="value"> <then> <n.regex. pattern='(".+?"|[^ "]+)' text="[n.var name='value'/]"> <n.no_output.next_element/> <n.if.not.has_more_elements> <then> <n.var name="field"/><n.current_element/> </then> <else> <n.var name="field"/>(<n.current_element/> <n.loop.> <n.nop/> OR <n.current_element/> </n.loop.>) </else> </n.if.not.has_more_elements> </n.regex.> </then> </n.if.not.is_empty.var> </macro> <macro name="adv_search_not_query" parameters="name,field"> <n.if.not.is_empty.trim.get_parameter name="[n.name/]"> <then> NOT <n.adv_search_or_query name="[n.name/]" field="[n.field/]" /> </then> </n.if.not.is_empty.trim.get_parameter> </macro> <macro name="adv_search_not_phrase_query" parameters="name,field"> <n.if.not.is_empty.trim.get_parameter name="[n.name/]"> <then> NOT <n.adv_search_phrase_query name="[n.name/]" field="[n.field/]" /> </then> </n.if.not.is_empty.trim.get_parameter> </macro>