On Tue, Apr 14, 2015 at 6:03 PM, Jan Heylen <heyl...@gmail.com> wrote:
> # HG changeset patch
> # User Jan Heylen <heyl...@gmail.com>
> # Date 1428986395 -7200
> #      Tue Apr 14 06:39:55 2015 +0200
> # Node ID b1b3c859230ce5997f7820788dd331748e277525
> # Parent  48a64173a2187e3ea2822df54b3d0096176e76e3
> frontend: change comment workflow
>
> This changes the workflow from one-comment-at-a-time to 
> giving-draft-comments-and-a-final-judgement.
> Only after the final judgement, the drafts are changed into comments and an 
> email notification is send.
> The internal notification model is untouched.
>
> diff -r 48a64173a218 -r b1b3c859230c kallithea/config/routing.py
> --- a/kallithea/config/routing.py       Sat Mar 28 08:12:49 2015 +0100
> +++ b/kallithea/config/routing.py       Tue Apr 14 06:39:55 2015 +0200
> @@ -662,6 +662,16 @@
>                  controller='changeset', action='preview_comment',
>                  conditions=dict(function=check_repo, method=["POST"]))
>
> +    rmap.connect('changeset_comment_draft',
> +                 '/{repo_name:.*?}/changeset-comment-draft/{revision}',
> +                controller='changeset', revision='tip', action='draft',
> +                conditions=dict(function=check_repo, method=["POST"]))
> +
> +    rmap.connect('pullrequest_comment_draft',
> +                 
> '/{repo_name:.*?}/pullrequest-comment-draft/{pull_request_id}',
> +                controller='changeset', action='draft',
> +                conditions=dict(function=check_repo, method=["POST"]))
> +
>      rmap.connect('changeset_comment_delete',
>                   '/{repo_name:.*?}/changeset-comment-delete/{comment_id}',
>                  controller='changeset', action='delete_comment',
> diff -r 48a64173a218 -r b1b3c859230c kallithea/public/js/base.js
> --- a/kallithea/public/js/base.js       Sat Mar 28 08:12:49 2015 +0100
> +++ b/kallithea/public/js/base.js       Tue Apr 14 06:39:55 2015 +0200
> @@ -706,6 +706,7 @@
>          $('#edit-btn_'+lineno).show();
>          $('#preview-container_'+lineno).show();
>          $('#preview-btn_'+lineno).hide();
> +        $('#draft-btn_'+lineno).hide();
>
>          var url = pyroutes.url('changeset_comment_preview', {'repo_name': 
> REPO_NAME});
>          var post_data = {'text': text};
> @@ -714,11 +715,37 @@
>              $('#preview-box_'+lineno).removeClass('unloaded');
>          })
>      })
> +    $('#draft-btn_'+lineno).click(function(e){
> +        var text = $('#text_'+lineno).val();
> +        if(!text){
> +            return
> +        }
> +        $('#preview-box_'+lineno).addClass('unloaded');
> +        $('#preview-box_'+lineno).html(_TM['Loading ...']);
> +        $('#edit-container_'+lineno).hide();
> +        $('#edit-btn_'+lineno).show();
> +        $('#preview-container_'+lineno).show();
> +        $('#draft-btn_'+lineno).hide();
> +        $('#preview-btn_'+lineno).hide();
> +
> +        var url = AJAX_DRAFT_URL;
> +        var post_data = {
> +                'text': text,
> +                'f_path': f_path,
> +                'line': lineno
> +        };
> +        ajaxPOST(url, post_data, function(json_data){
> +            $tr.removeClass('form-open');
> +            $form.remove();
> +            _renderInlineComment(json_data);
> +        })
> +    })
>      $('#edit-btn_'+lineno).click(function(e){
>          $('#edit-container_'+lineno).show();
>          $('#edit-btn_'+lineno).hide();
>          $('#preview-container_'+lineno).hide();
>          $('#preview-btn_'+lineno).show();
> +        $('#draft-btn_'+lineno).show();
>      })
>
>      setTimeout(function(){
> diff -r 48a64173a218 -r b1b3c859230c 
> kallithea/templates/changeset/changeset.html
> --- a/kallithea/templates/changeset/changeset.html      Sat Mar 28 08:12:49 
> 2015 +0100
> +++ b/kallithea/templates/changeset/changeset.html      Tue Apr 14 06:39:55 
> 2015 +0200
> @@ -28,6 +28,7 @@
>      var _GROUPS_AC_DATA = ${c.user_groups_array|n};
>      AJAX_COMMENT_URL = 
> "${url('changeset_comment',repo_name=c.repo_name,revision=c.changeset.raw_id)}";
>      AJAX_COMMENT_DELETE_URL = 
> "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}";
> +    AJAX_DRAFT_URL = 
> "${url('changeset_comment_draft',repo_name=c.repo_name,revision=c.changeset.raw_id)}";
>      </script>
>      <div class="table">
>          <div class="diffblock">
> diff -r 48a64173a218 -r b1b3c859230c 
> kallithea/templates/changeset/changeset_file_comment.html
> --- a/kallithea/templates/changeset/changeset_file_comment.html Sat Mar 28 
> 08:12:49 2015 +0100
> +++ b/kallithea/templates/changeset/changeset_file_comment.html Tue Apr 14 
> 06:39:55 2015 +0200
> @@ -24,14 +24,22 @@
>                ${_('Status change from pull request')}
>                <a href="${co.pull_request.url()}">"${co.pull_request.title or 
> _("No title")}"</a>:
>              %else:
> -              ${_('Comment from pull request')}
> +              %if co.draft:
> +                     ${_('Draft from pull request')}
> +              %else:
> +                ${_('Comment from pull request')}
> +              %endif
>                <a href="${co.pull_request.url()}">"${co.pull_request.title or 
> _("No title")}"</a>
>              %endif
>           %else:
>              %if co.status_change:
>                ${_('Status change on changeset')}:
>              %else:
> -              ${_('Comment on changeset')}
> +              %if co.draft:
> +                ${_('Draft on changeset')}
> +              %else:
> +                ${_('Comment on changeset')}

