Commit graph

46 commits

Author SHA1 Message Date
Clemente Raposo
d09570d104 Fix menu user module actions translations
- Add the module name to the navbar action
-- if labels not found on the main module, load from this module
- Add extra fallback too check languages in the admin module
- Load SecurityGroups languages to the front end
- Update unit tests
2021-03-30 19:21:37 +01:00
Clemente Raposo
a46a30e7c7 Add responsive navbar layout
- Add screensize observer to check size changes
- Add navbar item limit configuration per screen size
-- exposed through system configs
- Re-adjust navbar upon screen size changes
2021-03-30 19:21:37 +01:00
Clemente Raposo
ac0b0eb1b4 Add Cache Reset Actions
- Add configuration file for module actions that should reset cache
- Expose cache reset actions in the system config api
- Add route event listener to reset cache when navigating a way from defined cache reset actions
- Update unit tests
2021-03-30 19:21:36 +01:00
Clemente Raposo
b62d1907aa Add searchdefs to metadata api
- Retrieve searchdefs in legacy handler
- Change ViewDefinitions Api to retrieve all viewdefs instead of just the listview defs
- Add varchar info to searchdefs
- Update codeception unit tests
2021-03-30 19:21:36 +01:00
Clemente Raposo
b2dbb79cdd Add currency detail field component
- Add Component for detail mode
- Add currencyFormatPipe that extends currency pipe
- Register components in dynamic components manifest
- Expose currency user preference
-- Add mapper to retrieve the need currency info
- Expose currency system config
-- Add mapper to retrieve the needed currency info
- Add sample usage to list view
- Add karma/jasmine tests
- Add codeception unit tests
2021-03-30 19:21:36 +01:00
Dillon-Brown
4fd431d97d Add ViewDefinition API
- Add initial ViewDefinition entity for list-view.
- Add ViewDefinitionHandler.
- Add ViewDefinitionDataProvider.
- Add ViewDefinitionProviderInterface.
- Add ViewDefinitionsHandlerTest.

Signed-off-by: Dillon-Brown <dillon.brown@salesagility.com>
2021-03-30 19:21:36 +01:00
Clemente Raposo
21a831e9f3 Add date and time format config and preference mappers
- Update SystemConfigHander
-- Add ability to map config name
-- Add ability to map config value
-- Add SystemConfigMappers.php to store config mappers

- Update UserPreferenceHandler
-- Add ability to map preference name
-- Add ability to map preference value
-- Add UserPreferencesMappers to store preferences mappers

- Configure config mappers for date format
- Configure preference mappers for time format

- Update unit tests
2021-03-30 19:21:36 +01:00
Dillon-Brown
9197335343 Create a UnitTester bootstrap and update existing tests
- Add UnitTester to hook into codeception login when executing tests.
- Create _beforeSuite and _before methods to reduce code duplication and improve performance.
- Add static closures where possible for better scoping and performance.
- Fix missing typehints/PHPDocs.

Signed-off-by: Dillon-Brown <dillon.brown@salesagility.com>
2021-03-30 19:21:35 +01:00
Clemente Raposo
fb359cd5f6 Add ClassicView redirection exclusions
- Add configurable exclusions by module / action on the backend
-- Add ClassicViewRoutingExclusionsHandler to grab these from legacy
-- Expose these as system configs to the frontend
- Update redirect check to classic view
-- Do not re-direct when same route (example, for listview filtering)
-- Do not re-direct when route is excluded
-- Do not re-direct when not able to convert route
- Update unit tests
2021-03-30 19:21:35 +01:00
Clemente Raposo
f10cc2812f Display selected module on navbar
- Add current module and action to AppState
- Calculate current module and action in BaseModuleResolver
-- Add logic to show current module as active on
--- import and find duplicates
- Update legacy handler method to retrieve available modules
-- Also send invisible modules, to
--- Allow to display invisible modules as the selected module
-- Update module name mape
- Retrieve number of navbar items from backed

