Allow user to set machine-based preferences for main object views.

- Browse.js now sets currentViewKey in the right spot.
  - Changes in #viewObject reset.
This commit is contained in:
Charles Hacskaylo 2025-05-14 13:58:43 -07:00
parent 2ae0982af1
commit 44e5021ec9
2 changed files with 12 additions and 8 deletions

View File

@ -379,7 +379,6 @@ export default {
return JSON.parse(window.localStorage.getItem(LOCALSTORAGE_VIEW_PREFS)) || {};
},
storeViewPrefs(view) {
console.log('storeViewPrefs',this.domainObject.type,view);
let storedViews = this.retrieveViewPrefs();
storedViews[this.domainObject.type] = view;
window.localStorage.setItem(LOCALSTORAGE_VIEW_PREFS, JSON.stringify(storedViews));

View File

@ -68,21 +68,16 @@ class Browse {
}
#viewObject(object, viewProvider) {
// viewProvider is setting the 'view' param before this function is called.
this.#currentObjectPath = this.#openmct.router.path;
// console.log('getSearchParam', this.#openmct.router.getSearchParam('view'));
console.log('#viewObject', this.#currentObjectPath, object, viewProvider);
const viewPrefs = JSON.parse(window.localStorage.getItem('openmct-stored-view-prefs')) || {};
const viewKey = viewPrefs[object.type] ? viewPrefs[object.type] : viewProvider.key;
this.#openmct.layout.$refs.browseObject.show(
object,
viewKey,
viewProvider.key,
true,
this.#currentObjectPath
);
this.#openmct.layout.$refs.browseBar.domainObject = object;
this.#openmct.layout.$refs.browseBar.viewKey = viewKey;
this.#openmct.layout.$refs.browseBar.viewKey = viewProvider.key;
}
#handleBrowseObjectUpdate(newObject) {
@ -126,6 +121,11 @@ class Browse {
'*',
this.#handleBrowseObjectUpdate.bind(this)
);
if (!currentViewKey) {
currentViewKey = this.#getPreferredViewForObjectType(this.#browseObject);
}
const currentProvider = this.#openmct.objectViews.getByProviderKey(currentViewKey);
if (currentProvider && currentProvider.canView(this.#browseObject, this.#openmct.router.path)) {
this.#viewObject(this.#browseObject, currentProvider);
@ -153,6 +153,11 @@ class Browse {
);
}
#getPreferredViewForObjectType(obj) {
const storedViewPrefs = JSON.parse(window.localStorage.getItem('openmct-stored-view-prefs')) || {};
return storedViewPrefs[obj.type]? storedViewPrefs[obj.type] : undefined;
}
async #navigateToFirstChildOfRoot() {
try {
const rootObject = await this.#openmct.objects.get('ROOT');