redmineup 1.1.3 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,476 @@
1
+ /* ============================================================
2
+ SELECT2 (from select2.css)
3
+ ============================================================ */
4
+ .select2-container {
5
+ box-sizing: border-box;
6
+ display: inline-block;
7
+ margin: 0;
8
+ position: relative;
9
+ vertical-align: middle;
10
+ }
11
+ .select2-container .select2-selection--single {
12
+ box-sizing: border-box;
13
+ cursor: pointer;
14
+ display: block;
15
+ height: 28px;
16
+ user-select: none;
17
+ -webkit-user-select: none;
18
+ }
19
+ .select2-container .select2-selection--single .select2-selection__rendered {
20
+ display: block;
21
+ padding-left: 8px;
22
+ padding-right: 20px;
23
+ overflow: hidden;
24
+ text-overflow: ellipsis;
25
+ white-space: nowrap;
26
+ }
27
+ .select2-container .select2-selection--single .select2-selection__clear {
28
+ position: relative;
29
+ }
30
+ .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
31
+ padding-right: 8px;
32
+ padding-left: 20px;
33
+ }
34
+ .select2-container .select2-selection--multiple {
35
+ box-sizing: border-box;
36
+ cursor: pointer;
37
+ display: block;
38
+ min-height: 24px;
39
+ user-select: none;
40
+ -webkit-user-select: none;
41
+ }
42
+ .select2-container .select2-selection--multiple .select2-selection__rendered {
43
+ /*display: inline-block;*/
44
+ overflow: hidden;
45
+ padding-left: 8px;
46
+ text-overflow: ellipsis;
47
+ white-space: nowrap;
48
+ }
49
+ .select2-container .select2-search--inline {
50
+ float: left;
51
+ }
52
+ .select2-container .select2-search--inline .select2-search__field {
53
+ box-sizing: border-box;
54
+ border: none;
55
+ font-size: 100%;
56
+ margin-top: 2px;
57
+ padding: 0;
58
+ }
59
+ .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
60
+ -webkit-appearance: none;
61
+ }
62
+
63
+ .select2-dropdown {
64
+ background-color: white;
65
+ border: 1px solid #aaa;
66
+ border-radius: 4px;
67
+ box-sizing: border-box;
68
+ display: block;
69
+ position: absolute;
70
+ left: -100000px;
71
+ width: 100%;
72
+ z-index: 1051;
73
+ }
74
+
75
+ .select2-results {
76
+ display: block;
77
+ }
78
+
79
+ .select2-results__options {
80
+ list-style: none;
81
+ margin: 0;
82
+ padding: 0;
83
+ }
84
+
85
+ .select2-results__option {
86
+ padding: 6px;
87
+ user-select: none;
88
+ -webkit-user-select: none;
89
+ }
90
+ .select2-results__option[aria-selected] {
91
+ cursor: pointer;
92
+ }
93
+
94
+ .select2-container--open .select2-dropdown {
95
+ left: 0;
96
+ }
97
+
98
+ .select2-container--open .select2-dropdown--above {
99
+ border-bottom: none;
100
+ border-bottom-left-radius: 0;
101
+ border-bottom-right-radius: 0;
102
+ }
103
+
104
+ .select2-container--open .select2-dropdown--below {
105
+ border-top: none;
106
+ border-top-left-radius: 0;
107
+ border-top-right-radius: 0;
108
+ }
109
+
110
+ .select2-search--dropdown {
111
+ display: block;
112
+ padding: 4px;
113
+ }
114
+ .select2-search--dropdown .select2-search__field {
115
+ padding: 4px;
116
+ width: 100%;
117
+ box-sizing: border-box;
118
+ }
119
+ .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
120
+ -webkit-appearance: none;
121
+ }
122
+ .select2-search--dropdown.select2-search--hide {
123
+ display: none;
124
+ }
125
+
126
+ .select2-close-mask {
127
+ border: 0;
128
+ margin: 0;
129
+ padding: 0;
130
+ display: block;
131
+ position: fixed;
132
+ left: 0;
133
+ top: 0;
134
+ min-height: 100%;
135
+ min-width: 100%;
136
+ height: auto;
137
+ width: auto;
138
+ opacity: 0;
139
+ z-index: 99;
140
+ background-color: #fff;
141
+ filter: alpha(opacity=0);
142
+ }
143
+
144
+ .select2-hidden-accessible {
145
+ border: 0 !important;
146
+ clip: rect(0 0 0 0) !important;
147
+ height: 1px !important;
148
+ margin: -1px !important;
149
+ overflow: hidden !important;
150
+ padding: 0 !important;
151
+ position: absolute !important;
152
+ width: 1px !important;
153
+ }
154
+
155
+ .select2-container--default .select2-selection--single {
156
+ background-color: #fff;
157
+ height: 24px;
158
+ border: 1px solid #ccc;
159
+ border-radius: 3px;
160
+ }
161
+
162
+ .select2-container--default .select2-selection--single.icon {
163
+ background-position-x: 3px;
164
+ }
165
+
166
+ .select2-container--default .select2-selection--single .select2-selection__rendered {
167
+ line-height: 21px;
168
+ font-size: 11px;
169
+ }
170
+
171
+ .select2-container--default .select2-selection--single.icon .select2-selection__rendered {
172
+ padding-left: 2px
173
+ }
174
+
175
+ .select2-container--default .select2-selection--single .select2-selection__clear {
176
+ cursor: pointer;
177
+ float: right;
178
+ font-weight: normal;
179
+ color: #888;
180
+ }
181
+ .select2-container--default .select2-selection--single .select2-selection__placeholder {
182
+ color: #999;
183
+ }
184
+ .select2-container--default .select2-selection--single .select2-selection__arrow {
185
+ height: 24px;
186
+ position: absolute;
187
+ top: 0px;
188
+ right: 1px;
189
+ width: 20px;
190
+ }
191
+ .select2-container--default .select2-selection--single .select2-selection__arrow b {
192
+ border-color: #888 transparent transparent transparent;
193
+ border-style: solid;
194
+ border-width: 5px 4px 0 4px;
195
+ height: 0;
196
+ left: 50%;
197
+ margin-left: -4px;
198
+ margin-top: -2px;
199
+ position: absolute;
200
+ top: 50%;
201
+ width: 0;
202
+ }
203
+ .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
204
+ float: left;
205
+ }
206
+ .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
207
+ left: 1px;
208
+ right: auto;
209
+ }
210
+ .select2-container--default.select2-container--disabled .select2-selection--single {
211
+ background-color: #eee;
212
+ cursor: default;
213
+ }
214
+ .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
215
+ display: none;
216
+ }
217
+ .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
218
+ border-color: transparent transparent #888 transparent;
219
+ border-width: 0 4px 5px 4px;
220
+ }
221
+ .select2-container--default .select2-selection--multiple {
222
+ background-color: white;
223
+ border: 1px solid #ccc;
224
+ border-radius: 3px;
225
+ cursor: text;
226
+ }
227
+
228
+ #sidebar .select2-container--default .select2-selection--multiple .select2-selection__rendered,
229
+ .select2-container--default .select2-selection--multiple .select2-selection__rendered {
230
+ box-sizing: border-box;
231
+ list-style: none;
232
+ margin: 0;
233
+ padding: 0 2px 1px 2px;
234
+ width: 100%;
235
+ }
236
+ .select2-container--default .select2-selection--multiple .select2-selection__rendered li {
237
+ list-style: none;
238
+ }
239
+ .select2-container--default .select2-selection--multiple .select2-selection__placeholder {
240
+ color: #999;
241
+ margin-top: 5px;
242
+ float: left;
243
+ }
244
+ .select2-container--default .select2-selection--multiple .select2-selection__clear {
245
+ cursor: pointer;
246
+ float: right;
247
+ font-weight: bold;
248
+ margin-top: 2px;
249
+ margin-right: 2px;
250
+ }
251
+
252
+ #sidebar .select2-container--default .select2-selection--multiple .select2-selection__choice,
253
+ .select2-container--default .select2-selection--multiple .select2-selection__choice {
254
+ background-color: #efefef;
255
+ border-radius: 2px;
256
+ cursor: default;
257
+ float: left;
258
+ margin-right: 2px;
259
+ margin-top: 2px;
260
+ padding: 0 3px;
261
+ }
262
+ .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
263
+ color: #aaa;
264
+ cursor: pointer;
265
+ display: inline-block;
266
+ font-weight: normal;
267
+ margin-right: 2px;
268
+ }
269
+ .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
270
+ color: #333;
271
+ }
272
+ .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
273
+ float: right;
274
+ }
275
+ .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
276
+ margin-left: 5px;
277
+ margin-right: auto;
278
+ }
279
+ .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
280
+ margin-left: 2px;
281
+ margin-right: auto;
282
+ }
283
+ .select2-container--default.select2-container--focus .select2-selection--multiple {
284
+ border: 1px solid #5ad;
285
+ outline: none;
286
+ }
287
+ .select2-container--default.select2-container--disabled .select2-selection--multiple {
288
+ background-color: #eee;
289
+ cursor: default;
290
+ }
291
+ .select2-container--default.select2-container--disabled .select2-selection__choice__remove {
292
+ display: none;
293
+ }
294
+ .select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
295
+ border-top-left-radius: 0;
296
+ border-top-right-radius: 0;
297
+ }
298
+ .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
299
+ border-bottom-left-radius: 0;
300
+ border-bottom-right-radius: 0;
301
+ }
302
+ .select2-container--default .select2-search--dropdown .select2-search__field {
303
+ border: 1px solid #aaa;
304
+ }
305
+ .select2-container--default .select2-search--inline .select2-search__field {
306
+ background: transparent;
307
+ border: none;
308
+ outline: 0;
309
+ box-shadow: none;
310
+ -webkit-appearance: textfield;
311
+ height: 18px;
312
+ }
313
+ .select2-container--default .select2-results > .select2-results__options {
314
+ max-height: 200px;
315
+ overflow-y: auto;
316
+ }
317
+ .select2-container--default .select2-results__option[role=group] {
318
+ padding: 0;
319
+ }
320
+ .select2-container--default .select2-results__option[aria-disabled=true] {
321
+ color: #999;
322
+ }
323
+ .select2-container--default .select2-results__option[aria-selected=true] {
324
+ background-color: #eee;
325
+ }
326
+ .select2-container--default .select2-results__option .select2-results__option {
327
+ padding-left: 1em;
328
+ }
329
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__group {
330
+ padding-left: 0;
331
+ }
332
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option {
333
+ margin-left: -1em;
334
+ padding-left: 2em;
335
+ }
336
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
337
+ margin-left: -2em;
338
+ padding-left: 3em;
339
+ }
340
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
341
+ margin-left: -3em;
342
+ padding-left: 4em;
343
+ }
344
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
345
+ margin-left: -4em;
346
+ padding-left: 5em;
347
+ }
348
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
349
+ margin-left: -5em;
350
+ padding-left: 6em;
351
+ }
352
+ .select2-container--default .select2-results__option--highlighted[aria-selected] {
353
+ background-color: #eef5fd;
354
+ }
355
+ .select2-container--default .select2-results__group {
356
+ cursor: default;
357
+ display: block;
358
+ padding: 6px;
359
+ }
360
+
361
+ .filter .select2 {
362
+ margin: 1px;
363
+ min-width: 130px;
364
+ }
365
+
366
+ .filter .select2-selection--multiple .select2-search--inline .select2-search__field {
367
+ border: 0px !important;
368
+ height: inherit !important;
369
+ padding: 0px !important;
370
+ }
371
+
372
+ .filter .select2-container--default .select2-selection--multiple .select2-selection__choice {
373
+ outline: none;
374
+ border: 0px;
375
+ padding: 3px 5px;
376
+ }
377
+
378
+ /* ============================================================
379
+ TAGS
380
+ ============================================================ */
381
+
382
+ #sidebar ul.tags-cloud { list-style: none; padding: 0; }
383
+ #sidebar ul.tags-cloud li { margin: .25em 0; }
384
+
385
+ div.tags-cloud { text-align: center; }
386
+
387
+ .tag-label-color {
388
+ border: 1px solid rgba(0, 0, 0, 0.2);
389
+ border-radius: 3px;
390
+ padding: 2px 4px;
391
+ display: inline-block;
392
+ font-size: 10px;
393
+ margin: 0 0 5px 2px;
394
+ color: white;
395
+ }
396
+
397
+ table.list tr.issue .tag-label-color a,
398
+ .tag-label-color a { color: white; text-decoration: none; font-weight: normal; }
399
+
400
+ .tag-label-color:hover { filter: brightness(0.85); }
401
+
402
+ .tag_list { margin-top: 5px; display: inline-block; }
403
+
404
+ span.tag-label,
405
+ span.tag-input { display: inline-block; }
406
+
407
+ tr.issue td.tags,
408
+ table.list tr td.tags { text-align: left; white-space: normal; }
409
+
410
+ div.tags-cloud .tag-nube-1 { font-size: .8em; }
411
+ div.tags-cloud .tag-nube-2 { font-size: .9em; }
412
+ div.tags-cloud .tag-nube-3 { font-size: 1em; }
413
+ div.tags-cloud .tag-nube-4 { font-size: 1.1em; }
414
+ div.tags-cloud .tag-nube-5 { font-size: 1.2em; }
415
+ div.tags-cloud .tag-nube-6 { font-size: 1.3em; }
416
+ div.tags-cloud .tag-nube-7 { font-size: 1.4em; }
417
+ div.tags-cloud .tag-nube-8 { font-size: 1.5em; }
418
+
419
+ .tag-label .tag-count,
420
+ .tag-label-color .tag-count { font-size: .75em; margin-left: .5em; }
421
+
422
+ /* ===== Calendars ===== */
423
+ table.cal {width: 100%; margin: 0 0 6px 0; border: 1px solid #c0c0c0; border-spacing: 0; border-radius: 3px;}
424
+ table.cal thead th {width: 14%; background-color:#EEEEEE; padding: 4px; }
425
+ table.cal thead th.week-number {width: auto;}
426
+ table.cal tbody tr {height: 100px;}
427
+ table.cal td .icon {padding-top: 2px; padding-bottom: 3px;}
428
+ table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em; border-bottom: 0; border-right: 0;}
429
+ table.cal td.week-number { background-color:#EEEEEE; padding: 4px; border:none; font-size: 1em;}
430
+ table.cal td p.day-num {font-size: 1.1em; text-align:right;}
431
+ table.cal td.odd p.day-num {color: #bbb;}
432
+ table.cal td.today {background:#ffffdd;}
433
+ table.cal td.today p.day-num {font-weight: bold;}
434
+ table.cal td.nwday:not(.odd) {background-color:#f1f1f1;}
435
+ table.cal .starting a.issue, p.cal.legend .starting {background: url(../../../images/bullet_go.png) no-repeat -1px -2px; padding-left:16px;}
436
+ table.cal .ending a.issue, p.cal.legend .ending {background: url(../../../images/bullet_end.png) no-repeat -1px -2px; padding-left:16px;}
437
+ table.cal .starting.ending a.issue, p.cal.legend .starting.ending {background: url(../../../images/bullet_diamond.png) no-repeat -1px -2px; padding-left:16px;}
438
+
439
+ #admin-menu a.icon-redmineup-money:not(:has(svg)) {
440
+ background-image: url(../images/money.png);
441
+ }
442
+
443
+ ul.cal {
444
+ list-style: none;
445
+ width: 100%;
446
+ padding: 0;
447
+ display: grid;
448
+ grid-template-columns: 2rem repeat(7, 1fr);
449
+ margin: 0;
450
+ border: 1px solid #c0c0c0;
451
+ border-spacing: 0;
452
+ border-radius: 3px;
453
+ }
454
+ .cal .calhead { background-color:#eee; text-align: center; font-weight: bold; padding: 4px }
455
+ .cal .week-number { background-color:#eee; border:none; font-size: 1em; padding: 4px; text-align: center; }
456
+ .cal .week-number .label-week { display: none; }
457
+ .cal .calbody { border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em; border-bottom: 0; border-right: 0; line-height: 1.2; min-height: calc(1.2em * 6); padding: 2px; }
458
+ .cal .calbody p.day-num {font-size: 1.1em; text-align:right;}
459
+ .cal .calbody .abbr-day {display:none}
460
+ .cal .calbody.odd p.day-num {color: #bbb;}
461
+ .cal .calbody.today {background:#ffd;}
462
+ .cal .calbody.today p.day-num {font-weight: bold;}
463
+ .cal .calbody .icon {padding-top: 2px; padding-bottom: 3px;}
464
+ .cal .calbody.nwday:not(.odd) {background-color:#f1f1f1;}
465
+ .cal .starting a.issue, p.cal.legend .starting {background: url(../images/bullet_go.png) no-repeat -1px -2px; padding-left:16px;}
466
+ .cal .ending a.issue, p.cal.legend .ending {background: url(../images/bullet_end.png) no-repeat -1px -2px; padding-left:16px;}
467
+ .cal .starting.ending a.issue, p.cal.legend .starting.ending {background: url(../images/bullet_diamond.png) no-repeat -1px -2px; padding-left:16px;}
468
+ @media screen and (max-width: 899px) {
469
+ ul.cal { display: block }
470
+ .cal .calhead { display: none }
471
+ .cal .calbody { min-height: calc(1.2em * 3); }
472
+ .cal .calbody .abbr-day { display: inline; }
473
+ .cal .week-number { border: 1px solid #c0c0c0; text-align: left; font-weight: bold; background-color: #def; }
474
+ .cal .week-number .label-week { display: inline; }
475
+ .cal .calbody p.day-num { font-size: 1.1em; text-align: left; }
476
+ }
@@ -0,0 +1 @@
1
+ <%= redmineup_assets %>
@@ -11,3 +11,4 @@ en:
11
11
  label_redmineup_major_currencies: Major currencies
12
12
  label_redmineup_thousands_delimiter: Thousands delimiter
13
13
  label_redmineup_decimal_separator: Decimal separator
14
+ lable_redmineup_add_tag: add tag
@@ -11,3 +11,4 @@ ru:
11
11
  label_redmineup_major_currencies: Основные валюты
12
12
  label_redmineup_thousands_delimiter: Разделитель разрядов
13
13
  label_redmineup_decimal_separator: Десятичный разделитель
14
+ lable_redmineup_add_tag: добавить тег
data/config/routes.rb CHANGED
@@ -2,4 +2,6 @@
2
2
 
3
3
  Rails.application.routes.draw do
4
4
  match 'redmineup/settings/:id', to: 'redmineup#settings', as: 'redmineup_settings', via: [:get, :post]
5
+ match 'auto_completes/taggable_tags' => 'auto_completes#taggable_tags',
6
+ via: :get, as: 'auto_complete_taggable_tags'
5
7
  end
data/doc/CHANGELOG CHANGED
@@ -4,64 +4,98 @@ Redmine UP gem - general functions for plugins (tags, vote, viewing, currency)
4
4
  Copyright (C) 2011-2026 Kirill Bezrukov (RedmineUP)
5
5
  https://www.redmineup.com/
6
6
 
7
+ == 2026-05-01 v1.1.8
8
+
9
+ * Added `on_select` callback and `select_icon` options for `select2tag` helper
10
+ * Updated `requires_redmineup` version guard to reduce boilerplate in plugin init
11
+ * Fixed `link_to` display compatibility issue in Redmine 5
12
+
13
+ == 2026-04-18 v1.1.7
14
+
15
+ * hot fix for atom/rss compatibility for redmine < 5
16
+
17
+ == 2026-04-17 v1.1.6
18
+
19
+ * Added helpers for timezone conversions
20
+
21
+ == 2026-04-17 v1.1.5
22
+
23
+ * Added tag cloud links helper with URL convention by key
24
+ * Added shared tag list fields for views and FormBuilder
25
+ * Added shared tag autocomplete route for taggable models
26
+ * Updated layout hook to load shared gem assets globally
27
+ * Updated tag helpers registration in ActionView context
28
+ * Fixed tag color fallback for backward compatibility
29
+ * Fixed helper behavior for Ruby 2.3 compatibility
30
+
31
+ == 2026-04-10 v1.1.4
32
+
33
+ * Fixed tag queries for MSSQL adapter
34
+
7
35
  == 2026-03-10 v1.1.3
8
36
 
9
- * Fixed ActionCable compatibility
10
37
  * Added send method for ActionCable
38
+ * Fixed ActionCable compatibility with cable.yaml apply
11
39
 
12
40
  == 2025-11-07 v1.1.2
13
41
 
14
- * Fixed assets loading error
42
+ * Fixed shared assets loading error
15
43
 
16
- == 2025-10-24 v1.1.1
44
+ == 2025-10-01 v1.1.1
17
45
 
18
- * Fixed activation for sprite_icon patch
46
+ * Updated sprite_icon patch activation logic
19
47
 
20
48
  == 2025-07-24 v1.1.0
21
49
 
22
- * Added ActionCable methods
23
- * Fixed Tags migration method
24
- * Fixed svg icons for context menu
50
+ * Added ActionCable methods for plugin integrations
51
+ * Added SVG icon support for context menu actions
52
+ * Fixed tag migration method for old Rails versions
25
53
 
26
54
  == 2025-07-09 v1.0.13
27
55
 
28
- * Added color to Tag
56
+ * Added tag color support in tag model behavior
57
+
58
+ == 2025-07-08 v1.0.12
59
+
60
+ * Added tag color selection functionality
29
61
 
30
- == 2025-02-04 v1.0.11
62
+ == 2025-03-30 v1.0.11
31
63
 
32
- * Fixed bug with Redmine language settings
64
+ * Fixed ApplicationRecord loading compatibility
65
+
66
+ == 2025-02-04 v1.0.10
67
+
68
+ * Fixed SVG icon compatibility for older Redmine code
33
69
 
34
70
  == 2025-02-04 v1.0.9
35
71
 
36
72
  * Added regex_replace Liquid filter
37
- * Added svg icons for Redmine 6
73
+ * Added SVG icons for Redmine 6
74
+ * Fixed Liquid internal error in filter execution
75
+ * Fixed parse_inline_attachments Liquid filter behavior
38
76
 
39
77
  == 2025-01-31 v1.0.8
40
78
 
41
- * Fixed compatibility patch for Redmine < 5
79
+ * Fixed compatibility patch for Redmine versions below 5
42
80
 
43
81
  == 2025-01-29 v1.0.7
44
82
 
45
- * Fixed parse_inline_attachments Liquid filter
46
- * Added compatibility patch for Redmine 6 sprite_icon
83
+ * Added sprite_icon compatibility patch for Redmine 6
84
+ * Fixed parse_inline_attachments Liquid filter behavior
47
85
 
48
86
  == 2024-05-07 v1.0.6
49
87
 
50
- * Updated Chart.js to v3.9.1
51
- * Fixed assets paths for Redmine 5.3+
52
88
  * Added attachments to IssueDrop and JournalDrop
53
- * Added filter parse_inline_attachments for replace image urls
89
+ * Added parse_inline_attachments filter for image URL fix
90
+ * Updated Chart.js library to version 3.9.1
91
+ * Fixed asset paths for Redmine 5.3 and newer
54
92
 
55
93
  == 2024-01-31 v1.0.5
56
94
 
57
- * Added plugin_installed? method
58
- * Compatibility patches for ApplicationRecord
95
+ * Added plugin_installed? helper for plugin checks
96
+ * Fixed ApplicationRecord compatibility patch behavior
59
97
 
60
98
  == 2023-10-12 v1.0.1
61
99
 
62
- * RedmineUp module renamed to Redmineup
63
-
64
- == 2023-09-27 v1.0.0
65
-
66
- * Initial release
67
- * Mirgated from redmineup gem
100
+ * Added initial public release
101
+ * Updated module name from RedmineUp to Redmineup