@@ -73,7 +73,7 @@ export function getColumnSort(sortBy, appId, className) {
73
73
74
74
export function getOrder ( cols , appId , className , defaultPrefs ) {
75
75
76
- let prefs = getPreferences ( appId , className ) || [ { name : 'objectId' , width : DEFAULT_WIDTH , visible : true } ] ;
76
+ let prefs = getPreferences ( appId , className ) || [ { name : 'objectId' , width : DEFAULT_WIDTH , visible : true , cached : true } ] ;
77
77
if ( defaultPrefs ) {
78
78
prefs = defaultPrefs ;
79
79
}
@@ -87,21 +87,30 @@ export function getOrder(cols, appId, className, defaultPrefs) {
87
87
for ( let name in cols ) {
88
88
requested [ name ] = true ;
89
89
if ( ! seen [ name ] ) {
90
- order . push ( { name : name , width : DEFAULT_WIDTH , visible : ! defaultPrefs , required : cols [ name ] [ 'required' ] } ) ;
90
+ order . push ( { name : name , width : DEFAULT_WIDTH , visible : ! defaultPrefs , required : cols [ name ] [ 'required' ] , cached : ! defaultPrefs } ) ;
91
91
seen [ name ] = true ;
92
92
updated = true ;
93
93
}
94
94
}
95
95
let filtered = [ ] ;
96
96
for ( let i = 0 ; i < order . length ; i ++ ) {
97
- const { name, visible, required } = order [ i ] ;
97
+ const { name, visible, required, cached } = order [ i ] ;
98
98
99
99
// If "visible" attribute is not defined, sets to true
100
100
// and updates the cached preferences.
101
101
if ( typeof visible === 'undefined' ) {
102
102
order [ i ] . visible = true ;
103
+ order [ i ] . cached = visible ;
103
104
updated = true ;
104
105
}
106
+
107
+ // If "cached" attribute is not defined, set it to visible attr
108
+ // and updates the cached preferences.
109
+ if ( typeof cached === 'undefined' ) {
110
+ order [ i ] . cached = order [ i ] . visible ;
111
+ updated = true ;
112
+ }
113
+
105
114
// If "required" attribute is not defined, set it to false
106
115
if ( typeof required === 'undefined' ) {
107
116
order [ i ] . required = false ;
@@ -118,6 +127,18 @@ export function getOrder(cols, appId, className, defaultPrefs) {
118
127
return filtered ;
119
128
}
120
129
130
+ export function updateCachedColumns ( appId , className ) {
131
+ let prefs = getPreferences ( appId , className ) ;
132
+ let order = [ ] . concat ( prefs ) ;
133
+
134
+ for ( let col of order ) {
135
+ let { visible } = col ;
136
+ col . cached = visible ;
137
+ }
138
+ updatePreferences ( order , appId , className ) ;
139
+ return order ;
140
+ }
141
+
121
142
function path ( appId , className ) {
122
143
return `ParseDashboard:${ VERSION } :${ appId } :${ className } ` ;
123
144
}
0 commit comments