|
181 | 181 | </style>
|
182 | 182 | <script>
|
183 | 183 |
|
| 184 | + /* used for fixing IE problems*/ |
184 | 185 | import { polyfill } from 'es6-promise'; polyfill();
|
185 | 186 | import axios from 'axios';
|
186 | 187 | import qs from 'qs';
|
|
301 | 302 | required: false,
|
302 | 303 | default: 10,
|
303 | 304 | },
|
| 305 | + /** |
| 306 | + * Setting default order column. Expected name of the column |
| 307 | + */ |
| 308 | + defaultOrderColumn: { |
| 309 | + type: String, |
| 310 | + required: false, |
| 311 | + default: null, |
| 312 | + }, |
| 313 | + /** |
| 314 | + * Setting default order direction. Boolean: true = ASC , false = DESC |
| 315 | + */ |
| 316 | + defaultOrderDirection: { |
| 317 | + type: Boolean, |
| 318 | + required: false, |
| 319 | + default: true, |
| 320 | + }, |
304 | 321 | /**
|
305 | 322 | * If loading of table is to be done through ajax, then this object must be set
|
306 | 323 | */
|
|
342 | 359 | loading: false,
|
343 | 360 | };
|
344 | 361 | },
|
| 362 | + /** |
| 363 | + * Once mounted and ready to start |
| 364 | + */ |
345 | 365 | mounted: function () {
|
346 |
| - this.$nextTick(function () { |
347 |
| - this.loading= true; |
348 |
| - this.setSortOrders(); |
349 |
| - var self = this; |
350 |
| - this.columns.forEach(function (column) { |
351 |
| - var obj = self.buildColumnObject(column); |
352 |
| - self.displayCols.push(obj); |
353 |
| - }); |
354 |
| - if (this.ajax.enabled) { |
355 |
| - if (!this.ajax.delegate) { |
356 |
| - this.loading= true; |
357 |
| - this.fetchData(function (data) { |
358 |
| - self.rawValues = data.data; |
359 |
| - self.processFilter(); |
360 |
| - }); |
361 |
| - }else |
362 |
| - this.processFilter(); |
363 |
| - }else { |
364 |
| - self.rawValues = self.values; |
365 |
| - this.processFilter(); |
366 |
| - } |
367 |
| - }) |
| 366 | + this.$nextTick(function () { |
| 367 | + this.loading = true; |
| 368 | + this.setSortOrders(); |
| 369 | + var self = this; |
| 370 | + // |
| 371 | + if (this.defaultOrderColumn !== null) { |
| 372 | + console.log("setting order default"); |
| 373 | + self.sortKey[0] = this.defaultOrderColumn; |
| 374 | + if (this.defaultOrderDirection) |
| 375 | + self.sortOrders[this.defaultOrderColumn] = "ASC"; |
| 376 | + else |
| 377 | + self.sortOrders[this.defaultOrderColumn] = "DESC"; |
| 378 | + } |
| 379 | + // Build columns |
| 380 | + this.columns.forEach(function (column) { |
| 381 | + var obj = self.buildColumnObject(column); |
| 382 | + self.displayCols.push(obj); |
| 383 | + }); |
| 384 | + // Work the data |
| 385 | + if (this.ajax.enabled) { |
| 386 | + if (!this.ajax.delegate) { |
| 387 | + // If ajax but NOT delegate |
| 388 | + // Perform the fetch of data now and set the raw values |
| 389 | + this.loading = true; |
| 390 | + this.fetchData(function (data) { |
| 391 | + self.rawValues = data.data; |
| 392 | + }); |
| 393 | + } else { |
| 394 | + // If ajax and also delegate |
| 395 | + // Simply call processFilter, which will take care of the fetching |
| 396 | + //this.processFilter(); |
| 397 | + } |
| 398 | + } else { |
| 399 | + // Not ajax, therefore working with given elements |
| 400 | + // Pass the Prop values to rawValues data object. |
| 401 | + self.rawValues = self.values; |
| 402 | + } |
| 403 | + }) |
368 | 404 | },
|
| 405 | + /** |
| 406 | + * On created register on CellDataModified event |
| 407 | + */ |
369 | 408 | created: function () {
|
370 | 409 | var self = this ;
|
371 | 410 | this.$on('cellDataModifiedEvent', self.fireCellDataModifiedEvent);
|
372 | 411 | },
|
| 412 | + /** |
| 413 | + * On destroy unregister the event |
| 414 | + */ |
373 | 415 | beforeDestroy: function(){
|
374 | 416 | var self = this ;
|
375 | 417 | this.$off('cellDataModifiedEvent', self.fireCellDataModifiedEvent);
|
|
458 | 500 | },
|
459 | 501 | },
|
460 | 502 | methods: {
|
| 503 | + /** |
| 504 | + * Used to fire off events when something happens to a cell |
| 505 | + */ |
461 | 506 | fireCellDataModifiedEvent:function ( originalValue, newValue, columnTitle, entry) {
|
462 | 507 | this.$parent.$emit('cellDataModifiedEvent',originalValue, newValue, columnTitle, entry);
|
463 | 508 | },
|
|
512 | 557 | }
|
513 | 558 | },
|
514 | 559 | fetchData: function ( dataCallBackFunction ) {
|
515 |
| - console.log("fetching data"); |
516 | 560 | var self = this;
|
517 | 561 | var ajaxParameters = {
|
518 | 562 | params: {}
|
|
0 commit comments