searcher.naml
<namespace name="searcher_tool"/>
<macro name="searcher" requires="servlet">
<n.searcher_tool.>
<n.if.not.visitor.is_sysadmin>
<then>
<n.login.><t>Only authorized users can
proceed in this area.</t></n.login.>
</then>
</n.if.not.visitor.is_sysadmin>
<n.if.both condition1="[n.is_submitted_form/]"
condition2="[n.not.is_null.get_parameter name='results'/]">
<then>
<n.get_parameter_values. name="results">
<n.if.has_more_strings>
<then>
<n.loop.>
<n.if.is_valid_node
node_id="[n.current_parameter_value/]">
<then>
<n.get_node_from_id.
node_id="[n.current_parameter_value/]">
<n.log.>Deleted
<n.id/></n.log.>
<n.delete_recursively/>
</n.get_node_from_id.>
</then>
</n.if.is_valid_node>
</n.loop.>
<n.redirect_to.get_parameter
name='url'/>
</then>
</n.if.has_more_strings>
</n.get_parameter_values.>
</then>
</n.if.both>
<n.define_search_query_field/>
<n.node_page.search_namespace.>
<n.set_var name='didSearch' value="false" />
<n.catch_exception. id="search-block">
<n.do_search_using_params />
<n.set_var name='didSearch' value="true" />
</n.catch_exception.>
<n.html>
<head>
<meta name="robots"
content="noindex,nofollow"/>
<n.search_page_title/>
<n.set_cookies did_search="[n.var
name='didSearch'/]" />
<n.search_page_style/>
<script type="text/javascript">
function countChecked() {
var authors = $("input.remove_author:checked" );
var n = authors.length;
console.log( n + (n === 1 ? " is" : " are") + " checked!" );
var names = " NOT author:(";
authors.each(function() {
names += "\""+$( this ).val()+"\" OR ";
});
names += ")"
console.log(names);
};
$(document).ready(function() {
$('div.clickable').each(function() {
var $this = $(this);
var $checkbox = $this.prev
().children().eq(0);
$this.click(function() {
var checked = $checkbox.attr
('checked');
if (checked) {
$this.removeClass('info-message');
$checkbox.removeAttr('checked');
} else {
$this.addClass('info-message');
$checkbox.attr('checked', true);
}
});
});
var results = $('.result');
console.log(results.length);
$("#results_shown").html("Results shown: "+results.length);
});
function selectAll() {
$('input[type=checkbox]').attr
('checked', true).parent().next().addClass('info-message');;
};
</script>
</head>
<body>
<n.show_search_form/>
<n.show_search_error/>
<div class="search-results-header">
<n.if.has_resort>
<then.sort_controls/>
</n.if.has_resort>
<img src="/images/search.png" class="image16"/>
Found <n.total_posts/>
<n.search_description/>
</div>
<br/>
<span id="results_shown"></span>
<br/>
<button onclick="selectAll()">Select all</button>
<n.form.>
<n.results.loop.current_node.>
<n.int. i="[n.topic_node.replies/]">
User's Posts: <n.owner.node_count/>
<div style="margin-bottom:1.5em" class="result">
<div style="margin-bottom:.2em">
<input type="checkbox" name="results" value="[n.id/]"/>
<n.search_result_topic_subject/>
<n.search_result_post_subject/>
</div>
<div class="clickable">
<div style="margin-bottom:.2em">
<n.search_result_message_fragment/>
</div>
<div class="weak-color" style="font-size:80%">
<n.search_result_in_app/>
<n.search_result_on_date/>
<n.if.not.is_author_search>
<then>
by
<n.owner.user_link/>
User's Posts: <n.owner.node_count/>
</then>
</n.if.not.is_author_search>
—
<n.topic_node.replies/> replies in thread
id: <n.owner.id/>
</div>
</div>
<n.comment.>
remove author : <input onclick="countChecked();" class="remove_author" type="checkbox" name="authors" value="[n.owner.name/]"/>
</n.comment.>
</div>
</n.int.>
</n.results.loop.current_node.>
<input type="submit" value="Delete Posts Recursively"/>
<input type="hidden" name="url" value="[n.current_url/]"/>
</n.form.>
<n.search_pagination/>
<n.if.not.lucene_is_ready>
<then.index_rebuilt_notice/>
</n.if.not.lucene_is_ready>
</body>
</n.html>
</n.node_page.search_namespace.>
</n.searcher_tool.>
</macro>
<macro name="search_path"
parameters="query,author,starrer,days,index_record,sort"
requires="node, searcher_tool">
<n.encode_url.remove_spaces.>
/template/NamlServlet.jtp?macro=searcher&node=<n.id/>
<n.add_to_path name="query" value="[n.query/]" />
<n.add_to_path name="author" value="[n.author/]" />
<n.add_to_path name="starrer" value="[n.starrer/]" />
<n.add_to_path name="days" value="[n.days/]" />
<n.add_to_path name="i" value="[n.index_record/]"
default_value="0" />
<n.add_to_path name="sort" value="[n.sort/]"
default_value="relevance" />
</n.encode_url.remove_spaces.>
</macro>
<macro name="search_form" dot_parameter="do"
parameters="style,query,author,starrer,days" requires="node,
searcher_tool">
<form style="[n.style/]"
action="/template/NamlServlet.jtp">
<input type="hidden" name="macro" value="searcher" />
<input type="hidden" name="node" value="[n.id/]" />
<n.hidden_field name="query" value="[n.query/]" />
<n.hidden_field name="author" value="[n.author/]" />
<n.hidden_field name="starrer" value="[n.starrer/]"
/>
<n.hidden_field name="days" value="[n.days/]" />
<n.do/>
</form>
</macro>
<macro name="search_page_length" requires="searcher_tool">
500
</macro>
<macro name="search_result_message_fragment"
requires="node,search,searcher_tool">
<n.highlight.hide_emails.fragment. size="600">
<n.message.as_text/>
</n.highlight.hide_emails.fragment.>
</macro>