* Three dot menu implementation Co-authored-by: Deep Tailor <deep.j.tailor@nasa.gov> Co-authored-by: Nikhil <nikhil.k.mandlik@nasa.gov>
41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
import { getDefaultNotebook } from '../utils/notebook-storage';
|
|
import { addNotebookEntry } from '../utils/notebook-entries';
|
|
|
|
export default class CopyToNotebookAction {
|
|
constructor(openmct) {
|
|
this.openmct = openmct;
|
|
|
|
this.cssClass = 'icon-duplicate';
|
|
this.description = 'Copy value to notebook as an entry';
|
|
this.group = "action";
|
|
this.key = 'copyToNotebook';
|
|
this.name = 'Copy to Notebook';
|
|
this.priority = 1;
|
|
}
|
|
|
|
copyToNotebook(entryText) {
|
|
const notebookStorage = getDefaultNotebook();
|
|
this.openmct.objects.get(notebookStorage.notebookMeta.identifier)
|
|
.then(domainObject => {
|
|
addNotebookEntry(this.openmct, domainObject, notebookStorage, null, entryText);
|
|
|
|
const defaultPath = `${domainObject.name} - ${notebookStorage.section.name} - ${notebookStorage.page.name}`;
|
|
const msg = `Saved to Notebook ${defaultPath}`;
|
|
this.openmct.notifications.info(msg);
|
|
});
|
|
}
|
|
|
|
invoke(objectPath, view = {}) {
|
|
let viewContext = view.getViewContext && view.getViewContext();
|
|
|
|
this.copyToNotebook(viewContext.formattedValueForCopy());
|
|
}
|
|
|
|
appliesTo(objectPath, view = {}) {
|
|
let viewContext = view.getViewContext && view.getViewContext();
|
|
|
|
return viewContext && viewContext.formattedValueForCopy
|
|
&& typeof viewContext.formattedValueForCopy === 'function';
|
|
}
|
|
}
|