Add ClassicView routing

Redirect Suite7 requests to Suite8 ClassicView routes for valid actions
- Use Symfony kernel events
- Use Symfony service configuration and DI for module mapping

Add legacy redirection tests
- Add acceptance test support
-- Add config helper
- Fix issue when running `codcept run`
-- functional tests missing
- Add functional tests for legacy routing
- Add unit tests for legacy routing
This commit is contained in:
Clemente Raposo 2020-01-17 17:08:32 +00:00 committed by Dillon-Brown
parent 57005f75f1
commit b809e5c85b
18 changed files with 1303 additions and 7 deletions

View file

@ -4,6 +4,9 @@ framework:
parameters:
secret: ThisTokenIsNotSoSecretChangeIt
imports:
- { resource: services/*/*.yaml }
services:
# default configuration for services in *this* file
_defaults:
@ -26,3 +29,16 @@ services:
# add more service definitions when explicit configuration is needed
# please note that last definitions always *replace* previous ones
App\EventListener\LegacyRedirectListener:
# set priority of 2050 to ensure the be the first running
tags: [{ name: kernel.event_listener, event: kernel.request, priority: 2050 }]
App\Service\ModuleNameMapper:
arguments:
- '%legacy.module_name_map%'
App\Service\RouteConverter:
arguments:
- '@App\Service\ModuleNameMapper'
- '%legacy.action_name_map%'

View file

@ -0,0 +1,13 @@
parameters:
legacy.action_name_map:
index: index
multieditview: multieditview
detailview: detail
editview: edit
listview: list
popup: popup
vcard: vcard
importvcard: importvcard
modulelistmenu: modulelistmenu
favorites: favorites
noaccess: noaccess

View file

@ -0,0 +1,233 @@
parameters:
legacy.module_name_map:
Home:
frontend: home
core: Home
Calendar:
frontend: calendar
core: Calendar
Calls:
frontend: calls
core: Calls
Calls_Reschedule:
frontend: calls-reschedule
core: CallsReschedule
Meetings:
frontend: meetings
core: Meetings
Tasks:
frontend: tasks
core: Tasks
Notes:
frontend: notes
core: Notes
Leads:
frontend: leads
core: Leads
Contacts:
frontend: contacts
core: Contacts
Accounts:
frontend: accounts
core: Accounts
Opportunities:
frontend: opportunities
core: Opportunities
Emails:
frontend: emails
core: Emails
EmailTemplates:
frontend: email-templates
core: EmailTemplates
Campaigns:
frontend: campaigns
core: Campaigns
Prospects:
frontend: prospects
core: Prospects
ProspectLists:
frontend: prospect-lists
core: ProspectLists
Documents:
frontend: documents
core: Documents
Cases:
frontend: cases
core: Cases
Project:
frontend: project
core: Project
Bugs:
frontend: bugs
core: Bugs
ResourceCalendar:
frontend: resource-calendar
core: ResourceCalendar
AOBH_BusinessHours:
frontend: business-hours
core: BusinessHours
Spots:
frontend: spots
core: Spots
SecurityGroups:
frontend: security-groups
core: SecurityGroups
ACL:
frontend: acl
core: ACL
ACLRoles:
frontend: acl-roles
core: ACLRoles
Configurator:
frontend: configurator
core: Configurator
UserPreferences:
frontend: user-preferences
core: UserPreferences
SavedSearch:
frontend: saved-search
core: SavedSearch
Studio:
frontend: studio
core: Studio
Connectors:
frontend: connectors
core: Connectors
SugarFeed:
frontend: sugar-feed
core: SugarFeed
EAPM:
frontend: eapm
core: EAPM
OutboundEmailAccounts:
frontend: outbound-email-accounts
core: OutboundEmailAccounts
TemplateSectionLine:
frontend: template-section-line
core: TemplateSectionLine
OAuthKeys:
frontend: oauth-keys
core: OAuthKeys
OAuthTokens:
frontend: oauth-tokens
core: OAuthTokens
OAuth2Tokens:
frontend: oauth2-tokens
core: OAuth2Tokens
OAuth2Clients:
frontend: oauth2-clients
core: OAuth2Clients
Surveys:
frontend: surveys
core: Surveys
SurveyResponses:
frontend: survey-responses
core: SurveyResponses
SurveyQuestionResponses:
frontend: survey-question-responses
core: SurveyQuestionResponses
SurveyQuestions:
frontend: survey-questions
core: SurveyQuestions
SurveyQuestionOptions:
frontend: survey-question-options
core: SurveyQuestionOptions
Reminders:
frontend: reminders
core: Reminders
Reminders_Invitees:
frontend: reminders-invitees
core: RemindersInvitees
AM_ProjectTemplates:
frontend: project-templates
core: ProjectTemplates
AM_TaskTemplates:
frontend: task-templates
core: TaskTemplates
AOK_Knowledge_Base_Categories:
frontend: knowledge-base-categories
core: KnowledgeBaseCategories
AOK_KnowledgeBase:
frontend: knowledge-base
core: KnowledgeBase
FP_events:
frontend: events
core: Events
FP_Event_Locations:
frontend: event-Locations
core: EventLocations
AOS_Contracts:
frontend: contracts
core: Contracts
AOS_Invoices:
frontend: invoices
core: Invoices
AOS_PDF_Templates:
frontend: pdf-templates
core: PDFTemplates
AOS_Product_Categories:
frontend: product-categories
core: ProductCategories
AOS_Products:
frontend: products
core: Products
AOS_Quotes:
frontend: quotes
core: Quotes
AOS_Products_Quotes:
frontend: products-quotes
core: ProductsQuotes
AOS_Line_Item_Groups:
frontend: line-item-groups
core: LineItemGroups
jjwg_Maps:
frontend: maps
core: Maps
jjwg_Markers:
frontend: markers
core: Markers
jjwg_Areas:
frontend: areas
core: Areas
jjwg_Address_Cache:
frontend: address-cache
core: AddressCache
AOD_IndexEvent:
frontend: index-event
core: IndexEvent
AOD_Index:
frontend: index
core: index
AOP_Case_Events:
frontend: case-events
core: CaseEvents
AOP_Case_Updates:
frontend: case-updates
core: CaseUpdates
AOR_Reports:
frontend: reports
core: Reports
AOR_Scheduled_Reports:
frontend: scheduled-reports
core: ScheduledReports
AOR_Fields:
frontend: report-fields
core: ReportFields
AOR_Charts:
frontend: report-charts
core: ReportCharts
AOR_Conditions:
frontend: report-conditions
core: ReportConditions
AOW_WorkFlow:
frontend: workFlow
core: WorkFlow
AOW_Actions:
frontend: workflow-actions
core: WorkflowActions
AOW_Processed:
frontend: workflow-processed
core: WorflowProcessed
AOW_Conditions:
frontend: workflow-conditions
core: WorkflowConditions