Compare commits

...

1146 Commits

Author SHA1 Message Date
Yuri Kuznetsov c5ff0197bb 9.0.2 2025-01-27 17:43:51 +02:00
Yuri Kuznetsov 2417dbf7de fix role translation 2025-01-27 14:48:05 +02:00
Yuri Kuznetsov 4f97358b2f notNull schema 2025-01-27 13:30:58 +02:00
Yuri Kuznetsov 3244347b71 schema 2025-01-27 10:22:27 +02:00
Yuri Kuznetsov 54be896942 fix meeting users avatar 2025-01-27 09:15:01 +02:00
Yuri Kuznetsov 8f690966fc color fixes 2025-01-25 19:16:35 +02:00
Yuri Kuznetsov bccf348b7e color fix 2025-01-25 12:31:52 +02:00
Yuri Kuznetsov b02c3d8d9b color fix 2025-01-25 12:26:31 +02:00
Yuri Kuznetsov 39e29a9d02 before script ignore custom vendor 2025-01-25 09:24:06 +02:00
Yuri Kuznetsov 26b1be00e8 record grid adjust percentage 2025-01-24 21:18:56 +02:00
Yuri Kuznetsov aff531e62b schema docs 2025-01-24 13:50:40 +02:00
Yuri Kuznetsov e8de15e548 fix label 2025-01-24 10:57:41 +02:00
Yuri Kuznetsov 03cd76fff5 base controller error actions 2025-01-24 10:56:46 +02:00
Yuri Kuznetsov 4750313d37 task handler show hide reminders 2025-01-23 13:23:40 +02:00
Yuri Kuznetsov 0c1a310329 btn icon style fix 2025-01-23 12:46:45 +02:00
Yuri Kuznetsov 78e2e8b927 9.0.1 2025-01-22 19:36:59 +02:00
Yuri Kuznetsov bfcbbc4388 fix datepicker min date 2025-01-22 16:51:47 +02:00
Yuri Kuznetsov 52af8e27dd web form: pre-set required 2025-01-22 16:42:54 +02:00
Yuri Kuznetsov eb948ea53e dompdf add meta tag 2025-01-22 16:19:34 +02:00
Yuri Kuznetsov ee314b4374 checkboxesAreDisabled check 2025-01-21 16:32:30 +02:00
Yuri Kuznetsov 6b1a844fea jsdoc fix 2025-01-21 14:06:06 +02:00
Yuri Kuznetsov c9c09aab77 total count no select 2025-01-21 12:35:00 +02:00
Yuri Kuznetsov 285f5191c2 margin classes 2025-01-21 12:11:36 +02:00
Yuri Kuznetsov e5a39cd134 fix path 2025-01-20 19:59:50 +02:00
Yuri Kuznetsov 33460b42a7 ignore Sales module in before upgrade script 2025-01-20 19:58:28 +02:00
Yuri Kuznetsov 0bd0ce057d cs 2025-01-20 19:49:33 +02:00
Yuri Kuznetsov e63ec875db jsdoc fix 2025-01-20 17:06:58 +02:00
Yuri Kuznetsov edc39c229c job list small layout 2025-01-19 20:15:45 +02:00
Yuri Kuznetsov 90b34289c3 nl lang 2025-01-19 18:35:18 +02:00
Yuri Kuznetsov 4e345bb74d it lang 2025-01-19 18:34:53 +02:00
Yuri Kuznetsov d2f5ce4aa9 de lang 2025-01-19 18:34:16 +02:00
Yuri Kuznetsov 7ab66eb33b bg lang 2025-01-19 18:33:48 +02:00
Andrew Fontana 22dc544a20 Italian templates (#3246) 2025-01-19 18:29:15 +02:00
Yuri Kuznetsov c6f9250d85 invitation dateStartFull 2025-01-19 10:34:15 +02:00
Yuri Kuznetsov 400a92c2a3 add timeZone to invitation templates 2025-01-18 19:13:19 +02:00
Yuri Kuznetsov 56264e10c9 invitation custom email address 2025-01-17 22:25:11 +02:00
Yuri Kuznetsov 982df272d5 ref 2025-01-17 22:10:18 +02:00
Yuri Kuznetsov 7022be3636 unixTimestamp expr 2025-01-17 17:05:56 +02:00
Yuri Kuznetsov fc213f245c after delete navigate to root url 2025-01-17 09:44:25 +02:00
Yuri Kuznetsov a1db521a1e do not use DATE in cleanup 2025-01-16 18:14:45 +02:00
Yuri Kuznetsov e3003e4fd9 css class 2025-01-16 15:29:36 +02:00
Yuri Kuznetsov 61754c28ed add email to inbox skip notify self 2025-01-16 13:25:38 +02:00
Yuri Kuznetsov fa5a977b47 my activities: include shared param 2025-01-15 13:02:37 +02:00
Yuri Kuznetsov 5928649bfd template manager panel 2025-01-15 12:21:26 +02:00
Yuri Kuznetsov d644adec87 initation: timeZone placeholder 2025-01-15 11:55:08 +02:00
Yuri Kuznetsov 980b1cc401 css.escape usage 2025-01-14 20:45:13 +02:00
Yuri Kuznetsov a0c0b7cd57 oauth debug 2025-01-14 15:03:42 +02:00
Yuri Kuznetsov 8675478b0a join url default null 2025-01-14 13:44:01 +02:00
Yuri Kuznetsov c021466de9 hide create from view activities in modal 2025-01-14 13:01:20 +02:00
Yuri Kuznetsov 758430ad38 meeting: join url field 2025-01-14 12:49:19 +02:00
Yuri Kuznetsov 865f72dbc5 oauth handle response fix 2025-01-14 10:58:57 +02:00
Yuri Kuznetsov 3b88dfb7c7 oauth client support lowercase token type 2025-01-14 10:53:31 +02:00
Yuri Kuznetsov 900a38792a oauth token type, auth type params 2025-01-13 16:15:48 +02:00
Taras Machyshyn 47942ceae9 Upgrade script fixes 2025-01-13 16:11:45 +02:00
Taras Machyshyn 059464e02b Upgrade script fixes 2025-01-13 16:05:22 +02:00
Yuri Kuznetsov 45f1c4ac38 oauth abstract, get ping url not implemented, not abstract 2025-01-13 15:06:11 +02:00
Yuri Kuznetsov 1d6f8ef671 list: take into account hidden if no settings available 2025-01-12 10:06:32 +02:00
dependabot[bot] 3ca8918879 Bump nesbot/carbon from 2.72.5 to 2.72.6 (#3243)
Bumps [nesbot/carbon](https://github.com/briannesbitt/Carbon) from 2.72.5 to 2.72.6.
- [Release notes](https://github.com/briannesbitt/Carbon/releases)
- [Commits](https://github.com/briannesbitt/Carbon/compare/2.72.5...2.72.6)

---
updated-dependencies:
- dependency-name: nesbot/carbon
  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-01-10 16:15:57 +02:00
Yuri Kuznetsov f5deaf2e83 fix docs 2025-01-10 15:35:43 +02:00
Yuri Kuznetsov ccc4d9574a email received no expand in notification 2025-01-10 13:17:19 +02:00
Yuri Kuznetsov 00060ef89c cleanup 2025-01-10 12:55:24 +02:00
Yuri Kuznetsov 2a1f18612a link-multiple list link template 2025-01-10 12:55:17 +02:00
Yuri Kuznetsov 6adad023dd read only dynamic logic conflict fix 2025-01-10 12:42:30 +02:00
Yuri Kuznetsov 392c245d34 ref 2025-01-10 12:37:51 +02:00
Yuri Kuznetsov d329d037e6 relation find return type change 2025-01-09 20:42:20 +02:00
Yuri Kuznetsov ce4742e553 panel footer color 2025-01-09 17:16:10 +02:00
Yuri Kuznetsov 92d48f2ada cleanup 2025-01-09 12:32:30 +02:00
Yuri Kuznetsov d8249c449b email body html to plain fix 2025-01-09 12:31:30 +02:00
Yuri Kuznetsov 5c7d603899 rename 2025-01-09 11:39:31 +02:00
Yuri Kuznetsov 4e804692ac fix email note body height 2025-01-09 11:39:10 +02:00
Yuri Kuznetsov dbc96859af row actions acl check 2025-01-09 11:13:03 +02:00
Yuri Kuznetsov 4fb30b0b7b relationship panel mandatory attribute list param 2025-01-09 10:26:07 +02:00
Yuri Kuznetsov d76b371a48 fix with-complex 2025-01-09 09:24:55 +02:00
Yuri Kuznetsov 280e6e3987 date time value objects methods 2025-01-08 14:16:51 +02:00
Yuri Kuznetsov 0cf4e1e4e2 entity methods 2025-01-07 19:22:17 +02:00
Yuri Kuznetsov 7a105d7b70 entity methods 2025-01-07 19:14:39 +02:00
Yuri Kuznetsov 8102e9c4f2 set name methods 2025-01-07 18:59:13 +02:00
Yuri Kuznetsov 3a83b096a8 fix hide/show panels 2025-01-07 14:25:25 +02:00
Yuri Kuznetsov 7bc34d3ee7 ref, jsdoc 2025-01-07 14:21:21 +02:00
Yuri Kuznetsov 6264812d12 user calender permission 2025-01-07 14:06:40 +02:00
Yuri Kuznetsov 4430a40d32 record setupDynamicBehavior 2025-01-07 10:45:13 +02:00
Yuri Kuznetsov 3bea3e8622 fix 2025-01-07 09:56:54 +02:00
Yuri Kuznetsov a80c3e2ecf meeting cancelation fix 2025-01-06 16:47:09 +02:00
Yuri Kuznetsov bf3e71e642 event cancelation ui fix 2025-01-06 16:44:08 +02:00
Yuri Kuznetsov 340c65cbf0 datepicker default view date 2025-01-06 14:28:58 +02:00
Yuri Kuznetsov e597321497 fix themes logo login 2025-01-06 11:28:37 +02:00
Yuri Kuznetsov d3d4cb45f2 iframe blockquote 2025-01-06 10:31:30 +02:00
Yuri Kuznetsov ef99a0753f iframe scrollbar 2025-01-06 10:19:33 +02:00
Yuri Kuznetsov cd61a30298 fix task link checker 2025-01-06 09:29:20 +02:00
Yuri Kuznetsov 3316afaaad change year 2025-01-06 09:16:05 +02:00
Yuri Kuznetsov 76dfbb1baa category fix 2025-01-05 18:57:07 +02:00
Yuri Kuznetsov df71ccbea6 meeting invitation ref 2025-01-05 15:40:55 +02:00
Yuri Kuznetsov 452d5df98c datepicker refresh 2025-01-05 13:03:47 +02:00
Yuri Kuznetsov 7d37a6ab55 datepicker change month event 2025-01-04 20:33:03 +02:00
Yuri Kuznetsov 4f1b576f17 css fix 2025-01-04 18:34:05 +02:00
Yuri Kuznetsov 07429eb1b0 lead form margin 2025-01-04 18:24:58 +02:00
Yuri Kuznetsov 749f3c686e field custom paramList prop 2025-01-04 18:01:55 +02:00
Yuri Kuznetsov 109e601572 remove data-theme from capcha url 2025-01-04 14:14:18 +02:00
Yuri Kuznetsov 73e3c8f372 lead form is active check 2025-01-04 13:59:45 +02:00
Yuri Kuznetsov 732ac8440f fix metadata 2025-01-04 11:14:33 +02:00
dependabot[bot] 96c12bed39 Bump phpoffice/phpspreadsheet from 1.29.5 to 1.29.7 (#3242)
Bumps [phpoffice/phpspreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) from 1.29.5 to 1.29.7.
- [Release notes](https://github.com/PHPOffice/PhpSpreadsheet/releases)
- [Changelog](https://github.com/PHPOffice/PhpSpreadsheet/blob/1.29.7/CHANGELOG.md)
- [Commits](https://github.com/PHPOffice/PhpSpreadsheet/compare/1.29.5...1.29.7)

---
updated-dependencies:
- dependency-name: phpoffice/phpspreadsheet
  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-01-03 18:43:56 +02:00
Yuri Kuznetsov 7655e7a642 jsdocs cleanup param 2025-01-03 16:57:36 +02:00
Yuri Kuznetsov e502e7875e cleanup param 2025-01-03 16:28:50 +02:00
Yuri Kuznetsov 15cd13905c fix throws doc 2025-01-03 11:27:21 +02:00
Yuri Kuznetsov c89ebe535b fix comment 2025-01-03 11:21:05 +02:00
Yuri Kuznetsov 5cce21643b free busy refactoring 2025-01-03 11:11:49 +02:00
Yuri Kuznetsov 1579d62277 update super parent stream updated at 2025-01-02 18:05:47 +02:00
Yuri Kuznetsov 4ae930544e rebuild on stream enabling 2025-01-02 17:59:40 +02:00
Yuri Kuznetsov e5c2ec3371 stream create related many-many fix, options constants 2025-01-02 17:52:12 +02:00
Yuri Kuznetsov 86d4a5f78b stream updated at created related 2025-01-02 17:27:19 +02:00
Yuri Kuznetsov 8d55a504cf style fix, small label 2025-01-02 17:09:50 +02:00
Yuri Kuznetsov 29644e720e fix test 2025-01-01 10:25:25 +02:00
Yuri Kuznetsov bf3ef1edf5 permissions: change dirs 2025-01-01 10:19:21 +02:00
Yuri Kuznetsov beee38c1d2 schema 2024-12-30 22:20:28 +02:00
Yuri Kuznetsov e0359a2cfb datepicker methods 2024-12-30 11:02:41 +02:00
Yuri Kuznetsov 2d6d579091 datepicker has params 2024-12-30 10:17:49 +02:00
Yuri Kuznetsov 047a31fb98 ui/select support htmlelement 2024-12-29 23:17:48 +02:00
Yuri Kuznetsov deed3d5b8b ref 2024-12-29 18:47:49 +02:00
Yuri Kuznetsov 70d27c78bb datepicker min date, ref 2024-12-29 18:34:27 +02:00
Yuri Kuznetsov 993454e854 duration fromField update 2024-12-29 16:33:54 +02:00
Yuri Kuznetsov 79e5b9f7aa fix 2024-12-29 16:23:12 +02:00
Yuri Kuznetsov cb95eb0f5a ui datepicker 2024-12-29 16:19:44 +02:00
Yuri Kuznetsov bd5b178fc4 remove whitespace 2024-12-29 13:22:30 +02:00
Yuri Kuznetsov 40370052ce add tab icons 2024-12-29 13:10:31 +02:00
Yuri Kuznetsov 5603e8f827 remove whitespace 2024-12-29 13:10:24 +02:00
Yuri Kuznetsov d97bc3ffa4 add tab buttons right 2024-12-29 13:07:07 +02:00
Yuri Kuznetsov 2d70f1616b chown chgrp function exists check 2024-12-29 12:55:36 +02:00
Yuri Kuznetsov 4feb3ab318 timepicker ref 2024-12-28 17:37:28 +02:00
Yuri Kuznetsov 1f9770ded6 working time calendar 24:00 2024-12-27 13:48:57 +02:00
Yuri Kuznetsov 874b5b576a timepicker css fix 2024-12-27 12:26:49 +02:00
Yurii Kuznietsov 03f2ec5fef Update README.md 2024-12-25 17:36:17 +02:00
Yuri Kuznetsov ad515a274f dark theme style fix 2024-12-25 16:01:55 +02:00
Yuri Kuznetsov 27fb446292 revert 2024-12-25 12:33:16 +02:00
Yuri Kuznetsov aa6c323ecf ref 2024-12-25 12:20:59 +02:00
Yuri Kuznetsov 99055d2ac4 style fix 2024-12-24 21:19:19 +02:00
Yuri Kuznetsov 75f2ec3105 todo 2024-12-24 16:07:35 +02:00
Yuri Kuznetsov 8abe02d0c6 complex text style fix 2024-12-23 17:32:12 +02:00
Yuri Kuznetsov ac32bec066 email to case: lead parent to case 2024-12-23 16:03:13 +02:00
Yuri Kuznetsov d5ebb3ccae email to case: set case parent if account or contact 2024-12-23 15:51:27 +02:00
Yuri Kuznetsov 82ae8c2005 bump min npm and node versions 2024-12-21 14:55:01 +02:00
Yuri Kuznetsov f279528c56 record: early before create/update hooks 2024-12-21 13:58:31 +02:00
Yuri Kuznetsov 65722d7143 ol large number fix 2024-12-21 10:31:01 +02:00
Yuri Kuznetsov 3fb75588a0 fetch after create 2024-12-21 08:53:57 +02:00
Yuri Kuznetsov 57ede36b89 working time exception change order 2024-12-20 17:49:25 +02:00
Yuri Kuznetsov 8f1a5612d1 style fix 2024-12-20 14:54:58 +02:00
Yuri Kuznetsov 79f28b6be0 navbar search style fix 2024-12-20 12:55:36 +02:00
Yuri Kuznetsov a65cb6fcb5 remove admin iframe border 2024-12-20 12:33:04 +02:00
Yuri Kuznetsov d60282a444 admin panel style fix 2024-12-20 12:02:34 +02:00
Yuri Kuznetsov 5598c09002 include original bundles 2024-12-20 11:47:26 +02:00
Yuri Kuznetsov 79a837e653 ref 2024-12-20 11:23:48 +02:00
Yuri Kuznetsov a9dee67243 fix save event 2024-12-20 10:19:11 +02:00
Yuri Kuznetsov abcf64c107 ref 2024-12-20 10:12:09 +02:00
Yuri Kuznetsov d49821007d dashlet color 2024-12-20 09:41:06 +02:00
Yuri Kuznetsov a28f815dd4 upgrade extenstions check 2024-12-20 08:37:00 +02:00
Yuri Kuznetsov 33f0aaa5d8 email note fix 2024-12-19 22:42:22 +02:00
Yuri Kuznetsov 875bc7418b fix dashboard 2024-12-19 17:59:28 +02:00
Yuri Kuznetsov ab1b9cee8a ref 2024-12-19 17:08:04 +02:00
Yuri Kuznetsov 6cfaf04b4f fix dashboard fallback height 2024-12-19 16:56:25 +02:00
Yuri Kuznetsov 12084b05d3 fix before upgrade dependency 2024-12-19 15:52:13 +02:00
Yuri Kuznetsov a91016d193 tab url color 2024-12-19 15:46:57 +02:00
Yuri Kuznetsov e192ea3c41 stream updated at only if stream enabled 2024-12-19 14:57:40 +02:00
Yuri Kuznetsov 8bc70dfaec stream updated at: use query 2024-12-19 14:12:41 +02:00
Yuri Kuznetsov 656ecba3de save option keep relations 2024-12-19 14:00:59 +02:00
Yuri Kuznetsov b992ced5b4 fix dashboard add 2024-12-19 12:05:23 +02:00
Yuri Kuznetsov 9c5ac43faa records dashlet init fix 2024-12-19 11:31:44 +02:00
Yuri Kuznetsov 0a94f9e6ab fix iframe 2024-12-19 10:42:41 +02:00
Yuri Kuznetsov 71a84c5c09 note email body min-height on switch 2024-12-19 10:41:32 +02:00
Yuri Kuznetsov c1fb1b9b34 email note reset show-more 2024-12-19 10:14:32 +02:00
Yuri Kuznetsov 9807cd033d text field ref 2024-12-19 10:14:23 +02:00
Yuri Kuznetsov 72ba2e1833 template cache no trailine nl 2024-12-18 21:30:15 +02:00
Yuri Kuznetsov ad8858bdb0 ref 2024-12-18 20:04:56 +02:00
Yuri Kuznetsov 59c1962152 starred in list-expanded 2024-12-18 19:55:55 +02:00
Yuri Kuznetsov f835712452 preserve audite log for user, roles, teams, portals 2024-12-18 19:50:09 +02:00
Yuri Kuznetsov ade436bcf0 fix preferences 2024-12-18 19:45:18 +02:00
Yuri Kuznetsov 0f1fc4f596 style fix, input height 2024-12-18 16:23:13 +02:00
Yuri Kuznetsov b3d012138b notification createdBy no join 2024-12-18 14:54:03 +02:00
Yuri Kuznetsov ee29eb14aa fix password enter 2024-12-18 13:41:25 +02:00
Yuri Kuznetsov fffd0f0574 hook after relate partially loaded entity 2024-12-18 13:35:04 +02:00
Yuri Kuznetsov 283f1eef81 email is replied fix 2024-12-18 13:09:41 +02:00
Yuri Kuznetsov 41c5ac154f metadata null 2024-12-18 12:57:53 +02:00
Yuri Kuznetsov a4b464c45d fix metadata dep 2024-12-18 12:45:01 +02:00
Yuri Kuznetsov f508cca64c before upgrade 2024-12-18 11:58:30 +02:00
Yuri Kuznetsov 717ece7e80 v 2024-12-18 10:54:42 +02:00
Yuri Kuznetsov 07eb53dcf8 change filter name 2024-12-17 16:40:58 +02:00
Yuri Kuznetsov 0da7a44dd9 import error export fix 2024-12-17 16:19:59 +02:00
Yuri Kuznetsov 702be7fd69 email template body no purification 2024-12-17 14:33:11 +02:00
Yuri Kuznetsov a673c09153 comment 2024-12-16 14:40:07 +02:00
Yuri Kuznetsov 2c6f08009a cleanup 2024-12-16 09:09:42 +02:00
Yuri Kuznetsov 51bba11cee color change 2024-12-16 09:03:40 +02:00
Yuri Kuznetsov 56fed2e9f0 espo theme default 2024-12-15 21:25:34 +02:00
Yuri Kuznetsov 264761605b stream post fetch fix 2024-12-15 21:22:53 +02:00
Yuri Kuznetsov 82b643e41d campaign bottom panels not sticky 2024-12-15 16:56:04 +02:00
Yuri Kuznetsov f6fac2c236 layout manager promise reuse fix 2024-12-15 16:52:15 +02:00
Yuri Kuznetsov 532a5bb37b external account page impr 2024-12-15 16:29:24 +02:00
Yuri Kuznetsov e91c3ef939 integrations view impr 2024-12-15 16:16:13 +02:00
Yuri Kuznetsov 35962903bf status dislay as label for entity types 2024-12-14 21:49:27 +02:00
Yuri Kuznetsov 12e6794404 style fix 2024-12-14 21:41:47 +02:00
Yuri Kuznetsov 5d8f1fe449 css fix 2024-12-14 21:40:28 +02:00
Yuri Kuznetsov 409d5cd867 web forms keyword 2024-12-14 19:36:32 +02:00
Yuri Kuznetsov 01ea98ebe9 admin keywords change 2024-12-14 19:36:23 +02:00
Yuri Kuznetsov 98ec41730a table header font weight 2024-12-14 18:53:17 +02:00
Yuri Kuznetsov 1be134403f pagination input fix 2024-12-14 18:48:30 +02:00
Yuri Kuznetsov d2e1ace75b style impr 2024-12-14 18:07:27 +02:00
Yuri Kuznetsov 317c07d1ee style fix 2024-12-14 17:57:12 +02:00
Yuri Kuznetsov 3de4c5ca8d link font weight 2024-12-14 17:51:31 +02:00
Yuri Kuznetsov 2389d6beae style fix 2024-12-14 17:35:13 +02:00
Yuri Kuznetsov 0f785d701b color fix 2024-12-14 17:06:04 +02:00
Yuri Kuznetsov 54afb0834e color changes 2024-12-14 12:57:59 +02:00
Yuri Kuznetsov 3db882ef57 navbar dropdown radius fix 2024-12-14 12:09:40 +02:00
Yuri Kuznetsov de7a949151 color fix 2024-12-14 12:07:12 +02:00
Yuri Kuznetsov b59fc96a27 espo theme style fixes 2024-12-14 11:05:05 +02:00
Yuri Kuznetsov 055d44f95d panel border color usage 2024-12-14 10:50:01 +02:00
Yuri Kuznetsov 8054dd4fab espo theme color changes 2024-12-14 10:45:24 +02:00
Yuri Kuznetsov 6d70576e1a espo theme navbar changes 2024-12-14 10:34:54 +02:00
Yuri Kuznetsov ffd35ff668 preferences set is not changed fix 2024-12-13 21:42:21 +02:00
Yuri Kuznetsov bc0f135291 dashboard more fine height layout 2024-12-13 21:04:57 +02:00
Yurii 740f8bfaa6 source email access check 2024-12-13 11:40:40 +02:00
Yurii 660482f042 source email id fix 2024-12-13 11:09:01 +02:00
Yuri Kuznetsov 01c234970c meeting source email link 2024-12-13 10:44:32 +02:00
Yuri Kuznetsov 9a543b6f85 uid not exposed 2024-12-13 10:29:10 +02:00
Yuri Kuznetsov 16325fdd32 meeting uid 2024-12-13 10:26:43 +02:00
Yuri Kuznetsov 2a04377b55 dark theme color changes 2024-12-12 17:23:57 +02:00
Yuri Kuznetsov af10cced54 phpdocs 2024-12-12 17:05:57 +02:00
Yuri Kuznetsov 9bb297d209 whereGroup get parameter as alias for where 2024-12-12 17:05:35 +02:00
Yuri Kuznetsov dfcf0838d3 attribute select param 2024-12-12 16:44:31 +02:00
Yuri Kuznetsov 25616cee73 more border color variables 2024-12-12 16:04:37 +02:00
Yuri Kuznetsov d215e62b0a dark theme: calendar bg color 2024-12-12 15:39:34 +02:00
Yuri Kuznetsov fd3715b662 dark theme: border color change 2024-12-12 15:36:07 +02:00
Yuri Kuznetsov 270da1f0ed record list dashler: fix order field 2024-12-12 15:22:54 +02:00
Yuri Kuznetsov fdd482f8e8 close button always on request error 2024-12-12 15:16:01 +02:00
Yuri Kuznetsov 1fb152b62a starred filter in dashlet 2024-12-12 15:09:55 +02:00
Yuri Kuznetsov 91c584d6f0 Merge branch 'master' of https://github.com/espocrm/espocrm 2024-12-12 15:04:12 +02:00
Yurii 12b66f7e7f metadata cloning 2024-12-12 13:55:43 +02:00
Yuri Kuznetsov 90a68505c1 detail sticky margins on wide screen 2024-12-12 11:25:11 +02:00
Yuri Kuznetsov c9e0d31892 fix metadata dependency 2024-12-11 19:05:21 +02:00
Yuri Kuznetsov d479157d30 entity manager page change 2024-12-11 15:28:09 +02:00
Yuri Kuznetsov 05d27cb805 dark theme: more radius 2024-12-11 13:31:31 +02:00
Yuri Kuznetsov 5a63f4ba0c dark theme avatar less bright 2024-12-11 13:23:40 +02:00
Yuri Kuznetsov 1a63115fe3 style fix: modal ul no side border 2024-12-11 13:14:42 +02:00
Yuri Kuznetsov 1d58f6b6b9 scroll color 2024-12-11 12:52:57 +02:00
Yuri Kuznetsov 6c4cd0131f modal border 2024-12-11 12:32:14 +02:00
Yuri Kuznetsov b77a2101db dot 2024-12-11 09:44:56 +02:00
Yuri Kuznetsov 7016c688e6 style fix 2024-12-11 09:16:55 +02:00
Yuri Kuznetsov bf2335c9d0 style fix 2024-12-10 23:43:31 +02:00
Yuri Kuznetsov 67e8a89799 show more top border 2024-12-10 23:36:48 +02:00
Yuri Kuznetsov 146af12d85 fix tab search bc 2024-12-10 19:19:29 +02:00
Yuri Kuznetsov d6e146fefd comment 2024-12-10 19:16:18 +02:00
Yuri Kuznetsov 2245eb2f16 color change 2024-12-10 18:13:10 +02:00
Yuri Kuznetsov 8054dd9934 color fix 2024-12-10 18:10:47 +02:00
Yuri Kuznetsov 4bb41a17ed color fix 2024-12-10 18:06:20 +02:00
Yuri Kuznetsov 89bc80705a recovery password non-espo portal exclusion 2024-12-10 17:47:25 +02:00
Yuri Kuznetsov 3ced02e237 color fix 2024-12-10 17:28:59 +02:00
Yuri Kuznetsov 873109ff12 dark theme calendar changes 2024-12-10 14:34:25 +02:00
Yuri Kuznetsov 3a869fceda dark theme changes 2024-12-10 14:26:14 +02:00
Yuri Kuznetsov aa68ed8af1 style fix 2024-12-10 14:19:59 +02:00
Yuri Kuznetsov 499058b413 datk theme changes 2024-12-10 14:14:31 +02:00
Yuri Kuznetsov f23001daa1 dark theme color changes 2024-12-10 14:07:33 +02:00
Yuri Kuznetsov 5b88406738 timestampdiff autocomplete 2024-12-10 12:44:17 +02:00
Yuri Kuznetsov 6dc596f5b4 fix complex expr return types 2024-12-10 12:23:59 +02:00
Yuri Kuznetsov fc73e60d68 php 8.2 2024-12-10 11:24:39 +02:00
Yuri Kuznetsov cf5640e7f4 fix nullable types 2024-12-09 19:40:35 +02:00
Yuri Kuznetsov 7da685525f php 8.4 actions 2024-12-09 19:30:29 +02:00
Yuri Kuznetsov a7dd09b1c7 update laminas-ldap 2024-12-09 19:29:39 +02:00
Yuri Kuznetsov 7c0d2254fe style fix 2024-12-09 17:52:21 +02:00
Yuri Kuznetsov b041ec2441 ldap portal disabled recovery password 2024-12-09 17:32:49 +02:00
Yuri Kuznetsov 6669fe4d6b ref 2024-12-09 17:19:07 +02:00
Yuri Kuznetsov 6c8537dc73 readme change 2024-12-09 13:39:24 +02:00
Yuri Kuznetsov c38ecc7bf4 ref 2024-12-09 13:34:18 +02:00
Yuri Kuznetsov a4048d66fb ref 2024-12-09 13:18:09 +02:00
Yuri Kuznetsov 9152c75572 ref 2024-12-09 13:10:03 +02:00
Yuri Kuznetsov acdeb97bed cleanup 2024-12-09 13:04:10 +02:00
Yuri Kuznetsov 0b6577b68d ref 2024-12-09 12:58:06 +02:00
Yuri Kuznetsov 2115535563 timezones fix 2024-12-09 12:40:07 +02:00
Yuri Kuznetsov aed02c3909 account bottom tabs 2024-12-09 11:51:42 +02:00
Yuri Kuznetsov 0515dce7ae style fix 2024-12-09 11:24:56 +02:00
Yuri Kuznetsov da16d6cd62 metadata: filter fields and links without type 2024-12-09 10:56:48 +02:00
Yuri Kuznetsov 8f1bfd486d assignment checker ref; email: allow empty team 2024-12-08 13:49:30 +02:00
Yuri Kuznetsov 28715618bc apply it_IT from PO 2024-12-07 17:39:43 +02:00
Yuri Kuznetsov 29b7a18557 user: unset default team on unrelate from team 2024-12-07 11:01:46 +02:00
Yuri Kuznetsov 4ac461c79e password hash bcrypt 2024-12-06 21:53:37 +02:00
Yuri Kuznetsov 58a71f0cf0 ref 2024-12-06 21:36:16 +02:00
Yuri Kuznetsov 4eff992b87 ref 2024-12-06 21:18:22 +02:00
Yuri Kuznetsov d3f12e54eb panels disabled by default 2024-12-06 19:59:38 +02:00
Yuri Kuznetsov 5eb647a8ec panels sync 2024-12-06 19:21:42 +02:00
Yuri Kuznetsov 0c8a28f640 panel sync 2024-12-06 18:56:36 +02:00
Yuri Kuznetsov 3b4699fb17 ref 2024-12-06 18:40:20 +02:00
Yuri Kuznetsov 66f107739a meetings/calls/tasks for custom 2024-12-06 18:30:11 +02:00
Yuri Kuznetsov fddd233e70 meetengs/calls/tasks panels 2024-12-06 18:16:01 +02:00
Yurii a1a7693747 bottom panels name 2024-12-06 17:19:22 +02:00
Yuri Kuznetsov 0262cdb9e6 cleanup 2024-12-06 15:41:26 +02:00
Yuri Kuznetsov 77c8073a84 bottom panels 2024-12-06 15:29:02 +02:00
Yuri Kuznetsov e89a68f038 cleanup 2024-12-06 15:28:52 +02:00
Yuri Kuznetsov dcaad8fe9d layout panels ref 2024-12-06 15:28:11 +02:00
Yuri Kuznetsov 649dd2099a schema addition 2024-12-06 13:36:46 +02:00
Yuri Kuznetsov f803c3a4a5 style fix 2024-12-06 13:10:04 +02:00
Yuri Kuznetsov 9fae2de8fc typo fix 2024-12-06 13:08:33 +02:00
Yuri Kuznetsov 0899e20cad record panel reference 2024-12-06 13:00:10 +02:00
Yuri Kuznetsov 96e1f30590 activities/history remove menu filters 2024-12-05 23:31:22 +02:00
Yuri Kuznetsov c33d9a78f3 style fix 2024-12-05 22:37:06 +02:00
Yuri Kuznetsov 2bb551bdd9 stream no sticky 2024-12-05 22:32:22 +02:00
Yuri Kuznetsov 1ad2607985 change edit header 2024-12-05 21:28:59 +02:00
Yuri Kuznetsov c22ec1529a modal edit header change 2024-12-05 21:25:08 +02:00
Yuri Kuznetsov 777e14e871 breadcrumb gray soft 2024-12-05 21:08:56 +02:00
Yuri Kuznetsov 57c70baa2d fix complex expression font size 2024-12-05 19:10:41 +02:00
Yuri Kuznetsov 06afd19aa5 discard userData imap and smtp handlers 2024-12-05 15:49:40 +02:00
Yuri Kuznetsov 7f0e1cc4ba update packages 2024-12-05 13:36:25 +02:00
Yuri Kuznetsov b901042ed3 bullbone 1.3.0 2024-12-04 21:41:06 +02:00
Yuri Kuznetsov bb66e1b587 actions version no 8.4 2024-12-04 11:56:16 +02:00
Yuri Kuznetsov 2732886cfe actions php version fix 2024-12-04 11:44:38 +02:00
Yuri Kuznetsov 72961d841e php 8.2 min 2024-12-04 11:39:32 +02:00
Yuri Kuznetsov 8d4f61d002 update composer dependencies 2024-12-04 11:33:22 +02:00
Yuri Kuznetsov 7a1c80556f fix preload 2024-12-04 11:32:29 +02:00
Yuri Kuznetsov 16de93d29e fix tests 2024-12-04 11:30:01 +02:00
Yuri Kuznetsov 6901d34176 fix 2024-12-04 11:20:41 +02:00
Yuri Kuznetsov 239f1f6d24 style fix 2024-12-03 23:51:31 +02:00
Yuri Kuznetsov 7e349c3750 layout concurrency fix 2024-12-03 23:29:25 +02:00
Yuri Kuznetsov bacd2f7eff ref 2024-12-03 23:22:05 +02:00
Yuri Kuznetsov 8c0c2757d2 ref 2024-12-03 23:19:58 +02:00
Yuri Kuznetsov 7c5084c846 fix 2024-12-03 20:41:49 +02:00
Yuri Kuznetsov a4ebaac96f ref 2024-12-03 20:38:17 +02:00
Yuri Kuznetsov d5bfc9a892 fix whitespace 2024-12-03 20:36:34 +02:00
Yuri Kuznetsov fc632e1ade rebuild: force all for pg 2024-12-03 14:45:19 +02:00
Yuri Kuznetsov 4c5791110c ref 2024-12-03 11:38:22 +02:00
Yuri Kuznetsov d088450745 import use ui select 2024-12-02 17:26:20 +02:00
Yuri Kuznetsov 1951ac4e8e import: support null for update 2024-12-02 17:15:19 +02:00
Yuri Kuznetsov 7b65f1b3dc ref 2024-12-02 17:08:38 +02:00
Yuri Kuznetsov 43e7a327d0 ui set held field level check 2024-11-28 17:32:20 +02:00
Yuri Kuznetsov 952fe2b512 mass set held field access check 2024-11-28 17:23:38 +02:00
Yuri Kuznetsov 84b78d7835 header buttons no whitespaces 2024-11-28 12:53:42 +02:00
Yuri Kuznetsov bec834af87 global search: do not close from modal 2024-11-28 12:01:08 +02:00
Yuri Kuznetsov 3199eb23f6 global search quick view 2024-11-28 11:53:19 +02:00
Yuri Kuznetsov ec9133ffc8 link field: color icon in list mode 2024-11-28 11:37:06 +02:00
Yuri Kuznetsov d94fee67b5 collaborators field rebuild 2024-11-28 11:28:56 +02:00
Yuri Kuznetsov ed8340240b email templat user avatar 2024-11-28 11:13:18 +02:00
Yuri Kuznetsov 0662c47366 update bullbone 2024-11-28 11:13:10 +02:00
Yuri Kuznetsov 9c37d5a325 bullbone experimantal 2024-11-27 15:50:05 +02:00
Yuri Kuznetsov 6ac17dc898 Merge branch 'master' into e/view-render 2024-11-27 14:20:50 +02:00
Yuri Kuznetsov 5ce5739b78 template fix 2024-11-27 14:20:44 +02:00
Yuri Kuznetsov 3559978dc1 modal set element change 2024-11-27 11:25:17 +02:00
Yuri Kuznetsov b395773e5b notification no inline edit 2024-11-27 11:15:54 +02:00
Yuri Kuznetsov de288cd832 remove helper 2024-11-27 11:03:58 +02:00
Yuri Kuznetsov 952e35a8c6 expanded list change cell 2024-11-27 11:01:54 +02:00
Yuri Kuznetsov 3b3da0d5ff modal ref, use containerElement 2024-11-27 10:12:51 +02:00
Yuri Kuznetsov 00ed0e26e8 fix remove collaborators 2024-11-26 14:18:53 +02:00
Yuri Kuznetsov 06ebe3b46b page-title service 2024-11-25 22:58:27 +02:00
Yuri Kuznetsov 766f77957b app-params service 2024-11-25 22:51:52 +02:00
Yuri Kuznetsov b724b8d6ed ref, di usage 2024-11-25 16:51:27 +02:00
Yuri Kuznetsov eee8886613 update bullbone 2024-11-25 16:11:38 +02:00
Yuri Kuznetsov 226ae20f7b list row and cell selectors refactor, use same sub-selectors for cells 2024-11-25 14:54:34 +02:00
Yuri Kuznetsov 34f22a3739 update uglify 2024-11-25 13:27:35 +02:00
Yuri Kuznetsov 63755bb0b9 frontend di 2024-11-25 11:52:32 +02:00
Yuri Kuznetsov daac63c37e websocket signature fix 2024-11-25 09:12:24 +02:00
Yuri Kuznetsov 8bfcdff489 Merge branch 'master' of https://github.com/espocrm/espocrm 2024-11-24 15:13:44 +02:00
Andrew Fontana f578d86faf Target list row actions translate (#3219)
* translate opted-out.js

* translate default.js

* Update opted-out.js

* Update default.js

* Update opted-out.js
2024-11-24 15:12:57 +02:00
Yuri Kuznetsov d3d5794dad application config 2024-11-24 12:05:34 +02:00
Yuri Kuznetsov d9faf23b81 ref 2024-11-24 11:23:32 +02:00
Yuri Kuznetsov 6f981ea5a7 hmac check order 2024-11-24 11:19:27 +02:00
Yuri Kuznetsov 2b5f917449 check status 0 2024-11-24 10:49:05 +02:00
Yuri Kuznetsov 59f8704eca no interner error on request 2024-11-24 10:46:48 +02:00
Yuri Kuznetsov 5345cd16fd ref 2024-11-24 10:06:55 +02:00
Yuri Kuznetsov ad0beb63d9 conver lead opportunity exception throw 2024-11-24 10:00:25 +02:00
Yuri Kuznetsov a7d7cbd952 fix availableReactions level 2024-11-23 13:50:38 +02:00
Yuri Kuznetsov 759277f655 script async defer 2024-11-23 13:47:49 +02:00
Yuri Kuznetsov 77f07c79e5 remove test/javascript 2024-11-23 13:40:49 +02:00
Yuri Kuznetsov 113bf0feec fix example 2024-11-23 11:58:49 +02:00
Yuri Kuznetsov 766b0327b1 lead capture person name fix 2024-11-23 11:44:00 +02:00
Yuri Kuznetsov ab596c7869 web form date time config 2024-11-23 11:21:40 +02:00
Yuri Kuznetsov ec2fc5916c web-to-lead forms 2024-11-23 11:05:25 +02:00
Yuri Kuznetsov 56735e9358 stream service in container 2024-11-21 12:18:56 +02:00
Yurii 2a1ecdd141 phone/email max count param 2024-11-21 11:33:40 +02:00
Yurii 3f5338837c fix lead capture smtp field 2024-11-21 10:41:41 +02:00
Yuri Kuznetsov b5f570708a lead capture unset fields 2024-11-21 09:47:52 +02:00
dependabot[bot] 7f61461917 Bump cross-spawn from 7.0.3 to 7.0.6 (#3214)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 08:55:43 +02:00
Yuri Kuznetsov f8d87c8f7b rename label 2024-11-20 13:54:00 +02:00
Yuri Kuznetsov 23851322d7 add isInternal to filters 2024-11-20 11:17:52 +02:00
Yuri Kuznetsov 338ce5f226 do not process follow if internal, ref 2024-11-20 11:11:40 +02:00
Yuri Kuznetsov b999273b6d unfollow portal users 2024-11-20 11:09:10 +02:00
Yuri Kuznetsov 30e6c76c4e internal cases 2024-11-20 10:30:38 +02:00
Yuri Kuznetsov 569ad2d00e field iteraction icon color 2024-11-19 22:38:39 +02:00
Yuri Kuznetsov f0fb1725ad password strength special characters 2024-11-19 14:48:55 +02:00
dependabot[bot] 8fc02ce0f7 Bump phpoffice/phpspreadsheet from 1.29.2 to 1.29.4 (#3211)
Bumps [phpoffice/phpspreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) from 1.29.2 to 1.29.4.
- [Release notes](https://github.com/PHPOffice/PhpSpreadsheet/releases)
- [Changelog](https://github.com/PHPOffice/PhpSpreadsheet/blob/1.29.4/CHANGELOG.md)
- [Commits](https://github.com/PHPOffice/PhpSpreadsheet/compare/1.29.2...1.29.4)

---
updated-dependencies:
- dependency-name: phpoffice/phpspreadsheet
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-18 22:47:28 +02:00
Yuri Kuznetsov 5df5b9b3f5 more field icons color 2024-11-18 21:24:25 +02:00
Yuri Kuznetsov 00f6bf6bf6 field iteration color change 2024-11-18 20:47:20 +02:00
Yuri Kuznetsov 24ad0c6537 fix duration timeout, longer to prevent date start inline edit issue 2024-11-18 17:42:22 +02:00
Yuri Kuznetsov 915f03be4a fix duration regression 2024-11-18 17:25:12 +02:00
Yuri Kuznetsov e96e702188 preserve changes when moving from inline edit to full edit 2024-11-18 17:06:00 +02:00
Yuri Kuznetsov a617a2742f cleanup 2024-11-18 16:41:28 +02:00
Yuri Kuznetsov 16e82cde65 save change 2024-11-18 16:40:38 +02:00
Yuri Kuznetsov edfd816fc6 ref 2024-11-18 15:40:30 +02:00
Yuri Kuznetsov f74293c8e1 scrollbar gutter change 2024-11-18 15:05:05 +02:00
Yuri Kuznetsov 84e2305017 cleanup 2024-11-18 14:59:28 +02:00
Yuri Kuznetsov ce008f911e inline edit icons 2024-11-18 14:56:42 +02:00
Yuri Kuznetsov 00af9af8bb fix role table, timeout 2024-11-18 14:39:31 +02:00
Yuri Kuznetsov b98ebb4497 role table sticky header fix 2024-11-18 14:16:46 +02:00
Yuri Kuznetsov dbbfedd33c clear cache portal role 2024-11-18 14:16:35 +02:00
Yuri Kuznetsov c8dca179ca Merge branch 'master' of https://github.com/espocrm/espocrm 2024-11-18 14:09:06 +02:00
Yurii d578ccea7b fix const usage 2024-11-18 13:00:01 +02:00
Yuri Kuznetsov ee78d83894 ref 2024-11-18 11:24:31 +02:00
Yuri Kuznetsov c7b33c2c36 fix after upgrade script 2024-11-18 11:16:16 +02:00
Yuri Kuznetsov d061e801dc after upgrade add links param 2024-11-18 11:03:41 +02:00
Yuri Kuznetsov 522df65928 css fix 2024-11-17 20:40:36 +02:00
Yuri Kuznetsov cc5c0678c7 panel icons size 2024-11-17 20:35:45 +02:00
Yuri Kuznetsov b8c421aee4 skip stream updated at in webhook 2024-11-17 20:31:03 +02:00
Yuri Kuznetsov 05493d2171 portal acl links 2024-11-17 16:50:21 +02:00
Yuri Kuznetsov 80cf38e0fc note email impr 2024-11-16 18:26:27 +02:00
Yuri Kuznetsov 2ecb41cc90 ref 2024-11-16 18:19:11 +02:00
Yuri Kuznetsov 42d8a35bb3 ifram font 2024-11-16 17:42:49 +02:00
Yuri Kuznetsov 103f88dcd9 strip reply introducation line 2024-11-16 16:46:43 +02:00
Yuri Kuznetsov 845bf8bc16 streamEmailWithContentEntityTypeList 2024-11-16 16:32:18 +02:00
Yuri Kuznetsov b3606ee35a email note strip reply part 2024-11-16 16:10:26 +02:00
Yuri Kuznetsov c0a13f79df ref 2024-11-16 15:18:52 +02:00
Yuri Kuznetsov 3edb30285c stream note email expand 2024-11-16 15:03:02 +02:00
Yuri Kuznetsov 74bde9868d fix 2024-11-16 13:05:04 +02:00
Yuri Kuznetsov 4a0e31a328 ref, permission check null 2024-11-16 11:26:08 +02:00
Yuri Kuznetsov 6e8396ae09 ref 2024-11-16 11:11:55 +02:00
Yuri Kuznetsov bbc17a564c ref 2024-11-16 11:01:20 +02:00
Yuri Kuznetsov e044b47f8c ref 2024-11-15 18:50:43 +02:00
Yuri Kuznetsov 729b03620d ref 2024-11-15 18:18:48 +02:00
Yuri Kuznetsov 6f369a3535 ref 2024-11-15 18:08:58 +02:00
Yuri Kuznetsov a04b36f79f group email account dynamic logic 2024-11-15 17:37:54 +02:00
Yuri Kuznetsov 0c74674731 ref 2024-11-15 16:09:04 +02:00
Yuri Kuznetsov 714bf8d2f8 orm: relations without ID 2024-11-15 13:32:00 +02:00
Yuri Kuznetsov 8a852695a1 fix test 2024-11-15 13:10:51 +02:00
Yuri Kuznetsov 4eb375c1cf ref 2024-11-15 13:08:10 +02:00
Yuri Kuznetsov d8b3b5361a dev 2024-11-15 12:47:05 +02:00
Yuri Kuznetsov 2ffbea5b52 ref 2024-11-15 12:42:53 +02:00
Yuri Kuznetsov 055322ae90 ref 2024-11-15 12:36:51 +02:00
Yuri Kuznetsov abfc22c080 ref 2024-11-15 12:13:25 +02:00
Yuri Kuznetsov cc104a6517 ref 2024-11-15 12:01:16 +02:00
Yuri Kuznetsov cdb8694706 ref 2024-11-15 11:51:00 +02:00
Yuri Kuznetsov 85d4490231 ref 2024-11-15 11:47:08 +02:00
Yuri Kuznetsov 8a9a15ecbe ref 2024-11-15 11:26:33 +02:00
Yuri Kuznetsov 5821ce7cb2 ref 2024-11-15 11:15:57 +02:00
Yuri Kuznetsov a925a9ec14 ref 2024-11-15 11:00:06 +02:00
Yuri Kuznetsov 0525f1bf88 ref 2024-11-15 10:55:45 +02:00
Yuri Kuznetsov 253a586886 ref 2024-11-15 10:50:35 +02:00
Yuri Kuznetsov 3bb8d47663 ref 2024-11-15 10:44:25 +02:00
Yuri Kuznetsov 7cfd221c3a link field handle null name 2024-11-15 10:31:16 +02:00
Yuri Kuznetsov 08bbb3fc99 orm: soft-deleted deferred load handling 2024-11-15 10:21:04 +02:00
Yuri Kuznetsov a7dba3769c orm: do not join deleted 2024-11-15 09:26:45 +02:00
Yuri Kuznetsov acd2869876 ref 2024-11-14 21:27:55 +02:00
Yuri Kuznetsov 5308e1d531 ref 2024-11-14 21:17:19 +02:00
Yuri Kuznetsov 3c70b5cb9b add stream updated at to filters 2024-11-14 18:59:03 +02:00
Yuri Kuznetsov da993afe88 fix version 2024-11-14 18:51:49 +02:00
Yuri Kuznetsov 5326e82ee0 deferred load in converter 2024-11-14 18:46:51 +02:00
Yuri Kuznetsov 95a8dc2742 deferred load 2024-11-14 18:39:27 +02:00
Yuri Kuznetsov 432a0f0474 ref 2024-11-14 18:21:14 +02:00
Yuri Kuznetsov 513a139ef7 ref 2024-11-14 18:11:19 +02:00
Yuri Kuznetsov 923b05b4aa ref 2024-11-14 17:53:22 +02:00
Yuri Kuznetsov 32fe2064ec ref 2024-11-14 17:18:20 +02:00
Yuri Kuznetsov ba0784f4fd orm: return null if parent type does not exist 2024-11-14 17:15:45 +02:00
Yuri Kuznetsov 80aa052247 ref 2024-11-14 16:45:10 +02:00
Yuri Kuznetsov 28e33813a2 orm: related partially loaded 2024-11-14 16:39:51 +02:00
Yuri Kuznetsov 79ef327953 ref 2024-11-14 14:22:23 +02:00
Yuri Kuznetsov f4e5adcf31 fix test 2024-11-14 14:10:07 +02:00
Yuri Kuznetsov 3bd3e8b882 stream updated at 2024-11-14 13:54:22 +02:00
Yuri Kuznetsov 84088c117f style fix 2024-11-14 13:20:18 +02:00
Yuri Kuznetsov 235ee720f4 style fix 2024-11-14 10:50:25 +02:00
Yuri Kuznetsov 7b50fa013e column resize touch screen 2024-11-14 10:46:35 +02:00
Yuri Kuznetsov 5e063ebc7b column resizer style change 2024-11-13 22:13:05 +02:00
Yuri Kuznetsov 3552cdd354 style fix 2024-11-13 21:48:47 +02:00
Yuri Kuznetsov dfae9749fe panel scroll gutter 2024-11-13 21:25:31 +02:00
Yuri Kuznetsov cf7f519ef7 avatar in mention droppdown 2024-11-13 20:59:57 +02:00
Yuri Kuznetsov dbe947ecbe Merge branch 'master' of https://github.com/espocrm/espocrm 2024-11-13 20:20:33 +02:00
dependabot[bot] 7d58415d9c Bump symfony/http-client from 6.4.14 to 6.4.15 (#3206)
Bumps [symfony/http-client](https://github.com/symfony/http-client) from 6.4.14 to 6.4.15.
- [Release notes](https://github.com/symfony/http-client/releases)
- [Changelog](https://github.com/symfony/http-client/blob/7.1/CHANGELOG.md)
- [Commits](https://github.com/symfony/http-client/compare/v6.4.14...v6.4.15)

---
updated-dependencies:
- dependency-name: symfony/http-client
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-13 20:20:21 +02:00
Yuri Kuznetsov 2679fd6124 style fix 2024-11-13 19:32:17 +02:00
Yuri Kuznetsov 3ca6e45117 stream clear view on tab select 2024-11-13 16:39:32 +02:00
Yuri Kuznetsov 7dc31b6236 style fix 2024-11-13 14:34:00 +02:00
Yuri Kuznetsov ca17f4e7c4 mention avatar and own color 2024-11-13 14:24:45 +02:00
Yuri Kuznetsov 0be9c868f9 remove space 2024-11-13 12:39:07 +02:00
Yuri Kuznetsov c3c08536a8 fix input with avatar 2024-11-13 12:09:36 +02:00
Yuri Kuznetsov f12744b413 css fix 2024-11-13 12:05:08 +02:00
Yuri Kuznetsov 2fd1778d45 phone number numeric text 2024-11-13 11:56:03 +02:00
Yuri Kuznetsov 91618ecfe6 fix avatar in input 2024-11-13 11:46:59 +02:00
Yuri Kuznetsov 496337a3af mass update confirm 2024-11-13 11:36:14 +02:00
Yuri Kuznetsov b07aea3441 ref 2024-11-13 11:29:59 +02:00
Yuri Kuznetsov f2a3bbba83 avatar fix 2024-11-13 11:19:02 +02:00
Yuri Kuznetsov a8194fa37e ref 2024-11-13 11:08:58 +02:00
Yuri Kuznetsov 04a10b4b8b input text align fix 2024-11-13 10:45:35 +02:00
Yuri Kuznetsov 905a837ab7 input padding fix to match buttons 2024-11-13 09:38:40 +02:00
Yuri Kuznetsov 4c3611fe7f enum css fix 2024-11-12 19:56:08 +02:00
Yuri Kuznetsov b108efa6d9 row action rerender on parent sync 2024-11-12 19:08:05 +02:00
Yuri Kuznetsov 2d09f2e233 areEqual 2024-11-12 19:07:52 +02:00
Yuri Kuznetsov dd5dbbd1cd fix sticky bar no element 2024-11-12 18:52:16 +02:00
Yuri Kuznetsov c1a18c5d1c fix 2024-11-12 13:21:39 +02:00
Yuri Kuznetsov 63ac6262bc base hook bc alias 2024-11-12 09:03:13 +02:00
Yuri Kuznetsov 4f7677b68e todo comments 2024-11-11 18:20:39 +02:00
Yuri Kuznetsov 9e3e335552 comments 2024-11-11 18:05:14 +02:00
Yuri Kuznetsov e847759d07 comment 2024-11-11 17:49:52 +02:00
Yuri Kuznetsov 07b7a9167e select manager fixes 2024-11-11 17:49:12 +02:00
Yuri Kuznetsov 4c7aa081eb ref 2024-11-11 17:42:44 +02:00
Yuri Kuznetsov 6d1c4d2aa8 const ID usage 2024-11-11 17:41:22 +02:00
Yuri Kuznetsov 0531b7239c ref 2024-11-11 17:15:10 +02:00
Yuri Kuznetsov df1d2ba80b ref 2024-11-11 17:07:08 +02:00
Yuri Kuznetsov af8188685c attribute consts 2024-11-11 17:03:05 +02:00
Yuri Kuznetsov 84b6c57412 const usage 2024-11-11 16:21:23 +02:00
Yuri Kuznetsov 29bee428ed field const usage 2024-11-11 16:14:06 +02:00
Yuri Kuznetsov 9e396b43a8 const usage 2024-11-11 16:04:47 +02:00
Yuri Kuznetsov 8d76eda198 name field consts 2024-11-11 15:46:37 +02:00
Yuri Kuznetsov 9542a66ede fix tests 2024-11-11 14:47:51 +02:00
Yuri Kuznetsov 541df757c6 fix typo 2024-11-11 14:07:49 +02:00
Yuri Kuznetsov d4437b8b62 fix test, findOne withDeleted bc 2024-11-11 12:33:28 +02:00
Yuri Kuznetsov 1da19a0f34 repository find parameter deprecation removal 2024-11-11 12:16:07 +02:00
Yuri Kuznetsov f08856eb56 comments 2024-11-11 12:03:08 +02:00
Yuri Kuznetsov 72795d1a93 ref 2024-11-11 12:02:49 +02:00
Yuri Kuznetsov 7130a3fb99 Merge branch 'fix' 2024-11-11 11:31:30 +02:00
Eymen Elkum 62e23aa416 fix in Table.php (#3204) 2024-11-11 11:31:06 +02:00
Yuri Kuznetsov 10ab5332cd deprecate preferences repo get 2024-11-11 10:11:22 +02:00
Yuri Kuznetsov 2753400b35 restore 2024-11-11 10:08:33 +02:00
Yuri Kuznetsov 13c22411eb cleanup 2024-11-11 09:43:57 +02:00
Yuri Kuznetsov e665423451 category children readonly 2024-11-11 09:09:21 +02:00
Yuri Kuznetsov 9ad41113ec cleanup 2024-11-11 09:06:12 +02:00
Yuri Kuznetsov 4b93f1e8cc phpstan exclude only analyse 2024-11-10 17:49:01 +02:00
Yuri Kuznetsov 48b27116ab phpstan exclude module vendor 2024-11-10 17:08:38 +02:00
Yuri Kuznetsov 48f46ac1ee fix tests 2024-11-10 16:36:40 +02:00
Yuri Kuznetsov 3702df731f bind websocket submission 2024-11-10 10:16:31 +02:00
Yuri Kuznetsov 664c5b0137 ref 2024-11-09 23:24:40 +02:00
Yuri Kuznetsov f6abfdc322 deprecations 2024-11-09 23:00:54 +02:00
Yuri Kuznetsov 0d71616e9a deprecation removal 2024-11-09 15:04:08 +02:00
Yuri Kuznetsov 1f774f50eb deprecation removal 2024-11-09 15:03:02 +02:00
Yuri Kuznetsov 806d0982b3 deprecation removal 2024-11-09 14:59:27 +02:00
Yuri Kuznetsov 17f72cd0ef deprecation removal 2024-11-09 14:56:47 +02:00
Yuri Kuznetsov 79a9112d48 deprecation removal 2024-11-09 14:50:57 +02:00
Yuri Kuznetsov b347902c3c deprecation removal 2024-11-09 14:42:15 +02:00
Yuri Kuznetsov 391948d6fe repository deprecation removal 2024-11-09 14:06:48 +02:00
Yuri Kuznetsov e0668770d0 base entity deprecation removal 2024-11-09 14:00:53 +02:00
Yuri Kuznetsov 77de0877a8 fix tests 2024-11-09 13:34:43 +02:00
Yuri Kuznetsov 39f018d99b remove deprecated injectable and base classes 2024-11-09 13:32:41 +02:00
Yuri Kuznetsov 7a09f08484 deprecation removal 2024-11-09 13:14:04 +02:00
Yuri Kuznetsov 23eb9f6f5b deprecation removal 2024-11-09 13:11:20 +02:00
Yuri Kuznetsov 1dc2319cc3 deprecation removal 2024-11-09 13:03:10 +02:00
Yuri Kuznetsov 4ce1093891 record service deprecation removal 2024-11-09 12:47:21 +02:00
Yuri Kuznetsov c427a0f221 deprecation removal 2024-11-09 12:32:38 +02:00
Yuri Kuznetsov 1f8bee0aca record service deprecation removal 2024-11-09 12:23:48 +02:00
Yuri Kuznetsov 2cbde1f6d5 deprecation removal 2024-11-09 12:23:34 +02:00
Yuri Kuznetsov 0454874755 fix docs 2024-11-09 12:15:50 +02:00
Yuri Kuznetsov 80ffd1bd86 remove deprecations planned for 9.0 2024-11-09 12:06:25 +02:00
Yuri Kuznetsov 6bf37d7f45 ref 2024-11-09 11:46:56 +02:00
Yuri Kuznetsov 04518fbb78 orm: set return static 2024-11-09 11:46:52 +02:00
Yuri Kuznetsov da9c346fa8 less ref 2024-11-09 11:35:49 +02:00
Yuri Kuznetsov a24ed6e63e dropdown max height 2024-11-09 11:29:30 +02:00
Yuri Kuznetsov 1ffe3e1f41 style fix 2024-11-09 11:25:19 +02:00
Yuri Kuznetsov 3879320655 style fix 2024-11-09 11:01:54 +02:00
Yuri Kuznetsov 3443db832c email do not set sent by if draft 2024-11-09 10:54:26 +02:00
Yuri Kuznetsov d7174c916e folder string drafts 2024-11-09 10:53:40 +02:00
Yuri Kuznetsov 1fb4da0954 empty body plain null 2024-11-09 10:45:54 +02:00
Yuri Kuznetsov 99b64cf6a0 email draft impr 2024-11-09 10:35:00 +02:00
Yuri Kuznetsov 2001b1517b fix warning 2024-11-09 10:07:15 +02:00
Yuri Kuznetsov 3ef9fb0f26 email scheduled send 2024-11-09 09:38:11 +02:00
Yuri Kuznetsov bd90b55c4d link multiple factory skip columns without attribute in foreign entity 2024-11-08 18:57:28 +02:00
Yuri Kuznetsov 61fa812e7a style fix 2024-11-08 15:01:09 +02:00
Yuri Kuznetsov 15fc07bf90 fix label 2024-11-08 14:10:03 +02:00
Yuri Kuznetsov 25b4c2fee4 wysiwyg impr style 2024-11-08 14:07:36 +02:00
Yuri Kuznetsov aa8eb8ed67 no popover transition 2024-11-08 11:42:04 +02:00
Yuri Kuznetsov b94ff6e88e move to archive list update fix 2024-11-08 11:25:46 +02:00
Yuri Kuznetsov 7b9bae2dc1 build for test with custom modules 2024-11-08 11:20:45 +02:00
Yuri Kuznetsov e3f5ff2162 mass delete/update exception catch 2024-11-08 10:33:30 +02:00
Yuri Kuznetsov 3b7405f14b fix role table 2024-11-07 21:35:48 +02:00
Yuri Kuznetsov 89278e6856 view user access filter active 2024-11-07 20:48:37 +02:00
Yuri Kuznetsov 11ea52d516 css fix 2024-11-07 20:48:23 +02:00
Yuri Kuznetsov 635866d576 line height fix 2024-11-07 19:03:42 +02:00
Yuri Kuznetsov 2a14b0d8d4 view access only internal 2024-11-07 17:53:13 +02:00
Yuri Kuznetsov acc219aded view user access 2024-11-07 17:41:00 +02:00
Yuri Kuznetsov 635e0b70d2 css fix 2024-11-07 14:32:21 +02:00
Yuri Kuznetsov e0b1aa77dd add to layout alert 2024-11-07 14:04:53 +02:00
Yuri Kuznetsov 73052fb253 ref 2024-11-07 13:48:02 +02:00
Yuri Kuznetsov a82c57d77b formula small font 2024-11-07 13:28:32 +02:00
Yuri Kuznetsov 2ffc3126c6 fix text field 2024-11-07 13:27:34 +02:00
Rabii Brahimi 2e74bc85ce Fix typo: fix typo in address country - is preferred field tooltip. (#3198) 2024-11-07 12:58:00 +02:00
Yuri Kuznetsov 186ce891f7 fix test 2024-11-07 11:32:30 +02:00
Yuri Kuznetsov 184ba90d43 portal access filters support hasOne 2024-11-07 11:16:29 +02:00
Yuri Kuznetsov 53530941a7 date range prevent picker popping up 2024-11-07 10:58:27 +02:00
Yuri Kuznetsov c394e984cd increase timeout 2024-11-07 10:54:16 +02:00
Yuri Kuznetsov a2376c0164 fix 2024-11-07 10:43:19 +02:00
Yuri Kuznetsov 2c7c48f31f fix timepicker js error 2024-11-07 10:36:26 +02:00
Yuri Kuznetsov be11c1e380 duration ref 2024-11-07 10:28:22 +02:00
Yuri Kuznetsov b32c28239c jsdoc 2024-11-07 10:23:46 +02:00
Yuri Kuznetsov 7e1fe452ff ref 2024-11-07 10:16:40 +02:00
Yuri Kuznetsov ec64272e8a ref 2024-11-07 10:12:27 +02:00
Yuri Kuznetsov 75c9ac440b ref 2024-11-07 10:05:05 +02:00
Yuri Kuznetsov 4816ff33a9 timepicker in modal fix 2024-11-07 09:56:58 +02:00
Yuri Kuznetsov 63187df36c css fix 2024-11-07 09:23:07 +02:00
Yuri Kuznetsov 730d5ed346 reactinos test 2024-11-07 09:20:30 +02:00
Yuri Kuznetsov 9407f4ba3d setRelatedLinkOrEntity 2024-11-07 09:03:20 +02:00
Yuri Kuznetsov 6d4b2256a7 radio style fix 2024-11-07 08:47:20 +02:00
Yuri Kuznetsov d23dc3a844 notigication close modal fix 2024-11-06 20:17:59 +02:00
Yuri Kuznetsov 2d3c0d4019 style impr 2024-11-06 20:06:18 +02:00
Yuri Kuznetsov 638a66941d reminders duplicate ignore 2024-11-06 20:06:11 +02:00
Yuri Kuznetsov 8b66fde865 comment 2024-11-06 19:24:40 +02:00
Yuri Kuznetsov f658047dae cleanup reactions 2024-11-06 19:22:59 +02:00
Yuri Kuznetsov 87be549544 ref 2024-11-06 19:17:58 +02:00
Yuri Kuznetsov 1cdad4c471 reaction quick view 2024-11-06 19:15:08 +02:00
Yuri Kuznetsov 80839e9aa1 notification load note ref, load note for reaction 2024-11-06 18:57:01 +02:00
Yuri Kuznetsov 0c17caeccd Merge branch 'master' of https://github.com/espocrm/espocrm 2024-11-06 18:34:07 +02:00
dependabot[bot] 1a40bfbf90 Bump symfony/http-client from 6.0.0 to 6.4.14 (#3197)
Bumps [symfony/http-client](https://github.com/symfony/http-client) from 6.0.0 to 6.4.14.
- [Release notes](https://github.com/symfony/http-client/releases)
- [Changelog](https://github.com/symfony/http-client/blob/7.1/CHANGELOG.md)
- [Commits](https://github.com/symfony/http-client/compare/v6.0.0...v6.4.14)

---
updated-dependencies:
- dependency-name: symfony/http-client
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-06 18:33:57 +02:00
Yuri Kuznetsov d9385f4b65 Merge branch 'master' of https://github.com/espocrm/espocrm 2024-11-06 18:33:25 +02:00
dependabot[bot] 7460e333bd Bump symfony/process from 6.0.19 to 6.4.14 (#3195)
Bumps [symfony/process](https://github.com/symfony/process) from 6.0.19 to 6.4.14.
- [Release notes](https://github.com/symfony/process/releases)
- [Changelog](https://github.com/symfony/process/blob/7.1/CHANGELOG.md)
- [Commits](https://github.com/symfony/process/compare/v6.0.19...v6.4.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-06 18:33:12 +02:00
dependabot[bot] 5babb69f5b Bump symfony/http-foundation from 6.0.20 to 6.4.14 (#3196)
Bumps [symfony/http-foundation](https://github.com/symfony/http-foundation) from 6.0.20 to 6.4.14.
- [Release notes](https://github.com/symfony/http-foundation/releases)
- [Changelog](https://github.com/symfony/http-foundation/blob/7.1/CHANGELOG.md)
- [Commits](https://github.com/symfony/http-foundation/compare/v6.0.20...v6.4.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-06 18:31:09 +02:00
Yuri Kuznetsov 77b20a9287 ref 2024-11-06 16:57:08 +02:00
Yuri Kuznetsov aa777a2a8f reactions update counts before sync 2024-11-06 16:39:53 +02:00
Yuri Kuznetsov b8c6f38cad popover close on header click fix 2024-11-06 15:41:00 +02:00
Yuri Kuznetsov b33d93acff style fix 2024-11-06 15:39:08 +02:00
Yuri Kuznetsov f0cdd1866b do not rerender row actions if opened 2024-11-06 15:37:14 +02:00
Yuri Kuznetsov 0f127091c2 reactions 2024-11-06 14:14:12 +02:00
Yuri Kuznetsov 4d868ce59f update bull 2024-11-06 13:18:51 +02:00
Yuri Kuznetsov 5147979ae2 line height precise 2024-11-04 18:45:49 +02:00
Yuri Kuznetsov e989304b3a style fix 2024-11-04 18:40:49 +02:00
Yuri Kuznetsov b16e8ba47a fix 2024-11-04 15:05:09 +02:00
Yuri Kuznetsov 5d8ac83206 style fix 2024-11-04 13:20:00 +02:00
Yuri Kuznetsov a490e6b1bd popup reminder close style 2024-11-04 13:04:43 +02:00
Yuri Kuznetsov ca14490e7b close style fix 2024-11-04 12:59:51 +02:00
Yuri Kuznetsov 77df2ed4ce array field add ref 2024-11-03 17:57:48 +02:00
Yuri Kuznetsov d47e2e68b1 icon usage fix 2024-11-01 16:14:18 +02:00
Yuri Kuznetsov e1ef35ac83 style fixes 2024-11-01 15:33:39 +02:00
Yuri Kuznetsov 6c37b3c372 icons style fix, ref 2024-11-01 15:19:53 +02:00
Yuri Kuznetsov 2f3d3e3096 style fixes 2024-11-01 13:57:26 +02:00
Yuri Kuznetsov 75594677bb fix 2024-11-01 12:12:22 +02:00
Yuri Kuznetsov 99664e76e7 font familiy in variable 2024-11-01 12:06:45 +02:00
Yuri Kuznetsov 126c785844 editor font 2024-11-01 12:02:46 +02:00
Yuri Kuznetsov 577dfa31bf print unescape unicode 2024-11-01 10:14:30 +02:00
Yuri Kuznetsov b6cc67fad8 style impr 2024-11-01 10:05:51 +02:00
Yuri Kuznetsov e310dde808 fix 2024-11-01 09:41:46 +02:00
Yuri Kuznetsov 7d423591c1 top bar height increase 2024-11-01 09:40:15 +02:00
Yuri Kuznetsov 493bcbd63e side navbar minibized increase width 2024-11-01 09:35:59 +02:00
Yuri Kuznetsov f0a61d8bd0 style fix 2024-11-01 09:28:04 +02:00
Yuri Kuznetsov 5beddd0935 line height increase 2024-11-01 09:26:38 +02:00
Yuri Kuznetsov 4d406f3803 layout ignore list for detail types 2024-10-31 19:26:35 +02:00
Yuri Kuznetsov 1f33e907a5 layout ignore list for any type 2024-10-31 19:24:46 +02:00
Yuri Kuznetsov 7d3292311c assignment checker ref 2024-10-31 18:56:57 +02:00
Yuri Kuznetsov d1d17eefb3 assigmnent checker skip own 2024-10-31 18:39:11 +02:00
Yuri Kuznetsov 77a98f5b34 send label 2024-10-31 16:50:29 +02:00
Yuri Kuznetsov 5819cdb8d7 email replied teams check 2024-10-31 16:46:01 +02:00
Yuri Kuznetsov fefa76be57 style fix 2024-10-31 16:19:13 +02:00
Yuri Kuznetsov ef5a13c313 rem usage 2024-10-31 15:50:06 +02:00
Yuri Kuznetsov 251dcbbf3c fix icon class 2024-10-31 14:50:48 +02:00
Yuri Kuznetsov ca9c8b8633 style fix 2024-10-31 14:50:14 +02:00
Yuri Kuznetsov 7f52cc7ac9 phone link extension 2024-10-31 13:47:03 +02:00
Yuri Kuznetsov 2a025e1587 role table ref 2024-10-31 13:19:38 +02:00
Yuri Kuznetsov 0f51d3c19c role table ref 2024-10-31 11:26:16 +02:00
Yuri Kuznetsov f9bead9809 comment out window scroll 2024-10-30 22:14:50 +02:00
Yuri Kuznetsov a7ceb91e7a fix 2024-10-30 22:11:24 +02:00
Yuri Kuznetsov 1969c9488a rem usage 2024-10-30 20:43:02 +02:00
Yuri Kuznetsov 6f866d2b10 jsdoc 2024-10-30 20:25:17 +02:00
Yuri Kuznetsov e8cf54cfb8 portal application name 2024-10-30 19:36:07 +02:00
Yurii Kuznietsov 61f6d55934 Revert "portal application name (#3191)" (#3192)
This reverts commit 89cb67d2b9.
2024-10-30 19:16:12 +02:00
Eymen Elkum 89cb67d2b9 portal application name (#3191) 2024-10-30 19:08:17 +02:00
Yuri Kuznetsov 123013db81 monospace italic font 2024-10-30 19:06:20 +02:00
Yuri Kuznetsov a6d6042bd7 cleanup 2024-10-30 19:02:14 +02:00
Yuri Kuznetsov 36ba328437 navbar size fix 2024-10-30 18:57:40 +02:00
Yuri Kuznetsov 6be444cc60 ref 2024-10-30 18:53:16 +02:00
Yuri Kuznetsov d6e1dbaa88 ref 2024-10-30 18:46:15 +02:00
Yuri Kuznetsov bc6afa7e2a style fix 2024-10-30 18:14:07 +02:00
Yuri Kuznetsov 9265e67395 less cleanup 2024-10-30 16:49:42 +02:00
Yuri Kuznetsov 0dd04e4c20 no gutter with modal 2024-10-30 16:33:10 +02:00
Yuri Kuznetsov 97684f2926 fix 2024-10-30 16:30:59 +02:00
Yuri Kuznetsov be5cb91e8b ref less 2024-10-30 16:28:31 +02:00
Yuri Kuznetsov d7e6dbc998 layout add field 2024-10-30 16:27:20 +02:00
Yuri Kuznetsov 8aa7e8d563 tooltip variables 2024-10-30 16:21:36 +02:00
Yuri Kuznetsov d5e24f7d3e less ref 2024-10-30 16:13:05 +02:00
Yuri Kuznetsov 10da8accd0 less ref 2024-10-30 16:10:02 +02:00
Yuri Kuznetsov fbc38c9a87 less ref 2024-10-30 15:58:13 +02:00
Yuri Kuznetsov 3557902066 less ref 2024-10-30 15:50:53 +02:00
Yuri Kuznetsov 2364cb096f less ref 2024-10-30 15:43:42 +02:00
Yuri Kuznetsov ededfa1a3d less ref 2024-10-30 15:34:59 +02:00
Yuri Kuznetsov de15ff1594 less ref 2024-10-30 15:27:12 +02:00
Yuri Kuznetsov aa7d6b4f35 less ref 2024-10-30 15:22:29 +02:00
Yuri Kuznetsov 7d1c26858f less ref 2024-10-30 14:53:43 +02:00
Yuri Kuznetsov a5a09d30b8 less ref 2024-10-30 14:37:00 +02:00
Yuri Kuznetsov ae2be2326a less ref 2024-10-30 14:32:42 +02:00
Yuri Kuznetsov 320ff7a9c2 less ref 2024-10-30 14:06:10 +02:00
Yuri Kuznetsov b72b9e258e less ref 2024-10-30 14:00:21 +02:00
Yuri Kuznetsov 16c4945e80 less ref 2024-10-30 12:27:47 +02:00
Yuri Kuznetsov 67b0d2fa31 less ref 2024-10-30 12:20:32 +02:00
Yuri Kuznetsov 4aaafb5cc4 less ref 2024-10-30 12:10:39 +02:00
Yuri Kuznetsov 5484ba64b1 less ref 2024-10-30 12:05:47 +02:00
Yuri Kuznetsov 28b52953bc less ref 2024-10-30 11:30:37 +02:00
Yuri Kuznetsov 44ea5abc2e less ref 2024-10-30 11:18:06 +02:00
Yuri Kuznetsov 6e70cc9c79 less ref 2024-10-30 11:05:03 +02:00
Yuri Kuznetsov 994611e8f4 less ref 2024-10-30 10:41:39 +02:00
Yuri Kuznetsov 92755b1eb1 less ref 2024-10-30 10:33:03 +02:00
Yuri Kuznetsov 7fd17abf19 grunt less 2024-10-30 10:19:05 +02:00
Yuri Kuznetsov 8c69724c43 less ref 2024-10-30 10:16:37 +02:00
Yuri Kuznetsov 9a784a0bca less ref 2024-10-30 10:11:52 +02:00
Yuri Kuznetsov 82618263c4 less ref 2024-10-30 09:55:13 +02:00
Yuri Kuznetsov acb8e5c77b less ref 2024-10-30 09:35:35 +02:00
Yuri Kuznetsov 94435251e2 ref 2024-10-29 21:58:13 +02:00
Yuri Kuznetsov 28025a3e20 ref 2024-10-29 21:51:08 +02:00
Yuri Kuznetsov ec021fb63b ref 2024-10-29 21:41:58 +02:00
Yuri Kuznetsov 2c6dd05ec8 ref 2024-10-29 21:29:17 +02:00
Yuri Kuznetsov 95a4ca9524 url export prepend https 2024-10-29 21:22:50 +02:00
Yuri Kuznetsov 0fdd1c6209 rem usage 2024-10-29 20:33:52 +02:00
Yuri Kuznetsov be15362cda fix 2024-10-29 19:38:09 +02:00
Yuri Kuznetsov 45f6d3d3b3 rem usage 2024-10-29 18:52:24 +02:00
Yuri Kuznetsov 81d79f8287 use rem 2024-10-29 18:48:00 +02:00
Yuri Kuznetsov 230b6b17b5 fix 2024-10-29 17:40:09 +02:00
Yuri Kuznetsov c6f5a542ab fix 2024-10-29 17:37:06 +02:00
Yuri Kuznetsov 3450ead098 cleanup 2024-10-29 17:35:33 +02:00
Yuri Kuznetsov f76b729ff7 fix 2024-10-29 17:30:27 +02:00
Yuri Kuznetsov 0bf957c9d0 rem usage 2024-10-29 17:19:24 +02:00
Yuri Kuznetsov 0b47c67c71 rem usage 2024-10-29 17:06:33 +02:00
Yuri Kuznetsov 8eaef843d0 rem usage 2024-10-29 16:41:00 +02:00
Yuri Kuznetsov 0a2f9b1516 rem usage 2024-10-29 16:30:05 +02:00
Yuri Kuznetsov 43d5cb71f3 rem usage 2024-10-29 16:19:59 +02:00
Yuri Kuznetsov d759485a1b rem usage 2024-10-29 16:07:28 +02:00
Yuri Kuznetsov 7b951eb420 rem usage 2024-10-29 15:43:22 +02:00
Yuri Kuznetsov ff16cff48f css ref 2024-10-29 15:12:44 +02:00
Yuri Kuznetsov 1babcce452 navbar rem 2024-10-29 14:52:32 +02:00
Yuri Kuznetsov 090ebd7277 scrollbar gutter 2024-10-29 13:39:48 +02:00
Yuri Kuznetsov d633686a7d mono font 2024-10-29 13:08:00 +02:00
Yuri Kuznetsov 57a5dfcfb7 using rem 2024-10-29 12:46:55 +02:00
Yuri Kuznetsov 205b281520 reply email avatars 2024-10-27 10:14:35 +02:00
Yuri Kuznetsov e941ca31a2 revert load link-multiple logic 2024-10-27 10:02:06 +02:00
Yuri Kuznetsov 977e1868e7 avatar no user select 2024-10-27 09:32:06 +02:00
Yuri Kuznetsov f593ccfbe3 avatar not draggable 2024-10-27 09:31:19 +02:00
Yuri Kuznetsov bb8a527ff6 email address avatar 2024-10-27 09:28:22 +02:00
Yuri Kuznetsov 0a0016335c assigned user avatar impr 2024-10-26 20:13:29 +03:00
Yuri Kuznetsov bf9cae23d7 assigned user avatar in edit 2024-10-26 17:15:22 +03:00
Yuri Kuznetsov d1ac36fe89 style fix 2024-10-26 16:49:57 +03:00
Yuri Kuznetsov ec30c986a9 assigned users avatar in edit 2024-10-26 14:03:37 +03:00
Yuri Kuznetsov 2b6d2cf11b jsdocs 2024-10-26 13:22:44 +03:00
Yuri Kuznetsov 59fefa7d24 set foreignAccessDisabled 2024-10-26 10:53:00 +03:00
Yuri Kuznetsov 73fed8f533 remove field from text filters 2024-10-26 10:07:09 +03:00
Yuri Kuznetsov e33e89e093 ref 2024-10-26 09:58:30 +03:00
Yuri Kuznetsov 80440e7bf1 remove shared 2024-10-25 21:14:15 +03:00
Yuri Kuznetsov 16bec44768 email read-only fields 2024-10-25 18:34:09 +03:00
Yuri Kuznetsov 52d9e466d1 fix note 2024-10-25 18:30:23 +03:00
Yuri Kuznetsov 089fc98fde collaborators 2024-10-25 17:25:40 +03:00
Yuri Kuznetsov 21541aefe9 loadLinkMultipleField change 2024-10-25 16:15:49 +03:00
Yuri Kuznetsov 475ba6d2f4 link multiple item create with name 2024-10-24 11:55:21 +03:00
Yuri Kuznetsov 44b904b54e Merge branch 'fix' 2024-10-23 20:03:43 +03:00
Yuri Kuznetsov 0871582a5e double export request fix 2024-10-23 20:03:34 +03:00
Yuri Kuznetsov d96a9943b3 list related primary filter 2024-10-23 19:51:21 +03:00
Yuri Kuznetsov de3e15c893 fix role ui 2024-10-23 11:02:07 +03:00
Yuri Kuznetsov 2499a2b252 mass move confirmation 2024-10-23 09:50:19 +03:00
Yuri Kuznetsov e236aeaf08 emails: move to folder gray out current 2024-10-23 09:47:35 +03:00
Yuri Kuznetsov 5c8966e410 allow stars in portals 2024-10-22 18:47:35 +03:00
Yuri Kuznetsov b2b0d5dbd1 allow stream tab in tab-list for portals 2024-10-22 18:42:57 +03:00
Yurii Kuznietsov c0b0720c0f Update CONTRIBUTING.md 2024-10-22 18:26:39 +03:00
Yurii Kuznietsov 6c5fdbd092 Update CONTRIBUTING.md 2024-10-22 18:22:25 +03:00
Yuri Kuznetsov fa947e0d15 no expand toggle in portal 2024-10-22 17:45:55 +03:00
Yuri Kuznetsov a35047e770 remove kb portal height 2024-10-22 17:42:50 +03:00
Yuri Kuznetsov b58e5383e0 show no records moved 2024-10-22 17:16:59 +03:00
Yuri Kuznetsov 9a1c843c37 fixes 2024-10-22 17:13:10 +03:00
Yuri Kuznetsov 97c558e1cf emails: no drag if all result 2024-10-22 17:11:17 +03:00
Yuri Kuznetsov a16dd93c5d ref 2024-10-22 17:02:43 +03:00
Yuri Kuznetsov 3e30b05bd1 move to group folder adds users 2024-10-22 16:46:35 +03:00
Yuri Kuznetsov c0ca12bc9e apply group folder teams when added by filter 2024-10-22 16:43:07 +03:00
Yuri Kuznetsov 8a7e4fa8da email fetch: add users from group folder when folder is added by filter 2024-10-22 14:41:24 +03:00
Yuri Kuznetsov 88e6f47d11 email fetch: add useres from group folder 2024-10-22 13:38:26 +03:00
Yuri Kuznetsov 4fe7a03878 fix test 2024-10-22 12:24:19 +03:00
Yuri Kuznetsov fe18478d39 group email account layout change 2024-10-22 12:05:35 +03:00
Yuri Kuznetsov 4d7e54cc92 email importer ref 2024-10-22 11:36:13 +03:00
Yuri Kuznetsov d1a44c6eb0 resize style change 2024-10-21 22:48:45 +03:00
Yuri Kuznetsov ef75dc94a7 fields readonly 2024-10-21 20:15:52 +03:00
Yuri Kuznetsov ecba53162a rename 2024-10-21 20:15:04 +03:00
Yuri Kuznetsov ab39cf9324 email filter: skip notification 2024-10-21 20:10:41 +03:00
Yuri Kuznetsov 4e92bbd942 css fix 2024-10-21 15:56:28 +03:00
Yuri Kuznetsov 96cb63c73d categories: toggle impr 2024-10-21 15:54:31 +03:00
Yuri Kuznetsov b57fd8d56e categories: no refresh header, cs, docs 2024-10-21 15:19:25 +03:00
Yuri Kuznetsov e4f45caa48 no notify 2024-10-21 13:12:53 +03:00
Yuri Kuznetsov df7f75ec52 column resize 2024-10-21 10:43:34 +03:00
Yuri Kuznetsov 12ec81b330 font license.txt 2024-10-18 20:15:04 +03:00
Yuri Kuznetsov 956941ae12 layout fixes 2024-10-18 16:30:14 +03:00
Yuri Kuznetsov 727a189585 list layout default width 2024-10-18 16:25:57 +03:00
Yuri Kuznetsov 6bbe9fc515 ref 2024-10-18 16:18:41 +03:00
Yuri Kuznetsov 0310abe526 width validation 2024-10-18 16:04:31 +03:00
Yuri Kuznetsov 8c4a28aa80 fix spinner 2024-10-18 14:20:22 +03:00
Yuri Kuznetsov c6382a4a96 expand/collapse toggle 2024-10-18 13:27:41 +03:00
Yuri Kuznetsov fd4dbb61c4 autocomplete link style fix 2024-10-18 12:43:08 +03:00
Yuri Kuznetsov 6bba09641d style fix 2024-10-18 12:28:28 +03:00
Yuri Kuznetsov c53542b9f0 fixes in categories 2024-10-18 12:04:32 +03:00
Yuri Kuznetsov 0713f1d8b8 fix cetegories 2024-10-18 11:28:37 +03:00
Yuri Kuznetsov 5e30232749 ref 2024-10-18 11:17:18 +03:00
Yuri Kuznetsov f7f4edcd55 expanded label 2024-10-18 10:38:41 +03:00
Yuri Kuznetsov 0075f06f4f more filter fields 2024-10-18 10:08:14 +03:00
Yuri Kuznetsov bf362464d6 categories impr 2024-10-17 23:57:26 +03:00
Yuri Kuznetsov 663300e606 style fix 2024-10-17 23:49:08 +03:00
Yuri Kuznetsov e7ed8c8b56 fix double fetch 2024-10-17 23:44:01 +03:00
Yuri Kuznetsov de12f04e46 ref, cleanup 2024-10-17 23:38:56 +03:00
Yuri Kuznetsov cb72b2f906 categories: no force top bar 2024-10-17 23:23:25 +03:00
Yuri Kuznetsov 38a9222c06 categories change 2024-10-17 23:19:47 +03:00
Yuri Kuznetsov 279efb8c91 email template more filters 2024-10-17 20:02:01 +03:00
Yuri Kuznetsov 64c87afaeb categories no folders 2024-10-17 19:53:10 +03:00
Yuri Kuznetsov 1497225be1 categories top level label 2024-10-17 19:34:47 +03:00
Yuri Kuznetsov 80c565a407 categories impr 2 2024-10-17 19:17:02 +03:00
Yuri Kuznetsov 30a71f17a5 categories ui impr 2024-10-17 19:03:27 +03:00
Yuri Kuznetsov 813ed444cf add body filter 2024-10-17 18:00:52 +03:00
Yuri Kuznetsov 668c48ef51 ref 2024-10-17 17:44:37 +03:00
Yuri Kuznetsov 33e977b796 user check 2024-10-17 17:04:52 +03:00
Yuri Kuznetsov 5d144f0063 notification icon 2024-10-17 16:40:27 +03:00
Yuri Kuznetsov 7d18ed3222 email: notify user when added 2024-10-17 16:35:45 +03:00
Yuri Kuznetsov bc2bb3d4a2 link-multiple save relate option, ref 2024-10-17 15:17:55 +03:00
Yuri Kuznetsov 012dfc85ed ref 2024-10-17 14:39:40 +03:00
Yuri Kuznetsov 3c2a97ae23 fix duration dst shift issue 2024-10-17 14:34:41 +03:00
Yuri Kuznetsov 3dcf056dd1 email: view and add users 2024-10-17 13:20:29 +03:00
Yuri Kuznetsov 51e8dd29e7 fix docs 2024-10-17 12:37:07 +03:00
Yuri Kuznetsov 40ff7d3ccd jsdocs 2024-10-17 12:06:25 +03:00
Yuri Kuznetsov 5478f5ae8b schema 2024-10-17 11:47:17 +03:00
Yuri Kuznetsov 94c65a0592 css fix, email folders small screen 2024-10-17 11:08:28 +03:00
Yuri Kuznetsov 75388a4d09 remove Pragma header 2024-10-17 11:04:11 +03:00
Yuri Kuznetsov 4645cfe35c numeric text tabular all 2024-10-17 10:16:38 +03:00
Yuri Kuznetsov b4682563d6 change layout 2024-10-16 22:26:41 +03:00
Yuri Kuznetsov 57c7254fd5 border radius changes 2024-10-16 22:18:45 +03:00
dependabot[bot] 86439d28ad Bump cookie and express (#3183)
Bumps [cookie](https://github.com/jshttp/cookie) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `cookie` from 0.6.0 to 0.7.1
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1)

Updates `express` from 4.21.0 to 4.21.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.1/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.0...4.21.1)

---
updated-dependencies:
- dependency-name: cookie
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-16 16:32:35 +03:00
Yuri Kuznetsov b63e78a432 font 2024-10-16 13:50:03 +03:00
Yuri Kuznetsov 699705d44a fix 2024-10-15 16:16:43 +03:00
Yuri Kuznetsov 3d1a2320de reminder preferences fallback 2024-10-15 16:03:01 +03:00
Yuri Kuznetsov 3a750f505b phone field css fix 2024-10-15 11:58:37 +03:00
Yuri Kuznetsov 63a05ca140 icons update 2024-10-15 11:29:55 +03:00
Yuri Kuznetsov f68b7c99be Merge branch 'fix' 2024-10-15 10:49:50 +03:00
Yuri Kuznetsov af2a0a2ae5 fix formula fetch link multiple 2024-10-15 10:48:24 +03:00
Yuri Kuznetsov b8f40403fb recordHelper public 2024-10-14 18:22:16 +03:00
Yuri Kuznetsov 0e97336604 Merge branch 'fix' 2024-10-14 14:21:44 +03:00
Yuri Kuznetsov e265cd88f8 fix color 2024-10-14 13:13:50 +03:00
Yuri Kuznetsov 9cc5d78586 email tasks more status 2024-10-14 13:02:02 +03:00
Yuri Kuznetsov df17be4f1b email tasks field impr 2024-10-14 13:00:52 +03:00
Yuri Kuznetsov 74a40fdf98 status fields as label 2024-10-14 11:44:11 +03:00
Yuri Kuznetsov bf40149a14 fix test 2024-10-13 14:11:03 +03:00
Yuri Kuznetsov 06eb0d0020 orm: refresh entity clear not fetched attributes 2024-10-13 10:54:28 +03:00
Yuri Kuznetsov 73c3fcfb65 email list style impr 2024-10-12 16:19:27 +03:00
Yuri Kuznetsov d743e1ce1d impr 2024-10-12 16:12:44 +03:00
Yuri Kuznetsov e971848ed1 emails ui impr 2024-10-12 16:01:13 +03:00
Yuri Kuznetsov ec4e52b9b9 fix labels 2024-10-12 15:11:08 +03:00
Yuri Kuznetsov 33b9f0cf19 layout change 2024-10-12 13:13:32 +03:00
Yuri Kuznetsov 2d85a222e5 folder groups 2024-10-12 13:10:27 +03:00
Yuri Kuznetsov 4ae30b4b6b text field image attachment paste 2024-10-12 12:18:17 +03:00
Yuri Kuznetsov c68cc0b17f remove image help 2024-10-12 09:06:00 +03:00
Yuri Kuznetsov 83fbdc4a16 markdown image help 2024-10-11 20:07:36 +03:00
Yuri Kuznetsov 112d495b9c img height 2024-10-11 20:07:19 +03:00
Yuri Kuznetsov ba97229767 text image load fix 2024-10-11 19:47:54 +03:00
Yuri Kuznetsov ea7277042b complex-text img max width 2024-10-11 19:24:01 +03:00
Yuri Kuznetsov 4a9a8cef8b ref 2024-10-11 18:45:20 +03:00
Yuri Kuznetsov 4b79acfec1 link check parent field 2024-10-11 18:28:57 +03:00
Yuri Kuznetsov bd44427e8d ref 2024-10-11 18:23:10 +03:00
Yuri Kuznetsov 92a9dda434 text field preview 2024-10-11 16:19:05 +03:00
Yuri Kuznetsov 4a3cc8a3c8 note search by created by team 2024-10-11 12:48:26 +03:00
Yuri Kuznetsov f77302b007 email to tasl: add email to assigned user inbox 2024-10-11 11:17:38 +03:00
Yuri Kuznetsov 500ad83af6 hard rebuild skip confirm 2024-10-10 19:26:56 +03:00
Yuri Kuznetsov 94065bfa34 email to task originalEmailId 2024-10-10 18:42:48 +03:00
Yuri Kuznetsov 150677be0b Merge branch 'fix' 2024-10-10 18:21:11 +03:00
Yuri Kuznetsov f50ea4607f link without field do not allow 2024-10-10 17:32:45 +03:00
Yuri Kuznetsov 092ae6d825 fix message 2024-10-10 16:25:19 +03:00
Yuri Kuznetsov 754612e179 email move to group audited 2024-10-10 15:52:08 +03:00
Yuri Kuznetsov 59e4098936 group folder move messages, change 2024-10-10 15:16:18 +03:00
Yuri Kuznetsov b3a670f700 ref 2024-10-10 14:50:14 +03:00
Yuri Kuznetsov 348db2f7d5 email: group folder changes 2024-10-10 14:49:51 +03:00
Yuri Kuznetsov c061b8e7ac fix lang 2024-10-10 11:33:26 +03:00
Yuri Kuznetsov 9f7af015c6 fix lang 2024-10-10 11:32:09 +03:00
Yuri Kuznetsov fcf5f0ece5 preserve audit log param in UI 2024-10-10 11:27:29 +03:00
Yuri Kuznetsov e859068670 preserve audit log param 2024-10-10 10:45:39 +03:00
Yuri Kuznetsov 6d9fe6b69f modal title no select 2024-10-09 21:33:01 +03:00
Yuri Kuznetsov a0d99403f8 icon 2024-10-09 21:29:07 +03:00
Yuri Kuznetsov 2ddb31eaca change label 2024-10-09 21:22:09 +03:00
Yuri Kuznetsov b163f2107f move to folder icons 2024-10-09 19:54:07 +03:00
Yuri Kuznetsov 3a526291a2 all icon 2024-10-09 19:26:25 +03:00
Yuri Kuznetsov b85666d21b align all 2024-10-09 18:24:37 +03:00
Yuri Kuznetsov 6ce7856902 stream: force one assignee for emails 2024-10-09 16:16:30 +03:00
Yuri Kuznetsov 1aa004b0a6 email assignment notification force 2024-10-09 16:07:47 +03:00
Yuri Kuznetsov d2fc0c778b force assignment notifications public 2024-10-09 15:59:11 +03:00
Yuri Kuznetsov d1338a1f26 relate reply email with group folder 2024-10-09 15:12:11 +03:00
Yuri Kuznetsov 4d23fe172b email folders color 2024-10-09 14:22:32 +03:00
Yuri Kuznetsov e6d26be73b email folder icons 2024-10-09 14:05:54 +03:00
Yuri Kuznetsov ba42a90287 do not list sent emails in group folder 2024-10-09 11:33:14 +03:00
Yuri Kuznetsov fe1c836063 group email folder layout change 2024-10-09 11:11:05 +03:00
Yuri Kuznetsov 02f80b0b1a ref 2024-10-09 11:02:32 +03:00
Yuri Kuznetsov fccafe577e email folder string display sent and group 2024-10-09 10:56:18 +03:00
Yuri Kuznetsov e037f2b7de fix docs 2024-10-09 10:45:40 +03:00
Yuri Kuznetsov 64ff2df0c5 case link checker use originalEmailId 2024-10-09 10:29:05 +03:00
Yuri Kuznetsov db79d30efb only one ID if no link-multiple 2024-10-09 10:28:41 +03:00
Yuri Kuznetsov 6406f50928 ref 2024-10-09 09:20:03 +03:00
Yuri Kuznetsov ade7f782b8 relations save test 2024-10-08 20:13:14 +03:00
Yuri Kuznetsov 95571c1c51 cleanup 2024-10-08 20:00:56 +03:00
Yuri Kuznetsov 0f85f68137 skip link IDs save when update 2024-10-08 19:52:45 +03:00
Yuri Kuznetsov 3716378d2c change 2024-10-08 18:35:16 +03:00
Yuri Kuznetsov 9fc2357e1e email to case: no emails link usage 2024-10-08 18:34:39 +03:00
Yuri Kuznetsov d2ff6bd4f7 ref 2024-10-08 17:14:03 +03:00
Yuri Kuznetsov 08b4b621c4 ref, cs 2024-10-08 16:41:33 +03:00
Yuri Kuznetsov 05ea909014 fix prev 2024-10-08 16:40:14 +03:00
Yuri Kuznetsov 54edb9a684 fix router cancel leave out if navigated with trigger true 2024-10-08 16:32:56 +03:00
Yuri Kuznetsov 80a48fabf3 change cleanup periods 2024-10-08 11:56:33 +03:00
Yuri Kuznetsov 9613437895 navbar item view, disable tab search in portal 2024-10-08 09:32:19 +03:00
Yuri Kuznetsov ab2fff0a68 tab search all tabs 2024-10-08 09:16:16 +03:00
Yuri Kuznetsov ddee877eda Merge branch 'fix' 2024-10-07 19:30:52 +03:00
Yuri Kuznetsov edb8cc998b build cleanup modules 2024-10-07 19:26:02 +03:00
Yuri Kuznetsov fcad3415bc Merge branch 'master' of https://github.com/espocrm/espocrm 2024-10-07 18:19:15 +03:00
dependabot[bot] 62b0515e7f Bump phpoffice/phpspreadsheet from 1.29.1 to 1.29.2 (#3174)
Bumps [phpoffice/phpspreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) from 1.29.1 to 1.29.2.
- [Release notes](https://github.com/PHPOffice/PhpSpreadsheet/releases)
- [Changelog](https://github.com/PHPOffice/PhpSpreadsheet/blob/1.29.2/CHANGELOG.md)
- [Commits](https://github.com/PHPOffice/PhpSpreadsheet/compare/1.29.1...1.29.2)

---
updated-dependencies:
- dependency-name: phpoffice/phpspreadsheet
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-07 18:19:07 +03:00
Yuri Kuznetsov 2ce4d69f3b ref 2024-10-07 17:01:34 +03:00
Yuri Kuznetsov 0476812791 tab-quick-search 2024-10-07 15:56:34 +03:00
Yuri Kuznetsov 7714a299aa email: do not add portal user as assigned 2024-10-07 12:44:20 +03:00
Yuri Kuznetsov a374d7046f view related ref 2024-10-07 11:55:59 +03:00
Yuri Kuznetsov 2c4d853a5b datetimeShort ref 2024-10-07 11:36:28 +03:00
Yuri Kuznetsov 4ff67f11ed yest label check 2024-10-07 11:14:27 +03:00
Yuri Kuznetsov 58cf137237 Yesterday abbr 2024-10-07 11:12:21 +03:00
Yuri Kuznetsov 287488f49e email move impr 2024-10-06 16:36:19 +03:00
Yuri Kuznetsov b917ad84aa dropdown icons soft color 2024-10-06 10:02:42 +03:00
Yuri Kuznetsov b882cc0ba0 dashlet actions dividers 2024-10-06 09:59:53 +03:00
Yuri Kuznetsov 422162eba3 ref 2024-10-06 09:49:04 +03:00
Yuri Kuznetsov 15b2ba3f3f fix test 2024-10-05 14:28:17 +03:00
Yuri Kuznetsov 7969d6aa91 fix upgrade ID 2024-10-05 14:20:18 +03:00
Yuri Kuznetsov 34d0ea1114 url attribute emailId 2024-10-05 12:52:12 +03:00
Yuri Kuznetsov 86abdeb759 fullFormUrl option 2024-10-05 12:48:40 +03:00
Yuri Kuznetsov 36f2c14fda cleanup 2024-10-05 12:28:03 +03:00
Yuri Kuznetsov 964180ed24 email assignment notification 2024-10-05 11:31:45 +03:00
Yuri Kuznetsov 805a648145 email assignmed users view 2024-10-05 11:31:33 +03:00
Yuri Kuznetsov 59c13169a2 cleanup 2024-10-05 10:39:08 +03:00
Yuri Kuznetsov a645bb7016 fix test 2024-10-05 10:17:54 +03:00
Yuri Kuznetsov f3c7fa51ac BaseEntity: array to string 2024-10-05 10:17:46 +03:00
Yuri Kuznetsov dbaf3acaa3 email hash fields proper type 2024-10-05 10:04:42 +03:00
Yuri Kuznetsov 7ef73cc75a BaseEntity: object to string case prevent error 2024-10-05 10:04:22 +03:00
Yuri Kuznetsov fdc2e601d2 BaseEntity: cast to string 2024-10-05 09:56:16 +03:00
Yuri Kuznetsov a67b93cec0 noLabel 2024-10-04 22:18:35 +03:00
Yuri Kuznetsov 22c647c593 complex text check if string 2024-10-04 19:49:41 +03:00
Yuri Kuznetsov a7a79eda46 tabs ref 2024-10-04 16:35:34 +03:00
Yuri Kuznetsov df4e190e05 forbid Home entity type 2024-10-04 16:02:13 +03:00
Yuri Kuznetsov 2e5f05d52e global search ui ref 2024-10-04 15:29:34 +03:00
Yuri Kuznetsov 58f819aeb9 docs, cs 2024-10-04 12:54:59 +03:00
Yuri Kuznetsov 225835f001 ref 2024-10-04 12:17:05 +03:00
Yuri Kuznetsov b353ad1555 set held notify 2024-10-04 12:10:43 +03:00
Yuri Kuznetsov 12869c1485 Merge branch 'fix' 2024-10-04 11:44:01 +03:00
Yuri Kuznetsov 8b17c62d83 schema 2024-10-04 11:24:51 +03:00
Yuri Kuznetsov b0c2dda498 email: mark as read shortcut 2024-10-04 10:30:11 +03:00
Yuri Kuznetsov 9a9e502fa7 formula function autocomplete impr 2024-10-03 16:41:07 +03:00
Yuri Kuznetsov 7509fc07a7 remove unsafe 2024-10-03 16:35:10 +03:00
Yuri Kuznetsov 07bc909032 formula markdown transform 2024-10-03 16:33:10 +03:00
Yuri Kuznetsov cd469903d2 preview small 2024-10-03 14:23:03 +03:00
Yuri Kuznetsov 02ab3237d4 jsdocs 2024-10-03 14:16:12 +03:00
Yuri Kuznetsov 49d1f2706e bin/command x public permission 2024-10-03 13:01:00 +03:00
Yurii Kuznietsov 4853f38774 Update README.md 2024-10-03 11:55:24 +03:00
Yuri Kuznetsov 4193034b51 quote reply extra new line 2024-10-03 09:57:02 +03:00
Yuri Kuznetsov 9491296c2a quote reply timeout 2024-10-02 20:21:35 +03:00
Yuri Kuznetsov f031635574 quote reply scroll 2024-10-02 16:01:22 +03:00
Yuri Kuznetsov 7ae0d22de0 note status update notification superParent load 2024-10-02 12:12:10 +03:00
Yuri Kuznetsov fabd2ed605 emails all folder hide some mass actions 2024-10-02 09:46:52 +03:00
Yuri Kuznetsov 38904f5dad removeDisabled list-related 2024-10-01 16:38:05 +03:00
Yuri Kuznetsov 5725cfd3ab related list remove disabled 2024-10-01 16:36:06 +03:00
Yuri Kuznetsov 85a3eb2f41 cs 2024-10-01 11:13:57 +03:00
Yuri Kuznetsov 2be7d6fc6f bottom panels detail small layout class 2024-10-01 11:13:44 +03:00
Yuri Kuznetsov 47957883e0 ownership checker, only one field check 2024-10-01 11:03:48 +03:00
Yuri Kuznetsov 10965a895c after:related-change:{link} event 2024-09-30 13:35:21 +03:00
Yuri Kuznetsov 9a50c23cb9 remove mistakenly added file 2024-09-30 11:40:03 +03:00
Yuri Kuznetsov 3f678e28f4 stream panel ref 2024-09-30 10:40:44 +03:00
Yuri Kuznetsov ef4df5a22e stream panel ref 2024-09-30 10:29:02 +03:00
Yuri Kuznetsov 143f4db34b stream panel update in modal 2024-09-30 10:25:32 +03:00
Yuri Kuznetsov 3d02a5e999 Merge branch 'fix' 2024-09-30 10:16:54 +03:00
Yuri Kuznetsov 92cd805215 entity provider get 2024-09-28 10:35:50 +03:00
Yuri Kuznetsov db61a8bd9c merge 2024-09-27 19:44:14 +03:00
Yuri Kuznetsov 809bb2648c acl cleanup 2024-09-27 17:42:55 +03:00
Yuri Kuznetsov 147ed20647 fix schema 2024-09-27 17:01:46 +03:00
Yuri Kuznetsov 6ed7b52cc5 ref, cleanup 2024-09-27 16:50:27 +03:00
Yuri Kuznetsov 5cf4442b0d todo comments 2024-09-27 16:21:00 +03:00
Yuri Kuznetsov 30af7e02ca test fix 2024-09-27 12:49:57 +03:00
Yuri Kuznetsov a7e7204ea9 test fix 2024-09-27 12:42:10 +03:00
Yuri Kuznetsov da55b4933d acl check scope true of enabled and all no 2024-09-27 12:36:19 +03:00
Yuri Kuznetsov e8a8af59d9 role: lowest by default when enabling 2024-09-27 10:07:40 +03:00
Yuri Kuznetsov f74c55c758 Merge branch 'fix' 2024-09-26 10:15:19 +03:00
Andrew Fontana c972105d47 Fix compose.js super.afterSave (#3164)
This pull request fixes compose.js file where the afterSave() method was incorrectly calling super.afterRender() instead of super.afterSave().

When this was still an AMD module it was calling Dep.prototype.afterSave.call(this);

https://github.com/espocrm/espocrm/commit/d7063a914f9d0112b1905fe70245b493c0c99a4d#diff-117135453cb4900bd25d798364599ab10aa07e35722300e367a69b9df90e85a3L216
2024-09-26 09:46:41 +03:00
Yuri Kuznetsov 94484e2970 acl dependency foreign field 2024-09-25 20:07:09 +03:00
Yuri Kuznetsov 4a22fea469 dont quote empty selection 2024-09-25 12:12:31 +03:00
Yuri Kuznetsov fdf0c14ef9 ref 2024-09-25 11:29:17 +03:00
Yuri Kuznetsov a2e6d1553c note date yesterday 2024-09-25 10:55:11 +03:00
Yuri Kuznetsov af1e34e407 check post not empty 2024-09-25 09:56:56 +03:00
Yuri Kuznetsov f9efca0523 quote reply selected 2024-09-25 09:56:23 +03:00
Yuri Kuznetsov 23f3571059 cleanup 2024-09-24 18:06:08 +03:00
Yuri Kuznetsov 611e00fdb7 stream quote reply 2024-09-24 17:48:51 +03:00
Yuri Kuznetsov e4dbe253c2 list: disaply top bar if no data 2024-09-24 15:47:52 +03:00
Yuri Kuznetsov 34d69e97f1 list cateogories ref 2024-09-24 15:33:11 +03:00
Yuri Kuznetsov 9c68fa2d66 fix email reply date sent missing year 2024-09-24 15:23:14 +03:00
Yuri Kuznetsov ad0f01f81b comment 2024-09-24 15:04:06 +03:00
Yuri Kuznetsov c3b0695482 list view rootData 2024-09-24 15:03:40 +03:00
Yuri Kuznetsov ab4a6242f9 email return after delete fix 2024-09-24 13:14:29 +03:00
Yuri Kuznetsov bc1b40475e cs 2024-09-24 13:03:53 +03:00
Yuri Kuznetsov e44fc9e619 js ref 2024-09-24 10:30:00 +03:00
Yuri Kuznetsov 62393f6e9e fix description 2024-09-23 19:20:55 +03:00
Yuri Kuznetsov e51f0d9bbe ref 2024-09-23 17:31:01 +03:00
Yuri Kuznetsov 3ad7ad51b9 link manager: do not create noLoad linkMultiple 2024-09-23 17:28:44 +03:00
Yuri Kuznetsov 8dd6f85ba5 comment 2024-09-23 16:47:07 +03:00
Yuri Kuznetsov 3f0da5b9fa show create button for readonly link if foreign belongs-to or link-multiple 2024-09-23 16:44:10 +03:00
Yuri Kuznetsov 14ac2892ae fix relation, stub check 2024-09-23 16:26:17 +03:00
Yuri Kuznetsov cad8e954d6 link manager: clear cache 2024-09-23 15:45:12 +03:00
Yuri Kuznetsov 459f53efa5 link read only param editable 2024-09-23 15:21:32 +03:00
Yuri Kuznetsov 8e4900b487 link manager: dropdown 2024-09-23 12:50:12 +03:00
Yuri Kuznetsov 1f87489055 style change 2024-09-23 12:40:49 +03:00
Yuri Kuznetsov 03642ce8e3 link manager: show type if no foreign 2024-09-23 12:33:45 +03:00
Yuri Kuznetsov f46d291c90 link manager table ui change 2024-09-23 12:11:02 +03:00
Yuri Kuznetsov 404f56bf6c link-manager: link links without foreign 2024-09-23 11:55:33 +03:00
Yuri Kuznetsov 8a9b1c06c8 cs, ref 2024-09-23 11:46:07 +03:00
Yuri Kuznetsov 7a93911f61 read only link in schema 2024-09-23 10:50:15 +03:00
Yuri Kuznetsov fe7c39c604 max number of assigned users 2024-09-23 10:10:12 +03:00
Yuri Kuznetsov be0e720d99 ref 2024-09-22 11:03:42 +03:00
Yuri Kuznetsov 214a94da0e ref 2024-09-22 11:01:22 +03:00
Yuri Kuznetsov 490df708eb formula: record create/update support object 2024-09-21 19:23:42 +03:00
Yuri Kuznetsov b7ad32dc14 ref 2024-09-21 09:04:24 +03:00
Yuri Kuznetsov 8f51ce5c7e fix metadata path 2024-09-20 14:10:35 +03:00
Yuri Kuznetsov e4e61cf84c assigned users autocomplete self 2024-09-20 11:17:00 +03:00
Yuri Kuznetsov 6b2fff5634 ref 2024-09-20 11:15:13 +03:00
Yuri Kuznetsov 9afcc3ffa7 remove hook 2024-09-20 11:07:51 +03:00
Yuri Kuznetsov 9bda6dc243 skip assigned users if link already exists 2024-09-20 10:53:36 +03:00
Yuri Kuznetsov dd06a51ae0 assigned users notes 2024-09-19 17:55:58 +03:00
Yuri Kuznetsov b752f43ee9 multiple assigned users parameter 2024-09-19 15:37:49 +03:00
Yuri Kuznetsov 60fc6279ff ref 2024-09-19 11:06:30 +03:00
Yuri Kuznetsov 3120e7f41a jscondig include 2024-09-18 22:16:14 +03:00
Yuri Kuznetsov cfca78e233 mass email: queue item ID placeholder 2024-09-18 15:21:38 +03:00
Yuri Kuznetsov 7bcd5b5bdb import: skip id if empty string 2024-09-18 13:02:50 +03:00
Yuri Kuznetsov 92d164d3d3 iframe a hover underline 2024-09-18 11:28:34 +03:00
Yuri Kuznetsov 4194c4115d ref, docs 2024-09-18 10:45:27 +03:00
Yuri Kuznetsov 8a242e0628 added direction 2024-09-17 14:52:32 +03:00
Yuri Kuznetsov fecfe3bc96 cleanup transpiled dir before build 2024-09-17 14:44:49 +03:00
Yuri Kuznetsov e392dbb1b4 do not include js sources 2024-09-17 14:16:58 +03:00
Yuri Kuznetsov 4ca35da041 Merge branch 'fix' 2024-09-17 11:22:38 +03:00
Yuri Kuznetsov 7118e08493 Merge branch 'fix' 2024-09-17 09:59:59 +03:00
Yuri Kuznetsov 366d18a5c9 email template getAttachments method 2024-09-16 17:04:37 +03:00
Yuri Kuznetsov b055592d2b setFile method 2024-09-16 17:03:09 +03:00
Yuri Kuznetsov ef97427e6b getFile method 2024-09-16 17:02:18 +03:00
Yuri Kuznetsov cd9081a542 getAttachments method 2024-09-16 16:59:35 +03:00
Yuri Kuznetsov b9b2a2d071 ref 2024-09-16 16:30:08 +03:00
Yuri Kuznetsov f0ee8a1de4 phone/email: set primary on save 2024-09-16 16:28:08 +03:00
Yuri Kuznetsov 067765d9b5 ref 2024-09-16 16:24:23 +03:00
dependabot[bot] cfbc3ec8e0 Bump body-parser and express (#3152)
Bumps [body-parser](https://github.com/expressjs/body-parser) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `body-parser` from 1.20.2 to 1.20.3
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3)

Updates `express` from 4.19.2 to 4.21.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 16:13:47 +03:00
dependabot[bot] 15b2ae4586 Bump send and express (#3150)
Bumps [send](https://github.com/pillarjs/send) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `send` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/pillarjs/send/releases)
- [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md)
- [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0)

Updates `express` from 4.19.2 to 4.21.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)

---
updated-dependencies:
- dependency-name: send
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 16:12:46 +03:00
Yuri Kuznetsov 6be328c19e update dompdf to 3.0 2024-09-16 16:07:04 +03:00
Yuri Kuznetsov 38216344db using binary comparison 2024-09-16 15:08:42 +03:00
Yuri Kuznetsov 69e2bade3d fix doc 2024-09-16 14:50:53 +03:00
Yuri Kuznetsov 3c57b7e39e app secrets 2024-09-16 14:33:39 +03:00
Yuri Kuznetsov 4ff8369180 language allow all for admin 2024-09-16 11:19:39 +03:00
Yuri Kuznetsov 3a3d872e4e ref 2024-09-16 10:03:56 +03:00
Yuri Kuznetsov 19d2465ebd jsdoc 2024-09-16 10:03:45 +03:00
Yuri Kuznetsov 3ec3035c7e ref 2024-09-16 09:47:50 +03:00
Yuri Kuznetsov f3817e26fc ref 2024-09-16 09:34:45 +03:00
Yuri Kuznetsov d9fb9b8bd5 cleanup, cs 2024-09-16 09:13:16 +03:00
Yurii Kuznietsov debd0f700e duplicate-query-optimization (#3147) 2024-09-16 09:10:08 +03:00
Yuri Kuznetsov aced889566 ref 2024-09-15 19:32:40 +03:00
Yuri Kuznetsov 3d12673c28 ref 2024-09-15 19:10:52 +03:00
Yuri Kuznetsov b5125d2d54 ref 2024-09-15 19:06:27 +03:00
Yuri Kuznetsov af7d88dd6b RelationQueryHelper 2024-09-15 14:23:12 +03:00
Yuri Kuznetsov e211147225 ref 2024-09-15 13:48:58 +03:00
Yuri Kuznetsov 900898bb41 address search no distinct 2024-09-15 13:47:32 +03:00
Yuri Kuznetsov d70ef1e6cd cs 2024-09-15 13:29:15 +03:00
Yuri Kuznetsov 8796693613 ref 2024-09-15 13:22:43 +03:00
Yuri Kuznetsov 443a1b01a0 ref 2024-09-15 13:21:26 +03:00
Yuri Kuznetsov 5d58434618 ref 2024-09-15 13:20:10 +03:00
Yuri Kuznetsov d051a52750 cs 2024-09-15 13:18:27 +03:00
Yuri Kuznetsov 9e30e60fb1 cs 2024-09-15 13:01:35 +03:00
Yuri Kuznetsov 7d5ceb3c61 css fix 2024-09-15 10:37:47 +03:00
Yuri Kuznetsov 486a25e0ce cleanup 2024-09-15 09:54:42 +03:00
Yuri Kuznetsov 18df5ca2e1 user in team filter no distinct 2024-09-15 09:53:44 +03:00
Yuri Kuznetsov a76855d8d4 duplicate finder limit 5 2024-09-14 15:28:02 +03:00
Yuri Kuznetsov 180e6ea3c8 ORM: findOne restore params 2024-09-14 15:26:13 +03:00
Yuri Kuznetsov 8e997e64f3 cleanup 2024-09-14 15:04:00 +03:00
Yuri Kuznetsov 6340532f99 fix tests 2024-09-14 14:22:02 +03:00
Yuri Kuznetsov cede653661 Merge branch 'fix' 2024-09-14 10:49:50 +03:00
Yuri Kuznetsov 2eec1f5a7e fix tests 2024-09-14 10:43:52 +03:00
Yuri Kuznetsov 2b159db197 text filter fields label whitespace 2024-09-14 10:20:38 +03:00
Yuri Kuznetsov d8ff7ca6b0 ref 2024-09-14 10:13:47 +03:00
Yuri Kuznetsov 9302c3de01 portal access filter ref, no distinct 2024-09-14 09:53:35 +03:00
Yuri Kuznetsov 744331e87d email/phone is empty no distinct 2024-09-13 21:14:11 +03:00
Yuri Kuznetsov 61f60504fb email/phone where changes, no distinct 2024-09-13 20:59:11 +03:00
Yuri Kuznetsov 46d69618d5 orm custom where array fix, test 2024-09-13 20:44:49 +03:00
Yuri Kuznetsov 416a4ec755 distinct 2024-09-13 17:15:24 +03:00
Yuri Kuznetsov 2388b7a30b categories filter no distinct 2024-09-13 17:00:38 +03:00
Yuri Kuznetsov c85f7f96ce no distinct, ref 2024-09-13 16:31:00 +03:00
Yuri Kuznetsov cde2d83fa7 no distinct, ref 2024-09-13 16:15:58 +03:00
Yuri Kuznetsov 9ab1d41c7a no distinct 2024-09-13 15:56:13 +03:00
Yuri Kuznetsov dcb76725fd no distinct 2024-09-13 15:54:48 +03:00
Yuri Kuznetsov 18f1bbb655 no distinct, ref 2024-09-13 15:48:30 +03:00
Yuri Kuznetsov aa09d7dde6 email search by address change 2024-09-13 15:44:54 +03:00
Yuri Kuznetsov bb2d1650a8 ref 2024-09-13 15:03:03 +03:00
Yuri Kuznetsov 610d7215c8 email: text filter no distinct 2024-09-13 14:45:34 +03:00
Yuri Kuznetsov 1fad687048 docs fix 2024-09-13 13:54:50 +03:00
Yuri Kuznetsov 865c50a3e6 select: column filter no distinct 2024-09-13 13:49:49 +03:00
Yuri Kuznetsov 2b4d225a83 cs 2024-09-13 13:35:49 +03:00
Yuri Kuznetsov baa671ca6a select: do not apply distinct for array filter 2024-09-13 13:32:59 +03:00
Yuri Kuznetsov a84ab0637f ref 2024-09-13 13:27:59 +03:00
Yuri Kuznetsov a50ed3df3d select many test 2024-09-13 12:57:31 +03:00
Yuri Kuznetsov 43bd164370 test ref 2024-09-13 12:23:38 +03:00
Yuri Kuznetsov 9aa98e22f0 select where subquery for has-many relations 2024-09-13 11:50:50 +03:00
Yuri Kuznetsov b5843c1b37 fix headers 2024-09-12 16:01:46 +03:00
Yuri Kuznetsov ab581a4fae starred in list 2024-09-12 15:55:38 +03:00
Yuri Kuznetsov 210cf03bcd Merge branch 'fix' 2024-09-12 13:01:52 +03:00
Yuri Kuznetsov c0ef13c7f4 select: global additional appliers 2024-09-12 11:12:17 +03:00
Yuri Kuznetsov 7390b1674f ref 2024-09-11 20:35:35 +03:00
Yuri Kuznetsov 112c2578e9 ref 2024-09-11 16:24:31 +03:00
Yuri Kuznetsov 76318ada9f Merge branch 'fix' 2024-09-11 15:24:18 +03:00
Yuri Kuznetsov 103c6a7068 ref 2024-09-11 13:40:42 +03:00
Yuri Kuznetsov 9ee39b5d4a ref 2024-09-11 13:29:43 +03:00
Yuri Kuznetsov 342967338b conver lead throw exceptions 2024-09-11 12:29:57 +03:00
Yuri Kuznetsov ba0a455dc4 ref 2024-09-10 21:46:50 +03:00
Yuri Kuznetsov 350ae24601 ref 2024-09-10 13:38:23 +03:00
Yuri Kuznetsov 568fe32d7c email template insert field impr 2024-09-10 13:33:11 +03:00
Yuri Kuznetsov d0435a6653 fix variables, ignore utility 2024-09-10 13:30:42 +03:00
Yuri Kuznetsov 0389e35b2d variables whitespace 2024-09-10 13:26:09 +03:00
Yuri Kuznetsov b282ea4bd0 ref 2024-09-10 13:24:36 +03:00
Yuri Kuznetsov 23f750180f explicit model & collection properties in view 2024-09-10 13:10:22 +03:00
Yuri Kuznetsov 269d3e1210 jsdoc 2024-09-10 13:06:42 +03:00
Yuri Kuznetsov 0c1e98238e update bullbone 2024-09-10 12:45:37 +03:00
Yuri Kuznetsov 383f0a76ef update case followers field on contact change 2024-09-09 13:56:29 +03:00
Yuri Kuznetsov 73af378f2e Merge branch 'fix' 2024-09-09 13:41:18 +03:00
Yuri Kuznetsov bdc9505094 label General 2024-09-08 13:32:00 +03:00
Yuri Kuznetsov 4577735cf0 fix test 2024-09-07 10:23:44 +03:00
Yuri Kuznetsov bcd953a930 field manager: field link conflict check 2024-09-07 10:04:06 +03:00
Yuri Kuznetsov 96f5e55cc0 ref 2024-09-07 09:49:18 +03:00
Yuri Kuznetsov 3cba0c847d link manager: check field conflict 2024-09-07 09:45:08 +03:00
Yuri Kuznetsov a92e51dcbc cs 2024-09-07 09:43:43 +03:00
Anthony Andriano 4795837b2e allow failed sql queries to be logged separately from all sql queries (#3133) 2024-09-06 17:50:53 +03:00
Yuri Kuznetsov 14fbee86be hasOne: set foreign 2024-09-06 15:25:11 +03:00
Yuri Kuznetsov 095ba6108b setParent methods entity support 2024-09-06 15:06:43 +03:00
Yuri Kuznetsov ea222db0be has one test 2024-09-06 14:10:21 +03:00
Yuri Kuznetsov aa4110fd85 orm set relations dev, tests 2024-09-06 13:54:14 +03:00
Yuri Kuznetsov 3cc9322d0d orm relations save 2024-09-06 11:52:08 +03:00
Yuri Kuznetsov a5422cc33c orm relations no collection 2024-09-06 09:58:28 +03:00
Yuri Kuznetsov 11d3e268f6 cs 2024-09-06 09:46:01 +03:00
Yuri Kuznetsov fa2dc75ddd ORM relation setting foreign attributes 2024-09-05 20:42:19 +03:00
Yuri Kuznetsov d9792ae9dd relationship save ref 2024-09-05 20:41:47 +03:00
Yuri Kuznetsov 49ee0184ae ref 2024-09-05 17:39:18 +03:00
Yuri Kuznetsov d66beeff24 docs 2024-09-05 17:17:42 +03:00
Yuri Kuznetsov 9fb49b339d prevent non empty category removal 2024-09-05 15:47:28 +03:00
Yuri Kuznetsov 55cdab7008 cs 2024-09-05 15:25:14 +03:00
Yuri Kuznetsov 5edb2f279c remove laminas-crypt 2024-09-05 14:53:03 +03:00
dependabot[bot] 7da8b8642b Bump phpoffice/phpspreadsheet from 1.16.0 to 1.29.1 (#3136)
Bumps [phpoffice/phpspreadsheet](https://github.com/PHPOffice/PhpSpreadsheet) from 1.16.0 to 1.29.1.
- [Release notes](https://github.com/PHPOffice/PhpSpreadsheet/releases)
- [Changelog](https://github.com/PHPOffice/PhpSpreadsheet/blob/1.29.1/CHANGELOG.md)
- [Commits](https://github.com/PHPOffice/PhpSpreadsheet/compare/1.16.0...1.29.1)

---
updated-dependencies:
- dependency-name: phpoffice/phpspreadsheet
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 14:50:46 +03:00
Yuri Kuznetsov 3dc63c4888 list settings fields label 2024-09-05 14:50:03 +03:00
Yuri Kuznetsov 7ab321ed20 remove deleteId 2024-09-05 14:46:18 +03:00
Yuri Kuznetsov 5138fe5996 Merge branch 'fix' 2024-09-05 14:44:06 +03:00
Yuri Kuznetsov f978f07a24 message change 2024-09-05 13:06:38 +03:00
Yuri Kuznetsov 5a76d44001 rebuild exception trace 2024-09-05 13:03:17 +03:00
Yuri Kuznetsov 0122de61be upgrade rebuild error exception trace 2024-09-05 12:51:13 +03:00
Yuri Kuznetsov a7bd9f2741 upgrade error previous exception 2024-09-05 12:50:09 +03:00
Yuri Kuznetsov a2668bb3a2 message change 2024-09-05 12:17:50 +03:00
Yuri Kuznetsov 93bf344b5e app params load 2024-09-05 12:00:12 +03:00
Yuri Kuznetsov de105b35a4 jsdoc 2024-09-05 11:03:17 +03:00
Yuri Kuznetsov 105724140e ref jsdoc 2024-09-05 10:43:53 +03:00
Yuri Kuznetsov 63ffc35775 Merge branch 'fix' 2024-09-04 15:59:22 +03:00
Yurii 4589fa6249 ref 2024-09-03 14:26:56 +03:00
Yuri Kuznetsov db84792c6a Merge branch 'fix' 2024-09-03 11:37:48 +03:00
Yuri Kuznetsov f59543658b ignore 2024-09-03 10:51:49 +03:00
Yuri Kuznetsov 3c883e805e update phpstan 2024-09-03 10:34:48 +03:00
Yuri Kuznetsov cea04482c7 fix cache 2024-09-03 10:34:34 +03:00
Yuri Kuznetsov d7913e49f5 ref 2024-09-03 10:23:54 +03:00
Yuri Kuznetsov bd60d562f5 Merge branch 'fix' 2024-09-03 09:14:19 +03:00
Yuri Kuznetsov 120092de43 relations setting 2024-09-02 12:21:25 +03:00
Yuri Kuznetsov 1b34ede299 skip link multiple save if not changed 2024-09-02 12:21:25 +03:00
Yuri Kuznetsov 49e954c188 test ref, change 2024-09-02 12:21:25 +03:00
Yuri Kuznetsov 11981c8018 link-multiple check 2024-09-02 12:21:25 +03:00
Yuri Kuznetsov 49b67db42d relation order 2024-09-02 12:21:24 +03:00
Yuri Kuznetsov bd71147b08 entity get related, integration test 2024-09-02 12:21:24 +03:00
Yuri Kuznetsov 5d3d2097c7 change return type 2024-09-02 12:21:24 +03:00
Yuri Kuznetsov 0062e4f737 clone collection 2024-09-02 12:21:24 +03:00
Yuri Kuznetsov 04794d656c orm relations 2024-09-02 12:21:21 +03:00
4510 changed files with 59264 additions and 44658 deletions
+12
View File
@@ -1,18 +1,30 @@
## Issues
#### Guidelines
When reporting a possible bug, provide detail steps so that we will be able
to reproduce the issue. Steps to reproduce should be clear and unambiguous. Try not to use phrases like "very big bug",
"huge issue", "useless feature", etc. No need to use exclamation marks as well.
#### No support
Note that we don't provide developer help or any kind of support on GitHub.
For this, please use our [forum](https://forum.espocrm.com).
#### Forum
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.
#### 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.
The maintainers have right to close issues without explanation.
#### Off-topic
As we reference GitHub issues in release notes, we strive to keep them free of off-topic comments.
## 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).
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ['8.1', '8.3']
php-versions: ['8.2', '8.4']
branches: ['master']
steps:
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
php-versions: ['8.1', '8.2', '8.3']
php-versions: ['8.2', '8.3', '8.4']
steps:
- uses: actions/checkout@v2
+57
View File
@@ -341,6 +341,25 @@
</SchemaInfo>
</value>
</entry>
<entry key="metadata/app/clientRecord">
<value>
<SchemaInfo>
<option name="generatedName" value="New Schema" />
<option name="name" value="metadata/app/clientRecord" />
<option name="relativePathToSchema" value="schema/metadata/app/clientRecord.json" />
<option name="schemaVersion" value="JSON Schema version 7" />
<option name="patterns">
<list>
<Item>
<option name="pattern" value="true" />
<option name="path" value="*/Resources/metadata/app/clientRecord.json" />
<option name="mappingKind" value="Pattern" />
</Item>
</list>
</option>
</SchemaInfo>
</value>
</entry>
<entry key="metadata/app/clientRoutes">
<value>
<SchemaInfo>
@@ -1006,6 +1025,25 @@
</SchemaInfo>
</value>
</entry>
<entry key="metadata/app/reactions">
<value>
<SchemaInfo>
<option name="generatedName" value="New Schema" />
<option name="name" value="metadata/app/reactions" />
<option name="relativePathToSchema" value="schema/metadata/app/reactions.json" />
<option name="schemaVersion" value="JSON Schema version 7" />
<option name="patterns">
<list>
<Item>
<option name="pattern" value="true" />
<option name="path" value="*/Resources/metadata/app/reactions.json" />
<option name="mappingKind" value="Pattern" />
</Item>
</list>
</option>
</SchemaInfo>
</value>
</entry>
<entry key="metadata/app/rebuild">
<value>
<SchemaInfo>
@@ -1025,6 +1063,25 @@
</SchemaInfo>
</value>
</entry>
<entry key="metadata/app/record">
<value>
<SchemaInfo>
<option name="generatedName" value="New Schema" />
<option name="name" value="metadata/app/record" />
<option name="relativePathToSchema" value="schema/metadata/app/record.json" />
<option name="schemaVersion" value="JSON Schema version 7" />
<option name="patterns">
<list>
<Item>
<option name="pattern" value="true" />
<option name="path" value="*/Resources/metadata/app/record.json" />
<option name="mappingKind" value="Pattern" />
</Item>
</list>
</option>
</SchemaInfo>
</value>
</entry>
<entry key="metadata/app/recordId">
<value>
<SchemaInfo>
+18
View File
@@ -184,6 +184,12 @@
],
"url": "./schema/metadata/app/client.json"
},
{
"fileMatch": [
"*/Resources/metadata/app/clientRecord.json"
],
"url": "./schema/metadata/app/clientRecord.json"
},
{
"fileMatch": [
"*/Resources/metadata/app/clientRoutes.json"
@@ -394,12 +400,24 @@
],
"url": "./schema/metadata/app/portalContainerServices.json"
},
{
"fileMatch": [
"*/Resources/metadata/app/reactions.json"
],
"url": "./schema/metadata/app/reactions.json"
},
{
"fileMatch": [
"*/Resources/metadata/app/rebuild.json"
],
"url": "./schema/metadata/app/rebuild.json"
},
{
"fileMatch": [
"*/Resources/metadata/app/record.json"
],
"url": "./schema/metadata/app/record.json"
},
{
"fileMatch": [
"*/Resources/metadata/app/recordId.json"
+54 -25
View File
@@ -2,7 +2,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -107,6 +107,38 @@ module.exports = grunt => {
};
});
const cleanupBeforeFinal = [
'build/tmp/custom/Espo/Custom/*',
'!build/tmp/custom/Espo/Custom/.htaccess',
'!build/tmp/custom/Espo/Modules',
'build/tmp/custom/Espo/Modules/*',
'!build/tmp/custom/Espo/Modules/.htaccess',
'build/tmp/install/config.php',
'build/tmp/vendor/*/*/.git',
'build/tmp/client/custom/*',
'!build/tmp/client/custom/modules',
'build/tmp/client/custom/modules/*',
'!build/tmp/client/custom/modules/dummy.txt',
'build/tmp/client/modules/crm/src',
'build/tmp/client/lib/original/*',
'build/tmp/client/modules/crm/lib/original',
'!build/tmp/client/lib/original/espo.js',
'!build/tmp/client/lib/original/espo-*.js',
'!build/tmp/client/lib/original/espo-funnel-chart.js',
'build/tmp/client/lib/transpiled',
];
const cleanupBeforeFinalTest = cleanupBeforeFinal.filter(it => {
return ![
'!build/tmp/custom/Espo/Modules',
'build/tmp/custom/Espo/Modules/*',
'!build/tmp/custom/Espo/Modules/.htaccess',
'!build/tmp/client/custom/modules',
'build/tmp/client/custom/modules/*',
'!build/tmp/client/custom/modules/dummy.txt',
].includes(it)
})
grunt.initConfig({
pkg: pkg,
@@ -122,6 +154,9 @@ module.exports = grunt => {
},
clean: {
transpiled: [
'client/lib/transpiled/**',
],
start: [
'build/EspoCRM-*',
'client/lib/*',
@@ -130,25 +165,8 @@ module.exports = grunt => {
],
final: ['build/tmp'],
release: ['build/EspoCRM-' + pkg.version],
beforeFinal: {
src: [
'build/tmp/custom/Espo/Custom/*',
'!build/tmp/custom/Espo/Custom/.htaccess',
'!build/tmp/custom/Espo/Modules',
'build/tmp/custom/Espo/Modules/*',
'!build/tmp/custom/Espo/Modules/.htaccess',
'build/tmp/install/config.php',
'build/tmp/vendor/*/*/.git',
'build/tmp/client/custom/*',
'!build/tmp/client/custom/modules',
'build/tmp/client/custom/modules/*',
'!build/tmp/client/custom/modules/dummy.txt',
'build/tmp/client/lib/original/espo.js',
'build/tmp/client/lib/original/espo-*.js',
'!build/tmp/client/lib/original/espo-funnel-chart.js',
'build/tmp/client/lib/transpiled',
]
},
beforeFinal: {src: cleanupBeforeFinal},
beforeFinalTest: {src: cleanupBeforeFinalTest},
},
less: lessData,
@@ -188,7 +206,6 @@ module.exports = grunt => {
expand: true,
cwd: 'client',
src: [
'src/**',
'res/**',
'fonts/**',
'modules/**',
@@ -422,7 +439,7 @@ module.exports = grunt => {
});
cp.execSync(
`find bin -type f -exec chmod 754 {} +`,
`find bin -type f -exec chmod 755 {} +`,
{
cwd: dirPath,
}
@@ -502,6 +519,7 @@ module.exports = grunt => {
'less',
'cssmin',
'prepare-lib-original',
'clean:transpiled',
'transpile',
'bundle',
'bundle-templates',
@@ -511,7 +529,7 @@ module.exports = grunt => {
'uglify:lib',
]);
grunt.registerTask('offline', [
const offline = [
'clean:start',
'mkdir:tmp',
'internal',
@@ -523,7 +541,18 @@ module.exports = grunt => {
'chmod-folders',
'chmod-multiple',
'clean:final',
]);
];
const offlineTest = offline.map(it => {
if (it === 'clean:beforeFinal') {
return 'clean:beforeFinalTest'
}
return it;
})
grunt.registerTask('offline', offline);
grunt.registerTask('offline-test', offlineTest);
grunt.registerTask('build', [
'composer-install',
@@ -568,6 +597,6 @@ module.exports = grunt => {
grunt.registerTask('test', [
'composer-install-dev',
'npm-install',
'offline',
'offline-test',
]);
};
+5 -5
View File
@@ -2,8 +2,8 @@
[![PHPStan level 8](https://img.shields.io/badge/PHPStan-level%208-brightgreen)](#espocrm)
[EspoCRM](https://www.espocrm.com) is a free, open-source CRM platform designed to help organizations build and maintain strong customer relationships.
It provides a wide range of tools to store, organize, and manage leads, contacts, sales opportunities, marketing campaigns,
[EspoCRM](https://www.espocrm.com) is a free, open-source CRM platform designed to help organizations build and maintain strong customer relationships.
It provides a wide range of tools to store, organize, and manage leads, contacts, sales opportunities, marketing campaigns,
support cases, and more all business information in a simple and intuitive interface.
![Screenshot](https://user-images.githubusercontent.com/1006792/226094559-995dfd2a-a18f-4619-a21b-79a4e671990a.png)
@@ -19,9 +19,9 @@ You can try the CRM on an online [demo](https://www.espocrm.com/demo/).
### Requirements
* PHP 8.1 - 8.3;
* PHP 8.2 - 8.4;
* MySQL 5.7 (and later), or MariaDB 10.2 (and later);
* PostgreSQL 15 (and later) (beta, official support soon).
* PostgreSQL 15 (and later).
For more information about server configuration, see [this article](https://docs.espocrm.com/administration/server-configuration/).
@@ -29,7 +29,7 @@ For more information about server configuration, see [this article](https://docs
* **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 has a uncluttered, minimalist and very fast user inteface that is easy to navigate and has a short learning curve.
* **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?
+11 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -222,6 +222,16 @@ class Binding implements BindingProcessor
'Espo\\Core\\ExternalAccount\\ClientManager',
'externalAccountClientManager'
);
$binder->bindService(
'Espo\\Core\\WebSocket\\Submission',
'webSocketSubmission'
);
$binder->bindService(
'Espo\\Tools\\Stream\\Service',
'streamService'
);
}
private function bindCore(Binder $binder): void
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,6 +29,7 @@
namespace Espo\Classes\Acl\Attachment;
use Espo\Core\Name\Field;
use Espo\Entities\Attachment;
use Espo\Entities\Note;
use Espo\Entities\Settings;
@@ -58,25 +59,22 @@ class AccessChecker implements AccessEntityCREDChecker
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
/** @var Attachment $entity */
if ($entity->get('parentType') === Settings::ENTITY_TYPE) {
if ($entity->getParentType() === Settings::ENTITY_TYPE) {
// Allow the logo.
return true;
}
$parent = null;
$parentType = $entity->get('parentType');
$parentId = $entity->get('parentId');
$parentType = $entity->getParentType();
$parentId = $entity->getParent()?->getId();
$relatedType = $entity->get('relatedType');
$relatedId = $entity->get('relatedId');
$relatedType = $entity->getRelatedType();
$relatedId = $entity->getRelated()?->getId();
if ($parentId && $parentType) {
$parent = $this->entityManager->getEntityById($parentType, $parentId);
}
else if ($relatedId && $relatedType) {
} else if ($relatedId && $relatedType) {
$parent = $this->entityManager->getEntityById($relatedType, $relatedId);
}
@@ -95,8 +93,7 @@ class AccessChecker implements AccessEntityCREDChecker
if ($result !== null) {
return $result;
}
}
else if ($this->aclManager->checkEntity($user, $parent)) {
} else if ($this->aclManager->checkEntity($user, $parent)) {
if (
$entity->getTargetField() &&
!$this->aclManager->checkField($user, $parent->getEntityType(), $entity->getTargetField())
@@ -118,8 +115,8 @@ class AccessChecker implements AccessEntityCREDChecker
{
if ($note->getTargetType() === Note::TARGET_TEAMS) {
$intersect = array_intersect(
$note->getLinkMultipleIdList('teams'),
$user->getLinkMultipleIdList('teams')
$note->getLinkMultipleIdList(Field::TEAMS),
$user->getLinkMultipleIdList(Field::TEAMS)
);
if (count($intersect)) {
@@ -150,7 +147,7 @@ class AccessChecker implements AccessEntityCREDChecker
return null;
}
$parent = $this->entityManager->getEntity($note->getParentType(), $note->getParentId());
$parent = $this->entityManager->getEntityById($note->getParentType(), $note->getParentId());
if ($parent && $this->aclManager->checkEntity($user, $parent)) {
return true;
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,6 +29,7 @@
namespace Espo\Classes\Acl\Email;
use Espo\Core\Name\Field;
use Espo\Entities\User;
use Espo\Entities\Email;
use Espo\ORM\Entity;
@@ -100,12 +101,11 @@ class AccessChecker implements AccessEntityCREDSChecker
return true;
}
/** @var string[] $assignedUserIdList */
$assignedUserIdList = $entity->getLinkMultipleIdList('assignedUsers');
$assignedUserIdList = $entity->getLinkMultipleIdList(Field::ASSIGNED_USERS);
if (
count($assignedUserIdList) === 1 &&
$entity->hasLinkMultipleId('assignedUsers', $user->getId())
$entity->hasLinkMultipleId(Field::ASSIGNED_USERS, $user->getId())
) {
return true;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,19 +29,30 @@
namespace Espo\Classes\Acl\Email;
use Espo\Core\Acl\AssignmentChecker as AssignmentCheckerInterface;
use Espo\Entities\Email;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\Acl\DefaultAssignmentChecker;
class AssignmentChecker extends DefaultAssignmentChecker
/**
* @implements AssignmentCheckerInterface<Email>
*/
class AssignmentChecker implements AssignmentCheckerInterface
{
protected function isPermittedAssignedUser(User $user, Entity $entity): bool
{
return true;
}
public function __construct(
private AssignmentCheckerInterface\Helper $helper,
) {}
protected function isPermittedAssignedUsers(User $user, Entity $entity): bool
public function check(User $user, Entity $entity): bool
{
if ($entity->getAssignedUser() && !$this->helper->checkAssignedUser($user, $entity)) {
return false;
}
if ($entity->getTeams()->getIdList() !== [] && !$this->helper->checkTeams($user, $entity)) {
return false;
}
return true;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -34,7 +34,6 @@ use Espo\Core\AclManager;
use Espo\Entities\Email;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
/**
* @implements LinkChecker<Email, Entity>
@@ -43,7 +42,6 @@ use Espo\ORM\EntityManager;
class ParentLinkChecker implements LinkChecker
{
public function __construct(
private EntityManager $entityManager,
private AclManager $aclManager
) {}
@@ -53,24 +51,18 @@ class ParentLinkChecker implements LinkChecker
return true;
}
if (!$entity->getReplied()) {
return false;
}
$replied = $this->entityManager
->getRepositoryByClass(Email::class)
->getById($entity->getReplied()->getId());
$replied = $entity->getReplied();
if (!$replied) {
return false;
}
$parentLink = $replied->getParent();
$parent = $replied->getParent();
if (
!$parentLink ||
$parentLink->getId() !== $foreignEntity->getId() ||
$parentLink->getEntityType() !== $foreignEntity->getEntityType()
!$parent ||
$parent->getId() !== $foreignEntity->getId() ||
$parent->getEntityType() !== $foreignEntity->getEntityType()
) {
return false;
}
@@ -0,0 +1,67 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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\Email\LinkCheckers;
use Espo\Core\Acl\LinkChecker;
use Espo\Core\AclManager;
use Espo\Entities\Email;
use Espo\Entities\Team;
use Espo\Entities\User;
use Espo\ORM\Entity;
/**
* @implements LinkChecker<Email, Team>
* @noinspection PhpUnused
*/
class TeamsLinkChecker implements LinkChecker
{
public function __construct(
private AclManager $aclManager
) {}
public function check(User $user, Entity $entity, Entity $foreignEntity): bool
{
if ($this->aclManager->checkEntityRead($user, $foreignEntity)) {
return true;
}
$replied = $entity->getReplied();
if (!$replied) {
return false;
}
if ($replied->getTeams()->hasId($foreignEntity->getId())) {
return true;
}
return false;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -31,9 +31,7 @@ namespace Espo\Classes\Acl\Email;
use Espo\Entities\User;
use Espo\Entities\Email;
use Espo\ORM\Entity;
use Espo\Core\Acl\DefaultOwnershipChecker;
use Espo\Core\Acl\OwnershipOwnChecker;
use Espo\Core\Acl\OwnershipTeamChecker;
@@ -44,26 +42,20 @@ use Espo\Core\Acl\OwnershipTeamChecker;
*/
class OwnershipChecker implements OwnershipOwnChecker, OwnershipTeamChecker
{
private $defaultOwnershipChecker;
public function __construct(DefaultOwnershipChecker $defaultOwnershipChecker)
{
$this->defaultOwnershipChecker = $defaultOwnershipChecker;
}
public function __construct(private DefaultOwnershipChecker $defaultOwnershipChecker)
{}
public function checkOwn(User $user, Entity $entity): bool
{
/** @var Email $entity */
if ($user->getId() === $entity->get('assignedUserId')) {
if ($user->getId() === $entity->getAssignedUser()?->getId()) {
return true;
}
if ($user->getId() === $entity->get('createdById')) {
if ($user->getId() === $entity->getCreatedBy()?->getId()) {
return true;
}
if ($entity->hasLinkMultipleId('assignedUsers', $user->getId())) {
if ($entity->getAssignedUsers()->hasId($user->getId())) {
return true;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -31,6 +31,7 @@ namespace Espo\Classes\Acl\Note;
use Espo\Core\Acl\Permission;
use Espo\Core\Acl\Table;
use Espo\Core\Name\Field;
use Espo\Entities\Note;
use Espo\Entities\User;
use Espo\ORM\Entity;
@@ -84,7 +85,7 @@ class AccessChecker implements AccessEntityCREDChecker
return true;
}
$parent = $this->entityManager->getEntity($parentType, $parentId);
$parent = $this->entityManager->getEntityById($parentType, $parentId);
if ($parent && $this->aclManager->checkEntityStream($user, $parent)) {
return true;
@@ -128,7 +129,7 @@ class AccessChecker implements AccessEntityCREDChecker
}
if ($entity->getTargetType() === Note::TARGET_TEAMS) {
$targetTeamIdList = $entity->getLinkMultipleIdList('teams');
$targetTeamIdList = $entity->getLinkMultipleIdList(Field::TEAMS);
foreach ($user->getTeamIdList() as $teamId) {
if (in_array($teamId, $targetTeamIdList)) {
@@ -167,7 +168,7 @@ class AccessChecker implements AccessEntityCREDChecker
return false;
}
$createdAt = $entity->get('createdAt');
$createdAt = $entity->get(Field::CREATED_AT);
if (!$createdAt) {
return true;
@@ -184,8 +185,7 @@ class AccessChecker implements AccessEntityCREDChecker
if ($dt->format('U') > (new DateTime($createdAt))->format('U')) {
return false;
}
}
catch (Exception $e) {
} catch (Exception $e) {
return false;
}
@@ -209,7 +209,7 @@ class AccessChecker implements AccessEntityCREDChecker
return false;
}
$createdAt = $entity->get('createdAt');
$createdAt = $entity->get(Field::CREATED_AT);
if (!$createdAt) {
return true;
@@ -226,8 +226,7 @@ class AccessChecker implements AccessEntityCREDChecker
if ($dt->format('U') > (new DateTime($createdAt))->format('U')) {
return false;
}
}
catch (Exception $e) {
} catch (Exception $e) {
return false;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,6 +29,7 @@
namespace Espo\Classes\Acl\Team;
use Espo\Core\Name\Field;
use Espo\Entities\Team;
use Espo\Entities\User;
use Espo\ORM\Entity;
@@ -41,8 +42,7 @@ class OwnershipChecker implements OwnershipOwnChecker
{
public function checkOwn(User $user, Entity $entity): bool
{
/** @var string[] $userTeamIdList */
$userTeamIdList = $user->getLinkMultipleIdList('teams');
$userTeamIdList = $user->getLinkMultipleIdList(Field::TEAMS);
return in_array($entity->getId(), $userTeamIdList);
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,6 +29,7 @@
namespace Espo\Classes\Acl\User;
use Espo\Core\Name\Field;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\ORM\Entity as CoreEntity;
@@ -51,8 +52,8 @@ class OwnershipChecker implements OwnershipOwnChecker, OwnershipTeamChecker
assert($entity instanceof CoreEntity);
$intersect = array_intersect(
$user->getLinkMultipleIdList('teams'),
$entity->getLinkMultipleIdList('teams')
$user->getLinkMultipleIdList(Field::TEAMS),
$entity->getLinkMultipleIdList(Field::TEAMS)
);
if (count($intersect)) {
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -36,6 +36,7 @@ use Espo\Entities\User;
use Espo\Entities\WorkingTimeRange;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use Espo\ORM\Name\Attribute;
/**
* @implements AssignmentCheckerInterface<WorkingTimeRange>
@@ -73,7 +74,7 @@ class AssignmentChecker implements AssignmentCheckerInterface
$users = $this->entityManager
->getRDBRepositoryByClass(User::class)
->where(['id' => $entity->getUsers()->getIdList()])
->where([Attribute::ID => $entity->getUsers()->getIdList()])
->find();
foreach ($users as $targetUser) {
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -81,8 +81,7 @@ class AccessChecker implements AccessEntityCREDChecker
if ($parentId && $parentType) {
$parent = $this->entityManager->getEntityById($parentType, $parentId);
}
else if ($relatedId && $relatedType) {
} else if ($relatedId && $relatedType) {
$parent = $this->entityManager->getEntityById($relatedType, $relatedId);
}
@@ -101,8 +100,7 @@ class AccessChecker implements AccessEntityCREDChecker
if ($result !== null) {
return $result;
}
}
else if ($this->aclManager->checkEntity($user, $parent)) {
} else if ($this->aclManager->checkEntity($user, $parent)) {
if (
$entity->getTargetField() &&
!$this->aclManager->checkField($user, $parent->getEntityType(), $entity->getTargetField())
@@ -156,7 +154,7 @@ class AccessChecker implements AccessEntityCREDChecker
return null;
}
$parent = $this->entityManager->getEntity($note->getParentType(), $note->getParentId());
$parent = $this->entityManager->getEntityById($note->getParentType(), $note->getParentId());
if ($parent && $this->aclManager->checkEntity($user, $parent)) {
return true;
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,6 +29,7 @@
namespace Espo\Classes\AclPortal\Note;
use Espo\Core\Name\Field;
use Espo\Entities\Note;
use Espo\Entities\User;
use Espo\ORM\Entity;
@@ -137,7 +138,7 @@ class AccessChecker implements AccessEntityCREDChecker
return false;
}
$createdAt = $entity->get('createdAt');
$createdAt = $entity->get(Field::CREATED_AT);
if (!$createdAt) {
return true;
@@ -154,8 +155,7 @@ class AccessChecker implements AccessEntityCREDChecker
if ($dt->format('U') > (new DateTime($createdAt))->format('U')) {
return false;
}
}
catch (Exception $e) {
} catch (Exception $e) {
return false;
}
@@ -175,7 +175,7 @@ class AccessChecker implements AccessEntityCREDChecker
return false;
}
$createdAt = $entity->get('createdAt');
$createdAt = $entity->get(Field::CREATED_AT);
if (!$createdAt) {
return true;
@@ -192,8 +192,7 @@ class AccessChecker implements AccessEntityCREDChecker
if ($dt->format('U') > (new DateTime($createdAt))->format('U')) {
return false;
}
}
catch (Exception $e) {
} catch (Exception $e) {
return false;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -30,11 +30,14 @@
namespace Espo\Classes\AssignmentNotificators;
use Espo\Core\Field\DateTime;
use Espo\Core\Name\Field;
use Espo\Core\Notification\DefaultAssignmentNotificator;
use Espo\Entities\EmailAddress;
use Espo\Entities\EmailFolder;
use Espo\Modules\Crm\Entities\Account;
use Espo\Modules\Crm\Entities\Contact;
use Espo\Modules\Crm\Entities\Lead;
use Espo\ORM\Name\Attribute;
use Espo\Tools\Stream\Service as StreamService;
use Espo\Core\Notification\AssignmentNotificator;
use Espo\Core\Notification\AssignmentNotificator\Params;
@@ -56,25 +59,14 @@ class Email implements AssignmentNotificator
{
private const DAYS_THRESHOLD = 2;
private User $user;
private EntityManager $entityManager;
private UserEnabledChecker $userChecker;
private AclManager $aclManager;
private StreamService $streamService;
public function __construct(
User $user,
EntityManager $entityManager,
UserEnabledChecker $userChecker,
AclManager $aclManager,
StreamService $streamService
) {
$this->user = $user;
$this->entityManager = $entityManager;
$this->userChecker = $userChecker;
$this->aclManager = $aclManager;
$this->streamService = $streamService;
}
private User $user,
private EntityManager $entityManager,
private UserEnabledChecker $userChecker,
private AclManager $aclManager,
private StreamService $streamService,
private DefaultAssignmentNotificator $defaultAssignmentNotificator,
) {}
/**
* @param EmailEntity $entity
@@ -94,10 +86,19 @@ class Email implements AssignmentNotificator
return;
}
if ($params->getOption('isJustSent')) {
$previousUserIdList = [];
if (
$entity->getStatus() !== EmailEntity::STATUS_BEING_IMPORTED &&
!$this->streamService->checkIsEnabled(EmailEntity::ENTITY_TYPE)
) {
$this->defaultAssignmentNotificator->process(
$entity,
$params->withOption(DefaultAssignmentNotificator::OPTION_FORCE_ASSIGNED_USER, true)
);
}
else {
if ($params->getOption(EmailEntity::SAVE_OPTION_IS_JUST_SENT)) {
$previousUserIdList = [];
} else {
$previousUserIdList = $entity->getFetched('usersIds');
if (!is_array($previousUserIdList)) {
@@ -164,7 +165,7 @@ class Email implements AssignmentNotificator
if ($person) {
$data['personEntityType'] = $person->getEntityType();
$data['personEntityName'] = $person->get('name');
$data['personEntityName'] = $person->get(Field::NAME);
$data['personEntityId'] = $person->getId();
}
}
@@ -176,44 +177,26 @@ class Email implements AssignmentNotificator
}
if (empty($data['personEntityId'])) {
$data['fromString'] = Util::parseFromName($entity->getFromString());
$data['fromString'] = Util::parseFromName($entity->getFromString() ?? '');
if (empty($data['fromString']) && $from) {
$data['fromString'] = $from;
}
}
$parent = null;
$parentId = $entity->getParentId();
$parentType = $entity->getParentType();
if ($parentType && $parentId) {
$parent = $this->entityManager->getEntityById($parentType, $parentId);
}
$account = null;
$accountLink = $entity->getAccount();
if ($accountLink) {
$account = $this->entityManager->getEntityById(Account::ENTITY_TYPE, $accountLink->getId());
}
$parent = $entity->getParent();
$account = $entity->getAccount();
foreach ($userIdList as $userId) {
if (!$userId) {
continue;
}
if ($userIdFrom === $userId) {
continue;
}
if ($entity->getLinkMultipleColumn('users', EmailEntity::USERS_COLUMN_IN_TRASH, $userId)) {
continue;
}
if ($entity->getLinkMultipleColumn('users', EmailEntity::USERS_COLUMN_IS_READ, $userId)) {
if (
$entity->getUserColumnInTrash($userId) ||
$entity->getUserColumnIsRead($userId) ||
$entity->getUserSkipNotification($userId)
) {
continue;
}
@@ -222,10 +205,10 @@ class Email implements AssignmentNotificator
}
if (
$params->getOption('isBeingImported') ||
$params->getOption('isJustSent')
$params->getOption(EmailEntity::SAVE_OPTION_IS_BEING_IMPORTED) ||
$params->getOption(EmailEntity::SAVE_OPTION_IS_JUST_SENT)
) {
$folderId = $entity->getLinkMultipleColumn('users', EmailEntity::USERS_COLUMN_FOLDER_ID, $userId);
$folderId = $entity->getUserColumnFolderId($userId);
if (
$folderId &&
@@ -241,8 +224,7 @@ class Email implements AssignmentNotificator
}
}
/** @var ?User $user */
$user = $this->entityManager->getEntityById(User::ENTITY_TYPE, $userId);
$user = $this->entityManager->getRDBRepositoryByClass(User::class)->getById($userId);
if (!$user) {
continue;
@@ -258,7 +240,7 @@ class Email implements AssignmentNotificator
$isArchivedOrBeingImported =
$entity->getStatus() === EmailEntity::STATUS_ARCHIVED ||
$params->getOption('isBeingImported');
$params->getOption(EmailEntity::SAVE_OPTION_IS_BEING_IMPORTED);
if (
$isArchivedOrBeingImported &&
@@ -284,7 +266,7 @@ class Email implements AssignmentNotificator
'relatedId' => $entity->getId(),
'relatedType' => EmailEntity::ENTITY_TYPE,
])
->select(['id'])
->select([Attribute::ID])
->findOne();
if ($existing) {
+1 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
+4 -3
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -87,8 +87,9 @@ class Audit implements Cleanup
$scopeList = array_keys($this->metadata->get(['scopes']) ?? []);
$scopeList = array_filter($scopeList, function ($item) {
return $this->metadata->get(['scopes', $item, 'entity']) &&
!$this->metadata->get(['scopes', $item, 'stream']);
return $this->metadata->get("scopes.$item.entity") &&
!$this->metadata->get("scopes.$item.preserveAuditLog") &&
!$this->metadata->get("scopes.$item.stream");
});
return array_values($scopeList);
+1 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -31,6 +31,7 @@ namespace Espo\Classes\Cleanup;
use Espo\Core\Cleanup\Cleanup;
use Espo\Core\Field\DateTime;
use Espo\Core\Name\Field;
use Espo\Core\Utils\Config;
use Espo\Core\Utils\Metadata;
use Espo\Entities\StreamSubscription;
@@ -77,7 +78,7 @@ class Subscribers implements Cleanup
}
/** @var string $dateField */
$dateField = $data['dateField'] ?? 'createdAt';
$dateField = $data['dateField'] ?? Field::CREATED_AT;
/** @var ?string[] $statusList */
$statusList = $data['statusList'] ?? null;
/** @var ?string $statusField */
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -32,6 +32,7 @@ namespace Espo\Classes\ConsoleCommands;
use Espo\Core\Console\Command;
use Espo\Core\Console\Command\Params;
use Espo\Core\Console\IO;
use Espo\Core\Name\Field;
use Espo\Core\Utils\Config;
use Espo\Entities\User;
use Espo\ORM\EntityManager;
@@ -90,7 +91,7 @@ class CreateAdminUser implements Command
$user->set('userName', $userName);
$user->set('type', User::TYPE_ADMIN);
$user->set('name', $userName);
$user->set(Field::NAME, $userName);
$repository->save($user);
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -75,8 +75,7 @@ class Import implements Command
$countUpdated = $result->getCountUpdated();
$countError = $result->getCountError();
$countDuplicate = $result->getCountDuplicate();
}
catch (Throwable $e) {
} catch (Throwable $e) {
$io->writeLine("Error occurred: " . $e->getMessage());
return;
@@ -97,8 +96,7 @@ class Import implements Command
try {
$this->service->revert($id);
}
catch (Throwable $e) {
} catch (Throwable $e) {
$io->writeLine("Error occurred: " . $e->getMessage());
return;
@@ -114,8 +112,7 @@ class Import implements Command
try {
$result = $this->service->importById($id, true, $forceResume);
}
catch (Throwable $e) {
} catch (Throwable $e) {
$io->writeLine("Error occurred: " . $e->getMessage());
return;
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -36,6 +36,7 @@ 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\Name\Field;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Core\ORM\Repository\Option\SaveOption;
use Espo\ORM\EntityManager;
@@ -62,7 +63,7 @@ class PopulateNumbers implements Command
$entityType = $params->getArgument(0);
$field = $params->getArgument(1);
$orderBy = $params->getOption('orderBy') ?? 'createdAt';
$orderBy = $params->getOption('orderBy') ?? Field::CREATED_AT;
$order = strtoupper($params->getOption('order') ?? Order::ASC);
if (!$entityType) {
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -57,8 +57,7 @@ class RebuildCategoryPaths implements Command
try {
$this->rebuildPaths->run($entityType);
}
catch (Exception $e) {
} catch (Exception $e) {
$io->setExitStatus(1);
$io->writeLine("Error: " . $e->getMessage());
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,39 +29,55 @@
namespace Espo\Classes\DefaultLayouts;
use Espo\Core\Name\Field;
use Espo\Core\ORM\Type\FieldType;
use Espo\Core\Utils\Metadata;
use Espo\Entities\Team;
use Espo\Entities\User;
use Espo\ORM\Defs\Params\FieldParam;
use Espo\ORM\Defs\Params\RelationParam;
use stdClass;
class DefaultSidePanelType
{
private $metadata;
public function __construct(Metadata $metadata)
{
$this->metadata = $metadata;
}
public function __construct(private Metadata $metadata)
{}
/**
* @return \stdClass[]
* @return stdClass[]
*/
public function get(string $scope): array
{
$list = [];
if (
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUser', 'type']) === 'link' &&
$this->metadata->get(['entityDefs', $scope, 'links', 'assignedUser', 'entity']) === 'User'
$this->metadata->get(['entityDefs', $scope, 'fields', Field::ASSIGNED_USER, FieldParam::TYPE]) ===
FieldType::LINK &&
$this->metadata->get(['entityDefs', $scope, 'links', Field::ASSIGNED_USER, RelationParam::ENTITY]) ===
User::ENTITY_TYPE
||
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUsers', 'type']) === 'linkMultiple' &&
$this->metadata->get(['entityDefs', $scope, 'links', 'assignedUsers', 'entity']) === 'User'
$this->metadata->get(['entityDefs', $scope, 'fields', Field::ASSIGNED_USERS, FieldParam::TYPE]) ===
FieldType::LINK_MULTIPLE &&
$this->metadata->get(['entityDefs', $scope, 'links', Field::ASSIGNED_USERS, RelationParam::ENTITY]) ===
User::ENTITY_TYPE
) {
$list[] = (object) ['name' => ':assignedUser'];
}
if (
$this->metadata->get(['entityDefs', $scope, 'fields', 'teams', 'type']) === 'linkMultiple' &&
$this->metadata->get(['entityDefs', $scope, 'links', 'teams', 'entity']) === 'Team'
$this->metadata->get(['entityDefs', $scope, 'fields', Field::TEAMS, FieldParam::TYPE]) ===
FieldType::LINK_MULTIPLE &&
$this->metadata->get(['entityDefs', $scope, 'links', Field::TEAMS, RelationParam::ENTITY]) ===
Team::ENTITY_TYPE
) {
$list[] = (object) ['name' => 'teams'];
$list[] = (object) ['name' => Field::TEAMS];
}
if (
$this->metadata->get("entityDefs.$scope.fields.collaborators.type") === FieldType::LINK_MULTIPLE &&
$this->metadata->get("entityDefs.$scope.links.collaborators.entity") === User::ENTITY_TYPE
) {
$list[] = (object) ['name' => Field::COLLABORATORS];
}
return $list;
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -33,6 +33,7 @@ use Espo\Core\Duplicate\WhereBuilder;
use Espo\Core\Field\EmailAddressGroup;
use Espo\Core\Field\PhoneNumberGroup;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Core\ORM\Type\FieldType;
use Espo\Core\Utils\Config;
use Espo\Core\Utils\Metadata;
use Espo\ORM\Defs;
@@ -92,15 +93,15 @@ class General implements WhereBuilder
->tryGetField($field)
?->getType();
if ($type === 'personName') {
if ($type === FieldType::PERSON_NAME) {
return $this->applyFieldPersonName($field, $entity, $orBuilder);
}
if ($type === 'email') {
if ($type === FieldType::EMAIL) {
return $this->applyFieldEmail($field, $entity, $orBuilder);
}
if ($type === 'phone') {
if ($type === FieldType::PHONE) {
return $this->applyFieldPhone($field, $entity, $orBuilder);
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -31,6 +31,7 @@ namespace Espo\Classes\DuplicateWhereBuilders;
use Espo\Core\Duplicate\WhereBuilder;
use Espo\Core\Name\Field;
use Espo\ORM\Entity;
use Espo\ORM\Query\Part\Condition as Cond;
use Espo\ORM\Query\Part\WhereItem;
@@ -42,10 +43,10 @@ class Name implements WhereBuilder
{
public function build(Entity $entity): ?WhereItem
{
if ($entity->get('name')) {
if ($entity->get(Field::NAME)) {
return Cond::equal(
Cond::column('name'),
$entity->get('name')
Cond::column(Field::NAME),
$entity->get(Field::NAME)
);
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -33,6 +33,8 @@ use Espo\Core\Utils\Database\Orm\Defs\AttributeDefs;
use Espo\Core\Utils\Database\Orm\Defs\EntityDefs;
use Espo\Core\Utils\Database\Orm\FieldConverter;
use Espo\ORM\Defs\FieldDefs;
use Espo\ORM\Defs\Params\RelationParam;
use Espo\ORM\Name\Attribute;
use Espo\ORM\Type\AttributeType;
use RuntimeException;
@@ -65,7 +67,7 @@ class RelationshipRole implements FieldConverter
/** @var ?string $link */
$link = $data['link'] ?? null;
/** @var ?string $relationName */
$relationName = $data['relationName'] ?? null;
$relationName = $data[RelationParam::RELATION_NAME] ?? null;
/** @var ?string $nearKey */
$nearKey = $data['nearKey'] ?? null;
@@ -155,7 +157,7 @@ class RelationshipRole implements FieldConverter
'EXISTS' => [
'from' => $entityType,
'fromAlias' => 'sq',
'select' => ['id'],
'select' => [Attribute::ID],
'leftJoins' => [
[
$link,
@@ -177,7 +179,7 @@ class RelationshipRole implements FieldConverter
'EXISTS' => [
'from' => $entityType,
'fromAlias' => 'sq',
'select' => ['id'],
'select' => [Attribute::ID],
'leftJoins' => [
[
$link,
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -76,7 +76,7 @@ class Wysiwyg implements FieldDuplicator
foreach ($attachmentIdList as $id) {
/** @var Attachment|null $attachment */
$attachment = $this->entityManager->getEntity(Attachment::ENTITY_TYPE, $id);
$attachment = $this->entityManager->getEntityById(Attachment::ENTITY_TYPE, $id);
if (!$attachment) {
continue;
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -35,6 +35,7 @@ use Espo\Entities\Email;
use Espo\Entities\EmailFolder;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use Espo\ORM\Name\Attribute;
/**
* @implements Loader<Email>
@@ -53,8 +54,8 @@ class FolderDataLoader implements Loader
$folder = $this->entityManager
->getRDBRepositoryByClass(EmailFolder::class)
->select(['id', 'name'])
->where(['id' => $folderId])
->select([Attribute::ID, 'name'])
->where([Attribute::ID => $folderId])
->findOne();
if (!$folder) {
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,10 +29,15 @@
namespace Espo\Classes\FieldProcessing\Email;
use Espo\Core\Name\Field;
use Espo\Entities\User;
use Espo\Modules\Crm\Entities\Call;
use Espo\Modules\Crm\Entities\Contact;
use Espo\Modules\Crm\Entities\Lead;
use Espo\Modules\Crm\Entities\Meeting;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use Espo\ORM\Name\Attribute;
use Espo\Repositories\EmailAddress as EmailAddressRepository;
use Espo\Entities\EmailAddress;
use Espo\Entities\Email;
@@ -55,9 +60,9 @@ class IcsDataLoader implements Loader
{
/** @var array<string, string> */
private $entityTypeLinkMap = [
'User' => 'users',
'Contact' => 'contacts',
'Lead' => 'leads',
User::ENTITY_TYPE => Meeting::LINK_USERS,
Contact::ENTITY_TYPE => Meeting::LINK_CONTACTS,
Lead::ENTITY_TYPE => Meeting::LINK_LEADS,
];
public function __construct(private EntityManager $entityManager, private Log $log)
@@ -104,8 +109,7 @@ class IcsDataLoader implements Loader
$valueMap->dateStartDate = $espoEvent->getDateStart();
$valueMap->dateEndDate = $espoEvent->getDateEnd();
}
}
catch (Throwable $e) {
} catch (Throwable $e) {
$this->log->warning("Error while converting ICS event '" . $entity->getId() . "': " . $e->getMessage());
return;
@@ -145,7 +149,7 @@ class IcsDataLoader implements Loader
$nameMap = $valueMap->$namesAttribute ?? (object) [];
$idList[] = $personEntity->getId();
$nameMap->{$personEntity->getId()} = $personEntity->get('name');
$nameMap->{$personEntity->getId()} = $personEntity->get(Field::NAME);
$valueMap->$idsAttribute = $idList;
$valueMap->$namesAttribute = $nameMap;
@@ -189,7 +193,7 @@ class IcsDataLoader implements Loader
}
$createdEvent = $this->entityManager
->getEntity($emailSameEvent->get('createdEventType'), $emailSameEvent->get('createdEventId'));
->getEntityById($emailSameEvent->get('createdEventType'), $emailSameEvent->get('createdEventId'));
if (!$createdEvent) {
return;
@@ -198,7 +202,7 @@ class IcsDataLoader implements Loader
$eventData->createdEvent = (object) [
'id' => $createdEvent->getId(),
'entityType' => $emailSameEvent->getEntityType(),
'name' => $createdEvent->get('name'),
'name' => $createdEvent->get(Field::NAME),
];
}
@@ -212,8 +216,8 @@ class IcsDataLoader implements Loader
$found1 = $this->entityManager
->getRDBRepository(Meeting::ENTITY_TYPE)
->select(['id'])
->where(['id' => $id])
->select([Attribute::ID])
->where([Attribute::ID => $id])
->findOne();
if ($found1) {
@@ -222,8 +226,8 @@ class IcsDataLoader implements Loader
$found2 = $this->entityManager
->getRDBRepository(Call::ENTITY_TYPE)
->select(['id'])
->where(['id' => $id])
->select([Attribute::ID])
->where([Attribute::ID => $id])
->findOne();
if ($found2) {
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,7 +29,9 @@
namespace Espo\Classes\FieldProcessing\Email;
use Espo\Core\Name\Field;
use Espo\ORM\Entity;
use Espo\ORM\Name\Attribute;
use Espo\Repositories\EmailAddress as EmailAddressRepository;
use Espo\Core\FieldProcessing\Loader;
use Espo\Core\FieldProcessing\Loader\Params;
@@ -63,7 +65,7 @@ class StringDataLoader implements Loader
$emailAddressCollection = $this->entityManager
->getRDBRepository(User::ENTITY_TYPE)
->getRelation($this->user, 'emailAddresses')
->select(['id'])
->select([Attribute::ID])
->find();
foreach ($emailAddressCollection as $emailAddress) {
@@ -89,7 +91,7 @@ class StringDataLoader implements Loader
foreach ($idList as $emailAddressId) {
$person = $this->getEmailAddressRepository()->getEntityByAddressId($emailAddressId, null, true);
$list[] = $person ? $person->get('name') : $names->$emailAddressId;
$list[] = $person ? $person->get(Field::NAME) : $names->$emailAddressId;
}
$entity->set('personStringData', 'To: ' . implode(', ', $list));
@@ -107,7 +109,7 @@ class StringDataLoader implements Loader
if (!array_key_exists($fromEmailAddressId, $this->fromEmailAddressNameCache)) {
$person = $this->getEmailAddressRepository()->getEntityByAddressId($fromEmailAddressId, null, true);
$fromName = $person?->get('name');
$fromName = $person?->get(Field::NAME);
$this->fromEmailAddressNameCache[$fromEmailAddressId] = $fromName;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -1,5 +1,31 @@
<?php
/**LICENSE**/
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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\InboundEmail;
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -31,13 +31,14 @@ 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;
use Espo\Entities\LeadCapture;
use Espo\Modules\Crm\Entities\Lead;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use Espo\ORM\Type\AttributeType;
/**
* @implements Loader<LeadCapture>
@@ -46,7 +47,7 @@ class ExampleLoader implements Loader
{
public function __construct(
private FieldUtil $fieldUtil,
private Config $config,
private ApplicationConfig $applicationConfig,
private EntityManager $entityManager
) {}
@@ -60,12 +61,13 @@ class ExampleLoader implements Loader
$this->processRequestUrl($entity);
$this->processRequestPayload($entity);
$this->processFormUrl($entity);
}
private function processRequestUrl(LeadCapture $entity): void
{
$apiKey = $entity->getApiKey();
$siteUrl = $this->config->get('siteUrl');
$siteUrl = $this->applicationConfig->getSiteUrl();
if (!$apiKey) {
return;
@@ -104,7 +106,16 @@ class ExampleLoader implements Loader
foreach ($attributeList as $i => $attribute) {
$value = strtoupper(Util::camelCaseToUnderscore($attribute));
if (in_array($seed->getAttributeType($attribute), [Entity::VARCHAR, Entity::TEXT])) {
if (
in_array(
$seed->getAttributeType($attribute), [
Entity::VARCHAR,
Entity::TEXT,
AttributeType::DATETIME,
AttributeType::DATE,
]
)
) {
$value = '"' . $value . '"';
}
@@ -121,4 +132,21 @@ class ExampleLoader implements Loader
$entity->set('exampleRequestPayload', $requestPayload);
}
private function processFormUrl(LeadCapture $entity): void
{
$formId = $entity->getFormId();
$siteUrl = $this->applicationConfig->getSiteUrl();
if (!$entity->hasFormEnabled() || !$formId) {
/** @noinspection PhpRedundantOptionalArgumentInspection */
$entity->set('formUrl', null);
return;
}
$formUrl = "$siteUrl?entryPoint=leadCaptureForm&id=$formId";
$entity->set('formUrl', $formUrl);
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -33,14 +33,21 @@ use Espo\Core\FieldProcessing\Loader;
use Espo\Core\FieldProcessing\Loader\Params;
use Espo\Entities\Note;
use Espo\ORM\Entity;
use Espo\Tools\Stream\MassNotePreparator;
/**
* @implements Loader<Note>
*/
class AdditionalFieldsLoader implements Loader
{
public function __construct(
private MassNotePreparator $massNotePreparator,
) {}
public function process(Entity $entity, Params $params): void
{
$entity->loadAdditionalFields();
$this->massNotePreparator->prepare([$entity]);
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -29,6 +29,7 @@
namespace Espo\Classes\FieldProcessing\User;
use Espo\Core\Name\Field;
use Espo\Entities\AuthLogRecord;
use Espo\Entities\AuthToken;
use Espo\Entities\User;
@@ -39,6 +40,7 @@ use Espo\Core\FieldProcessing\Loader\Params;
use Espo\Core\ORM\EntityManager;
use DateTime;
use Espo\ORM\Name\Attribute;
use Exception;
/**
@@ -64,7 +66,7 @@ class LastAccessLoader implements Loader
$authToken = $this->entityManager
->getRDBRepository(AuthToken::ENTITY_TYPE)
->select(['id', 'lastAccess'])
->select([Attribute::ID, 'lastAccess'])
->where([
'userId' => $entity->getId(),
])
@@ -82,8 +84,7 @@ class LastAccessLoader implements Loader
if ($lastAccess) {
try {
$dt = new DateTime($lastAccess);
}
catch (Exception) {}
} catch (Exception) {}
}
$where = [
@@ -97,13 +98,13 @@ class LastAccessLoader implements Loader
$authLogRecord = $this->entityManager
->getRDBRepository(AuthLogRecord::ENTITY_TYPE)
->select(['id', 'createdAt'])
->select([Attribute::ID, Field::CREATED_AT])
->where($where)
->order('requestTime', true)
->findOne();
if ($authLogRecord) {
$lastAccess = $authLogRecord->get('createdAt');
$lastAccess = $authLogRecord->get(Field::CREATED_AT);
}
$entity->set('lastAccess', $lastAccess);
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -54,8 +54,7 @@ class Date implements Sanitizer
DateValue::fromString($value);
return;
}
catch (Exception) {}
} catch (Exception) {}
$dateTime = DateTimeImmutable::createFromFormat(DateTimeInterface::ATOM, $value);
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -55,8 +55,7 @@ class Datetime implements Sanitizer
DateTimeValue::fromString($value);
return;
}
catch (Exception) {}
} catch (Exception) {}
$dateTime = DateTimeImmutable::createFromFormat(DateTimeInterface::ATOM, $value);
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* This program is free software: you can redistribute it and/or modify
@@ -56,8 +56,7 @@ class DatetimeOptionalDate implements Sanitizer
Date::fromString($value);
return;
}
catch (Exception) {}
} catch (Exception) {}
$dateTime = DateTimeImmutable::createFromFormat(DateTimeInterface::ATOM, $value);
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM Open Source CRM application.
* Copyright (C) 2014-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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-2024 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Copyright (C) 2014-2025 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* 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