@@ -939,6 +996,17 @@ $('#new_close_status').click(function(e) {
);
});
+$('#new_quick_reply').click(function(e) {
+ console.log('new quick reply');
+ $('#quick_reply_list').append(
+ '
'
+ );
+});
+
$('#new_custom_field').click(function(e) {
console.log('new custom fields');
$('#custom_fields').append(
diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py
index 8d964a9..2e2c676 100644
--- a/pagure/ui/repo.py
+++ b/pagure/ui/repo.py
@@ -2157,6 +2157,58 @@ def update_close_status(repo, username=None, namespace=None):
namespace=namespace))
+@APP.route('/
/update/quick_replies', methods=['POST'])
+@APP.route('///update/quick_replies', methods=['POST'])
+@APP.route('/fork///update/quick_replies', methods=['POST'])
+@APP.route(
+ '/fork////update/quick_replies',
+ methods=['POST'])
+@login_required
+def update_quick_replies(repo, username=None, namespace=None):
+ """ Update the quick_replies of a project.
+ """
+ if admin_session_timedout():
+ flask.flash('Action canceled, try it again', 'error')
+ url = flask.url_for(
+ 'view_settings', username=username, repo=repo,
+ namespace=namespace)
+ return flask.redirect(
+ flask.url_for('auth_login', next=url))
+
+ repo = flask.g.repo
+
+ if (not repo.settings.get('issue_tracker', True) and
+ not repo.settings.get('pull_requests', True)):
+ flask.abort(
+ 404,
+ 'Issue tracker and pull requests are disabled for this project')
+
+ if not flask.g.repo_admin:
+ flask.abort(
+ 403,
+ 'You are not allowed to change the settings for this project')
+
+ form = pagure.forms.ConfirmationForm()
+
+ if form.validate_on_submit():
+ quick_replies = [
+ w.strip() for w in flask.request.form.getlist('quick_reply')
+ if w.strip()
+ ]
+ try:
+ repo.quick_replies = quick_replies
+ SESSION.add(repo)
+ SESSION.commit()
+ flask.flash('List of quick replies updated')
+ except SQLAlchemyError as err: # pragma: no cover
+ SESSION.rollback()
+ flask.flash(str(err), 'error')
+
+ return flask.redirect(flask.url_for(
+ 'view_settings', username=username, repo=repo.name,
+ namespace=namespace))
+
+
@APP.route('//update/custom_keys', methods=['POST'])
@APP.route('///update/custom_keys', methods=['POST'])
@APP.route('/fork///update/custom_keys', methods=['POST'])