Skip to content

Commit

Permalink
apply full text filter on current list comp
Browse files Browse the repository at this point in the history
  • Loading branch information
nohaapav committed Dec 27, 2017
1 parent 7f14de7 commit 6c9c8db
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 122 deletions.
16 changes: 4 additions & 12 deletions src/cljs/swarmpit/component/dockerhub/list.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
[swarmpit.component.state :as state]
[swarmpit.component.handler :as handler]
[swarmpit.routes :as routes]
[clojure.string :as string]
[swarmpit.storage :as storage]
[rum.core :as rum]))

(def cursor [:form])
Expand Down Expand Up @@ -37,12 +35,6 @@
[item]
(routes/path-for-frontend :dockerhub-user-info {:id (:_id item)}))

(defn- filter-items
[items predicate]
(filter #(and (string/includes? (:username %) predicate)
(= (:owner %)
(storage/user))) items))

(defn- users-handler
[]
(handler/get
Expand All @@ -52,7 +44,7 @@

(defn- init-state
[]
(state/set-value {:filter {:username ""}} cursor))
(state/set-value {:filter {:query ""}} cursor))

(def mixin-init-form
(mixin/init-form
Expand All @@ -65,15 +57,15 @@
mixin/subscribe-form
mixin/focus-filter [_]
(let [{:keys [filter items]} (state/react cursor)
filtered-items (filter-items items (:username filter))]
filtered-items (list/filter items (:query filter))]
[:div
[:div.form-panel
[:div.form-panel-left
(panel/text-field
{:id "filter"
:hintText "Filter by username"
:hintText "Search hub users"
:onChange (fn [_ v]
(state/update-value [:filter :username] v cursor))})]
(state/update-value [:filter :query] v cursor))})]
[:div.form-panel-right
(comp/mui
(comp/raised-button
Expand Down
13 changes: 4 additions & 9 deletions src/cljs/swarmpit/component/network/list.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
[swarmpit.component.state :as state]
[swarmpit.component.handler :as handler]
[swarmpit.routes :as routes]
[clojure.string :as string]
[rum.core :as rum]))

(enable-console-print!)
Expand Down Expand Up @@ -40,10 +39,6 @@
[item]
(routes/path-for-frontend :network-info {:id (:networkName item)}))

(defn- filter-items
[items predicate]
(filter #(string/includes? (:networkName %) predicate) items))

(defn- networks-handler
[]
(handler/get
Expand All @@ -53,7 +48,7 @@

(defn- init-state
[]
(state/set-value {:filter {:networkName ""}} cursor))
(state/set-value {:filter {:query ""}} cursor))

(def mixin-init-form
(mixin/init-form
Expand All @@ -66,15 +61,15 @@
mixin/subscribe-form
mixin/focus-filter [_]
(let [{:keys [filter items]} (state/react cursor)
filtered-items (filter-items items (:networkName filter))]
filtered-items (list/filter items (:query filter))]
[:div
[:div.form-panel
[:div.form-panel-left
(panel/text-field
{:id "filter"
:hintText "Filter by name"
:hintText "Search networks"
:onChange (fn [_ v]
(state/update-value [:filter :networkName] v cursor))})]
(state/update-value [:filter :query] v cursor))})]
[:div.form-panel-right
(comp/mui
(comp/raised-button
Expand Down
15 changes: 5 additions & 10 deletions src/cljs/swarmpit/component/node/list.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,16 @@
[material.component.panel :as panel]
[swarmpit.component.mixin :as mixin]
[swarmpit.component.state :as state]
[material.component.list-table :as list]
[swarmpit.component.handler :as handler]
[swarmpit.routes :as routes]
[clojure.string :as string]
[sablono.core :refer-macros [html]]
[rum.core :as rum]))

(enable-console-print!)

(def cursor [:form])

(defn- filter-items
"Filter list items based on given predicate"
[items predicate]
(filter #(string/includes? (:nodeName %) predicate) items))

(defn- node-item-state [value]
(case value
"ready" (label/green value)
Expand Down Expand Up @@ -65,7 +60,7 @@

(defn- init-state
[]
(state/set-value {:filter {:nodeName ""}} cursor))
(state/set-value {:filter {:query ""}} cursor))

(def mixin-init-form
(mixin/init-form
Expand All @@ -78,15 +73,15 @@
mixin/subscribe-form
mixin/focus-filter [_]
(let [{:keys [filter items]} (state/react cursor)
filtered-items (filter-items items (:nodeName filter))]
filtered-items (list/filter items (:query filter))]
[:div
[:div.form-panel
[:div.form-panel-left
(panel/text-field
{:id "filter"
:hintText "Filter by name"
:hintText "Search nodes"
:onChange (fn [_ v]
(state/update-value [:filter :nodeName] v cursor))})]]
(state/update-value [:filter :query] v cursor))})]]
[:div.content-grid.mdl-grid
(->> (sort-by :nodeName filtered-items)
(map #(node-item %)))]]))
20 changes: 6 additions & 14 deletions src/cljs/swarmpit/component/registry/list.cljs
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
(ns swarmpit.component.registry.list
(:require [material.component :as comp]
(:require [material.icon :as icon]
[material.component :as comp]
[material.component.panel :as panel]
[material.component.list-table :as list]
[material.icon :as icon]
[swarmpit.component.mixin :as mixin]
[swarmpit.component.state :as state]
[swarmpit.component.handler :as handler]
[swarmpit.storage :as storage]
[swarmpit.routes :as routes]
[clojure.string :as string]
[rum.core :as rum]))

(def cursor [:form])
Expand Down Expand Up @@ -41,12 +39,6 @@
[item]
(routes/path-for-frontend :registry-info {:id (:_id item)}))

(defn- filter-items
[items predicate]
(filter #(and (string/includes? (:name %) predicate)
(= (:owner %)
(storage/user))) items))

(defn- registries-handler
[]
(handler/get
Expand All @@ -56,7 +48,7 @@

(defn- init-state
[]
(state/set-value {:filter {:name ""}} cursor))
(state/set-value {:filter {:query ""}} cursor))

(def mixin-init-form
(mixin/init-form
Expand All @@ -69,15 +61,15 @@
mixin/subscribe-form
mixin/focus-filter [_]
(let [{:keys [filter items]} (state/react cursor)
filtered-items (filter-items items (:name filter))]
filtered-items (list/filter items (:query filter))]
[:div
[:div.form-panel
[:div.form-panel-left
(panel/text-field
{:id "filter"
:hintText "Filter by name"
:hintText "Search registries"
:onChange (fn [_ v]
(state/update-value [:filter :name] v cursor))})]
(state/update-value [:filter :query] v cursor))})]
[:div.form-panel-right
(comp/mui
(comp/raised-button
Expand Down
13 changes: 4 additions & 9 deletions src/cljs/swarmpit/component/secret/list.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
[swarmpit.component.handler :as handler]
[swarmpit.routes :as routes]
[swarmpit.time :as time]
[clojure.string :as string]
[rum.core :as rum]))

(enable-console-print!)
Expand All @@ -30,10 +29,6 @@
[item]
(routes/path-for-frontend :secret-info {:id (:secretName item)}))

(defn- filter-items
[items predicate]
(filter #(string/includes? (:secretName %) predicate) items))

(defn- secrets-handler
[]
(handler/get
Expand All @@ -43,7 +38,7 @@

(defn- init-state
[]
(state/set-value {:filter {:secretName ""}} cursor))
(state/set-value {:filter {:query ""}} cursor))

(def mixin-init-form
(mixin/init-form
Expand All @@ -56,15 +51,15 @@
mixin/subscribe-form
mixin/focus-filter [_]
(let [{:keys [filter items]} (state/react cursor)
filtered-items (filter-items items (:secretName filter))]
filtered-items (list/filter items (:query filter))]
[:div
[:div.form-panel
[:div.form-panel-left
(panel/text-field
{:id "filter"
:hintText "Filter by name"
:hintText "Search secrets"
:onChange (fn [_ v]
(state/update-value [:filter :secretName] v cursor))})]
(state/update-value [:filter :query] v cursor))})]
[:div.form-panel-right
(comp/mui
(comp/raised-button
Expand Down
32 changes: 4 additions & 28 deletions src/cljs/swarmpit/component/service/list.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
[swarmpit.component.mixin :as mixin]
[swarmpit.component.handler :as handler]
[swarmpit.routes :as routes]
[clojure.string :as string]
[sablono.core :refer-macros [html]]
[rum.core :as rum]))

Expand Down Expand Up @@ -67,20 +66,6 @@
[item]
(routes/path-for-frontend :service-info {:id (:serviceName item)}))

(defn- filter-unhealthy-items
[items name]
(let [is-running (fn [item] (= "running" (:state item)))
is-updating (fn [item] (= "updating" (get-in item [:status :update])))]
(filter #(and (string/includes? (:serviceName %) name)
(and (not (is-running %))
(not (is-updating %)))) items)))

(defn- filter-items
[items name unhealthy?]
(if unhealthy?
(filter-unhealthy-items items name)
(filter #(string/includes? (:serviceName %) name) items)))

(defn- services-handler
[]
(handler/get
Expand All @@ -90,8 +75,7 @@

(defn- init-state
[]
(state/set-value {:filter {:serviceName ""
:unhealthy false}} cursor))
(state/set-value {:filter {:query ""}} cursor))

(def mixin-init-form
(mixin/init-form
Expand All @@ -104,23 +88,15 @@
mixin/subscribe-form
mixin/focus-filter [_]
(let [{:keys [filter items]} (state/react cursor)
filtered-items (filter-items items
(:serviceName filter)
(:unhealthy filter))]
filtered-items (list/filter items (:query filter))]
[:div
[:div.form-panel
[:div.form-panel-left
(panel/text-field
{:id "filter"
:hintText "Filter by name"
:hintText "Search services"
:onChange (fn [_ v]
(state/update-value [:filter :serviceName] v cursor))})
[:span.form-panel-space]
(panel/checkbox
{:checked (:unhealthy filter)
:label "Show unhealthy"
:onCheck (fn [_ v]
(state/update-value [:filter :unhealthy] v cursor))})]
(state/update-value [:filter :query] v cursor))})]
[:div.form-panel-right
(comp/mui
(comp/raised-button
Expand Down
26 changes: 4 additions & 22 deletions src/cljs/swarmpit/component/task/list.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
[swarmpit.component.state :as state]
[swarmpit.component.handler :as handler]
[swarmpit.routes :as routes]
[clojure.string :as string]
[rum.core :as rum]))

(enable-console-print!)
Expand Down Expand Up @@ -54,14 +53,6 @@
[item]
(routes/path-for-frontend :task-info (select-keys item [:id])))

(defn- filter-items
[items name running?]
(let [is-running (fn [item] (= "running" (:state item)))]
(if running?
(filter #(and (string/includes? (:serviceName %) name)
(is-running %)) items)
(filter #(string/includes? (:serviceName %) name) items))))

(defn- tasks-handler
[]
(handler/get
Expand All @@ -71,8 +62,7 @@

(defn- init-state
[]
(state/set-value {:filter {:serviceName ""
:running true}} cursor))
(state/set-value {:filter {:query ""}} cursor))

(def mixin-init-form
(mixin/init-form
Expand All @@ -85,23 +75,15 @@
mixin/subscribe-form
mixin/focus-filter [_]
(let [{:keys [filter items]} (state/react cursor)
filtered-items (filter-items items
(:serviceName filter)
(:running filter))]
filtered-items (list/filter items (:query filter))]
[:div
[:div.form-panel
[:div.form-panel-left
(panel/text-field
{:id "filter"
:hintText "Filter by service name"
:hintText "Search tasks"
:onChange (fn [_ v]
(state/update-value [:filter :serviceName] v cursor))})
[:span.form-panel-space]
(panel/checkbox
{:checked (false? (:running filter))
:label "Show all"
:onCheck (fn [_ v]
(state/update-value [:filter :running] (false? v) cursor))})]]
(state/update-value [:filter :query] v cursor))})]]
(list/table headers
(sort-by :serviceName filtered-items)
(nil? items)
Expand Down

0 comments on commit 6c9c8db

Please sign in to comment.