|  | @@ -0,0 +1,84 @@
 | 
	
		
			
				|  |  | +(ns lineup.components.edit
 | 
	
		
			
				|  |  | +  (:require
 | 
	
		
			
				|  |  | +   [lineup.components.edit.selector :refer [task-selector]]
 | 
	
		
			
				|  |  | +   [lineup.events :as events]
 | 
	
		
			
				|  |  | +   [lineup.subs :as subs]
 | 
	
		
			
				|  |  | +   [re-com.core :as re-com]
 | 
	
		
			
				|  |  | +   [re-frame.core :as re-frame]))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(defn- task-editor [index task]
 | 
	
		
			
				|  |  | +  [re-com/h-box
 | 
	
		
			
				|  |  | +   :gap "20px"
 | 
	
		
			
				|  |  | +   :class "task-editor"
 | 
	
		
			
				|  |  | +   :padding "0 10px"
 | 
	
		
			
				|  |  | +   :align :center
 | 
	
		
			
				|  |  | +   :attr {:on-click #(re-frame/dispatch [::events/select-selecting index])}
 | 
	
		
			
				|  |  | +   :children
 | 
	
		
			
				|  |  | +   [[re-com/box
 | 
	
		
			
				|  |  | +     :size "none"
 | 
	
		
			
				|  |  | +     :child
 | 
	
		
			
				|  |  | +     [re-com/title
 | 
	
		
			
				|  |  | +      :label (inc index)
 | 
	
		
			
				|  |  | +      :level :level1]]
 | 
	
		
			
				|  |  | +    [re-com/box
 | 
	
		
			
				|  |  | +     :width "100px"
 | 
	
		
			
				|  |  | +     :height "100px"
 | 
	
		
			
				|  |  | +     :max-width "100px"
 | 
	
		
			
				|  |  | +     :max-height "100px"
 | 
	
		
			
				|  |  | +     :justify :center
 | 
	
		
			
				|  |  | +     :child
 | 
	
		
			
				|  |  | +     [:img
 | 
	
		
			
				|  |  | +      {:src (:image task)}]]
 | 
	
		
			
				|  |  | +    [re-com/box
 | 
	
		
			
				|  |  | +     :size "1"
 | 
	
		
			
				|  |  | +     :child
 | 
	
		
			
				|  |  | +     [re-com/title
 | 
	
		
			
				|  |  | +      :label (:name task)
 | 
	
		
			
				|  |  | +      :level :level3]]
 | 
	
		
			
				|  |  | +    [re-com/box
 | 
	
		
			
				|  |  | +     :size "none"
 | 
	
		
			
				|  |  | +     :child
 | 
	
		
			
				|  |  | +     ;TODO: add move up and move down buttons (row buttons)
 | 
	
		
			
				|  |  | +     [re-com/button
 | 
	
		
			
				|  |  | +      :label "X"
 | 
	
		
			
				|  |  | +      :on-click #(do
 | 
	
		
			
				|  |  | +                   (re-frame/dispatch [::events/remove-task index])
 | 
	
		
			
				|  |  | +                   (.stopPropagation %))]]]])
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(defn- schedule-editor []
 | 
	
		
			
				|  |  | +  (let [schedule-data (re-frame/subscribe [::subs/schedule])
 | 
	
		
			
				|  |  | +        library-data (re-frame/subscribe [::subs/library])
 | 
	
		
			
				|  |  | +        library (fn [id]
 | 
	
		
			
				|  |  | +                  (some #(when (= (:id %) id) %) @library-data))]
 | 
	
		
			
				|  |  | +    ;TODO: convert to table (with row buttons)
 | 
	
		
			
				|  |  | +    [re-com/v-box
 | 
	
		
			
				|  |  | +     :gap "10px"
 | 
	
		
			
				|  |  | +     :height "100%"
 | 
	
		
			
				|  |  | +     :children
 | 
	
		
			
				|  |  | +     (concat
 | 
	
		
			
				|  |  | +      (map-indexed
 | 
	
		
			
				|  |  | +       (fn [index task]
 | 
	
		
			
				|  |  | +         ^{:key (str "edit-task-" index)}
 | 
	
		
			
				|  |  | +         [task-editor index (library (:ref task))])
 | 
	
		
			
				|  |  | +       (:tasks @schedule-data []))
 | 
	
		
			
				|  |  | +      [[re-com/box
 | 
	
		
			
				|  |  | +        :max-width "50%"
 | 
	
		
			
				|  |  | +        :margin "0 0 0 20px"
 | 
	
		
			
				|  |  | +        :child
 | 
	
		
			
				|  |  | +        [re-com/button
 | 
	
		
			
				|  |  | +         :label "+"
 | 
	
		
			
				|  |  | +         :class "btn-primary btn-block"
 | 
	
		
			
				|  |  | +         :on-click #(re-frame/dispatch [::events/select-selecting (count (:tasks @schedule-data))])]]])]))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(defn edit []
 | 
	
		
			
				|  |  | +  (let [selecting (re-frame/subscribe [::subs/selecting])]
 | 
	
		
			
				|  |  | +    [re-com/v-box
 | 
	
		
			
				|  |  | +     :gap "10px"
 | 
	
		
			
				|  |  | +     :height "100%"
 | 
	
		
			
				|  |  | +     :children
 | 
	
		
			
				|  |  | +     [[re-com/title
 | 
	
		
			
				|  |  | +       :label "Schedule Editor"
 | 
	
		
			
				|  |  | +       :level :level3]
 | 
	
		
			
				|  |  | +      [schedule-editor]
 | 
	
		
			
				|  |  | +      (when @selecting
 | 
	
		
			
				|  |  | +        [task-selector @selecting])]]))
 |