vue_crud 0.1.9.9 → 0.1.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40d52197d5a622260d03585e2cfb9c75cae50a7f
4
- data.tar.gz: af620b33a8f9ffe73b440b73a19d619d8006e2cf
3
+ metadata.gz: abae5940ab3389b7e2048b209e5fab59f7887d1b
4
+ data.tar.gz: 0e8044954b536c4535835c0dbb7cf1e223f35730
5
5
  SHA512:
6
- metadata.gz: f0bee3dbd0cf666c8bbc37ea95c8980c4e6e1b37f345bad8386ccf51a9645680dae60705a47ea2febc449ff37d4b7d5d40454f28d285952d4515aa962f32cca0
7
- data.tar.gz: df17eebc41a7c88f32b1f02dd131b21ecb6d83f7f02a1a77550e30ab8efe6b9ea4e1e94d8dc847a0ccd7ee7fb929cf0da3ef8595c80a40879547b9d8ff99beee
6
+ metadata.gz: 4baf2d67fb5fa2ccc416fc60947d6ea5345a09732e1b1251d2a03f9bb0c6227e2e1537d6288ac026addca6156b66160e64b78820d833d359b40dc3c880e83fcd
7
+ data.tar.gz: b67c9f5ce30ecc5cb0e5a6148c263aabd31b7d37a2405a11340beacc2c4e2a96b51cb2305df78cc1419e09c186ca5eada222424d8b67ded207965a185741639d
@@ -146,7 +146,7 @@ $(document).ready(function() {
146
146
  </script>
147
147
  <!-- NOTE: Templates -->
148
148
  <script type="text/x-template" id="models-table">
149
- <tr>
149
+ <tr :class="{'is_deleted': is_deleted}">
150
150
  <td v-for="(attribute, i) in info.model_attributes" v-if="attribute.visible" :class="{'sort-here': i == 0, highlight: attribute.model_prefix + '.' + attribute.name == selected_attribute}">
151
151
  <p v-if="attribute.model_prefix">
152
152
  <span v-if="attribute.type != 'img'">
@@ -170,12 +170,19 @@ $(document).ready(function() {
170
170
  </p>
171
171
  </td>
172
172
  <td style="position: relative;">
173
- <a @click="updateModel(false)" onclick="return false" class="ui orange right corner label" v-show="modified" title="您有尚未儲存的變更">
173
+ <a @click="restoreModel" onclick="return false" class="ui red right corner label" v-show="is_deleted" title="您已刪除,點擊復原">
174
+ <i class="repeat icon"></i>
175
+ </a>
176
+ <a @click="restoreModel" onclick="return false" class="ui red right corner label" v-show="is_restore_failed" title="復原失敗">
177
+ <i class="warning circle icon"></i>
178
+ </a>
179
+ <a @click="updateModel" onclick="return false" class="ui orange right corner label" v-show="modified" title="您有尚未儲存的變更">
174
180
  <i class="save icon"></i>
175
181
  </a>
176
182
  <a class="ui green right corner label" v-show="is_success" title="儲存成功">
177
183
  <i class="check icon"></i>
178
184
  </a>
185
+
179
186
  <!-- NOTE: Custom action -->
180
187
  <div class="inline-block custom_action"></div>
181
188
  <div class="ui animated fade blue button" @click="openModal('編輯')" tabindex="0">
@@ -237,8 +244,10 @@ $(document).ready(function() {
237
244
  </div>
238
245
  </div>
239
246
  <div class="extra content">
240
- <div class="ui orange right ribbon label" v-show="modified">您有尚未儲存的變更,<a href="#" @click="updateModel(false)" onclick="return false" class="save_now">立即儲存</a></div>
247
+ <div class="ui red right ribbon label" v-show="is_deleted">您已刪除,點擊<a href="#" @click="restoreModel" onclick="return false" class="save_now">復原</a></div>
248
+ <div class="ui orange right ribbon label" v-show="modified">您有尚未儲存的變更,<a href="#" @click="updateModel" onclick="return false" class="save_now">立即儲存</a></div>
241
249
  <div class="ui teal right ribbon label" v-show="is_success">儲存成功</div>
250
+ <div class="ui red right ribbon label" v-show="is_restore_failed">復原失敗</div>
242
251
  <div class="ui divider"></div>
243
252
  <!-- NOTE: Custom action -->
244
253
  <div class="inline-block custom_action"></div>
@@ -1,3 +1,3 @@
1
1
  module VueCrud
2
- VERSION = "0.1.9.9"
2
+ VERSION = "0.1.10.0"
3
3
  end
@@ -83,6 +83,7 @@ function vueCRUD_init(params = {}) {
83
83
  Vue.directive('sortable', {
84
84
  inserted: function (el) {
85
85
  if(options.sortable) {
86
+ filter: '.is_deleted';
86
87
  var sortable = new Sortable(el, {
87
88
  onUpdate: function (evt) {
88
89
  event_hub.$emit('updateSort');
@@ -205,7 +206,9 @@ function vueCRUD_init(params = {}) {
205
206
  errors: {},
206
207
  modified: false,
207
208
  deleteMode: false,
208
- is_success: false
209
+ is_success: false,
210
+ is_deleted: false,
211
+ is_restore_failed: false
209
212
  }
210
213
  },
211
214
  watch: {
@@ -250,6 +253,14 @@ function vueCRUD_init(params = {}) {
250
253
  }.bind(this));
251
254
  event_hub.$emit('openModal');
252
255
  },
256
+ restoreModel: function() {
257
+ if(confirm("Are you sure?") == true) {
258
+ event_hub.$emit('restoreCreate', this.model);
259
+ }
260
+ else {
261
+
262
+ }
263
+ },
253
264
  deleteModel: function () {
254
265
  var that = this;
255
266
  that.deleteMode = true;
@@ -258,7 +269,20 @@ function vueCRUD_init(params = {}) {
258
269
  method: 'DELETE',
259
270
  url: that.info.url_prefix + '/' + that.model.id + options.suffix + location.search,
260
271
  success: function(res) {
261
- $(that.$el).remove();
272
+ that.is_deleted = true;
273
+ event_hub.$on('toggleRestoreSuccess', function() {
274
+ that.deleteMode = false;
275
+ that.is_deleted = false;
276
+ that.is_success = true;
277
+ sleep(1500).then(() => {
278
+ that.is_success = false;
279
+ });
280
+ }.bind(this));
281
+ event_hub.$on('toggleRestoreFail', function() {
282
+ that.is_deleted = false;
283
+ that.is_restore_failed = true;
284
+ alert('復原失敗,請記錄資料並重新建立');
285
+ }.bind(this));
262
286
  },
263
287
  error: function(res) {
264
288
  that.deleteMode = false;
@@ -352,6 +376,10 @@ function vueCRUD_init(params = {}) {
352
376
  event_hub.$on('update_progress', function(progress) {
353
377
  this.progress = progress;
354
378
  }.bind(this));
379
+ event_hub.$on('restoreCreate', function(model) {
380
+ this.model = model;
381
+ this.restoreModel();
382
+ }.bind(this));
355
383
  $('#form-progress').change(function(){
356
384
  event_hub.$emit('update_progress', $(this).val());
357
385
  });
@@ -404,9 +432,6 @@ function vueCRUD_init(params = {}) {
404
432
  setTimeout(function () {
405
433
  that.is_calculating = false
406
434
  }, 500)
407
- // TODO: Order by sort after refresh, now computed will not wait for
408
- // TODO: the component to finish done the update ajax
409
- //.sort((a, b) => a.sort > b.sort ? 1 : -1)
410
435
  return result.slice(
411
436
  that.pageStart,
412
437
  that.countOfPage + that.pageStart
@@ -437,6 +462,22 @@ function vueCRUD_init(params = {}) {
437
462
  this.currentPage = idx;
438
463
  updateQueryStringParam('p', this.currentPage);
439
464
  },
465
+ restoreModel: function () {
466
+ var that = this;
467
+ $.ajax({
468
+ method: 'POST',
469
+ data: {
470
+ model: that.model,
471
+ },
472
+ url: that.info.url_prefix + options.suffix + location.search,
473
+ success: function(res) {
474
+ event_hub.$emit('toggleRestoreSuccess');
475
+ },
476
+ error: function(res) {
477
+ event_hub.$emit('toggleRestoreFail');
478
+ }
479
+ });
480
+ },
440
481
  createModel: function () {
441
482
  var that = this;
442
483
  $.ajax({
@@ -465,21 +506,3 @@ function vueCRUD_init(params = {}) {
465
506
  }
466
507
  })
467
508
  }
468
- // $(document).ready(function() {
469
- // // $(document).delegate('[data-modal]', 'click', function(event) {
470
- // // var target = $(this).data('modal');
471
- // // $(target).modal({
472
- // // observeChanges: true,
473
- // // transition: 'fade down',
474
- // // onShow: function() {
475
- // // $(this).find('select.ui.dropdown').dropdown();
476
- // // $(this).find('.ui.checkbox').checkbox();
477
- // // if(typeof modalOpen !== "undefined") modalOpen(this);
478
- // // },
479
- // // onHide: function() {
480
- // // event_hub.$emit('cancel_customMode');
481
- // // if(typeof modalClose !== "undefined") modalClose(this);
482
- // // }
483
- // // }).modal('show');
484
- // // });
485
- // });
@@ -1,5 +1,16 @@
1
- #vue_crud .ui.cards > .card > .extra a.save_now {
2
- color: rgb(33, 133, 208);
1
+ #vue_crud a.save_now {
2
+ color: white !important;
3
+ opacity: 1 !important;
4
+ text-decoration: underline !important;
5
+ }
6
+ #vue_crud .ui.feed > .event > .content .summary img {
7
+ width: 100% !important;
8
+ height: auto !important;
9
+ }
10
+ #vue_crud .is_deleted {
11
+ opacity: 0.7;
12
+ }
13
+ #vue_crud .is_deleted:hover {
3
14
  opacity: 1;
4
15
  }
5
16
  #vue_crud .card .progress {
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vue_crud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9.9
4
+ version: 0.1.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donald Chiang
@@ -213,6 +213,7 @@ files:
213
213
  - vendor/assets/stylesheets/vue_crud.css
214
214
  - vue_crud-0.1.9.7.gem
215
215
  - vue_crud-0.1.9.8.gem
216
+ - vue_crud-0.1.9.9.gem
216
217
  - vue_crud.gemspec
217
218
  homepage: http://www.mynet.com.tw
218
219
  licenses: