vue_crud 0.1.10.1 → 0.1.10.2

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/lib/.DS_Store +0 -0
  4. data/lib/generators/.DS_Store +0 -0
  5. data/lib/generators/vue_crud/.DS_Store +0 -0
  6. data/lib/generators/vue_crud/codemirror_generator.rb +11 -0
  7. data/lib/generators/vue_crud/example_generator.rb +1 -1
  8. data/lib/generators/vue_crud/fa_generator.rb +11 -0
  9. data/lib/generators/vue_crud/froala_generator.rb +1 -1
  10. data/lib/generators/vue_crud/install_generator.rb +28 -6
  11. data/lib/generators/vue_crud/pace_generator.rb +1 -1
  12. data/lib/generators/vue_crud/sortable_generator.rb +1 -1
  13. data/lib/generators/vue_crud/template_generator.rb +10 -0
  14. data/lib/generators/vue_crud/templates/.DS_Store +0 -0
  15. data/lib/generators/vue_crud/templates/assets/.DS_Store +0 -0
  16. data/lib/generators/vue_crud/templates/assets/fonts/fa/FontAwesome.otf +0 -0
  17. data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.eot +0 -0
  18. data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.svg +2671 -0
  19. data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.ttf +0 -0
  20. data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.woff +0 -0
  21. data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.woff2 +0 -0
  22. data/lib/generators/vue_crud/templates/assets/javascripts/codemirror.js +9096 -0
  23. data/lib/generators/vue_crud/templates/assets/stylesheets/.DS_Store +0 -0
  24. data/lib/generators/vue_crud/templates/assets/stylesheets/codemirror.css +341 -0
  25. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_animated.scss +34 -0
  26. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_bordered-pulled.scss +25 -0
  27. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_core.scss +12 -0
  28. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_fixed-width.scss +6 -0
  29. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_icons.scss +789 -0
  30. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_larger.scss +13 -0
  31. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_list.scss +19 -0
  32. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_mixins.scss +60 -0
  33. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_path.scss +15 -0
  34. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_rotated-flipped.scss +20 -0
  35. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_screen-reader.scss +5 -0
  36. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_stacked.scss +20 -0
  37. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_variables.scss +800 -0
  38. data/lib/generators/vue_crud/templates/assets/stylesheets/fa/font-awesome.scss +18 -0
  39. data/lib/generators/vue_crud/templates/vue_crud.html +0 -15
  40. data/lib/generators/vue_crud/vuejs_generator.rb +1 -1
  41. data/lib/vue_crud/version.rb +1 -1
  42. data/vendor/assets/javascripts/vue_crud.js +27 -31
  43. metadata +31 -2
