Skip to content

Commit

Permalink
Merge pull request #5 from lupapiste/LPK-4352-mass-update-metadata-in…
Browse files Browse the repository at this point in the history
…-onkalo

LPK-4352 mass update metadata in onkalo
  • Loading branch information
pisketti committed Dec 7, 2020
2 parents 1bc5b09 + 0ba807d commit 0a8c96d
Show file tree
Hide file tree
Showing 13 changed files with 389 additions and 60 deletions.
5 changes: 3 additions & 2 deletions project.clj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
(defproject lupapiste/document-search-commons "0.8.13"
(defproject lupapiste/document-search-commons "0.8.14"
:description "Common document search related code shared between lupadoku and onkalo applications"
:url "https://www.evolta.fi"
:license {:name "European Union Public License"
Expand All @@ -20,9 +20,10 @@
[cljsjs/openlayers "4.4.1-1"]
[tailrecursion/cljson "1.0.7"]
[alandipert/storage-atom "2.0.1"]]
:profiles {:provided {:dependencies [[lupapiste/commons "0.9.26" :exclusions [commons-logging commons-codec]]]}}
:profiles {:provided {:dependencies [[lupapiste/commons "0.10.26" :exclusions [commons-logging commons-codec]]]}}
:plugins [[deraen/lein-sass4clj "0.3.1"]]
:source-paths ["src/clj" "src/cljc" "src/cljs"]
:test-paths ["test/clj" "test/cljc"]
:cljsbuild {:builds {:dev {:source-paths ["src/cljc" "src/cljs"]}}}
:clean-targets ^{:protect false} ["resources/public/css/main.css.map"
:target-path]
Expand Down
87 changes: 78 additions & 9 deletions resources/public/css/main.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 32 additions & 0 deletions resources/translations.txt
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@
"Tyhjennä" "en" "Clear"
"Tyhjennä" "fi" "Tyhjennä"
"Tyhjennä" "sv" "Töm"
"Vahvista päivittäminen" "fi" "Vahvista päivittäminen"
"Vahvista palauttaminen" "en" "Confirm restoration"
"Vahvista palauttaminen" "fi" "Vahvista palauttaminen"
"Vahvista palauttaminen" "sv" "Bekräfta returneringen"
Expand Down Expand Up @@ -286,6 +287,37 @@
"undo-archiving.success" "en" "Deleting from the archive successful."
"undo-archiving.success" "fi" "Arkistosta poistaminen onnistui."
"undo-archiving.success" "sv" "Radering från arkivet lyckades."
"mass-update-metadata.error" "fi" "Kaikkien metatietojen päivittäminen ei onnistunut"
"mass-update-metadata.success" "fi" "Metatietojen päivittäminen onnistui."
"yli" "en" "over"
"yli" "fi" "yli"
"yli" "sv" "över"
"Poistettu " "fi" "Poistettu "
"Poistettu " "sv" ""
"Olet poistamassa tiedostoa arkistosta" "fi" "Olet poistamassa tiedostoa arkistosta"
"Olet poistamassa tiedostoa arkistosta" "sv" ""
"Olet palauttamassa tiedostoa arkistoon" "fi" "Olet palauttamassa tiedostoa arkistoon"
"Olet palauttamassa tiedostoa arkistoon" "sv" ""
"Olet päivittämässä valittujen tiedostojen metadataa" "fi" "Olet päivittämässä valittujen tiedostojen metadataa"
"Palauta dokumentti" "fi" "Palauta dokumentti"
"Palauta dokumentti" "sv" ""
"Ilmoitus" "fi" "Ilmoitus"
"Ilmoitus" "sv" ""
"Hae vain arkistosta poistetuista" "fi" "Hae vain arkistosta poistetuista"
"Hae vain arkistosta poistetuista" "sv" ""
"Perustelu: " "fi" "Perustelu: "
"Perustelu: " "sv" ""
"Metatiedot" "fi" "Metatiedot"
"Metatiedot" "sv" ""
"Päivitä valitut metatiedot" "fi" "Päivitä valitut metatiedot"
"Päivitä" "fi" "Päivitä"
"Päivitä" "sv" ""
"Valittujen dokumenttien nykyiset arvot" "fi" "Valittujen dokumenttien nykyiset arvot"
"Kyllä" "fi" "Kyllä"
"Ei" "fi" "Ei"
"Lupa on rauennut" "fi" "Lupa on rauennut"
"Rakennus on purettu" "fi" "Rakennus on purettu"
"Raukeamispäivämäärä" "fi" "Raukeamispäivämäärä"
"Purkamispäivämäärä" "fi" "Purkamispäivämäärä"
"Anna rakennustunnukset oikeassa muodossa" "fi" "Anna rakennustunnukset oikeassa muodossa. Erota tunnukset pilkulla tai välilyönnillä."
"Syötä osoite" "fi" "Syötä osoite"
4 changes: 3 additions & 1 deletion scss/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@
@import "partials/_animation";
@import "partials/_search-form";
@import "partials/_search-results";
@import "partials/_mass-operations";
@import "partials/_combobox";
@import "partials/_time";

@import "partials/_map.scss";

Expand Down Expand Up @@ -69,4 +71,4 @@ nav .nav-wrapper .header-menu {
nav .brand a img.onkalo-logo {
width: auto;
margin-left: 0;
}
}
64 changes: 64 additions & 0 deletions scss/partials/_mass-operations.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
.mass-update-metadata {
display: flex;
flex-wrap: wrap;
padding-left: 15px;
padding-right: 15px;
padding-bottom: 15px;

.mass-update-row {
display: flex;
justify-content: flex-start;
align-items: flex-start;
padding-left: 15px;
padding-right: 15px;
}

.mass-update-button-row {
display: flex;
justify-content: flex-end;
align-items: flex-end;
padding: 15px;
}

.editor-header {
padding-top: 0 !important;
padding-bottom: 0 !important;
min-height: 40px !important;
}

.metadata-fields {
width: 100%;
}

.editor-form {
padding: 0 !important;
}

.select-metadata {
align-self: center;
padding-right: 3em;
}

.error {
color: $error-text;
}

.text-field {
width: 100%;
}

.yes-no-select {
width: 100px !important;
}

.yes-no-wrapper {
padding-bottom: 25px;
min-width: 140px;
}

.date-field {
padding-left: 20px;
width: 130px;
}

}
6 changes: 6 additions & 0 deletions scss/partials/_time.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.date-wrapper {
.read-only-date-field {
border: 1px solid #bbbbbb;
background: white;
}
}
21 changes: 4 additions & 17 deletions src/clj/search_commons/utils.clj
Original file line number Diff line number Diff line change
@@ -1,24 +1,11 @@
(ns search-commons.utils
(:require [clojure.string :as s]
[clojure.pprint :refer [cl-format]]))
[clojure.pprint :refer [cl-format]]
[search-commons.shared-utils :as shared-utils]))

