Skip to content

Commit bbf9050

Browse files
committed
Add savingPinsEnabled to PersistableSettings
1 parent 568febf commit bbf9050

File tree

6 files changed

+61
-0
lines changed

6 files changed

+61
-0
lines changed

tensorboard/webapp/metrics/metrics_module.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import {
3535
getMetricsScalarSmoothing,
3636
getMetricsStepSelectorEnabled,
3737
getMetricsTooltipSort,
38+
getMetricsSavingPinsEnabled,
3839
getRangeSelectionHeaders,
3940
getSingleSelectionHeaders,
4041
isMetricsSettingsPaneOpen,
@@ -125,6 +126,12 @@ export function getMetricsTimeSeriesLinkedTimeEnabled() {
125126
});
126127
}
127128

129+
export function getMetricsTimeSeriesSavingPinsEnabled() {
130+
return createSelector(getMetricsSavingPinsEnabled, (isEnabled) => {
131+
return {savingPinsEnabled: isEnabled};
132+
});
133+
}
134+
128135
export function getSingleSelectionHeadersFactory() {
129136
return createSelector(getSingleSelectionHeaders, (singleSelectionHeaders) => {
130137
return {singleSelectionHeaders};
@@ -188,6 +195,9 @@ export function getRangeSelectionHeadersFactory() {
188195
PersistentSettingsConfigModule.defineGlobalSetting(
189196
getRangeSelectionHeadersFactory
190197
),
198+
PersistentSettingsConfigModule.defineGlobalSetting(
199+
getMetricsTimeSeriesSavingPinsEnabled
200+
),
191201
],
192202
providers: [
193203
{

tensorboard/webapp/metrics/store/metrics_reducers.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -608,6 +608,9 @@ const reducer = createReducer(
608608
if (typeof partialSettings.scalarSmoothing === 'number') {
609609
metricsSettings.scalarSmoothing = partialSettings.scalarSmoothing;
610610
}
611+
if (typeof partialSettings.savingPinsEnabled === 'boolean') {
612+
metricsSettings.savingPinsEnabled = partialSettings.savingPinsEnabled;
613+
}
611614

612615
const isSettingsPaneOpen =
613616
partialSettings.timeSeriesSettingsPaneOpened ?? state.isSettingsPaneOpen;

tensorboard/webapp/metrics/store/metrics_reducers_test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3157,6 +3157,7 @@ describe('metrics reducers', () => {
31573157
scalarSmoothing: 0.3,
31583158
ignoreOutliers: false,
31593159
tooltipSort: TooltipSort.ASCENDING,
3160+
savingPinsEnabled: true,
31603161
}),
31613162
settingOverrides: {
31623163
scalarSmoothing: 0.5,
@@ -3170,13 +3171,15 @@ describe('metrics reducers', () => {
31703171
partialSettings: {
31713172
ignoreOutliers: true,
31723173
tooltipSort: TooltipSort.DESCENDING,
3174+
savingPinsEnabled: false,
31733175
},
31743176
})
31753177
);
31763178

31773179
expect(nextState.settings.scalarSmoothing).toBe(0.3);
31783180
expect(nextState.settings.ignoreOutliers).toBe(true);
31793181
expect(nextState.settings.tooltipSort).toBe(TooltipSort.DESCENDING);
3182+
expect(nextState.settings.savingPinsEnabled).toBe(false);
31803183
expect(nextState.settingOverrides.scalarSmoothing).toBe(0.5);
31813184
expect(nextState.settingOverrides.tooltipSort).toBe(
31823185
TooltipSort.ALPHABETICAL

tensorboard/webapp/persistent_settings/_data_source/persistent_settings_data_source.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ export class OSSSettingsConverter extends SettingsConverter<
125125
serializableSettings.dashboardDisplayedHparamColumns =
126126
settings.dashboardDisplayedHparamColumns;
127127
}
128+
if (settings.savingPinsEnabled !== undefined) {
129+
serializableSettings.savingPinsEnabled = settings.savingPinsEnabled;
130+
}
128131
return serializableSettings;
129132
}
130133

@@ -256,6 +259,13 @@ export class OSSSettingsConverter extends SettingsConverter<
256259
backendSettings.dashboardDisplayedHparamColumns;
257260
}
258261

262+
if (
263+
backendSettings.hasOwnProperty('savingPinsEnabled') &&
264+
typeof backendSettings.savingPinsEnabled === 'boolean'
265+
) {
266+
settings.savingPinsEnabled = backendSettings.savingPinsEnabled;
267+
}
268+
259269
return settings;
260270
}
261271
}

tensorboard/webapp/persistent_settings/_data_source/persistent_settings_data_source_test.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,20 @@ describe('persistent_settings data_source test', () => {
398398
],
399399
});
400400
});
401+
402+
it('properly converts savingPinsEnabled', async () => {
403+
getItemSpy.withArgs(TEST_ONLY.GLOBAL_LOCAL_STORAGE_KEY).and.returnValue(
404+
JSON.stringify({
405+
savingPinsEnabled: false,
406+
})
407+
);
408+
409+
const actual = await firstValueFrom(dataSource.getSettings());
410+
411+
expect(actual).toEqual({
412+
savingPinsEnabled: false,
413+
});
414+
});
401415
});
402416

403417
describe('#setSettings', () => {
@@ -526,6 +540,25 @@ describe('persistent_settings data_source test', () => {
526540
})
527541
);
528542
});
543+
544+
it('properly converts savingPinsEnabled', async () => {
545+
getItemSpy
546+
.withArgs(TEST_ONLY.GLOBAL_LOCAL_STORAGE_KEY)
547+
.and.returnValue(null);
548+
549+
await firstValueFrom(
550+
dataSource.setSettings({
551+
savingPinsEnabled: false,
552+
})
553+
);
554+
555+
expect(setItemSpy).toHaveBeenCalledOnceWith(
556+
TEST_ONLY.GLOBAL_LOCAL_STORAGE_KEY,
557+
JSON.stringify({
558+
savingPinsEnabled: false,
559+
})
560+
);
561+
});
529562
});
530563

531564
describe('settings migration', () => {

tensorboard/webapp/persistent_settings/_data_source/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export declare interface BackendSettings {
4747
singleSelectionHeaders?: ColumnHeader[];
4848
rangeSelectionHeaders?: ColumnHeader[];
4949
dashboardDisplayedHparamColumns?: ColumnHeader[];
50+
savingPinsEnabled?: boolean;
5051
}
5152

5253
/**
@@ -72,4 +73,5 @@ export interface PersistableSettings {
7273
singleSelectionHeaders?: ColumnHeader[];
7374
rangeSelectionHeaders?: ColumnHeader[];
7475
dashboardDisplayedHparamColumns?: ColumnHeader[];
76+
savingPinsEnabled?: boolean;
7577
}

0 commit comments

Comments
 (0)