view kallithea/templates/files/files_source.html @ 6671:5e3adb20839d

style: replace code-body etc with Bootstrap-ish panel and panel-heading, using panel-default for headers and tweak them grey Based on work by Dominik Ruf.
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 11 Jun 2017 15:02:09 +0200
parents 33b71a130b16
children 88ce09daea37
line wrap: on
line source

<div id="node_history" class="clearfix" style="padding: 0px 0px 10px 0px">
    <div class="pull-left">
        ${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
        ${h.hidden('diff2',c.changeset.raw_id)}
        ${h.hidden('diff1')}
        ${h.submit('diff',_('Diff to Revision'),class_="btn btn-default btn-sm")}
        ${h.submit('show_rev',_('Show at Revision'),class_="btn btn-default btn-sm")}
        ${h.hidden('annotate', c.annotate)}
        ${h.link_to(_('Show Full History'),h.url('changelog_file_home',repo_name=c.repo_name, revision=c.changeset.raw_id, f_path=c.f_path),class_="btn btn-default btn-sm")}
        ${h.link_to(_('Show Authors'),'#',class_="btn btn-default btn-sm" ,id="show_authors")}
        ${h.end_form()}
    </div>
    <div id="file_authors" class="file_author" style="clear:both; display: none"></div>
</div>

<div id="body" class="panel panel-default">
    <div class="panel-heading clearfix">
        <div class="pull-left">
            <div class="pull-left img"><i class="icon-doc-inv"></i></div>
            <div class="pull-left"><pre data-toggle="tooltip" title="${h.fmt_date(c.changeset.date)}">${h.link_to(h.show_id(c.changeset),h.url('changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</pre></div>
            <div class="pull-left"><pre>${h.format_byte_size(c.file.size,binary=True)}</pre></div>
            <div class="pull-left"><pre>${c.file.mimetype}</pre></div>
        </div>
        <div class="pull-right buttons">
              %if c.annotate:
                ${h.link_to(_('Show Source'),    h.url('files_home',         repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="btn btn-default btn-xs")}
              %else:
                ${h.link_to(_('Show Annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="btn btn-default btn-xs")}
              %endif
              ${h.link_to(_('Show as Raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="btn btn-default btn-xs")}
              ${h.link_to(_('Download as Raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path),class_="btn btn-default btn-xs")}
              %if h.HasRepoPermissionLevel('write')(c.repo_name):
               %if c.on_branch_head and not c.file.is_binary:
                ${h.link_to(_('Edit on Branch: %s') % c.changeset.branch, h.url('files_edit_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path, anchor='edit'),class_="btn btn-default btn-xs")}
                ${h.link_to(_('Delete'), h.url('files_delete_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path, anchor='edit'),class_="btn btn-danger btn-xs")}
               %elif c.on_branch_head and c.file.is_binary:
                ${h.link_to(_('Edit'), '#', class_="btn btn-default btn-xs disabled", title=_('Editing binary files not allowed'),**{'data-toggle':'tooltip'})}
                ${h.link_to(_('Delete'), h.url('files_delete_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path, anchor='edit'),class_="btn btn-danger btn-xs")}
               %else:
                ${h.link_to(_('Edit'), '#', class_="btn btn-default btn-xs disabled", title=_('Editing files allowed only when on branch head revision'),**{'data-toggle':'tooltip'})}
                ${h.link_to(_('Delete'), '#', class_="btn btn-danger btn-xs disabled", title=_('Deleting files allowed only when on branch head revision'),**{'data-toggle':'tooltip'})}
               %endif
              %endif
        </div>
    </div>
    <div class="panel-body">
      <div class="author">
            ${h.gravatar_div(h.email_or_none(c.changeset.author), size=16)}
            <div title="${c.changeset.author}" class="user">${h.person(c.changeset.author)}</div>
      </div>
      <div class="commit">${h.urlify_text(c.changeset.message,c.repo_name)}</div>
    </div>
    <div class="panel-body no-padding">
      %if c.file.is_browser_compatible_image():
        <img src="${h.url('files_raw_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path)}" class="img-preview"/>
      %elif c.file.is_binary:
        <div>
          ${_('Binary file (%s)') % c.file.mimetype}
        </div>
      %else:
        %if c.file.size < c.cut_off_limit or c.fulldiff:
            %if c.annotate:
              ${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
            %else:
              ${h.pygmentize(c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
            %endif
        %else:
          <h4>
            ${_('File is too big to display.')}
            %if c.annotate:
              ${h.link_to(_('Show full annotation anyway.'), h.url.current(fulldiff=1, **request.GET.mixed()))}
            %else:
              ${h.link_to(_('Show as raw.'), h.url('files_raw_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path))}
            %endif
          </h4>
        %endif
      %endif
    </div>
</div>

<script>
    $(document).ready(function(){
        // fake html5 history state
        var _State = {
           url: ${h.js(h.url.current())},
           data: {
             node_list_url: node_list_url.replace('__REV__',${h.js(c.changeset.raw_id)}).replace('__FPATH__', ${h.js(h.safe_unicode(c.file.path))}),
             url_base: url_base.replace('__REV__',${h.js(c.changeset.raw_id)}),
             rev:${h.js(c.changeset.raw_id)},
             f_path: ${h.js(h.safe_unicode(c.file.path))}
           }
        }
        callbacks(_State); // defined in files.html, main callbacks. Triggered in pjax calls
    });
</script>