From 8ac6e0e0bccc7dea7fe3c89b098e0ac2c6428418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Hal=C3=A1sz?= Date: Wed, 9 Aug 2017 15:57:13 +0200 Subject: [PATCH] Reorganize left-side trees that are available on explorer screens --- app/presenters/tree_builder.rb | 188 +++++++++++++++++++++------------ 1 file changed, 123 insertions(+), 65 deletions(-) diff --git a/app/presenters/tree_builder.rb b/app/presenters/tree_builder.rb index af4c9cb1056..d37ad48b033 100644 --- a/app/presenters/tree_builder.rb +++ b/app/presenters/tree_builder.rb @@ -8,7 +8,7 @@ class TreeBuilder def self.class_for_type(type) raise('Obsolete tree type.') if type == :filter @x_tree_node_classes ||= {} - @x_tree_node_classes[type] ||= X_TREE_NODE_CLASSES[type].constantize + @x_tree_node_classes[type] ||= LEFT_TREE_CLASSES[type].constantize end def initialize(name, type, sandbox, build = true) @@ -359,97 +359,155 @@ def resolve_object_lambdas(count_only, objects) end private :resolve_object_lambdas - X_TREE_NODE_CLASSES = { - # Catalog explorer trees - :configuration_manager_providers => "TreeBuilderConfigurationManager", - :configuration_manager_cs_filter => "TreeBuilderConfigurationManagerConfiguredSystems", + LEFT_TREE_CLASSES = { + # Cloud Intel + ## Reports + ### Saved Reports + :savedreports => "TreeBuilderReportSavedReports", + ### Reports + :reports => "TreeBuilderReportReports", + ### Schedules + :schedules => "TreeBuilderReportSchedules", + ### Dashboards + :db => "TreeBuilderReportDashboards", + ### Dashboard Widgets + :widgets => "TreeBuilderReportWidgets", + ### Edit Report Menus + :roles => "TreeBuilderReportRoles", + ### Import/Export + :export => "TreeBuilderReportExport", + ## Timelines (TODO) - # Catalog explorer trees - :ot => "TreeBuilderOrchestrationTemplates", + ## Chargeback + ### Reports + :cb_reports => "TreeBuilderChargebackReports", + ### Rates + :cb_rates => "TreeBuilderChargebackRates", + ### Assignments + :cb_assignments => "TreeBuilderChargebackAssignments", + + # Services + ## My services + ### Services + :svcs => "TreeBuilderServices", + + ## Catalogs + ### Service Catalogs + :svccat => "TreeBuilderServiceCatalog", + ### Catalog Items :sandt => "TreeBuilderCatalogItems", + ### Orchestration Templates + :ot => "TreeBuilderOrchestrationTemplates", + ### Catalogs :stcat => "TreeBuilderCatalogs", - :svccat => "TreeBuilderServiceCatalog", - # Chargeback explorer trees - :cb_assignments => "TreeBuilderChargebackAssignments", - :cb_rates => "TreeBuilderChargebackRates", - :cb_reports => "TreeBuilderChargebackReports", + ## Workloads + ### VMs & Instances + :vms_instances_filter => "TreeBuilderVmsInstancesFilter", + ### Templates & Images + :templates_images_filter => "TreeBuilderTemplatesImagesFilter", + + # Compute + ## Clouds + ### Instances + #### Instances by provider + :instances => "TreeBuilderInstances", + #### Images by provider + :images => "TreeBuilderImages", + #### Instances + :instances_filter => "TreeBuilderInstancesFilter", + #### Images + :images_filter => "TreeBuilderImagesFilter", + ## Infrastructure + ### Virtual Machines + #### VMs & Templates :vandt => "TreeBuilderVandt", + #### VMs :vms_filter => "TreeBuilderVmsFilter", + #### Templates :templates_filter => "TreeBuilderTemplateFilter", + ### Datastores + #### Datastores + :storage => "TreeBuilderStorage", + #### Datastore Clusters + :storage_pod => "TreeBuilderStoragePod", + ### PXE + #### PXE Servers + :pxe_servers => "TreeBuilderPxeServers", + #### Customization Templates + :customization_templates => "TreeBuilderPxeCustomizationTemplates", + #### System Image Types + :pxe_image_types => "TreeBuilderPxeImageTypes", + #### ISO Datastores + :iso_datastores => "TreeBuilderIsoDatastores", + ### Networking + #### Switches :infra_networking => "TreeBuilderInfraNetworking", - :instances => "TreeBuilderInstances", - :images => "TreeBuilderImages", - :instances_filter => "TreeBuilderInstancesFilter", - :images_filter => "TreeBuilderImagesFilter", - :vms_instances_filter => "TreeBuilderVmsInstancesFilter", - :templates_images_filter => "TreeBuilderTemplatesImagesFilter", + # Configuration + ## Management + ### Providers + :configuration_manager_providers => "TreeBuilderConfigurationManager", + ### Configured Systems + :configuration_manager_cs_filter => "TreeBuilderConfigurationManagerConfiguredSystems", - :policy_simulation => "TreeBuilderPolicySimulation", + # Control + ## Explorer + ### Policy Profiles :policy_profile => "TreeBuilderPolicyProfile", + ### Policies :policy => "TreeBuilderPolicy", + ### Events :event => "TreeBuilderEvent", + ### Conditions :condition => "TreeBuilderCondition", + ### Actions :action => "TreeBuilderAction", + ### Alert Profiles :alert_profile => "TreeBuilderAlertProfile", + ### Alerts :alert => "TreeBuilderAlert", - # reports explorer trees - :db => "TreeBuilderReportDashboards", - :export => "TreeBuilderReportExport", - :reports => "TreeBuilderReportReports", - :roles => "TreeBuilderReportRoles", - :savedreports => "TreeBuilderReportSavedReports", - :schedules => "TreeBuilderReportSchedules", - :widgets => "TreeBuilderReportWidgets", + # Automation + ## Ansible Tower + ### Providers + :automation_manager_providers => "TreeBuilderAutomationManagerProviders", + ### Configured Systems + :automation_manager_cs_filter => "TreeBuilderAutomationManagerConfiguredSystems", + ### Job Templates + :configuration_scripts => "TreeBuilderAutomationManagerConfigurationScripts", - # automate explorer tree + ## Automate + ### Explorer + #### Datastore :ae => "TreeBuilderAeClass", - - # miq_ae_customization explorer trees - :ab => "TreeBuilderButtons", + ### Customization + #### Provisioning Dialogs + :old_dialogs => "TreeBuilderProvisioningDialogs", + #### Service Dialogs :dialogs => "TreeBuilderServiceDialogs", + #### Buttons + :ab => "TreeBuilderButtons", + #### Import/Export :dialog_import_export => "TreeBuilderAeCustomization", - :old_dialogs => "TreeBuilderProvisioningDialogs", - # OPS explorer trees - :diagnostics => "TreeBuilderOpsDiagnostics", - :rbac => "TreeBuilderOpsRbac", - :servers_by_role => "TreeBuilderServersByRole", - :roles_by_server => "TreeBuilderRolesByServer", + # Optimize + ## Utilization + ### Utilization (TODO) + ### Bottlenecks (TODO) + + # OPS (Configuration) + ## Settings :settings => "TreeBuilderOpsSettings", + ## Access Control + :rbac => "TreeBuilderOpsRbac", + ## Diagnostics + :diagnostics => "TreeBuilderOpsDiagnostics", + ## Database :vmdb => "TreeBuilderOpsVmdb", - - # PXE explorer trees - :customization_templates => "TreeBuilderPxeCustomizationTemplates", - :iso_datastores => "TreeBuilderIsoDatastores", - :pxe_image_types => "TreeBuilderPxeImageTypes", - :pxe_servers => "TreeBuilderPxeServers", - - # Services explorer tree - :svcs => "TreeBuilderServices", - - :sa => "TreeBuilderStorageAdapters", - - # Datastores explorer trees - :storage => "TreeBuilderStorage", - :storage_pod => "TreeBuilderStoragePod", - - :datacenter => "TreeBuilderDatacenter", - :vat => "TreeBuilderVat", - - :network => "TreeBuilderNetwork", - :df => "TreeBuilderDefaultFilters", - - # Automation trees - :automation_manager_providers => "TreeBuilderAutomationManagerProviders", - :automation_manager_cs_filter => "TreeBuilderAutomationManagerConfiguredSystems", - :configuration_scripts => "TreeBuilderAutomationManagerConfigurationScripts", - - } + }.freeze # Tree node prefixes for generic explorers X_TREE_NODE_PREFIXES = {