wip rework of html generation
This commit is contained in:
parent
581336e803
commit
6cb74163fe
3 changed files with 81 additions and 65 deletions
|
@ -22,66 +22,6 @@
|
||||||
::aws-access-key-id ::aws-secret-access-key
|
::aws-access-key-id ::aws-secret-access-key
|
||||||
::restic-password]))
|
::restic-password]))
|
||||||
|
|
||||||
; START OF HTML EDIT REFACTOR
|
|
||||||
; TODO: Move this to somewhere in commons
|
|
||||||
|
|
||||||
(def htest (hz/hickory-zip (hc/as-hickory (hc/parse (clojure.core/slurp "public/index.html")))))
|
|
||||||
|
|
||||||
(defn-spec generate-feedback-tag map?
|
|
||||||
[id string?]
|
|
||||||
{:type :element :attrs {:class "invalid-feedback"} :tag :div :content [{:type :element :attrs {:id (str id "-validation")} :tag :pre :content "nil"}]})
|
|
||||||
|
|
||||||
(defn-spec generate-label map?
|
|
||||||
[id-for string?
|
|
||||||
label string?]
|
|
||||||
{:type :element :attrs {:for id-for :class "form-label"} :tag :label :content [label]})
|
|
||||||
|
|
||||||
(defn-spec generate-input-field vector?
|
|
||||||
[id string?
|
|
||||||
label string?
|
|
||||||
default-value string?]
|
|
||||||
[(generate-label id label)
|
|
||||||
{:type :element :attrs {:class "form-control" :type "text" :name id :value default-value} :tag :input :content "nil"}
|
|
||||||
(generate-feedback-tag id)])
|
|
||||||
|
|
||||||
(defn-spec generate-text-area vector?
|
|
||||||
[id string?
|
|
||||||
label string?
|
|
||||||
default-value string?
|
|
||||||
rows int?]
|
|
||||||
[(generate-label id label)
|
|
||||||
{:type :element :attrs {:name id :id id :class "form-control" :rows rows} :tag :textarea :content default-value}
|
|
||||||
(generate-feedback-tag id)])
|
|
||||||
|
|
||||||
; TODO: add br tags
|
|
||||||
; TODO: add generate button
|
|
||||||
; TODO: add output text-area
|
|
||||||
(defn generate-content
|
|
||||||
[]
|
|
||||||
(conj (generate-input-field "fqdn" "Your fqdn:" "jira-neu.prod.meissa-gmbh.de")
|
|
||||||
(generate-input-field "jira-data-volume-path" "(Optional) Your jira-data-volume-path:" "/var/jira")
|
|
||||||
(generate-input-field "postgres-data-volume-path" "(Optional) Your postgres-data-volume-path:" "/var/postgres")
|
|
||||||
(generate-input-field "restic-repository" "(Optional) Your restic-repository:" "restic-repository")
|
|
||||||
(generate-input-field "issuer" "(Optional) Your issuer prod/staging:" "")
|
|
||||||
(generate-text-area "auth" "Your auth.edn:" "{:postgres-db-user \" jira \"
|
|
||||||
:postgres-db-password \" jira-db-password \"
|
|
||||||
:aws-access-key-id \" aws-id \"
|
|
||||||
:aws-secret-access-key \" aws-secret \"
|
|
||||||
:restic-password \" restic-password \"}"
|
|
||||||
5)))
|
|
||||||
|
|
||||||
(defn find-map
|
|
||||||
[zipper]
|
|
||||||
(if (and (not (zip/end? zipper))
|
|
||||||
(map? (zip/node zipper))
|
|
||||||
(= (:class (:attrs (zip/node zipper))) "needs-validation"))
|
|
||||||
;replace instead of print later
|
|
||||||
(println (assoc (zip/node zipper) :content (generate-content)))
|
|
||||||
nil)
|
|
||||||
(find-map (zip/next zipper)))
|
|
||||||
|
|
||||||
; END REFACTOR
|
|
||||||
|
|
||||||
(defn k8s-objects [config]
|
(defn k8s-objects [config]
|
||||||
(into
|
(into
|
||||||
[]
|
[]
|
||||||
|
@ -105,6 +45,82 @@
|
||||||
(yaml/to-string (backup/generate-secret config))
|
(yaml/to-string (backup/generate-secret config))
|
||||||
(yaml/to-string (backup/generate-cron))]))))
|
(yaml/to-string (backup/generate-cron))]))))
|
||||||
|
|
||||||
|
; START OF HTML EDIT REFACTOR
|
||||||
|
; TODO: Move this to somewhere in commons
|
||||||
|
|
||||||
|
(def htest (hz/hickory-zip (hc/as-hickory (hc/parse (clojure.core/slurp "public/index.html")))))
|
||||||
|
|
||||||
|
(defn generate-feedback-tag
|
||||||
|
[id]
|
||||||
|
{:type :element :attrs {:class "invalid-feedback"} :tag :div :content [{:type :element :attrs {:id (str id "-validation")} :tag :pre :content "nil"}]})
|
||||||
|
|
||||||
|
(defn generate-label
|
||||||
|
[id-for
|
||||||
|
label]
|
||||||
|
{:type :element :attrs {:for id-for :class "form-label"} :tag :label :content [label]})
|
||||||
|
|
||||||
|
(defn generate-input-field
|
||||||
|
[id
|
||||||
|
label
|
||||||
|
default-value]
|
||||||
|
[(generate-label id label)
|
||||||
|
{:type :element :attrs {:class "form-control" :type "text" :name id :value default-value} :tag :input :content "nil"}
|
||||||
|
(generate-feedback-tag id)])
|
||||||
|
|
||||||
|
(defn generate-text-area
|
||||||
|
[id
|
||||||
|
label
|
||||||
|
default-value
|
||||||
|
rows]
|
||||||
|
[(generate-label id label)
|
||||||
|
{:type :element :attrs {:name id :id id :class "form-control" :rows rows} :tag :textarea :content default-value}
|
||||||
|
(generate-feedback-tag id)])
|
||||||
|
|
||||||
|
(defn generate-output
|
||||||
|
[id
|
||||||
|
label
|
||||||
|
rows]
|
||||||
|
{:type :element, :attrs {:id id}, :tag :div, :content [
|
||||||
|
{:type :element, :attrs {:for "output", :class "form-label"}, :tag :label, :content [label]}
|
||||||
|
{:type :element, :attrs {:name "output", :id "output", :class "form-control", :rows rows}, :tag :textarea, :content []}
|
||||||
|
]})
|
||||||
|
|
||||||
|
(defn generate-needs-validation
|
||||||
|
[]
|
||||||
|
{:type :element, :attrs {:class :needs-validation, :id :form}, :tag :form, :content []})
|
||||||
|
|
||||||
|
; TODO: add br tags
|
||||||
|
; TODO: add generate button
|
||||||
|
; TODO: add output text-area
|
||||||
|
(defn generate-content
|
||||||
|
[]
|
||||||
|
(conj
|
||||||
|
(assoc (generate-needs-validation) :content
|
||||||
|
(conj (generate-input-field "fqdn" "Your fqdn:" "jira-neu.prod.meissa-gmbh.de")
|
||||||
|
(generate-input-field "jira-data-volume-path" "(Optional) Your jira-data-volume-path:" "/var/jira")
|
||||||
|
(generate-input-field "postgres-data-volume-path" "(Optional) Your postgres-data-volume-path:" "/var/postgres")
|
||||||
|
(generate-input-field "restic-repository" "(Optional) Your restic-repository:" "restic-repository")
|
||||||
|
(generate-input-field "issuer" "(Optional) Your issuer prod/staging:" "")
|
||||||
|
(generate-text-area "auth" "Your auth.edn:" "{:postgres-db-user \" jira \"
|
||||||
|
:postgres-db-password \" jira-db-password \"
|
||||||
|
:aws-access-key-id \" aws-id \"
|
||||||
|
:aws-secret-access-key \" aws-secret \"
|
||||||
|
:restic-password \" restic-password \"}"
|
||||||
|
5)))
|
||||||
|
(generate-output "c4k-keycloak-output" "Your c4k deployment.yaml:" 25)))
|
||||||
|
|
||||||
|
(defn find-map
|
||||||
|
[zipper]
|
||||||
|
(if (not (zip/end? zipper))
|
||||||
|
(find-map (zip/next zipper))
|
||||||
|
(zip/node zipper))
|
||||||
|
(if (and (map? (zip/node zipper))
|
||||||
|
(= (:class (:attrs (zip/node zipper))) "container jumbotron"))
|
||||||
|
;replace instead of print later
|
||||||
|
(assoc (zip/node zipper) :content (generate-content))))
|
||||||
|
|
||||||
|
; END REFACTOR
|
||||||
|
|
||||||
(defn-spec generate any?
|
(defn-spec generate any?
|
||||||
[my-config config?
|
[my-config config?
|
||||||
my-auth auth?]
|
my-auth auth?]
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{:postgres-db-user "jira"
|
{:postgres-db-user "jira"
|
||||||
:postgres-db-password "jira-db-password"
|
:postgres-db-password "jira-db-password"
|
||||||
:aws-access-key-id "aws-id"
|
:aws-access-key-id "AKIA5GS5HGNWZYV7TH5N"
|
||||||
:aws-secret-access-key "aws-secret"
|
:aws-secret-access-key "UW3ongIEVcr8DSAwVI5BoEhvrJXfOQPhMJf/rvns"
|
||||||
:restic-password "restic-password"}
|
:restic-password ""}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{:fqdn "jira-neu.prod.meissa-gmbh.de"
|
{:fqdn "jira-neu.test.meissa-gmbh.de"
|
||||||
:jira-data-volume-path "/var/jira"
|
:jira-data-volume-path "/var/jira"
|
||||||
:postgres-data-volume-path "/var/postgres"
|
:postgres-data-volume-path "/var/postgres"
|
||||||
:restic-repository "restic-repository"}
|
:restic-repository "PiepoN0zmee4ejuHzooni8Pa"}
|
||||||
|
|
Reference in a new issue