changeset 5445:322e17eb356a

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.
author Mads Kiilerich <madski@unity3d.com>
date Wed, 26 Aug 2015 17:28:59 +0200
parents 8c5d1e94f9ee
children a4b814804263
files kallithea/templates/base/root.html kallithea/templates/changelog/changelog.html
diffstat 2 files changed, 28 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/templates/base/root.html	Wed Aug 26 17:28:59 2015 +0200
+++ b/kallithea/templates/base/root.html	Wed Aug 26 17:28:59 2015 +0200
@@ -28,10 +28,9 @@
                 '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')}",
--- a/kallithea/templates/changelog/changelog.html	Wed Aug 26 17:28:59 2015 +0200
+++ b/kallithea/templates/changelog/changelog.html	Wed Aug 26 17:28:59 2015 +0200
@@ -38,18 +38,18 @@
                 <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')}
@@ -171,37 +171,30 @@
 
                 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();
@@ -210,10 +203,12 @@
                             $('#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();
                     }