summary refs log tree commit diff
path: root/gnu/packages/cran.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2024-05-22 17:32:59 +0200
committerRicardo Wurmus <rekado@elephly.net>2024-05-22 17:44:49 +0200
commita4d8a93abc69314a0bc9abc82890a3e1f336aca3 (patch)
treee992bc9216854097da31ab6da61b50bc793b402e /gnu/packages/cran.scm
parentb1b981a4774da1a08624e3ebf00267dd08749b25 (diff)
downloadguix-a4d8a93abc69314a0bc9abc82890a3e1f336aca3.tar.gz
gnu: Add r-shinydashboardplus.
* gnu/packages/cran.scm (r-shinydashboardplus): New variable.

Change-Id: Ie50bd8a0234af0fb5ea63377aa005655acad01bd
Diffstat (limited to 'gnu/packages/cran.scm')
-rw-r--r--gnu/packages/cran.scm83
1 files changed, 83 insertions, 0 deletions
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 19abcb06bd..a2834d88f9 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -5778,6 +5778,89 @@ application framework for R, making it easy to create attractive dashboards.")
     ;; later.
     (license license:gpl2+)))
 
+(define-public r-shinydashboardplus
+  (package
+    (name "r-shinydashboardplus")
+    (version "2.0.4")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "shinydashboardPlus" version))
+              (sha256
+               (base32
+                "11ckx8il1v4jk26ss0bylk73xb5bh3xd2d5421i5s8wlxlwd0z5q"))
+              (modules '((guix build utils)))
+              (snippet
+               `(begin
+                  (with-directory-excursion
+                      ,(string-append "inst/shinydashboardPlus-" version
+                                      "/js/")
+                    (for-each delete-file
+                              '("app.min.js"
+                                "shinydashboardPlus.min.js"
+                                "shinydashboardPlus.min.js.map")))
+                  (with-directory-excursion "inst/materialDesign-1.0/js"
+                    (for-each delete-file
+                              '("material.min.js"
+                                "ripples.min.js")))))))
+    (properties `((upstream-name . "shinydashboardPlus")))
+    (build-system r-build-system)
+    (arguments
+     (list
+      ;; The tests launch a shinyApp; they are interactive tests that
+      ;; will block forever, so we just don't run them.
+      #:tests? #false
+      #:modules
+      '((guix build r-build-system)
+        (guix build minify-build-system)
+        (guix build utils)
+        (ice-9 match))
+      #:imported-modules
+      `(,@%r-build-system-modules
+        (guix build minify-build-system))
+      #:phases
+      #~(modify-phases (@ (guix build r-build-system) %standard-phases)
+          (add-after 'unpack 'process-javascript
+            (lambda* (#:key inputs #:allow-other-keys)
+              (with-directory-excursion
+                  (string-append "inst/shinydashboardPlus-" #$version "/js/")
+                (for-each
+                 (match-lambda
+                   ((source . target)
+                    (minify source #:target target)))
+                 `(("app.js" . "app.min.js")
+                   ("shinydashboardPlus.js" . "shinydashboardPlus.min.js")
+                   (,(search-input-file inputs "/dist/js/material.js")
+                    . "materialDesign-1.0/js/material.min.js")
+                   (,(search-input-file inputs "/dist/js/ripples.js")
+                    . "materialDesign-1.0/js/ripples.min.js")))))))))
+    (propagated-inputs
+     (list r-fresh
+           r-htmltools
+           r-lifecycle
+           r-shiny
+           r-shinydashboard
+           r-waiter))
+    (native-inputs
+     (list esbuild r-knitr
+           (let ((commit "92a2284b47aed56a9d7ae92cf9b40072d27982b3"))
+             (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://github.com/DucThanhNguyen/MaterialAdminLTE")
+                     (commit commit)))
+               (file-name (git-file-name "MaterialAdminLTE"
+                                         (git-version "0" "0" commit)))
+               (sha256
+                (base32
+                 "0cn11hxpf25h7xj2lk473z24swgz979dz255zwk2m2fj00iljkn9"))))))
+    (home-page "https://github.com/RinteRface/shinydashboardPlus")
+    (synopsis "Add more AdminLTE2 components to shinydashboard")
+    (description
+     "This package extends shinydashboard with AdminLTE2 components.
+AdminLTE2 is a Bootstrap 3 dashboard template.  Customize boxes, add timelines
+and a lot more.")
+    (license license:gpl2+)))
+
 (define-public r-shinyfiles
   (package
     (name "r-shinyfiles")