aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2012-12-14 02:27:48 +0100
committerMarcin Kuzminski <marcin@python-works.com>2012-12-14 02:27:48 +0100
commit6a7ac1b8047c78c30bf802d06a6f8e1aa71d70bc (patch)
tree895332ae41a5907fb8edbff0e91faed44784a4d6
parent4e6c494db2b34c213bb4a94cda2d94f560fb22d6 (diff)
implements #677: Don't allow to close pull requests when they are under-review state
--HG-- branch : beta
-rw-r--r--rhodecode/controllers/pullrequests.py13
-rw-r--r--rhodecode/public/css/style.css4
-rw-r--r--rhodecode/templates/changeset/changeset_file_comment.html12
3 files changed, 23 insertions, 6 deletions
diff --git a/rhodecode/controllers/pullrequests.py b/rhodecode/controllers/pullrequests.py
index 396a30f6..3c30bfb1 100644
--- a/rhodecode/controllers/pullrequests.py
+++ b/rhodecode/controllers/pullrequests.py
@@ -433,10 +433,15 @@ class PullrequestsController(BaseRepoController):
c.rhodecode_db_repo, self.ip_addr, self.sa)
if request.POST.get('save_close'):
- PullRequestModel().close_pull_request(pull_request_id)
- action_logger(self.rhodecode_user,
- 'user_closed_pull_request:%s' % pull_request_id,
- c.rhodecode_db_repo, self.ip_addr, self.sa)
+ if status in ['rejected', 'approved']:
+ PullRequestModel().close_pull_request(pull_request_id)
+ action_logger(self.rhodecode_user,
+ 'user_closed_pull_request:%s' % pull_request_id,
+ c.rhodecode_db_repo, self.ip_addr, self.sa)
+ else:
+ h.flash(_('Closing pull request on other statuses than '
+ 'rejected or approved forbidden'),
+ category='warning')
Session().commit()
diff --git a/rhodecode/public/css/style.css b/rhodecode/public/css/style.css
index 09a163c6..c9222015 100644
--- a/rhodecode/public/css/style.css
+++ b/rhodecode/public/css/style.css
@@ -3619,6 +3619,10 @@ div.gravatar img {
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
+.ui-btn.blue.hidden{
+ display: none;
+}
+
.ui-btn.active{
font-weight: bold;
}
diff --git a/rhodecode/templates/changeset/changeset_file_comment.html b/rhodecode/templates/changeset/changeset_file_comment.html
index 093c4eca..7f1381e3 100644
--- a/rhodecode/templates/changeset/changeset_file_comment.html
+++ b/rhodecode/templates/changeset/changeset_file_comment.html
@@ -127,7 +127,7 @@
<div id="status_block_container" class="status-block" style="display:none">
%for status,lbl in c.changeset_statuses:
<div class="">
- <img src="${h.url('/images/icons/flag_status_%s.png' % status)}" /> <input ${'checked="checked"' if status == cur_status else ''}" type="radio" name="changeset_status" id="${status}" value="${status}">
+ <img src="${h.url('/images/icons/flag_status_%s.png' % status)}" /> <input ${'checked="checked"' if status == cur_status else ''}" type="radio" class="status_change_radio" name="changeset_status" id="${status}" value="${status}">
<label for="${status}">${lbl}</label>
</div>
%endfor
@@ -138,7 +138,7 @@
<div class="comment-button">
${h.submit('save', _('Comment'), class_="ui-btn large")}
%if close_btn:
- ${h.submit('save_close', _('Comment and close'), class_='ui-btn blue large')}
+ ${h.submit('save_close', _('Comment and close'), class_='ui-btn blue large %s' % 'hidden' if cur_status in ['not_reviewd','under_review'] else '')}
%endif
</div>
${h.end_form()}
@@ -158,6 +158,14 @@ YUE.onDOMReady(function () {
YUD.setStyle('status_block_container','display','none');
}
})
+ YUE.on(YUQ('.status_change_radio'), 'change',function(e){
+ var val = e.currentTarget.value;
+ if (val == 'approved' || val == 'rejected') {
+ YUD.removeClass('save_close', 'hidden');
+ }else{
+ YUD.addClass('save_close', 'hidden');
+ }
+ })
});
</script>