mirror of
https://github.com/nasa/openmct.git
synced 2025-01-19 03:06:54 +00:00
[Notebook]: Remove default section/page from localstorage on notebook delete (#2900)
Co-authored-by: Andrew Henry <akhenry@gmail.com>
This commit is contained in:
parent
83f9c6c528
commit
0679b246b8
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Snapshot from '../snapshot';
|
import Snapshot from '../snapshot';
|
||||||
import { clearDefaultNotebook, getDefaultNotebook } from '../utils/notebook-storage';
|
import { getDefaultNotebook } from '../utils/notebook-storage';
|
||||||
import { NOTEBOOK_DEFAULT, NOTEBOOK_SNAPSHOT } from '../notebook-constants';
|
import { NOTEBOOK_DEFAULT, NOTEBOOK_SNAPSHOT } from '../notebook-constants';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -72,28 +72,22 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
async setNotebookTypes() {
|
async setNotebookTypes() {
|
||||||
const notebookTypes = [];
|
const notebookTypes = [];
|
||||||
let defaultPath = '';
|
|
||||||
const defaultNotebook = getDefaultNotebook();
|
const defaultNotebook = getDefaultNotebook();
|
||||||
|
|
||||||
if (defaultNotebook) {
|
if (defaultNotebook) {
|
||||||
const domainObject = await this.openmct.objects.get(defaultNotebook.notebookMeta.identifier)
|
const domainObject = defaultNotebook.domainObject;
|
||||||
.then(d => d);
|
|
||||||
|
|
||||||
if (!domainObject.location) {
|
if (domainObject.location) {
|
||||||
clearDefaultNotebook();
|
const defaultPath = `${domainObject.name} - ${defaultNotebook.section.name} - ${defaultNotebook.page.name}`;
|
||||||
} else {
|
|
||||||
defaultPath = `${domainObject.name} - ${defaultNotebook.section.name} - ${defaultNotebook.page.name}`;
|
notebookTypes.push({
|
||||||
|
cssClass: 'icon-notebook',
|
||||||
|
name: `Save to Notebook ${defaultPath}`,
|
||||||
|
type: NOTEBOOK_DEFAULT
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defaultPath.length !== 0) {
|
|
||||||
notebookTypes.push({
|
|
||||||
cssClass: 'icon-notebook',
|
|
||||||
name: `Save to Notebook ${defaultPath}`,
|
|
||||||
type: NOTEBOOK_DEFAULT
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
notebookTypes.push({
|
notebookTypes.push({
|
||||||
cssClass: 'icon-notebook',
|
cssClass: 'icon-notebook',
|
||||||
name: 'Save to Notebook Snapshots',
|
name: 'Save to Notebook Snapshots',
|
||||||
|
@ -239,6 +239,7 @@ export default {
|
|||||||
const section = this.getSelectedSection();
|
const section = this.getSelectedSection();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
domainObject: this.internalDomainObject,
|
||||||
notebookMeta,
|
notebookMeta,
|
||||||
section,
|
section,
|
||||||
page
|
page
|
||||||
@ -440,7 +441,7 @@ export default {
|
|||||||
async updateDefaultNotebook(notebookStorage) {
|
async updateDefaultNotebook(notebookStorage) {
|
||||||
const defaultNotebookObject = await this.getDefaultNotebookObject();
|
const defaultNotebookObject = await this.getDefaultNotebookObject();
|
||||||
this.removeDefaultClass(defaultNotebookObject);
|
this.removeDefaultClass(defaultNotebookObject);
|
||||||
setDefaultNotebook(notebookStorage);
|
setDefaultNotebook(this.openmct, notebookStorage);
|
||||||
this.addDefaultClass();
|
this.addDefaultClass();
|
||||||
this.defaultSectionId = notebookStorage.section.id;
|
this.defaultSectionId = notebookStorage.section.id;
|
||||||
this.defaultPageId = notebookStorage.page.id;
|
this.defaultPageId = notebookStorage.page.id;
|
||||||
|
@ -1,6 +1,46 @@
|
|||||||
const NOTEBOOK_LOCAL_STORAGE = 'notebook-storage';
|
const NOTEBOOK_LOCAL_STORAGE = 'notebook-storage';
|
||||||
|
let currentNotebookObject = null;
|
||||||
|
let unlisten = null;
|
||||||
|
|
||||||
|
function defaultNotebookObjectChanged(newDomainObject) {
|
||||||
|
if (newDomainObject.location !== null) {
|
||||||
|
currentNotebookObject = newDomainObject;
|
||||||
|
const notebookStorage = getDefaultNotebook();
|
||||||
|
notebookStorage.domainObject = newDomainObject;
|
||||||
|
saveDefaultNotebook(notebookStorage);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (unlisten) {
|
||||||
|
unlisten();
|
||||||
|
unlisten = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
clearDefaultNotebook();
|
||||||
|
}
|
||||||
|
|
||||||
|
function observeDefaultNotebookObject(openmct, notebookStorage) {
|
||||||
|
const domainObject = notebookStorage.domainObject;
|
||||||
|
if (currentNotebookObject
|
||||||
|
&& currentNotebookObject.identifier.key === domainObject.identifier.key) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (unlisten) {
|
||||||
|
unlisten();
|
||||||
|
unlisten = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
unlisten = openmct.objects.observe(notebookStorage.domainObject, '*', defaultNotebookObjectChanged);
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveDefaultNotebook(notebookStorage) {
|
||||||
|
window.localStorage.setItem(NOTEBOOK_LOCAL_STORAGE, JSON.stringify(notebookStorage));
|
||||||
|
}
|
||||||
|
|
||||||
export function clearDefaultNotebook() {
|
export function clearDefaultNotebook() {
|
||||||
|
currentNotebookObject = null;
|
||||||
window.localStorage.setItem(NOTEBOOK_LOCAL_STORAGE, null);
|
window.localStorage.setItem(NOTEBOOK_LOCAL_STORAGE, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10,20 +50,21 @@ export function getDefaultNotebook() {
|
|||||||
return JSON.parse(notebookStorage);
|
return JSON.parse(notebookStorage);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setDefaultNotebook(notebookStorage) {
|
export function setDefaultNotebook(openmct, notebookStorage) {
|
||||||
window.localStorage.setItem(NOTEBOOK_LOCAL_STORAGE, JSON.stringify(notebookStorage));
|
observeDefaultNotebookObject(openmct, notebookStorage);
|
||||||
|
saveDefaultNotebook(notebookStorage);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setDefaultNotebookSection(section) {
|
export function setDefaultNotebookSection(section) {
|
||||||
const notebookStorage = getDefaultNotebook();
|
const notebookStorage = getDefaultNotebook();
|
||||||
|
|
||||||
notebookStorage.section = section;
|
notebookStorage.section = section;
|
||||||
window.localStorage.setItem(NOTEBOOK_LOCAL_STORAGE, JSON.stringify(notebookStorage));
|
saveDefaultNotebook(notebookStorage);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setDefaultNotebookPage(page) {
|
export function setDefaultNotebookPage(page) {
|
||||||
const notebookStorage = getDefaultNotebook();
|
const notebookStorage = getDefaultNotebook();
|
||||||
notebookStorage.page = page;
|
notebookStorage.page = page;
|
||||||
window.localStorage.setItem(NOTEBOOK_LOCAL_STORAGE, JSON.stringify(notebookStorage));
|
saveDefaultNotebook(notebookStorage);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user