- Fix grouped tab links
- Simplify navbar abstract by simplifying parameters
-- passing language map instead of individual language
-- passing navigation object instead of individual parts
- Create smaller components for repeated parts of navbar
-- grouped-menu-item
-- menu-item
-- menu-item-link
-- menu-item-list
-- home-menu-item
-- home-menu-recently-viewed

- Removing "jsdoc/no-types" from eslint
-- To avoid conflicts with jsdoc/require-param-type
2021-03-30 19:21:35 +01:00
Dillon-Brown
145ee25dc5 Update FieldDefinitionHandlerTest to remove starting the legacy app
- This fixes an issue with trying to destroy a non-existing session

Signed-off-by: Dillon-Brown <dillon.brown@salesagility.com>
2021-03-30 19:21:34 +01:00
Dillon-Brown
76744d36b7 Add module vardef entity and data providers
Signed-off-by: Dillon-Brown <dillon.brown@salesagility.com>
2021-03-30 19:21:34 +01:00
Clemente Raposo
5d6aa45391 Add Route conversion on legacy
- Add legacy handler to access RouteConverter
- Add legacy handler to access ModuleNameMapper
- Add legacy handler to access ActionNameMapper
- Remove action and module name maps from Suite8 side

- Update frontend route converter to check for suite 8 routes
-- When link is a suite 8 route does not convert

- Add LegacyScopeState to allow for nested legacy handler calls
-- Add abstract getHandlerKey to base LegacyHandler
-- Implement getHandlerKey on all legacy handlers

- Update legacy handler init and close methods to use scope state
-- Check if withing an already open legacy handler scope
2021-03-30 19:21:34 +01:00
Clemente Raposo
c1ef13322a Add legacy non-view actions re-direction
- Listen to legacy non-view calls on the LegacyRedirectListener
- Add LegacyNonViewActionRedirectHandler to re-direct to legacy
-- Using 307 re-direction response to support post re-direction
- Add unit test for LegacyNonViewActionRedirectHandler
2021-03-30 19:21:34 +01:00
Clemente Raposo
6c3e266b5d Add legacy api re-direction
- Listen to legacy api calls on the LegacyRedirectListener
- Add LegacyApiRedirectHandler to re-direct to legacy endpoint
-- Using 307 re-direction response to support post re-direction
-- Using api_paths.yaml with the configuration with paths to check

- Setup API tests using codeception
-- Add helper methods to login in v4 and v8 API
- Add Api test to create account using v4 api
- Add Api test to create account using v8 api
- Add unit test for LegacyApiRedirectHandler
2021-03-30 19:21:34 +01:00
Clemente Raposo
e147faf3a1 Implement ClassicView
- Change Classic view component to use Iframe to render legacy view for specified url
- Add Iframe page change observer to detect page changes and route to appropriate view
-- Move legacy to suite8 route conversion to the front end
- Add Iframe resize observer to re-adjust the iframe size according to its contents
- Expose module and action name maps to the frontend within thee system configs
- Add unit and karma tests and ajdust existing ones
- Add floating to messages alert
- Make classic view resolver extend the base metadata resolver
- Move all front end calls to the default_module config to a single place
- Map default module name to frontend name in the legacy handler
2021-03-30 19:21:34 +01:00
Dillon-Brown
aa242f970c Implement user action menu
Signed-off-by: Dillon-Brown <dillon.brown@salesagility.com>
2021-03-30 19:21:34 +01:00
Dillon-Brown
bc115670ba Add legacy user provider
- This changes the Symfony User entity to fetch the user from the legacy users table

Signed-off-by: Dillon-Brown <dillon.brown@salesagility.com>
2021-03-30 19:21:34 +01:00
Clemente Raposo
25f7d38fcd Add legacy suite configuration support for grouped tabs
- Add ability to fully start legacy app on legacy handlers
- Update Navbar and UserPreferences handler to start the legacy app after init
- Update Navbar and UserPreferences handler to implement the corresponding interfaces
-- Update corresponding Data providers to use the new interfaces

