├── .browserslistrc
├── .env-app
├── .env-app.test
├── .env-build
├── .eslintignore
├── .eslintrc.yml
├── .gitattributes
├── .gitignore
├── .npmrc
├── .nvmrc
├── .php-version
├── .rsync-exclude-prod
├── .rsync-exclude-test
├── .stylelintignore
├── .stylelintignore-css
├── .stylelintrc-css.yml
├── .stylelintrc.yml
├── 3rd-party-dependencies.md
├── CHANGELOG.md
├── LICENSE
├── README.md
├── UPGRADE.md
├── behat.yml.dist
├── bin
└── console
├── composer.json
├── config
├── .gitignore
├── bootstrap_test.php
├── config.yml
├── config_behat_test.yml
├── config_cloud.yml
├── config_dev.yml
├── config_prod.yml
├── config_test.yml
├── doctrine.yml
├── routing.yml
├── routing_dev.yml
├── security.yml
├── security_dev.yml
└── security_test.yml
├── dev.json
├── dev.lock
├── docker-compose.yml
├── karma.conf.js.dist
├── package-lock.json
├── package.json
├── pdepend.xml.dist
├── php.ini
├── phpunit.xml.dist
├── public
├── .htaccess
├── bundles
│ └── .gitkeep
├── favicon.ico
├── index.php
├── index_dev.php
├── js
│ └── .gitkeep
├── maintenance.html
├── media
│ └── .gitkeep
├── notinstalled.html
└── robots.txt
├── src
├── .htaccess
├── AppKernel.php
└── Entity
│ └── .gitkeep
├── templates
├── base.html.twig
└── bundles
│ └── TwigBundle
│ └── Exception
│ └── error.html.twig
├── translations
└── .gitkeep
├── var
├── cache
│ └── .gitkeep
├── data
│ └── .gitignore
├── logs
│ └── .gitkeep
├── maintenance
│ └── .gitkeep
└── sessions
│ └── .gitkeep
└── webpack.config.js
/.browserslistrc:
--------------------------------------------------------------------------------
1 | > .5% or last 1 firefox version
2 | > .5% or last 1 chrome version
3 | > .5% or last 1 edge version
4 | > .5% or last 1 safari version
5 | > .5% or last 1 iOS version
6 |
--------------------------------------------------------------------------------
/.env-app:
--------------------------------------------------------------------------------
1 | # In all environments, the following files are loaded if they exist,
2 | # the latter taking precedence over the former:
3 | #
4 | # * .env-app contains default values for the environment variables needed by the app
5 | # * .env-app.local uncommitted file with local overrides
6 | # * .env-app.$ORO_ENV committed environment-specific defaults
7 | # * .env-app.$ORO_ENV.local uncommitted environment-specific overrides
8 | #
9 | # Real environment variables have priority over .env-app files.
10 | #
11 | # DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR ANY OTHER COMMITTED FILES.
12 | #
13 | # Run "composer dump-env prod" to compile .env-app files for production use
14 | # https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
15 |
16 | ###> symfony config ###
17 | ORO_ENV=prod
18 | ORO_SECRET=ThisTokenIsNotSoSecretChangeIt
19 | ###< symfony config ###
20 |
21 | ###> doctrine config ###
22 | ORO_DB_URL=postgres://oro_db_user:oro_db_pass@127.0.0.1:5432/oro_db?sslmode=disable&charset=utf8&serverVersion=13.7
23 | ORO_DB_DSN=${ORO_DB_URL}
24 | ###< doctrine config ###
25 |
26 | ###> mailer config ###
27 | ORO_MAILER_DSN=native://default
28 | ###> mailer config ###
29 |
30 | ###> search engine config ###
31 | ORO_SEARCH_URL=orm:
32 | ORO_SEARCH_ENGINE_DSN=${ORO_SEARCH_URL}?prefix=oro_search
33 | ###< search engine config ###
34 |
35 | ###> session config ###
36 | ORO_SESSION_DSN=native:
37 | # ORO_SESSION_DSN=${ORO_REDIS_URL}/0
38 | ###< session config ###
39 |
40 | ###> websocket config ###
41 | # websocket server DSN example: //0.0.0.0:8080
42 | ORO_WEBSOCKET_SERVER_DSN=
43 | # websocket client frontend DSN example: //*:8080/ws
44 | ORO_WEBSOCKET_FRONTEND_DSN=
45 | # websocket client backend DSN example: tcp://127.0.0.1:8080
46 | ORO_WEBSOCKET_BACKEND_DSN=
47 | ###< websocket config ###
48 |
49 | ###> message queue config ###
50 | ORO_MQ_DSN=dbal:
51 | ###< message queue config ###
52 |
53 | ###> image optimization binaries paths ##
54 | ORO_JPEGOPTIM_BINARY=
55 | ORO_PNGQUANT_BINARY=
56 | ###< image optimization binaries paths ##
57 |
58 | ###> redis cache config ###
59 | # Sentinel DSN example: redis://127.0.0.1:26379?dbindex=1&redis_sentinel=lru_cache_mon
60 | # Cluster DSN example: redis://password@127.0.0.1:6379?host[127.0.0.1:6380]&dbindex=1&cluster=predis`
61 | # To activate Redis for the cache, run `composer set-params redis` and clear the application cache
62 | ORO_REDIS_URL=redis://127.0.0.1:6379
63 | ORO_REDIS_CACHE_DSN=${ORO_REDIS_URL}/1
64 | ORO_REDIS_DOCTRINE_DSN=${ORO_REDIS_URL}/2
65 | ###< redis cache config ###
66 |
67 | ###> tracking data folder config ###
68 | # Specify path to the folder for tracking data
69 | ORO_TRACKING_DATA_FOLDER=
70 | ###< tracking data folder config ###
71 |
72 | ###> maintenance mode config ###
73 | # Specify path for the maintenance lock file in the system
74 | # To activate maintenance mode, run `lexik:maintenance:lock` ORO command
75 | ORO_MAINTENANCE_LOCK_FILE_PATH=%kernel.project_dir%/var/maintenance/maintenance_lock
76 | ###< maintenance mode config ###
77 |
78 | ###> OAuth config ###
79 | # Specify paths to the public and private keys for OAuth
80 | ORO_OAUTH_PUBLIC_KEY_PATH='%kernel.project_dir%/var/oauth_public.key'
81 | ORO_OAUTH_PRIVATE_KEY_PATH='%kernel.project_dir%/var/oauth_private.key'
82 | ###< OAuth config ###
83 |
84 | ###> logging config ###
85 | # Specify path to the log file
86 | ORO_LOG_PATH="%kernel.logs_dir%/%kernel.environment%.log"
87 | ORO_LOG_STACKTRACE_LEVEL="error"
88 | ###< logging config ###
89 |
--------------------------------------------------------------------------------
/.env-app.test:
--------------------------------------------------------------------------------
1 | ORO_DB_URL=postgres://root@127.0.0.1/bap_dev_test
2 | ORO_DB_DSN=${ORO_DB_URL}
3 | ORO_MAILER_DSN=smtp://127.0.0.1
4 | ORO_WEBSOCKET_SERVER_DSN=
5 | ORO_WEBSOCKET_FRONTEND_DSN=
6 | ORO_WEBSOCKET_BACKEND_DSN=
7 |
--------------------------------------------------------------------------------
/.env-build:
--------------------------------------------------------------------------------
1 | ORO_IMAGE=${ORO_PROJECT}platform-application
2 | ORO_IMAGE_TEST=${ORO_IMAGE}-test
3 | ORO_IMAGE_INIT=${ORO_IMAGE}-init
4 | ORO_IMAGE_INIT_TEST=${ORO_IMAGE}-init-test
5 | ORO_CE=yes
6 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | **/.bin/**
2 | **/node_modules/**
3 | **/api-doc-bundle/**
4 | **/nelmioapidoc/**
5 | **/ThemeDefault*Bundle/**
6 | **/public/lib/**
7 | **/public/*/lib/**
8 | **/public/*/vendors/**
9 | **/Karma/lib/**
10 | **/*.min.js
11 |
--------------------------------------------------------------------------------
/.eslintrc.yml:
--------------------------------------------------------------------------------
1 | extends:
2 | - google
3 | - "plugin:oro/recommended"
4 | - "plugin:no-jquery/deprecated"
5 | parserOptions:
6 | ecmaVersion: 2022
7 | sourceType: module
8 | env:
9 | browser: true
10 | commonjs: true
11 | amd: true
12 | jasmine: true
13 | globals:
14 | Promise: true
15 | plugins:
16 | - 'no-jquery'
17 | rules:
18 | # turn off ES6 code style check
19 | arrow-parens: ['error', 'as-needed']
20 | oro/named-constructor: 'error'
21 |
22 | # customization
23 | indent: ['error', 4, {'SwitchCase': 1}]
24 | max-len:
25 | - 'error'
26 | - code: 120
27 | comments: 160
28 | tabWidth: 4
29 | ignoreComments: true
30 | ignoreTrailingComments: true
31 | ignoreRegExpLiterals: true
32 | ignorePattern: '^\s*const\s.+=\s*require\s*\(|\.extend\(\/\*\*\s+@lends\s.+\*\/\{$'
33 | comma-dangle: ['error', 'never']
34 | eqeqeq: ['error', 'smart']
35 | no-useless-call: 'error'
36 | no-useless-concat: 'error'
37 | no-loop-func: 'error'
38 | no-eval: 'error'
39 | no-undef: 'error'
40 | no-unused-vars:
41 | - 'error'
42 | - ignoreRestSiblings: true
43 | args: 'none'
44 | operator-linebreak:
45 | - 'error'
46 | - 'after'
47 | - overrides:
48 | "?": 'before'
49 | ":": 'before'
50 | new-cap:
51 | - 'error'
52 | - newIsCap: true
53 | properties: false
54 | quote-props:
55 | - 'error'
56 | - 'consistent-as-needed'
57 | - keywords: true
58 | numbers: true
59 | valid-jsdoc: 'off' # has to be turned on in a future
60 | no-useless-escape: 'off' # has to be turned on in a future
61 | require-jsdoc: 'off' # has to be turned on in a future
62 | no-invalid-this: 'off' # has to be turned on in a future
63 | space-infix-ops:
64 | - 'error'
65 | 'no-jquery/no-event-shorthand': 'error'
66 | 'no-jquery/no-trim': 'error'
67 | 'no-jquery/no-sizzle':
68 | - 'error'
69 | - allowPositional: false
70 | allowOther: true
71 | 'no-jquery/no-camel-case': 'error'
72 | 'no-jquery/no-is-function': 'error'
73 | 'no-jquery/no-is-numeric': 'error'
74 | 'no-jquery/no-is-window': 'error'
75 | 'no-jquery/no-now': 'error'
76 | 'no-jquery/no-proxy': 'error'
77 | 'no-jquery/no-type': 'error'
78 | 'no-jquery/no-hold-ready': 'error'
79 | 'no-jquery/no-is-array': 'error'
80 | 'no-jquery/no-node-name': 'error'
81 | 'no-jquery/no-bind': 'error'
82 | 'no-jquery/no-delegate': 'error'
83 | 'no-jquery/no-fx-interval': 'error'
84 | 'no-jquery/no-parse-json': 'error'
85 | 'no-jquery/no-ready-shorthand': 'error'
86 | 'no-jquery/no-unique': 'error'
87 | 'no-jquery/no-context-prop': 'error'
88 | 'no-jquery/no-support': 'error'
89 | 'no-jquery/no-and-self': 'error'
90 | 'no-jquery/no-error-shorthand': 'error'
91 | 'no-jquery/no-load-shorthand': 'error'
92 | 'no-jquery/no-on-ready': 'error'
93 | 'no-jquery/no-size': 'error'
94 | 'no-jquery/no-unload-shorthand': 'error'
95 | 'no-jquery/no-live': 'error'
96 | 'no-jquery/no-sub': 'error'
97 | 'no-jquery/no-selector-prop': 'error'
98 | 'no-jquery/no-box-model': 'error'
99 | 'no-jquery/no-browser': 'error'
100 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | /.env-* text eol=lf
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.settings
2 | /.buildpath
3 | /.project
4 | /.idea
5 | /node_modules
6 | /composer.phar
7 | composer.lock
8 | /behat.yml
9 | /var/*
10 | !var/cache/
11 | /var/cache/*
12 | !var/cache/.gitkeep
13 | !var/logs/
14 | /var/logs/*
15 | !var/logs/.gitkeep
16 | !var/maintenance/
17 | /var/maintenance/*
18 | !var/maintenance/.gitkeep
19 | !var/data/
20 | /var/data/*
21 | !var/data/.gitkeep
22 | !var/sessions/
23 | /var/sessions/*
24 | !var/sessions/.gitkeep
25 | !var/oro-check.php
26 | /build/logs/*
27 | /vendor
28 | /cov
29 | !public/bundles/
30 | /public/bundles/*
31 | !public/bundles/.gitkeep
32 | !public/js/
33 | /public/js/*
34 | !public/js/.gitkeep
35 | /public/build
36 | /public/layout-build
37 | /public/media
38 | !public/media/.gitkeep
39 | /public/build.js
40 | /config/parameters.yml
41 | /config/.env
42 | /.env-app.local
43 | /.env-app.local.php
44 | /.env-app.*.local
45 | phpunit.xml
46 | .phpunit.result.cache
47 | /.behat-secrets.yml
48 | *~
49 | bin/*
50 | !bin/console
51 | !bin/dist
52 | /.web-server-pid
53 | /.vagrant
54 | /.php-version
55 | /docker-compose.override.yml
56 | /.user.ini
57 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 22
2 |
--------------------------------------------------------------------------------
/.php-version:
--------------------------------------------------------------------------------
1 | 8.4
2 |
--------------------------------------------------------------------------------
/.rsync-exclude-prod:
--------------------------------------------------------------------------------
1 | - .git
2 | - */.git
3 | - */.github
4 | - */.gitignore
5 | - /node_modules
6 | - vendor/oro/platform/build/node_modules
7 | - [Tt]ests/[Uu]nit/
8 | - [Tt]ests/[Ff]unctional/
9 | - [Tt]ests/[Bb]ehat/
10 | - /public/media/**
11 | - /var/data/**
12 | - /var/logs/**
13 | - /var/cache/**
14 | - /var/sessions/**
15 | + *
16 |
--------------------------------------------------------------------------------
/.rsync-exclude-test:
--------------------------------------------------------------------------------
1 | - .git
2 | - */.git
3 | - */.github
4 | - */.gitignore
5 | - /node_modules
6 | - vendor/oro/platform/build/node_modules
7 | - /public/media/**
8 | - /var/data/**
9 | - /var/logs/**
10 | - /var/cache/**
11 | - /var/sessions/**
12 | + *
13 |
--------------------------------------------------------------------------------
/.stylelintignore:
--------------------------------------------------------------------------------
1 | **/node_modules/**
2 | **/public/build/**
3 | **/lib/*
4 | **/api-doc-bundle/**
5 | **/nelmioapidoc/**
6 | **/ThemeDefault*Bundle/**
7 | **/*.min.css
8 | **/Fixtures/**/*.css
9 |
--------------------------------------------------------------------------------
/.stylelintignore-css:
--------------------------------------------------------------------------------
1 | **/node_modules/**
2 | **/vendor/oro/**
3 | **/lib/*
4 | **/api-doc-bundle/**
5 | **/commerce-old-themes/**
6 | **/nelmioapidoc/**
7 | **/ThemeDefault*Bundle/**
8 | **/*.min.css
9 | **/*.min.rtl.css
10 | **/Fixtures/**/*.css
11 |
--------------------------------------------------------------------------------
/.stylelintrc-css.yml:
--------------------------------------------------------------------------------
1 | rules:
2 | annotation-no-unknown: true
3 | at-rule-descriptor-no-unknown: true
4 | at-rule-descriptor-value-no-unknown: true
5 | at-rule-no-deprecated: true
6 | at-rule-no-unknown: true
7 | at-rule-no-vendor-prefix: true
8 | custom-property-no-missing-var-function: true
9 | declaration-block-no-shorthand-property-overrides: true
10 | declaration-property-value-keyword-no-deprecated:
11 | - true
12 | - ignoreKeywords:
13 | - 'break-word'
14 | declaration-property-value-no-unknown:
15 | - true
16 | - propertiesSyntax:
17 | '-ms-grid-row-align': 'flex-start'
18 | font-family-no-duplicate-names: true
19 | font-family-no-missing-generic-family-keyword:
20 | - true
21 | - ignoreFontFamilies:
22 | - 'a'
23 | keyframe-block-no-duplicate-selectors: true
24 | media-feature-name-no-unknown: true
25 | media-feature-name-value-no-unknown: true
26 | media-query-no-invalid: true
27 | named-grid-areas-no-invalid: true
28 | no-invalid-double-slash-comments: true
29 | no-invalid-position-at-import-rule: true
30 | no-irregular-whitespace: true
31 | property-no-unknown: true
32 | selector-anb-no-unmatchable: true
33 | selector-pseudo-class-no-unknown: true
34 | selector-pseudo-element-no-unknown: true
35 | syntax-string-no-invalid: true
36 | media-feature-name-no-vendor-prefix: true
37 | declaration-property-value-disallowed-list:
38 | # Matching all custom properties
39 | /^--.*/:
40 | # Disallow any value starting with a $ - SCSS variable.
41 | - '/^\$.*$/'
42 | selector-no-vendor-prefix:
43 | - true
44 | - ignoreSelectors:
45 | - '::-moz-selection'
46 |
--------------------------------------------------------------------------------
/.stylelintrc.yml:
--------------------------------------------------------------------------------
1 | extends:
2 | - '@oroinc/oro-stylelint-config'
3 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | Please check the release notes at [GitHub](https://github.com/oroinc/platform-application/releases) for the list of new features and changes to the existing features of OroPlatform application.
2 |
3 | The CHANGELOG.md files of the individual packages comprising this application describe significant changes in the code that may affect the upgrade of your customizations.
4 |
5 | You can use the following command to find all CHANGELOG.md files in Oro packages:
6 | ```bash
7 | find -L vendor/oro -maxdepth 2 -type f -name CHANGELOG.md
8 | ```
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2024 Oro Inc.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | OroPlatform Application
2 | =======================
3 |
4 | What Is Included?
5 | --------------------
6 |
7 | This sample application includes OroPlatform Community Edition without eCommerce/CRM/marketplace modules.
8 |
9 | Other application distributions:
10 | * orocommerce-enterprise-application - OroCommerce Enterprise Edition
11 | * orocommerce-enterprise-nocrm-application - OroCommerce Enterprise Edition, without CRM modules
12 | * orocommerce-platform-application - OroCommerce Enterprise Edition, with additional marketplace modules
13 | * orocommerce-application - OroCommerce Community Edition
14 |
15 |
16 | * orocommerce-application-de - German-localized version of OroCommerce Community Edition
17 | * orocommerce-enterprise-application-de - German-localized version of OroCommerce Enterprise Edition
18 |
19 |
20 | * crm-application - OroCRM Community Edition, without eCommerce/marketplace modules
21 | * crm-enterprise-application - OroCRM Enterprise Edition, without eCommerce/marketplace modules
22 | * oromarketplace-application - legacy version (4.2 compatible) of OroCommerce Enterprise Edition with additional marketplace modules
23 |
24 | What is OroPlatform?
25 | --------------------
26 |
27 | OroPlatform is a business application process management system that is a backbone of the OroCRM and OroCommerce.
28 |
29 | OroCommerce is an open-source Business to Business Commerce application built with flexibility in mind. It can be customized and extended to fit any B2B commerce needs.
30 | You can find out more about OroCommerce at [www.orocommerce.com](https://www.orocommerce.com/).
31 |
32 | OroCRM is an open-source customer relationship Management application built with flexibility in mind. It can be customized and extended to fit any business needs.
33 | You can find out more about OroCRM at [www.orocrm.com](https://www.orocrm.com/).
34 |
35 | This OroPlatform application is an example of a fully functional application created with [OroPlatform](https://github.com/oroinc/platform). It can be used as a blueprint for custom business application development.
36 |
37 | System Requirements
38 | -------------------
39 |
40 | Please see the OroCRM online documentation for the complete list of [system requirements](https://doc.oroinc.com/backend/setup/system-requirements/).
41 |
42 | Installation
43 | ------------
44 |
45 | Please see the online [OroCRM Installation Guide](https://doc.oroinc.com/backend/setup/dev-environment/manual-installation/crm-ce/) for the detailed installation steps.
46 |
47 | Resources
48 | ---------
49 |
50 | * [OroPlatform Documentation](https://doc.oroinc.com)
51 | * [Contributing](https://doc.oroinc.com/community/contribute/)
52 |
53 | License
54 | -------
55 |
56 | [MIT][1] Copyright (c) 2024 Oro Inc.
57 |
58 | [1]: LICENSE
59 |
--------------------------------------------------------------------------------
/UPGRADE.md:
--------------------------------------------------------------------------------
1 | The upgrade instructions are available at [Oro documentation website](https://doc.oroinc.com/master/backend/setup/upgrade-to-new-version/).
2 |
3 | This file includes only the most important items that should be addressed before attempting to upgrade or during the upgrade of a vanilla Oro application.
4 |
5 | Please also refer to [CHANGELOG.md](CHANGELOG.md) for a list of significant changes in the code that may affect the upgrade of some customizations.
6 |
7 | ### 5.1.0 RC
8 |
9 | Added `.env-app` files support and removed most of the parameters from the config/parameters.yml in favor of environment variables with DSNs. For more details, see [the migration guide](https://doc.oroinc.com/master/backend/setup/dev-environment/env-vars/).
10 |
11 | * The supported PHP version is 8.2
12 | * The supported PostgreSQL version is 15
13 | * The supported NodeJS version is 18
14 | * The supported Redis version is 7
15 | * The supported RabbitMQ version is 3.11
16 | * The supported PHP MongoDB extension version is 1.15
17 | * The supported MongoDB version is 6.0
18 |
19 | ## 5.0.0
20 |
21 | The `oro.email.update_visibilities_for_organization` MQ process can take a long time when updating from the old versions
22 | if the system has many email addresses (in User, Customer user, Lead, Contact, RFP request, Mailbox entities).
23 | During performance tests with 1M of email addresses, this process took approximately 10 minutes.
24 |
25 | It is recommended to add these MQ topics to the `oro.index` queue:
26 |
27 | - `oro.email.recalculate_email_visibility`
28 | - `oro.email.update_visibilities`
29 | - `oro.email.update_visibilities_for_organization`
30 | - `oro.email.update_email_visibilities_for_organization`
31 | - `oro.email.update_email_visibilities_for_organization_chunk`
32 |
33 | ## 5.0.0-rc
34 |
35 | The supported NodeJS version is 16.0
36 |
37 | ## 5.0.0-alpha.2
38 |
39 | The minimum required PHP version is 8.0.0.
40 |
41 | ## 4.2.0
42 |
43 | * The minimum required PHP version is 7.4.14.
44 | * The minimum supported MySQL version is 8.0.
45 |
46 | ### Directory structure and filesystem changes
47 |
48 | The `var/attachment` and `var/import_export` directories are no longer used for storing files and have been removed from the default directory structure.
49 |
50 | All files from these directories must be moved to the new locations:
51 | - from `var/attachment/protected_mediacache` to `var/data/protected_mediacache`;
52 | - from `var/attachment` to `var/data/attachments`;
53 | - from `var/import_export` to `var/data/importexport`;
54 | - from `var/import_export/files` to `var/data/import_files`.
55 |
56 | The console command `oro:gaufrette:migrate-filestorages` will help to migrate the files to new structure.
57 |
58 | ### Routing
59 |
60 | The regular expressions in `fos_js_routing.routes_to_expose` configuration parameter (see `config/config.yml`) have changed.
61 |
62 | ### Directory structure and filesystem changes
63 |
64 | The `var/attachment` and `var/import_export` directories are no longer used for storing files and have been removed from the default directory structure.
65 |
66 | All files from these directories must be moved to the new locations:
67 | - from `var/attachment/protected_mediacache` to `var/data/protected_mediacache`;
68 | - from `var/attachment` to `var/data/attachments`;
69 | - from `var/import_export` to `var/data/importexport`;
70 | - from `var/import_export/files` to `var/data/import_files`.
71 |
72 | The console command `oro:gaufrette:migrate-filestorages` will help to migrate the files to new structure.
73 |
74 | The `public/uploads` directory has been removed.
75 |
76 | ## 4.1.0
77 |
78 | - The minimum required PHP version is 7.3.13.
79 | - The feature toggle for WEB API was implemented. After upgrade, the API feature will be disabled.
80 | To enable it please follow the documentation [Enabling an API Feature](https://doc.oroinc.com/api/enabling-api-feature/).
81 | - Upgrade PHP before running `composer install` or `composer update`, otherwise composer may download wrong versions of the application packages.
82 |
83 | ## 3.1.0
84 |
85 | * The minimum required PHP version is 7.1.26.
86 | * `oro:assets:install` command was removed, use [`assets:install`] instead.
87 | * `oro:assetic:dump` command was removed, use [`oro:assets:build`](src/Oro/Bundle/AssetBundle/README.md) instead.
88 | * `nodejs` and `npm` are required dependencies now
89 | * `oro_entity.database_exception_helper` service was removed. Catch `Doctrine\DBAL\Exception\RetryableException` directly instead of helper usage.
90 |
91 | Upgrade PHP before running `composer install` or `composer update`, otherwise composer may download wrong versions of the application packages.
92 |
93 | ## 3.0.0
94 | * To successfuly upgrade to 3.0.0 version which uses Symfony 3 you need to replace all form alias by their respective FQCN's in entity configs and embedded forms.
95 | Use the following script to find out which values should be changed.
96 | ```bash
97 | php vendor/oro/platform/bin/oro-form-alias-checker/oro-form-alias-checker
98 | ```
99 |
100 | ## 2.6.0
101 |
102 | * Changed minimum required php version to 7.1
103 |
104 | ## 2.3.1
105 | * A full rebuilding of the backend search index is required due to tokenizer configuration has been changed.
106 |
107 | ## 2.1.0
108 | * Changed minimum required php version to 7.0
109 | * Updated dependency to [fxpio/composer-asset-plugin](https://github.com/fxpio/composer-asset-plugin) composer plugin to version 1.3.
110 | * Composer updated to version 1.4.
111 |
112 | ```
113 | composer self-update
114 | composer global require "fxp/composer-asset-plugin"
115 | ```
116 | * The `oro:search:reindex` command now works synchronously by default. Use the `--scheduled` parameter if you need the old, async behaviour
117 |
118 | ## 2.0.0
119 |
120 | ### app/config/config.yml
121 | - removed `be_simple_soap` section.
122 | - removed `authentication_listener_class` parameter from `escape_wsse_authentication` section
123 |
124 | ## 1.9.0
125 |
126 | ### app/config/config.yml
127 |
128 | - Removed `doctrine` section. From now this declaration is located in `OroPlatformBundle` bundle. Remove declaration of DBAL connections and ORM entity managers from your `app/config/config.yml` to be sure that an application will work properly.
129 | - Removed unused `report_source` and `report_target` DBAL connections.
130 | - Added `config` DBAL connection and ORM entity manager. They can be used as a gateway for different kind of configuration data to improve performance of the default ORM entity manager. For example `OroEntityConfigBundle` uses them for entity configuration data.
131 |
132 | ## 1.8.0
133 |
134 | ### app/config/config.yml
135 | - Changed definition of `framework` / `templating` section. New definition is:
136 | ``` yaml
137 | framework:
138 | templating:
139 | engines: ['twig', 'php']
140 | assets_version: %assets_version%
141 | assets_version_format: %%s?version=%%s
142 | ```
143 | - Removed `twig` / `globals` / `ws` section. From now this declaration is located in `OroSyncBundle` bundle.
144 | - Removed `clank` section. From now this declaration is located in `OroSyncBundle` bundle.
145 | - Removed `doctrine.dbal.default.wrapped_connection` service.
146 | - Removed `session.handler.pdo` service. From now a declaration of this service is located in `OroPlatformBundle`. Remove this service from your `app/config/config.yml` to be sure that PDO session will work properly. If you need to override this service, you can keep it in your `app/config/config.yml`, but make sure that a default database connection is not used here. You can use `doctrine.dbal.session_connection.wrapped` service if sessions are stored in a main database.
147 |
148 | ### app/Resources
149 | - Removed `app/Resources/DoctrineBundle/views/Collector/db.html.twig`.
150 | - Removed `app/Resources/SecurityBundle/views/Collector/security.html.twig`.
151 | - Removed `app/Resources/SwiftmailerBundle/views/Collector/swiftmailer.html.twig`.
152 | - Removed `app/Resources/WebProfilerBundle/views/Collector/config.html.twig`.
153 | - Removed `app/Resources/WebProfilerBundle/views/Collector/logger.html.twig`.
154 | - Removed `app/Resources/WebProfilerBundle/views/Collector/memory.html.twig`.
155 | - Removed `app/Resources/WebProfilerBundle/views/Collector/request.html.twig`.
156 | - Removed `app/Resources/WebProfilerBundle/views/Collector/time.html.twig`.
157 |
--------------------------------------------------------------------------------
/behat.yml.dist:
--------------------------------------------------------------------------------
1 | imports:
2 | - ./vendor/oro/platform/src/Oro/Bundle/TestFrameworkBundle/Resources/config/behat.yml.dist
3 |
4 | default: &default
5 | gherkin:
6 | filters:
7 | tags: ~@not-automated&&~@skip
8 | extensions:
9 | Behat\MinkExtension:
10 | base_url: 'http://dev-platform.local/'
11 | FriendsOfBehat\SymfonyExtension:
12 | kernel:
13 | debug: false
14 | class: AppKernel
15 | Oro\Bundle\TestFrameworkBundle\Behat\ServiceContainer\OroTestFrameworkExtension: ~
16 |
17 | chromedriver:
18 | <<: *default
19 |
--------------------------------------------------------------------------------
/bin/console:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | setProdEnvs(['prod', 'behat_test'])
10 | ->bootEnv(dirname(__DIR__).'/.env-app', 'prod', ['test']);
11 | EntityExtendTestInitializer::initialize();
12 |
--------------------------------------------------------------------------------
/config/config.yml:
--------------------------------------------------------------------------------
1 | imports:
2 | - { resource: parameters.yml, ignore_errors: not_found }
3 | - { resource: security.yml }
4 | - { resource: doctrine.yml }
5 |
6 | parameters:
7 | # Some parameter values are not set from environment variables because Symfony service container build
8 | # depends on them. These parameter values cannot be changed in runtime without the application cache rebuild.
9 | database_server_version: '13.7'
10 | secret: '%env(ORO_SECRET)%'
11 | database_dsn: '%env(ORO_DB_DSN)%'
12 | mailer_dsn: '%env(ORO_MAILER_DSN)%'
13 | websocket_server_dsn: '%env(ORO_WEBSOCKET_SERVER_DSN)%' # The websocket server will listen on this address and port.
14 | websocket_frontend_dsn: '%env(ORO_WEBSOCKET_FRONTEND_DSN)%' # The host, port and path for the browser to connect to.
15 | websocket_backend_dsn: '%env(ORO_WEBSOCKET_BACKEND_DSN)%' # The host, port and path for the server-side code to connect to.
16 | search_engine_dsn: '%env(ORO_SEARCH_ENGINE_DSN)%'
17 | session_handler_dsn: '%env(ORO_SESSION_DSN)%'
18 | message_queue_transport_dsn: '%env(ORO_MQ_DSN)%'
19 | liip_imagine.jpegoptim.binary: '%env(ORO_JPEGOPTIM_BINARY)%'
20 | liip_imagine.pngquant.binary: '%env(ORO_PNGQUANT_BINARY)%'
21 | tracking_data_folder: '%env(ORO_TRACKING_DATA_FOLDER)%'
22 | maintenance_lock_file_path: '%env(resolve:ORO_MAINTENANCE_LOCK_FILE_PATH)%'
23 | oauth2_public_key: '%env(resolve:ORO_OAUTH_PUBLIC_KEY_PATH)%'
24 | oauth2_private_key: '%env(resolve:ORO_OAUTH_PRIVATE_KEY_PATH)%'
25 | log_path: '%env(resolve:ORO_LOG_PATH)%'
26 | log_stacktrace_level: '%env(resolve:ORO_LOG_STACKTRACE_LEVEL)%' # The minimum log message level for which an exception stacktrace should be logged. To disable the stacktrace logging an empty string or "none" value can be used.
27 |
28 | env(ORO_SECRET): ThisTokenIsNotSoSecretChangeIt
29 | env(ORO_DB_URL): 'postgresql://root@127.0.0.1/bap_standard'
30 | env(ORO_DB_DSN): '%env(ORO_DB_URL)%'
31 | env(ORO_MAILER_DSN): 'native://default'
32 | env(ORO_SEARCH_URL): 'orm:'
33 | env(ORO_SEARCH_ENGINE_DSN): '%env(ORO_SEARCH_URL)%?prefix=oro_search'
34 | env(ORO_SESSION_DSN): 'native:'
35 | env(ORO_WEBSOCKET_SERVER_DSN): '//0.0.0.0:8080'
36 | env(ORO_WEBSOCKET_FRONTEND_DSN): '//*:8080/ws'
37 | env(ORO_WEBSOCKET_BACKEND_DSN): 'tcp://127.0.0.1:8080'
38 | env(ORO_MQ_DSN): 'dbal:'
39 | env(ORO_JPEGOPTIM_BINARY): ''
40 | env(ORO_PNGQUANT_BINARY): ''
41 | env(ORO_REDIS_URL): 'redis://127.0.0.1:6379'
42 | env(ORO_REDIS_SESSION_DSN): '%env(ORO_REDIS_URL)%/0'
43 | env(ORO_REDIS_CACHE_DSN): '%env(ORO_REDIS_URL)%/1'
44 | env(ORO_REDIS_DOCTRINE_DSN): '%env(ORO_REDIS_URL)%/2'
45 | env(ORO_TRACKING_DATA_FOLDER): null
46 | env(ORO_MAINTENANCE_LOCK_FILE_PATH): '%kernel.project_dir%/var/maintenance/maintenance_lock'
47 | env(ORO_OAUTH_PUBLIC_KEY_PATH): '%kernel.project_dir%/var/oauth_public.key'
48 | env(ORO_OAUTH_PRIVATE_KEY_PATH): '%kernel.project_dir%/var/oauth_private.key'
49 | env(ORO_LOG_PATH): "%kernel.logs_dir%/%kernel.environment%.log"
50 | env(ORO_LOG_STACKTRACE_LEVEL): 'error'
51 |
52 | framework:
53 | #esi: ~
54 | translator:
55 | paths:
56 | - '%kernel.project_dir%/translations'
57 | fallback: en
58 | secret: "%secret%"
59 | router:
60 | resource: "%kernel.project_dir%/config/routing.yml"
61 | strict_requirements: "%kernel.debug%"
62 | form:
63 | legacy_error_messages: false
64 | csrf_protection: true
65 | validation: { enable_annotations: true }
66 | assets:
67 | version_strategy: 'Oro\Bundle\AssetBundle\VersionStrategy\BuildVersionStrategy'
68 | default_locale: en
69 | session:
70 | # More info about session cookie configuration can be found at
71 | # https://doc.oroinc.com/backend/setup/post-install/cookies-configuration/#back-office-session-cookie
72 | name: BAPID
73 | handler_id: '%session_handler%'
74 | save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
75 | gc_maxlifetime: 7200 #120 minutes
76 | cookie_httponly: true
77 | cookie_secure: 'auto'
78 | fragments:
79 | enabled: false
80 | path: /_fragment # used for controller action in template
81 | serializer:
82 | enabled: true
83 | mailer:
84 | transports:
85 | main: 'oro://system-config?fallback=%mailer_dsn%'
86 | oro_user_email_origin: 'oro://user-email-origin'
87 |
88 | # Twig Configuration
89 | twig:
90 | debug: "%kernel.debug%"
91 | strict_variables: "%kernel.debug%"
92 | globals:
93 | bap:
94 | layout: base.html.twig # default layout across all Oro bundles
95 |
96 | fos_js_routing:
97 | routes_to_expose: ['oro_.*']
98 |
99 | stof_doctrine_extensions:
100 | default_locale: en
101 | translation_fallback: true
102 | orm:
103 | default:
104 | translatable: true
105 | tree: true
106 |
107 | oro_translation:
108 | locales: [en, fr]
109 | templating: "@OroUI/Form/translatable.html.twig"
110 |
111 | oro_maintenance:
112 | authorized:
113 | path: 'maintenance|.*\.js' # "maintenance" is only for demo purposes, remove in production!
114 | # ips: ["127.0.0.1"] # Optional. Authorized ip addresses
115 | driver:
116 | options:
117 | file_path: '%maintenance_lock_file_path%'
118 |
119 | #
120 | # ORO Bundles config
121 | #
122 | oro_theme:
123 | active_theme: oro
124 |
125 | oro_locale:
126 | formatting_code: en
127 | language: en
128 |
129 | oro_attachment:
130 | upload_file_mime_types:
131 | - text/csv
132 | - text/plain
133 | - application/msword
134 | - application/vnd.openxmlformats-officedocument.wordprocessingml.document
135 | - application/vnd.ms-excel
136 | - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
137 | - application/vnd.ms-powerpoint
138 | - application/vnd.openxmlformats-officedocument.presentationml.presentation
139 | - application/pdf
140 | - application/zip
141 | - image/gif
142 | - image/jpeg
143 | - image/png
144 | - image/webp
145 | upload_image_mime_types:
146 | - image/gif
147 | - image/jpeg
148 | - image/png
149 | - image/webp
150 |
--------------------------------------------------------------------------------
/config/config_behat_test.yml:
--------------------------------------------------------------------------------
1 | imports:
2 | - { resource: ./../vendor/**/Tests/Behat/parameters.yml }
3 | - { resource: config_prod.yml }
4 |
--------------------------------------------------------------------------------
/config/config_cloud.yml:
--------------------------------------------------------------------------------
1 | imports:
2 | - { resource: config_prod.yml }
3 |
4 | parameters:
5 | env(ORO_LOG_PATH): "php://stderr"
6 |
7 |
8 | sftp_root_path: '%env(ORO_SFTP_ROOT_PATH)%'
9 | env(ORO_SFTP_ROOT_PATH): '%kernel.project_dir%/var/sftp'
10 |
11 | gaufrette_adapter.public: 'gridfs:%env(ORO_MONGODB_DSN_PUBLIC)%'
12 | gaufrette_adapter.private: 'gridfs:%env(ORO_MONGODB_DSN_PRIVATE)%'
13 | gaufrette_adapter.import_files: 'local:%env(ORO_IMPORT_EXPORT_PATH)%'
14 | env(ORO_IMPORT_EXPORT_PATH): '%kernel.project_dir%/var/data/import_files'
15 |
16 | redis_dsn_cache: '%env(ORO_REDIS_CACHE_DSN)%'
17 | redis_dsn_doctrine: '%env(ORO_REDIS_DOCTRINE_DSN)%'
18 | redis_dsn_layout: '%env(ORO_REDIS_LAYOUT_DSN)%'
19 |
20 | env(APP_RUNTIME): Oro\Bundle\DistributionBundle\Runtime\CloudRuntime
21 |
--------------------------------------------------------------------------------
/config/config_dev.yml:
--------------------------------------------------------------------------------
1 | imports:
2 | - { resource: config.yml }
3 | - { resource: security_dev.yml }
4 |
5 | parameters:
6 | main_log_channels: []
7 |
8 | framework:
9 | router: { resource: "%kernel.project_dir%/config/routing_dev.yml" }
10 | profiler: { only_exceptions: false }
11 | ide: phpstorm
12 | # mailer:
13 | # envelope:
14 | # recipients: ['me@example.com']
15 |
16 | web_profiler:
17 | toolbar: true
18 | excluded_ajax_paths: '^/((index(_[\w]+)|app(_[\w]+)?)\.php/)?(_wdt|bundles)'
19 | intercept_redirects: false
20 |
21 | monolog:
22 | handlers:
23 | main:
24 | type: stream
25 | path: "%log_path%"
26 | level: debug
27 | channels: '%main_log_channels%' # The channels configuration only works for top-level handlers
28 |
29 | oro_message_queue:
30 | client:
31 | traceable_producer: true
32 |
--------------------------------------------------------------------------------
/config/config_prod.yml:
--------------------------------------------------------------------------------
1 | imports:
2 | - { resource: config.yml }
3 |
4 | parameters:
5 | main_log_channels: []
6 |
7 | doctrine:
8 | dbal:
9 | logging: true
10 |
11 | monolog:
12 | handlers:
13 | filtered:
14 | type: filter
15 | min_level: info
16 | handler: main
17 | channels: '%main_log_channels%' # The channels configuration only works for top-level handlers
18 | main:
19 | type: fingers_crossed
20 | action_level: error
21 | handler: grouped
22 | buffer_size: 100
23 | excluded_http_codes: [ 404, 405 ]
24 | grouped:
25 | type: group
26 | members: [streamed, deduplicated]
27 |
28 | streamed:
29 | type: stream
30 | path: "%log_path%"
31 | level: debug
32 |
33 | deduplicated:
34 | type: deduplication
35 | handler: symfony_mailer
36 | time: 10
37 | store: "%kernel.logs_dir%/deduplicated.log"
38 |
39 | symfony_mailer:
40 | type: symfony_mailer
41 | email_prototype:
42 | id: oro_logger.monolog.email_factory.error_log_notification
43 | method: createEmail
44 | level: debug
45 | formatter: monolog.formatter.html
46 |
--------------------------------------------------------------------------------
/config/config_test.yml:
--------------------------------------------------------------------------------
1 | imports:
2 | - { resource: config.yml }
3 | - { resource: security_test.yml }
4 |
5 | parameters:
6 | doctrine.dbal.connection_factory.class: 'Oro\Component\Testing\Doctrine\PersistentConnectionFactory'
7 | message_queue_transport_dsn: 'dbal:'
8 | main_log_channels: []
9 |
10 | framework:
11 | test: ~
12 | session:
13 | storage_factory_id: session.storage.factory.mock_file
14 | csrf_protection: true
15 | profiler:
16 | enabled: false
17 | mailer:
18 | transports:
19 | main: 'null://null'
20 | oro_user_email_origin: 'null://null'
21 |
22 | monolog:
23 | handlers:
24 | fingers_crossed:
25 | type: fingers_crossed
26 | action_level: error
27 | handler: nested
28 | excluded_http_codes: [ 404, 405 ]
29 | channels: [ "!event" ]
30 | nested:
31 | type: stream
32 | path: "%log_path%"
33 | level: debug
34 | channels: '%main_log_channels%'
35 |
36 | # configure loose default password requirements for auto-generated test users
37 | oro_user:
38 | settings:
39 | password_min_length:
40 | value: 2
41 | password_lower_case:
42 | value: false
43 | password_upper_case:
44 | value: false
45 | password_numbers:
46 | value: false
47 | password_special_chars:
48 | value: false
49 |
50 | twig:
51 | strict_variables: true
52 | debug: false
53 |
54 | oro_api:
55 | settings:
56 | web_api:
57 | value: true
58 |
59 | oro_message_queue:
60 | client:
61 | redelivery:
62 | delay_time: 1
63 |
--------------------------------------------------------------------------------
/config/doctrine.yml:
--------------------------------------------------------------------------------
1 | doctrine:
2 | orm:
3 | mappings:
4 | App:
5 | is_bundle: false
6 | type: attribute
7 | dir: '%kernel.project_dir%/src/Entity'
8 | prefix: 'App\Entity'
9 | alias: App
10 |
--------------------------------------------------------------------------------
/config/routing.yml:
--------------------------------------------------------------------------------
1 | oro_default:
2 | path: /
3 | defaults:
4 | _controller: Oro\Bundle\DashboardBundle\Controller\DashboardController::viewAction
5 |
6 | oro_auto_routing:
7 | resource: .
8 | type: oro_auto
9 |
10 | oro_expose:
11 | resource: .
12 | type: oro_expose
13 |
--------------------------------------------------------------------------------
/config/routing_dev.yml:
--------------------------------------------------------------------------------
1 | _wdt:
2 | resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
3 | prefix: /_wdt
4 | options:
5 | expose: true
6 |
7 | _profiler:
8 | resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
9 | prefix: /_profiler
10 | options:
11 | expose: true
12 |
13 | _errors:
14 | resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
15 | prefix: /_error
16 |
17 | _main:
18 | resource: routing.yml
19 |
--------------------------------------------------------------------------------
/config/security.yml:
--------------------------------------------------------------------------------
1 | security:
2 | firewalls:
3 | dev:
4 | pattern: ^/(_(profiler|wdt)|css|images|js)/
5 | security: false
6 |
--------------------------------------------------------------------------------
/config/security_dev.yml:
--------------------------------------------------------------------------------
1 | oro_security:
2 | access_control:
3 | - { path: ^/(_wdt|_profiler|_error).*$, roles: PUBLIC_ACCESS }
4 |
--------------------------------------------------------------------------------
/config/security_test.yml:
--------------------------------------------------------------------------------
1 | security:
2 | access_decision_manager:
3 | strategy: unanimous
4 | firewalls:
5 | main:
6 | organization-http-basic:
7 | realm: "Secured REST Area"
8 | provider: oro_user
9 | entry_point: organization_http_basic
10 | http-basic: false
11 | organization-form-login: false
12 | logout: false
13 | organization-remember-me: false
14 |
--------------------------------------------------------------------------------
/dev.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "oro/platform-application",
3 | "description": "Oro Platform Empty Application",
4 | "homepage": "https://github.com/oroinc/platform-application.git",
5 | "license": "MIT",
6 | "authors": [
7 | {
8 | "name": "Oro, Inc",
9 | "homepage": "https://oroinc.com/"
10 | }
11 | ],
12 | "autoload": {
13 | "psr-4": {"": "src/"},
14 | "classmap": [
15 | "src/AppKernel.php"
16 | ],
17 | "exclude-from-classmap": [
18 | "**/Tests/"
19 | ]
20 | },
21 | "repositories": [
22 | {
23 | "type": "path",
24 | "url": "../../package/*"
25 | },
26 | {
27 | "type": "composer",
28 | "url": "https://packagist.oroinc.com"
29 | }
30 | ],
31 | "require": {
32 | "php": "~8.4.0",
33 | "oro/platform": "6.1.x-dev",
34 | "oro/platform-serialised-fields": "6.1.x-dev",
35 | "oro/oauth2-server": "6.1.x-dev",
36 | "oro/calendar-bundle": "6.1.x-dev",
37 | "oro/gridfs-config": "6.1.x-dev"
38 | },
39 | "require-dev": {
40 | "behat/behat": "~3.18.0",
41 | "behat/gherkin": "~4.11.0",
42 | "behat/mink": "~1.12.0",
43 | "friends-of-behat/mink-extension": "~v2.7.5",
44 | "behat/mink-selenium2-driver": "~1.6.0",
45 | "friends-of-behat/symfony-extension": "~2.6.0",
46 | "nelmio/alice": "~3.14.0",
47 | "theofidry/alice-data-fixtures": "~1.6.0",
48 | "phpunit/phpunit": "~9.5.27",
49 | "squizlabs/php_codesniffer": "~3.10.1",
50 | "phpmd/phpmd": "~2.15.0",
51 | "symfony/phpunit-bridge": "~6.4.0",
52 | "symfony/browser-kit": "~6.4.0",
53 | "symfony/css-selector": "~6.4.0",
54 | "symfony/debug-bundle": "~6.4.0",
55 | "symfony/dom-crawler": "~6.4.0",
56 | "symfony/stopwatch": "~6.4.0",
57 | "symfony/var-dumper": "~6.4.0",
58 | "symfony/var-exporter": "~6.4.0",
59 | "symfony/web-profiler-bundle": "~6.4.0",
60 | "friendsofphp/php-cs-fixer": "~3.57.2",
61 | "oro/twig-inspector": "1.1.*",
62 | "oro/maker": "6.1.x-dev"
63 | },
64 | "config": {
65 | "bin-dir": "bin",
66 | "fxp-asset": {
67 | "enabled": false
68 | },
69 | "allow-plugins": {
70 | "composer/package-versions-deprecated": true,
71 | "symfony/runtime": true,
72 | "symfony/flex": true,
73 | "php-http/discovery": false
74 | }
75 | },
76 | "scripts": {
77 | "post-install-cmd": [
78 | "@set-permissions",
79 | "@install-npm-assets",
80 | "@set-assets-version",
81 | "@execute-post-install-package-scripts",
82 | "@install-assets"
83 | ],
84 | "post-update-cmd": [
85 | "@set-permissions",
86 | "@update-npm-assets",
87 | "@set-assets-version",
88 | "@execute-post-update-package-scripts",
89 | "@install-assets"
90 | ],
91 | "execute-post-install-package-scripts": [
92 | "Oro\\Bundle\\InstallerBundle\\Composer\\ScriptHandler::executePostInstallPackageScripts"
93 | ],
94 | "execute-post-update-package-scripts": [
95 | "Oro\\Bundle\\InstallerBundle\\Composer\\ScriptHandler::executePostUpdatePackageScripts"
96 | ],
97 | "set-permissions": [
98 | "Oro\\Bundle\\InstallerBundle\\Composer\\ScriptHandler::setPermissions"
99 | ],
100 | "install-npm-assets": [
101 | "Oro\\Bundle\\InstallerBundle\\Composer\\ScriptHandler::installAssets"
102 | ],
103 | "update-npm-assets": [
104 | "Oro\\Bundle\\InstallerBundle\\Composer\\ScriptHandler::updateAssets"
105 | ],
106 | "set-assets-version": [
107 | "Oro\\Bundle\\InstallerBundle\\Composer\\ScriptHandler::setAssetsVersion"
108 | ],
109 | "set-parameters": [
110 | "Oro\\Bundle\\InstallerBundle\\Composer\\ParametersHandler::set"
111 | ],
112 | "install-assets": [
113 | "console oro:assets:install --no-interaction --no-ansi"
114 | ],
115 | "upgrade:full": [
116 | "@health",
117 | "@platform:update:dry-run",
118 | "@notification:start",
119 | "@global:lock",
120 | "@maintenance:lock",
121 | "@platform:update --skip-search-reindexation",
122 | "@cache",
123 | "@maintenance:unlock",
124 | "@notification:finish"
125 | ],
126 | "upgrade:full:reindex": [
127 | "@health",
128 | "@platform:update:dry-run",
129 | "@notification:start",
130 | "@global:lock",
131 | "@maintenance:lock",
132 | "@platform:update",
133 | "@cache",
134 | "@maintenance:unlock",
135 | "@notification:finish"
136 | ],
137 | "upgrade:rolling": [
138 | "@health",
139 | "@platform:update:dry-run",
140 | "@notification:start",
141 | "@platform:update --skip-search-reindexation",
142 | "@cache",
143 | "@notification:finish"
144 | ],
145 | "upgrade:rolling:reindex": [
146 | "@health",
147 | "@platform:update:dry-run",
148 | "@notification:start",
149 | "@platform:update --skip-search-reindexation",
150 | "@cache",
151 | "@notification:finish"
152 | ],
153 | "upgrade:source": [
154 | "console cache:warmup --no-interaction --no-ansi",
155 | "@health",
156 | "console oro:check-requirements --no-interaction --no-ansi",
157 | "@notification:start",
158 | "console oro:translation:update --all --no-interaction --no-ansi",
159 | "console oro:translation:load --no-interaction --no-ansi",
160 | "console oro:translation:dump --no-interaction --no-ansi",
161 | "console fos:js-routing:dump --no-interaction --no-ansi",
162 | "@notification:finish"
163 | ],
164 | "schema-update": [
165 | "Composer\\Config::disableProcessTimeout",
166 | "console cache:warmup --no-interaction --no-ansi",
167 | "@health",
168 | "console oro:entity-extend:update --dry-run --no-interaction --no-ansi",
169 | "@global:lock",
170 | "@maintenance:lock",
171 | "console oro:entity-extend:update --no-interaction --no-ansi",
172 | "@maintenance:unlock"
173 | ],
174 | "health": [
175 | "console monitor:health doctrine_dbal --no-interaction --no-ansi",
176 | "console monitor:health mail_transport --no-interaction --no-ansi",
177 | "console monitor:health rabbitmq_server --no-interaction --no-ansi",
178 | "console monitor:health elasticsearch --no-interaction --no-ansi",
179 | "console monitor:health redis_cache --no-interaction --no-ansi",
180 | "console monitor:health redis_doctrine_cache --no-interaction --no-ansi",
181 | "console monitor:health redis_session_storage --no-interaction --no-ansi"
182 | ],
183 | "platform:update:dry-run": [
184 | "console oro:platform:update --timeout=0 --no-interaction --no-ansi"
185 | ],
186 | "platform:update": [
187 | "Composer\\Config::disableProcessTimeout",
188 | "console oro:platform:update --timeout=0 --force --no-interaction --no-ansi"
189 | ],
190 | "cache": [
191 | "console cache:clear --no-interaction --no-ansi"
192 | ],
193 | "cache:api": [
194 | "console cache:warmup --no-interaction --no-ansi",
195 | "console oro:api:cache:clear --no-interaction --no-ansi",
196 | "console oro:api:doc:cache:clear --no-interaction --no-ansi"
197 | ],
198 | "cache:translation": [
199 | "console cache:warmup --no-interaction --no-ansi",
200 | "console oro:translation:rebuild-cache --no-interaction --no-ansi"
201 | ],
202 | "global:lock": "touch ${ORO_GLOBAL_LOCK_FILE_PATH:-var/maintenance/global_lock}",
203 | "global:unlock": "rm -f ${ORO_GLOBAL_LOCK_FILE_PATH:-var/maintenance/global_lock}",
204 | "maintenance:lock": [
205 | "console oro:maintenance-notification --message=Maintenance\\ start --subject=At\\ $ORO_APP_URL --no-interaction --no-ansi",
206 | "console oro:maintenance:lock --no-interaction --no-ansi"
207 | ],
208 | "maintenance:unlock": [
209 | "console oro:maintenance:unlock --no-interaction --no-ansi",
210 | "console oro:maintenance-notification --message=Maintenance\\ finish --subject=At\\ $ORO_APP_URL --no-interaction --no-ansi"
211 | ],
212 | "notification:start": [
213 | "console oro:maintenance-notification --message=Deploy\\ start --subject=At\\ $ORO_APP_URL --no-interaction --no-ansi"
214 | ],
215 | "notification:finish": [
216 | "console oro:maintenance-notification --message=Deploy\\ finish --subject=At\\ $ORO_APP_URL --no-interaction --no-ansi"
217 | ]
218 | },
219 | "minimum-stability": "dev",
220 | "prefer-stable": true,
221 | "extra": {
222 | "runtime": {
223 | "dotenv_path": ".env-app",
224 | "env_var_name": "ORO_ENV",
225 | "debug_var_name": "ORO_DEBUG",
226 | "prod_envs": ["prod", "behat_test"]
227 | },
228 | "symfony-web-dir": "public",
229 | "symfony-var-dir": "var",
230 | "symfony-bin-dir": "bin",
231 | "symfony-tests-dir": "tests"
232 | }
233 | }
234 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '3.5'
2 | services:
3 | pgsql:
4 | image: oroinc/pgsql:13.7-1-alpine
5 | ports: ['5432']
6 | labels:
7 | com.symfony.server.service-prefix: ORO_DB
8 | environment:
9 | POSTGRES_USER: oro_db_user
10 | POSTGRES_DB: oro_db
11 | POSTGRES_PASSWORD: oro_db_pass
12 | POSTGRES_ROOT_PASSWORD: oro_db_pass
13 | volumes:
14 | - postgres:/var/lib/postgresql/data
15 | healthcheck:
16 | test: "pg_isready -U$${POSTGRES_USER} -d$${POSTGRES_DB}"
17 | interval: 5s
18 | timeout: 30s
19 | start_period: 40s
20 | restart: on-failure
21 | redis:
22 | image: redis:6-alpine
23 | ports: ["6379"]
24 | labels:
25 | com.symfony.server.service-prefix: ORO_REDIS
26 | mailcatcher:
27 | image: schickling/mailcatcher
28 | ports: ['1025', '1080']
29 | labels:
30 | com.symfony.server.service-prefix: ORO_MAILER
31 | volumes:
32 | postgres: {}
33 |
--------------------------------------------------------------------------------
/karma.conf.js.dist:
--------------------------------------------------------------------------------
1 | /* eslint indent: ["error", 2] */
2 | /* eslint-env node */
3 | const fs = require('fs');
4 | const glob = require('glob');
5 | const path = require('path');
6 | const args = require('minimist')(process.argv.slice(4));
7 |
8 | const appDir = path.resolve('.');
9 | const environment = args.env || 'dev';
10 | const theme = args.theme || 'admin.oro';
11 |
12 | const webpackConfig = (function() {
13 | const OroConfig = require('@oroinc/oro-webpack-config-builder');
14 | OroConfig
15 | .enableLayoutThemes()
16 | .setPublicPath('public/')
17 | .setCachePath('var/cache');
18 |
19 | const {resolve, module, resolveLoader} = OroConfig.getWebpackConfig()({
20 | skipCSS: true,
21 | theme: theme,
22 | symfony: environment
23 | }, {})[0];
24 |
25 | const rules = [...module.rules];
26 | const index = rules.findIndex(rule => rule.loader === 'config-loader');
27 | rules.splice(index, 1, {
28 | ...rules[index],
29 | options: {
30 | ...rules[index].options,
31 | relativeTo: appDir
32 | }
33 | });
34 |
35 | return {
36 | resolve: {
37 | ...resolve,
38 | alias: {
39 | ...resolve.alias,
40 | 'dynamic-imports$':
41 | path.resolve('vendor/oro/platform/src/Oro/Bundle/TestFrameworkBundle/Karma/dynamic-imports.js')
42 | },
43 | modules: [
44 | appDir,
45 | path.resolve('vendor/oro/platform/src/Oro/Bundle/TestFrameworkBundle/Karma'),
46 | ...resolve.modules
47 | ]
48 | },
49 | module: {
50 | ...module,
51 | rules
52 | },
53 | resolveLoader
54 | };
55 | })();
56 |
57 | const specMask = args.mask || 'vendor/oro/**/Tests/JS/**/*Spec.js';
58 | const specFileName = args.spec || `var/cache/${environment}/${theme}/indexSpec.js`;
59 |
60 | if (!args.spec && !(args['skip-indexing'] && fs.existsSync(specFileName))) {
61 | console.log('[%o] Collecting Spec files by mask "%s"...', new Date(), specMask);
62 | const files = glob.sync(specMask, {follow: true});
63 | console.log('[%o] Found %d Spec files', new Date(), files.length);
64 | fs.mkdirSync(path.dirname(specFileName), {recursive: true});
65 | fs.writeFileSync(specFileName, files.map(file => `require('${file}');`).join('\n'));
66 | }
67 | console.log('[%o] Starting Karma for "%s"...', new Date(), specFileName);
68 |
69 | module.exports = function(config) {
70 | config.set({
71 | // base path, that will be used to resolve files and exclude
72 | basePath: '',
73 | baseUrl: '/',
74 |
75 | frameworks: ['jasmine'],
76 |
77 | // list of files / patterns to load in the browser
78 | files: [
79 | specFileName
80 | ],
81 |
82 | // list of files to exclude
83 | exclude: [],
84 |
85 | preprocessors: {
86 | '**/*Spec.js': ['webpack']
87 | },
88 |
89 | // use dots reporter, as travis terminal does not support escaping sequences
90 | // possible values: 'dots', 'progress'
91 | // CLI --reporters progress
92 | reporters: ['progress', /* 'coverage', */ 'junit'],
93 |
94 | junitReporter: {
95 | // will be resolved to basePath (in the same way as files/exclude patterns)
96 | outputDir: 'build/logs',
97 | outputFile: 'karma.xml',
98 | useBrowserName: false
99 | },
100 |
101 | /* coverageReporter: {
102 | type: 'html',
103 | dir: 'build/logs/js-coverage/'
104 | }, */
105 |
106 | // web server port
107 | // CLI --port 9876
108 | port: 9876,
109 |
110 | // enable / disable colors in the output (reporters and logs)
111 | // CLI --colors --no-colors
112 | colors: true,
113 |
114 | // level of logging
115 | // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
116 | // CLI --log-level debug
117 | logLevel: config.LOG_INFO,
118 |
119 | // enable / disable watching file and executing tests whenever any file changes
120 | // CLI --auto-watch --no-auto-watch
121 | autoWatch: true,
122 |
123 | // Start these browsers, currently available:
124 | // - Chrome
125 | // - ChromeCanary
126 | // - Firefox
127 | // - Opera
128 | // - Safari (only Mac)
129 | // - IE (only Windows)
130 | // CLI --browsers Chrome,Firefox,Safari
131 | // browsers: [process.env.TRAVIS ? 'Firefox' : 'Chrome'],
132 | browsers: ['ChromeHeadless'],
133 | // browsers: ['Chrome'],
134 | // browsers: ['Firefox'],
135 |
136 | // If browser does not capture in given timeout [ms], kill it
137 | // CLI --capture-timeout 5000
138 | captureTimeout: 20000,
139 |
140 | // Auto run tests on start (when browsers are captured) and exit
141 | // CLI --single-run --no-single-run
142 | singleRun: false,
143 |
144 | // report which specs are slower than 500ms
145 | // CLI --report-slower-than 500
146 | reportSlowerThan: 500,
147 |
148 | // Concurrency level
149 | // how many browser should be started simultaneous
150 | concurrency: Infinity,
151 |
152 | plugins: [
153 | 'karma-webpack',
154 | 'karma-jasmine',
155 | 'karma-junit-reporter',
156 | 'karma-firefox-launcher',
157 | 'karma-chrome-launcher'
158 | ],
159 |
160 | webpack: {
161 | ...webpackConfig,
162 | devtool: false,
163 | mode: 'none',
164 | optimization: {
165 | moduleIds: 'named'
166 | }
167 | },
168 | webpackMiddleware: {
169 | // turn off webpack bash output when running the tests
170 | noInfo: true,
171 | stats: 'errors-only'
172 | }
173 | });
174 | };
175 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "THE FILE IS GENERATED PROGRAMMATICALLY, ALL MANUAL CHANGES IN DEPENDENCIES SECTION WILL BE LOST",
3 | "homepage": "https://doc.oroinc.com/master/frontend/javascript/composer-js-dependencies/",
4 | "main": "webpack.config.js",
5 | "engines": {
6 | "npm": ">=10.8.3 <11",
7 | "node": ">=v22.9.0 <23"
8 | },
9 | "scripts": {
10 | "webpack": "check-engine && webpack",
11 | "build": "npm run webpack -- --mode=production",
12 | "watch": "npm run webpack -- -w --progress --stats-logging warn --stats-logging-debug sass-loader",
13 | "build-css": "npm run webpack -- --stats-logging warn --stats-logging-debug sass-loader --env skipJS",
14 | "build-js": "npm run webpack -- --stats-logging warn --env skipCSS",
15 | "lint": "echo 'Configure own command on a base of following template `npm run eslint vendor/%name% && npm run stylelint vendor/%name%/**/**.{css,scss}`'",
16 | "lint-oro": "npm run eslint-oro && npm run stylelint-oro",
17 | "eslint": "check-engine && eslint -c .eslintrc.yml --ignore-path .eslintignore",
18 | "eslint-oro": "npm run eslint vendor/oro",
19 | "stylelint": "check-engine && stylelint --config .stylelintrc.yml --ignore-path .stylelintignore",
20 | "stylelint-oro": "npm run stylelint vendor/oro/**/*.{css,scss}",
21 | "test": "npm run test-watch -- --single-run",
22 | "test-watch": "check-engine && karma start karma.conf.js.dist",
23 | "validate-css": "stylelint --config .stylelintrc-css.yml --ignore-path .stylelintignore-css public/build/**/*.css"
24 | },
25 | "dependencies": {
26 | "@babel/runtime": "^7.16.3",
27 | "@codemirror/view": "6.34.2",
28 | "@lezer/generator": "^1.3.0",
29 | "@lezer/lezer": "^1.1.2",
30 | "@oroinc/autobahnjs": "0.8.0",
31 | "@oroinc/backbone.pageable": "1.2.3-oro2",
32 | "@oroinc/bootstrap": "4.3.1-oro2",
33 | "@oroinc/font-awesome": "4.7.0-oro2",
34 | "@oroinc/jquery-ajax-queue": "0.0.1",
35 | "@oroinc/jquery.nicescroll": "3.6.6",
36 | "@oroinc/jquery.uniform": "4.3.*",
37 | "@oroinc/jsplumb": "1.7.*",
38 | "@oroinc/select2": "3.4.1",
39 | "@oroinc/slick-carousel": "1.7.1-oro3",
40 | "asap": "2.0.6",
41 | "autolinker": "4.0.0",
42 | "backbone": "1.4.*",
43 | "backgrid": "0.3.8",
44 | "Base64": "1.1.0",
45 | "bean": "1.0.15",
46 | "codemirror6": "npm:codemirror@^6.0.1",
47 | "colors": "1.4.0",
48 | "core-js": "^3.25.*",
49 | "crypto-js": "4.2.0",
50 | "datepair.js": "0.4.*",
51 | "flotr2": "0.1.0",
52 | "focus-visible": "5.2.0",
53 | "fullcalendar": "3.4.0",
54 | "fuse.js": "6.6.2",
55 | "jquery": "3.7.*",
56 | "jquery-form": "4.3.0",
57 | "jquery-mousewheel": "3.1.13",
58 | "jquery-ui": "1.13.*",
59 | "jquery-ui-multiselect-widget": "2.0.1",
60 | "jquery-validation": "1.19.5",
61 | "jquery.cookie": "1.4.1",
62 | "jstree": "3.3.12",
63 | "moment": "2.29.*",
64 | "moment-timezone": "0.5.*",
65 | "numeral": "2.0.6",
66 | "overlayscrollbars": "1.13.*",
67 | "popper.js": "1.16.1",
68 | "scriptjs": "2.5.9",
69 | "timepicker": "1.14.0",
70 | "tinymce": "6.8.5",
71 | "underscore": "1.13.*",
72 | "when": "3.7.8",
73 | "xregexp": "^5.1.0"
74 | },
75 | "devDependencies": {
76 | "@oroinc/oro-stylelint-config": "6.1.0-lts001",
77 | "@oroinc/oro-webpack-config-builder": "6.1.0-lts08",
78 | "check-engine": "^1.10.1",
79 | "eslint": "^8.32.0",
80 | "eslint-config-google": "~0.14.0",
81 | "eslint-plugin-oro": "~0.0.3",
82 | "eslint-plugin-no-jquery": "~3.0.*",
83 | "jasmine-core": "~4.5.0",
84 | "jasmine-jquery": "~2.1.1",
85 | "karma": "~6.4.1",
86 | "karma-chrome-launcher": "~3.1.0",
87 | "karma-firefox-launcher": "~2.1.2",
88 | "karma-jasmine": "~5.1.0",
89 | "karma-junit-reporter": "~2.0.1",
90 | "karma-webpack": "~5.0.0"
91 | },
92 | "private": true
93 | }
94 |
--------------------------------------------------------------------------------
/pdepend.xml.dist:
--------------------------------------------------------------------------------
1 |
2 |
Sorry for the inconvenience, but we’re performing a maintenance at the moment.
14 |We’ll be back online shortly!
15 | 16 | 17 | -------------------------------------------------------------------------------- /public/media/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oroinc/platform-application/9a662841269a64f72c445e6ab5f05ab6c0e9bb4b/public/media/.gitkeep -------------------------------------------------------------------------------- /public/notinstalled.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Please, follow the installation guidance provided here: https://doc.oroinc.com/backend/setup/installation/
14 | 15 | 16 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # www.robotstxt.org/ 2 | # www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449 3 | 4 | User-agent: * 5 | -------------------------------------------------------------------------------- /src/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all -------------------------------------------------------------------------------- /src/AppKernel.php: -------------------------------------------------------------------------------- 1 | isDebug()) { 22 | ini_set('memory_limit', -1); 23 | ini_set('max_execution_time', 0); 24 | } 25 | 26 | if ('dev' === $this->getEnvironment()) { 27 | $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); 28 | if (class_exists('Oro\TwigInspector\Bundle\OroTwigInspectorBundle')) { 29 | $bundles[] = new Oro\TwigInspector\Bundle\OroTwigInspectorBundle(); 30 | } 31 | } 32 | 33 | if ('test' === $this->getEnvironment()) { 34 | $bundles[] = new Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle(); 35 | $bundles[] = new Fidry\AliceDataFixtures\Bridge\Symfony\FidryAliceDataFixturesBundle(); 36 | $bundles[] = new Oro\Bundle\TestFrameworkBundle\OroTestFrameworkBundle(); 37 | } 38 | 39 | return array_merge(parent::registerBundles(), $bundles); 40 | } 41 | 42 | #[\Override] 43 | public function registerContainerConfiguration(LoaderInterface $loader) 44 | { 45 | $loader->load(function (ContainerBuilder $container) { 46 | $container->setParameter('container.dumper.inline_class_loader', true); 47 | $container->addObjectResource($this); 48 | }); 49 | 50 | $loader->load(__DIR__.'/../config/config_'.$this->getEnvironment().'.yml'); 51 | } 52 | 53 | #[\Override] 54 | public function getCacheDir(): string 55 | { 56 | return dirname(__DIR__).'/var/cache/'.$this->environment; 57 | } 58 | 59 | #[\Override] 60 | public function getLogDir(): string 61 | { 62 | return dirname(__DIR__).'/var/logs'; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/Entity/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oroinc/platform-application/9a662841269a64f72c445e6ab5f05ab6c0e9bb4b/src/Entity/.gitkeep -------------------------------------------------------------------------------- /templates/base.html.twig: -------------------------------------------------------------------------------- 1 | {% extends "@OroUI/Default/index.html.twig" %} 2 | 3 | {% block head_script %} 4 | {{ parent() }} 5 | {% endblock %} 6 | 7 | {% block head_style %} 8 | {{ parent() }} 9 | {% endblock %} 10 | 11 | {% block main %} 12 | {{ parent() }} 13 | {{ oro_windows_restore() }} 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /templates/bundles/TwigBundle/Exception/error.html.twig: -------------------------------------------------------------------------------- 1 | {% extends '@OroUI/Default/error.html.twig' %} 2 | -------------------------------------------------------------------------------- /translations/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oroinc/platform-application/9a662841269a64f72c445e6ab5f05ab6c0e9bb4b/translations/.gitkeep -------------------------------------------------------------------------------- /var/cache/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oroinc/platform-application/9a662841269a64f72c445e6ab5f05ab6c0e9bb4b/var/cache/.gitkeep -------------------------------------------------------------------------------- /var/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /var/logs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oroinc/platform-application/9a662841269a64f72c445e6ab5f05ab6c0e9bb4b/var/logs/.gitkeep -------------------------------------------------------------------------------- /var/maintenance/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oroinc/platform-application/9a662841269a64f72c445e6ab5f05ab6c0e9bb4b/var/maintenance/.gitkeep -------------------------------------------------------------------------------- /var/sessions/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oroinc/platform-application/9a662841269a64f72c445e6ab5f05ab6c0e9bb4b/var/sessions/.gitkeep -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const OroConfig = require('@oroinc/oro-webpack-config-builder'); 2 | 3 | OroConfig 4 | .setPublicPath('public/') 5 | .setCachePath('var/cache'); 6 | 7 | module.exports = OroConfig.getWebpackConfig(); 8 | --------------------------------------------------------------------------------