redmine_crm 0.0.49 → 0.0.54
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.
- checksums.yaml +4 -4
- data/app/views/redmine_crm/settings.html.erb +1 -1
- data/bitbucket-pipelines.yml +2 -0
- data/config/locales/en.yml +1 -1
- data/config/locales/ru.yml +1 -1
- data/doc/CHANGELOG +24 -1
- data/lib/redmine_crm/acts_as_draftable/rcrm_acts_as_draftable.rb +4 -2
- data/lib/redmine_crm/liquid/filters/arrays.rb +1 -1
- data/lib/redmine_crm/liquid/filters/base.rb +35 -3
- data/lib/redmine_crm/settings.rb +6 -4
- data/lib/redmine_crm/version.rb +1 -1
- data/redmine_crm.gemspec +1 -0
- data/vendor/assets/javascripts/select2_helpers.js +3 -2
- data/vendor/assets/stylesheets/select2.css +27 -18
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0e9fa1d47785da85bc39db433d55e0ba8df629e
|
4
|
+
data.tar.gz: 2efa0ef9d8a1a0e267ba622b098fcac20c68a378
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f74717a3d2fa3e033a32f3c02b1855d3fa4bad61edfe57c23bf2a2dcc36f26954a1e87b65aa31662455b953ac4cb42e2e3252cd6f49be52edd1b0f6815925388
|
7
|
+
data.tar.gz: 2d242b17ba64c4799e52f07c110b683f3cb61116833384c1bc66571e3a68df9a68f159526de9735234c6b5bba61ebd953351c1a1eed097a1f31d56af5909d6d9
|
data/bitbucket-pipelines.yml
CHANGED
@@ -32,6 +32,8 @@ pipelines:
|
|
32
32
|
- sed -i "s/'pg'/'pg', '~> 0.18.0'/g" redmine_crm.gemspec
|
33
33
|
- sed -i "s/^end/ spec.add_development_dependency 'minitest', '~> 5.11.3'\nend/g" redmine_crm.gemspec
|
34
34
|
- sed -i "s/^end/ spec.add_development_dependency 'sprockets', '~> 3.5.2'\nend/g" redmine_crm.gemspec
|
35
|
+
- sed -i "s/^end/ spec.add_development_dependency 'thor', '~> 0.20.3'\nend/g" redmine_crm.gemspec
|
36
|
+
- sed -i "s/'rubyzip'/'rubyzip', '~> 1.3.0'/g" redmine_crm.gemspec
|
35
37
|
- bundle install
|
36
38
|
- bundle exec rake test DB=sqlite
|
37
39
|
- bundle exec rake test DB=mysql
|
data/config/locales/en.yml
CHANGED
data/config/locales/ru.yml
CHANGED
data/doc/CHANGELOG
CHANGED
@@ -1,9 +1,32 @@
|
|
1
1
|
== Redmine CRM gem changelog
|
2
2
|
|
3
3
|
Redmine crm gem - general functions for plugins (tags, vote, viewing, currency)
|
4
|
-
Copyright (C) 2011-
|
4
|
+
Copyright (C) 2011-2020 RedmineUP
|
5
5
|
https://www.redmineup.com/
|
6
6
|
|
7
|
+
== 2020-08-10 v0.0.54
|
8
|
+
|
9
|
+
* Fixed new JQuery select2 bug
|
10
|
+
|
11
|
+
== 2020-04-07 v0.0.53
|
12
|
+
|
13
|
+
* Multiselect styles cleanup
|
14
|
+
* Added rubyzip dependence
|
15
|
+
|
16
|
+
== 2019-12-26 v0.0.52
|
17
|
+
|
18
|
+
* select2 styles cleanup
|
19
|
+
|
20
|
+
== 2019-12-20 v0.0.51
|
21
|
+
|
22
|
+
* Changed drafts params
|
23
|
+
* Changed Money settings UI
|
24
|
+
* Fixed bug with settings access
|
25
|
+
|
26
|
+
== 2019-11-18 v0.0.50
|
27
|
+
|
28
|
+
* Fixed bug with settings initialization
|
29
|
+
|
7
30
|
== 2019-11-12 v0.0.49
|
8
31
|
|
9
32
|
* Fixed settings compatibility bug
|
@@ -78,8 +78,10 @@ module RedmineCrm
|
|
78
78
|
target
|
79
79
|
end
|
80
80
|
|
81
|
-
def drafts(user)
|
82
|
-
Draft.where(
|
81
|
+
def drafts(user = nil)
|
82
|
+
drafts = Draft.where(target_type: name)
|
83
|
+
drafts = drafts.where(user_id: user.id) if user
|
84
|
+
drafts
|
83
85
|
end
|
84
86
|
end # ClassMethods
|
85
87
|
|
@@ -100,7 +100,7 @@ module RedmineCrm
|
|
100
100
|
def tagged_with(input, tags, match='all')
|
101
101
|
return input unless input.respond_to?(:select)
|
102
102
|
input = input.values if input.is_a?(Hash)
|
103
|
-
tag_list =
|
103
|
+
tag_list = tags.is_a?(Array) ? tags.sort : tags.split(',').map(&:strip).sort
|
104
104
|
case match
|
105
105
|
when "all"
|
106
106
|
input.select do |object|
|
@@ -36,7 +36,7 @@ module RedmineCrm
|
|
36
36
|
|
37
37
|
def md5(input)
|
38
38
|
Digest::MD5.hexdigest(input) unless input.blank?
|
39
|
-
end
|
39
|
+
end
|
40
40
|
|
41
41
|
# example:
|
42
42
|
# {{ "http:://www.example.com?key=hello world" | encode }}
|
@@ -87,8 +87,8 @@ module RedmineCrm
|
|
87
87
|
to_number(input).floor.to_i
|
88
88
|
end
|
89
89
|
|
90
|
-
def currency(input, currency_code =
|
91
|
-
price_to_currency(input, currency_code, :converted => false)
|
90
|
+
def currency(input, currency_code = nil)
|
91
|
+
price_to_currency(input, currency_code || container_currency, :converted => false)
|
92
92
|
end
|
93
93
|
|
94
94
|
def call_method(input, method_name)
|
@@ -121,6 +121,30 @@ module RedmineCrm
|
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
|
+
def multi_line(input)
|
125
|
+
input.to_s.gsub("\n", '<br/>').html_safe
|
126
|
+
end
|
127
|
+
|
128
|
+
def concat(input, *args)
|
129
|
+
result = input.to_s
|
130
|
+
args.flatten.each { |a| result << a.to_s }
|
131
|
+
result
|
132
|
+
end
|
133
|
+
|
134
|
+
# right justify and padd a string
|
135
|
+
def rjust(input, integer, padstr = '')
|
136
|
+
input.to_s.rjust(integer, padstr)
|
137
|
+
end
|
138
|
+
|
139
|
+
# left justify and padd a string
|
140
|
+
def ljust(input, integer, padstr = '')
|
141
|
+
input.to_s.ljust(integer, padstr)
|
142
|
+
end
|
143
|
+
|
144
|
+
def textile(input)
|
145
|
+
::RedCloth3.new(input).to_html
|
146
|
+
end
|
147
|
+
|
124
148
|
protected
|
125
149
|
|
126
150
|
# Convert an array of properties ('key:value') into a hash
|
@@ -210,6 +234,14 @@ module RedmineCrm
|
|
210
234
|
end
|
211
235
|
end
|
212
236
|
end
|
237
|
+
|
238
|
+
def container
|
239
|
+
@container ||= @context.registers[:container]
|
240
|
+
end
|
241
|
+
|
242
|
+
def container_currency
|
243
|
+
container.currency if container.respond_to?(:currency)
|
244
|
+
end
|
213
245
|
end
|
214
246
|
::Liquid::Template.register_filter(RedmineCrm::Liquid::Filters::Base)
|
215
247
|
end
|
data/lib/redmine_crm/settings.rb
CHANGED
@@ -5,11 +5,8 @@ module RedmineCrm
|
|
5
5
|
}.freeze
|
6
6
|
|
7
7
|
class << self
|
8
|
-
# Initialize settings before using with this method
|
9
|
-
# @example
|
10
|
-
# RedmineCrm::Settings.initialize_gem_settings
|
11
8
|
def initialize_gem_settings
|
12
|
-
return if Setting.respond_to?(:plugin_redmine_crm)
|
9
|
+
return if !Object.const_defined?('Setting') || Setting.respond_to?(:plugin_redmine_crm)
|
13
10
|
|
14
11
|
if Setting.respond_to?(:define_setting)
|
15
12
|
Setting.send(:define_setting, 'plugin_redmine_crm', 'default' => default_settings, 'serialized' => true)
|
@@ -24,18 +21,23 @@ module RedmineCrm
|
|
24
21
|
setting.value
|
25
22
|
end)
|
26
23
|
end
|
24
|
+
@settings_initialized
|
27
25
|
end
|
28
26
|
|
29
27
|
# Use apply instead attrs assign because it can rewrite other attributes
|
30
28
|
def apply=(values)
|
29
|
+
initialize_gem_settings unless @settings_initialized
|
30
|
+
|
31
31
|
Setting.plugin_redmine_crm = Setting.plugin_redmine_crm.merge(values)
|
32
32
|
end
|
33
33
|
|
34
34
|
def values
|
35
|
+
initialize_gem_settings unless @settings_initialized
|
35
36
|
Object.const_defined?('Setting') ? Setting.plugin_redmine_crm : {}
|
36
37
|
end
|
37
38
|
|
38
39
|
def [](value)
|
40
|
+
initialize_gem_settings unless @settings_initialized
|
39
41
|
return Setting.plugin_redmine_crm[value] if Object.const_defined?('Setting')
|
40
42
|
|
41
43
|
nil
|
data/lib/redmine_crm/version.rb
CHANGED
data/redmine_crm.gemspec
CHANGED
@@ -80,11 +80,11 @@ function findSelectTagInRowBy(field) {
|
|
80
80
|
};
|
81
81
|
|
82
82
|
function rowHasSelectTag(field) {
|
83
|
-
return findInRowBy(field, '.values select.value').
|
83
|
+
return findInRowBy(field, '.values select.value').length > 0;
|
84
84
|
};
|
85
85
|
|
86
86
|
function rowHasSelect2(field) {
|
87
|
-
return findInRowBy(field, '.values .select2').
|
87
|
+
return findInRowBy(field, '.values .select2').length > 0;
|
88
88
|
};
|
89
89
|
|
90
90
|
function findInRowBy(field, selector) {
|
@@ -137,6 +137,7 @@ function buildSelect2Options(options) {
|
|
137
137
|
result = {
|
138
138
|
placeholder: options['placeholder'] || '',
|
139
139
|
allowClear: !!options['allow_clear'],
|
140
|
+
containerCssClass: options['containerCssClass'],
|
140
141
|
minimumInputLength: options['min_input_length'] || 0,
|
141
142
|
templateResult: window[options['format_state']],
|
142
143
|
templateSelection: window[options['format_selection']],
|
@@ -150,18 +150,26 @@
|
|
150
150
|
}
|
151
151
|
|
152
152
|
.select2-container--default .select2-selection--single {
|
153
|
-
background: #fff url(../images/vcard.png) no-repeat 2px 50
|
154
|
-
|
155
|
-
|
156
|
-
|
153
|
+
/*background: #fff url(../images/vcard.png) no-repeat 2px 50%;*/
|
154
|
+
background-color: #fff;
|
155
|
+
height: 24px;
|
156
|
+
border: 1px solid #ccc;
|
157
|
+
border-radius: 3px;
|
158
|
+
}
|
159
|
+
|
160
|
+
.select2-container--default .select2-selection--single.icon {
|
161
|
+
background-position-x: 3px;
|
157
162
|
}
|
158
163
|
|
159
164
|
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
160
|
-
|
161
|
-
line-height: 18px;
|
165
|
+
line-height: 21px;
|
162
166
|
font-size: 11px;
|
163
167
|
}
|
164
168
|
|
169
|
+
.select2-container--default .select2-selection--single.icon .select2-selection__rendered {
|
170
|
+
padding-left: 2px
|
171
|
+
}
|
172
|
+
|
165
173
|
.select2-container--default .select2-selection--single .select2-selection__clear {
|
166
174
|
cursor: pointer;
|
167
175
|
float: right;
|
@@ -172,7 +180,7 @@
|
|
172
180
|
color: #999;
|
173
181
|
}
|
174
182
|
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
175
|
-
height:
|
183
|
+
height: 24px;
|
176
184
|
position: absolute;
|
177
185
|
top: 0px;
|
178
186
|
right: 1px;
|
@@ -210,8 +218,8 @@
|
|
210
218
|
}
|
211
219
|
.select2-container--default .select2-selection--multiple {
|
212
220
|
background-color: white;
|
213
|
-
border: 1px solid #
|
214
|
-
border-radius:
|
221
|
+
border: 1px solid #ccc;
|
222
|
+
border-radius: 3px;
|
215
223
|
cursor: text;
|
216
224
|
}
|
217
225
|
|
@@ -220,7 +228,7 @@
|
|
220
228
|
box-sizing: border-box;
|
221
229
|
list-style: none;
|
222
230
|
margin: 0;
|
223
|
-
padding: 0 2px
|
231
|
+
padding: 0 2px 1px 2px;
|
224
232
|
width: 100%;
|
225
233
|
}
|
226
234
|
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
|
@@ -235,8 +243,8 @@
|
|
235
243
|
cursor: pointer;
|
236
244
|
float: right;
|
237
245
|
font-weight: bold;
|
238
|
-
margin-top:
|
239
|
-
margin-right:
|
246
|
+
margin-top: 2px;
|
247
|
+
margin-right: 2px;
|
240
248
|
}
|
241
249
|
|
242
250
|
#sidebar .select2-container--default .select2-selection--multiple .select2-selection__choice,
|
@@ -245,8 +253,8 @@
|
|
245
253
|
border-radius: 2px;
|
246
254
|
cursor: default;
|
247
255
|
float: left;
|
248
|
-
margin-right:
|
249
|
-
margin-top:
|
256
|
+
margin-right: 2px;
|
257
|
+
margin-top: 2px;
|
250
258
|
padding: 0 3px;
|
251
259
|
}
|
252
260
|
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
@@ -271,8 +279,8 @@
|
|
271
279
|
margin-right: auto;
|
272
280
|
}
|
273
281
|
.select2-container--default.select2-container--focus .select2-selection--multiple {
|
274
|
-
border: solid #
|
275
|
-
outline:
|
282
|
+
border: 1px solid #5ad;
|
283
|
+
outline: none;
|
276
284
|
}
|
277
285
|
.select2-container--default.select2-container--disabled .select2-selection--multiple {
|
278
286
|
background-color: #eee;
|
@@ -298,6 +306,7 @@
|
|
298
306
|
outline: 0;
|
299
307
|
box-shadow: none;
|
300
308
|
-webkit-appearance: textfield;
|
309
|
+
height: 18px;
|
301
310
|
}
|
302
311
|
.select2-container--default .select2-results > .select2-results__options {
|
303
312
|
max-height: 200px;
|
@@ -355,12 +364,12 @@
|
|
355
364
|
border: 0px !important;
|
356
365
|
height: inherit !important;
|
357
366
|
padding: 0px !important;
|
358
|
-
width: 2em !important;
|
359
367
|
}
|
360
368
|
|
361
369
|
.filter .select2-container--default .select2-selection--multiple .select2-selection__choice {
|
370
|
+
outline: none;
|
362
371
|
border: 0px;
|
363
|
-
padding:
|
372
|
+
padding: 3px 5px;
|
364
373
|
}
|
365
374
|
|
366
375
|
/* == Theming ===
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redmine_crm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.54
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- RedmineUP
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "<"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.6.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubyzip
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: sqlite3
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|