redmineup 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f8906ecd18c32f3d77f7ecb9ce342051cf620884442332900bd18b3678847264
4
- data.tar.gz: ac7a23b98f0a4e612fe255c981d563069c53d4d29448fd1e60fefc8d45244cca
3
+ metadata.gz: c1f4c8d29e3e301d443f1ff3ba42e1f259d7e9920b0dd08b817c776e362dc001
4
+ data.tar.gz: fd4c8e149fb512e67a8d02a4efbc46f38341935a6da1b781fb675fdfb19353cc
5
5
  SHA512:
6
- metadata.gz: 9367020f0bb91903c3c64c2e631f4ccf7559331b59373f11b4b6afa0ed98f6496e1441af347ef287720cee9a6461aab3b3138f4e902dad6e5d6e54ac2d9ad29c
7
- data.tar.gz: 6dc7397b41cd7141de6167777edfc2306dd9d7010aa8813e868df272e648f8f6ed49a129104ff54d469fad074d0762d38468f86b2ac8ebdea38e90f0774f25ae
6
+ metadata.gz: 7b5b31109d40245e2c939a91a88a11f1536b0899aea8a032f773acaf0390f2f23cce5ff40161a8ade27bedb77e13a5604f339f2b61a85609f4d2a70113f93f66
7
+ data.tar.gz: 106630460ba9b8cb2bb3e80de47834e5f88cda5c6631f4a2fd90ea6921afab7f268c3460ff012251ff201d850e758b3bf690b588c980fcc90b84ea1de7ccbb51
data/doc/CHANGELOG CHANGED
@@ -1,9 +1,12 @@
1
1
  == Redmine UP gem changelog
2
2
 
3
3
  Redmine UP gem - general functions for plugins (tags, vote, viewing, currency)
4
- Copyright (C) 2011-2023 RedmineUP
4
+ Copyright (C) 2011-2023 Kirill Bezrukov (RedmineUP)
5
5
  https://www.redmineup.com/
6
6
 
7
+ == 2023-10-12 v1.0.3
8
+
9
+
7
10
  == 2023-10-12 v1.0.1
8
11
 
9
12
  * RedmineUp module renamed to Redmineup
@@ -40,7 +40,7 @@ module Redmineup
40
40
  Redmine::MenuManager.map(:admin_menu).push(:redmineup_money,
41
41
  { controller: 'redmineup', action: 'settings', id: 'money' },
42
42
  caption: :label_redmineup_money,
43
- html: { class: 'icon icon-redminecrm-money' })
43
+ html: { class: 'icon icon-redmineup-money' })
44
44
 
45
45
  end
46
46
 
@@ -0,0 +1,22 @@
1
+ module Redmineup
2
+ module CalendarsHelper
3
+
4
+ def calendar_day_css_classes(calendar, day)
5
+ css = day.month==calendar.month ? +'even' : +'odd'
6
+ css << " today" if User.current.today == day
7
+ css << " nwday" if non_working_week_days.include?(day.cwday)
8
+ css
9
+ end
10
+
11
+ def non_working_week_days
12
+ @non_working_week_days ||= begin
13
+ days = Setting.non_working_week_days
14
+ if days.is_a?(Array) && days.size < 7
15
+ days.map(&:to_i)
16
+ else
17
+ []
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -4,6 +4,7 @@ module Redmineup
4
4
  module Hooks
5
5
  class ViewsLayoutsHook < Redmine::Hook::ViewListener
6
6
  def view_layouts_base_html_head(_context = {})
7
+ stylesheet_link_tag(:calendars, plugin: 'redmineup') +
7
8
  stylesheet_link_tag(:money, plugin: 'redmineup')
8
9
  end
9
10
  end