@@ -0,0 +1,18 @@
1
+ /*!
2
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
+ */
5
+
6
+ @import "variables";
7
+ @import "mixins";
8
+ @import "path";
9
+ @import "core";
10
+ @import "larger";
11
+ @import "fixed-width";
12
+ @import "list";
13
+ @import "bordered-pulled";
14
+ @import "animated";
15
+ @import "rotated-flipped";
16
+ @import "stacked";
17
+ @import "icons";
18
+ @import "screen-reader";
@@ -16,9 +16,6 @@ $(document).ready(function() {
16
16
  models.find('.custom_action').html(
17
17
  $('#custom_action').html()
18
18
  );
19
- // models.find('.vue_form_for_edit').html(
20
- // $('#vue_form').html()
21
- // );
22
19
  modal.find('.custom_modal_body').html(
23
20
  $('#custom_modal_body').html()
24
21
  );
@@ -338,15 +335,3 @@ $(document).ready(function() {
338
335
  </div>
339
336
  </form>
340
337
  </script>
341
- <!-- NOTE: memo-->
342
- <!-- <div class="row well well-sm">
343
- <models v-for="model in models" :model="model"></models>
344
- </div> -->
345
- <!-- ┌───────────────────────────────────────┐ -->
346
- <!-- │ ↓ -->
347
- <!-- v-for model in models 這個 model 會透過 :model="model" 傳值到 template,無法直接使用 v-for 迴圈出來的 model -->
348
- <!-- │
349
- In models component props: { ↓
350
- model: Object
351
- }
352
- -->
@@ -3,7 +3,7 @@ module VueCrud
3
3
  class VuejsGenerator < Rails::Generators::Base
4
4
  source_root File.expand_path("../templates/assets", __FILE__)
5
5
 
6
- def copy_template_file
6
+ def copy_vuejs
7
7
  copy_file "javascripts/vue.js", "app/assets/javascripts/vue.js"
8
8
  end
9
9
  end
@@ -1,3 +1,3 @@
1
1
  module VueCrud
2
- VERSION = "0.1.10.1"
2
+ VERSION = "0.1.10.2"
3
3
  end
@@ -1,3 +1,9 @@
1
+ $.FE.prototype.reset = function () {
2
+ this.$el.html('');
3
+ }
4
+ $.FE.prototype.refresh = function () {
5
+ this.$el.html(this.$oel.val());
6
+ }
1
7
  $(document).ajaxStart(function() { Pace.restart(); });
2
8
  Vue.config.devtools = true;
3
9
  Pace.on('done', function() {
@@ -5,7 +11,7 @@ Pace.on('done', function() {
5
11
  });
6
12
  var event_hub = new Vue();
7
13
  function sleep(time) {
8
- return new Promise((resolve) => setTimeout(resolve, time));
14
+ return new Promise((resolve) => setTimeout(resolve, time));
9
15
  }
10
16
  function obj_to_json(obj) {
11
17
  return JSON.parse(JSON.stringify(obj));
@@ -66,7 +72,8 @@ function vueCRUD_init(params = {}) {
66
72
  suffix: '.json',
67
73
  column_type: 'card',
68
74
  countOfPage: 9,
69
- sortable: false
75
+ sortable: false,
76
+ info_url: window.location.pathname + '/info.json'
70
77
  }
71
78
  var options = $.extend(true, {}, default_options, params)
72
79
  Vue.directive('froala', {
@@ -109,6 +116,9 @@ function vueCRUD_init(params = {}) {
109
116
  }
110
117
  },
111
118
  mounted: function() {
119
+ event_hub.$on('update_error', function(error) {
120
+ this.error = error;
121
+ }.bind(this));
112
122
  event_hub.$on('update_action_name', function(action_name) {
113
123
  this.action_name = action_name;
114
124
  }.bind(this));
@@ -167,13 +177,13 @@ function vueCRUD_init(params = {}) {
167
177
  observeChanges: true,
168
178
  transition: 'fade down',
169
179
  onShow: function() {
170
- $('.needRefresh').froalaEditor('reset');
180
+ // $('.needRefresh').froalaEditor('reset');
171
181
  $(this).find('select.ui.dropdown').dropdown();
172
182
  $(this).find('.ui.checkbox').checkbox();
173
183
  if(typeof modalOpen !== "undefined") modalOpen(this);
174
184
  },
175
185
  onVisible: function() {
176
- $('.needRefresh').froalaEditor('refresh');
186
+ // $('.needRefresh').froalaEditor('refresh');
177
187
  },
178
188
  onHide: function() {
179
189
  event_hub.$emit('cancel_customMode');
@@ -267,7 +277,7 @@ function vueCRUD_init(params = {}) {
267
277
  if(confirm("Are you sure?") == true) {
268
278
  $.ajax({
269
279
  method: 'DELETE',
270
- url: that.info.url_prefix + '/' + that.model.id + options.suffix + location.search,
280
+ url: that.info.url_prefix + '/' + that.model.ID + options.suffix + location.search,
271
281
  success: function(res) {
272
282
  that.is_deleted = true;
273
283
  event_hub.$on('toggleRestoreSuccess', function() {
@@ -297,11 +307,10 @@ function vueCRUD_init(params = {}) {
297
307
  var that = this;
298
308
  $.ajax({
299
309
  method: 'PATCH',
300
- data: {
301
- model: that.model,
302
- },
303
- url: that.info.url_prefix + '/' + that.model.id + options.suffix + location.search,
310
+ data: JSON.stringify(that.model),
311
+ url: that.info.url_prefix + '/' + that.model.ID + options.suffix + location.search,
304
312
  beforeSend: function() {
313
+ console.log(JSON.stringify(that.model));
305
314
  event_hub.$emit('dimmerOn');
306
315
  $('.progress-bar').css('width', '0');
307
316
  },
@@ -316,7 +325,7 @@ function vueCRUD_init(params = {}) {
316
325
  });
317
326
  },
318
327
  error: function(res) {
319
- that.errors = res.responseJSON.errors;
328
+ event_hub.$emit('update_error', res.responseJSON.errors);
320
329
  event_hub.$emit('dimmerOff');
321
330
  }
322
331
  });
@@ -336,7 +345,6 @@ function vueCRUD_init(params = {}) {
336
345
  info: {
337
346
  url_prefix: '',
338
347
  titles: {},
339
- structure: {},
340
348
  model_attributes: []
341
349
  },
342
350
  errors: {},
@@ -346,7 +354,6 @@ function vueCRUD_init(params = {}) {
346
354
  searchQuery: getParameterByName("q"),
347
355
  filteredModelCount: null,
348
356
  is_calculating: false,
349
- model_prefix: getParameterByName("mp"),
350
357
  selected_attribute: getParameterByName("sa"),
351
358
  selected_text: getParameterByName("st")
352
359
  }
@@ -354,10 +361,10 @@ function vueCRUD_init(params = {}) {
354
361
  mounted: function() {
355
362
  var that = this;
356
363
  $.ajax({
357
- url: window.location.pathname + '/info' + options.suffix,
364
+ url: options.info_url,
358
365
  success: function(res) {
359
366
  that.info = res;
360
- that.model = obj_to_json(that.info.structure);
367
+ that.model = {};
361
368
  var default_url = that.info.url_prefix + location.search;
362
369
  default_url = removeParam("p", default_url);
363
370
  default_url = removeParam("q", default_url);
@@ -384,13 +391,10 @@ function vueCRUD_init(params = {}) {
384
391
  event_hub.$emit('update_progress', $(this).val());
385
392
  });
386
393
  $(document).delegate('.attribute_option', 'click', function(event) {
387
- var model_prefix = $('.attribute_select').find('.item.selected').attr('model_prefix');
388
394
  var selected_attribute = $('.attribute_select').find('.item.selected').attr('target') || "Attribute";
389
395
  var selected_text = $('.attribute_select').find('.item.selected').attr('target_text') || "欄位";
390
- that.model_prefix = model_prefix;
391
396
  that.selected_attribute = selected_attribute;
392
397
  that.selected_text = selected_text;
393
- updateQueryStringParam('mp', that.model_prefix);
394
398
  updateQueryStringParam('sa', that.selected_attribute);
395
399
  updateQueryStringParam('st', that.selected_text);
396
400
  });
@@ -420,12 +424,7 @@ function vueCRUD_init(params = {}) {
420
424
  var that = this;
421
425
  that.is_calculating = true;
422
426
  var result = that.models.filter(function (model) {
423
- if(that.model_prefix.length > 0) {
424
- return String(model[that.model_prefix][that.selected_attribute]).indexOf(that.searchQuery) !== -1;
425
- }
426
- else {
427
- return String(model[that.selected_attribute]).indexOf(that.searchQuery) !== -1;
428
- }
427
+ return String(model[that.selected_attribute]).indexOf(that.searchQuery) !== -1;
429
428
  });
430
429
 
431
430
  that.filteredModelCount = result.length
@@ -466,9 +465,7 @@ function vueCRUD_init(params = {}) {
466
465
  var that = this;
467
466
  $.ajax({
468
467
  method: 'POST',
469
- data: {
470
- model: that.model,
471
- },
468
+ data: JSON.stringify(that.model),
472
469
  url: that.info.url_prefix + options.suffix + location.search,
473
470
  success: function(res) {
474
471
  event_hub.$emit('toggleRestoreSuccess');
@@ -482,11 +479,10 @@ function vueCRUD_init(params = {}) {
482
479
  var that = this;
483
480
  $.ajax({
484
481
  method: 'POST',
485
- data: {
486
- model: that.model,
487
- },
482
+ data: JSON.stringify(that.model),
488
483
  url: that.info.url_prefix + options.suffix + location.search,
489
484
  beforeSend: function() {
485
+ console.log(JSON.stringify(that.model));
490
486
  event_hub.$emit('dimmerOn');
491
487
  $('.progress-bar').css('width', '0');
492
488
  },
@@ -494,11 +490,11 @@ function vueCRUD_init(params = {}) {
494
490
  event_hub.$emit('closeModal');
495
491
  event_hub.$emit('dimmerOff');
496
492
  that.errors = {};
497
- that.model = obj_to_json(that.info.structure);
493
+ that.model = {};
498
494
  that.models.push(res);
499
495
  },
500
496
  error: function(res) {
501
- that.errors = res.responseJSON.errors;
497
+ event_hub.$emit('update_error', res.responseJSON.errors);
502
498
  event_hub.$emit('dimmerOff');
503
499
  }
504
500
  });
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vue_crud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10.1
4
+ version: 0.1.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donald Chiang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-15 00:00:00.000000000 Z
11
+ date: 2016-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -69,14 +69,27 @@ files:
69
69
  - bin/setup
70
70
  - lib/.DS_Store
71
71
  - lib/generators/.DS_Store
72
+ - lib/generators/vue_crud/.DS_Store
73
+ - lib/generators/vue_crud/codemirror_generator.rb
72
74
  - lib/generators/vue_crud/example_generator.rb
75
+ - lib/generators/vue_crud/fa_generator.rb
73
76
  - lib/generators/vue_crud/froala_generator.rb
74
77
  - lib/generators/vue_crud/install_generator.rb
75
78
  - lib/generators/vue_crud/pace_generator.rb
76
79
  - lib/generators/vue_crud/semantic_generator.rb
77
80
  - lib/generators/vue_crud/sortable_generator.rb
81
+ - lib/generators/vue_crud/template_generator.rb
82
+ - lib/generators/vue_crud/templates/.DS_Store
83
+ - lib/generators/vue_crud/templates/assets/.DS_Store
84
+ - lib/generators/vue_crud/templates/assets/fonts/fa/FontAwesome.otf
85
+ - lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.eot
86
+ - lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.svg
87
+ - lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.ttf
88
+ - lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.woff
89
+ - lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.woff2
78
90
  - lib/generators/vue_crud/templates/assets/images/froala_editor/color_picker.png
79
91
  - lib/generators/vue_crud/templates/assets/images/semantic-ui/flags.png
92
+ - lib/generators/vue_crud/templates/assets/javascripts/codemirror.js
80
93
  - lib/generators/vue_crud/templates/assets/javascripts/froala_editor/froala_editor.js
81
94
  - lib/generators/vue_crud/templates/assets/javascripts/froala_editor/languages/en_gb.js
82
95
  - lib/generators/vue_crud/templates/assets/javascripts/froala_editor/languages/zh_cn.js
@@ -117,6 +130,22 @@ files:
117
130
  - lib/generators/vue_crud/templates/assets/javascripts/semantic-ui/transition.js
118
131
  - lib/generators/vue_crud/templates/assets/javascripts/sortable.js
119
132
  - lib/generators/vue_crud/templates/assets/javascripts/vue.js
133
+ - lib/generators/vue_crud/templates/assets/stylesheets/.DS_Store
134
+ - lib/generators/vue_crud/templates/assets/stylesheets/codemirror.css
135
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_animated.scss
136
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_bordered-pulled.scss
137
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_core.scss
138
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_fixed-width.scss
139
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_icons.scss
140
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_larger.scss
141
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_list.scss
142
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_mixins.scss
143
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_path.scss
144
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_rotated-flipped.scss
145
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_screen-reader.scss
146
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_stacked.scss
147
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/_variables.scss
148
+ - lib/generators/vue_crud/templates/assets/stylesheets/fa/font-awesome.scss
120
149
  - lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/froala_editor.scss
121
150
  - lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/froala_style.scss
122
151
  - lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/char_counter.scss