From 561f8fade65fa5e1f82ac96c8e2781a24f0a8005 Mon Sep 17 00:00:00 2001 From: bom Date: Fri, 3 Sep 2021 13:00:43 +0200 Subject: [PATCH] moved html refactor --- src/main/cljc/dda/c4k_jira/core.cljc | 98 +------------------------ src/main/cljs/dda/c4k_jira/browser.cljs | 53 ++++++++----- valid-auth.edn | 4 +- valid-config.edn | 2 +- 4 files changed, 38 insertions(+), 119 deletions(-) diff --git a/src/main/cljc/dda/c4k_jira/core.cljc b/src/main/cljc/dda/c4k_jira/core.cljc index 0902c4f..df9454f 100644 --- a/src/main/cljc/dda/c4k_jira/core.cljc +++ b/src/main/cljc/dda/c4k_jira/core.cljc @@ -7,10 +7,7 @@ [dda.c4k-common.yaml :as yaml] [dda.c4k-common.postgres :as postgres] [dda.c4k-jira.jira :as jira] - [dda.c4k-jira.backup :as backup] - [clojure.walk :refer [postwalk]] - [hickory.core :as hc] - [hickory.render :as hr])) + [dda.c4k-jira.backup :as backup])) (def config-defaults {:issuer :staging}) @@ -45,99 +42,6 @@ (yaml/to-string (backup/generate-secret config)) (yaml/to-string (backup/generate-cron))])))) -; START OF HTML EDIT REFACTOR -; TODO: Move this to somewhere in commons - -(def htest (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] - (concat (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] - (concat (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-button - [id - label] - [{:type :element - :attrs {:type "button", :id id, :class "btn btn-primary"} - :tag :button - :content [label]}]) - -(defn generate-br - [] - [{:type :element, :attrs nil, :tag :br, :content nil}]) - -(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 []}) - -(defn generate-content - [] - (into [] (concat [(assoc (generate-needs-validation) :content - (into [] (concat (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-br) - (generate-input-field "issuer" "(Optional) Your issuer prod/staging:" "") - (generate-br) - (generate-br) - (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-br) - (generate-br) - (generate-button "generate-button" "Generate c4k yaml"))))] - (generate-br) - (generate-br) - (generate-output "c4k-keycloak-output" "Your c4k deployment.yaml:" "25")))) - -(defn find-map - [coll] - (postwalk #(if (and (map? %) - (= (:class (:attrs %)) "container jumbotron")) - {:type :element - :attrs {:class "container jumbotron"} - :tag :div - :content (generate-content)} - %) - coll)) - -(def htest2 (hr/hickory-to-html (find-map htest))) - -; END REFACTOR - (defn-spec generate any? [my-config config? my-auth auth?] diff --git a/src/main/cljs/dda/c4k_jira/browser.cljs b/src/main/cljs/dda/c4k_jira/browser.cljs index c44164b..4ce05b0 100644 --- a/src/main/cljs/dda/c4k_jira/browser.cljs +++ b/src/main/cljs/dda/c4k_jira/browser.cljs @@ -6,6 +6,30 @@ [dda.c4k-common.browser :as br] [dda.c4k-common.postgres :as pgc])) +(defn generate-content + [] + (into [] (concat [(assoc (generate-needs-validation) :content + (into [] (concat (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-br) + (generate-input-field "issuer" "(Optional) Your issuer prod/staging:" "") + (generate-br) + (generate-br) + (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-br) + (generate-br) + (generate-button "generate-button" "Generate c4k yaml"))))] + (generate-br) + (generate-br) + (generate-output "c4k-keycloak-output" "Your c4k deployment.yaml:" "25")))) + (defn config-from-document [] (let [jira-data-volume-path (br/get-content-from-element "jira-data-volume-path" :optional true) postgres-data-volume-path (br/get-content-from-element "postgres-data-volume-path" :optional true) @@ -32,6 +56,10 @@ (br/validate! "auth" core/auth? :deserializer edn/read-string) (br/set-validated!)) +(defn add-validate-listener [name] + (-> (br/get-element-by-id name) + (.addEventListener "blur" #(do (validate-all!))))) + (defn init [] (-> js/document (.getElementById "generate-button") @@ -41,22 +69,9 @@ (config-from-document) (br/get-content-from-element "auth" :deserializer edn/read-string)) (br/set-output!))))) - (-> (br/get-element-by-id "fqdn") - (.addEventListener "blur" - #(do (validate-all!)))) - (-> (br/get-element-by-id "jira-data-volume-path") - (.addEventListener "blur" - #(do (validate-all!)))) - (-> (br/get-element-by-id "postgres-data-volume-path") - (.addEventListener "blur" - #(do (validate-all!)))) - (-> (br/get-element-by-id "restic-repository") - (.addEventListener "blur" - #(do (validate-all!)))) - (-> (br/get-element-by-id "issuer") - (.addEventListener "blur" - #(do (validate-all!)))) - (-> (br/get-element-by-id "auth") - (.addEventListener "blur" - #(do (validate-all!)))) - ) \ No newline at end of file + (add-validate-listener "fqdn") + (add-validate-listener "jira-data-volume-path") + (add-validate-listener "postgres-data-volume-path") + (add-validate-listener "restic-repository") + (add-validate-listener "issuer") + (add-validate-listener "auth")) \ No newline at end of file diff --git a/valid-auth.edn b/valid-auth.edn index 5580916..c3ce1ee 100644 --- a/valid-auth.edn +++ b/valid-auth.edn @@ -1,5 +1,5 @@ {:postgres-db-user "jira" :postgres-db-password "jira-db-password" - :aws-access-key-id "AKIA5GS5HGNWZYV7TH5N" - :aws-secret-access-key "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" + :aws-access-key-id "" + :aws-secret-access-key "" :restic-password ""} diff --git a/valid-config.edn b/valid-config.edn index 656ecdf..f304091 100644 --- a/valid-config.edn +++ b/valid-config.edn @@ -1,4 +1,4 @@ {:fqdn "jira-neu.test.meissa-gmbh.de" :jira-data-volume-path "/var/jira" :postgres-data-volume-path "/var/postgres" - :restic-repository "PiepoN0zmee4ejuHzooni8Pa"} + :restic-repository ""}