1
+ (ns playground.admin.core
2
+ (:require [rum.core :as rum]
3
+ [cognitect.transit :as t]
4
+ [playground.utils.utils :as utils]
5
+ [ajax.core :refer [GET POST]]))
6
+
7
+
8
+ (enable-console-print! )
9
+
10
+
11
+ (def state (atom {:projects []
12
+ :project nil
13
+ :versions []
14
+ :version nil }))
15
+
16
+
17
+ (defn get-project-by-name [project-name]
18
+ (first (filter #(= project-name (:name %)) (:projects @state))))
19
+
20
+
21
+ (defn update-versions []
22
+ (POST " /_admin_/versions"
23
+ {:params {:project-id (-> @state :project :id )}
24
+ :handler #(swap! state assoc :versions %)
25
+ :error-handler #(println %)}))
26
+
27
+
28
+ (defn change-project [project]
29
+ (println " change-project:" project)
30
+ (swap! state assoc :project (get-project-by-name project))
31
+ (update-versions ))
32
+
33
+
34
+ (defn change-version [version]
35
+
36
+ )
37
+
38
+
39
+ (rum/defc project-select < rum /reactive []
40
+ [:div
41
+ [:h5 " Version management panel" ]
42
+ [:form
43
+ [:div.form-group
44
+ [:label {:for " project-select" } " Select project" ]
45
+ [:br ]
46
+ [:select.custom-select#project-select {:on-change #(change-project (-> % .-target .-value))}
47
+ (for [repo (:projects (rum/react state))]
48
+ [:option {:key (:name repo)
49
+ :value (:name repo)} (:name repo)])]
50
+ [:a.btn.btn-success {:role " button"
51
+ :href (str " /" (:name (:project (rum/react state))) " /_update_" )} " Update versions" ] ]
52
+
53
+ [:label {:for " version-select" } " Select version" ]
54
+ [:br ]
55
+ [:select.custom-select#version-select {:on-change #(change-version (-> % .-target .-value))}
56
+ (for [version (:versions (rum/react state))]
57
+ [:option {:key (:name version)
58
+ :value (:name version)} (:name version)])]
59
+ [:button.btn.btn-danger " Delete" ]
60
+ [:button.btn.btn-primary " Rebuild" ]
61
+
62
+ [:br ]
63
+ [:div.alert.alert-primary
64
+ " This action is used to update AnyChart develop versions in PG editor."
65
+ [:br ]
66
+ [:a.btn.btn-success {:role " button"
67
+ :href " /_update_anychart_versions_" } " Update AnyChart versions" ]]
68
+ [:a.btn.btn-link {:role " button"
69
+ :href " /tags/index" } " Show tags stat" ]
70
+
71
+ ]
72
+ ])
73
+
74
+
75
+ (rum/defc main-comp []
76
+ [:div " asdf" ])
77
+
78
+
79
+ (defn ^:export init [data]
80
+ (let [data (t/read (t/reader :json ) data)
81
+ repos (:repos data)]
82
+ (reset! state {:projects (:repos data)
83
+ :project (first repos)})
84
+ (update-versions )
85
+ (println data)
86
+ (rum/mount (project-select )
87
+ (.getElementById js/document " main-container" ))))
0 commit comments