Compare commits
	
		
			4 Commits
		
	
	
		
			plan-notes
			...
			mmgis-cust
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					2def6dd634 | ||
| 
						 | 
					16fe1b55c6 | ||
| 
						 | 
					8037c372b0 | ||
| 
						 | 
					216a349282 | 
@@ -2,7 +2,9 @@
 | 
			
		||||
  "name": "openmct",
 | 
			
		||||
  "version": "1.7.4",
 | 
			
		||||
  "description": "The Open MCT core platform",
 | 
			
		||||
  "dependencies": {},
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "openmct-mmgis": "git+https://trunk.arc.nasa.gov/bitbucket/scm/vipergds/openmct-mmgis.git#api-mmgis-inspector"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "angular": ">=1.8.0",
 | 
			
		||||
    "angular-route": "1.4.14",
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,8 @@ define([
 | 
			
		||||
    './interceptors/plugin',
 | 
			
		||||
    './performanceIndicator/plugin',
 | 
			
		||||
    './CouchDBSearchFolder/plugin',
 | 
			
		||||
    './timeline/plugin'
 | 
			
		||||
    './timeline/plugin',
 | 
			
		||||
    '/node_modules/openmct-mmgis/dist/openmct-mmgis'
 | 
			
		||||
], function (
 | 
			
		||||
    _,
 | 
			
		||||
    UTCTimeSystem,
 | 
			
		||||
@@ -111,7 +112,8 @@ define([
 | 
			
		||||
    ObjectInterceptors,
 | 
			
		||||
    PerformanceIndicator,
 | 
			
		||||
    CouchDBSearchFolder,
 | 
			
		||||
    Timeline
 | 
			
		||||
    Timeline,
 | 
			
		||||
    Mmgis
 | 
			
		||||
) {
 | 
			
		||||
    const bundleMap = {
 | 
			
		||||
        LocalStorage: 'platform/persistence/local',
 | 
			
		||||
@@ -212,6 +214,7 @@ define([
 | 
			
		||||
    plugins.PerformanceIndicator = PerformanceIndicator.default;
 | 
			
		||||
    plugins.CouchDBSearchFolder = CouchDBSearchFolder.default;
 | 
			
		||||
    plugins.Timeline = Timeline.default;
 | 
			
		||||
    plugins.Mmgis = Mmgis.default;
 | 
			
		||||
 | 
			
		||||
    return plugins;
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								src/ui/inspector/DetailText.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/ui/inspector/DetailText.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<li class="c-inspect-properties__row">
 | 
			
		||||
    <div class="c-inspect-properties__label">
 | 
			
		||||
        {{ detail.name }}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="c-inspect-properties__value">
 | 
			
		||||
        {{ detail.value }}
 | 
			
		||||
    </div>
 | 
			
		||||
</li>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
    props: {
 | 
			
		||||
        detail: {
 | 
			
		||||
            type: Object,
 | 
			
		||||
            required: true
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
							
								
								
									
										50
									
								
								src/ui/inspector/DetailTime.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/ui/inspector/DetailTime.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<li class="c-inspect-properties__row">
 | 
			
		||||
    <div class="c-inspect-properties__label">
 | 
			
		||||
        {{ detail.name }}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="c-inspect-properties__value">
 | 
			
		||||
        {{ formattedTime }}
 | 
			
		||||
    </div>
 | 
			
		||||
</li>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import Moment from 'moment';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    props: {
 | 
			
		||||
        detail: {
 | 
			
		||||
            type: Object,
 | 
			
		||||
            required: true
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
        formattedTime() {
 | 
			
		||||
            return Moment.utc(this.detail.value).format('YYYY-MM-DD[\n]HH:mm:ss') + ' UTC';
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
@@ -1,3 +1,25 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<li
 | 
			
		||||
    draggable="true"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,25 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<div class="c-elements-pool">
 | 
			
		||||
    <Search
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,25 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<div class="c-inspector">
 | 
			
		||||
    <object-name />
 | 
			
		||||
@@ -19,7 +41,9 @@
 | 
			
		||||
                   type="vertical"
 | 
			
		||||
        >
 | 
			
		||||
            <pane class="c-inspector__properties">
 | 
			
		||||
                <properties />
 | 
			
		||||
                <Properties
 | 
			
		||||
                    v-if="!activity"
 | 
			
		||||
                />
 | 
			
		||||
                <location />
 | 
			
		||||
                <inspector-views />
 | 
			
		||||
            </pane>
 | 
			
		||||
@@ -98,7 +122,8 @@ export default {
 | 
			
		||||
                key: '__styles',
 | 
			
		||||
                name: 'Styles'
 | 
			
		||||
            }],
 | 
			
		||||
            currentTabbedView: {}
 | 
			
		||||
            currentTabbedView: {},
 | 
			
		||||
            activity: undefined
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
    mounted() {
 | 
			
		||||
@@ -111,9 +136,12 @@ export default {
 | 
			
		||||
    methods: {
 | 
			
		||||
        updateInspectorViews(selection) {
 | 
			
		||||
            this.refreshComposition(selection);
 | 
			
		||||
 | 
			
		||||
            if (this.openmct.types.get('conditionSet')) {
 | 
			
		||||
                this.refreshTabs(selection);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            this.setActivity(selection);
 | 
			
		||||
        },
 | 
			
		||||
        refreshComposition(selection) {
 | 
			
		||||
            if (selection.length > 0 && selection[0].length > 0) {
 | 
			
		||||
@@ -150,6 +178,12 @@ export default {
 | 
			
		||||
        },
 | 
			
		||||
        isCurrent(view) {
 | 
			
		||||
            return _.isEqual(this.currentTabbedView, view);
 | 
			
		||||
        },
 | 
			
		||||
        setActivity(selection) {
 | 
			
		||||
            this.activity = selection
 | 
			
		||||
                && selection.length
 | 
			
		||||
                && selection[0].length
 | 
			
		||||
                && selection[0][0].activity;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,25 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
export const mockTelemetryTableSelection = [
 | 
			
		||||
    [{
 | 
			
		||||
        context: {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,29 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<div></div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
    inject: ['openmct'],
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,25 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<div class="c-inspect-properties c-inspect-properties--location">
 | 
			
		||||
    <div
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,25 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<div class="c-inspector__header">
 | 
			
		||||
    <div v-if="!multiSelect"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,105 +1,149 @@
 | 
			
		||||
/*****************************************************************************
 | 
			
		||||
 * Open MCT, Copyright (c) 2014-2021, United States Government
 | 
			
		||||
 * as represented by the Administrator of the National Aeronautics and Space
 | 
			
		||||
 * Administration. All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT is licensed under the Apache License, Version 2.0 (the
 | 
			
		||||
 * "License"); you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0.
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
			
		||||
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
			
		||||
 * License for the specific language governing permissions and limitations
 | 
			
		||||
 * under the License.
 | 
			
		||||
 *
 | 
			
		||||
 * Open MCT includes source code licensed under additional open source
 | 
			
		||||
 * licenses. See the Open Source Licenses file (LICENSES.md) included with
 | 
			
		||||
 * this source code distribution or the Licensing information page available
 | 
			
		||||
 * at runtime from the About dialog for additional information.
 | 
			
		||||
 *****************************************************************************/
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<div v-if="!activity"
 | 
			
		||||
     class="c-inspector__properties c-inspect-properties"
 | 
			
		||||
>
 | 
			
		||||
<div class="c-inspector__properties c-inspect-properties">
 | 
			
		||||
    <div class="c-inspect-properties__header">
 | 
			
		||||
        Details
 | 
			
		||||
    </div>
 | 
			
		||||
    <ul
 | 
			
		||||
        v-if="!multiSelect && !singleSelectNonObject"
 | 
			
		||||
        v-if="hasDetails"
 | 
			
		||||
        class="c-inspect-properties__section"
 | 
			
		||||
    >
 | 
			
		||||
        <li class="c-inspect-properties__row">
 | 
			
		||||
            <div class="c-inspect-properties__label">
 | 
			
		||||
                Title
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="c-inspect-properties__value">
 | 
			
		||||
                {{ item.name }}
 | 
			
		||||
            </div>
 | 
			
		||||
        </li>
 | 
			
		||||
        <li class="c-inspect-properties__row">
 | 
			
		||||
            <div class="c-inspect-properties__label">
 | 
			
		||||
                Type
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="c-inspect-properties__value">
 | 
			
		||||
                {{ typeName }}
 | 
			
		||||
            </div>
 | 
			
		||||
        </li>
 | 
			
		||||
        <li
 | 
			
		||||
            v-if="item.created"
 | 
			
		||||
            class="c-inspect-properties__row"
 | 
			
		||||
        >
 | 
			
		||||
            <div class="c-inspect-properties__label">
 | 
			
		||||
                Created
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="c-inspect-properties__value">
 | 
			
		||||
                {{ formatTime(item.created) }}
 | 
			
		||||
            </div>
 | 
			
		||||
        </li>
 | 
			
		||||
        <li
 | 
			
		||||
            v-if="item.modified"
 | 
			
		||||
            class="c-inspect-properties__row"
 | 
			
		||||
        >
 | 
			
		||||
            <div class="c-inspect-properties__label">
 | 
			
		||||
                Modified
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="c-inspect-properties__value">
 | 
			
		||||
                {{ formatTime(item.modified) }}
 | 
			
		||||
            </div>
 | 
			
		||||
        </li>
 | 
			
		||||
        <li
 | 
			
		||||
            v-for="prop in typeProperties"
 | 
			
		||||
            :key="prop.name"
 | 
			
		||||
            class="c-inspect-properties__row"
 | 
			
		||||
        >
 | 
			
		||||
            <div class="c-inspect-properties__label">
 | 
			
		||||
                {{ prop.name }}
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="c-inspect-properties__value">
 | 
			
		||||
                {{ prop.value }}
 | 
			
		||||
            </div>
 | 
			
		||||
        </li>
 | 
			
		||||
        <Component
 | 
			
		||||
            :is="getComponent(detail)"
 | 
			
		||||
            v-for="detail in details"
 | 
			
		||||
            :key="detail.name"
 | 
			
		||||
            :detail="detail"
 | 
			
		||||
        />
 | 
			
		||||
 | 
			
		||||
    </ul>
 | 
			
		||||
    <div
 | 
			
		||||
        v-if="multiSelect"
 | 
			
		||||
        v-else
 | 
			
		||||
        class="c-inspect-properties__row--span-all"
 | 
			
		||||
    >
 | 
			
		||||
        No properties to display for multiple items
 | 
			
		||||
    </div>
 | 
			
		||||
    <div
 | 
			
		||||
        v-if="singleSelectNonObject"
 | 
			
		||||
        class="c-inspect-properties__row--span-all"
 | 
			
		||||
    >
 | 
			
		||||
        No properties to display for this item
 | 
			
		||||
        {{ noDetailsMessage }}
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import Moment from "moment";
 | 
			
		||||
import DetailText from './DetailText.vue';
 | 
			
		||||
import DetailTime from './DetailTime.vue';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    components: {
 | 
			
		||||
        DetailText,
 | 
			
		||||
        DetailTime
 | 
			
		||||
    },
 | 
			
		||||
    inject: ['openmct'],
 | 
			
		||||
    data() {
 | 
			
		||||
        return {
 | 
			
		||||
            domainObject: {},
 | 
			
		||||
            activity: undefined,
 | 
			
		||||
            multiSelect: false
 | 
			
		||||
            selection: undefined
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
        item() {
 | 
			
		||||
            return this.domainObject || {};
 | 
			
		||||
        details() {
 | 
			
		||||
            return this.customDetails ? this.customDetails : this.domainObjectDetails;
 | 
			
		||||
        },
 | 
			
		||||
        type() {
 | 
			
		||||
            return this.openmct.types.get(this.item.type);
 | 
			
		||||
        },
 | 
			
		||||
        typeName() {
 | 
			
		||||
            if (!this.type) {
 | 
			
		||||
                return `Unknown: ${this.item.type}`;
 | 
			
		||||
        customDetails() {
 | 
			
		||||
            if (this.context === undefined) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return this.type.definition.name;
 | 
			
		||||
            return this.context.details;
 | 
			
		||||
        },
 | 
			
		||||
        domainObject() {
 | 
			
		||||
            if (this.context === undefined) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return this.context.item;
 | 
			
		||||
        },
 | 
			
		||||
        type() {
 | 
			
		||||
            if (this.domainObject === undefined) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return this.openmct.types.get(this.domainObject.type);
 | 
			
		||||
        },
 | 
			
		||||
        domainObjectDetails() {
 | 
			
		||||
            if (this.domainObject === undefined) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            const title = this.domainObject.name;
 | 
			
		||||
            const typeName = this.type ? this.type.definition.name : `Unknown: ${this.domainObject.type}`;
 | 
			
		||||
            const timestampLabel = this.domainObject.modified ? 'Modified' : 'Created';
 | 
			
		||||
            const timestamp = this.domainObject.modified ? this.domainObject.modified : this.domainObject.created;
 | 
			
		||||
 | 
			
		||||
            const details = [
 | 
			
		||||
                {
 | 
			
		||||
                    name: 'Title',
 | 
			
		||||
                    value: title
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    name: 'Type',
 | 
			
		||||
                    value: typeName
 | 
			
		||||
                }
 | 
			
		||||
            ];
 | 
			
		||||
 | 
			
		||||
            if (timestamp !== undefined) {
 | 
			
		||||
                details.push(
 | 
			
		||||
                    {
 | 
			
		||||
                        name: timestampLabel,
 | 
			
		||||
                        value: timestamp,
 | 
			
		||||
                        component: 'time'
 | 
			
		||||
                    }
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return [...details, ...this.typeProperties];
 | 
			
		||||
        },
 | 
			
		||||
        context() {
 | 
			
		||||
            if (
 | 
			
		||||
                !this.selection
 | 
			
		||||
                || !this.selection.length
 | 
			
		||||
                || !this.selection[0].length
 | 
			
		||||
            ) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return this.selection[0][0].context;
 | 
			
		||||
        },
 | 
			
		||||
        hasDetails() {
 | 
			
		||||
            return Boolean(
 | 
			
		||||
                this.details
 | 
			
		||||
                && this.details.length
 | 
			
		||||
                && !this.multiSelection
 | 
			
		||||
            );
 | 
			
		||||
        },
 | 
			
		||||
        multiSelection() {
 | 
			
		||||
            return this.selection && this.selection.length > 1;
 | 
			
		||||
        },
 | 
			
		||||
        noDetailsMessage() {
 | 
			
		||||
            return this.multiSelection
 | 
			
		||||
                ? 'No properties to display for multiple items'
 | 
			
		||||
                : 'No properties to display for this item';
 | 
			
		||||
        },
 | 
			
		||||
        typeProperties() {
 | 
			
		||||
            if (!this.type) {
 | 
			
		||||
@@ -129,12 +173,9 @@ export default {
 | 
			
		||||
                        name: field.name,
 | 
			
		||||
                        value: field.path.reduce((object, key) => {
 | 
			
		||||
                            return object[key];
 | 
			
		||||
                        }, this.item)
 | 
			
		||||
                        }, this.domainObject)
 | 
			
		||||
                    };
 | 
			
		||||
                });
 | 
			
		||||
        },
 | 
			
		||||
        singleSelectNonObject() {
 | 
			
		||||
            return !this.item.identifier && !this.multiSelect;
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    mounted() {
 | 
			
		||||
@@ -145,26 +186,13 @@ export default {
 | 
			
		||||
        this.openmct.selection.off('change', this.updateSelection);
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
        updateSelection(selection) {
 | 
			
		||||
            if (selection.length === 0 || selection[0].length === 0) {
 | 
			
		||||
                this.domainObject = {};
 | 
			
		||||
        getComponent(detail) {
 | 
			
		||||
            const component = detail.component ? detail.component : 'text';
 | 
			
		||||
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (selection.length > 1) {
 | 
			
		||||
                this.multiSelect = true;
 | 
			
		||||
                this.domainObject = {};
 | 
			
		||||
 | 
			
		||||
                return;
 | 
			
		||||
            } else {
 | 
			
		||||
                this.multiSelect = false;
 | 
			
		||||
                this.domainObject = selection[0][0].context.item;
 | 
			
		||||
                this.activity = selection[0][0].context.activity;
 | 
			
		||||
            }
 | 
			
		||||
            return `detail-${component}`;
 | 
			
		||||
        },
 | 
			
		||||
        formatTime(unixTime) {
 | 
			
		||||
            return Moment.utc(unixTime).format('YYYY-MM-DD[\n]HH:mm:ss') + ' UTC';
 | 
			
		||||
        updateSelection(selection) {
 | 
			
		||||
            this.selection = selection;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user