branch: elpa/fj
commit 35cca8d11e57cb75d0aec77e07a3c14f770ee6e4
Author: marty hiatt <[email protected]>
Commit: marty hiatt <[email protected]>

    link action/TL owner button: own repos if fj-user. FIX #233.
---
 fj.el | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/fj.el b/fj.el
index eb1cffcc6b..496b2d881f 100644
--- a/fj.el
+++ b/fj.el
@@ -3689,12 +3689,12 @@ Returns annotation for CAND, a candidate."
 
 (define-button-type 'fj-search-owner-button
   'follow-link t
-  'action 'fj-list-user-repos
+  'action 'fj-list-own-or-user-repos
   'help-echo "RET: View this user.")
 
 (define-button-type 'fj-issues-owner-button
   'follow-link t
-  'action 'fj-list-user-repos
+  'action 'fj-list-own-or-user-repos
   'help-echo "RET: View this user.")
 
 (define-button-type 'fj-repo-stargazers-button
@@ -3860,6 +3860,18 @@ unset any default values."
                      (fj--repo-owner))))
        (fj-user-repos owner)))))
 
+(defun fj-list-own-or-user-repos (pos)
+  "Button action function for owners in tabulated lists.
+POS is current position.
+If owner is `fj-user', call `fj-list-own-repos'.
+Else call `fj-user-repos'.
+We do this because the latter has no sort argument, while the former
+does, and sorting user repos is useful."
+  (let ((user (button-label (button-at pos))))
+    (if (string= fj-user user)
+        (fj-list-own-repos)
+      (fj-list-user-repos))))
+
 ;; search or user repo TL
 (defun fj-star-repo (&optional unstar)
   "Star or UNSTAR current repo from tabulated user repos listing."
@@ -4824,7 +4836,9 @@ Used for hitting RET on a given link."
          (fj-issue-ref-follow item))
         ;; ((eq type 'pull)
         ;; (fj-item-view repo owner item nil :pull))
-        ('handle (fj-user-repos item))
+        ('handle (if (string= fj-user item)
+                     (fj-list-own-repos)
+                   (fj-user-repos item)))
         ('team (fj-browse-team item))
         ('repo-tag (fj-repo-tag-follow item))
         ((or  'commit 'commit-ref)

Reply via email to