Skip to content

Commit e6157ae

Browse files
committed
Quick view from main page.
Fixes #6
1 parent 2133532 commit e6157ae

2 files changed

Lines changed: 60 additions & 2 deletions

File tree

css/site.css

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,35 @@ path {
262262
.event span {
263263
}
264264

265+
#csv-view {
266+
position: fixed;
267+
max-width: 600px;
268+
width: 100%;
269+
background-color: white;
270+
height: 100%;
271+
top: 1em;
272+
padding: 1em;
273+
color: #333;
274+
margin-left: -1em;
275+
margin-top: -1em;
276+
margin-bottom: 0px;
277+
}
278+
279+
#csv-view .time {
280+
color: #333;
281+
}
282+
283+
#csv-view .description {
284+
color: #666;
285+
padding-left: 1em;
286+
}
287+
288+
#csv-view .close-csv {
289+
margin-left: auto;
290+
margin-right: 0.25em;
291+
display: block;
292+
}
293+
265294
#success-modal, #spinner-modal {
266295
position: fixed;
267296
top: 0px;

src/main.wisp

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,21 @@
9999
(set! (aget data :success-message) "Event type added.")))
100100
(request.catch (partial handle-error data))))
101101

102+
(defn show-csv [data data-url ev]
103+
(let [request (m.request {:method "GET"
104+
:url data-url
105+
:deserialize (fn [d] (.map (.split d "\n") (fn [l] (.split l ","))))
106+
:withCredentials true})]
107+
(set! (aget data :spinner) true)
108+
(set! (aget data :error) nil)
109+
(request.then
110+
(fn [response-data]
111+
(console.log "CSV:" response-data)
112+
(set! (aget data :spinner) false)
113+
(set! (aget data :error) nil)
114+
(set! (aget data :view-csv) response-data)))
115+
(request.catch (partial handle-error data))))
116+
102117
(defn update-event-name [data ev]
103118
(set! (aget data :event-name) (str ev.target.value))
104119
(set! (aget ev :redraw) false))
@@ -144,7 +159,7 @@
144159
(.map (get data :event-types)
145160
(fn [event-type i]
146161
(m :div {:class "event"}
147-
[(m :span (m :a {:href (str "data/" event-type ".csv")} (str event-type)))
162+
[(m :span {:onclick (partial show-csv data (str "data/" event-type ".csv"))} (str event-type))
148163
(m :button {:class (str "color-" (+ (mod i 5) 1))
149164
:onclick (partial log-event data event-type)} (svg-icon "check"))])))))
150165

@@ -183,6 +198,19 @@
183198
(if (.-length (get data :event-types))
184199
(component-csv-downloads data))]))]))
185200

201+
(defn component-csv-view [data]
202+
(m :div {:id "csv-view"}
203+
[(m :button {:class "close-csv"
204+
:onclick (fn [ev] (set! (aget data :view-csv) nil))}
205+
"x")
206+
(.map (.reverse (get data :view-csv))
207+
(fn [line]
208+
(if (== (.indexOf (get line 0) "timestamp") -1)
209+
(let [desc (or (get line 1) "")
210+
desc (.substring desc 1 (- (.-length desc) 1))]
211+
(m :div [(m :span {:class "time"} (get line 0))
212+
(m :span {:class "description"} desc)])))))]))
213+
186214
(defn component-success-message [data]
187215
(if (get data :success-message)
188216
(do
@@ -194,11 +222,12 @@
194222
(m :div [(m {:view (partial component-burger-menu data)})
195223
(m {:view (partial component-spinner data)})
196224
(if (not (get data :menu-show))
197-
( if (> (.-length (get data :event-types)) 0)
225+
(if (> (.-length (get data :event-types)) 0)
198226
[(m {:view (partial component-timestamp data)})
199227
(m {:view (partial component-comment data)})
200228
(m {:view (partial component-events data)})]
201229
(m :div {:id "message"} "To get started, add a new event-type in settings.")))
230+
(if (get data :view-csv) (m {:view (partial component-csv-view data)}))
202231
(m {:view (partial component-success-message data)})]))
203232

204233
; ***** Main ***** ;

0 commit comments

Comments
 (0)