From 795d7a7ec7610fbdfa9c8c7d8581c145b54f2b7a Mon Sep 17 00:00:00 2001 From: Shefali Joshi Date: Thu, 13 Jul 2023 12:50:52 -0700 Subject: [PATCH] Fix couchdbsearchfolder and allow clocky reports (#6770) * Fix CouchDBSearchFolder plugin to have unique identifiers. Allow ttt-reports to be viewed as web pages * Remove ttt-report type from WebPage view provider. This is being moved to the viper-openmct repo instead * Adds check for classList * Add WebPage to the components list * Remove uuid and use the folder name as the identifier instead * Remove focused test --------- Co-authored-by: John Hill Co-authored-by: Jamie V --- src/plugins/CouchDBSearchFolder/plugin.js | 19 ++++++++++++------- src/plugins/CouchDBSearchFolder/pluginSpec.js | 4 ++-- .../viewLargeAction/viewLargeAction.js | 2 +- src/ui/components/components.js | 4 +++- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/plugins/CouchDBSearchFolder/plugin.js b/src/plugins/CouchDBSearchFolder/plugin.js index 002daf8d11..aa0bad48ed 100644 --- a/src/plugins/CouchDBSearchFolder/plugin.js +++ b/src/plugins/CouchDBSearchFolder/plugin.js @@ -1,21 +1,26 @@ export default function (folderName, couchPlugin, searchFilter) { + const DEFAULT_NAME = 'CouchDB Documents'; + return function install(openmct) { const couchProvider = couchPlugin.couchProvider; + //replace any non-letter/non-number with a hyphen + const couchSearchId = (folderName || DEFAULT_NAME).replace(/[^a-zA-Z0-9]/g, '-'); + const couchSearchName = `couch-search-${couchSearchId}`; openmct.objects.addRoot({ - namespace: 'couch-search', - key: 'couch-search' + namespace: couchSearchName, + key: couchSearchName }); - openmct.objects.addProvider('couch-search', { + openmct.objects.addProvider(couchSearchName, { get(identifier) { - if (identifier.key !== 'couch-search') { + if (identifier.key !== couchSearchName) { return undefined; } else { return Promise.resolve({ identifier, type: 'folder', - name: folderName || 'CouchDB Documents', + name: folderName || DEFAULT_NAME, location: 'ROOT' }); } @@ -25,8 +30,8 @@ export default function (folderName, couchPlugin, searchFilter) { openmct.composition.addProvider({ appliesTo(domainObject) { return ( - domainObject.identifier.namespace === 'couch-search' && - domainObject.identifier.key === 'couch-search' + domainObject.identifier.namespace === couchSearchName && + domainObject.identifier.key === couchSearchName ); }, load() { diff --git a/src/plugins/CouchDBSearchFolder/pluginSpec.js b/src/plugins/CouchDBSearchFolder/pluginSpec.js index 4f702ae2a5..7dae5bfd0f 100644 --- a/src/plugins/CouchDBSearchFolder/pluginSpec.js +++ b/src/plugins/CouchDBSearchFolder/pluginSpec.js @@ -25,8 +25,8 @@ import CouchDBSearchFolderPlugin from './plugin'; describe('the plugin', function () { let identifier = { - namespace: 'couch-search', - key: 'couch-search' + namespace: 'couch-search-CouchDB-Documents', + key: 'couch-search-CouchDB-Documents' }; let testPath = '/test/db'; let openmct; diff --git a/src/plugins/viewLargeAction/viewLargeAction.js b/src/plugins/viewLargeAction/viewLargeAction.js index 30f6e647db..5b07376d81 100644 --- a/src/plugins/viewLargeAction/viewLargeAction.js +++ b/src/plugins/viewLargeAction/viewLargeAction.js @@ -54,7 +54,7 @@ export default class ViewLargeAction { return ( childElement && - !childElement.classList.contains('js-main-container') && + !childElement?.classList.contains('js-main-container') && !this.openmct.router.isNavigatedObject(objectPath) ); } diff --git a/src/ui/components/components.js b/src/ui/components/components.js index 998919c711..0ffc2b8c01 100644 --- a/src/ui/components/components.js +++ b/src/ui/components/components.js @@ -23,9 +23,11 @@ import ObjectView from './ObjectView.vue'; import StackedPlot from '../../plugins/plot/stackedPlot/StackedPlot.vue'; import Plot from '../../plugins/plot/Plot.vue'; +import WebPage from '../../plugins/webPage/components/WebPage.vue'; export default { ObjectView, StackedPlot, - Plot + Plot, + WebPage };