express_translate 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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: