vue_crud 0.1.10.1 → 0.1.10.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/lib/.DS_Store +0 -0
- data/lib/generators/.DS_Store +0 -0
- data/lib/generators/vue_crud/.DS_Store +0 -0
- data/lib/generators/vue_crud/codemirror_generator.rb +11 -0
- data/lib/generators/vue_crud/example_generator.rb +1 -1
- data/lib/generators/vue_crud/fa_generator.rb +11 -0
- data/lib/generators/vue_crud/froala_generator.rb +1 -1
- data/lib/generators/vue_crud/install_generator.rb +28 -6
- data/lib/generators/vue_crud/pace_generator.rb +1 -1
- data/lib/generators/vue_crud/sortable_generator.rb +1 -1
- data/lib/generators/vue_crud/template_generator.rb +10 -0
- data/lib/generators/vue_crud/templates/.DS_Store +0 -0
- data/lib/generators/vue_crud/templates/assets/.DS_Store +0 -0
- data/lib/generators/vue_crud/templates/assets/fonts/fa/FontAwesome.otf +0 -0
- data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.eot +0 -0
- data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.svg +2671 -0
- data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.ttf +0 -0
- data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.woff +0 -0
- data/lib/generators/vue_crud/templates/assets/fonts/fa/fontawesome-webfont.woff2 +0 -0
- data/lib/generators/vue_crud/templates/assets/javascripts/codemirror.js +9096 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/.DS_Store +0 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/codemirror.css +341 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_animated.scss +34 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_bordered-pulled.scss +25 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_core.scss +12 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_fixed-width.scss +6 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_icons.scss +789 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_larger.scss +13 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_list.scss +19 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_mixins.scss +60 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_path.scss +15 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_rotated-flipped.scss +20 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_screen-reader.scss +5 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_stacked.scss +20 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/_variables.scss +800 -0
- data/lib/generators/vue_crud/templates/assets/stylesheets/fa/font-awesome.scss +18 -0
- data/lib/generators/vue_crud/templates/vue_crud.html +0 -15
- data/lib/generators/vue_crud/vuejs_generator.rb +1 -1
- data/lib/vue_crud/version.rb +1 -1
- data/vendor/assets/javascripts/vue_crud.js +27 -31
- 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
|
-
-->
|
data/lib/vue_crud/version.rb
CHANGED
@@ -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
|
-
|
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.
|
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
|
-
|
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
|
-
|
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:
|
364
|
+
url: options.info_url,
|
358
365
|
success: function(res) {
|
359
366
|
that.info = res;
|
360
|
-
that.model =
|
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
|
-
|
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 =
|
493
|
+
that.model = {};
|
498
494
|
that.models.push(res);
|
499
495
|
},
|
500
496
|
error: function(res) {
|
501
|
-
|
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.
|
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-
|
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
|