You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2017/09/26 18:39:29 UTC

[2/3] allura git commit: [#8164] add subscribe icon in Merge Request action bar

[#8164] add subscribe icon in Merge Request action bar


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/6307d34f
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/6307d34f
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/6307d34f

Branch: refs/heads/db/8164
Commit: 6307d34f708ad5c000eb864ebf3e4d8147c4b9de
Parents: 63070c1
Author: Dave Brondsema <da...@brondsema.net>
Authored: Tue Sep 26 12:54:02 2017 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Sep 26 14:37:18 2017 -0400

----------------------------------------------------------------------
 Allura/allura/controllers/repository.py         | 29 +++++++++++++++++++-
 Allura/allura/templates/repo/merge_request.html |  3 ++
 2 files changed, 31 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/6307d34f/Allura/allura/controllers/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py
index 7b4c703..9518f89 100644
--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -359,6 +359,7 @@ class MergeRequestController(object):
         page=None, limit=None, page_size=None, count=None,
         style='linear')
     mr_dispose_form = SCMMergeRequestDisposeWidget()
+    subscribe_form = SubscribeForm(thing='merge request')
 
     def __init__(self, num):
         self.req = M.MergeRequest.query.get(
@@ -373,9 +374,18 @@ class MergeRequestController(object):
         c.thread = self.thread_widget
         c.log_widget = self.log_widget
         c.mr_dispose_form = self.mr_dispose_form
+        c.subscribe_form = self.subscribe_form
+
         limit, page = h.paging_sanitizer(limit, page)
         with self.req.push_downstream_context():
             downstream_app = c.app
+
+        tool_subscribed = M.Mailbox.subscribed()
+        if tool_subscribed:
+            subscribed = False
+        else:
+            subscribed = M.Mailbox.subscribed(artifact=self.req)
+
         result = dict(
             downstream_app=downstream_app,
             req=self.req,
@@ -384,7 +394,9 @@ class MergeRequestController(object):
             merge_status=self.req.merge_task_status(),
             page=page,
             limit=limit,
-            count=self.req.discussion_thread.post_count)
+            count=self.req.discussion_thread.post_count,
+            subscribed=subscribed,
+        )
         try:
             result['commits'] = self.req.commits
         except Exception:
@@ -495,6 +507,21 @@ class MergeRequestController(object):
         """Return result from the cache. Used by js, after task was completed."""
         return {'can_merge': self.req.can_merge()}
 
+    @expose('json:')
+    @require_post()
+    @validate(subscribe_form)
+    def subscribe(self, subscribe=None, unsubscribe=None, **kw):
+        if subscribe:
+            self.req.subscribe()
+        elif unsubscribe:
+            self.req.unsubscribe()
+        return {
+            'status': 'ok',
+            'subscribed': M.Mailbox.subscribed(artifact=self.req),
+            'subscribed_to_tool': M.Mailbox.subscribed(),
+            'subscribed_to_entire_name': 'code repository',
+        }
+
 
 class RefsController(object):
 

http://git-wip-us.apache.org/repos/asf/allura/blob/6307d34f/Allura/allura/templates/repo/merge_request.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/repo/merge_request.html b/Allura/allura/templates/repo/merge_request.html
index c5517c1..fd3acdf 100644
--- a/Allura/allura/templates/repo/merge_request.html
+++ b/Allura/allura/templates/repo/merge_request.html
@@ -27,6 +27,9 @@ Merge Request #{{req.request_number}}: {{req.summary}} ({{req.status}})
 {% endblock %}
 
 {% block actions %}
+  {% if c.user and c.user != c.user.anonymous() %}
+    {{ c.subscribe_form.display(value=subscribed, action='subscribe', style='icon') }}
+  {% endif %}
   {% if h.has_access(req, 'write')() %}
     {{ g.icons['edit'].render(href='edit', show_title=True) }}
   {% endif %}