- Change Navbar legacy handler to take into account the tab configured preferences
-- based on the implementation used in Legacy SugarView

- Update UserPreferences to use the currently logged in user
-- remove hard coded user
-- get UserPreferences from the legacy User object instead of grabbing it directly from the db

- Add All entry to grouped tabs

- Adjust unit tests
2021-03-30 19:21:34 +01:00
Clemente Raposo
77c7057328 Expire Suite 8 session when Suite 7 expires
- Check Suite7 session on authenticated endpoints
-- Decorate Security Stage for Graphql
-- Decorate DenyAccessListener for REST
-- Add legacy handler method to check the suite 7 session
- Add Unit tests
2021-03-30 19:21:34 +01:00
Clemente Raposo
59c3efd08c Add Suite 8 LogoutListener
- Add LegacySessionLogoutHandler
-- Logout Legacy Suite session when Suite 8 is logged out
-- Configure handler to decorate SessionLogoutHandler
- Add logout to Authentication legacy handler
- Add AspectMock lib
- Add unit tests for LegacySessionLogoutHandler
- Rename unit test folders to be consistent with src.
-- Use the same pattern used in Suite 7
2021-03-30 19:21:33 +01:00
Clemente Raposo
895ec5b4f7 Add ThemeImages API
- Add ThemeImages Entity
- Add ThemeImages DataProvider
- Add ThemeImage Service
-- Retrieves the list of images for a given theme
- Add ThemeImagesFinder
-- looks up for images inside a given path
-- Add configuration to specify theme image paths
-- Add configuration to specify supported image types
- Add unit tests
- Add theme-images angular facade
- Update base metadata resolver to load theme images
-- Move UserPreferences loading ot base metadata resolver
-- Loaded theme images after user preference and config loading
--- uses default_theme, if user preferences weren't loaded
-- Add jasmine tests
- Add scrm-image component
-- Add jasmine tests
- Replace usages of svg-icon with image component
-- Fix jasmine tests
- Adjust UserPreference interface to match the current data
2021-03-30 19:21:33 +01:00
Ross Moroney
6b2c10092d Add user preferences api and legacyhandler 2021-03-30 19:21:33 +01:00
Clemente Raposo
a8235c444a Add Navbar translations
- Make language facade loading dynamic to load given types of strings
-- Add cache per type of language strings
-- Add configuration per type of language strings
-- Enable fetching modStrings, appStrings, appListStrings
- Expose a stream for each type of strings

- Make BaseMetadataResolver language loading dynamic based on router configuration
-- Add navigation loading
-- add string loading, depending on configuration
-- Add default configuration: Loads SystemConfigs, Navigation and all Languages
-- Add ability to override default configuration on router
- Configure BaseMetadata resolver in router
- Only use default language if it there is no active language

- Update login component to cope with changes to language facade

- Refactor: move existing facades to the facades folder

- Re-write navigation facade to use reactive facades approach

- Update navbar api to cope with with api contract
-- Add modules entry
-- Move moduleSubmenus to modules entry
-- Disable collection query on graphql
-- Update frontend to cope with these changes

- Update navbar component
-- Cleanup component
-- Fetch navigation and languages reactively
-- Update navbar menu item creation with new navigation structure
-- Fix html for loading icons
-- Fix html for regular module tab menu

- Translate navbar items
-- Add translations on navbar menu items creation

- Add karma tests

