summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2018-07-22 00:00:36 +0300
committerAlex Kost <alezost@gmail.com>2018-07-27 12:14:24 +0300
commit2ae2925fac8f17fd011ff7d7781dabcb258a12d9 (patch)
treeb62d6287bb8cbae56be6c15d3ab1131d189125a0
parentAdd 'build-farm-project' command (diff)
downloademacs-build-farm-2ae2925fac8f17fd011ff7d7781dabcb258a12d9.tar.gz
Add project button
* build-farm.el (build-farm-info-project): Inherit from 'button' face. (build-farm-project-button-action): New procedure. (build-farm-project): New button type. * build-farm-build.el (build-farm-build-info-insert-project): Use it. * build-farm-jobset.el (build-farm-jobset-info-insert-project): Use it.
-rw-r--r--build-farm-build.el2
-rw-r--r--build-farm-jobset.el2
-rw-r--r--build-farm.el20
3 files changed, 21 insertions, 3 deletions
diff --git a/build-farm-build.el b/build-farm-build.el
index 65ef9c3..1c1b1b3 100644
--- a/build-farm-build.el
+++ b/build-farm-build.el
@@ -282,7 +282,7 @@ See `build-farm-build-status-alist'."
(defun build-farm-build-info-insert-project (project entry)
"Insert PROJECT for build ENTRY at point."
- (bui-format-insert project 'build-farm-info-project)
+ (bui-insert-button project 'build-farm-project)
(bui-insert-indent)
(build-farm-build-info-insert-button entry))
diff --git a/build-farm-jobset.el b/build-farm-jobset.el
index c0d1864..bf97aa6 100644
--- a/build-farm-jobset.el
+++ b/build-farm-jobset.el
@@ -88,7 +88,7 @@
(defun build-farm-jobset-info-insert-project (project entry)
"Insert PROJECT button for the jobset ENTRY."
(let ((jobset (bui-entry-non-void-value entry 'name)))
- (bui-format-insert project 'build-farm-build-info-project)
+ (bui-insert-button project 'build-farm-project)
(bui-insert-indent)
(build-farm-build-info-insert-builds-button
:project project
diff --git a/build-farm.el b/build-farm.el
index 116d3ee..9ab8200 100644
--- a/build-farm.el
+++ b/build-farm.el
@@ -65,7 +65,7 @@
;;; Faces and buttons
(defface build-farm-info-project
- '((t))
+ '((t :inherit button))
"Face for projects in 'info' buffers."
:group 'build-farm-faces)
@@ -84,6 +84,24 @@
"Face for system names in 'info' buffers."
:group 'build-farm-faces)
+(defun build-farm-project-button-action (button)
+ "Display project info for project BUTTON."
+ (let ((search-type 'id)
+ (search-value (or (button-get button 'id)
+ (button-get button 'name)
+ (button-label button))))
+ (require 'build-farm-project)
+ (bui-get-display-entries
+ 'build-farm-project 'info
+ (list (build-farm-current-url)
+ search-type search-value))))
+
+(define-button-type 'build-farm-project
+ :supertype 'bui
+ 'face 'build-farm-info-project
+ 'help-echo "Display project info"
+ 'action 'build-farm-project-button-action)
+
;;; System types