view kallithea/templates/files/files_browser.html @ 8251:fb9550946c26

js: use strict ... and fix the problems it points out "use strict" gives stricter checks, both statically and at runtime. The strictness tightens up the code and prevents some kinds of problems. The <script> tag addition might not be pretty, but has consistently been added with: sed -i 's,<script>$,&'"'"'use strict'"'"';,g' `hg loc '*.html'`
author Mads Kiilerich <mads@kiilerich.com>
date Mon, 17 Feb 2020 17:49:45 +0100
parents e35373106528
children 19d93bd709bf
line wrap: on
line source

<%namespace name="base" file="/base/base.html"/>

<%def name="file_class(node)">
    %if node.is_file():
        <%return "browser-file" %>
    %elif node.is_submodule():
        <%return "submodule-dir"%>
    %else:
        <%return "browser-dir"%>
    %endif
</%def>
<%def name="file_url(node, c)">
    %if node.is_submodule():
        <%return node.url or '#'%>
    %else:
        <%return h.url('files_home', repo_name=c.repo_name, revision=c.changeset.raw_id, f_path=node.path)%>
    %endif
</%def>
<%def name="_file_name(iconclass, name)">
    <%return h.literal('<i class="%s"></i><span>%s</span>') % (iconclass, name)%>
</%def>
<%def name="file_name(node)">
    <%
        c = "icon-folder-open"
        if node.is_file():
            c = "icon-doc"
        elif node.is_submodule():
            c = "icon-file-submodule"
    %>
    <%return _file_name(c, node.name)%>
</%def>
<div id="body" class="panel panel-default">
    <div class="panel-heading clearfix">
        ${base.parent_child_navigation()}
    </div>

    <div class="panel-body">
        ${h.form(h.url.current())}
        <div id="search_activate_id" class="search_activate">
            <a class="btn btn-default btn-xs" id="filter_activate" href="#">${_('Search File List')}</a>
        </div>
        ${h.end_form()}
        <div class="browser-search form-inline">
            <div>
                <div id="node_filter_box_loading" style="display:none">${_('Loading file list...')}</div>
                <div id="node_filter_box" style="display:none">
                ${h.files_breadcrumbs(c.repo_name,c.changeset.raw_id,c.file.path)}/<input class="init" type="text" value="type to search..." name="filter" size="25" id="node_filter">
                </div>
            </div>
        </div>
        <table class="table code-browser">
            <thead>
                <tr>
                    <th>${_('Name')}</th>
                    <th>${_('Size')}</th>
                    <th>${_('Last Revision')}</th>
                    <th>${_('Last Modified')}</th>
                    <th>${_('Last Committer')}</th>
                </tr>
            </thead>

            <tbody id="tbody">
                %if c.file.parent:
                <tr class="parity0">
                    <td>
                        ${h.link_to(_file_name('icon-folder-open', '..'),h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.file.parent.path),class_="browser-dir ypjax-link")}
                    </td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
                %endif

            %for cnt,node in enumerate(c.file):
                <tr class="parity${cnt%2}">
                     <td>
                         ${h.link_to(file_name(node),file_url(node,c),class_=file_class(node)+(" ypjax-link" if not node.is_submodule() else ""), target_="_blank" if node.is_submodule() else None)}
                     </td>
                     <td>
                     %if node.is_file():
                         ${h.format_byte_size(node.size,binary=True)}
                     %endif
                     </td>
                     <td>
                         %if node.is_file():
                             <a data-toggle="tooltip" title="${node.last_changeset.message}" href="${h.url('changeset_home',repo_name=c.repo_name,revision=node.last_changeset.raw_id)}" class="changeset_hash">${h.show_id(node.last_changeset)}</a>
                         %endif
                     </td>
                     <td>
                         %if node.is_file():
                             <span data-toggle="tooltip" title="${h.fmt_date(node.last_changeset.date)}">
                            ${h.age(node.last_changeset.date)}</span>
                         %endif
                     </td>
                     <td>
                         %if node.is_file():
                             <span title="${node.last_changeset.author}">
                            ${h.person(node.last_changeset.author)}
                            </span>
                         %endif
                     </td>
                </tr>
            %endfor
            </tbody>
            <tbody id="tbody_filtered" style="display:none">
            </tbody>
        </table>
    </div>
</div>

<script>'use strict';
    $(document).ready(function(){
        // init node filter if we pass GET param ?search=1
        var search_GET = ${h.js(request.GET.get('search',''))};
        if(search_GET == "1"){
            $("#filter_activate").click();
        }
    });
</script>