Changeset - 322e17eb356a
[Not reviewed]
default
0 2 0
Mads Kiilerich - 10 years ago 2015-08-26 17:28:59
madski@unity3d.com
changelog: rework changeset selection and button behaviour

This is a refactoring / rework of messy code to be simpler and work correctly.

As a result, it gives slightly different behaviour in some cases and different
button labels.

It also allows creating PRs after selecting two changesets. That is currently
pointless but will make sense soon.
2 files changed with 28 insertions and 34 deletions:
0 comments (0 inline, 0 general)
kallithea/templates/base/root.html
Show inline comments
 
@@ -19,28 +19,27 @@
 
        <script type="text/javascript">
 
            ## JS translations map
 
            var TRANSLATION_MAP = {
 
                'Add Another Comment':'${_("Add Another Comment")}',
 
                'Stop following this repository':"${_('Stop following this repository')}",
 
                'Start following this repository':"${_('Start following this repository')}",
 
                'Group':"${_('Group')}",
 
                'members':"${_('members')}",
 
                'Loading ...':"${_('Loading ...')}",
 
                'loading ...':"${_('loading ...')}",
 
                'Search truncated': "${_('Search truncated')}",
 
                'No matching files': "${_('No matching files')}",
 
                'Open New Pull Request': "${_('Open New Pull Request')}",
 
                'Open New Pull Request for Selected Changesets':  "${_('Open New Pull Request for Selected Changesets')}",
 
                'Show Selected Changesets __S &rarr; __E': "${h.literal(_('Show Selected Changesets __S &rarr; __E'))}",
 
                'Show Selected Changeset __S': "${_('Show Selected Changeset __S')}",
 
                'Open New Pull Request from {0}': "${_('Open New Pull Request from {0}')}",
 
                'Open New Pull Request for {0} &rarr; {1}': "${h.literal(_('Open New Pull Request for {0} &rarr; {1}'))}",
 
                'Show Selected Changesets {0} &rarr; {1}': "${h.literal(_('Show Selected Changesets {0} &rarr; {1}'))}",
 
                'Selection Link': "${_('Selection Link')}",
 
                'Collapse Diff': "${_('Collapse Diff')}",
 
                'Expand Diff': "${_('Expand Diff')}",
 
                'Failed to revoke permission': "${_('Failed to revoke permission')}",
 
                'Confirm to revoke permission for {0}: {1} ?': "${_('Confirm to revoke permission for {0}: {1} ?')}",
 
                'enabled': "${_('enabled')}",
 
                'disabled': "${_('disabled')}",
 
                'Select changeset': "${_('Select changeset')}",
 
                'Specify changeset': "${_('Specify changeset')}",
 
                'MSG_SORTASC': "${_('Click to sort ascending')}",
 
                'MSG_SORTDESC': "${_('Click to sort descending')}",
 
                'MSG_EMPTY': "${_('No records found.')}",
kallithea/templates/changelog/changelog.html
Show inline comments
 
@@ -29,36 +29,36 @@
 
${self.repo_context_bar('changelog', c.first_revision.raw_id if c.first_revision else None)}
 
<div class="box">
 
    <!-- box / title -->
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
    </div>
 
    <div class="table">
 
        % if c.pagination:
 
            <div>
 
                <div style="overflow:auto; ${'display:none' if c.changelog_for_path else ''}">
 
                    <div class="container_header">
 
                        <div style="float:left; margin-left:20px;">
 
                        ${h.form(h.url.current(),method='get')}
 
                          ${h.form(h.url.current(),method='get',style="display:inline")}
 
                            ${h.submit('set',_('Show'),class_="btn btn-small")}
 
                            ${h.text('size',size=3,value=c.size)}
 
                            ${_('revisions')}
 
                            %if c.branch_name:
 
                            ${h.hidden('branch', c.branch_name)}
 
                            %endif
 
                        ${h.end_form()}
 
                          ${h.end_form()}
 
                          <a href="#" class="btn btn-small" id="rev_range_clear" style="display:none">${_('Clear selection')}</a>
 
                        </div>
 
                        <div style="float: right; margin: 0px 0px 0px 4px">
 
                            <a href="#" class="btn btn-small" id="rev_range_container" style="display:none"></a>
 
                            <a href="#" class="btn btn-small" id="rev_range_clear" style="display:none">${_('Clear selection')}</a>
 
                            %if c.revision:
 
                                <a class="btn btn-small" href="${h.url('changelog_home', repo_name=c.repo_name)}">
 
                                    ${_('Go to tip of repository')}
 
                                </a>
 
                            %endif
 
                            %if c.db_repo.fork:
 
                                <a id="compare_fork"
 
                                   title="${_('Compare fork with %s' % c.db_repo.fork.repo_name)}"
 
                                   href="${h.url('compare_url',repo_name=c.db_repo.fork.repo_name,org_ref_type=c.db_repo.landing_rev[0],org_ref_name=c.db_repo.landing_rev[1],other_repo=c.repo_name,other_ref_type='branch' if request.GET.get('branch') else c.db_repo.landing_rev[0],other_ref_name=request.GET.get('branch') or c.db_repo.landing_rev[1], merge=1)}"
 
                                   class="btn btn-small"><i class="icon-git-compare"></i> ${_('Compare fork with parent repository (%s)' % c.db_repo.fork.repo_name)}</a>
 
                            %endif
 
                            ## text and href of open_new_pr is controlled from javascript
 
@@ -162,67 +162,62 @@ ${self.repo_context_bar('changelog', c.f
 
            </div>
 
        </div>
 

	
 
        <script type="text/javascript" src="${h.url('/js/graph.js', ver=c.kallithea_version)}"></script>
 
        <script type="text/javascript">
 
            $(document).ready(function(){
 
                var $checkboxes = $('.changeset_range');
 

	
 
                pyroutes.register('changeset_home', "${h.url('changeset_home', repo_name='%(repo_name)s', revision='%(revision)s')}", ['repo_name', 'revision']);
 

	
 
                var checkbox_checker = function(e) {
 
                    var $checked_checkboxes = $checkboxes.filter(':checked');
 
                    if ($checked_checkboxes.length > 1) {
 
                        $('#open_new_pr').hide();
 
                    } else {
 
                        $('#open_new_pr').show();
 
                        if($checked_checkboxes.length > 0) {
 
                            $('#open_new_pr').html(_TM['Open New Pull Request for Selected Changesets']);
 
                    if ($checked_checkboxes.length > 0) {
 
                        var rev_end = $checked_checkboxes.first().prop('name').substr(0, 12);
 
                        var rev_start = $checked_checkboxes.last().prop('name').substr(0, 12);
 
                        if (rev_start == rev_end) {
 
                            $('#rev_range_container').hide();
 
                            $('#open_new_pr').prop('href', pyroutes.url('pullrequest_home',
 
                                                                        {'repo_name': '${c.repo_name}',
 
                                                                         'rev_end': rev_end}));
 
                            $('#open_new_pr').html(_TM['Open New Pull Request from {0}'].format(rev_end));
 
                        } else {
 
                            $('#open_new_pr').html(_TM['Open New Pull Request']);
 
                            $('#rev_range_container').prop('href',
 
                                pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}',
 
                                                                'revision': rev_start + '...' + rev_end}));
 
                            $('#rev_range_container').html(
 
                                 _TM['Show Selected Changesets {0} &rarr; {1}'].format(rev_start, rev_end));
 
                            $('#rev_range_container').show();
 
                            $('#open_new_pr').prop('href', pyroutes.url('pullrequest_home',
 
                                                                        {'repo_name': '${c.repo_name}',
 
                                                                         'rev_start': rev_start,
 
                                                                         'rev_end': rev_end}));
 
                            $('#open_new_pr').html(_TM['Open New Pull Request for {0} &rarr; {1}'].format(rev_start, rev_end));
 
                        }
 
                    }
 

	
 
                    if ($checked_checkboxes.length > 0) {
 
                        var rev_end = $checked_checkboxes.first().prop('name');
 
                        var rev_start = $checked_checkboxes.last().prop('name');
 
                        $('#rev_range_container').prop('href',
 
                            pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}',
 
                                                            'revision': rev_start+'...'+rev_end}));
 
                        $('#rev_range_container').html(
 
                            ((rev_start == rev_end)
 
                             ? _TM['Show Selected Changeset __S']
 
                             : _TM['Show Selected Changesets __S &rarr; __E'])
 
                            .replace('__S',rev_start.substr(0,6))
 
                            .replace('__E',rev_end.substr(0,6)));
 
                        $('#rev_range_container').show();
 
                        $('#rev_range_clear').show();
 

	
 
                        $('#open_new_pr').prop('href', pyroutes.url('pullrequest_home',
 
                                                                    {'repo_name': '${c.repo_name}',
 
                                                                     'rev_start': rev_start,
 
                                                                     'rev_end': rev_end}));
 

	
 
                        $('#compare_fork').hide();
 
                    } else {
 
                        $('#rev_range_container').hide();
 
                        $('#rev_range_clear').hide();
 
                        %if c.revision:
 
                            $('#open_new_pr').prop('href', pyroutes.url('pullrequest_home',
 
                                                                        {'repo_name': '${c.repo_name}',
 
                                                                         'rev_end':'${c.first_revision.raw_id}'}));
 
                            $('#open_new_pr').html(_TM['Open New Pull Request from {0}'].format(c.revision));
 
                        %else:
 
                            $('#open_new_pr').prop('href', pyroutes.url('pullrequest_home',
 
                                                                        {'repo_name': '${c.repo_name}',
 
                                                                        'branch':'${c.first_revision.branch}'}));
 
                            $('#open_new_pr').html(_TM['Open New Pull Request from {0}'].format('${c.first_revision.branch}'));
 
                        %endif
 
                        $('#compare_fork').show();
 
                    }
 
                };
 
                checkbox_checker();
 
                $checkboxes.click(checkbox_checker);
 

	
 
                $('#rev_range_clear').click(function(e){
 
                    $checkboxes.prop('checked', false);
 
                    checkbox_checker();
 
                });
 

	
0 comments (0 inline, 0 general)