@@ -0,0 +1,32 @@
1
+ module Redmineup
2
+ module Patches
3
+ module Compatibility
4
+ module ApplicationControllerPatch
5
+ def self.included(base) # :nodoc:
6
+ base.extend(ClassMethods)
7
+ base.class_eval do
8
+ unloadable # Send unloadable so it will not be unloaded in development
9
+ end
10
+ end
11
+
12
+ module ClassMethods
13
+ def before_action(*filters, &block)
14
+ before_filter(*filters, &block)
15
+ end
16
+
17
+ def after_action(*filters, &block)
18
+ after_filter(*filters, &block)
19
+ end
20
+
21
+ def skip_before_action(*filters, &block)
22
+ skip_before_filter(*filters, &block)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ unless ActionController::Base.methods.include?(:before_action)
31
+ ActionController::Base.send(:include,Redmineup::Patches::Compatibility::ApplicationControllerPatch)
32
+ end
@@ -0,0 +1,27 @@
1
+ module Redmineup
2
+ module Patches
3
+ module Compatibility
4
+ module RoutingMapperPatch
5
+ def self.included(base)
6
+ base.send(:include, InstanceMethods)
7
+
8
+ base.class_eval do
9
+ alias_method :constraints_without_redmineup, :constraints
10
+ alias_method :constraints, :constraints_with_redmineup
11
+ end
12
+ end
13
+
14
+ module InstanceMethods
15
+ def constraints_with_redmineup(options = {}, &block)
16
+ options[:object_type] = /.+/ if options[:object_type] && options[:object_type].is_a?(Regexp)
17
+ constraints_without_redmineup(options, &block)
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ unless ActionDispatch::Routing::Mapper.included_modules.include?(Redmineup::Patches::Compatibility::RoutingMapperPatch)
26
+ ActionDispatch::Routing::Mapper.send(:include, Redmineup::Patches::Compatibility::RoutingMapperPatch)
27
+ end
@@ -0,0 +1,21 @@
1
+ module Redmineup
2
+ module Patches
3
+ module Compatibility
4
+ module UserPatch
5
+ def self.included(base)
6
+ base.send(:include, InstanceMethods)
7
+ end
8
+
9
+ module InstanceMethods
10
+ def atom_key
11
+ rss_key
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ unless ActionDispatch::Routing::Mapper.included_modules.include?(Redmineup::Patches::Compatibility::UserPatch)
20
+ ActionDispatch::Routing::Mapper.send(:include, Redmineup::Patches::Compatibility::UserPatch)
21
+ end
@@ -0,0 +1,7 @@
1
+ if Redmine::VERSION.to_s < "4"
2
+ require 'redmineup/patches/compatibility/application_controller_patch'
3
+ end
4
+ if Redmine::VERSION.to_s < "5"
5
+ require 'redmineup/patches/compatibility/user_patch'
6
+ end
7
+ require 'redmineup/patches/compatibility/routing_mapper_patch'
@@ -1,3 +1,3 @@
1
1
  module Redmineup
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.3'
3
3
  end
data/lib/redmineup.rb CHANGED
@@ -40,11 +40,9 @@ require 'redmineup/liquid/drops/issue_relations_drop'
40
40
 
41
41
  require 'redmineup/helpers/external_assets_helper'
42
42
  require 'redmineup/helpers/form_tag_helper'
43
- require 'redmineup/helpers/rup_calendar_helper'
43
+ require 'redmineup/helpers/calendars_helper'
44
44
  require 'redmineup/assets_manager'
45
45
 
46
- require 'redmineup/compatibility/application_controller_patch'
47
- require 'redmineup/compatibility/routing_mapper_patch'
48
46
  require 'redmineup/patches/liquid_patch' unless BigDecimal.respond_to?(:new)
49
47
 
50
48
  module Redmineup
@@ -60,6 +58,7 @@ end
60
58
  Redmineup::AssetsManager.install_assets
61
59
 
62
60
  if defined?(ActionView::Base)
61
+ ActionView::Base.send :include, Redmineup::CalendarsHelper
63
62
  ActionView::Base.send :include, Redmineup::ExternalAssetsHelper
64
63
  ActionView::Base.send :include, Redmineup::FormTagHelper
65
64
  end
@@ -338,7 +338,7 @@ class RupActsAsTaggableTest < ActiveSupport::TestCase
338
338
 
339
339
  def test_tags_condition
340
340
  assert_equal "(tags_TABLE.name LIKE #{tags(:feature).id} OR tags_TABLE.name LIKE #{tags(:bug).id})",
341
- Issue.send(:tags_condition, [tags(:feature), tags(:bug)], 'tags_TABLE')
341
+ Issue.send(:tags_condition, [tags(:feature), tags(:bug)], 'tags_TABLE').gsub("'", "")
342
342
  end
343
343
 
344
344
  def test_all_tags_list
