express_translate 1.0.2 → 1.0.3

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.
data/README.md CHANGED
@@ -22,7 +22,7 @@ Express Translate
22
22
  ##Installation
23
23
  ### 1. Gemfile
24
24
  ```bash
25
- gem 'express_translate', '~> 1.0.1'
25
+ gem 'express_translate', '~> 1.0.3'
26
26
  ```
27
27
 
28
28
  ### 2. Setup
@@ -84,9 +84,12 @@ Note: You can see before login. Account for login in config file ("/config/expre
84
84
  ##Support
85
85
 
86
86
  ### Files
87
- Export and Import csv file
87
+ #### Import
88
+ * CSV file
89
+ * YML file
90
+ #### Export
91
+ * CSV file
88
92
 
89
93
  ### Application
90
94
  Backend for Ruby on Rails
91
-
92
- Get data with json (for Javascript)
95
+ Get data with json (for Javascript) => Development
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.0.3
@@ -112,7 +112,7 @@ body#express_translate {
112
112
  &:hover {
113
113
  box-shadow:0px 0px 3px #665;
114
114
  background: #398ac4;
115
- p {display:none;}
115
+ & > p {display:none;}
116
116
  h5 {display:block;}
117
117
  h4 {display:block;}
118
118
  .tool {
@@ -388,6 +388,32 @@ body#express_translate {
388
388
  }
389
389
  }
390
390
 
391
+ &.wait {
392
+ &:hover {
393
+ .tool {
394
+ z-index:-1;
395
+ opacity:0;
396
+ }
397
+ };
398
+ .waiting {
399
+ display:block;
400
+ }
401
+ }
402
+
403
+ .waiting {
404
+ background: rgba(0,0,0,0.6);
405
+ width:100%;
406
+ height:100%;
407
+ position:relative;
408
+ top:0px;
409
+ left:0px;
410
+ border-radius:200px;
411
+ display:none;
412
+ .bubblingG {
413
+ margin-left:-30px;
414
+ }
415
+ }
416
+
391
417
  span {
392
418
  text-align:center;
393
419
  width:90%;
@@ -33,7 +33,9 @@ class ExpressTranslate::FilesController < ExpressTranslate::BaseController
33
33
  File.open(filename, 'wb') do |file|
34
34
  file.write(params[:file_yml].read)
35
35
  end
36
- import_yml_file(File.open(filename, 'r').path)
36
+ @list_data = []
37
+ lang_id = import_yml_file(File.open(filename, 'r').path)
38
+ add_data_form_list(params["pack"], lang_id)
37
39
  render text: "Uploaded"
38
40
  end
39
41
 
@@ -76,23 +78,31 @@ class ExpressTranslate::FilesController < ExpressTranslate::BaseController
76
78
  # Import yml file
77
79
  def import_yml_file(path)
78
80
  data = YAML.load_file(path)
79
- # data.each do |lang|
80
- # lang[1].each do |item|
81
- # puts item.inspect
82
- # get_data_yml_file(item)
83
- # end
84
- # end
85
- end
86
-
87
- # Get item data with key and value
88
- def get_data_yml_file(item)
89
- puts item.inspect
90
- # if item[1].is_a?(String)
91
- # puts item[1]
92
- # elsif item[1].is_a?(Object)
93
- # get_data_yml_file(item[1])
94
- # # puts item[1]
95
- # end
81
+ data.each do |lang|
82
+ @list_data = to_shallow_hash(lang[1])
83
+ return lang[0]
84
+ end
85
+ end
86
+
87
+ def add_data_form_list(pack, lang)
88
+ language_detail = LanguageDetail.info({"id"=> lang, "packages"=> pack})
89
+ language_detail.destroy
90
+ @list_data.each do |item|
91
+ language_detail.add({code: item[0], text: item[1]})
92
+ end
93
+ end
94
+
95
+ def to_shallow_hash(hash)
96
+ hash.inject({}) do |shallow_hash, (key, value)|
97
+ if value.is_a?(Hash)
98
+ to_shallow_hash(value).each do |sub_key, sub_value|
99
+ shallow_hash[[key, sub_key].join(".")] = sub_value
100
+ end
101
+ else
102
+ shallow_hash[key.to_s] = value
103
+ end
104
+ shallow_hash
105
+ end
96
106
  end
97
107
 
98
108
  # Processing
@@ -1,5 +1,5 @@
1
1
  <% @languages.each do |lang| %>
2
- <a class="lang add_files 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'] %>">
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,5 +1,5 @@
1
1
  <% @packages.each do |package| %>
2
- <a class="lang package <%= package['language'].count > 1 ? "multi" : "" %>" href="/express_translate/package/<%= package['id'] %>">
2
+ <a data="<%= package['id'] %>" class="lang package <%= package['language'].count > 1 ? "multi" : "" %>" href="/express_translate/package/<%= package['id'] %>">
3
3
  <span><%= package['text'].slice(0,1).capitalize + package['text'].slice(1..-1) %></span>
4
4
  <p><%= package['language'].count %></p>
5
5
  <div class="list_review">
@@ -12,6 +12,14 @@
12
12
  <div class="tool setting" data="<%= package['id'] %>" text="<%= package['text'] %>"></div>
13
13
  <div class="tool json" data="<%= package['id'] %>"></div>
14
14
  </div>
15
+
16
+ <div class="waiting">
17
+ <div class="bubblingG">
18
+ <p id="bubblingG_1"></p>
19
+ <p id="bubblingG_2"></p>
20
+ <p id="bubblingG_3"></p>
21
+ </div>
22
+ </div>
15
23
  </a>
16
24
  <div class="delete_dialog_<%= package['id'] %>" style="display: none">
17
25
  <h4>Are you sure you want to delete?</br><%= package['text'] %></h4>
@@ -147,7 +147,74 @@
147
147
  $(".json").click(function(event) {
148
148
  event.preventDefault();
149
149
  openInNewTab(window.location.origin + "/express_translate/service/" + $(event.target).attr("data") + ".json");
150
- })
150
+ });
151
+
152
+ var obj = $(".package");
153
+
154
+ obj.on('dragenter', function (e){
155
+ e.stopPropagation();
156
+ e.preventDefault();
157
+ $(this).removeClass("add_files");
158
+ });
159
+
160
+ obj.on('dragover', function (e){
161
+ e.stopPropagation();
162
+ e.preventDefault();
163
+ $(this).addClass("add_files");
164
+ });
165
+
166
+ obj.on('drop', function (e){
167
+ $(this).removeClass("add_files");
168
+ e.preventDefault();
169
+ var files = e.originalEvent.dataTransfer.files;
170
+ handleFileUpload(files, obj);
171
+ });
172
+
173
+ obj.on('dragleave', function (e) {
174
+ $(this).removeClass("add_files");
175
+ });
176
+
177
+ function handleFileUpload(files, obj) {
178
+ obj.addClass("wait");
179
+ for (var i = 0; i < files.length; i++) {
180
+ var fd = new FormData();
181
+ fd.append("pack", obj.attr("data"));
182
+ fd.append('file_yml', files[i]);
183
+ sendFileToServer(fd, obj);
184
+ }
185
+ }
186
+
187
+ function sendFileToServer(formData, obj) {
188
+ var uploadURL ="/express_translate/import_yml";
189
+ var jqXHR = $.ajax({
190
+ xhr: function() {
191
+ var xhrobj = $.ajaxSettings.xhr();
192
+ if (xhrobj.upload) {
193
+ xhrobj.upload.addEventListener('progress', function(event) {
194
+ var percent = 0;
195
+ var position = event.loaded || event.position;
196
+ var total = event.total;
197
+ if (event.lengthComputable) {
198
+ percent = Math.ceil(position / total * 100);
199
+ console.log(percent)
200
+ }
201
+ }, false);
202
+ }
203
+ return xhrobj;
204
+ },
205
+ url: uploadURL,
206
+ type: "POST",
207
+ contentType:false,
208
+ processData: false,
209
+ cache: false,
210
+ data: formData,
211
+ success: function(data){
212
+ console.log(data)
213
+ // Uploaded
214
+ obj.removeClass("wait");
215
+ }
216
+ });
217
+ }
151
218
  }
