redmineup 1.1.3 → 1.1.7

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,92 @@ 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-04-18 v1.1.7
8
+
9
+ * hot fix for atom/rss compatibility for redmine < 5
10
+
11
+ == 2026-04-17 v1.1.6
12
+
13
+ * Added helpers for timezone conversions
14
+
15
+ == 2026-04-17 v1.1.5
16
+
17
+ * Added tag cloud links helper with URL convention by key
18
+ * Added shared tag list fields for views and FormBuilder
19
+ * Added shared tag autocomplete route for taggable models
20
+ * Updated layout hook to load shared gem assets globally
21
+ * Updated tag helpers registration in ActionView context
22
+ * Fixed tag color fallback for backward compatibility
23
+ * Fixed helper behavior for Ruby 2.3 compatibility
24
+
25
+ == 2026-04-10 v1.1.4
26
+
27
+ * Fixed tag queries for MSSQL adapter
28
+
7
29
  == 2026-03-10 v1.1.3
8
30
 
9
- * Fixed ActionCable compatibility
10
31
  * Added send method for ActionCable
32
+ * Fixed ActionCable compatibility with cable.yaml apply
11
33
 
12
34
  == 2025-11-07 v1.1.2
13
35
 
14
- * Fixed assets loading error
36
+ * Fixed shared assets loading error
15
37
 
16
- == 2025-10-24 v1.1.1
38
+ == 2025-10-01 v1.1.1
17
39
 
18
- * Fixed activation for sprite_icon patch
40
+ * Updated sprite_icon patch activation logic
19
41
 
20
42
  == 2025-07-24 v1.1.0
21
43
 
22
- * Added ActionCable methods
23
- * Fixed Tags migration method
24
- * Fixed svg icons for context menu
44
+ * Added ActionCable methods for plugin integrations
45
+ * Added SVG icon support for context menu actions
46
+ * Fixed tag migration method for old Rails versions
25
47
 
26
48
  == 2025-07-09 v1.0.13
27
49
 
28
- * Added color to Tag
50
+ * Added tag color support in tag model behavior
51
+
52
+ == 2025-07-08 v1.0.12
53
+
54
+ * Added tag color selection functionality
55
+
56
+ == 2025-03-30 v1.0.11
29
57
 
30
- == 2025-02-04 v1.0.11
58
+ * Fixed ApplicationRecord loading compatibility
31
59
 
32
- * Fixed bug with Redmine language settings
60
+ == 2025-02-04 v1.0.10
61
+
62
+ * Fixed SVG icon compatibility for older Redmine code
33
63
 
34
64
  == 2025-02-04 v1.0.9
35
65
 
36
66
  * Added regex_replace Liquid filter
37
- * Added svg icons for Redmine 6
67
+ * Added SVG icons for Redmine 6
68
+ * Fixed Liquid internal error in filter execution
69
+ * Fixed parse_inline_attachments Liquid filter behavior
38
70
 
39
71
  == 2025-01-31 v1.0.8
40
72
 
41
- * Fixed compatibility patch for Redmine < 5
73
+ * Fixed compatibility patch for Redmine versions below 5
42
74
 
43
75
  == 2025-01-29 v1.0.7
44
76
 
45
- * Fixed parse_inline_attachments Liquid filter
46
- * Added compatibility patch for Redmine 6 sprite_icon
77
+ * Added sprite_icon compatibility patch for Redmine 6
78
+ * Fixed parse_inline_attachments Liquid filter behavior
47
79
 
48
80
  == 2024-05-07 v1.0.6
49
81
 
50
- * Updated Chart.js to v3.9.1
51
- * Fixed assets paths for Redmine 5.3+
52
82
  * Added attachments to IssueDrop and JournalDrop
53
- * Added filter parse_inline_attachments for replace image urls
83
+ * Added parse_inline_attachments filter for image URL fix
84
+ * Updated Chart.js library to version 3.9.1
85
+ * Fixed asset paths for Redmine 5.3 and newer
54
86
 
55
87
  == 2024-01-31 v1.0.5
56
88
 
57
- * Added plugin_installed? method
58
- * Compatibility patches for ApplicationRecord
89
+ * Added plugin_installed? helper for plugin checks
90
+ * Fixed ApplicationRecord compatibility patch behavior
59
91
 
60
92
  == 2023-10-12 v1.0.1
61
93
 
62
- * RedmineUp module renamed to Redmineup
63
-
64
- == 2023-09-27 v1.0.0
65
-
66
- * Initial release
67
- * Mirgated from redmineup gem
94
+ * Added initial public release
95
+ * Updated module name from RedmineUp to Redmineup