Compare commits
	
		
			8 Commits
		
	
	
		
			nb-embed-e
			...
			v1.8.3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 26750cb01e | ||
|   | 8314d03af5 | ||
|   | 187da3c462 | ||
|   | e4f134ca59 | ||
|   | 76829ad252 | ||
|   | a8da0d5917 | ||
|   | 2f63718385 | ||
|   | 433f1bf28e | 
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "openmct", | ||||
|   "version": "1.8.3-SNAPSHOT", | ||||
|   "version": "1.8.3", | ||||
|   "description": "The Open MCT core platform", | ||||
|   "devDependencies": { | ||||
|     "@braintree/sanitize-url": "^5.0.2", | ||||
|   | ||||
| @@ -39,8 +39,10 @@ export default class ConditionSetViewProvider { | ||||
|         return isConditionSet && this.openmct.router.isNavigatedObject(objectPath); | ||||
|     } | ||||
|  | ||||
|     canEdit(domainObject) { | ||||
|         return domainObject.type === 'conditionSet'; | ||||
|     canEdit(domainObject, objectPath) { | ||||
|         const isConditionSet = domainObject.type === 'conditionSet'; | ||||
|  | ||||
|         return isConditionSet && this.openmct.router.isNavigatedObject(objectPath); | ||||
|     } | ||||
|  | ||||
|     view(domainObject, objectPath) { | ||||
|   | ||||
| @@ -99,6 +99,7 @@ export default class CreateAction extends PropertiesAction { | ||||
|      */ | ||||
|     async _navigateAndEdit(domainObject, parentDomainObjectpath) { | ||||
|         let objectPath; | ||||
|         let self = this; | ||||
|         if (parentDomainObjectpath) { | ||||
|             objectPath = parentDomainObjectpath && [domainObject].concat(parentDomainObjectpath); | ||||
|         } else { | ||||
| @@ -110,15 +111,20 @@ export default class CreateAction extends PropertiesAction { | ||||
|             .reverse() | ||||
|             .join('/'); | ||||
|  | ||||
|         this.openmct.router.navigate(url); | ||||
|  | ||||
|         const objectView = this.openmct.objectViews.get(domainObject, objectPath)[0]; | ||||
|         function editObject() { | ||||
|             const objectView = self.openmct.objectViews.get(domainObject, objectPath)[0]; | ||||
|             const canEdit = objectView && objectView.canEdit && objectView.canEdit(domainObject, objectPath); | ||||
|  | ||||
|             if (canEdit) { | ||||
|             this.openmct.editor.edit(); | ||||
|                 self.openmct.editor.edit(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         this.openmct.router.once('afterNavigation', editObject); | ||||
|  | ||||
|         this.openmct.router.navigate(url); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @private | ||||
|      */ | ||||
|   | ||||
| @@ -65,13 +65,8 @@ export default { | ||||
|             keyString: undefined | ||||
|         }; | ||||
|     }, | ||||
|     computed: { | ||||
|         imageHistorySize() { | ||||
|             return this.imageHistory.length; | ||||
|         } | ||||
|     }, | ||||
|     watch: { | ||||
|         imageHistorySize(newSize, oldSize) { | ||||
|         imageHistory(newHistory, oldHistory) { | ||||
|             this.updatePlotImagery(); | ||||
|         } | ||||
|     }, | ||||
|   | ||||
| @@ -240,9 +240,6 @@ export default { | ||||
|         }; | ||||
|     }, | ||||
|     computed: { | ||||
|         imageHistorySize() { | ||||
|             return this.imageHistory.length; | ||||
|         }, | ||||
|         compassRoseSizingClasses() { | ||||
|             let compassRoseSizingClasses = ''; | ||||
|             if (this.sizedImageDimensions.width < 300) { | ||||
| @@ -409,7 +406,9 @@ export default { | ||||
|         } | ||||
|     }, | ||||
|     watch: { | ||||
|         imageHistorySize(newSize, oldSize) { | ||||
|         imageHistory: { | ||||
|             handler(newHistory, oldHistory) { | ||||
|                 const newSize = newHistory.length; | ||||
|                 let imageIndex; | ||||
|                 if (this.focusedImageTimestamp !== undefined) { | ||||
|                     const foundImageIndex = this.imageHistory.findIndex(image => { | ||||
| @@ -423,6 +422,8 @@ export default { | ||||
|                 this.setFocusedImage(imageIndex, false); | ||||
|                 this.scrollToRight(); | ||||
|             }, | ||||
|             deep: true | ||||
|         }, | ||||
|         focusedImageIndex() { | ||||
|             this.trackDuration(); | ||||
|             this.resetAgeCSS(); | ||||
| @@ -510,12 +511,6 @@ export default { | ||||
|                 this.timeContext.off("clock", this.trackDuration); | ||||
|             } | ||||
|         }, | ||||
|         boundsChange(bounds, isTick) { | ||||
|             if (!isTick) { | ||||
|                 this.previousFocusedImage = this.focusedImage ? JSON.parse(JSON.stringify(this.focusedImage)) : undefined; | ||||
|                 this.requestHistory(); | ||||
|             } | ||||
|         }, | ||||
|         expand() { | ||||
|             const actionCollection = this.openmct.actions.getActionsCollection(this.objectPath, this.currentView); | ||||
|             const visibleActions = actionCollection.getVisibleActions(); | ||||
| @@ -690,22 +685,32 @@ export default { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             if (thumbnailClick) { | ||||
|                 //We use the props till the user changes what they want to see | ||||
|                 this.focusedImageTimestamp = undefined; | ||||
|                 //set the previousFocusedImage when a user chooses an image | ||||
|                 this.previousFocusedImage = this.imageHistory[focusedIndex] ? JSON.parse(JSON.stringify(this.imageHistory[focusedIndex])) : undefined; | ||||
|             } | ||||
|  | ||||
|             if (this.previousFocusedImage) { | ||||
|                 // determine if the previous image exists in the new bounds of imageHistory | ||||
|                 if (!thumbnailClick) { | ||||
|                     const matchIndex = this.matchIndexOfPreviousImage( | ||||
|                         this.previousFocusedImage, | ||||
|                         this.imageHistory | ||||
|                     ); | ||||
|                     focusedIndex = matchIndex > -1 ? matchIndex : this.imageHistory.length - 1; | ||||
|                 } | ||||
|  | ||||
|                 if (!(this.isPaused || thumbnailClick) | ||||
|                     || focusedIndex === this.imageHistory.length - 1) { | ||||
|                     delete this.previousFocusedImage; | ||||
|                 } | ||||
|  | ||||
|             if (thumbnailClick) { | ||||
|                 //We use the props till the user changes what they want to see | ||||
|                 this.focusedImageTimestamp = undefined; | ||||
|             } | ||||
|  | ||||
|             this.focusedImageIndex = focusedIndex; | ||||
|  | ||||
|             //TODO: do we even need this anymore? | ||||
|             if (this.isPaused && !thumbnailClick && this.focusedImageTimestamp === undefined) { | ||||
|                 this.nextImageIndex = focusedIndex; | ||||
|                 //this could happen if bounds changes | ||||
| @@ -716,8 +721,6 @@ export default { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             this.focusedImageIndex = focusedIndex; | ||||
|  | ||||
|             if (thumbnailClick && !this.isPaused) { | ||||
|                 this.paused(true); | ||||
|             } | ||||
|   | ||||
| @@ -120,9 +120,15 @@ export default { | ||||
|             return this.timeFormatter.parse(datum); | ||||
|         }, | ||||
|         boundsChange(bounds, isTick) { | ||||
|             if (!isTick) { | ||||
|                 this.requestHistory(); | ||||
|             if (isTick) { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             // forcibly reset the imageContainer size to prevent an aspect ratio distortion | ||||
|             delete this.imageContainerWidth; | ||||
|             delete this.imageContainerHeight; | ||||
|  | ||||
|             return this.requestHistory(); | ||||
|         }, | ||||
|         async requestHistory() { | ||||
|             let bounds = this.timeContext.bounds(); | ||||
|   | ||||
| @@ -91,11 +91,11 @@ export default class LinkAction { | ||||
|     } | ||||
|  | ||||
|     validate(currentParent) { | ||||
|         return (object, data) => { | ||||
|             const parentCandidate = data.value; | ||||
|         return (data) => { | ||||
|             const parentCandidate = data.value[0]; | ||||
|             const currentParentKeystring = this.openmct.objects.makeKeyString(currentParent.identifier); | ||||
|             const parentCandidateKeystring = this.openmct.objects.makeKeyString(parentCandidate.identifier); | ||||
|             const objectKeystring = this.openmct.objects.makeKeyString(object.identifier); | ||||
|             const objectKeystring = this.openmct.objects.makeKeyString(this.object.identifier); | ||||
|  | ||||
|             if (!parentCandidateKeystring || !currentParentKeystring) { | ||||
|                 return false; | ||||
| @@ -114,7 +114,7 @@ export default class LinkAction { | ||||
|                 return false; | ||||
|             } | ||||
|  | ||||
|             return parentCandidate && this.openmct.composition.checkPolicy(parentCandidate, object); | ||||
|             return parentCandidate && this.openmct.composition.checkPolicy(parentCandidate, this.object); | ||||
|         }; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -142,7 +142,6 @@ import { clearDefaultNotebook, getDefaultNotebook, setDefaultNotebook, setDefaul | ||||
| import { addNotebookEntry, createNewEmbed, getEntryPosById, getNotebookEntries, mutateObject } from '../utils/notebook-entries'; | ||||
| import { saveNotebookImageDomainObject, updateNamespaceOfDomainObject } from '../utils/notebook-image'; | ||||
| import { NOTEBOOK_VIEW_TYPE } from '../notebook-constants'; | ||||
| import objectUtils from 'objectUtils'; | ||||
|  | ||||
| import { debounce } from 'lodash'; | ||||
| import objectLink from '../../../ui/mixins/object-link'; | ||||
| @@ -455,11 +454,6 @@ export default { | ||||
|                 ? getDefaultNotebook().defaultSectionId | ||||
|                 : undefined; | ||||
|         }, | ||||
|         getDefaultNotebookObject() { | ||||
|             const defaultNotebook = getDefaultNotebook(); | ||||
|  | ||||
|             return defaultNotebook && this.openmct.objects.get(defaultNotebook.identifier); | ||||
|         }, | ||||
|         getLinktoNotebook() { | ||||
|             const objectPath = this.openmct.router.path; | ||||
|             const link = objectLink.computed.objectLink.call({ | ||||
| @@ -619,12 +613,12 @@ export default { | ||||
|  | ||||
|             this.sectionsChanged({ sections }); | ||||
|         }, | ||||
|         removeDefaultClass(domainObject) { | ||||
|             if (!domainObject) { | ||||
|         removeDefaultClass(defaultNotebookIdentifier) { | ||||
|             if (!defaultNotebookIdentifier) { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             this.openmct.status.delete(domainObject.identifier); | ||||
|             this.openmct.status.delete(defaultNotebookIdentifier); | ||||
|         }, | ||||
|         resetSearch() { | ||||
|             this.search = ''; | ||||
| @@ -633,15 +627,16 @@ export default { | ||||
|         toggleNav() { | ||||
|             this.showNav = !this.showNav; | ||||
|         }, | ||||
|         async updateDefaultNotebook(notebookStorage) { | ||||
|             const defaultNotebookObject = await this.getDefaultNotebookObject(); | ||||
|             const isSameNotebook = defaultNotebookObject | ||||
|                 && objectUtils.makeKeyString(defaultNotebookObject.identifier) === objectUtils.makeKeyString(notebookStorage.identifier); | ||||
|         updateDefaultNotebook(notebookStorage) { | ||||
|             const defaultNotebook = getDefaultNotebook(); | ||||
|             const defaultNotebookIdentifier = defaultNotebook && defaultNotebook.identifier; | ||||
|             const isSameNotebook = defaultNotebookIdentifier | ||||
|                 && this.openmct.objects.areIdsEqual(defaultNotebookIdentifier, notebookStorage.identifier); | ||||
|             if (!isSameNotebook) { | ||||
|                 this.removeDefaultClass(defaultNotebookObject); | ||||
|                 this.removeDefaultClass(defaultNotebookIdentifier); | ||||
|             } | ||||
|  | ||||
|             if (!defaultNotebookObject || !isSameNotebook) { | ||||
|             if (!defaultNotebookIdentifier || !isSameNotebook) { | ||||
|                 setDefaultNotebook(this.openmct, notebookStorage, this.domainObject); | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -110,7 +110,8 @@ export default class Snapshot { | ||||
|         } | ||||
|  | ||||
|         return () => { | ||||
|             window.location.href = window.location.origin + url; | ||||
|             const path = window.location.href.split('#'); | ||||
|             window.location.href = path[0] + url; | ||||
|         }; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -105,11 +105,6 @@ export function addNotebookEntry(openmct, domainObject, notebookStorage, embed = | ||||
|     const date = Date.now(); | ||||
|     const configuration = domainObject.configuration; | ||||
|     const entries = configuration.entries || {}; | ||||
|  | ||||
|     if (!entries) { | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     const embeds = embed | ||||
|         ? [embed] | ||||
|         : []; | ||||
| @@ -125,7 +120,8 @@ export function addNotebookEntry(openmct, domainObject, notebookStorage, embed = | ||||
|     const newEntries = addEntryIntoPage(notebookStorage, entries, entry); | ||||
|  | ||||
|     addDefaultClass(domainObject, openmct); | ||||
|     domainObject.configuration.entries = newEntries; | ||||
|  | ||||
|     mutateObject(openmct, domainObject, 'configuration.entries', newEntries); | ||||
|  | ||||
|     return id; | ||||
| } | ||||
|   | ||||
| @@ -29,10 +29,9 @@ define( | ||||
|         } | ||||
|  | ||||
|         SummaryWidgetsCompositionPolicy.prototype.allow = function (parent, child) { | ||||
|             const parentType = parent.getCapability('type'); | ||||
|             const newStyleChild = child.useCapability('adapter'); | ||||
|             const parentType = parent.type; | ||||
|  | ||||
|             if (parentType.instanceOf('summary-widget') && !this.openmct.telemetry.isTelemetryObject(newStyleChild)) { | ||||
|             if (parentType === 'summary-widget' && !this.openmct.telemetry.isTelemetryObject(child)) { | ||||
|                 return false; | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -141,12 +141,16 @@ export default { | ||||
|             this.openmct.objectViews.off('clearData', this.clearData); | ||||
|         }, | ||||
|         getStyleReceiver() { | ||||
|             let styleReceiver = this.$refs.objectViewWrapper.querySelector('.js-style-receiver') | ||||
|             let styleReceiver; | ||||
|  | ||||
|             if (this.$refs.objectViewWrapper !== undefined) { | ||||
|                 styleReceiver = this.$refs.objectViewWrapper.querySelector('.js-style-receiver') | ||||
|                   || this.$refs.objectViewWrapper.querySelector(':first-child'); | ||||
|  | ||||
|                 if (styleReceiver === null) { | ||||
|                     styleReceiver = undefined; | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             return styleReceiver; | ||||
|         }, | ||||
|   | ||||
| @@ -186,6 +186,10 @@ export default { | ||||
|                     return { | ||||
|                         name: field.name, | ||||
|                         value: field.path.reduce((object, key) => { | ||||
|                             if (object === undefined) { | ||||
|                                 return object; | ||||
|                             } | ||||
|  | ||||
|                             return object[key]; | ||||
|                         }, this.domainObject) | ||||
|                     }; | ||||
|   | ||||
| @@ -445,6 +445,10 @@ export default { | ||||
|             } | ||||
|  | ||||
|             // sorting composition items | ||||
|             if (!a.name || !b.name) { | ||||
|                 return 0; | ||||
|             } | ||||
|  | ||||
|             if (a.name.toLowerCase() | ||||
|                 > b.name.toLowerCase()) { | ||||
|                 return 1; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| import objectPathToUrl from '/src/tools/url'; | ||||
| import objectPathToUrl from '../../tools/url'; | ||||
|  | ||||
| export default { | ||||
|     inject: ['openmct'], | ||||
|   | ||||
		Reference in New Issue
	
	Block a user