152
219
 
153
220
  runJavascriptsIndex();
@@ -172,75 +172,7 @@
172
172
  $(".json").click(function(event) {
173
173
  event.preventDefault();
174
174
  openInNewTab(window.location.origin + "/express_translate/service/" + $(event.target).attr("data") + ".json")
175
- });
176
-
177
- var obj = $(".lang");
178
-
179
- obj.on('dragenter', function (e){
180
- e.stopPropagation();
181
- e.preventDefault();
182
- $(this).removeClass("add_files");
183
- });
184
-
185
- obj.on('dragover', function (e){
186
- e.stopPropagation();
187
- e.preventDefault();
188
- $(this).addClass("add_files");
189
- });
190
-
191
- obj.on('drop', function (e){
192
- $(this).removeClass("add_files");
193
- e.preventDefault();
194
- var files = e.originalEvent.dataTransfer.files;
195
- handleFileUpload(files, obj);
196
- });
197
-
198
- obj.on('dragleave', function (e) {
199
- $(this).removeClass("add_files");
200
- });
201
-
202
- function handleFileUpload(files, obj) {
203
- for (var i = 0; i < files.length; i++) {
204
- var fd = new FormData();
205
- fd.append('file_yml', files[i]);
206
- sendFileToServer(fd);
207
- }
208
- }
209
-
210
- function sendFileToServer(formData) {
211
- var uploadURL ="/express_translate/import_yml";
212
- var extraData ={};
213
- var jqXHR = $.ajax({
214
- xhr: function() {
215
- var xhrobj = $.ajaxSettings.xhr();
216
- if (xhrobj.upload) {
217
- xhrobj.upload.addEventListener('progress', function(event) {
218
- var percent = 0;
219
- var position = event.loaded || event.position;
220
- var total = event.total;
221
- if (event.lengthComputable) {
222
- percent = Math.ceil(position / total * 100);
223
- }
224
- }, false);
225
- }
226
- return xhrobj;
227
- },
228
- url: uploadURL,
229
- type: "POST",
230
- contentType:false,
231
- processData: false,
232
- cache: false,
233
- data: formData,
234
- success: function(data){
235
- console.log(data)
236
- $(".import").html("Import");
237
- setTimeout(function(){
238
- // window.location.reload();
239
- }, 100);
240
- }
241
- });
242
- }
243
-
175
+ });
244
176
  }
245
177
 
246
178
  runJavascriptsLanguage();
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "express_translate"
8
- s.version = "1.0.2"
8
+ s.version = "1.0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Karl"]
12
- s.date = "2014-06-30"
12
+ s.date = "2014-07-01"
13
13
  s.description = "longer description of your gem"
14
14
  s.email = "karl@rubify.com"
15
15
  s.extra_rdoc_files = [
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.2
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-30 00:00:00.000000000 Z
12
+ date: 2014-07-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis
@@ -355,7 +355,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
355
355
  version: '0'
356
356
  segments:
357
357
  - 0
358
- hash: -587910395349454483
358
+ hash: 2342580513378280072
359
359
  required_rubygems_version: !ruby/object:Gem::Requirement
360
360
  none: false
361
361
  requirements: