view kallithea/templates/compare/compare_cs.html @ 6667:8dd57541a2f7

pullrequests: fix graph re-drawing on 'expand' of changeset description while creating PR Expanding would fail with TypeError: r.render is not a function To fix this, do all the graph drawing in compare_cs.html .
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 11 Jun 2017 15:02:08 +0200
parents 62ac1470b748
children b99cd2bc7540
line wrap: on
line source

## Changesets table !
<div class="container">
  %if not c.cs_ranges:
    <span class="empty_data">${_('No changesets')}</span>
  %else:

    %if c.ancestors:
      <div class="ancestor">
        %if len(c.ancestors) > 1:
        <div style="color:red; font-weight: bold">
          ${_('Criss cross merge situation with multiple merge ancestors detected!')}
        </div>
        <div style="color:red">
          ${_('Please merge the target branch to your branch before creating a pull request.')}
        </div>
        %endif
        <div>
          ${_('Merge Ancestor')}:
          %for ancestor in c.ancestors:
            ${h.link_to(h.short_id(ancestor),h.url('changeset_home',repo_name=c.repo_name,revision=ancestor), class_="changeset_hash")}
          %endfor
        </div>
      </div>
    %endif

    <div id="graph_nodes">
        <canvas id="graph_canvas" style="width:0"></canvas>
    </div>

    <div id="graph_content_pr" style="margin-left: 100px;">

    <table class="table compare_view_commits">
    %for cnt, cs in enumerate(reversed(c.cs_ranges)):
      <tr id="chg_${cnt+1}" class="${'mergerow' if len(cs.parents) > 1 else ''}">
        <td style="width:50px">
          %if cs.raw_id in c.statuses:
            <div title="${_('Changeset status: %s') % c.statuses[cs.raw_id][1]}" class="changeset-status-ico">
                <i class="icon-circle changeset-status-${c.statuses[cs.raw_id][0]}"></i>
            </div>
          %endif
          %if c.cs_comments.get(cs.raw_id):
              <div class="comments-container">
                  <div class="comments-cnt" title="${_('Changeset has comments')}">
                      <a href="${c.cs_comments[cs.raw_id][0].url()}">
                          ${len(c.cs_comments[cs.raw_id])}
                          <i class="icon-comment"></i>
                      </a>
                  </div>
              </div>
          %endif
        </td>
        <td class="changeset-logical-index">
          <%
              num_cs = len(c.cs_ranges)
              index = num_cs - cnt
              if index == 1:
                  title = _('First (oldest) changeset in this list')
              elif index == num_cs:
                  title = _('Last (most recent) changeset in this list')
              else:
                  title = _('Position in this list of changesets')
          %>
          <span data-toggle="tooltip" title="${title}">
            ${index}
          </span>
        </td>
        <td style="width: 140px"><span data-toggle="tooltip" title="${h.age(cs.date)}">${cs.date}</span></td>
        %if c.visual.use_gravatar:
        <td>${h.gravatar_div(h.email_or_none(cs.author), size=14)}</td>
        %endif
        <td><div class="author">${h.person(cs.author)}</div></td>
        <td>${h.link_to(h.show_id(cs),h.url('changeset_home',repo_name=c.cs_repo.repo_name,revision=cs.raw_id), class_='changeset_hash')}</td>
        <td>
        %if cs.branch:
        <span class="branchtag">${h.link_to(cs.branch,h.url('changelog_home',repo_name=c.cs_repo.repo_name,branch=cs.branch))}</span>
        %endif
        </td>
        <td class="expand_commit" data-commit_id="${cs.raw_id}" title="${_('Expand commit message')}">
            <i class="icon-align-left" style="color:#999"></i>
        </td>
        <td>
            <div class="pull-right" style="margin-top: -4px;">
                %for tag in cs.tags:
                    <span class="tagtag" title="${_('Tag %s') % tag}">
                        ${h.link_to(tag,h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}
                    </span>
                %endfor
            </div>
            <div id="C-${cs.raw_id}" class="message">${h.urlify_text(cs.message, c.repo_name)}</div>
        </td>
      </tr>
    %endfor
    </table>

    </div>

    %if c.is_ajax_preview:
      <h5>
      ## links should perhaps use ('rev', c.a_rev) instead ...
      ${h.link_to(_('Show merge diff'),
        h.url('compare_url',
          repo_name=c.a_repo.repo_name,
          org_ref_type=c.a_ref_type, org_ref_name=c.a_ref_name,
          other_repo=c.cs_repo.repo_name,
          other_ref_type=c.cs_ref_type, other_ref_name=c.cs_ref_name,
          merge='1')
        )}
      </h5>
    %endif
    %if c.cs_ranges_org is not None:
      ## TODO: list actual changesets?
      <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">
        ${h.link_to_ref(c.cs_repo.repo_name, c.cs_ref_type, c.cs_ref_name, c.cs_rev)}
        ${_('is')}
        <a href="${c.swap_url}">${_('%s changesets') % (len(c.cs_ranges_org))}</a>
        ${_('behind')}
        ${h.link_to_ref(c.a_repo.repo_name, c.a_ref_type, c.a_ref_name)}
      </div>
    %endif
  %endif
</div>

%if c.is_ajax_preview:
<div id="jsdata" style="display:none">${h.js(c.jsdata)}</div>
%else:
<script type="text/javascript" src="${h.url('/js/graph.js', ver=c.kallithea_version)}"></script>
%endif

<script type="text/javascript">

    $(document).ready(function(){
        var jsdata = ${h.js(c.jsdata)};
        var r = new BranchRenderer('graph_canvas', 'graph_content_pr', 'chg_');
        r.render(jsdata);

        $('.expand_commit').click(function(e){
            var cid = $(this).data('commit_id');
            $('#C-'+cid).toggleClass('expanded');
            r.render(jsdata);
        });

        $('.gravatar').click(function(e){
            var cid = $(this).data('commit_id');
            $('#row-'+cid).toggleClass('hl', !$('#row-'+cid).hasClass('hl'));
        });
    });

</script>