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>
                                                                        &mdash;
                                                                        <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>