Compare commits

..

500 Commits

Author SHA1 Message Date
chaim 04178c5af4 Fix: force HTTPS=on in Apache for Traefik proxy 2026-03-15 14:35:00 +00:00
chaim 718b9ba591 Fix: configure Apache to trust X-Forwarded-Proto from Traefik 2026-03-15 14:33:07 +00:00
chaim 12f7304b12 Simplify: remove custom entrypoint, use Coolify post-deploy instead 2026-03-15 14:22:47 +00:00
chaim a967d1b6ab Add auto cache clear and rebuild on deploy 2026-03-15 14:19:44 +00:00
chaim f60bf6019e Simplify: use official EspoCRM image for extension development 2026-03-15 14:18:07 +00:00
chaim 9a1582dd7c Fix: use grunt offline to skip composer in frontend stage 2026-03-15 14:17:15 +00:00
chaim d1ab599390 Fix: copy dev/ dir for composer post-install script 2026-03-15 14:14:02 +00:00
chaim f6c845e627 Add minimal secure Dockerfile for Coolify deployment 2026-03-15 14:11:32 +00:00
Yurii 501de26774 add test namespaces 2026-03-15 13:36:33 +02:00
Yurii 7be93fb699 test namespace specific 2026-03-15 13:09:18 +02:00
Yurii Kuznietsov d3d3e1bb82 http client (#3610) 2026-03-15 12:55:23 +02:00
Yurii 72ea83fbca style fix 2026-03-14 18:17:31 +02:00
Yurii 83362fe3c1 last viewed ui impr 2026-03-14 18:08:33 +02:00
Yurii 1aabf6eea6 translate options use null coalesce 2026-03-14 09:42:10 +02:00
Yurii f23634ee61 wysiwyg default 2026-03-12 18:59:47 +02:00
Yurii 089bb01e12 online meeting framework 2026-03-12 18:44:25 +02:00
Yurii 7ba772f2cc css improvements 2026-03-12 10:02:59 +02:00
Yurii 3ab26a5235 last viewed: display created 2026-03-11 22:25:47 +02:00
Yurii ca27df06d9 last viewed ux improvement 2026-03-11 22:17:27 +02:00
Yurii a7f2faa53b remove font-awesome old css 2026-03-11 14:11:34 +02:00
Yurii 6dbca2f584 cleanup 2026-03-11 10:07:43 +02:00
Yurii fe505aea1e stream test 2026-03-11 10:04:16 +02:00
Yurii 159284f5ee update tar 2026-03-11 09:15:01 +02:00
Yurii 9ca71c91bf ignore password 2026-03-10 20:32:33 +02:00
Yurii d3f03949a1 duplicate ignore 2026-03-10 20:31:19 +02:00
Yurii 7c25f2a8fe link one duplicate ignore 2026-03-10 20:22:41 +02:00
Yurii 8a03ad6240 portal roles field create disabled 2026-03-10 20:14:26 +02:00
Yurii 212d383ac1 cleanup 2026-03-10 19:41:27 +02:00
Yurii bf26581339 Merge branch 'f/notificaiton-grouping' 2026-03-10 18:45:02 +02:00
Yurii 49f7ac30ca notification grouping 2026-03-10 18:44:31 +02:00
Yurii 7d195793a3 Merge branch 'fix' 2026-03-10 15:22:33 +02:00
Yurii 2d1b28bb3b 9.3.3 2026-03-10 15:12:34 +02:00
Yurii 8508bde4eb fix pinned 2026-03-10 15:12:28 +02:00
Yurii e41a1bc410 Merge branch 'master' of github.com:espocrm/espocrm 2026-03-10 11:41:48 +02:00
Yurii b4e38002fe Merge branch 'fix' 2026-03-10 11:39:15 +02:00
Yurii b398004040 sync database currency rates 2026-03-10 11:33:49 +02:00
SuchAFuriousDeath 49f48340ac Fix attachment MIME type detection for non-image file types (#3604)
The mail parser's MIME type fallback map only contained image types (jpg,
jpeg, png, gif, webp), causing attachments sent as application/octet-stream
(common with Lotus Notes and other legacy clients) to be stored with a NULL
type. This made PDFs and documents download instead of opening inline.

Extended $extMimeTypeMap with common document, archive and media types.

Also fixed getAttachmentFilenameExtension() which used explode('.')[1] to
get the extension — this returns the part after the *first* dot rather than
the last, breaking for filenames like "report.2024.pdf". Replaced with
pathinfo() which correctly extracts the final extension.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 12:56:44 +02:00
Yurii 1877aeecb0 Merge branch 'fix' 2026-03-06 09:30:37 +02:00
Yurii 48f71dfafe 9.3.2 2026-03-06 09:22:14 +02:00
Yurii 669b237893 change indexes 2026-03-05 19:46:40 +02:00
Yurii c22390ffc7 entity manager params group index 2026-03-05 19:42:16 +02:00
Yurii 10dd636646 update dep 2026-03-05 17:00:31 +02:00
Yurii 82c7c697e6 object check 2026-03-05 14:11:15 +02:00
Yurii 8c6eb518d8 comment 2026-03-05 13:58:10 +02:00
Yurii e94a7953be fix cascade removal conversion 2026-03-05 13:56:54 +02:00
Yurii 8561b1af65 cascade removal 2026-03-05 13:22:58 +02:00
Yurii 9e2029dc0a cascading fields cleanup 2026-03-05 09:49:02 +02:00
Yurii fc616f4fea Merge branch 'fix' 2026-03-05 09:48:24 +02:00
Yurii d6f97636de fix lofic defs cleanup 2026-03-05 09:48:06 +02:00
Yurii Kuznietsov 1f47c5b80f Update CONTRIBUTING.md 2026-03-05 08:37:45 +02:00
Yurii 6cfa26ee10 update dompurify 2026-03-05 08:19:51 +02:00
Yurii ecd95d16f2 update dep 2026-03-05 08:17:08 +02:00
Yurii 0c1e4bf9d8 flat equal check 2026-03-04 21:59:03 +02:00
Yurii 61677e34e0 equal check improvement and tests 2026-03-04 15:56:44 +02:00
Yurii ca136225cb ref 2026-03-04 15:37:04 +02:00
Yurii 5462854f53 comment, internal method 2026-03-04 15:25:23 +02:00
Yurii 6902ae0e04 move SaveContext to ORM namespace 2026-03-04 15:21:04 +02:00
Yurii 4a60d17936 webhook use url type 2026-03-04 14:06:11 +02:00
Yurii 0fbfe21258 url: protocol required 2026-03-04 14:05:48 +02:00
Yurii 6fa1ff811b remove paragraph 2026-03-04 13:33:21 +02:00
Yurii a0e709dd86 Merge branch 'fix' 2026-03-04 13:15:43 +02:00
Yurii 841c66926f host check 2026-03-04 12:55:18 +02:00
Yurii a3c1002845 test fix 2026-03-04 12:47:23 +02:00
Yurii 50c63fa986 deprecations 2026-03-03 22:27:30 +02:00
Yurii 409cb3fa19 restore package.json 2026-03-03 22:20:36 +02:00
dependabot[bot] 5766355661 Bump underscore from 1.13.1 to 1.13.8 (#3598)
Bumps [underscore](https://github.com/jashkenas/underscore) from 1.13.1 to 1.13.8.
- [Commits](https://github.com/jashkenas/underscore/compare/1.13.1...1.13.8)

---
updated-dependencies:
- dependency-name: underscore
  dependency-version: 1.13.8
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-03 22:18:47 +02:00
Yurii 04280e68c6 getContext in save options 2026-03-03 21:42:06 +02:00
Yurii 3375ca3181 refactoring, save context in late hooks 2026-03-03 20:47:03 +02:00
Yurii 04794bb2aa method usage fix 2026-03-03 18:09:35 +02:00
Yurii f6a6aefd5e late save/remove hooks 2026-03-03 16:49:01 +02:00
Yurii 7296fcfc77 fix typo 2026-03-03 16:31:38 +02:00
Yurii 19d3789c24 transactional save 2026-03-03 16:01:15 +02:00
Yurii f298d6ff5a Merge branch 'fix' 2026-03-03 15:30:27 +02:00
Yurii 8206738c56 globals search order by entity type position 2026-03-03 15:27:00 +02:00
Yurii 6fbd21822e reminders: autocomplete improve 2026-03-03 15:08:06 +02:00
Yurii 1c270a9d2e dep updates 2026-03-03 14:46:31 +02:00
Yurii c52846f480 contact: relate with account if related through accounts 2026-03-03 13:34:55 +02:00
Yurii d2f51066c0 contact restore account on save 2026-03-03 11:22:19 +02:00
Yurii 7537fd25fd link vo new methods 2026-03-03 11:16:35 +02:00
Yurii 10ccbe4709 contact: set account id 2026-03-03 10:47:36 +02:00
Yurii 3a161ef0e7 update minimatch transitive dep 2026-03-02 22:38:09 +02:00
Yurii a778611edf update glob 2026-03-02 22:25:43 +02:00
Yurii cb291c2e5e update minimatch dep 2026-03-02 22:14:44 +02:00
Yurii 2cb70969bf do not allow forbidden link name 2026-03-02 20:32:00 +02:00
Yurii 3a2eb429f1 fix jsdoc 2026-03-02 20:24:16 +02:00
Yurii f7c2611200 Merge branch 'fix' 2026-03-02 19:09:10 +02:00
Yurii 9b8e5ef016 contact: import title 2026-03-02 19:09:00 +02:00
Yurii beef740114 move dynamic logic defs 2026-03-02 18:57:42 +02:00
Yurii 35d96b36ab error close button 2026-03-02 18:31:51 +02:00
Yurii 74a3e9f6bd cascading links 2026-03-02 18:09:41 +02:00
Yurii 38ab9de081 po file remove line 2026-03-02 09:31:45 +02:00
Yurii 669e78e072 fix email address escaped 2026-02-27 15:03:40 +02:00
Yurii 9166277a01 fix test 2026-02-27 14:24:00 +02:00
Yurii dcd3ce66ce lockable 2026-02-27 12:15:13 +02:00
Yurii feac638722 collection default template 2026-02-26 16:58:13 +02:00
Yurii 29a5d39768 merge in transaction 2026-02-26 16:57:41 +02:00
Yurii 0368d0569c client record actions duplicate prevention 2026-02-26 10:37:04 +02:00
Yurii 1ba438fa9f add throw 2026-02-26 09:55:49 +02:00
Yurii 198b9c78fc categories update hook rebuild scope 2026-02-26 09:53:02 +02:00
Yurii 145e521bd5 fix nl 2026-02-26 09:52:21 +02:00
dependabot[bot] 69b626b4da Bump rollup from 4.44.0 to 4.59.0 (#3591)
Bumps [rollup](https://github.com/rollup/rollup) from 4.44.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.44.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-26 09:22:10 +02:00
dependabot[bot] 482e6cc308 Bump basic-ftp from 5.0.5 to 5.2.0 (#3590)
Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.0.5 to 5.2.0.
- [Release notes](https://github.com/patrickjuchli/basic-ftp/releases)
- [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.0.5...v5.2.0)

---
updated-dependencies:
- dependency-name: basic-ftp
  dependency-version: 5.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-26 08:57:00 +02:00
Yurii d678307d2d oidc pkce support 2026-02-25 15:07:54 +02:00
Yurii 74b1c2ba98 Merge branch 'fix' 2026-02-25 12:56:55 +02:00
Yurii a8398965b8 fix loging data not available on logout 2026-02-25 12:56:40 +02:00
Yurii 1c550da572 oidc login fail console log 2026-02-25 12:25:08 +02:00
Yurii b48b033be8 ux fix 2026-02-25 11:36:06 +02:00
Yurii c392fabc14 categories for custom entity types 2026-02-24 17:10:45 +02:00
Yurii 1de9046b3d grunt minimatch override 2026-02-24 12:48:42 +02:00
Yurii b007bef366 Revert "override dependency"
This reverts commit 33c8e202bc.
2026-02-24 12:36:45 +02:00
Yurii 33c8e202bc override dependency 2026-02-23 18:12:03 +02:00
Yurii bbf77b16bd update npm dependency 2026-02-23 17:24:20 +02:00
Yurii 4da48a15a9 Merge branch 'fix' 2026-02-23 17:20:04 +02:00
Yurii db504a3ee7 test 2026-02-23 17:14:16 +02:00
Yurii 5e2155d7e2 fix email subject truncate 2026-02-23 15:23:43 +02:00
Yurii ee34bf8cba allow no colloaboarators if no assignment permission 2026-02-22 12:57:38 +02:00
Yurii 563843cac8 collaborators, add task to defaults 2026-02-21 23:39:43 +02:00
Yurii 9463c9ea55 forbid disabled link 2026-02-21 17:28:47 +02:00
Yurii 39b461a618 enable collaborators for tasks and cases 2026-02-21 16:50:52 +02:00
Yurii 65d2c1de07 added const 2026-02-21 16:17:12 +02:00
Yurii adccaa7951 metadata legacy fix 2026-02-21 16:06:03 +02:00
Yurii f9d0f3bcaf navbar url open in new tab parameter 2026-02-21 12:53:07 +02:00
Yurii 3321bf1020 category save in transaction 2026-02-21 12:38:35 +02:00
Yurii d3da6fc8cc update npm packages 2026-02-21 10:24:53 +02:00
Yurii 6c0e3c67a8 line breaks 2026-02-21 10:08:19 +02:00
dependabot[bot] 2cd9b532f0 Bump directorytree/imapengine from 1.19.2 to 1.22.3 (#3580)
Bumps [directorytree/imapengine](https://github.com/DirectoryTree/ImapEngine) from 1.19.2 to 1.22.3.
- [Release notes](https://github.com/DirectoryTree/ImapEngine/releases)
- [Commits](https://github.com/DirectoryTree/ImapEngine/compare/v1.19.2...v1.22.3)

---
updated-dependencies:
- dependency-name: directorytree/imapengine
  dependency-version: 1.22.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 17:22:43 +02:00
dependabot[bot] ce1e664d63 Bump tar from 7.5.7 to 7.5.8 (#3582)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.7 to 7.5.8.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.7...v7.5.8)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.8
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-19 20:52:34 +02:00
Yurii a79771aedd 9.3.1 2026-02-19 10:55:00 +02:00
Yurii 2f97cf36ea Merge branch 'fix' 2026-02-19 10:17:13 +02:00
Yurii c1eb14726e currency no join mode getting rates dynamically 2026-02-19 10:09:32 +02:00
Yurii d7764af73d fix error message 2026-02-16 17:39:27 +02:00
Yurii d74acd7776 bcmath and currency float casting fix 2026-02-16 13:52:39 +02:00
Yurii 299709f3ee code style params 2026-02-16 13:51:56 +02:00
Yurii 970c37d921 role table ui fixes 2026-02-16 12:42:20 +02:00
Yurii 9536146226 role ui: true on change 2026-02-16 12:07:09 +02:00
Yurii 5d68e153c3 select native fix for new chrome 2026-02-16 11:54:33 +02:00
Yurii dc738fdbfe Merge branch 'fix' 2026-02-16 09:44:06 +02:00
Yurii dadb4078cb readme change 2026-02-16 09:43:55 +02:00
Yurii d77d99c68b remove unneeded template type 2026-02-15 18:06:26 +02:00
Yurii a682394e53 pdf template style null fix 2026-02-15 18:02:52 +02:00
Yurii 44c20522a0 dompdf fonts 2026-02-14 19:05:37 +02:00
Yurii 3161d0c436 Merge branch 'fix' 2026-02-14 16:25:52 +02:00
dependabot[bot] 6930658c27 Bump qs from 6.14.1 to 6.14.2 (#3577)
Bumps [qs](https://github.com/ljharb/qs) from 6.14.1 to 6.14.2.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.14.1...v6.14.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-14 14:57:04 +02:00
Yurii 9e1e3396d0 increase precision 2026-02-13 13:33:18 +02:00
Yurii fbab0a9803 createDisabled check 2026-02-12 13:43:22 +02:00
Yurii 72f0f8e0a7 fix search layout ignoring fields 2026-02-12 13:03:08 +02:00
Yurii 5ca1cce14a record dashlet layout field translaction fix 2026-02-12 09:45:47 +02:00
Yurii ba8c402813 load capture: load additional fields on generate 2026-02-09 22:30:04 +02:00
Yurii b86aca9bff workking time exception ux impr 2026-02-09 19:41:19 +02:00
Yurii cc8fa5a6b6 load columns only field in list 2026-02-09 19:05:19 +02:00
Yurii 95700564bb dompdf use cache dir 2026-02-09 18:08:39 +02:00
Yurii e20c89d4ce detail modal update source collection event 2026-02-09 11:57:06 +02:00
Yurii d0d7c8b36e link icon helper dynamic icon 2026-02-08 11:01:59 +02:00
Yurii 19e5c483fa link field icon helper 2026-02-08 10:19:02 +02:00
Yurii 7728f4765b reset count disabled to default 2026-02-07 20:32:19 +02:00
Yurii 3f846e861f dompdf fontdir 2026-02-06 20:56:31 +02:00
Yurii 616ee67622 pdf: disable js 2026-02-06 20:29:21 +02:00
Yurii 23592e9b66 open api spec link 2026-02-06 17:12:41 +02:00
Yurii efb2ce9ba3 schema 2026-02-06 12:54:01 +02:00
Yurii 418770bce5 pdf font field sorted list 2026-02-06 12:50:18 +02:00
Yurii 767a77a66c PDF font mapping 2026-02-06 12:43:52 +02:00
Yurii 2ef02e8144 fix warning 2026-02-06 11:40:11 +02:00
Yurii 22cbfb669c fix image resize when width to height is large 2026-02-06 10:26:34 +02:00
Yurii 61e427d621 list settings no session storage 2026-02-06 10:03:38 +02:00
Yurii ecad172891 clear settings temp storage 2026-02-05 15:40:28 +02:00
Yurii a694db623c fix 2026-02-05 15:23:46 +02:00
Yurii ed7677a4d7 list setting without storing 2026-02-05 15:22:01 +02:00
Yurii 229e8f2ae0 move article silent 2026-02-04 14:05:47 +02:00
Yurii f04d178a3c kb order no limit 2026-02-03 19:15:05 +02:00
Yurii b3543dc8da message change 2026-02-03 19:01:41 +02:00
Yurii b7b1562111 ORM: no alias 2026-02-03 14:54:36 +02:00
Yurii bd9bacb210 ORM: with recursive 2026-02-03 13:25:18 +02:00
Yurii 9d7d9ac29c categories disable if not read access 2026-02-02 19:19:44 +02:00
Yurii d69db3689f create category fix 2026-02-02 19:10:24 +02:00
Yurii 50ea605c06 fix list with category use icon in header 2026-02-02 18:37:57 +02:00
Yurii 43e016eff8 cleanup 2026-02-02 18:32:10 +02:00
Yurii 21ca37f41c list with category use icon in header 2026-02-02 18:28:27 +02:00
Yurii 3f108cc0f5 fix doc 2026-02-02 17:45:11 +02:00
Yurii 5bf7774679 fix email collapse save 2026-02-02 17:42:38 +02:00
Yurii fd12203e1c imap fetch order apply 2026-02-02 17:00:13 +02:00
Yurii d25a693dc6 docs 2026-02-02 16:25:20 +02:00
Yurii 076483e4f2 fix imap unseen 2026-02-02 14:58:26 +02:00
Yurii 900c731b04 authUsernameFailedAttemptsPeriod param 2026-02-02 13:35:25 +02:00
Yurii a84c42f7a7 fix imap uid fetch 2026-02-02 13:11:55 +02:00
Yurii 8b6f7d4aec version 2026-02-02 10:13:54 +02:00
Yurii e706b7b892 max failed login for username 2026-01-31 13:12:55 +02:00
Yurii e45e2fe6eb update tar 2026-01-30 17:01:10 +02:00
Yurii e3c576b38f currency settings button 2026-01-30 13:31:26 +02:00
Yurii cf2a80ffec created entity type message 2026-01-30 12:58:07 +02:00
Yurii ab639c2913 fix decimal not storable 2026-01-30 12:48:01 +02:00
Yurii ab89d8caef list settings allows custom label 2026-01-30 11:30:41 +02:00
Yurii 9ac836dc3e additional binding for tests 2026-01-29 09:56:01 +02:00
dependabot[bot] ca1020403d Bump symfony/process from 7.4.3 to 7.4.5 (#3570)
Bumps [symfony/process](https://github.com/symfony/process) from 7.4.3 to 7.4.5.
- [Release notes](https://github.com/symfony/process/releases)
- [Changelog](https://github.com/symfony/process/blob/8.1/CHANGELOG.md)
- [Commits](https://github.com/symfony/process/compare/v7.4.3...v7.4.5)

---
updated-dependencies:
- dependency-name: symfony/process
  dependency-version: 7.4.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-29 07:29:19 +02:00
Yurii 6094875ed0 logicDefs export 2026-01-28 12:07:49 +02:00
dependabot[bot] 2befaa41b6 Bump phpunit/phpunit from 11.5.46 to 11.5.50 (#3569)
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 11.5.46 to 11.5.50.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/11.5.50/ChangeLog-11.5.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/11.5.46...11.5.50)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 11.5.50
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-28 08:33:40 +02:00
Yurii 336a64efe6 fix label 2026-01-27 17:09:05 +02:00
Yurii 6e18a78eb0 fix 2026-01-27 17:08:05 +02:00
Yurii e18bad3e60 ar_AR 2026-01-27 10:40:01 +02:00
Yurii f9d3254e84 bg_BG 2026-01-27 10:38:38 +02:00
Yurii 87b440e86a zh_CN 2026-01-27 10:36:53 +02:00
Yurii 643d04589c cs_CZ 2026-01-27 10:35:12 +02:00
Yurii 91cff9585f nl_NL 2026-01-27 10:33:55 +02:00
Yurii 8e14a719e0 fr_FR 2026-01-27 10:31:54 +02:00
Yurii 2c51a84422 el_GR 2026-01-27 10:30:11 +02:00
Yurii 6593aef458 lv_LV 2026-01-27 10:27:23 +02:00
Yurii 9097246082 lt_LT 2026-01-27 10:25:54 +02:00
Yurii c7af50f802 ja_JP 2026-01-27 10:22:08 +02:00
Yurii 0c18064d98 nb_NO 2026-01-27 10:19:01 +02:00
Yurii 8d60761cc0 es_ES 2026-01-27 10:12:52 +02:00
Yurii 14c1ccd86e de_DE 2026-01-27 10:09:25 +02:00
Yurii cc2096b4cf it_IT 2026-01-27 10:06:26 +02:00
Yurii 32252589a3 ur_IN 2026-01-27 10:03:33 +02:00
Yurii 752890d4b3 disable teams field parameters 2026-01-26 22:04:36 +02:00
Yurii bff43d6b5d description fields 2026-01-26 09:10:15 +02:00
Anton Slyzhko f12162ad72 prevent NotImplemented exception during template rendering (#3567)
* prevent NotImplemented exception during template rendering

* specify an action for ACL to check
2026-01-23 15:39:03 +02:00
Yurii 9a3ef004d3 comment 2026-01-22 18:16:59 +02:00
Yurii ae853a7848 fix convert lead title 2026-01-22 18:13:40 +02:00
Yurii f5d8f515d5 reactions popover css fix 2026-01-22 12:37:29 +02:00
Yurii 63e931fab1 restore new lines 2026-01-22 09:48:32 +02:00
dependabot[bot] c05614d22e Bump tar from 7.5.3 to 7.5.4 (#3564)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.3 to 7.5.4.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.3...v7.5.4)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.4
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-22 09:47:35 +02:00
Yurii 2f9215ba52 input filter: pass entityType as param 2026-01-22 09:47:00 +02:00
dependabot[bot] 9620c4a7ce Bump lodash from 4.17.21 to 4.17.23 (#3565)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-22 09:45:37 +02:00
Yurii 594f1e7252 person acl account link field fix 2026-01-21 23:00:48 +02:00
kenyonit edb3f7a35b Update PreferencesService to consider dashboard layout metadata (#3561)
* Update PreferencesService.php to consider dashboard layout metadata

The resetDashboard function only considers the dashboardLayout and dashletsOptions config. Updated code to check metadata app.defaultDashboardLayouts.Standard and app.defaultDashboardOptions.Standard so behaviour is consistent with the loadData function in Preferences.php

* Update PreferencesService.php

Fixed copyright year, accidentally overwritten
2026-01-21 13:19:30 +02:00
Yurii af8f8a6adb updgrade version fix 2026-01-21 11:07:48 +02:00
Yurii f7f4a7fdcb fix typo 2026-01-20 19:03:39 +02:00
Yurii 1f38d04e86 schema 2026-01-20 19:02:12 +02:00
Yurii bca2b63b03 pass additional where to select additional applier 2026-01-20 18:13:48 +02:00
Yurii 14f46f26f9 htmlizer relation order 2026-01-20 12:48:36 +02:00
Yurii bf250069f4 next number process field force 2026-01-18 18:39:54 +02:00
Yurii f23d0ee911 fix doc 2026-01-18 18:26:44 +02:00
Yurii 89cf4f6165 update tar 2026-01-17 09:06:49 +02:00
Yurii 173f9d6150 Merge branch 'stable' 2026-01-17 09:01:25 +02:00
Yurii ff8e8d23a8 9.2.7 2026-01-16 09:45:32 +02:00
Yurii e46b954b71 Merge branch 'fix' 2026-01-16 09:43:59 +02:00
grray ddb636239b fix error "Unknown column 'api' in 'field list'" on mass relate (#3562) 2026-01-16 09:43:40 +02:00
Yurii 8fcee30912 add php 8.5 to actions 2026-01-16 09:37:19 +02:00
Yurii 7c3a0964d5 update default dashboard layout in metadata 2026-01-16 08:34:02 +02:00
Yurii e002846138 Merge branch 'fix' 2026-01-15 20:43:22 +02:00
Yurii 917dbdd3fe 9.2.6 2026-01-15 20:35:58 +02:00
Yurii f645af4347 fix url rendering 2026-01-15 19:47:54 +02:00
Yurii be228fa48a url validator util 2026-01-15 19:41:06 +02:00
Yurii 7760b01a50 htmlizer: skip link if same key defined in additional data 2026-01-15 10:34:50 +02:00
Yurii 33f3e8b6b2 schema 2026-01-15 10:15:42 +02:00
Yurii 89db06f319 data loader template 2026-01-15 10:13:29 +02:00
Yurii 6aecc8ea6b fix convert currency 2026-01-14 14:33:01 +02:00
Yurii 5fefed5933 exception fix 2026-01-13 12:26:42 +02:00
Yurii 9f87a53f38 fix exceptions 2026-01-13 11:42:42 +02:00
Yurii 049be51f9c fix exception 2026-01-13 11:34:37 +02:00
Yurii 1b469c0cfa export foreign field label add space 2026-01-12 17:23:46 +02:00
Yurii 81844358c6 cs 2026-01-12 17:22:01 +02:00
Yurii 3fe7e12c62 label change 2026-01-12 13:07:26 +02:00
Yurii f482222c5d comment 2026-01-12 11:53:14 +02:00
Yurii 29a9a3a9ba fix duplicate link without field 2026-01-12 11:45:52 +02:00
Yurii c6037ce0cd fix 2026-01-12 11:25:21 +02:00
Yurii 268ba27cf8 year change 2 2026-01-12 11:02:47 +02:00
Yurii 0b0a31821f year change 1 2026-01-12 10:54:39 +02:00
Yurii 79d5cd60c9 fix IMAP folders 2026-01-09 18:48:15 +02:00
Yurii 309ec572c4 fix folder 2026-01-09 18:35:02 +02:00
Yurii 7b35a69106 fix confirm conflicts shortcuts 2026-01-09 14:54:03 +02:00
Yurii a52b383ff4 ref 2026-01-09 14:36:42 +02:00
Yurii f5938ebbdc comment 2026-01-09 14:32:19 +02:00
Yurii 0ad7a9b99c fix merge attahment multiple 2026-01-09 13:53:13 +02:00
Yurii 0156fba5c5 Merge branch 'fix' 2026-01-09 12:50:36 +02:00
Yurii 5d443dda10 fix mariadb 12 2026-01-09 12:50:28 +02:00
Yurii 4708567bcc fix convert lead, url 2026-01-08 17:29:35 +02:00
Yurii e52f886e3f tabPortal 2026-01-06 18:06:30 +02:00
Yurii 926e951dfc router options string to object 2026-01-05 11:15:37 +02:00
Yurii 48efb09003 cleanup 2026-01-05 11:04:23 +02:00
Yurii 66feaae474 ref 2026-01-05 11:02:26 +02:00
Yurii 683c570eea type fix 2026-01-05 10:52:33 +02:00
Yurii e1be537667 cs 2026-01-05 10:40:54 +02:00
Yurii 7a444a6663 hide unlink if link is read only 2026-01-05 10:38:27 +02:00
Yurii 2efff1c310 skip select column if hidden and no settings 2026-01-05 10:29:53 +02:00
Yurii 25fbf66a70 ref 2026-01-05 10:27:02 +02:00
Yurii b26c0368d9 update npm libs 2026-01-04 14:35:39 +02:00
Yurii 31e8b84989 php 8.5 support, update libs 2026-01-04 09:50:25 +02:00
Yurii d7438f02bf fix timezone in tests 2026-01-04 09:48:11 +02:00
Yurii 20a0ed4133 type fixes 2026-01-04 09:44:24 +02:00
Yurii 4212934fd2 internal server error message 2026-01-01 15:52:34 +02:00
Yurii 711c1f7592 rate entry as of date method 2025-12-31 13:41:59 +02:00
Yurii 69cb68cd27 ref 2025-12-30 19:58:39 +02:00
Yurii b97a612867 field not null check 2025-12-29 12:50:26 +02:00
Yurii e8629384f7 next number hook suppression 2025-12-27 17:49:47 +02:00
Yurii ebbeea54e9 ref 2025-12-27 17:23:45 +02:00
Yurii 5ca6f1ac42 css fix 2025-12-24 11:16:06 +02:00
Yurii 6d3c1b8bb7 case additional list layouts 2025-12-24 11:06:37 +02:00
Yurii 7165355ff4 fix json 2025-12-24 10:46:50 +02:00
Yurii 40c0a74279 directUpdateEnabled, importEnabled parameters 2025-12-24 10:33:12 +02:00
Yurii 2063e2cd1d field access frontend fixes 2025-12-24 10:18:03 +02:00
Yurii 891a0028af direct access disabled check 2025-12-23 22:45:38 +02:00
Yuri Kuznetsov 51c4850310 fix view name param 2025-12-20 17:46:51 +02:00
Yuri Kuznetsov 6ed69f4892 doc fix 2025-12-20 17:41:31 +02:00
Yuri Kuznetsov 5d40cbf8f6 filter view custom field view 2025-12-20 17:35:44 +02:00
Yuri Kuznetsov a5327f3a3e cleanup 2025-12-20 17:13:52 +02:00
Yuri Kuznetsov 1ef21112a9 filters css fix 2025-12-20 16:22:24 +02:00
Yuri Kuznetsov da5bf2c7eb update imap lib 2025-12-19 18:53:26 +02:00
Yuri Kuznetsov 1ef4875927 +30 days default date 2025-12-19 16:58:43 +02:00
Yuri Kuznetsov ca29e47ab1 Merge branch 'fix' 2025-12-19 08:50:57 +02:00
Yuri Kuznetsov 74db03090b fix linked where filters 2025-12-19 08:50:17 +02:00
Yuri Kuznetsov 942a8f07c0 fix linked where filters 2025-12-18 23:28:27 +02:00
Yuri Kuznetsov a0c2b19271 working time exception mass delete 2025-12-17 20:07:27 +02:00
Yuri Kuznetsov 63dd5462ef Merge branch 'fix' 2025-12-17 20:02:51 +02:00
Yuri Kuznetsov 03ac0a57c8 fix double shortcut issue 2025-12-17 20:02:39 +02:00
Yuri Kuznetsov 19c998d343 modal shourtcut fix 2025-12-17 20:01:50 +02:00
Yuri Kuznetsov cd02641a6d update doc 2025-12-14 13:16:58 +02:00
Yuri Kuznetsov 3173150d19 fix test 2025-12-14 13:16:52 +02:00
Yuri Kuznetsov b4bd66c363 clear currency cache 2025-12-13 20:12:11 +02:00
Yuri Kuznetsov 3b169fe5a0 currency rate cache 2025-12-13 19:25:50 +02:00
Yuri Kuznetsov 41db22a88d currency sync optimization 2025-12-13 17:59:09 +02:00
Yuri Kuznetsov b745adaaa4 ref 2025-12-13 16:44:18 +02:00
Yuri Kuznetsov bd785b2cb1 cleanup 2025-12-13 16:40:02 +02:00
Yuri Kuznetsov 1573ec059c cleanup 2025-12-13 16:38:49 +02:00
Yuri Kuznetsov bb90be7cf3 schange scheduling 2025-12-13 16:35:46 +02:00
Yuri Kuznetsov a75c4bdf42 sync in transaction 2025-12-13 16:24:51 +02:00
Yuri Kuznetsov efdeca1190 sync currency rates job 2025-12-13 16:17:49 +02:00
Yurii f16ddf0941 App/appParams endpoint 2025-12-13 11:18:49 +02:00
Yurii 0d17d12293 app params refresh with websocket 2025-12-13 11:09:06 +02:00
Yurii 7f9457e8d7 fix rates to string 2025-12-13 10:40:59 +02:00
Yurii Kuznietsov 0ee8d1dc91 Currency rates as entities (#3543) 2025-12-13 10:31:07 +02:00
Yurii f46d9c8e4e file headers 2025-12-12 12:59:46 +02:00
Yurii 228a7ad8e4 schema fix 2025-12-12 11:17:07 +02:00
Yurii 3fe0ba41d7 fix schema 2025-12-12 09:14:13 +02:00
Yurii 900e34ded2 json schema decimal field 2025-12-12 08:39:12 +02:00
Yurii fef6527bdb language restore entity type translation 2025-12-10 18:44:06 +02:00
Yurii Kuznietsov e4bce0ab2c Merge pull request #3540 from ShaikhNaasir/fix-error
Remove double semicolons
2025-12-08 11:33:17 +02:00
Naasir ed9d9b3620 Remove another double semicolons 2025-12-08 13:40:23 +05:30
Naasir 96b261b349 Remove double semicolons 2025-12-08 13:31:53 +05:30
Yurii Kuznietsov d4fda8f741 Update SECURITY.md 2025-12-07 15:26:40 +02:00
Yuri Kuznetsov 4159faceb4 api spec title module 2025-12-06 15:38:20 +02:00
Yuri Kuznetsov 627cdaf58d api spec specific module 2025-12-06 15:13:45 +02:00
Yuri Kuznetsov c095ec9334 api spec team 2025-12-06 15:00:51 +02:00
Yuri Kuznetsov 7083fb2c5c Merge branch 'master' of https://github.com/espocrm/espocrm 2025-12-06 15:00:25 +02:00
Yuri Kuznetsov 641e158529 open api: add team 2025-12-06 14:45:31 +02:00
Yurii 8736fcba21 fix type 2025-12-06 11:35:35 +02:00
Yuri Kuznetsov 771bedd25d merge 2025-12-06 11:00:28 +02:00
Yuri Kuznetsov 1f251eecb3 fix notification read 2025-12-06 10:43:26 +02:00
Yuri Kuznetsov 6dd898eb6e ref 2025-12-06 09:45:37 +02:00
Yuri Kuznetsov 1600c1eb13 update lib 2025-12-06 09:45:31 +02:00
Yuri Kuznetsov 469d3a4113 update frontend build tool 2025-12-05 13:38:27 +02:00
Yuri Kuznetsov 2e578b3941 update archiver 2025-12-05 13:18:11 +02:00
Yuri Kuznetsov 7364945ec0 min node version 20 2025-12-05 13:05:42 +02:00
Yuri Kuznetsov a2cd2531d0 formula: record related columnData 2025-12-05 12:23:29 +02:00
Yurii Kuznietsov 914cecca10 Merge pull request #3536 from espocrm/imap-migration
Migrate IMAP lib from Laminas to ImapEngine
2025-12-05 11:46:52 +02:00
Yuri Kuznetsov 5cbeea8119 upgrade check 2025-12-05 11:18:57 +02:00
Yuri Kuznetsov 6d6512a05e imap migration 2025-12-04 19:23:03 +02:00
Yurii 889059c8d9 imap ref 2025-12-04 11:14:18 +02:00
Yurii 52f17733f2 mail sender: disable auto tls if no security 2025-12-04 09:52:35 +02:00
Yurii 0bf94aecb4 update symfony to 7 and spatie/async to 1.8 2025-12-04 09:34:40 +02:00
Yurii 8129495e4b update ratchet 2025-12-04 09:30:38 +02:00
Yuri Kuznetsov 64c2979a59 update avatar lib 2025-12-03 23:00:54 +02:00
Yuri Kuznetsov d73a97373d fix postgresql index 2025-12-03 16:46:44 +02:00
Yurii 0a4ee2f949 note removal on email removal 2025-12-03 15:40:22 +02:00
Yurii 5ded6b1bcf currency attribute detail fix 2025-12-03 14:34:52 +02:00
Yurii 2c5edc3c96 phoneNumberData attribute detail fix 2025-12-03 14:32:18 +02:00
Yurii 64ce48de32 cs fix 2025-12-03 14:26:38 +02:00
Yurii 347e5349e0 api spec barcode 2025-12-03 14:25:37 +02:00
Yuri Kuznetsov 62964fa1cb update ldap lib 2025-12-03 13:23:55 +02:00
Yuri Kuznetsov 7c03c9953f composer lock php version to min 2025-12-03 13:04:11 +02:00
Yuri Kuznetsov 3ac9e78fa8 update dbal 2025-12-03 12:51:49 +02:00
Yuri Kuznetsov 8b8a3d0aa7 update monolog 2025-12-03 12:49:13 +02:00
Yuri Kuznetsov df6f0edf5d update slim 2025-12-03 12:46:31 +02:00
Yuri Kuznetsov db896ad467 update carbon 2025-12-03 12:43:58 +02:00
Yuri Kuznetsov 88c9a02136 update barcode and qrcode libs 2025-12-03 12:37:04 +02:00
Yuri Kuznetsov d2d3628c2b update phpseclib 2025-12-03 12:06:03 +02:00
Yuri Kuznetsov 6014ef92e9 update league libs 2025-12-03 12:04:41 +02:00
Yuri Kuznetsov d01c1c8469 update php-cidr-match 2025-12-03 11:58:49 +02:00
Yuri Kuznetsov 1e3e35334c update phpspreadheet 2025-12-03 11:50:26 +02:00
Yuri Kuznetsov 2d1226016a update openspout and mail-mime-parser 2025-12-03 11:41:22 +02:00
Yuri Kuznetsov 6f2e81357b cache 2025-12-03 10:59:37 +02:00
Yuri Kuznetsov f492bfc374 isCustom fix 2025-12-03 00:03:35 +02:00
Yuri Kuznetsov b2c7eef31a fix 2025-12-02 23:59:56 +02:00
Yuri Kuznetsov c14d801224 use deepObject 2025-12-02 23:53:22 +02:00
Yuri Kuznetsov 6f35b7fe36 summary 2025-12-02 23:24:19 +02:00
dependabot[bot] c8276dfe42 Bump express from 4.21.2 to 4.22.1 (#3534)
Bumps [express](https://github.com/expressjs/express) from 4.21.2 to 4.22.1.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/v4.22.1/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.2...v4.22.1)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 4.22.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 16:28:25 +02:00
Yurii 2b6196c57f skip custom 2025-12-02 16:25:32 +02:00
Yurii 876df81526 open api spec 2025-12-02 16:14:42 +02:00
Yuri Kuznetsov ddbfa80f82 update initial avatar generator lib 2025-11-28 15:46:32 +02:00
Yuri Kuznetsov da564bc43c list row without id, fallback to index 2025-11-28 15:35:54 +02:00
Yuri Kuznetsov e4e3a4dc17 bcmath required 2025-11-28 15:33:46 +02:00
Yuri Kuznetsov c1f3d2fae8 opp role update disabled 2025-11-28 15:26:56 +02:00
Yuri Kuznetsov 203e8de34b tooltip lang fixes 2025-11-28 12:50:24 +02:00
Yuri Kuznetsov 5f701104dd translations 2025-11-28 11:11:32 +02:00
Anthony Andriano 3d1befc9b8 Allow system templates to be customized using metadata (#3486)
* Allow system templates to be customized using metadata

* refactor

* removed defaultModuleName parameter

* revert an unintended change in a function call
2025-11-27 22:18:34 +02:00
Yuri Kuznetsov d179b4b792 salutationField prop 2025-11-27 22:11:41 +02:00
Yuri Kuznetsov 5efcd6bd8a follow as collaborator 2025-11-27 20:53:00 +02:00
Yurii 3ac3f04e3d Merge branch 'fix' 2025-11-27 19:49:12 +02:00
Yuri Kuznetsov b7a079b9d3 use assignment notification parameter for collaborator notifications 2025-11-27 17:16:43 +02:00
Yuri Kuznetsov 3581736bd5 add to collaborators notification 2025-11-27 16:48:40 +02:00
Yuri Kuznetsov baeac78c5f pdf: currency symbol helper 2025-11-27 10:40:43 +02:00
Yuri Kuznetsov dab2981c3c fix test 2025-11-27 10:40:26 +02:00
Yuri Kuznetsov 1d1e012991 htmlizer: currency format 2025-11-27 10:34:13 +02:00
Yurii 5b87d12449 frontend populate defaults before view 2025-11-20 17:30:14 +02:00
Yurii 00db2ab1c3 git changed package.json 2025-11-20 16:27:56 +02:00
dependabot[bot] c8fae4fe71 Bump glob from 10.4.5 to 10.5.0 (#3526)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 09:15:08 +02:00
dependabot[bot] 6967498530 Bump js-yaml from 3.14.1 to 3.14.2 (#3525)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 11:35:13 +02:00
dependabot[bot] f0da407398 Bump glob from 10.3.10 to 11.1.0 (#3524)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.10 to 11.1.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.3.10...v11.1.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 11.1.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 09:14:22 +02:00
Usame Beşir 83439e5384 fix missing value of entityType variable (#3523) 2025-11-17 12:06:19 +02:00
Yuri Kuznetsov 1df75fcece currencyAttribute prop 2025-11-15 13:18:31 +02:00
dependabot[bot] 19fe3d68a0 Bump js-yaml from 3.13.1 to 4.1.1 (#3521)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.13.1 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.13.1...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 16:59:22 +02:00
Yuri Kuznetsov 974ea5f353 Merge branch 'master' of https://github.com/espocrm/espocrm 2025-11-14 15:26:38 +02:00
Yuri Kuznetsov 804c9622a6 Merge branch 'fix' 2025-11-14 15:26:30 +02:00
Yuri Kuznetsov 5ce2e0b6dc 9.2.5 2025-11-14 15:16:05 +02:00
Anton Slyzhko 445ea1f240 Fix incorrect alias in subscriptionExclude join (#3520) 2025-11-14 14:51:47 +02:00
Yuri Kuznetsov 94d2f6aabb array field: override allowCustomOptions false 2025-11-13 18:12:26 +02:00
Yuri Kuznetsov c426a637fe email address add impr 2025-11-13 18:11:02 +02:00
Yuri Kuznetsov 9e78d4cad3 no-select 2025-11-13 18:03:00 +02:00
Yuri Kuznetsov 08fecd2dc0 search menu check icon fix 2025-11-13 17:56:06 +02:00
Yuri Kuznetsov 6dfbb08ce6 Merge branch 'fix' of https://github.com/espocrm/espocrm into fix 2025-11-13 17:25:45 +02:00
Yuri Kuznetsov 610c1004aa jsdoc fix 2025-11-13 17:25:10 +02:00
Shaikh Naasir 26ee35cb7d Fix typo in accessCheckCommand description (#3519)
This pull request fixes a minor typo in the WebSocket schema description:

Changed 'patameter' to 'parameter'.
No functional changes were made. Purely a documentation correction.
2025-11-13 16:07:22 +02:00
dependabot[bot] 50eecc891f Bump symfony/http-foundation from 6.4.18 to 6.4.29 (#3516)
Bumps [symfony/http-foundation](https://github.com/symfony/http-foundation) from 6.4.18 to 6.4.29.
- [Release notes](https://github.com/symfony/http-foundation/releases)
- [Changelog](https://github.com/symfony/http-foundation/blob/7.3/CHANGELOG.md)
- [Commits](https://github.com/symfony/http-foundation/compare/v6.4.18...v6.4.29)

---
updated-dependencies:
- dependency-name: symfony/http-foundation
  dependency-version: 6.4.29
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 07:59:08 +02:00
Yuri Kuznetsov 0a69f46e14 schema 2025-11-12 15:07:42 +02:00
Yuri Kuznetsov e66d7fc367 schema 2025-11-11 23:07:43 +02:00
Yuri Kuznetsov e311ac6dbb fix width in layouts 2025-11-11 22:00:27 +02:00
Yuri Kuznetsov 9901070fb1 fix layout 2025-11-11 08:14:35 +02:00
Yuri Kuznetsov 379a2d22f3 autocomplete suggestion min width 2025-11-08 20:53:02 +02:00
Yuri Kuznetsov fc7c949cf3 link field: foreign name attribute 2025-11-08 20:31:46 +02:00
Yuri Kuznetsov f1f0f3ea9a process dynamic logic if model default preparator is used 2025-11-07 16:00:16 +02:00
Yuri Kuznetsov f1c2e3049f js doc fix 2025-11-07 15:37:39 +02:00
Yuri Kuznetsov d036df059e valid usage 2025-11-06 19:37:12 +02:00
Yuri Kuznetsov 748392ab7f personal email folder mapping 2025-11-05 15:05:34 +02:00
Yuri Kuznetsov 683f86806f curl error 2025-11-05 12:25:41 +02:00
Yuri Kuznetsov 7de690c425 curl error details 2025-11-05 12:18:45 +02:00
Yuri Kuznetsov 9a6e3e5ebd update php in readme 2025-11-02 11:37:30 +02:00
Yuri Kuznetsov 65d3c96387 update test workflows 2025-11-02 11:31:20 +02:00
Yuri Kuznetsov 865ac27cd9 drop php 8.2 2025-11-02 11:29:23 +02:00
Yuri Kuznetsov f08fb723d6 merge 2025-11-02 11:16:23 +02:00
Yuri Kuznetsov c1c4a2bedc controller name check 2025-11-01 16:04:19 +02:00
Yuri Kuznetsov 876b74aefc loader error callback fix 2025-11-01 15:53:04 +02:00
Yuri Kuznetsov be9e88aa2d foreign access filters support collaborators and multiple assigned users 2025-10-31 13:19:55 +02:00
Yuri Kuznetsov 15ff1dc6eb audited fields 2025-10-31 08:50:09 +02:00
Yuri Kuznetsov 63e31d33bb document fields audited 2025-10-31 08:43:19 +02:00
Yuri Kuznetsov ee2a0e888c pdf template scope label 2025-10-30 18:30:21 +02:00
Yuri Kuznetsov 4d830e76b0 pdf filename 2025-10-30 18:26:01 +02:00
Yuri Kuznetsov 6e2416dc56 fix kanban menu with star 2025-10-30 17:00:57 +02:00
Yuri Kuznetsov 3e23994991 kanban support options reference 2025-10-30 16:23:54 +02:00
Yuri Kuznetsov 65d487d72e kanban event fix 2025-10-30 16:08:44 +02:00
Yuri Kuznetsov badb2c28cc update dompdf 2025-10-30 15:33:23 +02:00
Yuri Kuznetsov e58a2abd2b update libs 2025-10-30 15:26:09 +02:00
Yuri Kuznetsov bec5dc841a Merge branch 'fix' 2025-10-30 15:17:34 +02:00
Yuri Kuznetsov 33451a1118 lead capture fields ui fix 2025-10-30 14:45:28 +02:00
Yuri Kuznetsov b98f535634 formula user update type check 2025-10-30 14:00:57 +02:00
Yuri Kuznetsov b57969b017 import label fix 2025-10-30 13:15:10 +02:00
Yuri Kuznetsov 252240f11b mass convert currency catch conflict 2025-10-30 13:13:43 +02:00
Yuri Kuznetsov 20391bee3e mass convert currency catch bad request 2025-10-30 13:13:18 +02:00
Yuri Kuznetsov 3a22e517b5 ref 2025-10-30 13:09:56 +02:00
Yuri Kuznetsov 4a71972d60 Merge branch 'fix' 2025-10-30 13:03:58 +02:00
bfzgaier 90d7b99936 fix Cannot access protected property id (#3506) 2025-10-30 13:03:44 +02:00
Yuri Kuznetsov fb6fc00347 numberic string as multiplier 2025-10-30 13:02:40 +02:00
Yuri Kuznetsov d8fa506599 false if not strings 2025-10-30 12:13:15 +02:00
Yuri Kuznetsov 301944f52d Merge branch 'master' of https://github.com/espocrm/espocrm 2025-10-30 12:06:55 +02:00
Yuri Kuznetsov e1a5ed86e7 decimal field type 2025-10-30 12:03:49 +02:00
Anton Slyzhko 86215d0094 int getMinValue fix (#3507)
Fix getMinValue logic that overwrote valid minValue due to wrong null comparison
2025-10-30 11:29:47 +02:00
bfzgaier 5d3201260a fix Cannot access protected property id (#3506) 2025-10-30 10:27:58 +02:00
Yuri Kuznetsov f75ed7e279 docs 2025-10-30 09:52:56 +02:00
Yuri Kuznetsov 94d433d698 fix order 2025-10-29 21:39:35 +02:00
Yuri Kuznetsov 7838d2e480 ref 2025-10-29 21:34:00 +02:00
Yuri Kuznetsov f04738c963 currencyRate in state config 2025-10-29 21:24:43 +02:00
Yuri Kuznetsov 1521168cf3 Merge branch 'fix' 2025-10-29 21:20:08 +02:00
Yuri Kuznetsov 36f03f0a76 fix schema diff for decimal 2025-10-26 12:58:27 +02:00
Yuri Kuznetsov a141a664c6 default decimal to string 2025-10-26 12:38:06 +02:00
Yuri Kuznetsov fc221f8964 Merge branch 'fix' 2025-10-26 11:28:24 +02:00
Yuri Kuznetsov 0a1b7a9817 create builder method 2025-10-26 11:22:27 +02:00
Yuri Kuznetsov 47b9d35153 default order in relations 2025-10-26 11:13:50 +02:00
Yuri Kuznetsov 169e6b53be default template value 2025-10-26 11:09:06 +02:00
Yuri Kuznetsov 9935a6cd11 default template value 2025-10-26 10:29:05 +02:00
Yuri Kuznetsov 86a43a703c test disabled field 2025-10-26 09:03:49 +02:00
Yuri Kuznetsov 419481b8a1 mass update: do not list disabled fields 2025-10-25 20:44:25 +03:00
Yuri Kuznetsov 018da93de3 disabled restrict 2025-10-25 20:35:48 +03:00
Yuri Kuznetsov 3052d548f5 Merge branch 'fix' 2025-10-25 19:34:08 +03:00
Yuri Kuznetsov 02f1e94c86 fix link category parent field 2025-10-25 17:33:41 +03:00
Yuri Kuznetsov 0d4d4dc9ed category folders fetch on refresh 2025-10-25 17:25:13 +03:00
Yuri Kuznetsov d69cfd8b31 typo 2025-10-25 12:51:26 +03:00
Yuri Kuznetsov 599646c397 metadata aclDependency anyScopeList 2025-10-25 12:47:21 +03:00
Yuri Kuznetsov 5d90911e26 enable stars for contacts 2025-10-25 10:23:21 +03:00
Yuri Kuznetsov 4e0d5a2267 schema 2025-10-25 10:22:56 +03:00
Yuri Kuznetsov 58a30fe56b Merge branch 'stable' 2025-10-23 10:58:29 +03:00
Yuri Kuznetsov be6661454b 9.2.4 2025-10-23 10:46:34 +03:00
Yuri Kuznetsov 889a19b9bd fix link name validations 2025-10-22 16:26:31 +03:00
Yuri Kuznetsov 5e2544a192 Merge branch 'fix' 2025-10-22 09:02:41 +03:00
Yuri Kuznetsov ec242152e7 fix convert lead duplicate 2025-10-22 08:49:51 +03:00
Yuri Kuznetsov e0ae3beef9 add LEAD key word for mariadb, patch 2025-10-21 21:04:01 +03:00
Usame Beşir 4c6dd88a2d fix oauth refresh token check (#3498) 2025-10-21 20:00:52 +03:00
Usame Beşir fadaf5891e fix oauth refresh token check (#3498) 2025-10-21 20:00:23 +03:00
Yuri Kuznetsov d75bd20ffc Merge branch 'stable' 2025-10-21 11:37:06 +03:00
Yuri Kuznetsov 2e59cd4653 drop alias usage 2025-10-06 10:42:55 +03:00
Yuri Kuznetsov 70c28d9a78 ref 2025-10-04 14:49:39 +03:00
Yuri Kuznetsov e4157e5ce9 copy to clipboard secret name 2025-10-04 13:48:38 +03:00
Yuri Kuznetsov 1a90cf149f Merge branch 'fix' 2025-10-04 13:24:05 +03:00
Yuri Kuznetsov e6611e1658 secret function change 2025-10-04 13:21:10 +03:00
Usame Beşir 9361046216 Add getSecret formula function (#3481)
* add getSecret formula function

* simplify getSecret method by removing unnecessary null check

* update process method to allow nullable return type

* rename getSecret function to ext\appSecret\get
2025-10-04 13:13:59 +03:00
Yuri Kuznetsov 6fe977b2db Merge branch 'fix' 2025-10-02 11:48:56 +03:00
Yuri Kuznetsov 11da4d0d81 create post edit view change 2025-10-01 12:12:14 +03:00
Yuri Kuznetsov 9790a7ee6f Merge branch 'state-config' 2025-10-01 10:20:59 +03:00
Yuri Kuznetsov 20474a9d3e state config 2025-10-01 10:20:47 +03:00
Yuri Kuznetsov 258e827db3 Merge branch 'fix' 2025-09-30 18:48:59 +03:00
Yuri Kuznetsov 3c81bf93e3 cs 2025-09-30 14:34:31 +03:00
Yuri Kuznetsov 575a63b22c overridden typed validator honor validation value 2025-09-30 12:56:30 +03:00
Yuri Kuznetsov ec5bc2f6f2 notify about reactions if not followed 2025-09-30 12:21:40 +03:00
4988 changed files with 52750 additions and 13436 deletions
+3 -2
View File
@@ -3,8 +3,9 @@
#### Guidelines
When reporting a possible bug, provide detail steps so that we will be able
to reproduce the issue. Steps to reproduce should be clear and unambiguous. Try not to use phrases like "very big bug",
"huge issue", "useless feature", etc. No need to use exclamation marks as well.
to reproduce the issue. Steps to reproduce should be clear and unambiguous.
Try not to use phrases like "very big bug", "huge issue", "useless feature", etc. No need to use exclamation marks as well.
#### No support
+1 -1
View File
@@ -33,7 +33,7 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ['8.3']
php-versions: ['8.4']
branches: ['master']
steps:
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.4']
php-versions: ['8.3', '8.5']
branches: ['master']
steps:
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-24.04
strategy:
matrix:
php-versions: ['8.2', '8.3', '8.4']
php-versions: ['8.3', '8.4', '8.5']
steps:
- uses: actions/checkout@v2
+3
View File
@@ -7,6 +7,7 @@
<option name="GROUP_USE_WRAP" value="2" />
<option name="VARIABLE_NAMING_STYLE" value="CAMEL_CASE" />
<option name="KEEP_RPAREN_AND_LBRACE_ON_ONE_LINE" value="true" />
<option name="SPACE_BEFORE_SHORT_CLOSURE_LEFT_PARENTHESIS" value="true" />
<option name="FORCE_EMPTY_METHODS_IN_ONE_LINE" value="true" />
</PHPCodeStyleSettings>
<codeStyleSettings language="JSON">
@@ -19,6 +20,8 @@
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="SPACE_AROUND_UNARY_OPERATOR" value="true" />
<option name="SPACE_AFTER_TYPE_CAST" value="true" />
<option name="METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
<option name="METHOD_CALL_CHAIN_WRAP" value="5" />
</codeStyleSettings>
+18
View File
@@ -0,0 +1,18 @@
###############################################################################
# EspoCRM - Development Server for Extensions
# Based on official image, overlays custom code on each deploy
###############################################################################
FROM espocrm/espocrm:latest
# Fix redirect loop: tell Apache it's behind HTTPS proxy (Traefik)
RUN echo 'SetEnv HTTPS on' > /etc/apache2/conf-available/force-https.conf && \
a2enconf force-https
# Copy custom extensions and modifications
COPY custom/ /var/www/html/custom/
# Ensure correct permissions
RUN chown -R www-data:www-data /var/www/html/custom
EXPOSE 80
+1 -1
View File
@@ -2,7 +2,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+13 -13
View File
@@ -19,12 +19,24 @@ You can try the CRM on an online [demo](https://www.espocrm.com/demo/).
### Requirements
* PHP 8.2 - 8.4;
* PHP 8.3 - 8.5;
* MySQL 8.0 (and later), or MariaDB 10.3 (and later);
* PostgreSQL 15 (and later).
For more information about server configuration, see [this article](https://docs.espocrm.com/administration/server-configuration/).
### Download
[Download](https://www.espocrm.com/download/) the latest release from our website or from GitHub [releases](https://github.com/espocrm/espocrm/releases).
### Release notes
Release notes are available at GitHub [releases](https://github.com/espocrm/espocrm/releases).
### Documentation
See the [documentation](https://docs.espocrm.com) for administrators, users and developers.
### Why EspoCRM?
* Open-source transparency. EspoCRM's source code is open and accessible, so anyone can inspect it and see how data is being managed within the CRM.
@@ -47,18 +59,6 @@ See installation instructions:
* [Installation with Docker](https://docs.espocrm.com/administration/docker/installation/)
* [Installation with Traefik](https://docs.espocrm.com/administration/docker/traefik/)
### Download
[Download](https://www.espocrm.com/download/) the latest release from our website. You can also download the latest and previous release packages from GitHub [releases](https://github.com/espocrm/espocrm/releases).
### Release notes
Release notes are available at GitHub [releases](https://github.com/espocrm/espocrm/releases).
### Documentation
See the [documentation](https://docs.espocrm.com) for administrators, users and developers.
### Bug reporting
Create a [GitHub issue](https://github.com/espocrm/espocrm/issues/new/choose) or post on our [forum](https://forum.espocrm.com/forum/bug-reports).
+6 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -242,6 +242,11 @@ class Binding implements BindingProcessor
'Espo\\Core\\Utils\\Config\\ApplicationConfig',
'applicationConfig'
);
$binder->bindService(
'Espo\\Core\\Session\\Session',
'session'
);
}
private function bindCore(Binder $binder): void
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -0,0 +1,79 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\CurrencyRecordRate;
use Espo\Core\Acl\AccessEntityCREDChecker;
use Espo\Core\Acl\DefaultAccessChecker;
use Espo\Core\Acl\ScopeData;
use Espo\Core\Acl\Table;
use Espo\Core\Acl\Traits\DefaultAccessCheckerDependency;
use Espo\Entities\CurrencyRecordRate;
use Espo\Entities\User;
use Espo\ORM\Entity;
/**
* @implements AccessEntityCREDChecker<CurrencyRecordRate>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
public function __construct(
private DefaultAccessChecker $defaultAccessChecker,
) {}
public function checkCreate(User $user, ScopeData $data): bool
{
if ($data->getEdit() === Table::LEVEL_YES) {
return true;
}
return false;
}
public function checkDelete(User $user, ScopeData $data): bool
{
if ($data->getEdit() === Table::LEVEL_YES) {
return true;
}
return false;
}
public function checkEntityCreate(User $user, Entity $entity, ScopeData $data): bool
{
return $this->checkCreate($user, $data);
}
public function checkEntityDelete(User $user, Entity $entity, ScopeData $data): bool
{
return $this->checkDelete($user, $data);
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+1 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+1 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -0,0 +1,59 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AppParams;
use Espo\Core\Currency\ConfigDataProvider;
use Espo\Core\Utils\NumberUtil;
use Espo\Tools\App\AppParam;
use stdClass;
/**
* @noinspection PhpUnused
*/
class CurrencyRates implements AppParam
{
private const int PRECISION = 6;
public function __construct(
private ConfigDataProvider $configDataProvider,
private NumberUtil $numberUtil,
) {}
public function get(): stdClass
{
$rates = $this->configDataProvider->getCurrencyRates()->toAssoc();
foreach ($rates as $code => $value) {
$rates[$code] = $this->numberUtil->format($value, self::PRECISION, '.', '');
}
return (object) $rates;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -280,7 +280,7 @@ class Email implements AssignmentNotificator
->setType(Notification::TYPE_EMAIL_RECEIVED)
->setUserId($userId)
->setData($data)
->setRelated(LinkParent::createFromEntity($entity))
->setRelated(LinkParent::fromEntity($entity))
->setActionId($params->getActionId());
$this->entityManager->saveEntity($notification);
+1 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+1 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+1 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+1 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -35,7 +35,7 @@ use Espo\Core\Console\Exceptions\ArgumentNotSpecified;
use Espo\Core\Console\Exceptions\InvalidArgument;
use Espo\Core\Console\IO;
use Espo\Core\Exceptions\Error;
use Espo\Core\FieldProcessing\NextNumber\BeforeSaveProcessor;
use Espo\Core\FieldProcessing\NextNumber\Processor;
use Espo\Core\Name\Field;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Core\ORM\Repository\Option\SaveOption;
@@ -44,11 +44,11 @@ use Espo\ORM\Query\Part\Order;
class PopulateNumbers implements Command
{
private BeforeSaveProcessor $beforeSaveProcessor;
private Processor $beforeSaveProcessor;
private EntityManager $entityManager;
public function __construct(
BeforeSaveProcessor $beforeSaveProcessor,
Processor $beforeSaveProcessor,
EntityManager $entityManager
) {
$this->beforeSaveProcessor = $beforeSaveProcessor;
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -0,0 +1,63 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\CurrencyRecord;
use Espo\Core\Currency\ConfigDataProvider;
use Espo\Core\FieldProcessing\Loader;
use Espo\Core\FieldProcessing\Loader\Params;
use Espo\Entities\CurrencyRecord;
use Espo\ORM\Entity;
use ValueError;
/**
* @implements Loader<CurrencyRecord>
*/
class IsBase implements Loader
{
public function __construct(
private ConfigDataProvider $configDataProvider,
) {}
public function process(Entity $entity, Params $params): void
{
try {
$code = $entity->getCode();
} catch (ValueError) {
$entity->setIsBase(false);
return;
}
$isBase = $code === $this->configDataProvider->getBaseCurrency();
$entity->setIsBase($isBase);
}
}
@@ -0,0 +1,60 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\CurrencyRecord;
use Espo\Core\FieldProcessing\Loader;
use Espo\Core\FieldProcessing\Loader\Params;
use Espo\Core\Utils\Language;
use Espo\Entities\CurrencyRecord;
use Espo\ORM\Entity;
use ValueError;
/**
* @implements Loader<CurrencyRecord>
*/
class Label implements Loader
{
public function __construct(
private Language $defaultLanguage
) {}
public function process(Entity $entity, Params $params): void
{
try {
$code = $entity->getCode();
} catch (ValueError) {
return;
}
$name = $this->defaultLanguage->translateLabel($code, 'names', 'Currency');
$entity->setLabel($name);
}
}
@@ -0,0 +1,57 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\CurrencyRecord;
use Espo\Core\Currency\ConfigDataProvider;
use Espo\Core\FieldProcessing\Loader;
use Espo\Core\FieldProcessing\Loader\Params;
use Espo\Entities\CurrencyRecord;
use Espo\ORM\Entity;
use Espo\Tools\Currency\RateEntryProvider;
/**
* @implements Loader<CurrencyRecord>
*/
class Rate implements Loader
{
public function __construct(
private RateEntryProvider $rateEntryProvider,
private ConfigDataProvider $configDataProvider,
) {}
public function process(Entity $entity, Params $params): void
{
$rate = $entity->getCode() !== $this->configDataProvider->getBaseCurrency() ?
$this->rateEntryProvider->getCurrentRateEntry($entity)?->getRate() :
'1';
$entity->setRate($rate);
}
}
@@ -0,0 +1,57 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\CurrencyRecord;
use Espo\Core\Currency\ConfigDataProvider;
use Espo\Core\FieldProcessing\Loader;
use Espo\Core\FieldProcessing\Loader\Params;
use Espo\Entities\CurrencyRecord;
use Espo\ORM\Entity;
use Espo\Tools\Currency\RateEntryProvider;
/**
* @implements Loader<CurrencyRecord>
*/
class RateDate implements Loader
{
public function __construct(
private RateEntryProvider $rateEntryProvider,
private ConfigDataProvider $configDataProvider,
) {}
public function process(Entity $entity, Params $params): void
{
$date = $entity->getCode() !== $this->configDataProvider->getBaseCurrency() ?
$this->rateEntryProvider->getCurrentRateEntry($entity)?->getDate() :
null;
$entity->setRateDate($date);
}
}
@@ -0,0 +1,59 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\CurrencyRecord;
use Espo\Core\FieldProcessing\Loader;
use Espo\Core\FieldProcessing\Loader\Params;
use Espo\Core\Utils\Metadata;
use Espo\Entities\CurrencyRecord;
use Espo\ORM\Entity;
use ValueError;
/**
* @implements Loader<CurrencyRecord>
*/
class Symbol implements Loader
{
public function __construct(
private Metadata $metadata,
) {}
public function process(Entity $entity, Params $params): void
{
try {
$code = $entity->getCode();
} catch (ValueError) {
return;
}
$symbol = $this->metadata->get("app.currency.symbolMap.$code");
$entity->setSymbol($symbol);
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 EspoCRM, Inc.
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify

Some files were not shown because too many files have changed in this diff Show More