|
22 | 22 | (s/def ::id pos-int?) |
23 | 23 | (s/def ::reference |
24 | 24 | (s/and |
25 | | - #(instance? Reference %) |
26 | | - (s/keys :req-un [::id ::comlib/text ::comlib/url]))) |
| 25 | + #(instance? Reference %) |
| 26 | + (s/keys :req-un [::id ::comlib/text ::comlib/url]))) |
27 | 27 |
|
28 | 28 | ;;;; Handlers & Queries |
29 | 29 | (defn- reference-usage-handler |
|
66 | 66 | (query [this] [:uid :author :issue :conclusion :premise]) |
67 | 67 | Object |
68 | 68 | (render [this] |
69 | | - (let [{:keys [uid author issue texts]} (om/props this) |
70 | | - intro (textref/reference-usage-intro (:nickname author) (:conclusion texts) (:premise texts) (:attacks texts))] |
71 | | - (html [:div.bs-callout.bs-callout-info |
72 | | - [:div.pull-right |
73 | | - (bs/button-default-sm #(comlib/jump-to-argument (:slug issue) uid) |
74 | | - (vlib/fa-icon "fa-comment-o"))] |
75 | | - [:a {:href "javascript:void(0)" |
76 | | - :onClick #(comlib/jump-to-argument (:slug issue) uid)} |
77 | | - [:strong (vlib/safe-html intro)]] |
78 | | - [:div (t :common :author) ": " (:nickname author)] |
79 | | - [:div (t :common :issue) ": " (:title issue)]])))) |
| 69 | + (let [{:keys [uid author issue texts is_supportive]} (om/props this) |
| 70 | + intro (textref/reference-usage-intro (:nickname author) (:conclusion texts) (:premise texts) (:attacks texts) is_supportive)] |
| 71 | + (html [:div.bs-callout.bs-callout-info |
| 72 | + [:div.pull-right |
| 73 | + (bs/button-default-sm #(comlib/jump-to-argument (:slug issue) uid) |
| 74 | + (vlib/fa-icon "fa-comment-o"))] |
| 75 | + [:a {:href "javascript:void(0)" |
| 76 | + :onClick #(comlib/jump-to-argument (:slug issue) uid)} |
| 77 | + [:strong (vlib/safe-html intro)]] |
| 78 | + [:div (t :common :author) ": " (:nickname author)] |
| 79 | + [:div (t :common :issue) ": " (:title issue)]])))) |
80 | 80 | (def reference-usage-for-single-argument (om/factory ReferenceUsageForSingleArgumentView {:keyfn :uid})) |
81 | 81 |
|
82 | 82 | (defui ReferenceUsagesForArgumentsView |
83 | 83 | static om/IQuery |
84 | 84 | (query [this] [:arguments]) |
85 | 85 | Object |
86 | 86 | (render [this] |
87 | | - (let [{:keys [arguments]} (om/props this)] |
88 | | - (html [:div |
89 | | - (map reference-usage-for-single-argument arguments)])))) |
| 87 | + (let [{:keys [arguments]} (om/props this)] |
| 88 | + (html [:div |
| 89 | + (map reference-usage-for-single-argument arguments)])))) |
90 | 90 | (def reference-usages-for-arguments (om/factory ReferenceUsagesForArgumentsView {:keyfn :arguments})) |
91 | 91 |
|
92 | 92 | (defui UsagesView |
93 | 93 | "Complete list of all references and all their usages in their arguments." |
94 | 94 | static om/IQuery |
95 | 95 | (query [this] |
96 | | - [:references/usages :references/selected]) |
| 96 | + [:references/usages :references/selected]) |
97 | 97 | Object |
98 | 98 | (render [this] |
99 | | - (let [{:keys [references/usages references/selected]} (om/props this)] |
100 | | - (html [:div |
101 | | - (if-not (empty? selected) |
102 | | - [:div |
103 | | - (vlib/view-header (t :references :usages/view-heading)) |
104 | | - [:p.text-center (t :references :usages/lead)] |
105 | | - [:div.text-center |
106 | | - [:p [:em.text-info (format "\"%s\"" (:text selected))]] |
107 | | - [:div.btn.btn-primary {:onClick (fn [_e] |
108 | | - (lib/save-selection! (:text selected)) |
109 | | - (lib/change-view! :create/argument))} |
110 | | - (t :create/argument :short)]] |
111 | | - (when (seq usages) |
112 | | - [:div |
113 | | - [:hr] |
114 | | - [:p.text-center (t :references :usages/list) "."] |
115 | | - (reference-usages-for-arguments usages)])] |
116 | | - [:div.text-center |
117 | | - (vlib/view-header (t :references :usages/not-found-lead)) |
118 | | - [:p (t :references :usages/not-found-body) "."]])])))) |
| 99 | + (let [{:keys [references/usages references/selected]} (om/props this)] |
| 100 | + (html [:div |
| 101 | + (if-not (empty? selected) |
| 102 | + [:div |
| 103 | + (vlib/view-header (t :references :usages/view-heading)) |
| 104 | + [:p.text-center (t :references :usages/lead)] |
| 105 | + [:div.text-center |
| 106 | + [:p [:em.text-info (format "\"%s\"" (:text selected))]] |
| 107 | + [:div.btn.btn-primary {:onClick (fn [_e] |
| 108 | + (lib/save-selection! (:text selected)) |
| 109 | + (lib/change-view! :create/argument))} |
| 110 | + (t :create/argument :short)]] |
| 111 | + (when (seq usages) |
| 112 | + [:div |
| 113 | + [:hr] |
| 114 | + [:p.text-center (t :references :usages/list) "."] |
| 115 | + (reference-usages-for-arguments usages)])] |
| 116 | + [:div.text-center |
| 117 | + (vlib/view-header (t :references :usages/not-found-lead)) |
| 118 | + [:p (t :references :usages/not-found-body) "."]])])))) |
119 | 119 | (def usages-view-next (om/factory UsagesView)) |
120 | 120 |
|
121 | 121 | (defui ReferenceView |
122 | 122 | "Nested reference link in text." |
123 | 123 | Object |
124 | 124 | (render [this] |
125 | | - (let [{:keys [text url id dom-pre dom-post]} (om/props this)] |
126 | | - (html [:span |
127 | | - [:span dom-pre] |
128 | | - [:span.arguments.pointer {:onClick #(click-reference (Reference. id text url))} |
129 | | - text " " (vlib/logo)] |
130 | | - [:span dom-post]])))) |
| 125 | + (let [{:keys [text url id dom-pre dom-post]} (om/props this)] |
| 126 | + (html [:span |
| 127 | + [:span dom-pre] |
| 128 | + [:span.arguments.pointer {:onClick #(click-reference (Reference. id text url))} |
| 129 | + text " " (vlib/logo)] |
| 130 | + [:span dom-post]])))) |
131 | 131 | (def reference (om/factory ReferenceView)) |
0 commit comments