|
30 | 30 | count: this.options.count
|
31 | 31 | });
|
32 | 32 |
|
| 33 | + if (history.state && history.state.griddly) |
| 34 | + { |
| 35 | + var state = history.state.griddly[this.options.url]; |
| 36 | + |
| 37 | + if (state && state.filterValues) |
| 38 | + { |
| 39 | + this.options.pageNumber = state.pageNumber; |
| 40 | + this.options.pageSize = state.pageSize; |
| 41 | + this.options.sortFields = state.sortFields; |
| 42 | + this.setFilterMode(state.filterMode, true); |
| 43 | + this.setFilterValues(state.filterValues, false, true); |
| 44 | + |
| 45 | + $("[data-griddly-sortfield], .griddly-filters-inline td", this.$element).removeClass("sorted_a sorted_d"); |
| 46 | + |
| 47 | + if (this.options.sortFields) |
| 48 | + { |
| 49 | + for (var i = 0; i < this.options.sortFields.length; i++) |
| 50 | + { |
| 51 | + var sort = this.options.sortFields[i]; |
| 52 | + |
| 53 | + var header = $("th[data-griddly-sortfield='" + sort.Field + "']", this.$element); |
| 54 | + var inlineFilter = $(".griddly-filters-inline")[0].cells[header[0].cellIndex]; |
| 55 | + |
| 56 | + header.addClass(sort.Direction == "Ascending" ? "sorted_a" : "sorted_d"); |
| 57 | + $(inlineFilter).addClass(sort.Direction == "Ascending" ? "sorted_a" : "sorted_d"); |
| 58 | + } |
| 59 | + } |
| 60 | + |
| 61 | + this.refresh(); |
| 62 | + } |
| 63 | + } |
| 64 | + |
33 | 65 | $("html").on("click", $.proxy(function (event)
|
34 | 66 | {
|
35 | 67 | if ($(event.target).parents('.popover.in').length == 0 && $(event.target).parents(".filter-trigger").length == 0 && !$(event.target).hasClass("filter-trigger"))
|
|
780 | 812 | value = date.toLocaleDateString();
|
781 | 813 | break;
|
782 | 814 | case "Currency":
|
783 |
| - value = value.toFixed(2); |
| 815 | + value = parseFloat(value).toFixed(2); |
784 | 816 | break;
|
785 | 817 | }
|
786 | 818 | }
|
|
871 | 903 |
|
872 | 904 | var postData = this.buildRequest();
|
873 | 905 |
|
| 906 | + var state = |
| 907 | + { |
| 908 | + pageNumber: this.options.pageNumber, |
| 909 | + pageSize: this.options.pageSize, |
| 910 | + sortFields: this.options.sortFields, |
| 911 | + filterMode: this.getFilterMode(), |
| 912 | + filterValues: this.getFilterValues() |
| 913 | + }; |
| 914 | + |
| 915 | + var globalState = history.state || {}; |
| 916 | + |
| 917 | + if (!globalState.griddly) |
| 918 | + globalState.griddly = {}; |
| 919 | + |
| 920 | + globalState.griddly[this.options.url] = state; |
| 921 | + |
| 922 | + history.replaceState(globalState); |
| 923 | + |
874 | 924 | // TODO: cancel any outstanding calls
|
875 | 925 |
|
876 | 926 | $.ajax(this.options.url,
|
|
0 commit comments