Compare commits

..

855 Commits

Author SHA1 Message Date
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 b398004040 sync database currency rates 2026-03-10 11:33:49 +02:00
Yurii 48f71dfafe 9.3.2 2026-03-06 09:22:14 +02:00
Yurii d6f97636de fix lofic defs cleanup 2026-03-05 09:48:06 +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 8206738c56 globals search order by entity type position 2026-03-03 15:27:00 +02:00
Yurii 9b8e5ef016 contact: import title 2026-03-02 19:09:00 +02:00
Yurii a8398965b8 fix loging data not available on logout 2026-02-25 12:56:40 +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 a79771aedd 9.3.1 2026-02-19 10:55:00 +02:00
Yurii c1eb14726e currency no join mode getting rates dynamically 2026-02-19 10:09:32 +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 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 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 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 d13a1ffbc7 9.2.3 2025-10-21 11:30:08 +03:00
Yuri Kuznetsov 986be9f189 scroll gutter for record modals 2025-10-21 10:17:13 +03:00
Yuri Kuznetsov 40f13f7a3d change password template fix 2025-10-21 10:03:51 +03:00
Yuri Kuznetsov 2de3c97f8d edit dashboard templte fix 2025-10-21 10:01:12 +03:00
Yuri Kuznetsov 3b6fd0d363 modal record wide css fix 2025-10-21 10:01:01 +03:00
Yuri Kuznetsov a7586e92a1 audit data 2025-10-20 18:19:22 +03:00
Yuri Kuznetsov 076644db85 auditView param 2025-10-20 13:06:57 +03:00
Yuri Kuznetsov 7eb139f35d small color correction 2025-10-18 19:43:06 +03:00
Yuri Kuznetsov 6f22686319 hazy logo remove 2025-10-18 19:32:18 +03:00
Yuri Kuznetsov 298307f613 color fix 2025-10-18 19:31:43 +03:00
Yuri Kuznetsov 664faa81ca narrower record full width in modal 2025-10-18 11:18:40 +03:00
Yuri Kuznetsov be2dd74c43 do not use full width 2025-10-18 10:33:28 +03:00
Yuri Kuznetsov d2ae211e53 small layout changes 2025-10-18 10:26:57 +03:00
Yuri Kuznetsov e522d8d709 modal size changes 2025-10-18 10:26:51 +03:00
Yuri Kuznetsov c5c191faa6 audit log email template 2025-10-17 18:00:32 +03:00
Yuri Kuznetsov 3ce4cd3bfc btm sm width 32px 2025-10-17 17:38:44 +03:00
Yuri Kuznetsov e620a1195f dropdown-link-active-bg variable 2025-10-17 12:25:41 +03:00
Yuri Kuznetsov 880478689f foreign array fix 2025-10-16 15:47:31 +03:00
Yuri Kuznetsov 0d5d1710bf schema 2025-10-16 14:49:58 +03:00
Yuri Kuznetsov 0c7d795081 compact-form class 2025-10-16 13:06:28 +03:00
Yuri Kuznetsov 624bdb7192 less ref 2025-10-15 18:49:53 +03:00
Yuri Kuznetsov db769d9c3e css ref 2025-10-15 18:33:36 +03:00
Yuri Kuznetsov 67045b12ac cleanup 2025-10-15 16:30:05 +03:00
Yuri Kuznetsov e67ab0fd4d whitespace removal 2025-10-15 12:56:15 +03:00
Yuri Kuznetsov 99c64770dd theme name in body 2025-10-15 10:51:48 +03:00
Yuri Kuznetsov ed60efcad4 hazyblue color tweak 2025-10-15 10:46:49 +03:00
Yuri Kuznetsov 443af201ed fix generate password special characters null 2025-10-14 20:34:55 +03:00
Yuri Kuznetsov 7a61dd096e fix ldap dynamic logic 2025-10-14 20:07:43 +03:00
Yuri Kuznetsov 9404c1d165 email update filter fix 2025-10-13 14:31:22 +03:00
Yuri Kuznetsov 2a76db6899 fix corrupted defs 2025-10-11 09:28:17 +03:00
Yuri Kuznetsov 915283d288 use all primary filter 2025-10-10 11:46:54 +03:00
Yuri Kuznetsov 483e6e9d5b apply all filter 2025-10-10 11:35:55 +03:00
Yuri Kuznetsov 046d94ceb8 update note ui impr 2025-10-09 10:42:51 +03:00
Yuri Kuznetsov 062008374d comment 2025-10-09 10:12:25 +03:00
Yuri Kuznetsov df2f857197 prevent action handler fired twice 2025-10-09 09:24:09 +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 25c88259f8 secret function change 2025-10-04 13:23:43 +03:00
Usame Beşir 2ddfa39966 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:23:20 +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 ebec204d3a external account client manager using factory 2025-10-02 15:55:47 +03:00
Yuri Kuznetsov 6fe977b2db Merge branch 'fix' 2025-10-02 11:48:56 +03:00
Yuri Kuznetsov b2a4f80408 9.2.2 2025-10-02 11:37:07 +03:00
Yuri Kuznetsov 9153fbf280 limit fields for status 2025-10-02 10:52:04 +03:00
Yuri Kuznetsov cb16bc9254 ref 2025-10-02 10:43:35 +03:00
Yuri Kuznetsov dc8f674248 notification index 2025-10-02 10:28:43 +03:00
Yuri Kuznetsov 803b07866a cast to object 2025-10-01 19:15:08 +03:00
Yuri Kuznetsov 11da4d0d81 create post edit view change 2025-10-01 12:12:14 +03:00
Yuri Kuznetsov 50f422ded8 ignore state.php 2025-10-01 10:24:22 +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 25357d75d3 9.2.1 2025-09-30 18:40:40 +03:00
Yuri Kuznetsov 2cea39b5a9 do not use suppress amd in runtime 2025-09-30 17:31:29 +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
Yuri Kuznetsov 107571a544 fix schema 2025-09-29 10:51:14 +03:00
Yuri Kuznetsov bacb824085 schema 2025-09-28 10:50:06 +03:00
Yuri Kuznetsov 3f9ca7aa78 link with avatar impr 2025-09-26 09:38:51 +03:00
Yuri Kuznetsov 9ce487fc90 autocomplete quick enter 2025-09-25 20:20:28 +03:00
Yuri Kuznetsov 3bbb54825c email template has one 2025-09-25 17:36:28 +03:00
Yuri Kuznetsov 68993e2448 htmlizer raw timezone fix 2025-09-25 17:24:12 +03:00
Yuri Kuznetsov 12fa090f61 ref 2025-09-25 17:20:09 +03:00
Yuri Kuznetsov 6d1a01a0d8 ref 2025-09-25 17:10:43 +03:00
Yuri Kuznetsov 670632d52b color change 2025-09-25 16:13:17 +03:00
Yuri Kuznetsov 2465a554f7 ref, clean 2025-09-25 16:03:09 +03:00
Yuri Kuznetsov 74cc701459 schema fix 2025-09-25 15:29:27 +03:00
Yuri Kuznetsov 125d84d3bf no load schema 2025-09-25 15:24:50 +03:00
Yuri Kuznetsov 1a0e674b81 filtersEnabled 2025-09-25 15:19:57 +03:00
Yuri Kuznetsov fac125c9a9 lv_LV 2025-09-25 14:42:23 +03:00
Yuri Kuznetsov 7bad86f65d lt_LT 2025-09-25 14:41:58 +03:00
Yuri Kuznetsov d44b2992de it_IT 2025-09-25 14:41:38 +03:00
Yuri Kuznetsov 04c73a7870 ja_JP 2025-09-25 14:41:15 +03:00
Yuri Kuznetsov 66fbfe193c fr_FR 2025-09-25 14:39:47 +03:00
Yuri Kuznetsov 3de036cca8 de_DE 2025-09-25 14:38:06 +03:00
Yurii Kuznietsov 81a9af78ff Merge pull request #3474 from rabiibrahimi/master
Fix: remove extra whitespace in constant reference
2025-09-25 12:47:30 +03:00
rabiibrahimi e35ec52d74 Fix: remove extra whitespace in constant reference 2025-09-25 10:37:43 +01:00
Yuri Kuznetsov fa85d9e132 websocket changes 2025-09-25 12:14:01 +03:00
Yuri Kuznetsov aaf30cf694 warn 2025-09-24 22:28:45 +03:00
Yuri Kuznetsov 02fbda798f mass update default team fix 2025-09-24 10:04:41 +03:00
Yuri Kuznetsov e9d5a04c73 comment 2025-09-23 14:27:47 +03:00
Yuri Kuznetsov f5e145a971 notificationGrouping param 2025-09-23 14:26:36 +03:00
Yuri Kuznetsov c446499ee9 cleanup 2025-09-23 13:28:10 +03:00
Yuri Kuznetsov 87c23f371b default link field use field entity 2025-09-23 13:13:14 +03:00
Yuri Kuznetsov eb5d78e20d version 2025-09-23 09:56:55 +03:00
Yuri Kuznetsov cd5ddb462e docs 2025-09-22 10:48:51 +03:00
Yuri Kuznetsov 1c155c4e19 Merge branch 'fix' 2025-09-22 10:08:03 +03:00
Yuri Kuznetsov 28356c6f13 9.1.9 2025-09-22 09:51:44 +03:00
Yuri Kuznetsov 45ea32e1e2 Merge branch 'fix' 2025-09-22 09:17:22 +03:00
Yuri Kuznetsov 58df349f43 move content type check to user 2025-09-20 13:13:03 +03:00
Yuri Kuznetsov a53f1fdc46 cleanup 2025-09-19 17:43:27 +03:00
Yuri Kuznetsov cc16f0fd6c block basic dialog if post 2025-09-19 17:41:04 +03:00
Yuri Kuznetsov b5ff37bc5a Merge branch 'fix' 2025-09-19 17:20:10 +03:00
Yuri Kuznetsov 601d6a6743 content type check 2025-09-19 17:19:49 +03:00
Yuri Kuznetsov a31d231a6b fix test 2025-09-19 13:56:21 +03:00
Yuri Kuznetsov 2015e4edee attachment modified at 2025-09-19 09:30:45 +03:00
Yuri Kuznetsov 67ea7859ff ref 2025-09-19 09:29:43 +03:00
Yuri Kuznetsov 9aa3e3213f remove in category search 2025-09-18 18:21:24 +03:00
Yuri Kuznetsov a5baf82ddc catch forbidden 2025-09-18 18:21:01 +03:00
Yuri Kuznetsov d4eccdb362 json array required 2025-09-18 15:53:10 +03:00
Yuri Kuznetsov 708595beae ref 2025-09-16 18:02:18 +03:00
Yuri Kuznetsov 0ec2112b03 htmlizer has one 2025-09-16 18:01:37 +03:00
Yuri Kuznetsov c630db68d2 add name to libs 2025-09-16 14:50:53 +03:00
Yurii Kuznietsov 93150b4419 Merge pull request #3470 from bandtank/master
Add value to Item in default case of DefaultDateTimeItemTransformer
2025-09-12 20:11:41 +03:00
Anthony Andriano 986e028918 add value to Item in default case 2025-09-12 10:45:19 -06:00
Yuri Kuznetsov 419e8a15c8 Merge branch 'fix' 2025-09-09 14:57:57 +03:00
Yuri Kuznetsov e350255bd7 fix null check 2025-09-09 14:57:44 +03:00
Yurii Kuznietsov cc1b864ab9 Merge pull request #3469 from AntonSlyzhko/htmlizer-translation-fix
Fix Htmlizer translation for enum fields
2025-09-09 14:51:58 +03:00
Yuri Kuznetsov 94993d6d22 comment 2025-09-09 14:51:37 +03:00
Yuri Kuznetsov e147d25dbf before upgrade check 2025-09-09 14:43:14 +03:00
Yuri Kuznetsov 68f7598a6a comment 2025-09-09 14:26:18 +03:00
AntonSlyzhko 8ee66c2d08 Fix Htmlizer translation for enum fields 2025-09-09 14:23:56 +03:00
Yuri Kuznetsov efe30172e6 fix relate 2025-09-09 13:08:37 +03:00
Yuri Kuznetsov af2c05f03e html fix 2025-09-09 11:56:18 +03:00
Yuri Kuznetsov afa16365f2 data-is-dark 2025-09-09 10:23:28 +03:00
Yuri Kuznetsov 85946dbbed ref 2025-09-09 10:17:51 +03:00
Yuri Kuznetsov d0e9798389 css fix 2025-09-07 12:17:00 +03:00
Yuri Kuznetsov ea6b4a14b6 comment 2025-09-05 16:12:40 +03:00
Yuri Kuznetsov 5ba36b11d7 comment 2025-09-05 11:44:37 +03:00
Yuri Kuznetsov 9d305bb545 cs, ref 2025-09-05 11:40:27 +03:00
Yuri Kuznetsov 4d8fdf5c3c get rid of umask 2025-09-05 11:24:02 +03:00
Yuri Kuznetsov b9893580f1 assignment users avatar fix 2025-09-04 20:41:04 +03:00
Yuri Kuznetsov dd27b9abf2 fix task calendar websocket hook 2025-09-04 19:03:01 +03:00
Yuri Kuznetsov 300b2ae899 fix calendar websocket hook 2025-09-04 19:01:35 +03:00
Yuri Kuznetsov 30df71e5a4 typo fix 2025-09-04 17:32:48 +03:00
Yuri Kuznetsov 72080af45d dummy primary filter all 2025-09-04 17:16:53 +03:00
Yuri Kuznetsov 29a56f8952 default template type props 2025-09-03 09:57:41 +03:00
Yuri Kuznetsov 78fd4fd3de Merge branch 'master' of https://github.com/espocrm/espocrm 2025-09-02 09:06:49 +03:00
Yurii Kuznietsov 1d6ea0bfcf Merge pull request #3466 from Kharg/entity-removed-typo
entity-removed.js typo
2025-09-02 09:06:30 +03:00
Andrew Fontana b4e8659efe entity-removed.js typo 2025-09-01 22:35:51 +02:00
Yuri Kuznetsov e78b59fc40 format function throw exception 2025-09-01 16:02:53 +03:00
Yuri Kuznetsov 988a677f4c websocket improvements 2025-09-01 14:11:19 +03:00
Yuri Kuznetsov 495d2ccfbc entity methods return static 2025-09-01 08:58:17 +03:00
Yuri Kuznetsov d94e758b8f metadata force append client lists 2025-08-31 15:59:21 +03:00
Yuri Kuznetsov c5c7e0eda7 strip whitespaces in generated file names 2025-08-29 20:29:26 +03:00
Yuri Kuznetsov 85843a4dd0 cs 2025-08-29 20:18:59 +03:00
Yuri Kuznetsov 947dc396d0 disable port number formatting 2025-08-29 09:39:52 +03:00
Yuri Kuznetsov ccb54fbdc8 schema 2025-08-29 09:37:15 +03:00
Yuri Kuznetsov b5243d4829 Merge branch 'fix' 2025-08-27 15:53:38 +03:00
Yuri Kuznetsov 3608af3836 currency value object support int 2025-08-27 15:53:21 +03:00
Yuri Kuznetsov 2496d5e14f currency value object support int 2025-08-27 15:52:21 +03:00
Yuri Kuznetsov cbc39cefe4 (c) source files 2025-08-26 20:10:28 +03:00
Yuri Kuznetsov 32c2a593f3 (c) update 2025-08-26 20:07:19 +03:00
Yuri Kuznetsov de1ef5b7f3 update phpspreadsheet 2025-08-26 14:01:04 +03:00
Yuri Kuznetsov b5e65ec5d8 id is not empty string check 2025-08-25 11:40:53 +03:00
Yuri Kuznetsov 285711a07a check id is string 2025-08-25 11:38:38 +03:00
Yuri Kuznetsov 607d9ba102 baseline role change warning 2025-08-22 17:30:03 +03:00
Yuri Kuznetsov 952694bb0e link select optional async 2025-08-22 17:29:52 +03:00
Yuri Kuznetsov dc5d7a0a98 ref 2025-08-22 10:46:31 +03:00
Yuri Kuznetsov 74f267edb1 style fix 2025-08-22 10:46:11 +03:00
Yuri Kuznetsov c4a61f9dc3 baseline role integration test 2025-08-22 10:33:51 +03:00
Yuri Kuznetsov 04bca8c3a7 ref 2025-08-22 10:33:38 +03:00
Yuri Kuznetsov bb285bf69c baseline role 2025-08-22 10:10:00 +03:00
Yuri Kuznetsov 852345e004 ref 2025-08-21 20:10:14 +03:00
Yuri Kuznetsov 43af855e89 ref 2025-08-21 20:07:41 +03:00
Yuri Kuznetsov a20b32ffda fix available reaction 2025-08-21 16:45:22 +03:00
Yuri Kuznetsov 28c2b69f21 ref 2025-08-21 11:46:31 +03:00
Yuri Kuznetsov e76d77e703 ref 2025-08-21 11:03:15 +03:00
Yuri Kuznetsov 027bd3d062 date field refactor 2025-08-21 10:19:43 +03:00
Yurii Kuznietsov 9fa4007e65 Merge pull request #3457 from arkadiyasuratov/master
fix incorrect parent setting in compose modal
2025-08-19 18:10:27 +03:00
Arkadiy Asuratov 9f01ac29d0 fix incorrect parent setting in compose modal 2025-08-19 16:55:02 +02:00
Yuri Kuznetsov 6ff5640c00 fix modal title 2025-08-19 16:57:33 +03:00
Yuri Kuznetsov b57cfe597f leadCaptureSiteUrl 2025-08-19 10:53:29 +03:00
Yuri Kuznetsov ac10c06c02 ref 2025-08-19 10:44:19 +03:00
Yuri Kuznetsov 90c344a89c shortcut fixes 2025-08-19 10:28:54 +03:00
Yuri Kuznetsov c92041b94a date time filter inclusive exclusive fix 2025-08-18 17:13:30 +03:00
Yuri Kuznetsov 6b7590770f last x days 1 second fix 2025-08-18 17:02:06 +03:00
Yuri Kuznetsov b8ee2b934b date time range last second fix 2025-08-18 16:49:02 +03:00
Yuri Kuznetsov e56d9411f0 suppress autoresponse only for non-email 2025-08-18 13:45:29 +03:00
Yuri Kuznetsov c6185036d9 mass email auto submitted header skip for email type 2025-08-18 13:43:04 +03:00
Yuri Kuznetsov 5d35bde5b7 auto-submitted header usage 2025-08-18 13:00:03 +03:00
Yuri Kuznetsov 5c0d6fa9e8 auto reply in fielters layout 2025-08-18 12:15:35 +03:00
Yuri Kuznetsov 41e52c96fc auto reply on detail view 2025-08-18 12:02:32 +03:00
Yuri Kuznetsov 569f909362 fix test 2025-08-18 11:57:20 +03:00
Yuri Kuznetsov f7729cdabf email auto reply field 2025-08-18 11:52:10 +03:00
Yuri Kuznetsov c244f224b2 email: fix group folder archived not listed 2025-08-17 19:04:42 +03:00
Yuri Kuznetsov 948f1d2295 fix test 2025-08-17 14:22:20 +03:00
Yuri Kuznetsov 6a33ffc0fa drop select builder factory service 2025-08-16 18:22:57 +03:00
Yuri Kuznetsov b05072d21e fix test 2025-08-16 14:13:20 +03:00
Yuri Kuznetsov b78e87b3e3 fix email group folders in inbox 2025-08-16 12:15:30 +03:00
Yurii Kuznietsov bcf39858c4 Merge pull request #3451 from traien/patch-4
keep user-addressed emails visible when routed to a Group Folder
2025-08-16 11:46:37 +03:00
Yuri Kuznetsov b59dcac594 print pdf fix defs 2025-08-16 10:23:56 +03:00
Osama Bashir 9c21530cf7 change visibility of getUserGroupEmailFoldersIds method and add user context to query 2025-08-15 16:09:31 +03:00
Osama Bashir 6b07a2a939 fix phpstan No value type specified in iterable type 2025-08-15 14:37:30 +03:00
Osama Bashir 880b9949b7 keep user-addressed emails visible when routed to a Group Folder 2025-08-15 14:33:06 +03:00
Yuri Kuznetsov f8f64412d9 link edit form change 2025-08-14 11:34:36 +03:00
Yuri Kuznetsov 494c6d9a27 fix test 2025-08-11 13:58:27 +03:00
Yuri Kuznetsov 9ee52dc469 ref 2025-08-10 16:00:22 +03:00
Yuri Kuznetsov f1427222cf cleanup 2025-08-10 15:54:34 +03:00
Yuri Kuznetsov f158501ed6 delete restorer 2025-08-10 15:52:59 +03:00
Yuri Kuznetsov 9fac1d6c51 ref 2025-08-10 15:27:05 +03:00
Yuri Kuznetsov 0f50142073 ref 2025-08-10 15:23:37 +03:00
Yuri Kuznetsov c9a406f7f5 reminder: do not list to small if full day 2025-08-10 15:12:21 +03:00
Yuri Kuznetsov 944e504d7b ref 2025-08-10 15:01:15 +03:00
Yuri Kuznetsov 5d32456820 portal redirect trailing slash 2025-08-08 18:29:58 +03:00
Yuri Kuznetsov b18c70bea3 ref 2025-08-08 18:13:27 +03:00
Yuri Kuznetsov 24f00dfa03 field manager param label translation 2025-08-08 11:15:07 +03:00
Yuri Kuznetsov d32eea0e8a jsdocs 2025-08-08 10:52:25 +03:00
Yuri Kuznetsov 0975532b9c integration fields label translation 2025-08-08 10:40:18 +03:00
Yuri Kuznetsov e0ab268624 ref 2025-08-08 10:30:18 +03:00
Yuri Kuznetsov 164713d2a8 fix safari dragging issue 2025-08-08 09:57:24 +03:00
Yuri Kuznetsov cb87133fae calendar date scope support 2025-08-07 16:15:04 +03:00
Yuri Kuznetsov 2fa6162920 free-busy no date filed 2025-08-07 14:20:40 +03:00
Yuri Kuznetsov d1de4135ec weak reference usage 2025-08-07 12:17:00 +03:00
Yuri Kuznetsov f52ca3c524 mid dot usage 2025-08-07 12:17:00 +03:00
Yurii Kuznietsov 2f6c30c2a6 Merge pull request #3446 from espocrm/dependabot/npm_and_yarn/tmp-0.2.4
Bump tmp from 0.2.3 to 0.2.4
2025-08-06 20:30:52 +03:00
dependabot[bot] 561c623584 Bump tmp from 0.2.3 to 0.2.4
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.4.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.4)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.2.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 17:09:19 +00:00
Yuri Kuznetsov bfd8846eeb markdown checkbox style 2025-08-05 18:29:07 +03:00
Yuri Kuznetsov 1842805f41 html layout fix 2025-08-05 00:09:21 +03:00
Yuri Kuznetsov 3fb824dd85 theme impr 2025-08-04 19:54:01 +03:00
Yuri Kuznetsov a3e68c1505 theme impr 2025-08-01 19:22:33 +03:00
Yuri Kuznetsov 8662e8f4a6 theme impr 2025-08-01 18:39:23 +03:00
Yuri Kuznetsov 074eb7f5af theme impr 2025-08-01 17:45:27 +03:00
Yuri Kuznetsov 4b3ed0783e fix text 2025-08-01 15:09:12 +03:00
Yuri Kuznetsov e88b8356d8 edit item shortcut 2025-08-01 15:07:34 +03:00
Yuri Kuznetsov b4c80ecfed docs 2025-08-01 15:07:26 +03:00
Yuri Kuznetsov 76bf7dba23 items editable param 2025-08-01 15:00:38 +03:00
Yuri Kuznetsov e2884aeb00 jsdocs 2025-08-01 14:21:31 +03:00
Yuri Kuznetsov 36a6acfdd2 array items editable 2025-08-01 14:11:27 +03:00
Yuri Kuznetsov 58ad7859d9 style 2025-08-01 13:18:50 +03:00
Yuri Kuznetsov c2261feeec array drag handle 2025-08-01 11:27:09 +03:00
Yuri Kuznetsov 6e487345ec jsdocs 2025-08-01 09:50:40 +03:00
Yuri Kuznetsov ecfec0e0f8 style ref, impr 2025-07-31 19:18:09 +03:00
Yuri Kuznetsov 03608a74d0 ref 2025-07-31 19:05:48 +03:00
Yuri Kuznetsov a6491816bd remove Zaporizhzhia timezone 2025-07-30 15:45:09 +03:00
Yuri Kuznetsov 5301ce5b70 time zone enum option translations 2025-07-30 15:15:43 +03:00
Yuri Kuznetsov 3ae0c32270 Merge branch 'fix' 2025-07-30 15:03:39 +03:00
Yuri Kuznetsov 97eb0614dc remove Uzhhorod timezone 2025-07-30 15:03:24 +03:00
Yuri Kuznetsov f1e3f07ee8 fix 2025-07-28 21:03:59 +03:00
Yuri Kuznetsov b1af278364 from address in history 2025-07-25 15:51:34 +03:00
Yuri Kuznetsov 0331075d1e Merge branch 'fix' 2025-07-25 14:13:16 +03:00
Yuri Kuznetsov 3ad57c4462 Merge branch 'fix' 2025-07-25 10:44:42 +03:00
Yuri Kuznetsov 74fbedfb9a global search status 2025-07-24 20:26:15 +03:00
Yuri Kuznetsov ee38f09665 getRecordsPerPage 2025-07-24 19:56:19 +03:00
Yuri Kuznetsov 914dc4aafe convert lead: user account from contact 2025-07-24 19:49:04 +03:00
Yuri Kuznetsov 7c5bb4b669 cs 2025-07-24 19:41:11 +03:00
Yuri Kuznetsov 27227cf51d service create for user usage 2025-07-24 19:37:46 +03:00
Yuri Kuznetsov cce7ddbff2 no customization for utility field 2025-07-24 19:27:28 +03:00
Yuri Kuznetsov f4889f3f5c ref 2025-07-24 17:28:29 +03:00
Yuri Kuznetsov f1b529e68f Merge branch 'fix' 2025-07-24 17:06:45 +03:00
Yuri Kuznetsov 0dff4ac6b4 sanitize foreign fields 2025-07-24 10:38:11 +03:00
Yuri Kuznetsov 774143c5e2 consts 2025-07-24 10:38:01 +03:00
Yuri Kuznetsov 6e1786d000 set read only fix 2025-07-24 09:33:54 +03:00
Yuri Kuznetsov 700d95fad1 field setReadOnly fix 2025-07-24 09:13:45 +03:00
Yuri Kuznetsov 75f255117e prop 2025-07-24 09:07:32 +03:00
Yuri Kuznetsov e8dfa31e57 Merge branch 'fix' 2025-07-24 08:49:33 +03:00
Yuri Kuznetsov 2a57898088 Merge branch 'fix' 2025-07-23 11:27:17 +03:00
Yuri Kuznetsov e46540371a Merge branch 'master' of https://github.com/espocrm/espocrm 2025-07-23 10:50:53 +03:00
Yuri Kuznetsov 3bb0fcd146 campaign stats refresh fix 2025-07-23 10:50:43 +03:00
Yuri Kuznetsov e3e101b9f6 Merge branch 'fix' 2025-07-23 10:39:05 +03:00
Yurii Kuznietsov 627dc9e505 Merge pull request #3435 from espocrm/dependabot/npm_and_yarn/form-data-4.0.4
Bump form-data from 4.0.0 to 4.0.4
2025-07-22 09:20:34 +03:00
dependabot[bot] ee918a1fc7 Bump form-data from 4.0.0 to 4.0.4
---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 23:04:12 +00:00
Yuri Kuznetsov e2f0341eea attachment box style fix 2025-07-21 16:42:42 +03:00
Yuri Kuznetsov b668f54a68 test 2025-07-21 16:09:27 +03:00
Yuri Kuznetsov c1a23a9d49 language list fix 2025-07-21 16:06:41 +03:00
Yuri Kuznetsov 44333b81a1 cleanup 2025-07-21 14:47:18 +03:00
Yuri Kuznetsov 57bc86a17e language manager improvements 2025-07-21 14:38:08 +03:00
Yuri Kuznetsov d15d41e829 Merge branch 'fix' 2025-07-21 10:56:43 +03:00
Yuri Kuznetsov a5f69b8fd2 cs 2025-07-21 10:56:40 +03:00
Yuri Kuznetsov 5c35d3d856 style fix 2025-07-21 10:29:24 +03:00
Yuri Kuznetsov 6d8c89a041 attachment ui impr 2025-07-17 18:57:07 +03:00
Yuri Kuznetsov 1323e6a581 stlye fix 2025-07-17 17:55:46 +03:00
Yuri Kuznetsov 680bae4fed modal shortcuts suppress 2025-07-17 09:33:46 +03:00
Yuri Kuznetsov 3443a6a052 ref 2025-07-17 09:31:09 +03:00
Yuri Kuznetsov 480de128d8 css fix 2025-07-16 12:58:49 +03:00
Yuri Kuznetsov c697fc29ce task date end color sync with status 2025-07-15 09:25:58 +03:00
Yuri Kuznetsov 78753644ad Merge branch 'master' of https://github.com/espocrm/espocrm 2025-07-14 13:55:03 +03:00
Yuri Kuznetsov 9bcad33012 markdown shortcuts 2025-07-14 13:53:38 +03:00
Yuri Kuznetsov a23c4d179d Merge branch 'fix' 2025-07-14 11:30:56 +03:00
Yuri Kuznetsov 15691fc8b0 addSeconds function 2025-07-14 11:04:06 +03:00
Yurii Kuznietsov 8ef0d47e3b Update README.md 2025-07-13 10:45:20 +03:00
Yuri Kuznetsov 0e1cb6fd47 foreign enum option reference 2025-07-11 09:43:40 +03:00
Yuri Kuznetsov 1fa006775f Merge branch 'fix' 2025-07-10 16:41:19 +03:00
Yuri Kuznetsov d3b272e45f Merge branch 'fix' 2025-07-10 13:37:56 +03:00
Yuri Kuznetsov 100c247d60 Merge branch 'fix' 2025-07-10 13:21:27 +03:00
Yuri Kuznetsov 1b2086caa6 fix scope translation 2025-07-10 10:52:39 +03:00
Yuri Kuznetsov 2886cb690f loader fix 2025-07-10 10:17:05 +03:00
Yuri Kuznetsov 59279344f1 fix integration tests 2025-07-09 15:21:14 +03:00
Yuri Kuznetsov 4413871dd0 fix integration tests 2025-07-09 13:47:19 +03:00
Yuri Kuznetsov 258badc466 no error handler parameter 2025-07-09 13:33:23 +03:00
Yuri Kuznetsov 1bcf6647d6 integration test changes 2025-07-09 12:06:07 +03:00
Yuri Kuznetsov d29ef9d998 fix tests 2025-07-09 10:52:07 +03:00
Yuri Kuznetsov ee0bfb5970 fix test deprecations 2025-07-09 10:43:05 +03:00
Yuri Kuznetsov cd7307c9f6 fix test deprecations 2025-07-09 10:24:58 +03:00
Yuri Kuznetsov bc578d28e5 test deprecations fixes 2025-07-09 09:48:21 +03:00
Yuri Kuznetsov a468c42347 phpunit update 2025-07-08 20:57:16 +03:00
Yuri Kuznetsov 7b30ba59dd webhook skip own 2025-07-08 13:34:19 +03:00
Yuri Kuznetsov 335301cefd ref 2025-07-08 10:58:59 +03:00
Yuri Kuznetsov 9f918295e1 ref 2025-07-08 10:40:19 +03:00
Yuri Kuznetsov 0fa05c5be2 ref 2025-07-07 20:20:05 +03:00
Yuri Kuznetsov 55dc020cf0 ref 2025-07-07 20:09:41 +03:00
Yuri Kuznetsov 47a9a06160 store sent email encoding fix 2025-07-07 14:13:11 +03:00
Yuri Kuznetsov 92174a8eac fix status notification 2025-07-07 11:20:48 +03:00
Yuri Kuznetsov b205a58d10 fix set related 2025-07-07 11:20:30 +03:00
Yuri Kuznetsov 9f9ad1fe56 manual merge 2025-07-05 12:22:01 +03:00
Yuri Kuznetsov 1abefcec34 stream refresh title 2025-07-04 11:44:12 +03:00
Yuri Kuznetsov 78ea0d7512 email template link mapping 2025-07-04 09:38:41 +03:00
Yuri Kuznetsov 98b5f25e08 email remplate ref, field access check 2025-07-04 09:02:26 +03:00
Yuri Kuznetsov 375c7278bd fix schema 2025-07-03 23:28:40 +03:00
Yuri Kuznetsov 1a0ba55448 Note status => update 2025-07-03 16:11:56 +03:00
Yurii Kuznietsov 9a541b2701 Merge pull request #3430 from SuchAFuriousDeath/fix-typo
Fix typo
2025-07-03 14:44:49 +03:00
Tomáš Procházka c8664c9acd Fix typo 2025-07-03 13:31:28 +02:00
Yuri Kuznetsov d2f24f2bcb rename 2025-07-03 13:48:05 +03:00
Yuri Kuznetsov ddaa662a81 ref 2025-07-03 12:32:35 +03:00
Yuri Kuznetsov 0b41d3c612 createDerived method 2025-07-03 12:21:00 +03:00
Yuri Kuznetsov 712f3a1cbd ref 2025-07-03 11:54:24 +03:00
Yuri Kuznetsov 99902b8c10 deferred actions, note related in context 2025-07-03 11:45:51 +03:00
Yuri Kuznetsov 7e702f563b cleanup 2025-07-02 14:56:34 +03:00
Yuri Kuznetsov 70a76705b5 use css vars 2025-07-02 14:55:11 +03:00
Yuri Kuznetsov 9dcbdc5907 do not group notification about assignment 2025-07-02 14:47:38 +03:00
Yuri Kuznetsov 3bcce9b517 user id filter 2025-07-02 13:34:49 +03:00
Yurii Kuznietsov 29880ffd0c Merge pull request #3429 from yurikuzn/i/notification-grouping
Notification grouping
2025-07-02 10:25:39 +03:00
Yuri Kuznetsov 13f2d44869 update note improvement 2025-07-01 20:37:40 +03:00
Yuri Kuznetsov 473bc75f00 style improvement 2025-07-01 20:19:12 +03:00
Yuri Kuznetsov b3a5587889 Meeting assignment notifications by default 2025-07-01 20:15:06 +03:00
Yuri Kuznetsov 2e704cc6d8 note status => update 2025-07-01 19:59:45 +03:00
Yuri Kuznetsov 364ed08dd3 event attendees audited 2025-07-01 18:22:20 +03:00
Yuri Kuznetsov 63ad1510e3 notification grouping 2025-07-01 17:20:52 +03:00
Yuri Kuznetsov 135e8f9608 Merge branch 'fix' 2025-07-01 10:49:03 +03:00
Yuri Kuznetsov 15de70c8f7 action ID 2025-06-30 19:03:55 +03:00
Yuri Kuznetsov 0a7fe37014 ref 2025-06-30 17:10:57 +03:00
Yuri Kuznetsov c4967c774c ref 2025-06-30 16:58:40 +03:00
Yuri Kuznetsov 36293123c7 note detail view websocket 2025-06-30 15:30:12 +03:00
Yuri Kuznetsov 9e412b686d ref 2025-06-30 15:00:21 +03:00
Yuri Kuznetsov 052cdf20dd note detail view header refresh 2025-06-30 14:48:17 +03:00
Yuri Kuznetsov 6958a5a357 webSocket frontend ref 2025-06-30 13:53:38 +03:00
Yuri Kuznetsov cd7e03656a revert type 2025-06-30 11:59:39 +03:00
Yuri Kuznetsov f00e86cd21 full name additional attribute list 2025-06-30 11:18:41 +03:00
Yuri Kuznetsov d00fca02c1 fix typo 2025-06-29 18:54:09 +03:00
Yuri Kuznetsov 8f827eb9f1 ref 2025-06-29 16:52:10 +03:00
Yuri Kuznetsov d11a04aa0a no websocket in quick edit modal 2025-06-29 16:49:17 +03:00
Yuri Kuznetsov 36f7ffaaa1 websocket debounce block 2025-06-29 16:40:12 +03:00
Yuri Kuznetsov e5c4baef9e comment 2025-06-29 13:32:17 +03:00
Yuri Kuznetsov d479408fea date change on after change only for date 2025-06-29 13:30:44 +03:00
Yuri Kuznetsov a01f3333b3 date after set on change 2025-06-29 13:10:08 +03:00
Yuri Kuznetsov 46db6c2260 before:delete event, after:delete 2025-06-29 12:29:29 +03:00
Yuri Kuznetsov c3b2f52590 jsdoc fix 2025-06-29 12:01:05 +03:00
Yuri Kuznetsov d0321be776 jsdocs 2025-06-29 11:39:12 +03:00
Yuri Kuznetsov 8a177d5ac8 calendar websocket 2025-06-28 14:36:32 +03:00
Yuri Kuznetsov b182e51a38 acl-check command impr 2025-06-28 10:54:34 +03:00
Yuri Kuznetsov 10a643586d ref 2025-06-28 10:20:00 +03:00
Yuri Kuznetsov fc864fbce9 layout manager impr 2025-06-27 20:01:59 +03:00
Yuri Kuznetsov de92d50386 do not allow to combing sub fields and main field in detail layout 2025-06-27 19:45:13 +03:00
Yuri Kuznetsov 82028df342 ref 2025-06-27 19:30:47 +03:00
Yuri Kuznetsov b48827376f ref 2025-06-27 19:14:12 +03:00
Yuri Kuznetsov d24abb2435 email users link multiple columns; store sent as read 2025-06-27 18:40:21 +03:00
Yuri Kuznetsov e0b48ecae9 dashboard template importable 2025-06-27 17:39:43 +03:00
Yuri Kuznetsov 76ca781790 create handler: pass link, set-parent create handler 2025-06-27 16:43:57 +03:00
Yuri Kuznetsov 215d986c77 cs 2025-06-27 16:24:30 +03:00
Yurii Kuznietsov c66c8821ff Merge pull request #3427 from alexsvorada/master
Possible bug/typo in phone field view
2025-06-27 13:32:33 +03:00
Alex Svorada 89a14a1dd7 Fix possible bug 2025-06-27 10:49:04 +02:00
Yuri Kuznetsov 5b4ad25763 continue inline edit focus 2025-06-27 11:42:00 +03:00
Yuri Kuznetsov 680c11bf12 fix jsdoc 2025-06-27 11:27:04 +03:00
Yuri Kuznetsov 3da606469f person name, phone focus 2025-06-27 11:25:51 +03:00
Yuri Kuznetsov 2deb34cb3a store list tree 2025-06-27 10:13:12 +03:00
Yuri Kuznetsov 86a77a321d manage category no url param 2025-06-27 09:07:54 +03:00
Yuri Kuznetsov 0e195c99c1 docs fix 2025-06-26 20:28:17 +03:00
Yuri Kuznetsov 6260ccbc3c fix error 2025-06-26 20:26:21 +03:00
Yuri Kuznetsov 7cb9faed13 open current category 2025-06-26 20:23:41 +03:00
Yuri Kuznetsov 7fa1a7f376 cs 2025-06-26 18:29:23 +03:00
Yuri Kuznetsov 489afbe3b4 Merge branch 'master' of https://github.com/espocrm/espocrm 2025-06-26 17:06:48 +03:00
Yuri Kuznetsov 308bb9563a select all result for relationships 2025-06-26 17:04:28 +03:00
Yuri Kuznetsov 74e458561a cleanup 2025-06-26 15:14:32 +03:00
Yuri Kuznetsov b7462b8ad6 test fix 2025-06-26 13:53:50 +03:00
Yurii Kuznietsov 5d1d5d8d05 Merge pull request #3421 from tbrugier/master
French e-mail template for password reset is now translated
2025-06-26 13:44:58 +03:00
Yuri Kuznetsov 5a10a4d156 select where: foreign entity check 2025-06-26 11:22:59 +03:00
Yuri Kuznetsov de37c9209b update requirements in readme 2025-06-26 09:46:05 +03:00
Yuri Kuznetsov 375807ca2b readme fix 2025-06-26 09:44:40 +03:00
Yuri Kuznetsov 3d3bd13819 docs 2025-06-26 09:17:41 +03:00
Yuri Kuznetsov 4f5dedfbe7 ref 2025-06-25 20:14:29 +03:00
Yuri Kuznetsov 18cae240c5 clear settings on login 2025-06-25 18:51:44 +03:00
Yurii Kuznietsov ccd752d690 Merge pull request #3423 from yurikuzn/f/formula-where
F/formula where
2025-06-25 18:16:23 +03:00
Yuri Kuznetsov b587ef50dd formula where tests 2025-06-25 15:06:15 +03:00
Yuri Kuznetsov 41a0fd48bb formula where 2025-06-25 14:21:24 +03:00
Yuri Kuznetsov 34e2f9502e system address not shared by default 2025-06-25 11:02:22 +03:00
Yuri Kuznetsov 819776d1c7 rename 2025-06-25 10:55:47 +03:00
Yuri Kuznetsov 07b79c49fe rename 2025-06-25 10:45:22 +03:00
Yuri Kuznetsov 09b94de327 ref 2025-06-25 10:42:31 +03:00
Yuri Kuznetsov bedf805456 email to case relate replies 2025-06-25 10:12:15 +03:00
Yuri Kuznetsov 7724c3b625 update textcomplete 2025-06-24 19:24:27 +03:00
Tom BRUGIER f5a38d5960 French e-mail template for password reset is now translated 2025-06-24 16:26:23 +02:00
Yuri Kuznetsov f7523ecb62 Merge branch 'stable' 2025-06-24 14:49:12 +03:00
Yuri Kuznetsov 52898cd767 Merge branch 'fix' 2025-06-24 13:25:59 +03:00
Yurii Kuznietsov 902430a83f Merge pull request #3418 from yurikuzn/f/pdfa
PDF/A support
2025-06-23 09:57:56 +03:00
Yuri Kuznetsov c2591357ab pdfa 2025-06-23 09:55:43 +03:00
Yuri Kuznetsov 6e477b7ff6 Merge branch 'fix' 2025-06-22 14:16:47 +03:00
Yuri Kuznetsov 5ce71b0bcd shortcut capture 2025-06-21 15:41:46 +03:00
Yuri Kuznetsov 5e0736e60f cleanup 2025-06-21 15:22:19 +03:00
Yuri Kuznetsov 7a70c1096b Merge branch 'i/shortcuts' 2025-06-21 14:31:19 +03:00
Yuri Kuznetsov 310778a018 foreign enum label type 2025-06-21 09:38:12 +03:00
Yuri Kuznetsov a8c5048079 shortcuts dev 2025-06-20 21:22:23 +03:00
Yuri Kuznetsov 60553a9a68 Merge branch 'master' of https://github.com/espocrm/espocrm 2025-06-20 11:00:54 +03:00
Yurii Kuznietsov fba6568566 Merge pull request #3415 from SuchAFuriousDeath/fix-json-schema
Fixes json schema
2025-06-20 11:00:44 +03:00
Yuri Kuznetsov f6daca5c3b Merge branch 'fix' 2025-06-20 09:33:00 +03:00
Tomáš Procházka 19fe743c1c Fixes json schema 2025-06-19 22:54:24 +02:00
Yuri Kuznetsov b0579c9acf inline edit confirm unsaved switch to another field 2025-06-19 20:37:19 +03:00
Yuri Kuznetsov dd7017fabe cs 2025-06-19 20:20:28 +03:00
Yuri Kuznetsov 107eb90aa4 ref 2025-06-19 20:11:05 +03:00
Yuri Kuznetsov b9a3177f6a no all for email in portal role 2025-06-19 19:44:34 +03:00
Yuri Kuznetsov c4b1dd0776 add type 2025-06-19 19:42:08 +03:00
Yuri Kuznetsov 5d77aefaa6 role validation impr 2025-06-19 19:37:50 +03:00
Yuri Kuznetsov 572f939d90 remove bc 2025-06-19 19:22:58 +03:00
Yuri Kuznetsov 5908de3c1c select only id 2025-06-19 19:11:47 +03:00
Yuri Kuznetsov b16f126152 category parent use view 2025-06-19 11:32:51 +03:00
Yuri Kuznetsov aa4d079539 loop reference check 2025-06-19 11:13:32 +03:00
Yuri Kuznetsov 8310f23e85 kb category not customizable 2025-06-19 10:56:38 +03:00
Yuri Kuznetsov f69667a564 skip order if no filed 2025-06-19 10:55:25 +03:00
Yuri Kuznetsov 69b370c031 document folder not customizable 2025-06-19 10:55:16 +03:00
Yuri Kuznetsov e1e83522dc impr 2025-06-19 10:41:47 +03:00
Yuri Kuznetsov 0048d6256c ref 2025-06-19 10:17:56 +03:00
Yuri Kuznetsov 5ba74c8f79 ref 2025-06-19 10:08:18 +03:00
Yuri Kuznetsov 9159792ec2 impr 2025-06-19 10:03:05 +03:00
Yuri Kuznetsov bffc905c2a ref 2025-06-19 09:37:40 +03:00
Yuri Kuznetsov bcb8e55c15 fix 2025-06-18 20:50:57 +03:00
Yuri Kuznetsov 9cba9bdd23 category order ui impr 2025-06-18 20:50:04 +03:00
Yuri Kuznetsov ba78ab7eb7 drag ui impr 2025-06-18 16:09:44 +03:00
Yuri Kuznetsov c46cf70079 fix possible js error 2025-06-18 16:04:16 +03:00
Yuri Kuznetsov 58c1071f59 style fix 2025-06-18 14:43:23 +03:00
Yuri Kuznetsov 5849a88ea1 fix 2025-06-18 14:42:39 +03:00
Yuri Kuznetsov 346d19f37e drag handle 2025-06-18 14:38:53 +03:00
Yuri Kuznetsov 5ec7610dda remove order field from layout 2025-06-18 13:31:25 +03:00
Yurii Kuznietsov 2a6624fb0e Merge pull request #3412 from yurikuzn/i/category
Category drag and drop
2025-06-18 13:24:40 +03:00
Yuri Kuznetsov f81d8a39d4 category impro dev 2025-06-18 11:53:34 +03:00
Yuri Kuznetsov e640315d8d category impr dev 2025-06-17 19:04:37 +03:00
Yuri Kuznetsov 7662a5eb6a preparable lib, draggable 2025-06-17 11:39:21 +03:00
Yuri Kuznetsov c0b098d2f7 Merge branch 'fix' 2025-06-16 16:43:47 +03:00
Yuri Kuznetsov 60f7f2e16c update node dependencies 2025-06-16 15:42:16 +03:00
Yuri Kuznetsov 683c8ba091 Merge branch 'stable' 2025-06-16 10:17:49 +03:00
Yuri Kuznetsov 2cd78c83c2 drop mysql 5.7 and mariadb 10.2 2025-06-15 18:07:39 +03:00
Yuri Kuznetsov 1460102cb7 Merge branch 'fix' 2025-06-15 18:05:53 +03:00
Yuri Kuznetsov 3d5e98927d fix tests 2025-06-15 15:13:24 +03:00
Yuri Kuznetsov bef5f4c762 create category action 2025-06-15 15:03:01 +03:00
Yuri Kuznetsov 60a6b63e30 Merge branch 'fix' 2025-06-15 13:35:55 +03:00
Yurii Kuznietsov 90e31c04bc Job sub-queue (#3403)
* cleanup

* job m0 queue
2025-06-15 12:39:43 +03:00
Yurii Kuznietsov f1b89fd6c4 orm: join refactor (#3408) 2025-06-15 11:30:04 +03:00
Yuri Kuznetsov 94b15e8e8e list view: fetch only visible columns 2025-06-14 14:03:49 +03:00
Yuri Kuznetsov 078674b85b list view get select attributes ref 2025-06-14 13:30:29 +03:00
Yuri Kuznetsov dae5cf9168 Merge branch 'fix' 2025-06-14 11:19:18 +03:00
Yuri Kuznetsov acff675a54 cleanup 2025-06-12 18:38:25 +03:00
Yuri Kuznetsov fbfa599cef Merge branch 'fix' 2025-06-12 13:03:47 +03:00
Yurii Kuznietsov 8a7b159fb3 loader: use script tag (#3400) 2025-06-12 13:03:19 +03:00
Yuri Kuznetsov edb2dc6a5a fix test 2025-06-11 20:48:29 +03:00
Yuri Kuznetsov 500bd35ff2 predefined default date dynamic values 2025-06-11 11:34:53 +03:00
Yuri Kuznetsov 6d0faf14a7 ref 2025-06-11 10:11:26 +03:00
Yuri Kuznetsov 2decdb010d email template status 2025-06-11 10:10:28 +03:00
Yuri Kuznetsov 10a6ff6a2d create button 2025-06-11 10:09:25 +03:00
Yuri Kuznetsov c1f2d5d0f1 schema 2025-06-11 10:09:16 +03:00
Yuri Kuznetsov 6ca6c0b938 ref 2025-06-10 23:05:13 +03:00
Yuri Kuznetsov 80be866475 Merge branch 'fix' 2025-06-10 22:49:39 +03:00
Yuri Kuznetsov bddbfc33b8 pdf template status 2025-06-10 18:16:06 +03:00
Yuri Kuznetsov dc76b3340e force list view settings param 2025-06-10 17:41:14 +03:00
Yuri Kuznetsov d48777d603 lastViewed param usage 2025-06-10 16:29:07 +03:00
Yuri Kuznetsov e359be4a17 docs 2025-06-10 16:23:36 +03:00
Yuri Kuznetsov 46a9a1d1f5 remove options 2025-06-10 16:21:51 +03:00
Yuri Kuznetsov 1cfea5bd3b hazyblue color changes 2025-06-10 16:13:58 +03:00
Yuri Kuznetsov 074465ca72 panel primary color 2025-06-10 16:05:22 +03:00
Yuri Kuznetsov 7eb2f79e3b alert primary, less refactoring 2025-06-10 15:53:36 +03:00
Yuri Kuznetsov eb760272c4 import user field change 2025-06-10 14:46:16 +03:00
Yuri Kuznetsov d466756520 job creator 2025-06-10 14:45:30 +03:00
Yuri Kuznetsov c3a3fb3407 import impr 2025-06-10 14:45:22 +03:00
Yuri Kuznetsov 75d710f953 Merge branch 'fix' 2025-06-10 13:36:46 +03:00
Yuri Kuznetsov c51d965fd1 Merge branch 'fix' 2025-06-09 13:46:12 +03:00
Yuri Kuznetsov 27bd869565 change in guidelines 2025-06-08 14:10:43 +03:00
Yuri Kuznetsov b11b7899f6 Merge branch 'master' of https://github.com/espocrm/espocrm 2025-06-08 14:06:05 +03:00
Yuri Kuznetsov a0fcb95a75 guidleness update 2025-06-08 14:05:56 +03:00
Yuri Kuznetsov 5fc25bee78 Merge branch 'fix' 2025-06-08 13:55:07 +03:00
Alex 27ac6b4181 fix checkemailaccounts exception typo (#3386) 2025-06-03 15:24:39 +03:00
Yuri Kuznetsov 6d279a4511 Merge branch 'fix' 2025-06-03 10:17:04 +03:00
SuchAFuriousDeath 1736b3301a fixes composer psr-4 compliance errors (#3385) 2025-06-03 08:51:33 +03:00
Yuri Kuznetsov 767cc16920 issue template fix 2025-06-02 09:58:17 +03:00
Yuri Kuznetsov a64164b803 mistake or typo template 2025-06-02 09:57:18 +03:00
Yuri Kuznetsov 2d025dc67a Merge branch 'fix' 2025-06-02 09:49:10 +03:00
Yuri Kuznetsov 8e454fd5b7 Merge branch 'stable' 2025-05-29 10:09:49 +03:00
Yuri Kuznetsov e959df5177 Merge branch 'master' of https://github.com/espocrm/espocrm 2025-05-27 09:31:28 +03:00
Yuri Kuznetsov 25a9df9e31 Merge branch 'stable' 2025-05-27 09:31:18 +03:00
stasovskyj 486dbbba08 Update AddressBuilder.php (#3379)
NanoFix =)
2025-05-26 09:15:51 +03:00
Yuri Kuznetsov aa29aa9ca6 Merge branch 'master' of https://github.com/espocrm/espocrm 2025-05-20 15:06:11 +03:00
Yuri Kuznetsov c333a31112 Merge branch 'stable' 2025-05-20 15:05:56 +03:00
SuchAFuriousDeath 7a451bd498 Fixes wrong translation scope (#3371) 2025-05-17 14:51:54 +03:00
Yuri Kuznetsov 2aacc5277d Merge branch 'master' of https://github.com/espocrm/espocrm 2025-05-14 21:15:20 +03:00
Yuri Kuznetsov e444ce032f Merge branch 'fix' 2025-05-14 21:15:08 +03:00
Yurii Kuznietsov 650cc032b1 Update config.yml 2025-05-12 20:42:23 +03:00
Yuri Kuznetsov 0112ff7983 Merge branch 'fix' 2025-05-12 10:23:22 +03:00
Yurii Kuznietsov 15626b5a32 Update config.yml 2025-05-11 15:42:59 +03:00
Yurii Kuznietsov 6abdfbfe05 Update CONTRIBUTING.md 2025-05-11 15:39:41 +03:00
Yurii Kuznietsov e796b4a447 Update config.yml 2025-05-11 15:30:58 +03:00
Yurii Kuznietsov 42c0f99cae Update config.yml 2025-05-11 10:09:16 +03:00
Yurii Kuznietsov e90bbbc2a7 Update config.yml 2025-05-11 10:05:47 +03:00
Yurii Kuznietsov a12712d304 Update config.yml 2025-05-11 10:04:48 +03:00
Yurii Kuznietsov 10bdc5adfb Update feature_request.md 2025-05-11 10:03:38 +03:00
5130 changed files with 61666 additions and 20260 deletions
+14 -1
View File
@@ -16,6 +16,10 @@ For this, please use our [forum](https://forum.espocrm.com).
If you are very new to EspoCRM, it's probable that an issue you ran into is not a bug.
Consider creating a topic on our [forum](https://forum.espocrm.com/forum/general) instead.
#### Upgrade issues
For upgrade-related issues, create a topic on the forum in the appropriate [section](https://forum.espocrm.com/forum/installation-and-upgrade-help). Upgrade-related issues posted on GitHub are removed.
#### Project's best interest
The issue tracker is for the benefit of the EspoCRM project. The project maintainers are going to handle issues in the project's best interest.
@@ -25,9 +29,18 @@ The maintainers have right to close issues without explanation.
As we reference GitHub issues in release notes, we strive to keep them free of off-topic comments.
#### Code-level issues
If an issue is not reproducible by actions made via the UI but only by coding, the reporter is expected to have a clear
understanding of its cause and to provide an explanation of it — unless the cause is obvious from the context.
Otherwise, it's advisable to post on the forum in the Developer Help section.
## Pull Requests
We are open for contributions that are bug fixes and small improvements. If you would like to contribute something that is not a small fix, please reach out to maintainers before submitting your PR (by creating a GitHub issue).
We are open for contributions that are bug fixes and small improvements. If you would like to contribute something
that is not a small fix, please reach out to maintainers before submitting your PR
(by creating a GitHub issue or a forum post).
Before we can merge your pull request, you need to accept our CLA [here](https://github.com/espocrm/cla).
+20
View File
@@ -0,0 +1,20 @@
---
name: Mistake or typo
about: Report a typo or mistake in the code.
title: ''
labels: ''
assignees: ''
---
**Describe the mistake**
A clear and concise description of the mistake or typo.
**Location**
Path of the file where the mistake is found. Paste the incorrect line or snippet if helpful.
**Suggested correction**
How it should be fixed.
**Additional context**
Add any other context about the problem here.
+8 -2
View File
@@ -1,5 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: EspoCRM forum
- name: Upgrade issue
url: https://forum.espocrm.com/forum/installation-and-upgrade-help
about: "If something went wrong with an upgrade."
- name: Feature request
url: https://forum.espocrm.com/forum/feature-requests
about: "Use our forum for feature requests."
- name: Forum
url: https://forum.espocrm.com/
about: "Use our forum for help requests and questions not related to product development. We don't provide support on GitHub."
about: "Use our forum for help requests and questions. We don't provide support on GitHub."
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: Feature request
about: For high-level features, create feature requests on our forum. For low-level (framework) here on GitHub.
name: Feature request for framework
about: For low-level features. For high-level features, create feature requests on our forum.
title: ''
labels: ''
assignees: ''
+4
View File
@@ -4,6 +4,10 @@
If you believe you have discovered a vulnerability in EspoCRM, please contacts us via [this](https://www.espocrm.com/contacts/) or [this](https://www.espocrm.com/support/) forms. Or create a private vulnerability report on GitHub.
### LLM slop
Low-effort, LLM-generated reports are not allowed. In such cases, if it is evident that the author does not understand the subject they submitted, the account will be blocked.
## Supported versions
For severe vulnerabilities we provide fixes for 2 minor versions (the second number in the version string) back from the current stable version.
+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
+1
View File
@@ -7,6 +7,7 @@
/data/config-internal.php
/data/config-override.php
/data/config-internal-override.php
/data/state.php
/data/tmp/*
/build
/node_modules
+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>
+1 -1
View File
@@ -2,7 +2,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-${YEAR} Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-${YEAR} EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+1 -1
View File
@@ -2,7 +2,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+21 -21
View File
@@ -19,24 +19,36 @@ You can try the CRM on an online [demo](https://www.espocrm.com/demo/).
### Requirements
* PHP 8.2 - 8.4;
* MySQL 5.7 (and later), or MariaDB 10.2 (and later);
* 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**. EspoCRMs source code is open and accessible, so anyone can inspect it and see how data is being managed within the CRM.
* **Customization freedom**. You can develop features, create custom entities, fields, relationships, buttons to make the CRM fit your specific needs.
* **Clean user interface**. EspoCRM offers an uncluttered, minimalist, and fast user interface, which is easy to navigate and has a short learning curve.
* **Straightforward REST API**. It can be easily integrated with other applications using a REST API.
* 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.
* Customization freedom. You can develop features, create custom entities, fields, relationships, buttons to make the system fit your specific needs. EspoCRM is more than a CRM it's a platform for building custom business applications.
* Clean user interface. EspoCRM offers an uncluttered, minimalist, and fast user interface, which is easy to navigate and has a short learning curve.
* Straightforward REST API. It can be easily integrated with other applications using a REST API.
### Who is EspoCRM for?
* **Startups, small & medium-sized businesses**. Its an affordable solution that is flexible and fully customizable.
* **Developers & tech enthusiasts**. You can extend functionalities, build extensions, and create custom integrations.
* **Anyone seeking a free CRM**. If you're looking for a user-friendly and secure CRM platform, it can be a good option.
* Startups, small & medium-sized businesses. It's an affordable solution that is flexible and fully customizable.
* Developers & tech enthusiasts. You can extend functionalities, build extensions, and create custom integrations.
* Anyone seeking a free CRM. If you're looking for a user-friendly and secure CRM platform, it can be a good option.
### Installing stable version
@@ -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).
+16 -6
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -53,6 +53,11 @@ class Binding implements BindingProcessor
private function bindServices(Binder $binder): void
{
$binder->bindService(
'Espo\\Core\\Application\\ApplicationParams',
'applicationParams'
);
$binder->bindService(
'Espo\\Core\\InjectableFactory',
'injectableFactory'
@@ -128,11 +133,6 @@ class Binding implements BindingProcessor
'authTokenManager'
);
$binder->bindService(
'Espo\\Core\\Select\\SelectBuilderFactory',
'selectBuilderFactory'
);
$binder->bindService(
'Espo\\Core\\ServiceFactory',
'serviceFactory'
@@ -255,6 +255,11 @@ class Binding implements BindingProcessor
'Espo\\Core\\Utils\\Database\\ConfigDataProvider',
'Espo\\Core\\Utils\\Database\\DefaultConfigDataProvider'
);
$binder->bindImplementation(
'Espo\\Core\\Job\\JobScheduler\\Creator',
'Espo\\Core\\Job\\JobScheduler\\Creators\\EntityCreator',
);
}
private function bindMisc(Binder $binder): void
@@ -312,6 +317,11 @@ class Binding implements BindingProcessor
'Espo\\Core\\Mail\\Importer',
'Espo\\Core\\Mail\\Importer\\DefaultImporter'
);
$binder->bindImplementation(
'Espo\\Core\\Mail\\Importer\\AutoReplyDetector',
'Espo\\Core\\Mail\\Importer\\DefaultAutoReplyDetector'
);
}
private function bindAcl(Binder $binder): void
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -70,18 +70,18 @@ class AccessChecker implements AccessEntityCREDSChecker
return false;
}
if ($entity->isPortal()) {
if ($this->aclManager->getPermissionLevel($user, Permission::PORTAL) === Table::LEVEL_YES) {
return true;
}
if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) {
return false;
}
if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) {
if ($entity->isSystem()) {
return false;
}
if ($entity->isPortal()) {
return $this->aclManager->getPermissionLevel($user, Permission::PORTAL) === Table::LEVEL_YES;
}
return $this->defaultAccessChecker->checkEntityRead($user, $entity, $data);
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -30,29 +30,27 @@
namespace Espo\Classes\AppParams;
use Espo\Core\Acl;
use Espo\Core\Exceptions\BadRequest;
use Espo\Core\Exceptions\Forbidden;
use Espo\Core\ORM\EntityManager;
use Espo\Core\Select\SelectBuilderFactory;
use Espo\Entities\Template;
use Espo\Tools\App\AppParam;
use RuntimeException;
/**
* Returns a list of entity types for which a PDF template exists.
*
* @noinspection PhpUnused
*/
class TemplateEntityTypeList implements AppParam
{
private Acl $acl;
private SelectBuilderFactory $selectBuilderFactory;
private EntityManager $entityManager;
public function __construct(
Acl $acl,
SelectBuilderFactory $selectBuilderFactory,
EntityManager $entityManager
) {
$this->acl = $acl;
$this->selectBuilderFactory = $selectBuilderFactory;
$this->entityManager = $entityManager;
}
private Acl $acl,
private SelectBuilderFactory $selectBuilderFactory,
private EntityManager $entityManager,
) {}
/**
* @return string[]
@@ -65,14 +63,19 @@ class TemplateEntityTypeList implements AppParam
$list = [];
$query = $this->selectBuilderFactory
->create()
->from(Template::ENTITY_TYPE)
->withAccessControlFilter()
->buildQueryBuilder()
->select(['entityType'])
->group(['entityType'])
->build();
try {
$query = $this->selectBuilderFactory
->create()
->from(Template::ENTITY_TYPE)
->withAccessControlFilter()
->buildQueryBuilder()
->select(['entityType'])
->where(['status' => Template::STATUS_ACTIVE])
->group(['entityType'])
->build();
} catch (BadRequest|Forbidden $e) {
throw new RuntimeException('', 0, $e);
}
$templateCollection = $this->entityManager
->getRDBRepositoryByClass(Template::class)
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -30,6 +30,7 @@
namespace Espo\Classes\AssignmentNotificators;
use Espo\Core\Field\DateTime;
use Espo\Core\Field\LinkParent;
use Espo\Core\Name\Field;
use Espo\Core\Notification\DefaultAssignmentNotificator;
use Espo\Entities\EmailAddress;
@@ -273,13 +274,16 @@ class Email implements AssignmentNotificator
continue;
}
$this->entityManager->createEntity(Notification::ENTITY_TYPE, [
'type' => Notification::TYPE_EMAIL_RECEIVED,
'userId' => $userId,
'data' => $data,
'relatedId' => $entity->getId(),
'relatedType' => EmailEntity::ENTITY_TYPE,
]);
$notification = $this->entityManager->getRDBRepositoryByClass(Notification::class)->getNew();
$notification
->setType(Notification::TYPE_EMAIL_RECEIVED)
->setUserId($userId)
->setData($data)
->setRelated(LinkParent::createFromEntity($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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+2 -2
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -71,7 +71,7 @@ class Audit implements Cleanup
->where([
'parentType' => $entityType,
'createdAt<' => $this->getBefore()->toString(),
'type' => [Note::TYPE_UPDATE, Note::TYPE_STATUS],
'type' => [Note::TYPE_UPDATE],
])
->build();
+1 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -30,6 +30,7 @@
namespace Espo\Classes\FieldProcessing\Email;
use Espo\Core\Name\Field;
use Espo\Core\Name\Link;
use Espo\ORM\Entity;
use Espo\ORM\Name\Attribute;
use Espo\Repositories\EmailAddress as EmailAddressRepository;
@@ -44,17 +45,15 @@ use Espo\Entities\User;
*/
class StringDataLoader implements Loader
{
private EntityManager $entityManager;
private User $user;
private const LINK_EMAIL_ADDRESSES = Link::EMAIL_ADDRESSES;
/** @var array<string, string> */
private $fromEmailAddressNameCache = [];
public function __construct(EntityManager $entityManager, User $user)
{
$this->entityManager = $entityManager;
$this->user = $user;
}
public function __construct(
private EntityManager $entityManager,
private User $user
) {}
public function process(Entity $entity, Params $params): void
{
@@ -63,8 +62,7 @@ class StringDataLoader implements Loader
$userEmailAddressIdList = [];
$emailAddressCollection = $this->entityManager
->getRDBRepository(User::ENTITY_TYPE)
->getRelation($this->user, 'emailAddresses')
->getRelation($this->user, self::LINK_EMAIL_ADDRESSES)
->select([Attribute::ID])
->find();
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -73,12 +73,18 @@ class UserColumnsLoader implements Loader
return;
}
$entity->set([
$values = [
Email::USERS_COLUMN_IS_READ => $emailUser->get(Email::USERS_COLUMN_IS_READ),
Email::USERS_COLUMN_IS_IMPORTANT => $emailUser->get(Email::USERS_COLUMN_IS_IMPORTANT),
Email::USERS_COLUMN_IN_TRASH => $emailUser->get(Email::USERS_COLUMN_IN_TRASH),
Email::USERS_COLUMN_IN_ARCHIVE => $emailUser->get(Email::USERS_COLUMN_IN_ARCHIVE),
'isUsersSent' => $entity->getSentBy()?->getId() === $this->user->getId(),
]);
];
$entity->setMultiple($values);
foreach ($values as $key => $value) {
$entity->setFetched($key, $value);
}
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2026 EspoCRM, Inc.
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -31,6 +31,7 @@ namespace Espo\Classes\FieldProcessing\LeadCapture;
use Espo\Core\FieldProcessing\Loader;
use Espo\Core\FieldProcessing\Loader\Params;
use Espo\Core\Utils\Config;
use Espo\Core\Utils\Config\ApplicationConfig;
use Espo\Core\Utils\FieldUtil;
use Espo\Core\Utils\Util;
@@ -48,7 +49,8 @@ class ExampleLoader implements Loader
public function __construct(
private FieldUtil $fieldUtil,
private ApplicationConfig $applicationConfig,
private EntityManager $entityManager
private EntityManager $entityManager,
private Config $config,
) {}
public function process(Entity $entity, Params $params): void
@@ -136,7 +138,7 @@ class ExampleLoader implements Loader
private function processFormUrl(LeadCapture $entity): void
{
$formId = $entity->getFormId();
$siteUrl = $this->applicationConfig->getSiteUrl();
$siteUrl = $this->getSiteUrl();
if (!$entity->hasFormEnabled() || !$formId) {
/** @noinspection PhpRedundantOptionalArgumentInspection */
@@ -149,4 +151,9 @@ class ExampleLoader implements Loader
$entity->set('formUrl', $formUrl);
}
private function getSiteUrl(): string
{
return $this->config->get('leadCaptureSiteUrl') ?? $this->applicationConfig->getSiteUrl();
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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