translation_center 1.6.10 → 1.7.0
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 +8 -8
- data/README.md +5 -5
- data/app/controllers/translation_center/center_controller.rb +8 -6
- data/app/helpers/translation_center/center_helper.rb +4 -0
- data/app/models/translation_center/activity_query.rb +46 -0
- data/app/models/translation_center/translation.rb +2 -1
- data/app/views/translation_center/center/_activity.html.haml +5 -4
- data/app/views/translation_center/center/dashboard.html.haml +12 -5
- data/lib/translation_center/engine.rb +0 -1
- data/lib/translation_center/translation_helpers.rb +2 -1
- data/lib/translation_center/version.rb +1 -1
- metadata +3 -16
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MTg1YzRkNDU5ZGY0M2ZiMjAwMzExNTRlMTgxZjUwYzI3NjNhNThkNQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzYxOTMyNTQyMmE1MjUxMTIwZDhkOTFjMmM2ZGI3NzIzZjE0NDg3NA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NjMxYzgyNWM5ZGEyM2ExZTBmNzA2MTQ3ZDM0Y2ZkMGJmODI0ZTk3Y2ZkZDdi
|
10
|
+
ZTBjZGUwZTZlZjY2ZmE1NGE5Y2M5ZGNmMTU1MTRhMzJiMzc2NGZkNmY5NzFl
|
11
|
+
YjU2ZDc0Y2EzYTg5MTIwMzk2MjdhNzZiMWI3Y2RjMTk2Mzc4MzM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODBjNGMzNGE1MzZjYTk0YTc1Mjk2OTM1ZDdhYmM4NzQ5ZWFmZmE0ZDY3ZTZi
|
14
|
+
ODA0MzhjMTMzNjUxOGY4Y2NmOWRjMjc2YWVkMzNhYWQ3NzNiNjEyMGJmNTZl
|
15
|
+
MGNmMDJlMWNjZWU5N2JiM2RkMzdiODEzZmYyZjUwNGNjOTE2NTM=
|
data/README.md
CHANGED
@@ -76,17 +76,17 @@ And run the migrations
|
|
76
76
|
rake db:migrate
|
77
77
|
```
|
78
78
|
|
79
|
-
And then run this rake to get all current translations to the db
|
80
|
-
```ruby
|
81
|
-
rake translation_center:synch
|
82
|
-
```
|
83
|
-
|
84
79
|
Add this line to the translator model (typically `User`)
|
85
80
|
|
86
81
|
```ruby
|
87
82
|
acts_as_translator
|
88
83
|
```
|
89
84
|
|
85
|
+
And then run this rake to get all current translations to the db
|
86
|
+
```ruby
|
87
|
+
rake translation_center:synch
|
88
|
+
```
|
89
|
+
|
90
90
|
and change the `translator_type` in `translation_center.yml` to the translator model name (if it is `User` keep it commented)
|
91
91
|
|
92
92
|
```ruby
|
@@ -26,11 +26,13 @@ module TranslationCenter
|
|
26
26
|
def dashboard
|
27
27
|
@stats = TranslationKey.langs_stats
|
28
28
|
@langs = @stats.keys
|
29
|
-
|
30
|
-
|
29
|
+
|
30
|
+
# build an empty activity query
|
31
|
+
@activity_query = ActivityQuery.new(params[:activity_query])
|
32
|
+
|
31
33
|
#TODO perpage constant should be put somewhere else
|
32
|
-
@translations_changes =
|
33
|
-
@total_pages = (
|
34
|
+
@translations_changes = @activity_query.activities.offset(Translation::CHANGES_PER_PAGE * (@page - 1)).limit(Translation::CHANGES_PER_PAGE)
|
35
|
+
@total_pages = (@activity_query.activities.count / (Translation::CHANGES_PER_PAGE * 1.0)).ceil
|
34
36
|
|
35
37
|
respond_to do |format|
|
36
38
|
format.html
|
@@ -39,8 +41,8 @@ module TranslationCenter
|
|
39
41
|
end
|
40
42
|
|
41
43
|
def search_activity
|
42
|
-
@translations_changes =
|
43
|
-
@total_pages = (
|
44
|
+
@translations_changes = ActivityQuery.new(params[:activity_query]).activities.offset(Translation::CHANGES_PER_PAGE * (@page - 1)).limit(Translation::CHANGES_PER_PAGE)
|
45
|
+
@total_pages = (ActivityQuery.new(params[:activity_query]).activities.count / (Translation::CHANGES_PER_PAGE * 1.0)).ceil
|
44
46
|
|
45
47
|
respond_to do |format|
|
46
48
|
format.js
|
@@ -11,5 +11,9 @@ module TranslationCenter
|
|
11
11
|
"<span class=\"label label-info\">#{attribute}</span> has new value <span class=\"label label-success\">#{value}</span>".html_safe
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
def translator_identifier_placeholder
|
16
|
+
"#{TranslationCenter::CONFIG['translator_type']} #{TranslationCenter::CONFIG['identifier_type']}".upcase
|
17
|
+
end
|
14
18
|
end
|
15
19
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module TranslationCenter
|
2
|
+
class ActivityQuery
|
3
|
+
extend ActiveModel::Naming
|
4
|
+
include ActiveModel::Conversion
|
5
|
+
|
6
|
+
attr_accessor :translation_key_name, :translator_identifier, :lang, :created_at_gteq, :created_at_lteq
|
7
|
+
|
8
|
+
def persisted?
|
9
|
+
false
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize args={}
|
13
|
+
args ||= {}
|
14
|
+
args.each do |k,v|
|
15
|
+
instance_variable_set("@#{k}", v) unless v.blank?
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# retuns and ActiveRecord Relation of Audit(s) that matches this search criteria
|
20
|
+
def activities
|
21
|
+
query = Audited::Adapters::ActiveRecord::Audit.where(auditable_id: translation_ids).scoped
|
22
|
+
query = query.where("DATE(created_at) <= DATE(?)", created_at_lteq) unless created_at_lteq.blank?
|
23
|
+
query = query.where("DATE(created_at) >= DATE(?)", created_at_gteq) unless created_at_gteq.blank?
|
24
|
+
query.order('created_at DESC')
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
|
29
|
+
# return translation ids that matches this search criteria
|
30
|
+
def translation_ids
|
31
|
+
query = Translation.scoped
|
32
|
+
query = query.where(lang: lang) unless lang.blank?
|
33
|
+
query = query.joins(:translation_key).where("translation_center_translation_keys.name LIKE ?", "%#{translation_key_name}%") unless translation_key_name.blank?
|
34
|
+
|
35
|
+
if translator_identifier
|
36
|
+
translator_class = TranslationCenter::CONFIG['translator_type'].camelize.constantize
|
37
|
+
translators_ids = translator_class.where("#{TranslationCenter::CONFIG['identifier_type']} LIKE ? ", "%#{translator_identifier}%").map(&:id)
|
38
|
+
|
39
|
+
query = query.where(translator_id: translators_ids)
|
40
|
+
end
|
41
|
+
|
42
|
+
query.map(&:id)
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
@@ -71,7 +71,8 @@ module TranslationCenter
|
|
71
71
|
end
|
72
72
|
|
73
73
|
# gets recent changes on translations
|
74
|
-
|
74
|
+
# TODO: remove this method as it is not being used elsewhere
|
75
|
+
def self.recent_changes
|
75
76
|
Audited::Adapters::ActiveRecord::Audit.where('auditable_type = ?', 'TranslationCenter::Translation').search(params).relation.reorder('created_at DESC')
|
76
77
|
end
|
77
78
|
|
@@ -34,15 +34,16 @@
|
|
34
34
|
= distance_of_time_in_words_to_now change.created_at
|
35
35
|
= t('.ago')
|
36
36
|
.pagination
|
37
|
-
|
37
|
+
- query_without_page_param = request.query_string.gsub(/&?page=\d*/, '')
|
38
|
+
= link_to t('pagination.first'), "#{request.protocol}#{request.host_with_port}#{request.path}?#{query_without_page_param}&page=1"
|
38
39
|
- if @page != 1
|
39
40
|
|
|
40
|
-
= link_to t('pagination.prev'), "#{request.protocol}#{request.host_with_port}#{request.
|
41
|
+
= link_to t('pagination.prev'), "#{request.protocol}#{request.host_with_port}#{request.path}?#{query_without_page_param}&page=#{@page - 1}"
|
41
42
|
|
|
42
|
-
= link_to t('pagination.next'), "#{request.protocol}#{request.host_with_port}#{request.
|
43
|
+
= link_to t('pagination.next'), "#{request.protocol}#{request.host_with_port}#{request.path}?#{query_without_page_param}&page=#{@page + 1}"
|
43
44
|
- if @page != @total_pages
|
44
45
|
|
|
45
|
-
= link_to t('pagination.last'), "#{request.protocol}#{request.host_with_port}#{request.
|
46
|
+
= link_to t('pagination.last'), "#{request.protocol}#{request.host_with_port}#{request.path}?#{query_without_page_param}&page=#{@total_pages}"
|
46
47
|
= @page
|
47
48
|
= t('.of')
|
48
49
|
= @total_pages
|
@@ -51,13 +51,13 @@
|
|
51
51
|
%h1
|
52
52
|
= t('.activity')
|
53
53
|
.span12
|
54
|
-
|
55
|
-
= form_for @search, url: :search_activity, html: { method: :get, id: :search_form, class: 'pull-left form-search' } do |f|
|
56
|
-
= f.text_field 'auditable_TranslationCenter::Translation_type_translation_key_name_matches', class: 'search_field input-medium', placeholder: 'KEY'
|
57
54
|
|
58
|
-
|
55
|
+
= form_for @activity_query, url: :search_activity, html: { method: :get, id: :search_form, class: 'pull-left form-search' } do |f|
|
56
|
+
= f.text_field :translation_key_name, class: 'search_field input-medium', placeholder: 'KEY'
|
57
|
+
|
58
|
+
= f.select :lang, I18n.available_locales.collect { |locale| [locale.to_s, locale.to_s] }, {:include_blank => t('.select_locale')}, class: 'search_field'
|
59
59
|
|
60
|
-
= f.text_field
|
60
|
+
= f.text_field :translator_identifier, class: 'search_field input-medium', placeholder: translator_identifier_placeholder
|
61
61
|
|
62
62
|
= f.text_field :created_at_gteq, class: 'search_field datepicker input-medium', placeholder: 'FROM DATE'
|
63
63
|
|
@@ -88,6 +88,13 @@
|
|
88
88
|
return false;
|
89
89
|
})
|
90
90
|
|
91
|
+
// hit search directly when pressing enter
|
92
|
+
$(".search_field").keyup(function(event){
|
93
|
+
if(event.keyCode == 13){
|
94
|
+
$('#search_activity').click();
|
95
|
+
}
|
96
|
+
});
|
97
|
+
|
91
98
|
|
92
99
|
|
93
100
|
|
@@ -7,7 +7,8 @@ module TranslationCenter
|
|
7
7
|
|
8
8
|
# if translator doesn't exist then create him
|
9
9
|
if translator.blank?
|
10
|
-
translator = TranslationCenter::CONFIG['translator_type'].camelize.constantize.new
|
10
|
+
translator = TranslationCenter::CONFIG['translator_type'].camelize.constantize.new
|
11
|
+
translator.send "#{TranslationCenter::CONFIG['identifier_type']}=", TranslationCenter::CONFIG['yaml_translator_identifier']
|
11
12
|
begin
|
12
13
|
translator.save(validate: false)
|
13
14
|
# needed if the user is using confirmable with devise
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: translation_center
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BadrIT
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-08-
|
13
|
+
date: 2013-08-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -96,20 +96,6 @@ dependencies:
|
|
96
96
|
- - ! '>='
|
97
97
|
- !ruby/object:Gem::Version
|
98
98
|
version: '0'
|
99
|
-
- !ruby/object:Gem::Dependency
|
100
|
-
name: meta_search
|
101
|
-
requirement: !ruby/object:Gem::Requirement
|
102
|
-
requirements:
|
103
|
-
- - ! '>='
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
version: '0'
|
106
|
-
type: :runtime
|
107
|
-
prerelease: false
|
108
|
-
version_requirements: !ruby/object:Gem::Requirement
|
109
|
-
requirements:
|
110
|
-
- - ! '>='
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version: '0'
|
113
99
|
- !ruby/object:Gem::Dependency
|
114
100
|
name: font-awesome-rails
|
115
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,6 +157,7 @@ files:
|
|
171
157
|
- app/controllers/translation_center/center_controller.rb
|
172
158
|
- app/controllers/translation_center/translations_controller.rb
|
173
159
|
- app/controllers/translation_center/application_controller.rb
|
160
|
+
- app/models/translation_center/activity_query.rb
|
174
161
|
- app/models/translation_center/translation_key.rb
|
175
162
|
- app/models/translation_center/category.rb
|
176
163
|
- app/models/translation_center/translation.rb
|