Compare commits
	
		
			3 Commits
		
	
	
		
			notebook-c
			...
			custom-col
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					6b6cf2daa8 | ||
| 
						 | 
					6112d47134 | ||
| 
						 | 
					1a07f7604a | 
							
								
								
									
										50
									
								
								src/plugins/LADTable/components/LADHead.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/plugins/LADTable/components/LADHead.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
<template>
 | 
			
		||||
<thead>
 | 
			
		||||
    <tr>
 | 
			
		||||
        <th>Name</th>
 | 
			
		||||
        <th>Timestamp</th>
 | 
			
		||||
        <th v-for="name in columnNames"
 | 
			
		||||
            :key="name"
 | 
			
		||||
        >
 | 
			
		||||
            {{ name }}
 | 
			
		||||
        </th>
 | 
			
		||||
        <th v-if="hasUnits">Unit</th>
 | 
			
		||||
    </tr>
 | 
			
		||||
</thead>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    props: {
 | 
			
		||||
        item: {
 | 
			
		||||
            type: Object,
 | 
			
		||||
            required: true
 | 
			
		||||
        },
 | 
			
		||||
        columnNames: {
 | 
			
		||||
            type: Array,
 | 
			
		||||
            required: true
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    data() {
 | 
			
		||||
        return {};
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
        hasUnits() {
 | 
			
		||||
            // let itemsWithUnits = this.items.filter((item) => {
 | 
			
		||||
            //     let metadata = this.openmct.telemetry.getMetadata(item.domainObject);
 | 
			
		||||
 | 
			
		||||
            //     return this.metadataHasUnits(metadata.valueMetadatas);
 | 
			
		||||
 | 
			
		||||
            // });
 | 
			
		||||
 | 
			
		||||
            // return itemsWithUnits.length !== 0;
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    mounted() {
 | 
			
		||||
        // console.log(this.names);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
@@ -29,9 +29,11 @@
 | 
			
		||||
    <td class="js-first-data">{{ domainObject.name }}</td>
 | 
			
		||||
    <td class="js-second-data">{{ formattedTimestamp }}</td>
 | 
			
		||||
    <td
 | 
			
		||||
        v-for="name in columnNames"
 | 
			
		||||
        :key="name"
 | 
			
		||||
        class="js-third-data"
 | 
			
		||||
        :class="valueClass"
 | 
			
		||||
    >{{ value }}</td>
 | 
			
		||||
    >{{ value[name] }}</td>
 | 
			
		||||
    <td
 | 
			
		||||
        v-if="hasUnits"
 | 
			
		||||
        class="js-units"
 | 
			
		||||
@@ -63,6 +65,10 @@ export default {
 | 
			
		||||
        hasUnits: {
 | 
			
		||||
            type: Boolean,
 | 
			
		||||
            requred: true
 | 
			
		||||
        },
 | 
			
		||||
        columnNames: {
 | 
			
		||||
            type: Array,
 | 
			
		||||
            required: true
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    data() {
 | 
			
		||||
@@ -82,6 +88,7 @@ export default {
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    mounted() {
 | 
			
		||||
        console.log(this.colNames);
 | 
			
		||||
        this.metadata = this.openmct.telemetry.getMetadata(this.domainObject);
 | 
			
		||||
        this.formats = this.openmct.telemetry.getFormatMap(this.metadata);
 | 
			
		||||
        this.keyString = this.openmct.objects.makeKeyString(this.domainObject.identifier);
 | 
			
		||||
@@ -96,12 +103,17 @@ export default {
 | 
			
		||||
 | 
			
		||||
        this.timestampKey = this.openmct.time.timeSystem().key;
 | 
			
		||||
 | 
			
		||||
        // this.valueMetadata = this
 | 
			
		||||
        //     .metadata
 | 
			
		||||
        //     .valuesForHints(['range'])[0];
 | 
			
		||||
 | 
			
		||||
        // this.valueKey = this.valueMetadata.key;
 | 
			
		||||
        this.valueMetadata = this
 | 
			
		||||
            .metadata
 | 
			
		||||
            .valuesForHints(['range'])[0];
 | 
			
		||||
 | 
			
		||||
        this.valueKey = this.valueMetadata.key;
 | 
			
		||||
 | 
			
		||||
            .valuesForHints(['range']);
 | 
			
		||||
        // console.log(this.valueMetadata);
 | 
			
		||||
        this.valueKey = this.valueMetadata.map(value => value.key);
 | 
			
		||||
        // console.log(this.valueKey);
 | 
			
		||||
        this.unsubscribe = this.openmct
 | 
			
		||||
            .telemetry
 | 
			
		||||
            .subscribe(this.domainObject, this.updateValues);
 | 
			
		||||
@@ -123,9 +135,18 @@ export default {
 | 
			
		||||
            let limit;
 | 
			
		||||
 | 
			
		||||
            if (this.shouldUpdate(newTimestamp)) {
 | 
			
		||||
                // console.log(datum);
 | 
			
		||||
                this.datum = datum;
 | 
			
		||||
                this.timestamp = newTimestamp;
 | 
			
		||||
                this.value = this.formats[this.valueKey].format(datum);
 | 
			
		||||
                // console.log(this.formats);
 | 
			
		||||
                // this.value = this.formats[this.valueKey].format(datum);
 | 
			
		||||
                this.value = {};
 | 
			
		||||
                this.valueKey.forEach(key => {
 | 
			
		||||
                    let formattedDatum = this.formats[key].format(datum);
 | 
			
		||||
                    this.value[key] = formattedDatum;
 | 
			
		||||
                    limit = this.limitEvaluator.evaluate(formattedDatum, this.valueMetadata);
 | 
			
		||||
                });
 | 
			
		||||
                // console.log(this.value);
 | 
			
		||||
                limit = this.limitEvaluator.evaluate(datum, this.valueMetadata);
 | 
			
		||||
                if (limit) {
 | 
			
		||||
                    this.valueClass = limit.cssClass;
 | 
			
		||||
 
 | 
			
		||||
@@ -22,19 +22,17 @@
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
<div class="c-lad-table-wrapper u-style-receiver js-style-receiver">
 | 
			
		||||
    <table class="c-table c-lad-table">
 | 
			
		||||
        <thead>
 | 
			
		||||
            <tr>
 | 
			
		||||
                <th>Name</th>
 | 
			
		||||
                <th>Timestamp</th>
 | 
			
		||||
                <th>Value</th>
 | 
			
		||||
                <th v-if="hasUnits">Unit</th>
 | 
			
		||||
            </tr>
 | 
			
		||||
        </thead>
 | 
			
		||||
    <table v-for="ladRow in items"
 | 
			
		||||
           :key="ladRow.key"
 | 
			
		||||
           class="c-table c-lad-table"
 | 
			
		||||
    >
 | 
			
		||||
        <lad-head
 | 
			
		||||
            :item="ladRow"
 | 
			
		||||
            :column-names="columnNames(ladRow)"
 | 
			
		||||
        />
 | 
			
		||||
        <tbody>
 | 
			
		||||
            <lad-row
 | 
			
		||||
                v-for="ladRow in items"
 | 
			
		||||
                :key="ladRow.key"
 | 
			
		||||
                :column-names="columnNames(ladRow)"
 | 
			
		||||
                :domain-object="ladRow.domainObject"
 | 
			
		||||
                :path-to-table="objectPath"
 | 
			
		||||
                :has-units="hasUnits"
 | 
			
		||||
@@ -47,10 +45,12 @@
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import LadRow from './LADRow.vue';
 | 
			
		||||
import LadHead from './LADHead.vue';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    components: {
 | 
			
		||||
        LadRow
 | 
			
		||||
        LadRow,
 | 
			
		||||
        LadHead
 | 
			
		||||
    },
 | 
			
		||||
    inject: ['openmct', 'currentView'],
 | 
			
		||||
    props: {
 | 
			
		||||
@@ -94,6 +94,13 @@ export default {
 | 
			
		||||
        this.composition.off('reorder', this.reorder);
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
        columnNames(item) {
 | 
			
		||||
            let metadata = this.openmct.telemetry.getMetadata(item.domainObject);
 | 
			
		||||
            let valueMetadata = metadata
 | 
			
		||||
                .valuesForHints(['range']);
 | 
			
		||||
 | 
			
		||||
            return valueMetadata.map(value => value.key);
 | 
			
		||||
        },
 | 
			
		||||
        addItem(domainObject) {
 | 
			
		||||
            let item = {};
 | 
			
		||||
            item.domainObject = domainObject;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user