diff options
author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-02-12 13:42:38 -0200 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-02-12 14:10:15 -0200 |
commit | a7c70149cfbfc24791d7966b0bef8a3a691e45f4 (patch) | |
tree | 2de786cb7a51a3acc775b6a5f1615d48cf7fe09f | |
parent | f413f02c27f464b37f18ffbd6ea416c76f6ed138 (diff) |
Define tabs with sx-question-list--make-pager and obsolete some old ones
-rw-r--r-- | sx-tab.el | 212 |
1 files changed, 93 insertions, 119 deletions
@@ -144,167 +144,141 @@ to use instead." (add-to-list 'sx-tab--list ,tab))))) -;;; FrontPage -(sx-tab--define "FrontPage" - (lambda (page) - (sx-question-get-questions - sx-question-list--site page '((sort . activity))))) +;;; Entry commands +(sx-tab--define "All-Questions" + (sx-question-list--make-pager 'questions) + nil nil nil + (setq sx-question-list--order-methods + sx-tab--order-methods)) ;;;###autoload -(autoload 'sx-tab-frontpage +(autoload 'sx-tab-all-questions (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) - -;;; Newest -(sx-tab--define "Newest" - (lambda (page) - (sx-question-get-questions - sx-question-list--site page '((sort . creation))))) +(sx-tab--define "Unanswered" + (sx-question-list--make-pager 'questions 'unanswered)) ;;;###autoload -(autoload 'sx-tab-newest +(autoload 'sx-tab-unanswered (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) - - -;;; TopVoted -(sx-tab--define "TopVoted" - (lambda (page) - (sx-question-get-questions - sx-question-list--site page '((sort . votes))))) +(sx-tab--define "Unanswered-My-Tags" + (sx-question-list--make-pager 'questions 'unanswered/my-tags)) ;;;###autoload -(autoload 'sx-tab-topvoted +(autoload 'sx-tab-unanswered-my-tags (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) - - -;;; Hot -(sx-tab--define "Hot" - (lambda (page) - (sx-question-get-questions - sx-question-list--site page '((sort . hot))))) +(sx-tab--define "Featured" + (sx-question-list--make-pager 'questions 'featured)) ;;;###autoload -(autoload 'sx-tab-hot +(autoload 'sx-tab-featured (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) - - -;;; Week -(sx-tab--define "Week" - (lambda (page) - (sx-question-get-questions - sx-question-list--site page '((sort . week))))) +(sx-tab--define "Starred" + (sx-question-list--make-pager 'me 'favorites)) ;;;###autoload -(autoload 'sx-tab-week +(autoload 'sx-tab-featured (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) + +;;; Inter-modes navigation +(defun sx-tab-meta-or-main () + "Switch to the meta version of a main site, or vice-versa. +Inside a question, go to the frontpage of the site this question +belongs to." + (interactive) + (if (and (derived-mode-p 'sx-question-list-mode) + sx-question-list--site) + (sx-question-list-switch-site + (if (string-match "\\`meta\\." sx-question-list--site) + (replace-match "" :fixedcase nil sx-question-list--site) + (concat "meta." sx-question-list--site))) + (sx-tab-all-questions nil (sx--site (sx--data-here 'question))))) -;;; Month -(sx-tab--define "Month" - (lambda (page) - (sx-question-get-questions - sx-question-list--site page '((sort . month))))) +;;; Obsolete tabs +(defconst sx-tab--basic-question-pager + (sx-question-list--make-pager 'questions)) + +(sx-tab--define "FrontPage" + sx-tab--basic-question-pager + nil nil "All-Questions" + (setq sx-question-list--order 'activity) + (setq sx-question-list--order-methods + sx-tab--order-methods)) ;;;###autoload -(autoload 'sx-tab-month +(autoload 'sx-tab-frontpage (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) - -;;; Unanswered -(sx-tab--define "Unanswered" - (lambda (page) - (sx-question-get-questions - sx-question-list--site page nil 'unanswered))) +(sx-tab--define "Newest" + sx-tab--basic-question-pager + nil nil "All-Questions" + (setq sx-question-list--order 'creation) + (setq sx-question-list--order-methods + sx-tab--order-methods)) ;;;###autoload -(autoload 'sx-tab-unanswered +(autoload 'sx-tab-newest (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) - -;;; Unanswered My-tags -(sx-tab--define "Unanswered-my-tags" - (lambda (page) - (sx-question-get-questions - sx-question-list--site page nil 'unanswered/my-tags))) +(sx-tab--define "TopVoted" + sx-tab--basic-question-pager + nil nil "All-Questions" + (setq sx-question-list--order 'votes) + (setq sx-question-list--order-methods + sx-tab--order-methods)) ;;;###autoload -(autoload 'sx-tab-unanswered-my-tags +(autoload 'sx-tab-topvoted (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) - -;;; Featured -(sx-tab--define "Featured" - (lambda (page) - (sx-question-get-questions - sx-question-list--site page nil 'featured))) +(sx-tab--define "Hot" + sx-tab--basic-question-pager + nil nil "All-Questions" + (setq sx-question-list--order 'hot) + (setq sx-question-list--order-methods + sx-tab--order-methods)) ;;;###autoload -(autoload 'sx-tab-featured +(autoload 'sx-tab-hot (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) - -;;; Starred -(sx-tab--define "Starred" - (lambda (page) - (sx-method-call 'me - :page page - :site sx-question-list--site - :auth t - :submethod 'favorites - :filter sx-browse-filter))) +(sx-tab--define "Week" + sx-tab--basic-question-pager + nil nil "All-Questions" + (setq sx-question-list--order 'week) + (setq sx-question-list--order-methods + sx-tab--order-methods)) ;;;###autoload -(autoload 'sx-tab-featured +(autoload 'sx-tab-week (expand-file-name - "sx-tab" - (when load-file-name - (file-name-directory load-file-name))) + "sx-tab" (when load-file-name (file-name-directory load-file-name))) nil t) - -;;; Inter-modes navigation -(defun sx-tab-meta-or-main () - "Switch to the meta version of a main site, or vice-versa. -Inside a question, go to the frontpage of the site this question -belongs to." - (interactive) - (if (and (derived-mode-p 'sx-question-list-mode) - sx-question-list--site) - (sx-question-list-switch-site - (if (string-match "\\`meta\\." sx-question-list--site) - (replace-match "" :fixedcase nil sx-question-list--site) - (concat "meta." sx-question-list--site))) - (sx-tab-frontpage nil (sx--site (sx--data-here 'question))))) +(sx-tab--define "Month" + sx-tab--basic-question-pager + nil nil "All-Questions" + (setq sx-question-list--order 'month) + (setq sx-question-list--order-methods + sx-tab--order-methods)) +;;;###autoload +(autoload 'sx-tab-month + (expand-file-name + "sx-tab" (when load-file-name (file-name-directory load-file-name))) + nil t) (provide 'sx-tab) ;;; sx-tab.el ends here |