Compare commits
	
		
			17 Commits
		
	
	
		
			timelist-e
			...
			disable-ed
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 80c9f4602c | ||
|   | 36a7df0708 | ||
|   | 79ff690d4b | ||
|   | f56a4c9ddc | ||
|   | d8cfaeada4 | ||
|   | 6b65ceb2c5 | ||
|   | 24f3687552 | ||
|   | 07464ab417 | ||
|   | 42236e9069 | ||
|   | b2d03bb4be | ||
|   | 2bf349065a | ||
|   | a93601d1f0 | ||
|   | 1a6c8c64a3 | ||
|   | 854d9d43fe | ||
|   | 0c4e46a1ca | ||
|   | 551bfcb4a8 | ||
|   | 39a78df42f | 
| @@ -81,10 +81,15 @@ define( | ||||
|          * context. | ||||
|          */ | ||||
|         PropertiesAction.appliesTo = function (context) { | ||||
|  | ||||
|             var domainObject = (context || {}).domainObject, | ||||
|                 type = domainObject && domainObject.getCapability('type'), | ||||
|                 creatable = type && type.hasFeature('creation'); | ||||
|  | ||||
|             if (domainObject && domainObject.model && domainObject.model.locked) { | ||||
|                 return false; | ||||
|             } | ||||
|  | ||||
|             // Only allow creatable types to be edited | ||||
|             return domainObject && creatable; | ||||
|         }; | ||||
|   | ||||
| @@ -40,7 +40,18 @@ define( | ||||
|         } | ||||
|  | ||||
|         MoveAction.prototype = Object.create(AbstractComposeAction.prototype); | ||||
|         MoveAction.appliesTo = AbstractComposeAction.appliesTo; | ||||
|  | ||||
|         MoveAction.appliesTo = function (context) { | ||||
|             var applicableObject = | ||||
|                 context.selectedObject || context.domainObject; | ||||
|  | ||||
|             if (applicableObject && applicableObject.model.locked) { | ||||
|                 return false; | ||||
|             } | ||||
|  | ||||
|             return Boolean(applicableObject && | ||||
|                 applicableObject.hasCapability('context')); | ||||
|         }; | ||||
|  | ||||
|         return MoveAction; | ||||
|     } | ||||
|   | ||||
| @@ -216,8 +216,14 @@ define(['zepto', 'objectUtils'], function ($, objectUtils) { | ||||
|     }; | ||||
|  | ||||
|     ImportAsJSONAction.appliesTo = function (context) { | ||||
|         return context.domainObject !== undefined && | ||||
|             context.domainObject.hasCapability("composition"); | ||||
|         let domainObject = context.domainObject; | ||||
|  | ||||
|         if (domainObject && domainObject.model.locked) { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         return domainObject !== undefined && | ||||
|             domainObject.hasCapability("composition"); | ||||
|     }; | ||||
|  | ||||
|     return ImportAsJSONAction; | ||||
|   | ||||
| @@ -37,12 +37,13 @@ | ||||
|             > | ||||
|                 <style-editor class="c-inspect-styles__editor" | ||||
|                               :style-item="staticStyle" | ||||
|                               :is-editing="isEditing" | ||||
|                               :is-editing="allowEditing" | ||||
|                               :mixed-styles="mixedStyles" | ||||
|                               @persist="updateStaticStyle" | ||||
|                 /> | ||||
|             </div> | ||||
|             <button | ||||
|                 v-if="allowEditing" | ||||
|                 id="addConditionSet" | ||||
|                 class="c-button c-button--major c-toggle-styling-button labeled" | ||||
|                 @click="addConditionSet" | ||||
| @@ -63,7 +64,7 @@ | ||||
|             > | ||||
|                 <span class="c-object-label__name">{{ conditionSetDomainObject.name }}</span> | ||||
|             </a> | ||||
|             <template v-if="isEditing"> | ||||
|             <template v-if="allowEditing"> | ||||
|                 <button | ||||
|                     id="changeConditionSet" | ||||
|                     class="c-button labeled" | ||||
| @@ -96,7 +97,7 @@ | ||||
|                 /> | ||||
|                 <style-editor class="c-inspect-styles__editor" | ||||
|                               :style-item="conditionStyle" | ||||
|                               :is-editing="isEditing" | ||||
|                               :is-editing="allowEditing" | ||||
|                               @persist="updateConditionalStyle" | ||||
|                 /> | ||||
|             </div> | ||||
| @@ -137,7 +138,13 @@ export default { | ||||
|             conditions: undefined, | ||||
|             conditionsLoaded: false, | ||||
|             navigateToPath: '', | ||||
|             selectedConditionId: '' | ||||
|             selectedConditionId: '', | ||||
|             locked: false | ||||
|         } | ||||
|     }, | ||||
|     computed: { | ||||
|         allowEditing() { | ||||
|             return this.isEditing && !this.locked; | ||||
|         } | ||||
|     }, | ||||
|     destroyed() { | ||||
| @@ -224,7 +231,13 @@ export default { | ||||
|             this.selection.forEach((selectionItem) => { | ||||
|                 const item = selectionItem[0].context.item; | ||||
|                 const layoutItem = selectionItem[0].context.layoutItem; | ||||
|                 const layoutDomainObject = selectionItem[0].context.item; | ||||
|                 const isChildItem = selectionItem.length > 1; | ||||
|  | ||||
|                 if (layoutDomainObject && layoutDomainObject.locked) { | ||||
|                     this.locked = true; | ||||
|                 } | ||||
|  | ||||
|                 if (!isChildItem) { | ||||
|                     domainObject = item; | ||||
|                     itemStyle = getApplicableStylesForItem(item); | ||||
|   | ||||
| @@ -596,7 +596,7 @@ define(['lodash'], function (_) { | ||||
|                     let selectedParent = selectionPath[1].context.item; | ||||
|                     let layoutItem = selectionPath[0].context.layoutItem; | ||||
|  | ||||
|                     if (!layoutItem) { | ||||
|                     if (!layoutItem || selectedParent.locked) { | ||||
|                         return; | ||||
|                     } | ||||
|  | ||||
|   | ||||
| @@ -24,6 +24,7 @@ | ||||
| <layout-frame | ||||
|     :item="item" | ||||
|     :grid-size="gridSize" | ||||
|     :is-editing="isEditing" | ||||
|     @move="(gridDelta) => $emit('move', gridDelta)" | ||||
|     @endMove="() => $emit('endMove')" | ||||
| > | ||||
| @@ -70,7 +71,11 @@ export default { | ||||
|             type: Number, | ||||
|             required: true | ||||
|         }, | ||||
|         initSelect: Boolean | ||||
|         initSelect: Boolean, | ||||
|         isEditing: { | ||||
|             type: Boolean, | ||||
|             required: true | ||||
|         } | ||||
|     }, | ||||
|     computed: { | ||||
|         style() { | ||||
|   | ||||
| @@ -24,14 +24,18 @@ | ||||
| <div | ||||
|     class="l-layout" | ||||
|     :class="{ | ||||
|         'is-multi-selected': selectedLayoutItems.length > 1 | ||||
|         'is-multi-selected': selectedLayoutItems.length > 1, | ||||
|         'allow-editing': isEditing | ||||
|     }" | ||||
|     @dragover="handleDragOver" | ||||
|     @click.capture="bypassSelection" | ||||
|     @drop="handleDrop" | ||||
| > | ||||
|     <!-- Background grid --> | ||||
|     <div class="l-layout__grid-holder c-grid"> | ||||
|     <div | ||||
|         v-if="isEditing" | ||||
|         class="l-layout__grid-holder c-grid" | ||||
|     > | ||||
|         <div | ||||
|             v-if="gridSize[0] >= 3" | ||||
|             class="c-grid__x l-grid l-grid-x" | ||||
| @@ -53,6 +57,7 @@ | ||||
|         :init-select="initSelectIndex === index" | ||||
|         :index="index" | ||||
|         :multi-select="selectedLayoutItems.length > 1" | ||||
|         :is-editing="isEditing" | ||||
|         @move="move" | ||||
|         @endMove="endMove" | ||||
|         @endLineResize="endLineResize" | ||||
| @@ -138,6 +143,10 @@ export default { | ||||
|         domainObject: { | ||||
|             type: Object, | ||||
|             required: true | ||||
|         }, | ||||
|         isEditing: { | ||||
|             type: Boolean, | ||||
|             required: true | ||||
|         } | ||||
|     }, | ||||
|     data() { | ||||
| @@ -164,7 +173,7 @@ export default { | ||||
|             let selectionPath = this.selection[0]; | ||||
|             let singleSelectedLine = this.selection.length === 1 && | ||||
|                     selectionPath[0].context.layoutItem && selectionPath[0].context.layoutItem.type === 'line-view'; | ||||
|             return selectionPath && selectionPath.length > 1 && !singleSelectedLine; | ||||
|             return this.isEditing && selectionPath && selectionPath.length > 1 && !singleSelectedLine; | ||||
|         } | ||||
|     }, | ||||
|     inject: ['openmct', 'options', 'objectPath'], | ||||
| @@ -352,6 +361,9 @@ export default { | ||||
|                 .some(childId => this.openmct.objects.areIdsEqual(childId, identifier)); | ||||
|         }, | ||||
|         handleDragOver($event) { | ||||
|             if (this.internalDomainObject.locked) { | ||||
|                 return; | ||||
|             } | ||||
|             // Get the ID of the dragged object | ||||
|             let draggedKeyString = $event.dataTransfer.types | ||||
|                 .filter(type => type.startsWith(DRAG_OBJECT_TRANSFER_PREFIX)) | ||||
|   | ||||
| @@ -24,6 +24,7 @@ | ||||
| <layout-frame | ||||
|     :item="item" | ||||
|     :grid-size="gridSize" | ||||
|     :is-editing="isEditing" | ||||
|     @move="(gridDelta) => $emit('move', gridDelta)" | ||||
|     @endMove="() => $emit('endMove')" | ||||
| > | ||||
| @@ -70,7 +71,11 @@ export default { | ||||
|             type: Number, | ||||
|             required: true | ||||
|         }, | ||||
|         initSelect: Boolean | ||||
|         initSelect: Boolean, | ||||
|         isEditing: { | ||||
|             type: Boolean, | ||||
|             required: true | ||||
|         } | ||||
|     }, | ||||
|     computed: { | ||||
|         style() { | ||||
|   | ||||
| @@ -33,7 +33,7 @@ | ||||
|  | ||||
|     <div | ||||
|         class="c-frame-edit__move" | ||||
|         @mousedown="startMove([1,1], [0,0], $event)" | ||||
|         @mousedown="isEditing ? startMove([1,1], [0,0], $event) : null" | ||||
|     ></div> | ||||
| </div> | ||||
| </template> | ||||
| @@ -54,6 +54,10 @@ export default { | ||||
|             required: true, | ||||
|             validator: (arr) => arr && arr.length === 2 | ||||
|                 && arr.every(el => typeof el === 'number') | ||||
|         }, | ||||
|         isEditing: { | ||||
|             type: Boolean, | ||||
|             required: true | ||||
|         } | ||||
|     }, | ||||
|     computed: { | ||||
|   | ||||
| @@ -24,6 +24,7 @@ | ||||
|     :item="item" | ||||
|     :grid-size="gridSize" | ||||
|     :title="domainObject && domainObject.name" | ||||
|     :is-editing="isEditing" | ||||
|     @move="(gridDelta) => $emit('move', gridDelta)" | ||||
|     @endMove="() => $emit('endMove')" | ||||
| > | ||||
| @@ -95,6 +96,10 @@ export default { | ||||
|         index: { | ||||
|             type: Number, | ||||
|             required: true | ||||
|         }, | ||||
|         isEditing: { | ||||
|             type: Boolean, | ||||
|             required: true | ||||
|         } | ||||
|     }, | ||||
|     data() { | ||||
|   | ||||
| @@ -24,6 +24,7 @@ | ||||
| <layout-frame | ||||
|     :item="item" | ||||
|     :grid-size="gridSize" | ||||
|     :is-editing="isEditing" | ||||
|     @move="(gridDelta) => $emit('move', gridDelta)" | ||||
|     @endMove="() => $emit('endMove')" | ||||
| > | ||||
| @@ -105,6 +106,10 @@ export default { | ||||
|         index: { | ||||
|             type: Number, | ||||
|             required: true | ||||
|         }, | ||||
|         isEditing: { | ||||
|             type: Boolean, | ||||
|             required: true | ||||
|         } | ||||
|     }, | ||||
|     data() { | ||||
|   | ||||
| @@ -24,6 +24,7 @@ | ||||
| <layout-frame | ||||
|     :item="item" | ||||
|     :grid-size="gridSize" | ||||
|     :is-editing="isEditing" | ||||
|     @move="(gridDelta) => $emit('move', gridDelta)" | ||||
|     @endMove="() => $emit('endMove')" | ||||
| > | ||||
| @@ -75,7 +76,11 @@ export default { | ||||
|             type: Number, | ||||
|             required: true | ||||
|         }, | ||||
|         initSelect: Boolean | ||||
|         initSelect: Boolean, | ||||
|         isEditing: { | ||||
|             type: Boolean, | ||||
|             required: true | ||||
|         } | ||||
|     }, | ||||
|     computed: { | ||||
|         style() { | ||||
|   | ||||
| @@ -45,8 +45,7 @@ | ||||
|         &[s-selected], | ||||
|         &[s-selected-parent] { | ||||
|             // Display grid and allow edit marquee to display in nested layouts when editing | ||||
|             > * > * > .l-layout { | ||||
|                 background: $editUIGridColorBg; | ||||
|             > * > * > .l-layout + .allow-editing { | ||||
|                 box-shadow: inset $editUIGridColorFg 0 0 2px 1px; | ||||
|  | ||||
|                 > [class*='grid-holder'] { | ||||
|   | ||||
| @@ -54,10 +54,11 @@ export default function DisplayLayoutPlugin(options) { | ||||
|                             }, | ||||
|                             data() { | ||||
|                                 return { | ||||
|                                     domainObject: domainObject | ||||
|                                     domainObject: domainObject, | ||||
|                                     isEditing: openmct.editor.isEditing() | ||||
|                                 }; | ||||
|                             }, | ||||
|                             template: '<layout ref="displayLayout" :domain-object="domainObject"></layout>' | ||||
|                             template: '<layout ref="displayLayout" :domain-object="domainObject" :is-editing="isEditing"></layout>' | ||||
|                         }); | ||||
|                     }, | ||||
|                     getSelectionContext() { | ||||
| @@ -73,6 +74,9 @@ export default function DisplayLayoutPlugin(options) { | ||||
|                             mergeMultipleOverlayPlots: component && component.$refs.displayLayout.mergeMultipleOverlayPlots | ||||
|                         }; | ||||
|                     }, | ||||
|                     onEditModeChange: function (isEditing) { | ||||
|                         component.isEditing = isEditing; | ||||
|                     }, | ||||
|                     destroy() { | ||||
|                         component.$destroy(); | ||||
|                     } | ||||
|   | ||||
| @@ -53,6 +53,7 @@ | ||||
|                 :index="i" | ||||
|                 :container-index="index" | ||||
|                 :is-editing="isEditing" | ||||
|                 :object-path="objectPath" | ||||
|             /> | ||||
|  | ||||
|             <drop-hint | ||||
| @@ -105,6 +106,14 @@ export default { | ||||
|         isEditing: { | ||||
|             type: Boolean, | ||||
|             default: false | ||||
|         }, | ||||
|         locked: { | ||||
|             type: Boolean, | ||||
|             default: false | ||||
|         }, | ||||
|         objectPath: { | ||||
|             type: Array, | ||||
|             required: true | ||||
|         } | ||||
|     }, | ||||
|     computed: { | ||||
| @@ -130,6 +139,10 @@ export default { | ||||
|     }, | ||||
|     methods: { | ||||
|         allowDrop(event, index) { | ||||
|             if (this.locked) { | ||||
|                 return false; | ||||
|             } | ||||
|  | ||||
|             if (event.dataTransfer.types.includes('openmct/domain-object-path')) { | ||||
|                 return true; | ||||
|             } | ||||
|   | ||||
| @@ -57,6 +57,8 @@ | ||||
|                 :container="container" | ||||
|                 :rows-layout="rowsLayout" | ||||
|                 :is-editing="isEditing" | ||||
|                 :locked="domainObject.locked" | ||||
|                 :object-path="objectPath" | ||||
|                 @move-frame="moveFrame" | ||||
|                 @new-frame="setFrameLocation" | ||||
|                 @persist="persist" | ||||
| @@ -136,7 +138,7 @@ function sizeToFill(items) { | ||||
| } | ||||
|  | ||||
| export default { | ||||
|     inject: ['openmct', 'layoutObject'], | ||||
|     inject: ['openmct', 'objectPath', 'layoutObject'], | ||||
|     components: { | ||||
|         ContainerComponent, | ||||
|         ResizeHandle, | ||||
|   | ||||
| @@ -37,7 +37,7 @@ | ||||
|             v-if="domainObject" | ||||
|             ref="objectFrame" | ||||
|             :domain-object="domainObject" | ||||
|             :object-path="objectPath" | ||||
|             :object-path="currentObjectPath" | ||||
|             :has-frame="hasFrame" | ||||
|             :show-edit-view="false" | ||||
|         /> | ||||
| @@ -77,12 +77,16 @@ export default { | ||||
|         isEditing: { | ||||
|             type: Boolean, | ||||
|             default: false | ||||
|         }, | ||||
|         objectPath: { | ||||
|             type: Array, | ||||
|             required: true | ||||
|         } | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             domainObject: undefined, | ||||
|             objectPath: undefined | ||||
|             currentObjectPath: undefined | ||||
|         } | ||||
|     }, | ||||
|     computed: { | ||||
| @@ -107,7 +111,7 @@ export default { | ||||
|     methods: { | ||||
|         setDomainObject(object) { | ||||
|             this.domainObject = object; | ||||
|             this.objectPath = [object]; | ||||
|             this.currentObjectPath = [object].concat(this.objectPath); | ||||
|             this.setSelection(); | ||||
|         }, | ||||
|         setSelection() { | ||||
|   | ||||
| @@ -38,7 +38,7 @@ define([ | ||||
|             canEdit: function (domainObject) { | ||||
|                 return domainObject.type === 'flexible-layout'; | ||||
|             }, | ||||
|             view: function (domainObject) { | ||||
|             view: function (domainObject, objectPath) { | ||||
|                 let component; | ||||
|  | ||||
|                 return { | ||||
| @@ -46,6 +46,7 @@ define([ | ||||
|                         component =  new Vue({ | ||||
|                             provide: { | ||||
|                                 openmct, | ||||
|                                 objectPath, | ||||
|                                 layoutObject: domainObject | ||||
|                             }, | ||||
|                             el: element, | ||||
|   | ||||
| @@ -70,6 +70,10 @@ function ToolbarProvider(openmct) { | ||||
|             } | ||||
|  | ||||
|             if (primary.context.type === 'frame') { | ||||
|                 if (secondary.context.item.locked) { | ||||
|                     return []; | ||||
|                 } | ||||
|  | ||||
|                 let frameId = primary.context.frameId; | ||||
|                 let layoutObject = tertiary.context.item; | ||||
|                 let containers = layoutObject | ||||
| @@ -143,6 +147,9 @@ function ToolbarProvider(openmct) { | ||||
|                 toggleContainer.domainObject = secondary.context.item; | ||||
|  | ||||
|             } else if (primary.context.type === 'container') { | ||||
|                 if (primary.context.item.locked) { | ||||
|                     return []; | ||||
|                 } | ||||
|  | ||||
|                 deleteContainer = { | ||||
|                     control: "button", | ||||
| @@ -187,6 +194,9 @@ function ToolbarProvider(openmct) { | ||||
|                 }; | ||||
|  | ||||
|             } else if (primary.context.type === 'flexible-layout') { | ||||
|                 if (primary.context.item.locked) { | ||||
|                     return []; | ||||
|                 } | ||||
|  | ||||
|                 addContainer = { | ||||
|                     control: "button", | ||||
|   | ||||
| @@ -19,12 +19,12 @@ | ||||
|  this source code distribution or the Licensing information page available | ||||
|  at runtime from the About dialog for additional information. | ||||
| --> | ||||
| <div ng-if="domainObject.getCapability('editor').inEditContext()"> | ||||
| <div ng-if="!domainObject.model.locked && domainObject.getCapability('editor').inEditContext()"> | ||||
|     <mct-representation key="'plot-options-edit'" | ||||
|         mct-object="domainObject"> | ||||
|     </mct-representation> | ||||
| </div> | ||||
| <div ng-if="!domainObject.getCapability('editor').inEditContext()"> | ||||
| <div ng-if="domainObject.model.locked || !domainObject.getCapability('editor').inEditContext()"> | ||||
|     <mct-representation key="'plot-options-browse'" | ||||
|         mct-object="domainObject"> | ||||
|     </mct-representation> | ||||
|   | ||||
| @@ -101,6 +101,12 @@ export default class RemoveAction { | ||||
|     appliesTo(objectPath) { | ||||
|         let parent = objectPath[1]; | ||||
|         let parentType = parent && this.openmct.types.get(parent.type); | ||||
|         let child = objectPath[0]; | ||||
|         let locked = child.locked ? child.locked : parent && parent.locked; | ||||
|  | ||||
|         if (locked) { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         return parentType && | ||||
|             parentType.definition.creatable && | ||||
|   | ||||
| @@ -148,6 +148,7 @@ $glyph-icon-cursor-lock: '\e929'; | ||||
| $glyph-icon-flag: '\e92a'; | ||||
| $glyph-icon-eye-disabled: '\e92b'; | ||||
| $glyph-icon-notebook-page: '\e92c'; | ||||
| $glyph-icon-unlocked: '\e92d'; | ||||
| $glyph-icon-arrows-right-left: '\ea00'; | ||||
| $glyph-icon-arrows-up-down: '\ea01'; | ||||
| $glyph-icon-bullet: '\ea02'; | ||||
| @@ -198,6 +199,9 @@ $glyph-icon-export: '\ea2e'; | ||||
| $glyph-icon-font-size: '\ea2f'; | ||||
| $glyph-icon-clear-data: '\ea30'; | ||||
| $glyph-icon-history: '\ea31'; | ||||
| $glyph-icon-arrow-nav-to-parent: '\ea32'; | ||||
| $glyph-icon-crosshair-in-circle: '\ea33'; | ||||
| $glyph-icon-target: '\ea34'; | ||||
| $glyph-icon-activity: '\eb00'; | ||||
| $glyph-icon-activity-mode: '\eb01'; | ||||
| $glyph-icon-autoflow-tabular: '\eb02'; | ||||
| @@ -240,6 +244,7 @@ $glyph-icon-command: '\eb26'; | ||||
| $glyph-icon-conditional: '\eb27'; | ||||
| $glyph-icon-condition-widget: '\eb28'; | ||||
| $glyph-icon-alphanumeric: '\eb29'; | ||||
| $glyph-icon-image-telemetry: '\eb2a'; | ||||
|  | ||||
| /************************** GLYPHS AS DATA URI */ | ||||
| // Only objects have been converted, for use in Create menu and folder views | ||||
|   | ||||
| @@ -84,6 +84,7 @@ | ||||
| .icon-flag {  @include glyphBefore($glyph-icon-flag); } | ||||
| .icon-eye-disabled {  @include glyphBefore($glyph-icon-eye-disabled); } | ||||
| .icon-notebook-page {  @include glyphBefore($glyph-icon-notebook-page); } | ||||
| .icon-unlocked {  @include glyphBefore($glyph-icon-unlocked); } | ||||
| .icon-arrows-right-left {  @include glyphBefore($glyph-icon-arrows-right-left); } | ||||
| .icon-arrows-up-down {  @include glyphBefore($glyph-icon-arrows-up-down); } | ||||
| .icon-bullet {  @include glyphBefore($glyph-icon-bullet); } | ||||
| @@ -134,6 +135,9 @@ | ||||
| .icon-font-size {  @include glyphBefore($glyph-icon-font-size); } | ||||
| .icon-clear-data {  @include glyphBefore($glyph-icon-clear-data); } | ||||
| .icon-history {  @include glyphBefore($glyph-icon-history); } | ||||
| .icon-arrow-nav-to-parent {  @include glyphBefore($glyph-icon-arrow-nav-to-parent); } | ||||
| .icon-crosshair-in-circle {  @include glyphBefore($glyph-icon-crosshair-in-circle); } | ||||
| .icon-target {  @include glyphBefore($glyph-icon-target); } | ||||
| .icon-activity {  @include glyphBefore($glyph-icon-activity); } | ||||
| .icon-activity-mode {  @include glyphBefore($glyph-icon-activity-mode); } | ||||
| .icon-autoflow-tabular {  @include glyphBefore($glyph-icon-autoflow-tabular); } | ||||
| @@ -176,6 +180,7 @@ | ||||
| .icon-conditional {  @include glyphBefore($glyph-icon-conditional); } | ||||
| .icon-condition-widget {  @include glyphBefore($glyph-icon-condition-widget); } | ||||
| .icon-alphanumeric {  @include glyphBefore($glyph-icon-alphanumeric); } | ||||
| .icon-image-telemetry {  @include glyphBefore($glyph-icon-image-telemetry); } | ||||
|  | ||||
| /************************** 12 PX CLASSES */ | ||||
| // TODO: sync with 16px redo as of 10/25/18 | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -30,7 +30,7 @@ | ||||
| <glyph unicode="" glyph-name="icon-hourglass" d="M1024 832h-1024c0-282.8 229.2-512 512-512s512 229.2 512 512zM512 448c-102.6 0-199 40-271.6 112.4-41.2 41.2-72 90.2-90.8 143.6h724.6c-18.8-53.4-49.6-102.4-90.8-143.6-72.4-72.4-168.8-112.4-271.4-112.4zM512 320c-282.8 0-512-229.2-512-512h1024c0 282.8-229.2 512-512 512z" /> | ||||
| <glyph unicode="" glyph-name="icon-info" d="M512 832c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512zM512 704c70.6 0 128-57.4 128-128s-57.4-128-128-128c-70.6 0-128 57.4-128 128s57.4 128 128 128zM704 0h-384v128h64v256h256v-256h64v-128z" /> | ||||
| <glyph unicode="" glyph-name="icon-link" d="M1024 320l-512 512v-307.2l-512-204.8v-256h512v-256z" /> | ||||
| <glyph unicode="" glyph-name="icon-lock" d="M832 448h-32v96c0 158.8-129.2 288-288 288s-288-129.2-288-288v-96h-32c-70.4 0-128-57.6-128-128v-384c0-70.4 57.6-128 128-128h640c70.4 0 128 57.6 128 128v384c0 70.4-57.6 128-128 128zM416 544c0 53 43 96 96 96s96-43 96-96v-96h-192v96z" /> | ||||
| <glyph unicode="" glyph-name="icon-lock" horiz-adv-x="768" d="M702 448h-62v128c0 141.385-114.615 256-256 256s-256-114.615-256-256v0-128h-64c-35.301-0.113-63.887-28.699-64-63.989v-512.011c0.113-35.301 28.699-63.887 63.989-64h638.011c35.301 0.113 63.887 28.699 64 63.989v512.011c-0.113 35.301-28.699 63.887-63.989 64h-0.011zM256 448v128c0 70.692 57.308 128 128 128s128-57.308 128-128v0-128z" /> | ||||
| <glyph unicode="" glyph-name="icon-minus" d="M960 192c35.2 0 64 28.8 64 64v128c0 35.2-28.8 64-64 64h-896c-35.2 0-64-28.8-64-64v-128c0-35.2 28.8-64 64-64h896z" /> | ||||
| <glyph unicode="" glyph-name="icon-people" d="M704 512h64c70.4 0 128 57.6 128 128v64c0 70.4-57.6 128-128 128h-64c-70.4 0-128-57.6-128-128v-64c0-70.4 57.6-128 128-128zM256 512h64c70.4 0 128 57.6 128 128v64c0 70.4-57.6 128-128 128h-64c-70.4 0-128-57.6-128-128v-64c0-70.4 57.6-128 128-128zM832 448h-192c-34.908 0-67.716-9.448-96-25.904 57.278-33.324 96-95.404 96-166.096v-448h384v448c0 105.6-86.4 192-192 192zM384 448h-192c-105.6 0-192-86.4-192-192v-448h576v448c0 105.6-86.4 192-192 192z" /> | ||||
| <glyph unicode="" glyph-name="icon-person" d="M768 576c0-105.6-86.4-192-192-192h-128c-105.6 0-192 86.4-192 192v64c0 105.6 86.4 192 192 192h128c105.6 0 192-86.4 192-192v-64zM64-192v192c0 140.8 115.2 256 256 256h384c140.8 0 256-115.2 256-256v-192z" /> | ||||
| @@ -52,6 +52,7 @@ | ||||
| <glyph unicode="" glyph-name="icon-flag" d="M192 192h832l-192 320 192 320h-896c-70.606-0.215-127.785-57.394-128-127.979v-896.021h192z" /> | ||||
| <glyph unicode="" glyph-name="icon-eye-disabled" d="M209.46 223.32q-7.46 9.86-14.26 20.28c-14.737 21.984-27.741 47.184-37.759 73.847l-0.841 2.553c11.078 29.259 24.068 54.443 39.51 77.869l-0.91-1.469c23.221 34.963 50.705 64.8 82.207 89.793l0.793 0.607c57.663 45.719 130.179 75.053 209.311 79.947l1.069 0.053 114.48 140.88c-27.366 5.017-58.869 7.898-91.041 7.92h-0.019c-245.8 0-452.2-168-510.8-395.6 21.856-82.93 60.906-154.847 113.325-214.773l-0.525 0.613zM814.76 416.92q7.52-10 14.44-20.52c14.737-21.984 27.741-47.184 37.759-73.847l0.841-2.553c-10.859-29.216-23.863-54.416-39.447-77.748l0.847 1.348c-23.221-34.963-50.705-64.8-82.207-89.793l-0.793-0.607c-57.762-45.834-130.437-75.216-209.743-80.049l-1.057-0.051-114.46-140.86c27.346-4.988 58.817-7.84 90.955-7.84 0.037 0 0.074 0 0.111 0h-0.005c245.8 0 452.2 168 510.8 395.6-21.856 82.93-60.906 154.847-113.325 214.773l0.525-0.613zM832 832l-832-1024h192l832 1024h-192z" /> | ||||
| <glyph unicode="" glyph-name="icon-notebook-page" d="M830 770h-830l-4-702c0-106.6 87.4-194 194-194h640c106.6 0 194 87.4 194 194v508c0 106.8-87.4 194-194 194zM832 386l-384-384-192 192v256l192-192 384 384v-256z" /> | ||||
| <glyph unicode="" glyph-name="icon-unlocked" d="M768 832c-141.339-0.114-255.886-114.661-256-255.989v-128.011h-448c-35.301-0.113-63.887-28.699-64-63.989v-512.011c0.113-35.301 28.699-63.887 63.989-64h638.011c35.301 0.113 63.887 28.699 64 63.989v512.011c-0.113 35.301-28.699 63.887-63.989 64h-62.011v128c0 70.692 57.308 128 128 128s128-57.308 128-128v0-128h128v128c-0.114 141.339-114.661 255.886-255.989 256h-0.011z" /> | ||||
| <glyph unicode="" glyph-name="icon-arrows-right-left" d="M1024 320l-448-512v1024zM448 832l-448-512 448-512z" /> | ||||
| <glyph unicode="" glyph-name="icon-arrows-up-down" d="M512 832l512-448h-1024zM0 256l512-448 512 448z" /> | ||||
| <glyph unicode="" glyph-name="icon-bullet" d="M832 80c0-44-36-80-80-80h-480c-44 0-80 36-80 80v480c0 44 36 80 80 80h480c44 0 80-36 80-80v-480z" /> | ||||
| @@ -102,6 +103,9 @@ | ||||
| <glyph unicode="" glyph-name="icon-font-size" d="M842.841 451.952h-120.956l-52.382-139.676 52.918-141.12 59.942 159.84 62.361-166.314h-119.884l34.019-90.717h119.884l39.695-105.836h105.836l-181.434 483.823zM263.903 671.871l-263.903-703.742h153.944l57.729 153.944h280.397l57.729-153.944h153.944l-263.903 703.742zM261.154 254.024l90.717 241.911 90.717-241.911z" /> | ||||
| <glyph unicode="" glyph-name="icon-clear-data" d="M632 520l-120-120-120 120-80-80 120-120-120-120 80-80 120 120 120-120 80 80-120 120 120 120-80 80zM512 832c-282.76 0-512-86-512-192v-640c0-106 229.24-192 512-192s512 86 512 192v640c0 106-229.24 192-512 192zM512 0c-176.731 0-320 143.269-320 320s143.269 320 320 320c176.731 0 320-143.269 320-320v0c0-176.731-143.269-320-320-320v0z" /> | ||||
| <glyph unicode="" glyph-name="icon-history" d="M576 768c-247.4 0-448-200.6-448-448h-128l192-192 192 192h-128c0 85.4 33.2 165.8 93.8 226.2 60.4 60.6 140.8 93.8 226.2 93.8s165.8-33.2 226.2-93.8c60.6-60.4 93.8-140.8 93.8-226.2s-33.2-165.8-93.8-226.2c-60.4-60.6-140.8-93.8-226.2-93.8s-165.8 33.2-226.2 93.8l-90.6-90.6c81-81 193-131.2 316.8-131.2 247.4 0 448 200.6 448 448s-200.6 448-448 448zM576 560c-26.6 0-48-21.4-48-48v-211.8l142-142c9.4-9.4 21.6-14 34-14s24.6 4.6 34 14c18.8 18.8 18.8 49.2 0 67.8l-114 114v172c0 26.6-21.4 48-48 48z" /> | ||||
| <glyph unicode="" glyph-name="icon-arrow-up-to-parent" horiz-adv-x="1056" d="M643.427 6.739c-81.955 0.697-148.179 67.065-148.642 149.010v395.872l296.871-247.393v197.914l-395.828 329.857-395.828-328.62v-197.502l296.871 246.156v-396.241c0-190.905 155.239-346.556 346.144-346.968l412.321-0.825 0.412 197.914z" /> | ||||
| <glyph unicode="" glyph-name="icon-crosshair-in-circle" d="M512 832c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512zM783.6 48.4c-54.634-54.8-125.77-93.12-205.322-106.874l-2.278-0.326v250.8h-128v-250.8c-161.302 28.062-286.738 153.497-314.468 312.5l-0.332 2.3h250.8v128h-250.8c28.062 161.302 153.497 286.738 312.5 314.468l2.3 0.332v-250.8h128v250.8c161.302-28.062 286.738-153.497 314.468-312.5l0.332-2.3h-250.8v-128h250.8c-14.080-81.83-52.4-152.966-107.191-207.591l-0.009-0.009z" /> | ||||
| <glyph unicode="" glyph-name="icon-target" d="M512 448c70.692 0 128-57.308 128-128s-57.308-128-128-128c-70.692 0-128 57.308-128 128v0c0.114 70.647 57.353 127.886 127.989 128h0.011zM512 576c-141.385 0-256-114.615-256-256s114.615-256 256-256c141.385 0 256 114.615 256 256v0c-0.114 141.339-114.661 255.886-255.989 256h-0.011zM512 704c211.87-0.128 383.575-171.912 383.575-383.8 0-211.967-171.833-383.8-383.8-383.8s-383.8 171.833-383.8 383.8c0 105.99 42.963 201.945 112.425 271.4v0c69.21 69.437 164.944 112.401 270.713 112.401 0.312 0 0.624 0 0.936-0.001h-0.048zM512 832c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512z" /> | ||||
| <glyph unicode="" glyph-name="icon-activity" d="M576 768h-256l320-320h-290.256c-44.264 76.516-126.99 128-221.744 128h-128v-512h128c94.754 0 177.48 51.484 221.744 128h290.256l-320-320h256l448 448-448 448z" /> | ||||
| <glyph unicode="" glyph-name="icon-activity-mode" d="M512 832c-214.8 0-398.8-132.4-474.8-320h90.8c56.8 0 108-24.8 143-64h241l-192 192h256l320-320-320-320h-256l192 192h-241c-35-39.2-86.2-64-143-64h-90.8c76-187.6 259.8-320 474.8-320 282.8 0 512 229.2 512 512s-229.2 512-512 512z" /> | ||||
| <glyph unicode="" glyph-name="icon-autoflow-tabular" d="M192 832c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h64v1024h-64zM384 832h256v-1024h-256v1024zM832 832h-64v-704h256v512c0 105.6-86.4 192-192 192z" /> | ||||
| @@ -144,4 +148,5 @@ | ||||
| <glyph unicode="" glyph-name="icon-conditional" d="M512 832c-282.76 0-512-229.24-512-512s229.24-512 512-512 512 229.24 512 512-229.24 512-512 512zM512 64l-384 256 384 256 384-256z" /> | ||||
| <glyph unicode="" glyph-name="icon-condition-widget" d="M832 832h-640c-105.6 0-192-86.4-192-192v-640c0-105.6 86.4-192 192-192h640c105.6 0 192 86.4 192 192v640c0 105.6-86.4 192-192 192zM512 64l-384 256 384 256 384-256z" /> | ||||
| <glyph unicode="" glyph-name="icon-alphanumeric" d="M535.6 301.4c-8.4-1.6-17.2-3-26.2-4s-18.2-2.4-27.2-4c-10.196-1.861-18.808-4.010-27.21-6.633l1.61 0.433c-8.609-2.674-16.105-6.348-22.89-10.987l0.29 0.187c-6.693-4.517-12.283-10.107-16.663-16.585l-0.137-0.215c-4.6-6.8-7.4-15.6-8.8-26s-0.4-18.4 2.4-25.2c2.746-6.688 7.224-12.195 12.881-16.122l0.119-0.078c5.967-4.053 13.057-6.94 20.704-8.161l0.296-0.039c7.592-1.527 16.319-2.4 25.25-2.4 0.123 0 0.246 0 0.369 0h-0.019c22.2 0 39.6 3.6 52.6 11s23.2 16.2 30.2 26.4c6.273 8.873 11.271 19.191 14.426 30.285l0.174 0.715c1.853 6.809 3.601 15.41 4.855 24.169l0.145 1.231 5.2 41.6c-5.4-4.217-11.723-7.564-18.583-9.689l-0.417-0.111c-6.489-2.241-14.362-4.255-22.444-5.662l-0.956-0.138zM1024 448v192h-152l24 192h-192l-24-192h-256l24 192h-192l-24-192h-232v-192h208l-32-256h-176v-192h152l-24-192h192l24 192h256l-24-192h192l24 192h232v192h-208l32 256zM702.8 420.2l-26.4-211.8c-2.231-15.809-3.537-34.122-3.6-52.727v-0.073c0-16.8 2.2-29.4 6.4-37.8h-113.4c-1.342 5.556-2.338 12.122-2.781 18.84l-0.019 0.36c-0.261 3.524-0.409 7.634-0.409 11.778 0 2.962 0.076 5.907 0.226 8.832l-0.017-0.41c-18.663-17.401-41.395-30.694-66.597-38.289l-1.203-0.311c-22.627-6.956-48.639-10.974-75.586-11h-0.014c-0.764-0.011-1.666-0.018-2.569-0.018-18.098 0-35.598 2.563-52.156 7.345l1.325-0.328c-15.991 4.512-29.851 12.090-41.545 22.122l0.145-0.122c-11.233 9.982-19.792 22.733-24.624 37.192l-0.176 0.608c-5.2 15.2-6.4 33.4-3.8 54.4s9.4 42.2 19.4 57.2c9.524 14.399 21.535 26.346 35.532 35.512l0.468 0.288c13.387 8.662 28.922 15.533 45.512 19.765l1.088 0.235c13.436 3.792 30.801 7.554 48.47 10.41l2.93 0.39c17 2.6 33.8 4.6 50.4 6.2 16.628 1.527 31.69 4.070 46.349 7.643l-2.149-0.443c13 3 23.6 7.6 31.6 13.6s12.6 15 13.6 26.4 0.8 21.8-2.4 28.8c-2.849 6.902-7.542 12.56-13.468 16.517l-0.132 0.083c-6.217 4.011-13.604 6.78-21.543 7.774l-0.257 0.026c-7.897 1.277-17 2.007-26.274 2.007-0.537 0-1.073-0.002-1.609-0.007l0.082 0.001c-22 0-40-4.6-53.8-14.2s-23-25.2-28-47.2h-111.8c4.8 26.2 14.2 48 27.8 65.4 13.475 16.978 29.89 30.968 48.574 41.377l0.826 0.423c18.192 10.038 39.297 17.806 61.619 22.175l1.381 0.225c20.488 4.162 44.053 6.563 68.171 6.6h0.029c21.8-0.005 43.239-1.532 64.222-4.479l-2.422 0.279c20.641-2.809 39.324-8.783 56.401-17.461l-1.001 0.461c15.909-8.108 28.858-20.031 37.967-34.601l0.233-0.399c9-15 12.2-34.8 9-59.6z" /> | ||||
| <glyph unicode="" glyph-name="icon-image-telemetry" d="M512 832c-282.8 0-512-229.2-512-512s229.2-512 512-512 512 229.2 512 512-229.2 512-512 512zM783.6 48.4c-69.581-69.675-165.757-112.776-272-112.776-212.298 0-384.4 172.102-384.4 384.4s172.102 384.4 384.4 384.4c212.298 0 384.4-172.102 384.4-384.4 0-0.008 0-0.017 0-0.025v0.001c0.001-0.264 0.001-0.575 0.001-0.887 0-105.769-42.964-201.503-112.391-270.703l-0.010-0.010zM704 448l-128-128-192 192-192-192c0-176.731 143.269-320 320-320s320 143.269 320 320v0z" /> | ||||
| </font></defs></svg> | ||||
| Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 57 KiB | 
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -90,7 +90,15 @@ export default { | ||||
|             this.openmct.objectViews.off('clearData', this.clearData); | ||||
|         }, | ||||
|         invokeEditModeHandler(editMode) { | ||||
|             this.currentView.onEditModeChange(editMode); | ||||
|             let edit; | ||||
|  | ||||
|             if (this.currentObject.locked) { | ||||
|                 edit = false; | ||||
|             } else { | ||||
|                 edit = editMode; | ||||
|             } | ||||
|  | ||||
|             this.currentView.onEditModeChange(edit); | ||||
|         }, | ||||
|         toggleEditView(editMode) { | ||||
|             this.clear(); | ||||
| @@ -227,7 +235,11 @@ export default { | ||||
|         }, | ||||
|         onDragOver(event) { | ||||
|             if (this.hasComposableDomainObject(event)) { | ||||
|                 event.preventDefault(); | ||||
|                 if (this.isEditingAllowed()) { | ||||
|                     event.preventDefault(); | ||||
|                 } else { | ||||
|                     event.stopPropagation(); | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         addObjectToParent(event) { | ||||
| @@ -283,6 +295,13 @@ export default { | ||||
|                     this.currentView.onClearData(); | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         isEditingAllowed() { | ||||
|             let browseObject = this.openmct.layout.$refs.browseObject.currentObject, | ||||
|                 objectPath= this.currentObjectPath || this.objectPath, | ||||
|                 parentObject = objectPath[1]; | ||||
|  | ||||
|             return [browseObject, parentObject, this.currentObject].every(object => !object.locked); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -58,7 +58,6 @@ | ||||
|  | ||||
|     &__label { | ||||
|         margin-left: $interiorMarginSm; | ||||
|         margin-right: $interiorMargin; | ||||
|         white-space: nowrap; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -54,7 +54,6 @@ export default { | ||||
|     inject: ['openmct'], | ||||
|     components: { | ||||
|         StylesInspectorView, | ||||
|         // StylesInspectorView, | ||||
|         multipane, | ||||
|         pane, | ||||
|         Elements, | ||||
|   | ||||
| @@ -41,7 +41,17 @@ | ||||
|         /> | ||||
|         <div class="l-browse-bar__actions"> | ||||
|             <button | ||||
|                 v-if="isViewEditable & !isEditing" | ||||
|                 v-if="isViewEditable && !isEditing" | ||||
|                 :title="lockedOrUnlocked" | ||||
|                 class="c-button" | ||||
|                 :class="{ | ||||
|                     'icon-lock': domainObject.locked, | ||||
|                     'icon-unlocked': !domainObject.locked | ||||
|                 }" | ||||
|                 @click="toggleLock(!domainObject.locked)" | ||||
|             ></button> | ||||
|             <button | ||||
|                 v-if="isViewEditable && !isEditing && !domainObject.locked" | ||||
|                 class="l-browse-bar__actions__edit c-button c-button--major icon-pencil" | ||||
|                 title="Edit" | ||||
|                 @click="edit()" | ||||
| @@ -161,6 +171,13 @@ export default { | ||||
|                 return currentViewProvider.canEdit && currentViewProvider.canEdit(this.domainObject); | ||||
|             } | ||||
|             return false; | ||||
|         }, | ||||
|         lockedOrUnlocked() { | ||||
|             if (this.domainObject.locked) { | ||||
|                 return 'Locked for editing - click to unlock.'; | ||||
|             } else { | ||||
|                 return 'Unlocked for editing - click to lock.'; | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|     watch: { | ||||
| @@ -271,6 +288,9 @@ export default { | ||||
|         }, | ||||
|         goToParent() { | ||||
|             window.location.hash = this.parentUrl; | ||||
|         }, | ||||
|         toggleLock(flag) { | ||||
|             this.openmct.objects.mutate(this.domainObject, 'locked', flag); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -314,7 +314,7 @@ | ||||
|     &__actions, | ||||
|     &__end { | ||||
|         > * + * { | ||||
|             margin-left: $interiorMarginSm; | ||||
|             margin-left: $interiorMargin; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user