(def property-id-regex #"(\d{1,3})-(\d{1,3})-(\d{1,4})-(\d{1,4})")
(def property-id-regex shared-utils/property-id-regex)

;; Common Lisp format string: https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node200.html
(def lpad-3 "~3,1,0,'0@A")
(def lpad-4 "~4,1,0,'0@A")
;; || | | |||print as string
;; || | | ||pad left
;; || | | |padding character
;; || | |minimum padding, 0 means dont' pad if not necessary
;; || |insert one padding character at a time
;; ||pad at least this amount
;; |start a directive, like %

(defn zero-padded-property-id [^String value]
(when-let [[_ & parts] (re-matches property-id-regex value)]
(let [format-string (apply str [lpad-3 lpad-3 lpad-4 lpad-4])]
(apply cl-format nil format-string parts))))
(def zero-padded-property-id shared-utils/zero-padded-property-id)

(defn property-id-regexp-string [tokens]
(when-let [regexes (->> tokens
Expand Down
56 changes: 56 additions & 0 deletions src/cljc/search_commons/shared_utils.cljc
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
(ns search-commons.shared-utils
(:require [clojure.string :as s]
[clojure.pprint :refer [cl-format]]))

(def db-property-id-regex #"^\d{14}$")
(def property-id-regex #"(\d{1,3})-(\d{1,3})-(\d{1,4})-(\d{1,4})")

;; Common Lisp format string: https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node200.html
(def lpad-3 "~3,1,0,'0@A")
(def lpad-4 "~4,1,0,'0@A")
;; || | | |||print as string
;; || | | ||pad left
;; || | | |padding character
;; || | |minimum padding, 0 means dont' pad if not necessary
;; || |insert one padding character at a time
;; ||pad at least this amount
;; |start a directive, like %

(defn zero-padded-property-id [^String value]
(when-let [[_ & parts] (re-matches property-id-regex value)]
(let [format-string (apply str [lpad-3 lpad-3 lpad-4 lpad-4])]
(apply cl-format nil format-string parts))))

(defn- human-readable-property-id? [property-id]
(re-matches property-id-regex (or property-id "")))

(defn- db-property-id? [property-id]
(re-matches db-property-id-regex (or property-id "")))

(defn property-id? [property-id]
(boolean (or (human-readable-property-id? property-id)
(db-property-id? property-id))))

(defn ->db-property-id [property-id]
(cond
(human-readable-property-id? property-id) (zero-padded-property-id property-id)
(db-property-id? property-id) property-id
:else nil))

(def rakennustunnus-pattern
"VRK pysyva rakennustunnus. KRYSP-skeemassa: ([1][0-9]{8})[0-9ABCDEFHJKLMNPRSTUVWXY]
Modified version from sade.validators"
#?(:clj (re-pattern "^1\\d{8}[0-9A-FHJ-NPR-Y]$")
:cljs #"^[1][0-9]{8}[0-9A-FHJ-NPR-Y]$"))

(defn- matches? [re s] (boolean (when (string? s) (re-matches re s))))

(defn rakennustunnus? [prt]
(and (matches? rakennustunnus-pattern prt)))

(defn ->tokens
"Split string by comma or whitespace"
[^String s]
(if s
(remove empty? (s/split s #"\s*,\s*|\s+"))
[]))

0 comments on commit 0a8c96d

Please sign in to comment.