Compare commits
	
		
			12 Commits
		
	
	
		
			gauge-fixe
			...
			view-large
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					40e05e636b | ||
| 
						 | 
					63fb10a9a9 | ||
| 
						 | 
					6af5801b1a | ||
| 
						 | 
					ffe9f04ac6 | ||
| 
						 | 
					df28fe47cc | ||
| 
						 | 
					b2dd51b30d | ||
| 
						 | 
					248e8c9caf | ||
| 
						 | 
					32cd981e74 | ||
| 
						 | 
					9e9e4bff67 | ||
| 
						 | 
					34597c2a5d | ||
| 
						 | 
					b7f8060523 | ||
| 
						 | 
					20b6fb3014 | 
@@ -358,6 +358,20 @@ ObjectAPI.prototype.applyGetInterceptors = function (identifier, domainObject) {
 | 
			
		||||
    return domainObject;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Return relative url path from a given object path
 | 
			
		||||
 * eg: #/browse/mine/cb56f6bf-c900-43b7-b923-2e3b64b412db/6e89e858-77ce-46e4-a1ad-749240286497/....
 | 
			
		||||
 * @param {Array} objectPath
 | 
			
		||||
 * @returns {string} relative url for object
 | 
			
		||||
 */
 | 
			
		||||
ObjectAPI.prototype.getRelativePath = function (objectPath) {
 | 
			
		||||
    return objectPath
 | 
			
		||||
        .map(p => this.makeKeyString(p.identifier))
 | 
			
		||||
        .reverse()
 | 
			
		||||
        .join('/')
 | 
			
		||||
    ;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Modify a domain object.
 | 
			
		||||
 * @param {module:openmct.DomainObject} object the object to mutate
 | 
			
		||||
 
 | 
			
		||||
@@ -10,28 +10,37 @@ const cssClasses = {
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class Overlay extends EventEmitter {
 | 
			
		||||
    constructor(options) {
 | 
			
		||||
    constructor({
 | 
			
		||||
        buttons,
 | 
			
		||||
        autoHide = true,
 | 
			
		||||
        dismissable = true,
 | 
			
		||||
        element,
 | 
			
		||||
        onDestroy,
 | 
			
		||||
        size
 | 
			
		||||
    } = {}) {
 | 
			
		||||
        super();
 | 
			
		||||
 | 
			
		||||
        this.dismissable = options.dismissable !== false;
 | 
			
		||||
        this.container = document.createElement('div');
 | 
			
		||||
        this.container.classList.add('l-overlay-wrapper', cssClasses[options.size]);
 | 
			
		||||
        this.container.classList.add('l-overlay-wrapper', cssClasses[size]);
 | 
			
		||||
 | 
			
		||||
        this.autoHide = autoHide;
 | 
			
		||||
        this.dismissable = dismissable !== false;
 | 
			
		||||
 | 
			
		||||
        this.component = new Vue({
 | 
			
		||||
            provide: {
 | 
			
		||||
                dismiss: this.dismiss.bind(this),
 | 
			
		||||
                element: options.element,
 | 
			
		||||
                buttons: options.buttons,
 | 
			
		||||
                dismissable: this.dismissable
 | 
			
		||||
            },
 | 
			
		||||
            components: {
 | 
			
		||||
                OverlayComponent: OverlayComponent
 | 
			
		||||
            },
 | 
			
		||||
            provide: {
 | 
			
		||||
                dismiss: this.dismiss.bind(this),
 | 
			
		||||
                element,
 | 
			
		||||
                buttons,
 | 
			
		||||
                dismissable: this.dismissable
 | 
			
		||||
            },
 | 
			
		||||
            template: '<overlay-component></overlay-component>'
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        if (options.onDestroy) {
 | 
			
		||||
            this.once('destroy', options.onDestroy);
 | 
			
		||||
        if (onDestroy) {
 | 
			
		||||
            this.once('destroy', onDestroy);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,10 @@ class OverlayAPI {
 | 
			
		||||
     */
 | 
			
		||||
    showOverlay(overlay) {
 | 
			
		||||
        if (this.activeOverlays.length) {
 | 
			
		||||
            this.activeOverlays[this.activeOverlays.length - 1].container.classList.add('invisible');
 | 
			
		||||
            const previousOverlay = this.activeOverlays[this.activeOverlays.length - 1];
 | 
			
		||||
            if (previousOverlay.autoHide) {
 | 
			
		||||
                previousOverlay.container.classList.add('invisible');
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.activeOverlays.push(overlay);
 | 
			
		||||
 
 | 
			
		||||
@@ -90,7 +90,7 @@ class ImageExporter {
 | 
			
		||||
                element.id = oldId;
 | 
			
		||||
            },
 | 
			
		||||
            removeContainer: true // Set to false to debug what html2canvas renders
 | 
			
		||||
        }).then(function (canvas) {
 | 
			
		||||
        }).then(canvas => {
 | 
			
		||||
            dialog.dismiss();
 | 
			
		||||
 | 
			
		||||
            return new Promise(function (resolve, reject) {
 | 
			
		||||
@@ -105,9 +105,10 @@ class ImageExporter {
 | 
			
		||||
 | 
			
		||||
                return canvas.toBlob(blob => resolve({ blob }), mimeType);
 | 
			
		||||
            });
 | 
			
		||||
        }, function (error) {
 | 
			
		||||
            console.log('error capturing image', error);
 | 
			
		||||
        }).catch(error => {
 | 
			
		||||
            dialog.dismiss();
 | 
			
		||||
 | 
			
		||||
            console.error('error capturing image', error);
 | 
			
		||||
            const errorDialog = overlays.dialog({
 | 
			
		||||
                iconClass: 'error',
 | 
			
		||||
                message: 'Image was not captured successfully!',
 | 
			
		||||
 
 | 
			
		||||
@@ -273,10 +273,7 @@ export default {
 | 
			
		||||
            this.openmct.objects.getOriginalPath(this.conditionSetDomainObject.identifier).then(
 | 
			
		||||
                (objectPath) => {
 | 
			
		||||
                    this.objectPath = objectPath;
 | 
			
		||||
                    this.navigateToPath = '#/browse/' + this.objectPath
 | 
			
		||||
                        .map(o => o && this.openmct.objects.makeKeyString(o.identifier))
 | 
			
		||||
                        .reverse()
 | 
			
		||||
                        .join('/');
 | 
			
		||||
                    this.navigateToPath = '#/browse/' + this.openmct.objects.getRelativePath(this.objectPath);
 | 
			
		||||
                }
 | 
			
		||||
            );
 | 
			
		||||
        },
 | 
			
		||||
 
 | 
			
		||||
@@ -297,10 +297,7 @@ export default {
 | 
			
		||||
            this.openmct.objects.getOriginalPath(this.conditionSetDomainObject.identifier).then(
 | 
			
		||||
                (objectPath) => {
 | 
			
		||||
                    this.objectPath = objectPath;
 | 
			
		||||
                    this.navigateToPath = '#/browse/' + this.objectPath
 | 
			
		||||
                        .map(o => o && this.openmct.objects.makeKeyString(o.identifier))
 | 
			
		||||
                        .reverse()
 | 
			
		||||
                        .join('/');
 | 
			
		||||
                    this.navigateToPath = '#/browse/' + this.openmct.objects.getRelativePath(this.objectPath);
 | 
			
		||||
                }
 | 
			
		||||
            );
 | 
			
		||||
        },
 | 
			
		||||
 
 | 
			
		||||
@@ -456,12 +456,9 @@ export default {
 | 
			
		||||
                : undefined;
 | 
			
		||||
        },
 | 
			
		||||
        getDefaultNotebookObject() {
 | 
			
		||||
            const oldNotebookStorage = getDefaultNotebook();
 | 
			
		||||
            if (!oldNotebookStorage) {
 | 
			
		||||
                return null;
 | 
			
		||||
            }
 | 
			
		||||
            const defaultNotebook = getDefaultNotebook();
 | 
			
		||||
 | 
			
		||||
            return this.openmct.objects.get(oldNotebookStorage.identifier);
 | 
			
		||||
            return defaultNotebook && this.openmct.objects.get(defaultNotebook.identifier);
 | 
			
		||||
        },
 | 
			
		||||
        getLinktoNotebook() {
 | 
			
		||||
            const objectPath = this.openmct.router.path;
 | 
			
		||||
 
 | 
			
		||||
@@ -17,19 +17,26 @@
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import Snapshot from '../snapshot';
 | 
			
		||||
import { getDefaultNotebook, getNotebookSectionAndPage, validateNotebookStorageObject } from '../utils/notebook-storage';
 | 
			
		||||
import { getDefaultNotebook, validateNotebookStorageObject } from '../utils/notebook-storage';
 | 
			
		||||
import { NOTEBOOK_DEFAULT, NOTEBOOK_SNAPSHOT } from '../notebook-constants';
 | 
			
		||||
import { getMenuItems } from '../utils/notebook-snapshot-menu';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    inject: ['openmct'],
 | 
			
		||||
    props: {
 | 
			
		||||
        currentView: {
 | 
			
		||||
            type: Object,
 | 
			
		||||
            default() {
 | 
			
		||||
                return {};
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        domainObject: {
 | 
			
		||||
            type: Object,
 | 
			
		||||
            default() {
 | 
			
		||||
                return {};
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        ignoreLink: {
 | 
			
		||||
        isPreview: {
 | 
			
		||||
            type: Boolean,
 | 
			
		||||
            default() {
 | 
			
		||||
                return false;
 | 
			
		||||
@@ -50,51 +57,40 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
    mounted() {
 | 
			
		||||
        validateNotebookStorageObject();
 | 
			
		||||
        this.getDefaultNotebookObject();
 | 
			
		||||
 | 
			
		||||
        this.notebookSnapshot = new Snapshot(this.openmct);
 | 
			
		||||
        this.setDefaultNotebookStatus();
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
        getDefaultNotebookObject() {
 | 
			
		||||
            const defaultNotebook = getDefaultNotebook();
 | 
			
		||||
        getPreviewObjectLink() {
 | 
			
		||||
            const relativePath = this.openmct.objects.getRelativePath(this.objectPath);
 | 
			
		||||
            const urlParams = this.openmct.router.getParams();
 | 
			
		||||
            urlParams.view = this.currentView.key;
 | 
			
		||||
 | 
			
		||||
            return defaultNotebook && this.openmct.objects.get(defaultNotebook.identifier);
 | 
			
		||||
            const urlParamsString = Object.entries(urlParams)
 | 
			
		||||
                .map(([key, value]) => `${key}=${value}`)
 | 
			
		||||
                .join('&');
 | 
			
		||||
 | 
			
		||||
            return `#/browse/${relativePath}?${urlParamsString}`;
 | 
			
		||||
        },
 | 
			
		||||
        async showMenu(event) {
 | 
			
		||||
            const notebookTypes = [];
 | 
			
		||||
            const menuItemOptions = {
 | 
			
		||||
                default: {
 | 
			
		||||
                    cssClass: 'icon-notebook',
 | 
			
		||||
                    name: `Save to Notebook`,
 | 
			
		||||
                    onItemClicked: () => this.snapshot(NOTEBOOK_DEFAULT, event.target)
 | 
			
		||||
                },
 | 
			
		||||
                snapshot: {
 | 
			
		||||
                    cssClass: 'icon-camera',
 | 
			
		||||
                    name: 'Save to Notebook Snapshots',
 | 
			
		||||
                    onItemClicked: () => this.snapshot(NOTEBOOK_SNAPSHOT, event.target)
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            const notebookTypes = await getMenuItems(this.openmct, menuItemOptions);
 | 
			
		||||
            const elementBoundingClientRect = this.$el.getBoundingClientRect();
 | 
			
		||||
            const x = elementBoundingClientRect.x;
 | 
			
		||||
            const y = elementBoundingClientRect.y + elementBoundingClientRect.height;
 | 
			
		||||
 | 
			
		||||
            const defaultNotebookObject = await this.getDefaultNotebookObject();
 | 
			
		||||
            if (defaultNotebookObject) {
 | 
			
		||||
                const defaultNotebook = getDefaultNotebook();
 | 
			
		||||
                const { section, page } = getNotebookSectionAndPage(defaultNotebookObject, defaultNotebook.defaultSectionId, defaultNotebook.defaultPageId);
 | 
			
		||||
                if (section && page) {
 | 
			
		||||
                    const name = defaultNotebookObject.name;
 | 
			
		||||
                    const sectionName = section.name;
 | 
			
		||||
                    const pageName = page.name;
 | 
			
		||||
                    const defaultPath = `${name} - ${sectionName} - ${pageName}`;
 | 
			
		||||
 | 
			
		||||
                    notebookTypes.push({
 | 
			
		||||
                        cssClass: 'icon-notebook',
 | 
			
		||||
                        name: `Save to Notebook ${defaultPath}`,
 | 
			
		||||
                        onItemClicked: () => {
 | 
			
		||||
                            return this.snapshot(NOTEBOOK_DEFAULT, event.target);
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            notebookTypes.push({
 | 
			
		||||
                cssClass: 'icon-camera',
 | 
			
		||||
                name: 'Save to Notebook Snapshots',
 | 
			
		||||
                onItemClicked: () => {
 | 
			
		||||
                    return this.snapshot(NOTEBOOK_SNAPSHOT, event.target);
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            this.openmct.menus.showMenu(x, y, notebookTypes);
 | 
			
		||||
        },
 | 
			
		||||
        snapshot(notebookType, target) {
 | 
			
		||||
@@ -102,15 +98,12 @@ export default {
 | 
			
		||||
                const wrapper = target && target.closest('.js-notebook-snapshot-item-wrapper')
 | 
			
		||||
                    || document;
 | 
			
		||||
                const element = wrapper.querySelector('.js-notebook-snapshot-item');
 | 
			
		||||
 | 
			
		||||
                const bounds = this.openmct.time.bounds();
 | 
			
		||||
                const link = !this.ignoreLink
 | 
			
		||||
                    ? window.location.hash
 | 
			
		||||
                    : null;
 | 
			
		||||
 | 
			
		||||
                const objectPath = this.objectPath || this.openmct.router.path;
 | 
			
		||||
                const link = this.isPreview
 | 
			
		||||
                    ? this.getPreviewObjectLink()
 | 
			
		||||
                    : window.location.hash;
 | 
			
		||||
                const snapshotMeta = {
 | 
			
		||||
                    bounds,
 | 
			
		||||
                    bounds: this.openmct.time.bounds(),
 | 
			
		||||
                    link,
 | 
			
		||||
                    objectPath,
 | 
			
		||||
                    openmct: this.openmct
 | 
			
		||||
 
 | 
			
		||||
@@ -90,13 +90,16 @@ export default class Snapshot {
 | 
			
		||||
 | 
			
		||||
    _showNotification(msg, url) {
 | 
			
		||||
        const options = {
 | 
			
		||||
            autoDismissTimeout: 30000,
 | 
			
		||||
            link: {
 | 
			
		||||
            autoDismissTimeout: 30000
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        if (!this.openmct.editor.isEditing()) {
 | 
			
		||||
            options.link = {
 | 
			
		||||
                cssClass: '',
 | 
			
		||||
                text: 'click to view',
 | 
			
		||||
                onClick: this._navigateToNotebook(url)
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.openmct.notifications.info(msg, options);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										31
									
								
								src/plugins/notebook/utils/notebook-snapshot-menu.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/plugins/notebook/utils/notebook-snapshot-menu.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
import { getDefaultNotebook, getNotebookSectionAndPage } from './notebook-storage';
 | 
			
		||||
 | 
			
		||||
export async function getMenuItems(openmct, menuItemOptions) {
 | 
			
		||||
    const notebookTypes = [];
 | 
			
		||||
 | 
			
		||||
    const defaultNotebook = getDefaultNotebook();
 | 
			
		||||
    const defaultNotebookObject = defaultNotebook && await openmct.objects.get(defaultNotebook.identifier);
 | 
			
		||||
    if (defaultNotebookObject) {
 | 
			
		||||
        const { section, page } = getNotebookSectionAndPage(defaultNotebookObject, defaultNotebook.defaultSectionId, defaultNotebook.defaultPageId);
 | 
			
		||||
        if (section && page) {
 | 
			
		||||
            const name = defaultNotebookObject.name;
 | 
			
		||||
            const sectionName = section.name;
 | 
			
		||||
            const pageName = page.name;
 | 
			
		||||
            const defaultPath = `${name} - ${sectionName} - ${pageName}`;
 | 
			
		||||
 | 
			
		||||
            notebookTypes.push({
 | 
			
		||||
                cssClass: menuItemOptions.default.cssClass,
 | 
			
		||||
                name: `${menuItemOptions.default.name} ${defaultPath}`,
 | 
			
		||||
                onItemClicked: menuItemOptions.default.onItemClicked
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    notebookTypes.push({
 | 
			
		||||
        cssClass: menuItemOptions.snapshot.cssClass,
 | 
			
		||||
        name: menuItemOptions.snapshot.name,
 | 
			
		||||
        onItemClicked: menuItemOptions.snapshot.onItemClicked
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    return notebookTypes;
 | 
			
		||||
}
 | 
			
		||||
@@ -71,11 +71,7 @@ export async function getDefaultNotebookLink(openmct, domainObject = null) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const path = await openmct.objects.getOriginalPath(domainObject.identifier)
 | 
			
		||||
        .then(objectPath => objectPath
 | 
			
		||||
            .map(o => o && openmct.objects.makeKeyString(o.identifier))
 | 
			
		||||
            .reverse()
 | 
			
		||||
            .join('/')
 | 
			
		||||
        );
 | 
			
		||||
        .then(openmct.objects.getRelativePath);
 | 
			
		||||
    const { defaultPageId, defaultSectionId } = getDefaultNotebook();
 | 
			
		||||
 | 
			
		||||
    return `#/browse/${path}?sectionId=${defaultSectionId}&pageId=${defaultPageId}`;
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,7 @@
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
import PreviewHeader from '@/ui/preview/preview-header.vue';
 | 
			
		||||
import Preview from '@/ui/preview/Preview.vue';
 | 
			
		||||
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
 | 
			
		||||
@@ -46,7 +46,7 @@ export default class ViewLargeAction {
 | 
			
		||||
            throw new Error(message);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this._expand(objectPath, childElement, view);
 | 
			
		||||
        this._expand(objectPath, childElement);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    appliesTo(objectPath, view = {}) {
 | 
			
		||||
@@ -58,49 +58,29 @@ export default class ViewLargeAction {
 | 
			
		||||
        return viewLargeAction;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _expand(objectPath, childElement, view) {
 | 
			
		||||
    _expand(objectPath, childElement) {
 | 
			
		||||
        const parentElement = childElement.parentElement;
 | 
			
		||||
 | 
			
		||||
        this.overlay = this.openmct.overlays.overlay({
 | 
			
		||||
            element: this._getOverlayElement(objectPath, childElement, view),
 | 
			
		||||
            element: this._getPreview(objectPath),
 | 
			
		||||
            size: 'large',
 | 
			
		||||
            autoHide: false,
 | 
			
		||||
            onDestroy() {
 | 
			
		||||
                parentElement.append(childElement);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _getOverlayElement(objectPath, childElement, view) {
 | 
			
		||||
        const fragment = new DocumentFragment();
 | 
			
		||||
        const header = this._getPreviewHeader(objectPath, view);
 | 
			
		||||
        fragment.append(header);
 | 
			
		||||
 | 
			
		||||
        const wrapper = document.createElement('div');
 | 
			
		||||
        wrapper.classList.add('l-preview-window__object-view');
 | 
			
		||||
        wrapper.append(childElement);
 | 
			
		||||
        fragment.append(wrapper);
 | 
			
		||||
 | 
			
		||||
        return fragment;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _getPreviewHeader(objectPath, view) {
 | 
			
		||||
        const domainObject = objectPath[0];
 | 
			
		||||
        const actionCollection = this.openmct.actions.getActionsCollection(objectPath, view);
 | 
			
		||||
    _getPreview(objectPath) {
 | 
			
		||||
        const preview = new Vue({
 | 
			
		||||
            components: {
 | 
			
		||||
                PreviewHeader
 | 
			
		||||
                Preview
 | 
			
		||||
            },
 | 
			
		||||
            provide: {
 | 
			
		||||
                openmct: this.openmct,
 | 
			
		||||
                objectPath: this.objectPath
 | 
			
		||||
                objectPath
 | 
			
		||||
            },
 | 
			
		||||
            data() {
 | 
			
		||||
                return {
 | 
			
		||||
                    domainObject,
 | 
			
		||||
                    actionCollection
 | 
			
		||||
                };
 | 
			
		||||
            },
 | 
			
		||||
            template: '<PreviewHeader :actionCollection="actionCollection" :domainObject="domainObject" :hideViewSwitcher="true" :showNotebookMenuSwitcher="true"></PreviewHeader>'
 | 
			
		||||
            template: '<Preview></Preview>'
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        return preview.$mount().$el;
 | 
			
		||||
 
 | 
			
		||||
@@ -39,13 +39,7 @@ export function paramsToArray(openmct) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function identifierToString(openmct, objectPath) {
 | 
			
		||||
    let identifier = '#/browse/' + objectPath.map(function (o) {
 | 
			
		||||
        return o && openmct.objects.makeKeyString(o.identifier);
 | 
			
		||||
    })
 | 
			
		||||
        .reverse()
 | 
			
		||||
        .join('/');
 | 
			
		||||
 | 
			
		||||
    return identifier;
 | 
			
		||||
    return '#/browse/' + openmct.objects.getRelativePath(objectPath);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default function objectPathToUrl(openmct, objectPath) {
 | 
			
		||||
 
 | 
			
		||||
@@ -59,12 +59,13 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
    mounted() {
 | 
			
		||||
        this.views = this.openmct.objectViews.get(this.domainObject, this.objectPath).map((view) => {
 | 
			
		||||
            view.callBack = () => {
 | 
			
		||||
            view.onItemClicked = () => {
 | 
			
		||||
                return this.setView(view);
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            return view;
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        this.setView(this.views[0]);
 | 
			
		||||
    },
 | 
			
		||||
    beforeDestroy() {
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,7 @@ export default class PreviewAction {
 | 
			
		||||
        let overlay = this._openmct.overlays.overlay({
 | 
			
		||||
            element: preview.$el,
 | 
			
		||||
            size: 'large',
 | 
			
		||||
            autoHide: false,
 | 
			
		||||
            buttons: [
 | 
			
		||||
                {
 | 
			
		||||
                    label: 'Done',
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,12 @@
 | 
			
		||||
            :views="views"
 | 
			
		||||
            :current-view="currentView"
 | 
			
		||||
        />
 | 
			
		||||
        <NotebookMenuSwitcher :domain-object="domainObject"
 | 
			
		||||
                              :object-path="objectPath"
 | 
			
		||||
                              :is-preview="true"
 | 
			
		||||
                              :current-view="currentView"
 | 
			
		||||
                              class="c-notebook-snapshot-menubutton"
 | 
			
		||||
        />
 | 
			
		||||
        <div class="l-browse-bar__actions">
 | 
			
		||||
            <button
 | 
			
		||||
                v-for="(item, index) in statusBarItems"
 | 
			
		||||
@@ -38,7 +44,9 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import NotebookMenuSwitcher from '@/plugins/notebook/components/NotebookMenuSwitcher.vue';
 | 
			
		||||
import ViewSwitcher from '../../ui/layout/ViewSwitcher.vue';
 | 
			
		||||
 | 
			
		||||
const HIDDEN_ACTIONS = [
 | 
			
		||||
    'remove',
 | 
			
		||||
    'move',
 | 
			
		||||
@@ -48,10 +56,12 @@ const HIDDEN_ACTIONS = [
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    components: {
 | 
			
		||||
        NotebookMenuSwitcher,
 | 
			
		||||
        ViewSwitcher
 | 
			
		||||
    },
 | 
			
		||||
    inject: [
 | 
			
		||||
        'openmct'
 | 
			
		||||
        'openmct',
 | 
			
		||||
        'objectPath'
 | 
			
		||||
    ],
 | 
			
		||||
    props: {
 | 
			
		||||
        currentView: {
 | 
			
		||||
@@ -143,6 +153,7 @@ export default {
 | 
			
		||||
        showMenuItems(event) {
 | 
			
		||||
            let sortedActions = this.openmct.actions._groupAndSortActions(this.menuActionItems);
 | 
			
		||||
            const menuItems = this.openmct.menus.actionsToMenuItems(sortedActions, this.actionCollection.objectPath, this.actionCollection.view);
 | 
			
		||||
 | 
			
		||||
            const visibleMenuItems = this.filterHiddenItems(menuItems);
 | 
			
		||||
            this.openmct.menus.showMenu(event.x, event.y, visibleMenuItems);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user