# 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')} + %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")} <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 ''}"> _______________________________________________ kallithea-general mailing list kallithea-general@sfconservancy.org http://lists.sfconservancy.org/mailman/listinfo/kallithea-general