With respect to terminology: I would not use the word 'draft' on its
own, but rather use 'draft comment', since 'draft' just means that
something is not final, but could apply to 'draft pull request',
'draft paper', ...

> +              %endif
>              %endif
>           %endif
>          </span>
> @@ -85,8 +93,9 @@
>          <div class="submitting-overlay">${_('Submitting ...')}</div>
>          <input type="hidden" name="f_path" value="{0}">
>          <input type="hidden" name="line" value="{1}">
> -        ${h.submit('save', _('Comment'), class_='btn btn-small 
> save-inline-form')}
> +        <!-- ${h.submit('save', _('Comment'), class_='btn btn-small 
> save-inline-form')} -->
>          ${h.reset('hide-inline-form', _('Cancel'), class_='btn btn-small 
> hide-inline-form')}
> +        <div id="draft-btn_{1}" class="draft-btn btn 
> btn-small">${_('Save')}</div>
>          <div id="preview-btn_{1}" class="preview-btn btn 
> btn-small">${_('Preview')}</div>
>          <div id="edit-btn_{1}" class="edit-btn btn btn-small" 
> style="display:none">${_('Edit')}</div>
>        </div>
> @@ -132,6 +141,16 @@
>              </div>
>          %endfor
>      %endfor
> +    %for path, lines in c.drafts:
> +        % for line,comments in lines.iteritems():
> +            <div style="display:none" class="inline-comment-placeholder" 
> path="${path}" target_id="${h.safeid(h.safe_unicode(path))}">
> +            %for co in comments:
> +                ${comment_block(co)}
> +            %endfor
> +            </div>
> +        %endfor
> +    %endfor
> +
>
>  </%def>
>
> @@ -144,7 +163,11 @@
>      </div>
>
>      %for co in c.comments:
> +        %if co.draft:
> +        <div id="draft-tr-${co.comment_id}">
> +        %else:
>          <div id="comment-tr-${co.comment_id}">
> +        %endif
>            ${comment_block(co)}
>          </div>
>      %endfor
> @@ -202,7 +225,7 @@
>          </div>
>
>          <div class="comment-button">
> -            ${h.submit('save', _('Comment'), class_="btn")}
> +            ${h.submit('save', _('Commit all Comments'), class_="btn")}

comments should be lowercase here

>              <div id="preview-btn" class="preview-btn 
> btn">${_('Preview')}</div>
>              <div id="edit-btn" class="edit-btn btn" 
> style="display:none">${_('Edit')}</div>
>          </div>
> @@ -239,7 +262,7 @@
>         }
>         var post_data = {'text': _text};
>         $('#preview-box').addClass('unloaded');
> -       $('#preivew-box').html(_TM['Loading ...']);
> +       $('#preview-box').html(_TM['Loading ...']);
>         $('#edit-container').hide();
>         $('#edit-btn').show();
>         $('#preview-container').show();
> diff -r 48a64173a218 -r b1b3c859230c 
> kallithea/templates/pullrequests/pullrequest_show.html
> --- a/kallithea/templates/pullrequests/pullrequest_show.html    Sat Mar 28 
> 08:12:49 2015 +0100
> +++ b/kallithea/templates/pullrequests/pullrequest_show.html    Tue Apr 14 
> 06:39:55 2015 +0200
> @@ -22,7 +22,11 @@
>    <div class="title">
>      ${self.breadcrumbs()}
>    </div>
> -
> +    <script>
> +    AJAX_COMMENT_URL = 
> "${url('changeset_comment',repo_name=c.repo_name,pull_request=c.pull_request.pull_request_id)}";
> +    AJAX_COMMENT_DELETE_URL = 
> "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}";
> +    AJAX_DRAFT_URL = 
> "${url('pullrequest_comment_draft',repo_name=c.repo_name,pull_request_id=c.pull_request.pull_request_id)}";
> +    </script>
>    ${h.form(url('pullrequest_post', repo_name=c.repo_name, 
> pull_request_id=c.pull_request.pull_request_id), method='post', 
> id='pull_request_form')}
>      <div class="form pr-box" style="float: left">
>        <div class="pr-details-title ${'closed' if c.pull_request.is_closed() 
> else ''}">


Best regards,
Thomas
_______________________________________________
kallithea-general mailing list
kallithea-general@sfconservancy.org
http://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to