From 935b6f9cd9e019b4442093e981ed0c4e9f954f35 Mon Sep 17 00:00:00 2001 From: Daniel O'Connell Date: Wed, 20 Apr 2022 20:31:05 +0200 Subject: [PATCH] mulit edit --- backend/src/chicken_master/orders.clj | 6 +++--- backend/src/chicken_master/time.clj | 3 ++- frontend/src/chicken_master/calendar.cljs | 6 +++++- frontend/src/chicken_master/events.cljs | 5 ++--- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/backend/src/chicken_master/orders.clj b/backend/src/chicken_master/orders.clj index 28bfda1..12cb969 100644 --- a/backend/src/chicken_master/orders.clj +++ b/backend/src/chicken_master/orders.clj @@ -75,7 +75,7 @@ :else nil ;; FIXME: What should happen if an invalid date is provided? ))) -(defn upsert-order! [tx user-id customer-id {:keys [id day notes update-type order-date recurrence]}] +(defn upsert-order! [tx user-id customer-id {:keys [id day notes action-type order-date recurrence] :as bla}] (let [updates (assoc? {:customer_id customer-id} :recurrence (some-> recurrence t/make-rule) :notes notes @@ -88,10 +88,10 @@ (-> order :orders/recurrence nil?) (update-non-recurring tx order updates) - (= :all update-type) + (= "all" action-type) (do (sql/update! tx :orders (set-dates order updates) {:id id}) id) - (= :from-here update-type) + (= "from-here" action-type) (update-from-date tx user-id order-date order updates) :else ; single item modified diff --git a/backend/src/chicken_master/time.clj b/backend/src/chicken_master/time.clj index 201d808..e9be8fc 100644 --- a/backend/src/chicken_master/time.clj +++ b/backend/src/chicken_master/time.clj @@ -1,4 +1,5 @@ (ns chicken-master.time + (:require [clojure.set :as set]) (:import [java.time Instant LocalDate ZoneOffset] [java.time.format DateTimeFormatter] [java.sql Timestamp] @@ -95,7 +96,7 @@ (-> rule (RecurrenceRule.) (.getFreq) - ((clojure.set/map-invert freq-units)))) + ((set/map-invert freq-units)))) (defn get-interval [rule] (.getInterval (RecurrenceRule. rule))) (defn set-interval [rule interval] diff --git a/frontend/src/chicken_master/calendar.cljs b/frontend/src/chicken_master/calendar.cljs index c4b26f6..4a37ce1 100644 --- a/frontend/src/chicken_master/calendar.cljs +++ b/frontend/src/chicken_master/calendar.cljs @@ -105,7 +105,11 @@ :order-edit [order-form @(re-frame/subscribe [::subs/editted-order])] ;; On success - :on-submit (fn [form] (re-frame/dispatch [::event/save-order (format-raw-order form)])))) + :on-submit (fn [form] + (let [order @(re-frame/subscribe [::subs/editted-order]) + event [::event/save-order (format-raw-order form)]] + (re-frame/dispatch [::event/change-order-type (:id order) event]) + :close-modal)))) (defn choose-order-type [] (let [{:keys [event]} @(re-frame/subscribe [::subs/order-type-edit])] diff --git a/frontend/src/chicken_master/events.cljs b/frontend/src/chicken_master/events.cljs index 4cb6a3b..e48148c 100644 --- a/frontend/src/chicken_master/events.cljs +++ b/frontend/src/chicken_master/events.cljs @@ -78,8 +78,6 @@ (re-frame/reg-event-fx ::change-order-type (fn [{db :db} [_ id event]] - (prn "changing" (-> db :orders (get id))) - (prn event) (if (-> db :orders (get id) :recurrence) {:db (assoc db :order-type-edit {:show true :order (-> db :orders (get id)) :event event})} {:db db :dispatch event}))) @@ -123,10 +121,11 @@ (re-frame/reg-event-fx ::save-order - (fn [{{order :order-edit} :db} [_ form]] + (fn [{{order :order-edit} :db} [_ form action-type]] {:dispatch [::hide-modal :order-edit] :http-xhrio (http-post "orders" (merge + {:action-type action-type} (select-keys order [:id :day :hour :state :order-date]) (select-keys form [:id :day :hour :state :who :notes :products :recurrence])))}))