Tue, 31 Aug 2021 20:48:37 +0200
Split batch, adjust mash step volume. In the duplicated log_brew handle the missing values. In save product, round the mash step sg to 4 decimals. In prod_edit, ingredients are stored as strings, not arrays. This triggered a memory corruption that only happened in rare circumstances. Don't fix mash step fields in the javascript, it is already done during load from the database. Calculation of the mash volume is rounded to 6 decimals. Enter mash step Brix/Plato value, the SG result is rounded to 4 decimals.
1 | 1 | |
2 | .jqx-widget-glacier { | |
3 | font-size: 12px; | |
4 | font-family: 'segoe ui', arial, sans-serif; | |
5 | } | |
6 | .jqx-widget-content-glacier{font-family: 'segoe ui', arial, sans-serif; border-color: #d7d7d7; color: #131619; background-color: #fff;} | |
7 | .jqx-widget-header-glacier{font-family: 'segoe ui', arial, sans-serif; color: #131619; border-color:#d7d7d7; background-color:#ebebeb;} | |
8 | .jqx-fill-state-normal-glacier{font-family: 'segoe ui', arial, sans-serif; border-color: #d7d7d7; color: #131619; background: #ffffff;} | |
9 | .jqx-fill-state-hover-glacier{border-color:#dedede; color: #131619; background-color:#dedede; | |
10 | ||
11 | } | |
12 | .jqx-fill-state-focus-glacier { border-color: #cdcdcd; } | |
13 | .jqx-fill-state-pressed-glacier{border-color:#006aae; color: #fff; background-color:#006aae;} | |
14 | .jqx-fill-state-pressed-glacier.jqx-calendar-cell-othermonth-glacier {color: #f7f3f2 !important;} | |
15 | .jqx-fill-state-pressed-glacier.jqx-grid-pager-number-glacier {color: #f7f3f2 !important;} | |
16 | .jqx-buttongroup-glacier .jqx-fill-state-pressed{border-color:#d7d7d7;} | |
17 | .jqx-listitem-state-group-glacier { | |
18 | color: #006aae; | |
19 | padding-left:6px; | |
20 | } | |
21 | ||
22 | .jqx-input-glacier { | |
23 | border-color: #d7d7d7; | |
24 | } | |
25 | .jqx-scrollbar-state-normal-glacier, .jqx-grid-bottomright-glacier, .jqx-panel-bottomright-glacier, .jqx-listbox-bottomright-glacier{background-color:#f4f4f4;} | |
26 | .jqx-widget-glacier .jqx-grid-column-header-glacier, .jqx-grid-cell-glacier, .jqx-widget-glacier .jqx-grid-cell-glacier, .jqx-widget-glacier .jqx-grid-group-cell-glacier, .jqx-grid-group-cell-glacier{font-family: 'segoe ui', arial, sans-serif; border-color:#d7d7d7;} | |
27 | .jqx-tabs-title-selected-bottom-glacier, .jqx-tabs-selection-tracker-bottom-glacier, .jqx-tabs-title-selected-top-glacier, .jqx-tabs-selection-tracker-top-glacier{color: #131619; border-color:#d7d7d7; border-bottom:1px solid #fff; background:#fff} | |
28 | .jqx-grid-cell-sort-alt-glacier, .jqx-grid-cell-filter-alt-glacier, .jqx-grid-cell-pinned-glacier, .jqx-grid-cell-alt-glacier, .jqx-grid-cell-sort-glacier{ background-color:#ededed; color: #131619;} | |
29 | .jqx-menu-vertical-glacier{background: #fff; border-color: #bcb6b8;} | |
30 | .jqx-widget-glacier .jqx-grid-cell-glacier, .jqx-widget-glacier .jqx-grid-column-header-glacier, .jqx-widget-glacier .jqx-grid-group-cell-glacier {color: #131619; border-color: #d7d7d7;} | |
31 | .jqx-widget-glacier .jqx-grid-column-menubutton-glacier, .jqx-widget-glacier .jqx-grid-column-sortascbutton-glacier, .jqx-widget-glacier .jqx-grid-column-sortdescbutton-glacier, .jqx-widget-glacier .jqx-grid-column-filterbutton-glacier { | |
32 | background-color: transparent; | |
33 | border-color: #d7d7d7; | |
34 | } | |
35 | .jqx-window-header-glacier, .jqx-input-button-header-glacier, .jqx-calendar-title-header-glacier, .jqx-grid-glacier .jqx-widget-header-glacier, .jqx-grid-header-glacier, .jqx-grid-column-header-glacier {font-family: 'segoe ui', arial, sans-serif; border-color:#d7d7d7; background-color:#ebebeb; color: #131619;} | |
36 | .jqx-grid-column-menubutton-glacier { | |
37 | background-image: url('images/metro-icon-down.png'); | |
38 | } | |
39 | .jqx-widget-glacier .jqx-grid-cell-selected-glacier, .jqx-grid-cell-selected-glacier{ background-color:#006aae; border-color: #006aae; color:#fff;} | |
40 | .jqx-grid-cell-hover-glacier{ background-color:#dedede;} | |
41 | /*applied to the column's sort button when the sort order is ascending.*/ | |
42 | .jqx-grid-column-sortascbutton-glacier { | |
43 | background-image: url('images/metro-icon-up.png'); | |
44 | } | |
45 | .jqx-grid-column-sortdescbutton-glacier { | |
46 | background-image: url('images/metro-icon-down.png'); | |
47 | } | |
48 | .jqx-checkbox-hover-glacier { | |
49 | background-color: #fff; | |
50 | } | |
51 | .jqx-radiobutton-hover-glacier { | |
52 | background-color: #fff; | |
53 | } | |
54 | .jqx-scrollbar-thumb-state-normal-horizontal-glacier, .jqx-scrollbar-thumb-state-normal-glacier { | |
55 | background: #cdcdcd; border-color: #cdcdcd; | |
56 | } | |
57 | .jqx-scrollbar-thumb-state-hover-horizontal-glacier, .jqx-scrollbar-thumb-state-hover-glacier { | |
58 | background: #a6a6a6; border-color: #a6a6a6; | |
59 | } | |
60 | .jqx-scrollbar-thumb-state-pressed-horizontal-glacier, .jqx-scrollbar-thumb-state-pressed-glacier { | |
61 | background: #606060; border-color: #606060; | |
62 | } | |
63 | .jqx-scrollbar-button-state-normal-glacier | |
64 | { | |
65 | border: 1px solid #f4f4f4; | |
66 | background: #f4f4f4; | |
67 | } | |
68 | /*applied to the scrollbar buttons in hovered state.*/ | |
69 | .jqx-scrollbar-button-state-hover-glacier | |
70 | { | |
71 | border: 1px solid #dadada; | |
72 | background: #dadada; | |
73 | } | |
74 | /*applied to the scrollbar buttons in pressed state.*/ | |
75 | .jqx-scrollbar-button-state-pressed-glacier | |
76 | { | |
77 | border: 1px solid #606060; | |
78 | background: #606060; | |
79 | } | |
80 | ||
81 | /*icons*/ | |
82 | .jqx-window-collapse-button-glacier | |
83 | { | |
733
67bf19c50fcc
Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
451
diff
changeset
|
84 | background-image: url(./images/metro-icon-up.png); |
1 | 85 | } |
86 | .jqx-window-collapse-button-collapsed-glacier { | |
733
67bf19c50fcc
Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
451
diff
changeset
|
87 | background-image: url(./images/metro-icon-down.png); |
1 | 88 | } |
89 | .jqx-icon-arrow-up-glacier, .jqx-expander-arrow-bottom-glacier, .jqx-menu-item-arrow-up-glacier | |
90 | { | |
91 | background-image: url('images/metro-icon-up.png'); | |
92 | } | |
93 | .jqx-icon-arrow-down-glacier, .jqx-expander-arrow-top-glacier, .jqx-tree-item-arrow-expand-glacier, .jqx-tree-item-arrow-expand-hover-glacier, .jqx-menu-item-arrow-down-glacier | |
94 | { | |
95 | background-image: url('images/metro-icon-down.png'); | |
96 | } | |
97 | .jqx-icon-arrow-left-glacier, .jqx-menu-item-arrow-left-glacier | |
98 | { | |
99 | background-image: url('images/metro-icon-left.png'); | |
100 | } | |
101 | .jqx-icon-arrow-right-glacier, .jqx-menu-item-arrow-right-glacier, .jqx-tree-item-arrow-collapse-glacier, .jqx-tree-item-arrow-collapse-hover-glacier | |
102 | { | |
103 | background-image: url('images/metro-icon-right.png'); | |
104 | } | |
105 | .jqx-tabs-arrow-left-glacier, .jqx-tree-item-arrow-collapse-rtl-glacier, .jqx-tree-item-arrow-collapse-hover-rtl-glacier | |
106 | { | |
107 | background-image: url('images/metro-icon-left.png'); | |
108 | } | |
109 | .jqx-tabs-arrow-right-glacier | |
110 | { | |
111 | background-image: url('images/metro-icon-right.png'); | |
112 | } | |
113 | .jqx-menu-item-arrow-up-selected-glacier, .jqx-icon-arrow-up-selected-glacier{background-image:url('images/metro-icon-up-white.png');background-repeat:no-repeat;background-position:center;} | |
114 | .jqx-menu-item-arrow-down-selected-glacier, .jqx-icon-arrow-down-selected-glacier{background-image:url('images/metro-icon-down-white.png');background-repeat:no-repeat;background-position:center;} | |
115 | .jqx-menu-item-arrow-left-selected-glacier, .jqx-icon-arrow-left-selected-glacier{background-image:url('images/metro-icon-left-white.png');background-repeat:no-repeat;background-position:center;} | |
116 | .jqx-menu-item-arrow-right-selected-glacier, .jqx-icon-arrow-right-selected-glacier{background-image:url('images/metro-icon-right-white.png');background-repeat:no-repeat;background-position:center;} | |
733
67bf19c50fcc
Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
451
diff
changeset
|
117 | .jqx-tabs-close-button-glacier{background-image:url(./images/close.png); background-repeat:no-repeat; background-position:center;} |
67bf19c50fcc
Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
451
diff
changeset
|
118 | .jqx-tabs-close-button-selected-glacier{background-image:url(./images/close.png); background-repeat:no-repeat; background-position:center;} |
67bf19c50fcc
Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
451
diff
changeset
|
119 | .jqx-tabs-close-button-hover-glacier{background-image:url(./images/close.png); background-repeat:no-repeat; background-position:center;} |
1 | 120 | .jqx-scrollbar-glacier .jqx-icon-arrow-up-selected-glacier{background-image:url('images/metro-icon-up-white.png'); background-repeat:no-repeat; background-position:center;} |
121 | .jqx-scrollbar-glacier .jqx-icon-arrow-down-selected-glacier{background-image:url('images/metro-icon-down-white.png'); background-repeat:no-repeat; background-position:center;} | |
122 | .jqx-scrollbar-glacier .jqx-icon-arrow-left-selected-glacier{background-image:url('images/metro-icon-left-white.png'); background-repeat:no-repeat; background-position:center;} | |
123 | .jqx-scrollbar-glacier .jqx-icon-arrow-right-selected-glacier{background-image:url('images/metro-icon-right-white.png');background-repeat:no-repeat; background-position:center;} | |
124 | .jqx-slider-slider-glacier | |
125 | { | |
126 | border-color:#cdcdcd; | |
127 | } | |
128 | .jqx-slider-button-glacier | |
129 | { | |
130 | -moz-border-radius: 9px; | |
131 | -webkit-border-radius: 9px; | |
132 | border-radius: 9px; | |
133 | border-color: #cdcdcd; | |
134 | } | |
135 | .jqx-input-button-content-glacier | |
136 | { | |
137 | font-size: 10px; | |
138 | } | |
139 | .jqx-dropdownlist-state-normal-glacier, .jqx-dropdownlist-state-hover-glacier, .jqx-dropdownlist-state-selected-glacier, | |
140 | .jqx-scrollbar-button-state-hover-glacier, .jqx-scrollbar-button-state-normal-glacier, .jqx-scrollbar-button-state-pressed-glacier, | |
141 | .jqx-scrollbar-thumb-state-normal-horizontal-glacier, .jqx-scrollbar-thumb-state-hover-horizontal-glacier, .jqx-scrollbar-thumb-state-pressed-horizontal-glacier, | |
142 | .jqx-scrollbar-thumb-state-normal-glacier, .jqx-scrollbar-thumb-state-pressed-glacier, .jqx-button-glacier, .jqx-tree-item-hover-glacier, .jqx-tree-item-selected-glacier, | |
143 | .jqx-tree-item-glacier, .jqx-menu-item-glacier, .jqx-menu-item-hover-glacier, .jqx-menu-item-selected-glacier, .jqx-menu-item-top-glacier, .jqx-menu-item-top-hover-glacier, | |
144 | .jqx-menu-item-top-selected-glacier, .jqx-slider-button-glacier, .jqx-slider-slider-glacier | |
145 | { | |
146 | -webkit-transition: background-color 100ms linear; | |
147 | -moz-transition: background-color 100ms linear; | |
148 | -o-transition: background-color 100ms linear; | |
149 | -ms-transition: background-color 100ms linear; | |
150 | transition: background-color 100ms linear; | |
151 | } | |
152 | .jqx-switchbutton-glacier { | |
153 | -moz-border-radius: 0px; | |
154 | -webkit-border-radius: 0px; | |
155 | border-radius: 0px; | |
156 | border: 2px solid #a6a6a6; | |
157 | } | |
158 | .jqx-switchbutton-thumb-glacier { | |
159 | width: 12px; | |
160 | background: #000; | |
161 | border: 1px solid #000; | |
162 | } | |
163 | .jqx-switchbutton-label-on-glacier { | |
164 | background: #006aae; | |
165 | color: #006aae; | |
166 | } | |
167 | .jqx-switchbutton-label-off-glacier { | |
168 | background: #a6a6a6; | |
169 | color: #a6a6a6; | |
170 | } | |
171 | ||
172 | .jqx-switchbutton-wrapper-glacier { | |
173 | } | |
174 | .jqx-grid-cell-glacier.jqx-grid-cell-selected-glacier>.jqx-grid-group-expand-glacier { | |
175 | background-image: url('images/metro-icon-down-white.png'); | |
176 | background-repeat: no-repeat; | |
177 | background-position: center; | |
178 | } | |
179 | .jqx-grid-cell-glacier.jqx-grid-cell-selected-glacier>.jqx-grid-group-collapse-glacier{ | |
180 | background-image: url('images/metro-icon-right-white.png'); | |
181 | background-repeat: no-repeat; | |
182 | background-position: center; | |
183 | } | |
184 | .jqx-grid-cell-glacier.jqx-grid-cell-selected-glacier>.jqx-grid-group-collapse-rtl-glacier { | |
185 | background-image: url('images/metro-icon-left-white.png'); | |
186 | background-repeat: no-repeat; | |
187 | background-position: center; | |
188 | } | |
189 | .jqx-grid-cell-glacier.jqx-grid-cell-selected-glacier>.jqx-grid-group-expand-rtl-glacier{ | |
190 | background-image: url('images/metro-icon-down-white.png'); | |
191 | background-repeat: no-repeat; | |
192 | background-position: center; | |
193 | } | |
194 | .jqx-grid-group-collapse-glacier { | |
733
67bf19c50fcc
Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
451
diff
changeset
|
195 | background-image: url(./images/metro-icon-right.png); |
1 | 196 | background-position: 50% 50%; |
197 | background-repeat: no-repeat; | |
198 | } | |
199 | .jqx-grid-group-collapse-rtl-glacier | |
200 | { | |
201 | padding-right: 0px; | |
733
67bf19c50fcc
Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
451
diff
changeset
|
202 | background-image: url(./images/metro-icon-left.png); |
1 | 203 | background-position: 50% 50%; |
204 | background-repeat: no-repeat; | |
205 | } | |
206 | .jqx-grid-group-expand-glacier, .jqx-grid-group-expand-rtl-glacier | |
207 | { | |
208 | padding-right: 0px; | |
733
67bf19c50fcc
Upgraded jqwidgets from 9.0.0 to 12.0.1
Michiel Broek <mbroek@mbse.eu>
parents:
451
diff
changeset
|
209 | background-image: url(./images/metro-icon-down.png); |
1 | 210 | background-position: 50% 50%; |
211 | background-repeat: no-repeat; | |
212 | } | |
213 | .jqx-icon-arrow-first-glacier | |
214 | { | |
215 | background-image: url('images/metro-icon-first.png'); | |
216 | background-repeat: no-repeat; | |
217 | background-position: center; | |
218 | } | |
219 | .jqx-icon-arrow-last-glacier | |
220 | { | |
221 | background-image: url('images/metro-icon-last.png'); | |
222 | background-repeat: no-repeat; | |
223 | background-position: center; | |
224 | } | |
225 | .jqx-icon-arrow-first-hover-glacier | |
226 | { | |
227 | background-image: url('images/metro-icon-first.png'); | |
228 | background-repeat: no-repeat; | |
229 | background-position: center; | |
230 | } | |
231 | .jqx-icon-arrow-last-hover-glacier | |
232 | { | |
233 | background-image: url('images/metro-icon-last.png'); | |
234 | background-repeat: no-repeat; | |
235 | background-position: center; | |
236 | } | |
237 | .jqx-icon-arrow-first-selected-glacier | |
238 | { | |
239 | background-image: url('images/metro-icon-first-white.png'); | |
240 | background-repeat: no-repeat; | |
241 | background-position: center; | |
242 | } | |
243 | .jqx-icon-arrow-last-selected-glacier | |
244 | { | |
245 | background-image: url('images/metro-icon-last-white.png'); | |
246 | background-repeat: no-repeat; | |
247 | background-position: center; | |
248 | } | |
249 | .jqx-tree-grid-collapse-button-glacier { | |
250 | margin-top: 1px; | |
251 | } | |
252 | .jqx-icon-calendar-pressed-glacier { | |
253 | background-image: url('images/icon-calendar-white.png'); | |
254 | } | |
255 | .jqx-icon-time-pressed-glacier { | |
256 | background-image: url('images/icon-time-white.png'); | |
257 | } | |
451
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
258 | /*applied to the timepicker*/ |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
259 | .jqx-svg-picker-glacier { |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
260 | border: 1px solid #4db8ff; |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
261 | } |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
262 | .jqx-svg-picker-glacier:hover { |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
263 | border: 1px solid #006bb3; |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
264 | } |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
265 | .jqx-svg-picker-glacier:focus { |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
266 | border: 1px solid #006aae !important; |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
267 | } |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
268 | .jqx-label-glacier { |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
269 | fill: #006aae; |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
270 | } |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
271 | .jqx-needle-glacier { |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
272 | fill: #004a73; |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
273 | } |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
274 | .jqx-needle-central-circle-glacier { |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
275 | fill: #004a73; |
259c97782bf8
Upgraded jqwidgets from 7.2.0 to 8.1.4
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
276 | } |