express_translate 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +24 -14
- data/VERSION +1 -1
- data/app/assets/javascript/express_translate/application.js +1 -0
- data/app/assets/javascript/express_translate/handlebars-v1.3.0.js +2746 -0
- data/app/assets/stylesheets/express_translate/express_translate.css.scss +8 -3
- data/app/controllers/express_translate/account_controller.rb +6 -0
- data/app/controllers/express_translate/ajax/codes_controller.rb +19 -3
- data/app/views/express_translate/ajax/languages/_content_language.html.erb +1 -1
- data/app/views/express_translate/options/language_detail.html.erb +40 -13
- data/app/views/express_translate/templates/_code_item.html.erb +49 -0
- data/config/routes.rb +4 -0
- data/express_translate.gemspec +3 -3
- data/lib/express_translate/account_management.rb +5 -0
- data/lib/generators/express_translate/reset_account_generator.rb +1 -2
- data/lib/generators/express_translate/templates/config/express_translate.yml +2 -2
- metadata +4 -4
- data/app/views/express_translate/ajax/codes/_content_code.html.erb +0 -48
- data/app/views/express_translate/ajax/codes/code_update.html.erb +0 -1
@@ -98,7 +98,7 @@ body#express_translate {
|
|
98
98
|
float: left;
|
99
99
|
width: 130px;
|
100
100
|
height: 130px;
|
101
|
-
background: #3e94d1;
|
101
|
+
background-color: #3e94d1;
|
102
102
|
border-radius: 80px;
|
103
103
|
border:3px solid #fff;
|
104
104
|
box-shadow:0px 0px 2px #888;
|
@@ -108,10 +108,15 @@ body#express_translate {
|
|
108
108
|
transition:all 0.5s;
|
109
109
|
-webkit-transition:all 0.5s;
|
110
110
|
-moz-transition:all 0.5s;
|
111
|
+
background-repeat:no-repeat;
|
112
|
+
background-position:center 13%;
|
113
|
+
background-size:25%;
|
111
114
|
|
112
115
|
&:hover {
|
113
116
|
box-shadow:0px 0px 3px #665;
|
114
|
-
background: #398ac4;
|
117
|
+
background-color: #398ac4;
|
118
|
+
background-position:center 8%;
|
119
|
+
background-size:35%;
|
115
120
|
& > p {display:none;}
|
116
121
|
h5 {display:block;}
|
117
122
|
h4 {display:block;}
|
@@ -310,7 +315,7 @@ body#express_translate {
|
|
310
315
|
}
|
311
316
|
|
312
317
|
&.origin_true {
|
313
|
-
background: #0B61A4;
|
318
|
+
background-color: #0B61A4;
|
314
319
|
}
|
315
320
|
|
316
321
|
&.add_files {
|
@@ -31,6 +31,12 @@ class ExpressTranslate::AccountController < ExpressTranslate::BaseController
|
|
31
31
|
string = (0...50).map { o[rand(o.length)] }.join
|
32
32
|
end
|
33
33
|
|
34
|
+
# Reset account with url
|
35
|
+
def reset
|
36
|
+
Account.reset
|
37
|
+
redirect_to action: "login"
|
38
|
+
end
|
39
|
+
|
34
40
|
# Check login status function
|
35
41
|
# If logined auto change location for Client
|
36
42
|
def check_login
|
@@ -7,6 +7,11 @@ class ExpressTranslate::Ajax::CodesController < ActionController::Base
|
|
7
7
|
require 'csv'
|
8
8
|
include ExpressTranslate
|
9
9
|
|
10
|
+
# Load all codes
|
11
|
+
def code_load
|
12
|
+
load_content_code(params)
|
13
|
+
end
|
14
|
+
|
10
15
|
# Add code
|
11
16
|
# The first: selector LanguageDetail want to add with Language ID and Package ID
|
12
17
|
# After: add code for LanguageDetail selected
|
@@ -28,7 +33,6 @@ class ExpressTranslate::Ajax::CodesController < ActionController::Base
|
|
28
33
|
load_content_code(params)
|
29
34
|
end
|
30
35
|
|
31
|
-
|
32
36
|
# Delete code
|
33
37
|
# The first: selector LanguageDetail want to add with Language ID and Package ID
|
34
38
|
# Next step: find and remove code data
|
@@ -46,8 +50,20 @@ class ExpressTranslate::Ajax::CodesController < ActionController::Base
|
|
46
50
|
# The second: selector Language want to show
|
47
51
|
def load_content_code(params)
|
48
52
|
@origin_lang = Language.get_origin(params[:pack])
|
49
|
-
@LanguageDetail = LanguageDetail
|
50
53
|
@lang = {'id'=> params[:lang], 'packages'=> params[:pack]}
|
51
|
-
|
54
|
+
data = []
|
55
|
+
LanguageDetail.info(@origin_lang).all.each_with_index do |item, index|
|
56
|
+
is_origin = @origin_lang["id"] == @lang["id"]
|
57
|
+
code = LanguageDetail.info(@lang).find(item['code']) if !is_origin
|
58
|
+
data.push({
|
59
|
+
index: index + 1,
|
60
|
+
item_code: item["code"],
|
61
|
+
item_text: item["text"],
|
62
|
+
code_text: is_origin ? item["text"] : (code.present? ? code["text"] : ""),
|
63
|
+
origin_lang: is_origin,
|
64
|
+
origin_list: is_origin ? "origin_list" : ""
|
65
|
+
})
|
66
|
+
end
|
67
|
+
render json: {success: true, data: data}
|
52
68
|
end
|
53
69
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% @languages.each do |lang| %>
|
2
|
-
<a class="lang origin_<%= lang['is_origin'] %>" href="/express_translate/language/<%= params[:packages] %>/<%= lang['id'] %>">
|
2
|
+
<a class="lang origin_<%= lang['is_origin'] %>" href="/express_translate/language/<%= params[:packages] %>/<%= lang['id'] %>" style="background-image: url('/assets/express_translate/flags/<%= lang['id'] %>.png')">
|
3
3
|
<span><%= lang['text'].slice(0,1).capitalize + lang['text'].slice(1..-1) %></span>
|
4
4
|
<p><%= (@LanguageDetail.info(lang).all.count.to_f / (@max == 0 ? 1 : @max) * 100).to_i %>%</p>
|
5
5
|
<h5><%= @LanguageDetail.info(lang).all.count %>/<%= @max %></h5>
|
@@ -1,7 +1,6 @@
|
|
1
1
|
<div class="content" id="content_code">
|
2
|
-
|
2
|
+
|
3
3
|
</div>
|
4
|
-
|
5
4
|
<div class="popup">
|
6
5
|
<form id="add_code">
|
7
6
|
<div class="title">Add Code</div>
|
@@ -18,6 +17,8 @@
|
|
18
17
|
</form>
|
19
18
|
</div>
|
20
19
|
|
20
|
+
<%= render "/express_translate/templates/code_item" %>
|
21
|
+
|
21
22
|
<script>
|
22
23
|
|
23
24
|
<% if @origin_lang["id"] == params["id"] %>
|
@@ -48,14 +49,15 @@
|
|
48
49
|
text: edit.find(".new_value").val()
|
49
50
|
},
|
50
51
|
success: function(data) {
|
51
|
-
|
52
|
+
if (data.success) {
|
53
|
+
var template = Handlebars.compile($("#code_item").html());
|
54
|
+
var html = template(data);
|
52
55
|
item.removeClass("wait");
|
53
56
|
item.removeClass("update");
|
54
57
|
window.notification("Successful for update!", true);
|
55
|
-
contentCode.html(
|
58
|
+
contentCode.html(html);
|
56
59
|
runJavascriptsCode();
|
57
|
-
}
|
58
|
-
|
60
|
+
}
|
59
61
|
}
|
60
62
|
})
|
61
63
|
}
|
@@ -71,10 +73,12 @@
|
|
71
73
|
text: form.find("#text").val()
|
72
74
|
},
|
73
75
|
success: function(data) {
|
74
|
-
if (
|
76
|
+
if (data.success) {
|
77
|
+
var template = Handlebars.compile($("#code_item").html());
|
78
|
+
var html = template(data);
|
75
79
|
popup.bPopup().close();
|
76
80
|
window.notification("Successful for save!", true);
|
77
|
-
contentCode.html(
|
81
|
+
contentCode.html(html);
|
78
82
|
runJavascriptsCode();
|
79
83
|
} else {
|
80
84
|
window.notification(data.error, false);
|
@@ -142,12 +146,17 @@
|
|
142
146
|
pack: "<%= params[:package] %>"
|
143
147
|
},
|
144
148
|
success: function(data) {
|
145
|
-
|
146
|
-
|
149
|
+
item.removeClass("wait");
|
150
|
+
if (data.success) {
|
151
|
+
var template = Handlebars.compile($("#code_item").html());
|
152
|
+
var html = template(data);
|
153
|
+
popup.bPopup().close();
|
147
154
|
window.notification("Successful for delete!", true);
|
148
|
-
|
155
|
+
contentCode.html(html);
|
149
156
|
runJavascriptsCode();
|
150
|
-
}
|
157
|
+
} else {
|
158
|
+
window.notification(data.error, false);
|
159
|
+
}
|
151
160
|
}
|
152
161
|
})
|
153
162
|
},
|
@@ -174,6 +183,24 @@
|
|
174
183
|
})
|
175
184
|
}
|
176
185
|
|
177
|
-
|
186
|
+
var load_index = function(args) {
|
187
|
+
$.ajax({
|
188
|
+
type: "POST",
|
189
|
+
url: "/express_translate/ajax/code/load",
|
190
|
+
data: {
|
191
|
+
lang: "<%= params[:id] %>",
|
192
|
+
pack: "<%= params[:package] %>",
|
193
|
+
},
|
194
|
+
success: function(data) {
|
195
|
+
if (data.success) {
|
196
|
+
var template = Handlebars.compile($("#code_item").html());
|
197
|
+
contentCode.html(template(data));
|
198
|
+
runJavascriptsCode();
|
199
|
+
}
|
200
|
+
}
|
201
|
+
})
|
202
|
+
}
|
203
|
+
|
204
|
+
load_index();
|
178
205
|
|
179
206
|
</script>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<script id="code_item" type="text/x-handlebars-template">
|
2
|
+
{{#each data}}
|
3
|
+
<div class="item_box" data="{{item_code}}">
|
4
|
+
<h6 class="index">{{index}}</h6>
|
5
|
+
<h6 class="code">{{item_code}}</h6>
|
6
|
+
|
7
|
+
<div class='edit'>
|
8
|
+
<a class='btn' href="/express_translate/ajax/code/update" data="{{item_code}}" type="update_code" data_show="content_code">Save</a>
|
9
|
+
<a class='btn btn_cancel' href="#">Cancel</a>
|
10
|
+
<div class="col1 btn_cancel">
|
11
|
+
<h2><b>Origin:</b></h2>
|
12
|
+
<span>{{item_text}}</span>
|
13
|
+
</div>
|
14
|
+
<div class="col1">
|
15
|
+
<h2><b>Translate:</b></h2>
|
16
|
+
<textarea class="new_value" href="/express_translate/ajax/code/update" data="{{item_code}}">{{code_text}}</textarea>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div class="show {{origin_list}}">
|
21
|
+
<a class='btn btn_edit' href="#">Edit</a>
|
22
|
+
{{#unless origin_lang}}
|
23
|
+
<a class='btn btn_delete' href="/express_translate/ajax/code/delete" data="{{item_code}}" type="delete_code" data_show="content_code">Delete</a>
|
24
|
+
<div class="col1">
|
25
|
+
<h2><b>Origin:</b></h2>
|
26
|
+
<span class="origin_span">{{item_text}}</span>
|
27
|
+
<hr>
|
28
|
+
</div>
|
29
|
+
{{/unless}}
|
30
|
+
<div class="col1 btn_edit">
|
31
|
+
<h2><b>Translate:</b></h2>
|
32
|
+
<span class="trans_span">{{code_text}}</span>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
|
36
|
+
<div class="waiting">
|
37
|
+
<div class="bubblingG">
|
38
|
+
<p id="bubblingG_1"></p>
|
39
|
+
<p id="bubblingG_2"></p>
|
40
|
+
<p id="bubblingG_3"></p>
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div class="delete_dialog_{{item_code}}" style="display: none">
|
45
|
+
<h4>Are you sure you want to delete?</br>{{item_text}}</h4>
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
{{/each}}
|
49
|
+
</script>
|
data/config/routes.rb
CHANGED
@@ -11,7 +11,11 @@ Rails.application.routes.draw do
|
|
11
11
|
get "/login" => "express_translate/account#login"
|
12
12
|
post "/login" => "express_translate/account#login_check"
|
13
13
|
|
14
|
+
# TOOLS
|
15
|
+
get "/reset/account" => "express_translate/account#reset"
|
16
|
+
|
14
17
|
# CODE
|
18
|
+
post "/ajax/code/load" => 'express_translate/ajax/codes#code_load'
|
15
19
|
post "/ajax/code/add" => 'express_translate/ajax/codes#code_add'
|
16
20
|
post "/ajax/code/update" => 'express_translate/ajax/codes#code_update'
|
17
21
|
post "/ajax/code/delete" => 'express_translate/ajax/codes#code_delete'
|
data/express_translate.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "express_translate"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Karl"]
|
@@ -111,6 +111,7 @@ Gem::Specification.new do |s|
|
|
111
111
|
"app/assets/javascript/express_translate/application.js",
|
112
112
|
"app/assets/javascript/express_translate/base.js",
|
113
113
|
"app/assets/javascript/express_translate/bpopup.js",
|
114
|
+
"app/assets/javascript/express_translate/handlebars-v1.3.0.js",
|
114
115
|
"app/assets/javascript/express_translate/jquery-ui-1.10.4.js",
|
115
116
|
"app/assets/javascript/express_translate/translate.layout.js",
|
116
117
|
"app/assets/javascript/express_translate/wSelect.js",
|
@@ -138,8 +139,6 @@ Gem::Specification.new do |s|
|
|
138
139
|
"app/views/.DS_Store",
|
139
140
|
"app/views/express_translate/.DS_Store",
|
140
141
|
"app/views/express_translate/account/login.html.erb",
|
141
|
-
"app/views/express_translate/ajax/codes/_content_code.html.erb",
|
142
|
-
"app/views/express_translate/ajax/codes/code_update.html.erb",
|
143
142
|
"app/views/express_translate/ajax/languages/_content_language.html.erb",
|
144
143
|
"app/views/express_translate/ajax/languages/language_update.html.erb",
|
145
144
|
"app/views/express_translate/ajax/packages/_content_index.html.erb",
|
@@ -148,6 +147,7 @@ Gem::Specification.new do |s|
|
|
148
147
|
"app/views/express_translate/options/index.html.erb",
|
149
148
|
"app/views/express_translate/options/language_detail.html.erb",
|
150
149
|
"app/views/express_translate/options/languages.html.erb",
|
150
|
+
"app/views/express_translate/templates/_code_item.html.erb",
|
151
151
|
"app/views/layouts/express_translate/login.html.erb",
|
152
152
|
"app/views/layouts/express_translate/translate.html.erb",
|
153
153
|
"config/languages.yml",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: express_translate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -273,6 +273,7 @@ files:
|
|
273
273
|
- app/assets/javascript/express_translate/application.js
|
274
274
|
- app/assets/javascript/express_translate/base.js
|
275
275
|
- app/assets/javascript/express_translate/bpopup.js
|
276
|
+
- app/assets/javascript/express_translate/handlebars-v1.3.0.js
|
276
277
|
- app/assets/javascript/express_translate/jquery-ui-1.10.4.js
|
277
278
|
- app/assets/javascript/express_translate/translate.layout.js
|
278
279
|
- app/assets/javascript/express_translate/wSelect.js
|
@@ -300,8 +301,6 @@ files:
|
|
300
301
|
- app/views/.DS_Store
|
301
302
|
- app/views/express_translate/.DS_Store
|
302
303
|
- app/views/express_translate/account/login.html.erb
|
303
|
-
- app/views/express_translate/ajax/codes/_content_code.html.erb
|
304
|
-
- app/views/express_translate/ajax/codes/code_update.html.erb
|
305
304
|
- app/views/express_translate/ajax/languages/_content_language.html.erb
|
306
305
|
- app/views/express_translate/ajax/languages/language_update.html.erb
|
307
306
|
- app/views/express_translate/ajax/packages/_content_index.html.erb
|
@@ -310,6 +309,7 @@ files:
|
|
310
309
|
- app/views/express_translate/options/index.html.erb
|
311
310
|
- app/views/express_translate/options/language_detail.html.erb
|
312
311
|
- app/views/express_translate/options/languages.html.erb
|
312
|
+
- app/views/express_translate/templates/_code_item.html.erb
|
313
313
|
- app/views/layouts/express_translate/login.html.erb
|
314
314
|
- app/views/layouts/express_translate/translate.html.erb
|
315
315
|
- config/languages.yml
|
@@ -406,7 +406,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
406
406
|
version: '0'
|
407
407
|
segments:
|
408
408
|
- 0
|
409
|
-
hash:
|
409
|
+
hash: 2008451929382581134
|
410
410
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
411
411
|
none: false
|
412
412
|
requirements:
|
@@ -1,48 +0,0 @@
|
|
1
|
-
<% @LanguageDetail.info(@origin_lang).all.each_with_index do |item, index| %>
|
2
|
-
<div class="item_box" data="<%= item['code'] %>">
|
3
|
-
<h6 class="index"><%= index + 1 %></h6>
|
4
|
-
<h6 class="code"><%= item['code'] %></h6>
|
5
|
-
|
6
|
-
<div class='edit'>
|
7
|
-
<a class='btn' href="/express_translate/ajax/code/update" data="<%= item['code'] %>" type="update_code" data_show="content_code">Save</a>
|
8
|
-
<a class='btn btn_cancel' href="#">Cancel</a>
|
9
|
-
<div class="col1 btn_cancel">
|
10
|
-
<h2><b>Origin:</b></h2>
|
11
|
-
<span><%= item['text'] %></span>
|
12
|
-
</div>
|
13
|
-
<div class="col1">
|
14
|
-
<h2><b>Translate:</b></h2>
|
15
|
-
<% code = @LanguageDetail.info(@lang).find(item['code']) %>
|
16
|
-
<textarea class="new_value" href="/express_translate/ajax/code/update" data="<%= item['code'] %>"><%= code.nil? ? "" : code['text'] %></textarea>
|
17
|
-
</div>
|
18
|
-
</div>
|
19
|
-
|
20
|
-
<div class="show <%= @origin_lang["id"] == params["id"] ? "origin_list" : "" %>">
|
21
|
-
<a class='btn btn_edit' href="#">Edit</a>
|
22
|
-
<% if @origin_lang["id"] != @lang["id"] %>
|
23
|
-
<a class='btn btn_delete' href="/express_translate/ajax/code/delete" data="<%= item['code'] %>" type="delete_code" data_show="content_code">Delete</a>
|
24
|
-
<div class="col1">
|
25
|
-
<h2><b>Origin:</b></h2>
|
26
|
-
<span class="origin_span"><%= item['text'] %></span>
|
27
|
-
<hr>
|
28
|
-
</div>
|
29
|
-
<% end %>
|
30
|
-
<div class="col1 btn_edit">
|
31
|
-
<h2><b>Translate:</b></h2>
|
32
|
-
<span class="trans_span"><%= code.nil? ? "" : code['text'] %></span>
|
33
|
-
</div>
|
34
|
-
</div>
|
35
|
-
|
36
|
-
<div class="waiting">
|
37
|
-
<div class="bubblingG">
|
38
|
-
<p id="bubblingG_1"></p>
|
39
|
-
<p id="bubblingG_2"></p>
|
40
|
-
<p id="bubblingG_3"></p>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
|
44
|
-
<div class="delete_dialog_<%= item['code'] %>" style="display: none">
|
45
|
-
<h4>Are you sure you want to delete?</br><%= item['text'] %></h4>
|
46
|
-
</div>
|
47
|
-
</div>
|
48
|
-
<% end %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= render 'content_code' %>
|