- Adjust navbar to properly render links
-- Add extra query params to submenu in API
-- Adjust LegacyHandler to retrieve the extra query params
-- Adjust angular component
2021-03-30 19:21:33 +01:00
Clemente Raposo
968580e0fe Add ModStrings API
- Add ModStrings entity
- Add ModStringsItemDataProvider with sample data
- Add ModStrings Legacy handler
- Add unit tests for legacy handler
2021-03-30 19:21:33 +01:00
Clemente Raposo
baae4e2129 Add Legacy asset re-direction
- Add handler to check and build re-direction path
- Re-direct legacy assets on LegacyRedirectListener
- Add configuration with list of legacy asset paths
- Add dummy image call to the ClassicViewItemDataProvider
2021-03-30 19:21:33 +01:00
Clemente Raposo
1e6b530091 Legacy handler Unit Test cleanup 2021-03-30 19:21:32 +01:00
Clemente Raposo
b1b048a152 Add AppListStrings Legacy Handler
- Add AppListStrings Legacy handler
- Update AppListStrings Item data provider to use legacy handler
- Add unit tests for legacy handler
2021-03-30 19:21:32 +01:00
Clemente Raposo
c02ab30a05 Add SystemConfig Legacy Handler
- Add SystemConfi Legacy handler
- Add service configuration to specify which configs are exposed to the frontend
- Update Systemconfig Item and Collection data provider to use legacy handler
- Add unit tests for legacy handler
2021-03-30 19:21:32 +01:00
Clemente Raposo
32d40be3e7 Add AppStrings Legacy Handler
- Add AppStrings Legacy handler
-- Inject some User module key into app strings
- Update AppStrings Item data provider to use legacy handler
- Add unit tests for legacy handler
2021-03-30 19:21:32 +01:00
Clemente Raposo
99f28973f7 Fix unit tests 2021-03-30 19:21:32 +01:00
Clemente Raposo
bd2e3d6e0c Add session swapping to LegacyHandlers
- Autowire LegacyHandlers as Symfony Services
-- Configure legacy handlers folder in service.yml
-- Replace handler instantiation with service injection

- Add init and close to legacy handlers
-- Swap sessions
-- Swap current dir
-- Add config to allow moving values between sessions
-- replace hard coded values with injected configuration

- Remove unused services and corresponding unit test
-- NavbarService.php
-- AuthenticationService.php

- Refactor Authentication Handler to
-- call init and close methods

- Refactor navbar handler to be used as a service
-- Adjust navbar unit tests
2021-03-30 19:21:32 +01:00
Dillon-Brown
93c4e2ce91 Add legacy handler to fetch module sub menu data 2021-03-30 19:21:32 +01:00
Dillon-Brown
ed5feb3938 Fix NonGroupedNavTabs returning sorted array by default 2021-03-30 19:21:32 +01:00
Dillon-Brown
b83d27edcd Complete navigation user action menu contract 2021-03-30 19:21:32 +01:00
Dillon-Brown
287ed2fb15 Add Angular CSRF protection 2021-03-30 19:21:31 +01:00
Dillon-Brown
9bff8530c6 Add Suite-8 user authentication 2021-03-30 19:21:31 +01:00
Clemente Raposo
ca0e00dfd1 Fix Legacy re-directs for subpaths
- Add units tests to check that :
-- requests to the api aren't taken as legacy
-- valid requests done in a subpath instance are considered valid
2021-03-30 19:21:31 +01:00
Dillon-Brown
fdb97afcb3 Fix NavTabs to return agreed navbar contract 2021-03-30 19:21:31 +01:00
Clemente Raposo
b809e5c85b 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
2021-03-30 19:21:31 +01:00
Dillon-Brown
ece6ae6377 Add additional configuration options to codeception
This updates the codeception unit tests to remove the LEGACY_PATH constant and to define legacy test runners so that we can test session related methods.
2021-03-30 19:21:31 +01:00
Dillon-Brown
a787d0d82f Add codeception testing framework
This implements the basic structure that will be used for future unit, functional and acceptance tests.
2021-03-30 19:21:30 +01:00
Dillon-Brown
587a79613e Add API Platform Framework with Symfony/Flex
This implements the basic structure that will be used for the API and core application.
2021-03-30 19:21:30 +01:00
Dillon-Brown
bab8ce3390 Add grouped navigation tabs legacy handler 2021-03-30 19:21:30 +01:00
Dillon-Brown
cad4ee309c Add non-group navigation tabs legacy handler 2021-03-30 19:21:30 +01:00
Matt Lorimer
9a1442f726 Move tests to root directory 2021-03-30 19:21:30 +01:00