Skip to content

Commit 3330ac9

Browse files
committed
set flag cached & making request if not cached
1 parent 690e369 commit 3330ac9

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

src/components/ColumnsConfiguration/ColumnsConfiguration.react.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ export default class ColumnsConfiguration extends React.Component {
9393
if (this.props.className === '_User' && name === 'password') {
9494
shouldReload = false;
9595
}
96+
if (updatedOrder[index].cached) {
97+
shouldReload = false;
98+
}
9699
handleColumnsOrder(updatedOrder, shouldReload);
97100
}}
98101
handleColumnDragDrop={handleColumnDragDrop} />

src/dashboard/Data/Browser/Browser.react.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,7 @@ class Browser extends DashboardView {
681681
for (let columnsKey in columns) {
682682
query.exclude(columns[columnsKey]);
683683
}
684+
ColumnPreferences.updateCachedColumns(this.context.currentApp.applicationId, className);
684685
}
685686
}
686687

src/lib/ColumnPreferences.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export function getColumnSort(sortBy, appId, className) {
7373

7474
export function getOrder(cols, appId, className, defaultPrefs) {
7575

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 } ];
7777
if (defaultPrefs) {
7878
prefs = defaultPrefs;
7979
}
@@ -87,7 +87,7 @@ export function getOrder(cols, appId, className, defaultPrefs) {
8787
for (let name in cols) {
8888
requested[name] = true;
8989
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 });
9191
seen[name] = true;
9292
updated = true;
9393
}
@@ -100,6 +100,7 @@ export function getOrder(cols, appId, className, defaultPrefs) {
100100
// and updates the cached preferences.
101101
if (typeof visible === 'undefined') {
102102
order[i].visible = true;
103+
order[i].cached = visible;
103104
updated = true;
104105
}
105106
// If "required" attribute is not defined, set it to false
@@ -118,6 +119,18 @@ export function getOrder(cols, appId, className, defaultPrefs) {
118119
return filtered;
119120
}
120121

122+
export function updateCachedColumns(appId, className) {
123+
let prefs = getPreferences(appId, className);
124+
let order = [].concat(prefs);
125+
126+
for (let col of order) {
127+
let { visible } = col;
128+
col.cached = visible;
129+
}
130+
updatePreferences(order, appId, className);
131+
return order;
132+
}
133+
121134
function path(appId, className) {
122135
return `ParseDashboard:${VERSION}:${appId}:${className}`;
123136
}

0 commit comments

Comments
 (0)