Skip to content

Commit

Permalink
Reorganize left-side trees that are available on explorer screens
Browse files Browse the repository at this point in the history
  • Loading branch information
skateman committed Aug 15, 2017
1 parent 0f76b9f commit 8ac6e0e
Showing 1 changed file with 123 additions and 65 deletions.
188 changes: 123 additions & 65 deletions app/presenters/tree_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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 = {
Expand Down

0 comments on commit 8ac6e0e

Please sign in to comment.