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
 
@@ -25,16 +25,15 @@
 
                '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 → __E': "${h.literal(_('Show Selected Changesets __S → __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} → {1}': "${h.literal(_('Open New Pull Request for {0} → {1}'))}",
 
                'Show Selected Changesets {0} → {1}': "${h.literal(_('Show Selected Changesets {0} → {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')}",
kallithea/templates/changelog/changelog.html
Show inline comments
 
@@ -35,24 +35,24 @@ ${self.repo_context_bar('changelog', c.f
 
    <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:
 
@@ -168,55 +168,50 @@ ${self.repo_context_bar('changelog', c.f
 
                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);
0 comments (0 inline, 0 general)