@@ -0,0 +1,15 @@
1
+ table.cal {width: 100%; margin: 0 0 6px 0; border: 1px solid #c0c0c0; border-spacing: 0; border-radius: 3px;}
2
+ table.cal thead th {width: 14%; background-color:#EEEEEE; padding: 4px; }
3
+ table.cal thead th.week-number {width: auto;}
4
+ table.cal tbody tr {height: 100px;}
5
+ table.cal td .icon {padding-top: 2px; padding-bottom: 3px;}
6
+ table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em; border-bottom: 0; border-right: 0;}
7
+ table.cal td.week-number { background-color:#EEEEEE; padding: 4px; border:none; font-size: 1em;}
8
+ table.cal td p.day-num {font-size: 1.1em; text-align:right;}
9
+ table.cal td.odd p.day-num {color: #bbb;}
10
+ table.cal td.today {background:#ffffdd;}
11
+ table.cal td.today p.day-num {font-weight: bold;}
12
+ table.cal td.nwday:not(.odd) {background-color:#f1f1f1;}
13
+ table.cal .starting a.issue, p.cal.legend .starting {background: url(../images/bullet_go.png) no-repeat -1px -2px; padding-left:16px;}
14
+ table.cal .ending a.issue, p.cal.legend .ending {background: url(../images/bullet_end.png) no-repeat -1px -2px; padding-left:16px;}
15
+ table.cal .starting.ending a.issue, p.cal.legend .starting.ending {background: url(../images/bullet_diamond.png) no-repeat -1px -2px; padding-left:16px;}
@@ -1,4 +1,4 @@
1
- .icon-redminecrm-money {
1
+ .icon-redmineup-money {
2
2
  background-image: url(../images/money.png);
3
3
  }
4
4
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redmineup
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - RedmineUP
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-18 00:00:00.000000000 Z
11
+ date: 2023-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -113,7 +113,6 @@ files:
113
113
  - README.md
114
114
  - Rakefile
115
115
  - app/controllers/redmineup_controller.rb
116
- - app/views/redmine_crm/redmineup_calendar/_calendar.html.erb
117
116
  - app/views/redmineup/_money.html.erb
118
117
  - app/views/redmineup/settings.html.erb
119
118
  - bitbucket-pipelines.yml
@@ -143,16 +142,14 @@ files:
143
142
  - lib/redmineup/acts_as_votable/voter.rb
144
143
  - lib/redmineup/assets_manager.rb
145
144
  - lib/redmineup/colors_helper.rb
146
- - lib/redmineup/compatibility/application_controller_patch.rb
147
- - lib/redmineup/compatibility/routing_mapper_patch.rb
148
145
  - lib/redmineup/currency.rb
149
146
  - lib/redmineup/currency/formatting.rb
150
147
  - lib/redmineup/currency/heuristics.rb
151
148
  - lib/redmineup/currency/loader.rb
152
149
  - lib/redmineup/engine.rb
150
+ - lib/redmineup/helpers/calendars_helper.rb
153
151
  - lib/redmineup/helpers/external_assets_helper.rb
154
152
  - lib/redmineup/helpers/form_tag_helper.rb
155
- - lib/redmineup/helpers/rup_calendar_helper.rb
156
153
  - lib/redmineup/helpers/tags_helper.rb
157
154
  - lib/redmineup/helpers/vote_helper.rb
158
155
  - lib/redmineup/hooks/views_layouts_hook.rb
@@ -167,6 +164,10 @@ files:
167
164
  - lib/redmineup/liquid/filters/base.rb
168
165
  - lib/redmineup/liquid/filters/colors.rb
169
166
  - lib/redmineup/money_helper.rb
167
+ - lib/redmineup/patches/compatibility/application_controller_patch.rb
168
+ - lib/redmineup/patches/compatibility/routing_mapper_patch.rb
169
+ - lib/redmineup/patches/compatibility/user_patch.rb
170
+ - lib/redmineup/patches/compatibility_patch.rb
170
171
  - lib/redmineup/patches/liquid_patch.rb
171
172
  - lib/redmineup/settings.rb
172
173
  - lib/redmineup/settings/money.rb
@@ -222,6 +223,7 @@ files:
222
223
  - vendor/assets/javascripts/Chart.bundle.min.js
223
224
  - vendor/assets/javascripts/select2.js
224
225
  - vendor/assets/javascripts/select2_helpers.js
226
+ - vendor/assets/stylesheets/calendars.css
225
227
  - vendor/assets/stylesheets/money.css
226
228
  - vendor/assets/stylesheets/select2.css
227
229
  homepage: https://www.redmineup.com
@@ -1,34 +0,0 @@
1
- <ul class="cal">
2
- <li scope="col" title="<%= l(:label_week) %>" class="calhead week-number"></li>
3
- <% 7.times do |i| %>
4
- <li scope="col" class="calhead"><%= day_name((calendar.first_wday + i) % 7) %></li>
5
- <% end %>
6
- <% calendar.format_month.each_slice(7) do |week| %>
7
- <li class='week-number'>
8
- <span class="label-week"><%= l(:label_week) %></span> <%= calendar.week_number week.first %>
9
- </li>
10
- <% week.each do |day| %>
11
- <li class="<%= calendar.day_css_classes day %> calbody">
12
- <p class="day-num"><%= day.day %>
13
- <span class="abbr-day">(<%= abbr_day_name(day.cwday) %>)</span>
14
- </p>
15
- <% calendar.events_on(day).each do |i| %>
16
- <% if i.is_a? Issue %>
17
- <%= tag.div class: [ i.css_classes, 'tooltip hascontextmenu', starting: day == i.start_date, ending: day == i.due_date] do %>
18
- <%= "#{i.project} -" unless @project && @project == i.project %>
19
- <%= link_to_issue i, :truncate => 30 %>
20
- <span class="tip"><%= render_issue_tooltip i %></span>
21
- <%= check_box_tag 'ids[]', i.id, false, :style => 'display:none;', :id => nil %>
22
- <% end %>
23
- <% else %>
24
- <span class="icon icon-package">
25
- <%= "#{i.project} -" unless @project && @project == i.project %>
26
- <%= link_to_version i %>
27
- </span>
28
- <% end %>
29
- <% end %>
30
- </li>
31
- <% end %>
32
- <% end %>
33
- </ul>
34
- <%= context_menu %>
@@ -1,33 +0,0 @@
1
- module Redmineup
2
- module Patches
3
- module ApplicationControllerPatch
4
- def self.included(base) # :nodoc:
5
- base.extend(ClassMethods)
6
- base.class_eval do
7
- unloadable # Send unloadable so it will not be unloaded in development
8
- end
9
- end
10
-
11
- module ClassMethods
12
- def before_action(*filters, &block)
13
- before_filter(*filters, &block)
14
- end
15
-
16
- def after_action(*filters, &block)
17
- after_filter(*filters, &block)
18
- end
19
-
20
- def skip_before_action(*filters, &block)
21
- skip_before_filter(*filters, &block)
22
- end
23
- end
24
- end
25
- end
26
- end
27
-
28
- unless ActionController::Base.methods.include?(:before_action)
29
- ActionController::Base.send(
30
- :include,
31
- Redmineup::Patches::ApplicationControllerPatch
32
- )
33
- end
@@ -1,25 +0,0 @@
1
- module Redmineup
2
- module Patches
3
- module RoutingMapperPatch
4
- def self.included(base)
5
- base.send(:include, InstanceMethods)
6
-
7
- base.class_eval do
8
- alias_method :constraints_without_redmineup, :constraints
9
- alias_method :constraints, :constraints_with_redmineup
10
- end
11
- end
12
-
13
- module InstanceMethods
14
- def constraints_with_redmineup(options = {}, &block)
15
- options[:object_type] = /.+/ if options[:object_type] && options[:object_type].is_a?(Regexp)
16
- constraints_without_redmineup(options, &block)
17
- end
18
- end
19
- end
20
- end
21
- end
22
-
23
- unless ActionDispatch::Routing::Mapper.included_modules.include?(Redmineup::Patches::RoutingMapperPatch)
24
- ActionDispatch::Routing::Mapper.send(:include, Redmineup::Patches::RoutingMapperPatch)
25
- end
@@ -1,146 +0,0 @@
1
- module RedmineUp
2
- module CalendarHelper
3
- # Simple class to compute the start and end dates of a calendar
4
- class Calendar
5
- attr_reader :startdt, :enddt
6
-
7
- def initialize(date, options={}, lang = current_language, period = :month)
8
- @date = date
9
- @events = []
10
- @ending_events_by_days = {}
11
- @starting_events_by_days = {}
12
- # ADDED FOR CONTACTS-DEALS
13
- @start_date_field = options[:start_date_field] || "start_date"
14
- @due_date_field = options[:due_date_field] || "due_date"
15
- # /ADDED FOR CONTACTS-DEALS
16
- set_language_if_valid lang
17
- case period
18
- when :month
19
- @startdt = Date.civil(date.year, date.month, 1)
20
- @enddt = (@startdt >> 1)-1
21
- # starts from the first day of the week
22
- @startdt = @startdt - (@startdt.cwday - first_wday)%7
23
- # ends on the last day of the week
24
- @enddt = @enddt + (last_wday - @enddt.cwday)%7
25
- when :week
26
- @startdt = date - (date.cwday - first_wday)%7
27
- @enddt = date + (last_wday - date.cwday)%7
28
- else
29
- raise 'Invalid period'
30
- end
31
- end
32
-
33
- def format_month
34
- (@startdt..@enddt).to_a
35
- end
36
-
37
- def week_number(day)
38
- (day + (11 - day.cwday) % 7).cweek
39
- end
40
-
41
- def day_css_classes(day)
42
- css = day.month==month ? +'even' : +'odd'
43
- css << " today" if User.current.today == day
44
- css << " nwday" if non_working_week_days.include?(day.cwday)
45
- css
46
- end
47
-
48
- # Sets calendar events
49
- def events=(events)
50
- @events = events
51
- # CHANGED FOR CONTACTS-DEALS
52
- @ending_events_by_days = @events.group_by {|event| event.send(@start_date_field) ? event.send(@start_date_field).to_date : event.due_date}
53
- @starting_events_by_days = @events.group_by {|event| event.send(@due_date_field) ? event.send(@due_date_field).to_date : event.start_date}
54
- # /CHANGED FOR CONTACTS-DEALS
55
- end
56
-
57
- # Returns events for the given day
58
- def events_on(day)
59
- ((@ending_events_by_days[day] || []) + (@starting_events_by_days[day] || [])).uniq
60
- end
61
-
62
- # Calendar current month
63
- def month
64
- @date.month
65
- end
66
-
67
- # Return the first day of week
68
- # 1 = Monday ... 7 = Sunday
69
- def first_wday
70
- case Setting.start_of_week.to_i
71
- when 1
72
- @first_dow ||= (1 - 1)%7 + 1
73
- when 6
74
- @first_dow ||= (6 - 1)%7 + 1
75
- when 7
76
- @first_dow ||= (7 - 1)%7 + 1
77
- else
78
- @first_dow ||= (l(:general_first_day_of_week).to_i - 1)%7 + 1
79
- end
80
- end
81
-
82
- def last_wday
83
- @last_dow ||= (first_wday + 5)%7 + 1
84
- end
85
-
86
- def abbr_day_name(day)
87
- ::I18n.t('date.abbr_day_names')[day % 7]
88
- end
89
-
90
- def current_language
91
- ::I18n.locale
92
- end
93
-
94
- def set_language_if_valid(lang)
95
- if l = find_language(lang)
96
- ::I18n.locale = l
97
- end
98
- end
99
-
100
- def find_language(lang)
101
- @@languages_lookup ||=
102
- valid_languages.inject({}) do |k, v|
103
- k[v.to_s.downcase] = v
104
- k
105
- end
106
- @@languages_lookup[lang.to_s.downcase]
107
- end
108
-
109
- def valid_languages
110
- ::I18n.available_locales
111
- end
112
-
113
- def l(*args)
114
- case args.size
115
- when 1
116
- ::I18n.t(*args)
117
- when 2
118
- if args.last.is_a?(Hash)
119
- ::I18n.t(*args.first, **args.last)
120
- elsif args.last.is_a?(String)
121
- ::I18n.t(args.first, :value => args.last)
122
- else
123
- ::I18n.t(args.first, :count => args.last)
124
- end
125
- else
126
- raise "Translation string with multiple values: #{args.first}"
127
- end
128
- end
129
-
130
- def non_working_week_days
131
- @non_working_week_days ||= begin
132
- days = Setting.non_working_week_days
133
- if days.is_a?(Array) && days.size < 7
134
- days.map(&:to_i)
135
- else
136
- []
137
- end
138
- end
139
- end
140
- end
141
- end
142
- end
143
-
144
- unless ActionView::Base.included_modules.include?(RedmineUp::CalendarHelper)
145
- ActionView::Base.send(:include, RedmineUp::CalendarHelper)
146
- end