diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2012-12-14 02:27:48 +0100 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2012-12-14 02:27:48 +0100 |
commit | 6a7ac1b8047c78c30bf802d06a6f8e1aa71d70bc (patch) | |
tree | 895332ae41a5907fb8edbff0e91faed44784a4d6 | |
parent | 4e6c494db2b34c213bb4a94cda2d94f560fb22d6 (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.py | 13 | ||||
-rw-r--r-- | rhodecode/public/css/style.css | 4 | ||||
-rw-r--r-- | rhodecode/templates/changeset/changeset_file_comment.html | 12 |
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> |