Compare commits

...

3649 Commits

Author SHA1 Message Date
Yuri Kuznetsov 896d42df43 v 2022-04-25 11:44:48 +03:00
Yuri Kuznetsov 1905be823d upgrade change 2022-04-25 11:40:05 +03:00
Yuri Kuznetsov 6347992b6e before upgrade fix 2022-04-23 22:53:19 +03:00
Yuri Kuznetsov b695d7c148 upgrade fix 2022-04-23 22:17:04 +03:00
Yuri Kuznetsov 9b75cdc2ac lang updates 2022-04-22 15:51:30 +03:00
Yuri Kuznetsov da80ed0130 formula parser only comment fix 2022-04-21 18:42:00 +03:00
Yuri Kuznetsov e8a23de848 refactoring 2022-04-21 18:02:02 +03:00
Yuri Kuznetsov cb431a03df fix diff 2022-04-21 12:29:01 +03:00
Yuri Kuznetsov 4979fb7326 fix workflow 2022-04-21 12:27:59 +03:00
Yuri Kuznetsov aaae51bb37 version tag empty 2022-04-21 12:20:29 +03:00
Yuri Kuznetsov 4d860e3764 v 2022-04-21 12:14:34 +03:00
Yuri Kuznetsov e73ba5c734 email fetch bc fix 2022-04-21 12:14:07 +03:00
Yuri Kuznetsov cca561f2c3 fix ldap portal user creation 2022-04-20 12:06:44 +03:00
Yuri Kuznetsov 87c5089a8e autocomplete fixes 2022-04-19 23:08:26 +03:00
Yuri Kuznetsov a0819e8cdc autocomplete fixes 2022-04-19 22:51:10 +03:00
Yuri Kuznetsov ac505d9875 fix db regexp 2022-04-19 20:20:48 +03:00
Yuri Kuznetsov 750f7ceb53 autocomplete fix 2022-04-19 19:28:45 +03:00
Yuri Kuznetsov 5be2a73801 install default preferences values 2022-04-19 13:47:36 +03:00
Yuri Kuznetsov 5976fd5738 fix 2022-04-19 13:42:15 +03:00
Yuri Kuznetsov e6f09ed32a fix install date format 2022-04-19 13:35:16 +03:00
Yuri Kuznetsov e2efb62a6a install theme selection 2022-04-19 13:17:21 +03:00
Yuri Kuznetsov 8ecfc75fac install buttons wide 2022-04-19 10:59:30 +03:00
Yuri Kuznetsov 2c16a5bff7 install back button to the left 2022-04-19 10:55:28 +03:00
Yuri Kuznetsov 47d049ab93 fix installer create database 2022-04-19 10:49:57 +03:00
Yuri Kuznetsov 51ce0780fd install css fix 2022-04-19 10:24:53 +03:00
Yuri Kuznetsov a01e394a56 cs fix 2022-04-18 21:42:20 +03:00
Yuri Kuznetsov 752b683494 config fill missing default parameters on rebuild 2022-04-18 19:11:40 +03:00
Yuri Kuznetsov 2281d982f2 fix config: null not treated as set 2022-04-18 19:06:58 +03:00
Yuri Kuznetsov ad03cf92fc css fix 2022-04-18 15:49:52 +03:00
Yuri Kuznetsov 16ccf59d3f dark heading blue color 2022-04-18 15:46:52 +03:00
dependabot[bot] 9e09f89927 Bump async from 2.6.2 to 2.6.4 (#2280)
Bumps [async](https://github.com/caolan/async) from 2.6.2 to 2.6.4.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.2...v2.6.4)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-18 13:44:33 +03:00
Yuri Kuznetsov 53886ec684 promise usage 2022-04-18 13:10:22 +03:00
Yuri Kuznetsov fbc3e2cea9 autocomplete item padding 2022-04-18 13:08:14 +03:00
Yuri Kuznetsov 2a7a4714ed doNotFillAssignedUserIfNotRequired true 2022-04-18 12:41:24 +03:00
Yuri Kuznetsov 19749aeca2 autoselect first autocomplete 2022-04-18 12:33:11 +03:00
Yuri Kuznetsov ee1dd28bc7 assigned user autocomplete own 2022-04-18 12:29:41 +03:00
Yuri Kuznetsov c1b0a3849d link autocomplete flicker fix 2022-04-18 11:01:46 +03:00
Yuri Kuznetsov d721036226 update autocomplete lib 2022-04-18 10:28:57 +03:00
Yuri Kuznetsov 9cce13af65 link autocimplete select text on focus, no search on focus 2022-04-18 10:18:27 +03:00
Yuri Kuznetsov 176abf90ad cs fix 2022-04-18 09:23:32 +03:00
Yuri Kuznetsov 0bdeec10b6 fix color 2022-04-15 15:35:02 +03:00
Yuri Kuznetsov 29bd26a096 chart grid label x 1 line 2022-04-15 15:11:43 +03:00
Yuri Kuznetsov 758e831cd5 css chart overflow hidden 2022-04-15 14:06:06 +03:00
Yuri Kuznetsov 95eea88a89 color fix 2022-04-15 13:49:50 +03:00
Yuri Kuznetsov 4c435b4d4b fix css 2022-04-15 12:51:22 +03:00
Yuri Kuznetsov 120f9fd07e q append asterisk 2022-04-14 16:08:40 +03:00
Yuri Kuznetsov 7ca7a1ad18 discard nofulltexdtsearch 2022-04-14 15:46:32 +03:00
Yuri Kuznetsov f8dcd40905 fix test 2022-04-14 14:54:06 +03:00
Yuri Kuznetsov 039c67c6ca ref 2022-04-14 14:52:34 +03:00
Yuri Kuznetsov 908d0ad3c4 refactoring 2022-04-14 14:47:30 +03:00
Yuri Kuznetsov 1a70fdfd41 ft filter fix 2022-04-14 13:26:15 +03:00
Yuri Kuznetsov dc5c572a9f full text datacomposer interface 2022-04-14 12:31:18 +03:00
Yuri Kuznetsov 96be15c33b fulltextsearch namespace 2022-04-14 11:45:49 +03:00
Yuri Kuznetsov 79793ebff6 email search fix 2022-04-14 11:14:19 +03:00
Yuri Kuznetsov d38c79c4ba ft changes 2022-04-14 10:49:34 +03:00
Yuri Kuznetsov ba02164d0b ft changes 2022-04-13 20:00:15 +03:00
Yuri Kuznetsov 0cdbe89f5c refactoring 2022-04-13 19:20:52 +03:00
Yuri Kuznetsov 46d8ec757f fix orm order empty 2022-04-13 13:45:54 +03:00
Yuri Kuznetsov f4930b0a1f type fix 2022-04-13 13:24:51 +03:00
Yuri Kuznetsov e03dc3b738 refactoring 2022-04-13 13:18:32 +03:00
Yuri Kuznetsov bfb7d88b79 refactoring 2022-04-13 11:18:12 +03:00
Yuri Kuznetsov 2f3f2a0247 use fulltext search in automplete 2022-04-12 16:38:47 +03:00
Yuri Kuznetsov 08f64eb209 autocompete no order 2022-04-12 16:38:12 +03:00
Yuri Kuznetsov 15371a6a0f no total param 2022-04-12 14:21:36 +03:00
Yuri Kuznetsov 68ea55144d fix 2022-04-12 14:21:12 +03:00
Yuri Kuznetsov ec7e35e654 fix link parent reset 2022-04-12 14:15:17 +03:00
Yuri Kuznetsov 7e5a7546f2 fulltext search in email address lookup 2022-04-12 12:49:51 +03:00
Yuri Kuznetsov 86f67bd315 email address lookup no cache 2022-04-12 12:43:41 +03:00
Yuri Kuznetsov ca8cdd6008 currency compare 2022-04-12 11:05:16 +03:00
Yuri Kuznetsov 5a60c5941a add composer suggest 2022-04-12 10:44:40 +03:00
Yuri Kuznetsov 5487bd7598 records per page select 2022-04-11 13:59:58 +03:00
Yuri Kuznetsov ea8c4d348d type fix 2022-04-11 13:22:26 +03:00
Yuri Kuznetsov a56a6b01f4 orderer apply id 2022-04-11 13:21:48 +03:00
dependabot[bot] bfe91a37e8 Bump moment from 2.24.0 to 2.29.2 (#2276)
Bumps [moment](https://github.com/moment/moment) from 2.24.0 to 2.29.2.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.24.0...2.29.2)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 13:03:34 +03:00
Yuri Kuznetsov ecd61eb4e9 dark theme fix 2022-04-11 13:02:21 +03:00
Yuri Kuznetsov ffd05882f2 select orderer, passing user to order converter 2022-04-11 12:57:24 +03:00
Yuri Kuznetsov f8eb7679fd fix link multiple order 2022-04-10 14:27:38 +03:00
Yuri Kuznetsov 68fa506f32 currency bcmath 2022-04-10 13:13:23 +03:00
Yuri Kuznetsov c1e4ca4850 link multiple order in select 2022-04-09 19:39:52 +03:00
Taras Machyshyn 31a507cd4a Autoload fixes 2022-04-08 16:28:12 +03:00
Yuri Kuznetsov 58a89146c9 cleanup 2022-04-08 14:04:08 +03:00
Yuri Kuznetsov d70461db9f email task status icon 2022-04-08 13:57:26 +03:00
Yuri Kuznetsov bddd310ac7 refactoring 2022-04-08 13:16:42 +03:00
Yuri Kuznetsov f46bc47bba select user own first 2022-04-08 12:55:11 +03:00
Yuri Kuznetsov 579e134303 cs fix 2022-04-08 12:20:32 +03:00
Yuri Kuznetsov b92fd15ece accentuate own user in list 2022-04-07 17:47:50 +03:00
Yuri Kuznetsov 4ef307e8e7 email to case, carry over lead 2022-04-07 17:20:46 +03:00
Yuri Kuznetsov 58fca25b3e dark theme color fixes 2022-04-07 17:15:51 +03:00
Yuri Kuznetsov efaf1fab79 calendar create enum fix 2022-04-07 12:44:53 +03:00
Yuri Kuznetsov e6beedbffd cs fix 2022-04-07 12:15:22 +03:00
Yuri Kuznetsov d718151dbe field validate refactoring and fix 2022-04-07 12:02:05 +03:00
Yuri Kuznetsov cb79354078 cs fix 2022-04-07 11:54:19 +03:00
Yuri Kuznetsov 94d2873669 color fix 2022-04-06 16:31:02 +03:00
Yuri Kuznetsov 46b269fa0e set access info checkbox not setting 2022-04-06 13:37:18 +03:00
Yuri Kuznetsov 43a233a4ba stream drag enable posting mode 2022-04-06 12:09:12 +03:00
Yuri Kuznetsov 7cc33bd684 email task relationship 2022-04-05 18:39:43 +03:00
Yuri Kuznetsov 0937c83746 fix array list css 2022-04-05 14:44:38 +03:00
Yuri Kuznetsov 0ae81328b4 image fix 2022-04-05 14:39:09 +03:00
Yuri Kuznetsov 68a7130e85 image preview left-right keys 2022-04-05 11:57:15 +03:00
Yuri Kuznetsov da41370c29 cs fix 2022-04-05 11:30:31 +03:00
Yuri Kuznetsov 836ffff49f contact opp relation fix 2022-04-04 14:22:02 +03:00
Yuri Kuznetsov 350819033d email send from detail view and edit mode promise 2022-04-04 13:21:48 +03:00
Yuri Kuznetsov 5c47b6c653 fix 2022-04-03 10:51:29 +03:00
Yuri Kuznetsov f37fd5e013 ref 2022-04-01 14:46:21 +03:00
Yuri Kuznetsov 100b44791d refactoring 2022-04-01 14:39:21 +03:00
Yuri Kuznetsov cf7f8260c9 refactoring 2022-04-01 13:33:23 +03:00
Yuri Kuznetsov bc06e39f90 refactoring 2022-04-01 12:13:02 +03:00
Yuri Kuznetsov 42a8f8b438 base currency usage 2022-04-01 11:48:48 +03:00
Yuri Kuznetsov 6b04536c3a currency rates base 2022-04-01 11:47:02 +03:00
Yuri Kuznetsov 4ff8514925 refactoring 2022-04-01 11:30:59 +03:00
Yuri Kuznetsov 30b4b8d501 refactoring 2022-04-01 11:12:21 +03:00
Yuri Kuznetsov 23d78e1e46 utf8 passwords 2022-03-31 18:57:15 +03:00
Yuri Kuznetsov 65ca47b878 Merge branch 'fix' 2022-03-31 18:03:33 +03:00
Yuri Kuznetsov a2ac9c2d4c login base64 error catching 2022-03-31 18:03:21 +03:00
Yuri Kuznetsov 87048ce9af set config params script 2022-03-30 16:04:42 +03:00
dependabot[bot] 846c8040a3 Bump guzzlehttp/psr7 from 1.6.1 to 1.8.4 (#2265)
Bumps [guzzlehttp/psr7](https://github.com/guzzle/psr7) from 1.6.1 to 1.8.4.
- [Release notes](https://github.com/guzzle/psr7/releases)
- [Changelog](https://github.com/guzzle/psr7/blob/1.8.4/CHANGELOG.md)
- [Commits](https://github.com/guzzle/psr7/compare/1.6.1...1.8.4)

---
updated-dependencies:
- dependency-name: guzzlehttp/psr7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-30 13:02:20 +03:00
Yuri Kuznetsov f993d676fc fix 2022-03-30 13:00:56 +03:00
Yuri Kuznetsov 00d04e0157 translatable error messages 2022-03-30 12:59:13 +03:00
Yuri Kuznetsov 461034f9cc roles exportable importable 2022-03-29 17:44:24 +03:00
Yuri Kuznetsov 16b61d9484 Merge branch 'fix' 2022-03-29 16:14:50 +03:00
Eymen Elkum afbd3919b7 fix typo (#2260)
Co-authored-by: Eymen Elkum <eymen@eblasoft.com.tr>
2022-03-29 15:38:06 +03:00
Yuri Kuznetsov ec1887e726 closable error usage 2022-03-29 13:36:50 +03:00
Yuri Kuznetsov b9fc41d5cd Merge branch 'fix' 2022-03-29 13:18:36 +03:00
Yuri Kuznetsov 216e1061d2 v 2022-03-29 12:54:57 +03:00
Yuri Kuznetsov 934b7a9369 npm ci 2022-03-29 12:48:42 +03:00
Yuri Kuznetsov 6b62841fba fix websocket 2022-03-29 12:47:29 +03:00
Yuri Kuznetsov 644f653bdd fix websocket 2022-03-29 12:41:40 +03:00
Yuri Kuznetsov bdfe6b5e23 forbidden exception with body 2022-03-28 14:38:03 +03:00
Yuri Kuznetsov 01e0d51c0a error alert improvements 2022-03-28 14:37:36 +03:00
Yuri Kuznetsov 6acd18b4c6 fix error 2022-03-28 14:26:40 +03:00
Yuri Kuznetsov 9ac36cd5da error alerts with close button 2022-03-28 13:44:12 +03:00
Yuri Kuznetsov cbc581ad9f cs fix 2022-03-26 17:34:09 +02:00
Yuri Kuznetsov 9845ed2db3 formula tpl change 2022-03-25 20:19:29 +02:00
Yuri Kuznetsov 87e95dc791 Update README.md 2022-03-25 17:39:43 +02:00
Yuri Kuznetsov 51ca68531a Update README.md 2022-03-25 17:09:37 +02:00
Yuri Kuznetsov eb78b921a7 Update README.md 2022-03-25 17:07:46 +02:00
Yuri Kuznetsov 1d6bedcfad Update README.md 2022-03-25 17:07:21 +02:00
Yuri Kuznetsov 36ca2daee0 Update README.md 2022-03-25 17:06:27 +02:00
Yuri Kuznetsov f000fb6f29 Update README.md 2022-03-25 16:58:49 +02:00
Yuri Kuznetsov 170ff67ea8 Update README.md 2022-03-25 16:58:11 +02:00
Yuri Kuznetsov d196347b22 Update README.md 2022-03-25 16:52:59 +02:00
Yuri Kuznetsov b2d7cfa187 fix diff 2022-03-25 11:32:50 +02:00
Yuri Kuznetsov 2c3f6baaac rename array index 2022-03-24 21:47:23 +02:00
Yuri Kuznetsov 0060f70586 array functions metadata 2022-03-24 20:45:58 +02:00
Yuri Kuznetsov 22fd7cb6b3 array functions 2022-03-24 20:22:47 +02:00
Yuri Kuznetsov 9d7246832d build changes 2022-03-24 16:29:02 +02:00
Taras Machyshyn 03eb8db555 package.json 2022-03-24 15:05:52 +02:00
Yuri Kuznetsov 3f2364cd8d phpstan level 8 2022-03-24 12:35:02 +02:00
Yuri Kuznetsov f1c0ccf97d type fixes 2022-03-24 12:34:40 +02:00
Yuri Kuznetsov ceddfd8486 type fixes 2022-03-24 12:21:14 +02:00
Yuri Kuznetsov eaed64fe6a type fixes 2022-03-24 10:54:51 +02:00
Yuri Kuznetsov 69d88f9b76 fix email address varchar 2022-03-24 10:53:22 +02:00
Yuri Kuznetsov 1e51f1b97c fix 2022-03-23 19:46:40 +02:00
Yuri Kuznetsov ef7e620b8b bc fix 2022-03-23 19:41:28 +02:00
Yuri Kuznetsov 99c2f30394 fix 2022-03-23 15:44:20 +02:00
Yuri Kuznetsov ccc231a06e fixes 2022-03-23 15:33:22 +02:00
Yuri Kuznetsov b4aa1392d5 type fixes 2022-03-23 15:14:44 +02:00
Yuri Kuznetsov 4aec7251a6 type fixes 2022-03-23 15:04:26 +02:00
Yuri Kuznetsov 5ff9e42887 type fixes 2022-03-23 14:46:06 +02:00
Yuri Kuznetsov a9d4046337 type fixes 2022-03-23 14:31:31 +02:00
Yuri Kuznetsov b1e8266d89 type fixes 2022-03-23 14:22:05 +02:00
Yuri Kuznetsov 1a4b891b05 type fixes 2022-03-23 14:14:08 +02:00
Yuri Kuznetsov 0191188eba type fixes 2022-03-23 14:10:34 +02:00
Yuri Kuznetsov 833cd4f5ee type fixes 2022-03-23 13:51:59 +02:00
Yuri Kuznetsov bea8f4d4bd type fixes 2022-03-23 13:38:57 +02:00
Yuri Kuznetsov d59874801d type fixes 2022-03-23 13:17:04 +02:00
Yuri Kuznetsov 2ffae46291 type fixes 2022-03-23 12:55:04 +02:00
Yuri Kuznetsov 48b79dfdb1 update minimist 2022-03-23 09:57:14 +02:00
Yuri Kuznetsov 52bdfc128c type fixes 2022-03-22 22:50:05 +02:00
Yuri Kuznetsov c9adeecd1b type fixes 2022-03-22 22:22:16 +02:00
Yuri Kuznetsov 4bfdbcc207 cleanup 2022-03-22 18:28:04 +02:00
Yuri Kuznetsov 0a4b261529 record service refactoring 2022-03-22 18:27:41 +02:00
Yuri Kuznetsov dc6a7f241e comment 2022-03-22 15:12:16 +02:00
Yuri Kuznetsov da39015a7c type fixes 2022-03-22 15:08:57 +02:00
Yuri Kuznetsov 8ba1907b45 type fixes 2022-03-22 14:51:22 +02:00
Yuri Kuznetsov eea3efeb95 type fixes 2022-03-22 14:06:21 +02:00
Yuri Kuznetsov 991e3f8cc3 type fixes 2022-03-22 13:37:38 +02:00
Yuri Kuznetsov 25a09f5ec3 type fixes 2022-03-22 13:16:04 +02:00
Yuri Kuznetsov 86413517e6 type fixes 2022-03-22 13:12:35 +02:00
Yuri Kuznetsov 747d581f9a type fixes 2022-03-22 12:37:27 +02:00
Yuri Kuznetsov 1d4030b29e type fixes 2022-03-22 12:22:29 +02:00
Yuri Kuznetsov 80fa7407d4 type fixes 2022-03-22 12:05:32 +02:00
Yuri Kuznetsov 495e700373 type fixes 2022-03-22 11:55:23 +02:00
Yuri Kuznetsov 5c583a697d type fixes 2022-03-22 11:34:39 +02:00
Yuri Kuznetsov 24b935c789 type fixes 2022-03-22 11:29:33 +02:00
Yuri Kuznetsov df0da5e51b type fixes 2022-03-22 11:23:02 +02:00
Yuri Kuznetsov 485dfd32fd collapsed modal changes and fixes 2022-03-22 11:11:47 +02:00
Yuri Kuznetsov 51a6b304f2 modal css fix 2022-03-22 10:53:36 +02:00
Yuri Kuznetsov 93e467af79 fix typo 2022-03-22 10:45:40 +02:00
Yuri Kuznetsov c5eb6c560b type fixes 2022-03-21 15:52:30 +02:00
Yuri Kuznetsov dd1a74b4c0 type fixes 2022-03-21 15:38:22 +02:00
Yuri Kuznetsov 5fa73b2581 type fixes 2022-03-21 14:19:04 +02:00
Yuri Kuznetsov f70e1bd38e type fixes 2022-03-21 13:51:54 +02:00
Yuri Kuznetsov 5dd845327e email phone group value object new method 2022-03-21 13:41:49 +02:00
Yuri Kuznetsov bc84a9be51 type fixes 2022-03-21 13:36:02 +02:00
Yuri Kuznetsov 39442377a3 type fixes 2022-03-21 13:23:12 +02:00
Yuri Kuznetsov b9126d2c0f type fixes 2022-03-21 13:08:52 +02:00
Yuri Kuznetsov 1f982031ca type fixes 2022-03-21 12:43:12 +02:00
Yuri Kuznetsov 3961dcaad4 type fixes 2022-03-21 12:28:54 +02:00
Yuri Kuznetsov a91c63c6a9 date time convert throwing exception 2022-03-21 12:26:56 +02:00
Yuri Kuznetsov 7f328927ba cs fixes 2022-03-21 12:26:42 +02:00
Yuri Kuznetsov 8491a54248 type fixes 2022-03-21 12:24:12 +02:00
Yuri Kuznetsov 79bc6a9aea add msg 2022-03-21 12:02:12 +02:00
Yuri Kuznetsov d899e8d3df fix 2022-03-21 12:01:27 +02:00
Yuri Kuznetsov 3ef6de205f get id exception 2022-03-21 11:34:48 +02:00
Yuri Kuznetsov fa02291a1a fixes 2022-03-20 19:35:28 +02:00
Yuri Kuznetsov 5096870635 update laminas ldap 2022-03-19 17:34:43 +02:00
Yuri Kuznetsov 7cb086d5c9 fix typo 2022-03-19 17:17:20 +02:00
Yuri Kuznetsov 9e9a72af91 fix 2022-03-19 11:18:01 +02:00
Yuri Kuznetsov 62f2c9658a phpstan level 7 2022-03-19 11:12:34 +02:00
Yuri Kuznetsov 4015e2f254 type fixes 2022-03-19 11:11:58 +02:00
Yuri Kuznetsov aa51a58da5 type fixes 2022-03-19 11:03:43 +02:00
Yuri Kuznetsov a12ee989f6 type fixes 2022-03-19 10:56:20 +02:00
Yuri Kuznetsov ab137263dc type fixes 2022-03-19 10:16:36 +02:00
Yuri Kuznetsov 77e02fd66f type fixes 2022-03-18 20:17:37 +02:00
Yuri Kuznetsov 0d1466afac type fixes 2022-03-18 20:14:41 +02:00
Yuri Kuznetsov 4f4db967f8 type fixes 2022-03-18 19:53:20 +02:00
Yuri Kuznetsov 6beaa730ea type fixes 2022-03-18 19:39:58 +02:00
Yuri Kuznetsov 31a84a6e53 type fixes 2022-03-18 18:04:03 +02:00
Yuri Kuznetsov 761e7b7b72 type fixes 2022-03-18 18:01:44 +02:00
Yuri Kuznetsov b0547325ca type fixes 2022-03-18 17:05:28 +02:00
Yuri Kuznetsov 914f90214a type fixes 2022-03-18 15:01:59 +02:00
Yuri Kuznetsov be2d936be9 type fixes 2022-03-18 14:46:07 +02:00
Yuri Kuznetsov 1f48e3d005 type fixes 2022-03-18 14:30:23 +02:00
Yuri Kuznetsov 50f7165963 type fixes 2022-03-18 14:24:38 +02:00
Yuri Kuznetsov 55453b95ab type fixes 2022-03-18 14:14:23 +02:00
Yuri Kuznetsov 27d7e6e522 type fixes 2022-03-18 14:05:16 +02:00
Yuri Kuznetsov abca847e5a type fixes 2022-03-18 13:37:53 +02:00
Yuri Kuznetsov 6d28fab610 type fixes 2022-03-18 13:05:02 +02:00
Yuri Kuznetsov a8b315b35d type fix 2022-03-17 21:09:52 +02:00
Yuri Kuznetsov 206e3e787e type fixes 2022-03-17 20:44:34 +02:00
Yuri Kuznetsov 26ab145380 type fixes 2022-03-17 20:32:28 +02:00
Yuri Kuznetsov 5518d71bbe type fixes 2022-03-17 18:09:37 +02:00
Yuri Kuznetsov 4fbfd1e123 type fixes 2022-03-17 18:01:07 +02:00
Yuri Kuznetsov 099e0745f5 type fixes 2022-03-17 17:18:49 +02:00
Yuri Kuznetsov ef0c9e86a9 type fixes 2022-03-17 16:53:39 +02:00
Yuri Kuznetsov ca39deb818 type fixes 2022-03-17 16:48:47 +02:00
Yuri Kuznetsov 0cc88a395f type fixes 2022-03-17 16:37:37 +02:00
Yuri Kuznetsov 706cb66021 type fixes 2022-03-17 15:14:41 +02:00
Yuri Kuznetsov a33d49b151 refactoring and type fixes 2022-03-17 14:57:08 +02:00
Yuri Kuznetsov 71bb9d7d18 type fixes 2022-03-17 14:26:36 +02:00
Yuri Kuznetsov 0ef26a7929 type fixes 2022-03-17 14:20:06 +02:00
Yuri Kuznetsov d77e56ec5d type fixes 2022-03-17 14:07:47 +02:00
Yuri Kuznetsov 45f9e2af59 type fixes 2022-03-17 14:02:36 +02:00
Yuri Kuznetsov cc89b69f18 type fixes 2022-03-17 13:42:20 +02:00
Yuri Kuznetsov d39376398a type fixes 2022-03-17 13:15:58 +02:00
Yuri Kuznetsov 1016b61835 type fixes 2022-03-17 12:52:32 +02:00
Yuri Kuznetsov 5a2c027f17 refactoring 2022-03-17 12:23:53 +02:00
Yuri Kuznetsov c030f375bf type fixes 2022-03-17 11:53:56 +02:00
Yuri Kuznetsov 8d7d5527a1 type fixes 2022-03-16 16:42:41 +02:00
Yuri Kuznetsov 91915ccf44 fix 2022-03-16 14:18:55 +02:00
Yuri Kuznetsov d92bf08160 type fixes 2022-03-16 14:16:32 +02:00
Yuri Kuznetsov 46f3846d36 type fixes 2022-03-16 13:57:33 +02:00
Yuri Kuznetsov 841b0f4ebf fix 2022-03-16 13:20:39 +02:00
Yuri Kuznetsov 5c4e4613e7 fix 2022-03-16 13:03:22 +02:00
Yuri Kuznetsov 8b800d7757 fixes 2022-03-16 12:58:20 +02:00
Yuri Kuznetsov 670df99eda type fixes 2022-03-16 12:04:44 +02:00
Yuri Kuznetsov e3b42ab084 type fixes 2022-03-16 11:34:07 +02:00
Yuri Kuznetsov dcd0f6f56b type fixes 2022-03-15 21:29:18 +02:00
Yuri Kuznetsov f7cab7d42d file get contents refactoring 2022-03-15 19:06:14 +02:00
Yuri Kuznetsov 3778e2640e type fixes 2022-03-15 15:10:01 +02:00
Yuri Kuznetsov b399a8dd78 cleanup 2022-03-15 14:29:21 +02:00
Yuri Kuznetsov 6a45db8e1c api getQueryParam return string 2022-03-15 14:15:41 +02:00
Yuri Kuznetsov 6c89147b2c fix type 2022-03-15 13:12:41 +02:00
Yuri Kuznetsov dff3321540 fix test 2022-03-15 12:50:48 +02:00
Yuri Kuznetsov 9592e68c30 type fixes 2022-03-15 12:44:30 +02:00
Yuri Kuznetsov 5ebd680d64 type fixes 2022-03-15 12:31:02 +02:00
Yuri Kuznetsov 603ac2b985 type fixes 2022-03-15 11:49:25 +02:00
Yuri Kuznetsov 6efff8e9d0 version param internal 2022-03-15 11:21:38 +02:00
Yuri Kuznetsov a8a46976de type fixes 2022-03-14 14:46:42 +02:00
Yuri Kuznetsov cd3a2bbc80 type fixes 2022-03-14 14:06:22 +02:00
Yuri Kuznetsov bb2259232e type fixes 2022-03-14 13:20:13 +02:00
Yuri Kuznetsov fdc9a98c1d fix 2022-03-14 12:49:05 +02:00
Yuri Kuznetsov 761df3c562 type fixes 2022-03-14 12:41:21 +02:00
Yuri Kuznetsov 11bd9c7d8f update dbal 2022-03-14 11:46:31 +02:00
Yuri Kuznetsov bf24bfda43 Merge branch 'fix' 2022-03-14 11:26:35 +02:00
Yuri Kuznetsov 389dda2866 fix email folder mandatory filter 2022-03-14 11:22:38 +02:00
Yuri Kuznetsov 86026f8f7e css fixes 2022-03-14 11:16:44 +02:00
Yuri Kuznetsov c0e82c6c00 type fixes 2022-03-13 16:50:10 +02:00
Yuri Kuznetsov 57e733754a type fixes 2022-03-13 15:20:47 +02:00
Yuri Kuznetsov ceb67c5b95 type fixes 2022-03-13 14:36:14 +02:00
Yuri Kuznetsov a164c33829 type fixes 2022-03-13 14:19:38 +02:00
Yuri Kuznetsov 120d090215 cs fix 2022-03-13 14:05:27 +02:00
Yuri Kuznetsov a5139255f2 fixes 2022-03-12 20:12:38 +02:00
Yuri Kuznetsov f5d5c4e75e fix 2022-03-12 20:02:36 +02:00
Yuri Kuznetsov fca55da02f acl generics 2022-03-12 19:59:55 +02:00
Yuri Kuznetsov 0a5a82fb38 phpstan 6 level 2022-03-12 19:45:56 +02:00
Yuri Kuznetsov b53378a1d3 type fixes 2022-03-12 19:44:25 +02:00
Yuri Kuznetsov ceb436971d type fixes 2022-03-12 19:20:57 +02:00
Yuri Kuznetsov 9522446955 fixes 2022-03-12 15:15:28 +02:00
Yuri Kuznetsov 3eedeef605 type fixes 2022-03-12 15:02:07 +02:00
Yuri Kuznetsov 07f49c56ff type fixes 2022-03-12 14:49:28 +02:00
Yuri Kuznetsov 5031b17e8a type fixes 2022-03-12 12:38:14 +02:00
Yuri Kuznetsov 42642de0e6 type fixes 2022-03-12 10:59:30 +02:00
Yuri Kuznetsov b4c5596b54 type fixes 2022-03-12 10:29:24 +02:00
Yuri Kuznetsov cbb5aaa6dd type fixes 2022-03-11 21:31:06 +02:00
Yuri Kuznetsov 2383194f07 type fixes 2022-03-11 18:53:21 +02:00
Yuri Kuznetsov 21cbf390fd fix 2022-03-11 16:58:24 +02:00
Yuri Kuznetsov db2c7f2c7b type fixes 2022-03-11 16:51:18 +02:00
Yuri Kuznetsov e7994caf72 type fixes 2022-03-11 16:36:31 +02:00
Yuri Kuznetsov f775f0467b type fixes 2022-03-11 14:44:38 +02:00
Yuri Kuznetsov fd5c7763bc type fixes 2022-03-11 14:29:15 +02:00
Yuri Kuznetsov d34c8d1918 type fixes 2022-03-11 14:09:17 +02:00
Yuri Kuznetsov 40d62c4213 type fixes 2022-03-11 13:40:35 +02:00
Yuri Kuznetsov a12031f7bc type fixes 2022-03-11 13:26:25 +02:00
Yuri Kuznetsov 15b04590af fix 2022-03-11 13:18:42 +02:00
Yuri Kuznetsov 2e75c2815e fix 2022-03-11 13:09:33 +02:00
Yuri Kuznetsov 8677229785 type fixes 2022-03-11 13:07:31 +02:00
Yuri Kuznetsov 71193a9071 type fix 2022-03-11 12:52:11 +02:00
Yuri Kuznetsov cefc0e9bdf type fixes 2022-03-11 12:42:03 +02:00
Yuri Kuznetsov cf41312a01 type fixes 2022-03-11 12:24:17 +02:00
Yuri Kuznetsov 457b79f0a0 fix 2022-03-10 19:53:47 +02:00
Yuri Kuznetsov d3f4131353 type fixes 2022-03-10 19:41:27 +02:00
Yuri Kuznetsov b07ef24eea type fixes 2022-03-10 19:13:59 +02:00
Yuri Kuznetsov 8fd430b784 type fixes 2022-03-10 19:01:27 +02:00
Yuri Kuznetsov 593bf44b29 type fixes 2022-03-10 18:29:14 +02:00
Yuri Kuznetsov 1578ed8d8f fix 2022-03-10 17:23:13 +02:00
Yuri Kuznetsov ef17859145 type fixes 2022-03-10 17:05:30 +02:00
Yuri Kuznetsov 3e8d2f8037 type fixes 2022-03-10 16:59:37 +02:00
Yuri Kuznetsov 9077c00386 type fixes 2022-03-10 14:22:12 +02:00
Yuri Kuznetsov 7212e0ed20 test fix 2022-03-10 13:36:26 +02:00
Yuri Kuznetsov db92247b65 fix 2022-03-10 13:30:34 +02:00
Yuri Kuznetsov daf86f89da type fixes 2022-03-10 13:25:56 +02:00
Yuri Kuznetsov 4ffe89bb4a type fixes 2022-03-10 13:21:33 +02:00
Yuri Kuznetsov 19e769d107 type fixes 2022-03-10 13:03:27 +02:00
Yuri Kuznetsov 8cc4ffdd80 type fixes 2022-03-10 12:49:44 +02:00
Yuri Kuznetsov 8f6b418f03 type fixes 2022-03-10 12:39:04 +02:00
Yuri Kuznetsov 00e6b710f3 type fixes 2022-03-10 12:34:07 +02:00
Yuri Kuznetsov d5ee58cbbc type fixes 2022-03-10 12:17:04 +02:00
Yuri Kuznetsov 3ffebd2d8d type fixes 2022-03-10 11:55:25 +02:00
Yuri Kuznetsov 1fd96cc423 css fix 2022-03-09 13:49:51 +02:00
Yuri Kuznetsov bcadb93f66 type fixes 2022-03-09 13:44:17 +02:00
Yuri Kuznetsov ba28639f11 fix 2022-03-09 13:29:06 +02:00
Yuri Kuznetsov 60bca1635e type fixes 2022-03-09 13:25:19 +02:00
Yuri Kuznetsov 908caa7009 type fixes 2022-03-09 12:34:24 +02:00
Yuri Kuznetsov 896e1f7119 type fixes 2022-03-09 12:28:21 +02:00
Yuri Kuznetsov 07b42b48a3 update phpstan 2022-03-09 12:06:33 +02:00
Yuri Kuznetsov 196488f92d fixes 2022-03-09 12:06:26 +02:00
Yuri Kuznetsov 5c811b1861 type fixes 2022-03-09 11:44:42 +02:00
Yuri Kuznetsov 7300bec9c7 fix 2022-03-08 21:35:54 +02:00
Yuri Kuznetsov ffbfe1ca5a type fixes 2022-03-08 21:34:09 +02:00
Yuri Kuznetsov 7150f49634 type fixes 2022-03-08 21:28:17 +02:00
Yuri Kuznetsov 316ca559bd cs fix 2022-03-08 21:28:07 +02:00
Yuri Kuznetsov 17c2204dd3 type fixes 2022-03-08 21:17:23 +02:00
Yuri Kuznetsov 17728b76f1 type fixes 2022-03-08 20:02:20 +02:00
Yuri Kuznetsov b0920bf63f fix 2022-03-08 16:28:40 +02:00
Yuri Kuznetsov 2731e6cb8e type fixes 2022-03-08 16:23:06 +02:00
Yuri Kuznetsov bbc3e9c196 type fixes 2022-03-08 14:53:30 +02:00
Yuri Kuznetsov 4e4186ebf2 type fixes 2022-03-08 14:52:06 +02:00
Yuri Kuznetsov 1e9648256f type fixes 2022-03-08 14:44:55 +02:00
Yuri Kuznetsov 3166bc92b9 type fixes 2022-03-08 14:25:59 +02:00
Yuri Kuznetsov 52c8b3c312 type fixes 2022-03-08 14:06:43 +02:00
Yuri Kuznetsov 08c381cc90 Merge branch 'fix' 2022-03-08 13:37:49 +02:00
Yuri Kuznetsov 919242910d fix bool filter any 2022-03-08 13:37:36 +02:00
Yuri Kuznetsov 03d68032bf fix bool filter any 2022-03-08 13:36:32 +02:00
Yuri Kuznetsov 5e4c076b87 type fixes 2022-03-08 12:51:53 +02:00
Yuri Kuznetsov b150d84932 type fixes 2022-03-08 12:51:31 +02:00
Yuri Kuznetsov f5a709fd56 type fixes 2022-03-08 12:14:42 +02:00
Yuri Kuznetsov b1cab62b95 type fixes 2022-03-08 12:09:16 +02:00
Yuri Kuznetsov b5bef88a8d category disable children link 2022-03-08 09:27:30 +02:00
Yuri Kuznetsov 0e8b9e950b fix 2022-03-08 09:19:36 +02:00
Yuri Kuznetsov 3e021cd3aa type fixes 2022-03-07 13:50:53 +02:00
Yuri Kuznetsov 98022fdb79 type fixes 2022-03-07 13:27:04 +02:00
Yuri Kuznetsov 687187c69c type fixes 2022-03-07 13:25:00 +02:00
Yuri Kuznetsov 17ca4fa69e type fixes 2022-03-07 13:15:29 +02:00
Yuri Kuznetsov 3546ade6ab type fixes 2022-03-07 13:11:07 +02:00
Yuri Kuznetsov 78c5ec8a0c type fixes 2022-03-07 12:11:33 +02:00
Yuri Kuznetsov d9e2acbf92 type fixes 2022-03-06 19:29:44 +02:00
Yuri Kuznetsov fb5034b276 type fixes 2022-03-06 18:27:41 +02:00
Yuri Kuznetsov 1898ccbd6b type fixes 2022-03-06 17:58:44 +02:00
Yuri Kuznetsov a635bc246a type fixes 2022-03-06 17:55:39 +02:00
Yuri Kuznetsov 642b63d68e type fix 2022-03-06 16:03:10 +02:00
Yuri Kuznetsov d7ed77396c type fixes 2022-03-06 16:02:04 +02:00
Yuri Kuznetsov 205ad80e51 type fixes 2022-03-06 15:48:57 +02:00
Yuri Kuznetsov 8592a411ee type fixes 2022-03-06 15:46:23 +02:00
Yuri Kuznetsov 61d78e8f76 typo fix 2022-03-06 14:58:35 +02:00
Yuri Kuznetsov bad19eea2e fix 2022-03-06 14:55:57 +02:00
Yuri Kuznetsov 16ffca9590 type fixes 2022-03-06 14:53:16 +02:00
Yuri Kuznetsov 846e3eb01a type fixes 2022-03-06 14:33:11 +02:00
Yuri Kuznetsov feeda48844 type fixes 2022-03-06 14:29:41 +02:00
Yuri Kuznetsov 9e4c555ab1 type fixes 2022-03-06 14:21:55 +02:00
Yuri Kuznetsov dbf20bfff6 type fixes 2022-03-06 13:04:41 +02:00
Yuri Kuznetsov 9449d8364b type fixes 2022-03-06 10:34:46 +02:00
Yuri Kuznetsov 03131507bc type fixes 2022-03-06 10:31:54 +02:00
Yuri Kuznetsov 0b0a1943d0 type fixes 2022-03-06 10:23:45 +02:00
Yuri Kuznetsov 4d5899ef55 type fixes 2022-03-06 10:19:45 +02:00
Yuri Kuznetsov 93ddee9eee type fixes 2022-03-06 10:14:03 +02:00
Yuri Kuznetsov 90e435f495 type fixes 2022-03-06 10:03:59 +02:00
Yuri Kuznetsov 7da39f4228 type fixes 2022-03-05 21:42:53 +02:00
Yuri Kuznetsov b7025bf834 type fixes 2022-03-05 18:01:43 +02:00
Yuri Kuznetsov bc4dbacafb type fixes 2022-03-05 17:25:36 +02:00
Yuri Kuznetsov 80c2a69d39 type fixes 2022-03-05 17:08:24 +02:00
Yuri Kuznetsov 36e59d3d61 type fix 2022-03-05 15:59:32 +02:00
Yuri Kuznetsov 37f8247bbf type fixes 2022-03-05 14:41:49 +02:00
Yuri Kuznetsov ead8f77267 fix test 2022-03-05 12:47:32 +02:00
Yuri Kuznetsov b465d88531 fix 2022-03-05 12:30:00 +02:00
Yuri Kuznetsov a2e37e05a6 type fixes 2022-03-05 12:10:52 +02:00
Yuri Kuznetsov 518e57e316 css fix 2022-03-04 13:15:21 +02:00
Yuri Kuznetsov 258d2f03f2 fix css 2022-03-04 13:07:44 +02:00
Yuri Kuznetsov 1b212b27d7 css fix 2022-03-04 13:06:33 +02:00
Yuri Kuznetsov 2e927fd4dc css fix 2022-03-04 12:55:58 +02:00
Yuri Kuznetsov cbc58e2ebf css fix 2022-03-04 12:32:45 +02:00
Yuri Kuznetsov a2fd0dc985 css fix 2022-03-04 12:29:05 +02:00
OSAMA BASHIR a89a399b87 Update select-icon.js (#2242) 2022-03-03 19:58:17 +02:00
Yuri Kuznetsov bb018f6a0f css fix 2022-03-03 13:32:14 +02:00
Yuri Kuznetsov 6e01ac50c8 fix css 2022-03-03 13:23:38 +02:00
Yuri Kuznetsov 50c5f5974d fix css 2022-03-03 12:49:52 +02:00
Yuri Kuznetsov fce940a291 email filter refactoring and fix 2022-03-02 13:56:40 +02:00
Yuri Kuznetsov e08459d1c6 Merge branch 'fix' 2022-03-01 21:21:47 +02:00
Yuri Kuznetsov 5b6889d554 fix kanban scroll 2022-03-01 21:21:18 +02:00
Yuri Kuznetsov 80babbca13 css fixes 2022-03-01 20:40:50 +02:00
Yuri Kuznetsov 7208966e1d update flotr 2022-02-23 16:52:43 +02:00
Yuri Kuznetsov 48c1a5d6d3 type fixes 2022-02-22 17:32:41 +02:00
Yuri Kuznetsov 930f45b93a disable hooks for extensions 2022-02-22 13:46:39 +02:00
Yuri Kuznetsov 992fad8102 css fix 2022-02-22 13:02:48 +02:00
Yuri Kuznetsov 420662132c fix css 2022-02-22 12:39:23 +02:00
Yuri Kuznetsov d54e77a63f type fixes 2022-02-22 12:29:11 +02:00
Yuri Kuznetsov 0b60fbbb59 getEntityType final 2022-02-22 12:00:44 +02:00
Yuri Kuznetsov 0f94a7b65e fix link multiple duplicator 2022-02-21 17:23:59 +02:00
Yuri Kuznetsov f8bbc0918c type fixes 2022-02-21 17:08:26 +02:00
Yuri Kuznetsov 6e5b4b1483 type fixes 2022-02-21 16:10:08 +02:00
Yuri Kuznetsov 15130fbe28 type fixes 2022-02-21 15:31:39 +02:00
Yuri Kuznetsov 27f0d9fb86 type fixes 2022-02-21 14:18:24 +02:00
Yuri Kuznetsov ecf7dc54e0 type fixes 2022-02-21 13:34:19 +02:00
Yuri Kuznetsov 0598e82196 type fixes 2022-02-21 13:27:00 +02:00
Yuri Kuznetsov 32abc4b554 type fixes 2022-02-21 12:45:42 +02:00
Yuri Kuznetsov d499719c08 typo fix 2022-02-21 12:17:01 +02:00
Yuri Kuznetsov c105af939f dark iframe fallback 2022-02-21 11:26:04 +02:00
Yuri Kuznetsov 444245d2e1 acl support portal user check from non-portal app 2022-02-18 15:31:00 +02:00
Yuri Kuznetsov 63aaa2fbb0 select maanger factory use acl provider 2022-02-18 13:38:11 +02:00
Yuri Kuznetsov 3da9c3da8d css fix 2022-02-18 12:02:15 +02:00
Yuri Kuznetsov 381524203b calendar no shade transparent 2022-02-18 11:47:49 +02:00
Yuri Kuznetsov 347a8aa660 fix colors 2022-02-18 11:44:03 +02:00
Yuri Kuznetsov 4a83eb125d fix css 2022-02-18 11:36:22 +02:00
Yuri Kuznetsov bfddc4ba90 fix 2022-02-17 18:24:45 +02:00
Yuri Kuznetsov 932e5ce461 style fix 2022-02-17 17:55:46 +02:00
Yuri Kuznetsov fb45af1048 css fix 2022-02-17 17:34:43 +02:00
Yuri Kuznetsov 5aa154459d type fix 2022-02-17 17:14:31 +02:00
Yuri Kuznetsov 41139f52c8 type fix 2022-02-17 17:11:10 +02:00
Yuri Kuznetsov e5a0774e3e type fix 2022-02-17 16:53:09 +02:00
Yuri Kuznetsov 0f020bb3ba type fix 2022-02-17 13:59:49 +02:00
Yuri Kuznetsov c3d1c773e0 type fixes 2022-02-17 13:25:25 +02:00
Yuri Kuznetsov 38dd599b1e fix 2022-02-17 12:00:59 +02:00
Yuri Kuznetsov 701cc2a6d7 Merge branch 'fix' 2022-02-17 11:34:58 +02:00
Yuri Kuznetsov fc9e06d7aa fix 2022-02-17 11:34:52 +02:00
Yuri Kuznetsov ba10c9278f css fix 2022-02-17 11:31:46 +02:00
Yuri Kuznetsov 2a0b645a2d css fix 2022-02-17 11:25:41 +02:00
Yuri Kuznetsov c324b63917 dark theme fixes 2022-02-17 11:21:43 +02:00
Yuri Kuznetsov da425df98f fix css 2022-02-16 10:54:15 +02:00
Yuri Kuznetsov 005356d6c3 dark theme fixes 2022-02-16 10:52:48 +02:00
Yuri Kuznetsov 0d1cc3dac9 dark theme changes 2022-02-16 10:43:36 +02:00
Yuri Kuznetsov 19ae21d6b3 fix package 2022-02-16 09:58:48 +02:00
Yuri Kuznetsov 4d1a2ae4df css fix 2022-02-15 15:58:29 +02:00
Yuri Kuznetsov a7d8d9b0e0 css fix 2022-02-15 15:54:25 +02:00
Yuri Kuznetsov 98922f0b84 varchar email address field 2022-02-15 13:21:35 +02:00
Yuri Kuznetsov 5784c79f9f cs fix 2022-02-15 12:48:54 +02:00
Yuri Kuznetsov b027b36b54 ref 2022-02-15 12:41:57 +02:00
Yuri Kuznetsov 91100974c3 ref 2022-02-15 11:55:34 +02:00
Taras Machyshyn 1f6300e3a4 Installation: Fix displaying day of week 2022-02-11 17:17:14 +02:00
Yuri Kuznetsov 94b15991ac object function changes 2022-02-11 17:11:52 +02:00
Taras Machyshyn 3b976b6d26 Display upgrade statuses 2022-02-11 16:35:51 +02:00
Yuri Kuznetsov 90a18de806 object clear 2022-02-11 13:51:14 +02:00
Yuri Kuznetsov 0e5ff9f64a object functions 2022-02-11 13:44:56 +02:00
Yuri Kuznetsov 3fed1a5ae8 fix 2022-02-11 13:01:55 +02:00
Yuri Kuznetsov 3b414d1077 use npm ci 2022-02-11 12:28:16 +02:00
Yuri Kuznetsov 4cb67cd4df dark theme fix 2022-02-10 17:30:56 +02:00
Yuri Kuznetsov be632b485d activities dashlet rerender fix 2022-02-10 17:25:43 +02:00
Yuri Kuznetsov 7edf109743 cs fix 2022-02-10 17:24:29 +02:00
Yuri Kuznetsov ad8ee0e8ed don't re-render record list dashlet if collection not changed 2022-02-10 17:16:08 +02:00
Yuri Kuznetsov 9b9f1e84d5 cs fix 2022-02-10 16:53:21 +02:00
Yuri Kuznetsov fba89354b2 type fix 2022-02-10 13:51:58 +02:00
Yuri Kuznetsov 45b3ec5cde fix 2022-02-10 13:45:15 +02:00
Taras Machyshyn 095f82df1c 2022 year 2022-02-10 12:12:23 +02:00
Yuri Kuznetsov 008a37701f address field empty null 2022-02-09 17:43:15 +02:00
Yuri Kuznetsov f563194445 fix calendar dark theme 2022-02-09 17:21:17 +02:00
Yuri Kuznetsov 38360e7e78 formula field insert function position after opening bracket 2022-02-09 16:41:10 +02:00
Yuri Kuznetsov c30b907aa0 npm version restriction 2022-02-09 14:28:48 +02:00
Yuri Kuznetsov 7ec559ea42 fix integration test workflow 2022-02-09 14:23:11 +02:00
Yuri Kuznetsov 91aeacbf35 formula null coalescing 2022-02-09 12:59:14 +02:00
Yuri Kuznetsov 223304bc63 formula parse int parse float 2022-02-09 11:53:27 +02:00
Yuri Kuznetsov a4910e5a84 Merge branch 'fix' 2022-02-09 11:37:14 +02:00
Arkadiy 34f5d9d5b1 fix process setup handlers (#2228) 2022-02-09 09:37:06 +02:00
Yuri Kuznetsov be62327509 string split function 2022-02-08 17:18:14 +02:00
Yuri Kuznetsov 9832bb54f9 update to npm 8 and update minimist 2022-02-08 15:53:29 +02:00
Yuri Kuznetsov 09b0d68786 cleanup 2022-02-08 14:15:05 +02:00
Yuri Kuznetsov 99da14b29b remove grunt-chmod 2022-02-08 13:58:56 +02:00
Yuri Kuznetsov e4102aa1f7 package update 2022-02-08 13:21:41 +02:00
Yuri Kuznetsov 00f63b87a3 update npm packages 2022-02-08 12:40:56 +02:00
Yuri Kuznetsov 692940047e Merge branch 'fix' 2022-02-08 11:57:27 +02:00
Yuri Kuznetsov cdf8a43b28 fix forward email 2022-02-08 11:55:57 +02:00
Yuri Kuznetsov d24ad99f26 Merge branch 'fix' 2022-02-08 11:51:57 +02:00
Taras Machyshyn b9b62e9f85 Test fixes 2022-02-08 11:49:09 +02:00
Yuri Kuznetsov e3d53056d1 fix followed 2022-02-08 11:48:53 +02:00
Yuri Kuznetsov 75e8cf538a fix kanbanStatusIgnoreList 2022-02-08 11:48:28 +02:00
Yuri Kuznetsov 80c2944f0e v 2022-02-07 14:29:42 +02:00
Yuri Kuznetsov b3f58b8002 time part ignore bad formatted value 2022-02-07 14:28:17 +02:00
Yuri Kuznetsov 83634706c2 label fix 2022-02-04 17:48:39 +02:00
Yuri Kuznetsov 44b96270a3 float field: decimal places 2022-02-04 17:44:14 +02:00
Yuri Kuznetsov ecffd310b7 fix 2022-02-04 17:33:12 +02:00
Yuri Kuznetsov 8d2238e04a meeting/call duplicate from modal view 2022-02-04 14:49:49 +02:00
Yuri Kuznetsov d6f0bc063e cleanup 2022-02-04 14:36:00 +02:00
Yuri Kuznetsov 4bec0b4795 delete entity from config params 2022-02-04 14:15:08 +02:00
Yuri Kuznetsov a90182a7b1 fix css kanban 2022-02-04 12:06:48 +02:00
Yuri Kuznetsov cf44d4f154 update package 2022-02-04 11:59:52 +02:00
Yuri Kuznetsov 231720a9a0 update package 2022-02-04 11:54:47 +02:00
Yuri Kuznetsov 26ab4abdec update packages 2022-02-04 11:46:21 +02:00
Yuri Kuznetsov daab13b78a package updates 2022-02-04 11:41:16 +02:00
Yuri Kuznetsov 27946bcbac foreing field skip disabled link 2022-02-03 18:18:39 +02:00
Yuri Kuznetsov ee636131f5 delete foreign field on link removal 2022-02-03 18:14:23 +02:00
Yuri Kuznetsov 71f5205c28 kanbanMinColumnWidth 2022-02-03 17:40:26 +02:00
Yuri Kuznetsov f9b46b3b95 conversionDisabled 2022-02-03 17:02:44 +02:00
Yuri Kuznetsov 5d6e1319c0 fix draft email acl 2022-02-03 14:25:21 +02:00
Yuri Kuznetsov cdbf680788 fix email access checker 2022-02-03 14:12:58 +02:00
Yuri Kuznetsov 8118e27bd8 fix error msg 2022-02-03 14:00:48 +02:00
Yuri Kuznetsov 5006e2e4fa fix email account 2022-02-03 13:51:48 +02:00
Yuri Kuznetsov 6b85fb95a2 fix modal 2022-02-03 13:47:22 +02:00
Yuri Kuznetsov 395fda2c5a zend bridge 2022-02-03 13:30:30 +02:00
Yuri Kuznetsov 9408a1637d modal collapse 2022-02-03 12:17:56 +02:00
Yuri Kuznetsov 09de0e3664 cs fix 2022-02-02 12:19:17 +02:00
Yuri Kuznetsov e8b3582040 css fix 2022-02-01 17:13:31 +02:00
Yuri Kuznetsov 3bff5e3fb7 cleanup 2022-02-01 17:07:53 +02:00
Yuri Kuznetsov e886293495 css fix 2022-02-01 17:07:20 +02:00
Yuri Kuznetsov 56d57c3fee color fix 2022-02-01 16:47:52 +02:00
Yuri Kuznetsov 03ade6eabc dark theme changes 2022-02-01 16:35:04 +02:00
Yuri Kuznetsov 732ed8924d fix is read 2022-02-01 14:15:04 +02:00
Yuri Kuznetsov 87051573d8 update npm packages 2022-02-01 13:42:01 +02:00
Yuri Kuznetsov bd66449507 fix npm dep 2022-02-01 13:38:57 +02:00
Yuri Kuznetsov e899a82840 fix npm deps 2022-02-01 13:37:05 +02:00
Yuri Kuznetsov aba0c21f71 update grunt-replace 2022-02-01 12:52:03 +02:00
Yuri Kuznetsov 03838cfae8 npm update fixes 2022-02-01 12:48:48 +02:00
Yuri Kuznetsov 61772b8e40 fix workflow 2022-02-01 12:40:34 +02:00
Yuri Kuznetsov b445de322c compose email full form 2022-02-01 12:37:07 +02:00
Yuri Kuznetsov db2b8b63be cs fix 2022-02-01 12:04:11 +02:00
Yuri Kuznetsov d355db6bb1 email fixes 2022-02-01 11:45:31 +02:00
Yuri Kuznetsov a529edc4b2 email edit button send 2022-02-01 11:39:04 +02:00
Yuri Kuznetsov d1effdae81 email draft improvements 2022-01-31 17:24:07 +02:00
Yuri Kuznetsov a7b959a1d9 email send button left 2022-01-31 16:59:05 +02:00
Yuri Kuznetsov 951f026f8f cs fix 2022-01-31 16:02:17 +02:00
Yuri Kuznetsov 1c8506eee4 email draft without to address 2022-01-31 15:44:58 +02:00
Yuri Kuznetsov 22f309e02a php parse bump 2022-01-31 14:05:40 +02:00
Yuri Kuznetsov 4d9d9e4569 lock change 2022-01-31 14:00:51 +02:00
dependabot[bot] 9e1cbc5fc0 Bump path-parse from 1.0.6 to 1.0.7 (#2216)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-31 13:49:37 +02:00
Yuri Kuznetsov 6ba2733492 fuix 2022-01-31 13:44:14 +02:00
Yuri Kuznetsov 35d0ebe974 fix branch 2022-01-31 13:43:52 +02:00
Yuri Kuznetsov 5e8efcd269 integration test on fix 2022-01-31 13:41:54 +02:00
Yuri Kuznetsov 2440eb5e95 Merge branch 'hotfix/7.0.10' 2022-01-31 13:22:03 +02:00
Yuri Kuznetsov b8d2f9de30 action renderer 2022-01-28 16:54:19 +02:00
Yuri Kuznetsov 7a2ff40776 cleanup password change requests 2022-01-28 16:31:11 +02:00
Yuri Kuznetsov 56fff07662 keywords 2022-01-28 16:26:40 +02:00
Yuri Kuznetsov 434b4f880f fix phpstan ext 2022-01-28 16:22:20 +02:00
Yuri Kuznetsov f596d12e02 send access info formula 2022-01-28 16:12:37 +02:00
Yuri Kuznetsov c4be84af32 password change link 2022-01-28 13:39:28 +02:00
Yuri Kuznetsov a2b2118f9f change scheduling 2022-01-27 18:15:52 +02:00
Yuri Kuznetsov 7fee372f3d fix link multiple factory for php 8.1 2022-01-27 18:15:22 +02:00
Yuri Kuznetsov e3fe496321 move 2022-01-27 12:52:40 +02:00
Yuri Kuznetsov 5c890d3e0e fix workflow 2022-01-27 12:31:51 +02:00
Yuri Kuznetsov 496d132c23 fix edit disabled 2022-01-27 12:29:17 +02:00
Yuri Kuznetsov 68fb2d45e1 Update README.md 2022-01-26 22:11:00 +02:00
Yuri Kuznetsov e44b0d2c22 fix 2022-01-26 18:07:19 +02:00
Yuri Kuznetsov 5e87a410c8 integration testing workflow 2022-01-26 18:05:26 +02:00
Yuri Kuznetsov 6f34b040cf fix modal backdrop 2022-01-26 14:57:13 +02:00
Yuri Kuznetsov 0d0ad8b581 fix confirm leaveout backdrop click 2022-01-26 14:29:41 +02:00
Yuri Kuznetsov a3eac057fc modal dialog backdrop 2022-01-26 13:10:08 +02:00
Yuri Kuznetsov 489b3a7629 formula sandbox save entity 2022-01-26 12:27:57 +02:00
Yuri Kuznetsov 45aff4a7b7 detail layout fields incompatibility 2022-01-26 12:19:09 +02:00
Yuri Kuznetsov 4653caef47 array functions accept null 2022-01-25 17:00:08 +02:00
Yuri Kuznetsov 1d9b988206 integration test env config 2022-01-25 16:35:11 +02:00
Yuri Kuznetsov ebedd6d722 fix 2022-01-25 15:45:44 +02:00
Yuri Kuznetsov b0311d1610 type fix 2022-01-25 14:24:14 +02:00
Yuri Kuznetsov 158573f63e type fixes 2022-01-25 14:20:02 +02:00
Yuri Kuznetsov 93172f42b7 updates 2022-01-25 13:53:55 +02:00
Yuri Kuznetsov b3476fe3dd update laminas 2022-01-25 13:49:11 +02:00
Yuri Kuznetsov 1f85781c68 test 8.1 2022-01-25 13:34:19 +02:00
Yuri Kuznetsov 595548acf0 cleanup 2022-01-25 13:30:10 +02:00
Yuri Kuznetsov a32fffb36d ci 2022-01-25 13:29:42 +02:00
Taras Machyshyn 3de5961c86 Test fixes 2022-01-24 15:44:58 +02:00
Yuri Kuznetsov 1b4727917b Merge branch 'hotfix/7.0.10' 2022-01-24 12:14:52 +02:00
Yuri Kuznetsov 499cf36edf fix followed 2022-01-24 12:13:57 +02:00
Yuri Kuznetsov bb1856a47e Merge branch 'hotfix/7.0.10' 2022-01-21 16:53:41 +02:00
Yuri Kuznetsov 0226a6a4f7 fix kanbanStatusIgnoreList 2022-01-21 16:53:25 +02:00
Yuri Kuznetsov 6c9a542b9c entity manager edit page 2022-01-21 16:43:50 +02:00
Yuri Kuznetsov 59ae933886 Merge branch 'stable' 2022-01-21 12:43:52 +02:00
Yuri Kuznetsov b22464c02f v 2022-01-21 10:58:42 +02:00
Yuri Kuznetsov 4615781af8 style fix 2022-01-20 14:30:27 +02:00
Yuri Kuznetsov ce0efea447 fix admin labels 2022-01-20 14:10:51 +02:00
Yuri Kuznetsov 378a2c6902 fix 2022-01-20 13:43:54 +02:00
Yuri Kuznetsov ab3fc73a18 dev 2022-01-20 13:30:37 +02:00
Yuri Kuznetsov b3c56acd15 dev 2022-01-20 12:43:08 +02:00
Yuri Kuznetsov 2c9b60dbec dev 2022-01-19 17:28:02 +02:00
Yuri Kuznetsov 620a18cd72 dev 2022-01-19 17:09:48 +02:00
Yuri Kuznetsov ba832b8ad9 dev 2022-01-19 17:03:40 +02:00
Yuri Kuznetsov bcfffd3527 target list customizable 2022-01-19 12:41:21 +02:00
Yuri Kuznetsov 022da56bf4 change 2022-01-19 12:13:21 +02:00
Yuri Kuznetsov 12549e2587 type fix 2022-01-18 17:43:26 +02:00
Yuri Kuznetsov 57ab075d2f type fixes 2022-01-18 17:39:27 +02:00
Yuri Kuznetsov 1510322708 refactoring 2022-01-18 16:27:22 +02:00
Yuri Kuznetsov 22c06c88dd fix 2022-01-18 14:00:03 +02:00
Yuri Kuznetsov 7a4b20269d cs fix 2022-01-18 13:52:28 +02:00
Yuri Kuznetsov 79d76d8147 cleanup 2022-01-18 13:52:06 +02:00
Yuri Kuznetsov 2bf2e4ef3d update marked 2022-01-18 13:40:42 +02:00
Yuri Kuznetsov 61ec16ae12 fix 2022-01-18 13:05:18 +02:00
Yuri Kuznetsov 8415307221 cs fix 2022-01-18 12:58:43 +02:00
Yuri Kuznetsov 6da466f9c4 import admin link 2022-01-18 12:24:12 +02:00
Yuri Kuznetsov 210ac2ef2a fix 2022-01-18 12:06:51 +02:00
Yuri Kuznetsov 988f8090f2 fix 2022-01-18 12:02:36 +02:00
Yuri Kuznetsov e2db825fc2 cs fix 2022-01-17 17:34:17 +02:00
Yuri Kuznetsov cc9ed3f365 admin links 2022-01-17 17:24:09 +02:00
Yuri Kuznetsov 0763b71396 admin link 2022-01-17 16:27:44 +02:00
Yuri Kuznetsov af2158f647 fix 2022-01-17 16:06:36 +02:00
Yuri Kuznetsov 4ad636a767 fix 2022-01-17 14:52:20 +02:00
Yuri Kuznetsov dffb484fff formula fetch null 2022-01-17 13:51:05 +02:00
Yuri Kuznetsov 6582917daf formula sandbox 2022-01-17 12:58:16 +02:00
Yuri Kuznetsov 7bd109eca6 cs fix 2022-01-14 13:07:11 +02:00
Yuri Kuznetsov c0d85864ce fix 2022-01-14 11:49:03 +02:00
Yuri Kuznetsov 7007d58609 fix 2022-01-13 17:57:20 +02:00
Yuri Kuznetsov 23a54a0fa4 formula strict syntax 2022-01-13 17:56:19 +02:00
Yuri Kuznetsov 491a66ac4c formula strict syntax 2022-01-13 17:49:36 +02:00
Yuri Kuznetsov e5c3bfb528 formula more strict syntax 2022-01-13 17:36:05 +02:00
Yuri Kuznetsov f807bdee42 fix 2022-01-13 16:57:29 +02:00
Yuri Kuznetsov 67b3462361 fix 2022-01-13 16:53:00 +02:00
Yuri Kuznetsov cd1eccd998 fix 2022-01-13 16:19:44 +02:00
Yuri Kuznetsov 63b108b18b cs fix 2022-01-13 16:17:59 +02:00
Yuri Kuznetsov 3907e2d84a fix 2022-01-13 14:45:53 +02:00
Yuri Kuznetsov 4deeac9513 formula check syntax 2022-01-13 14:33:08 +02:00
Yuri Kuznetsov 4c11bf663b fix 2022-01-13 13:55:12 +02:00
Yuri Kuznetsov d8649cb305 type fix 2022-01-13 13:19:58 +02:00
Yuri Kuznetsov eff2a022bf attachment preview non dragable 2022-01-13 12:57:39 +02:00
Yuri Kuznetsov ad61b457d8 cs fix 2022-01-13 12:53:32 +02:00
Yuri Kuznetsov 22c3c92792 entity manager formula ui improvement 2022-01-13 12:36:34 +02:00
Yuri Kuznetsov 5919016aad fix update note 2022-01-12 17:45:00 +02:00
Yuri Kuznetsov 14c12a2528 cs fix 2022-01-12 17:16:27 +02:00
Yuri Kuznetsov bca1f08f05 color fix 2022-01-12 16:28:03 +02:00
Yuri Kuznetsov 2ce656731d fix label 2022-01-12 14:32:30 +02:00
Yuri Kuznetsov 6d7fb4939d fix export 2022-01-12 14:27:22 +02:00
Yuri Kuznetsov 3cb8deab2c export in idle 2022-01-12 14:07:38 +02:00
Yuri Kuznetsov b501007d44 cleanup 2022-01-11 18:27:03 +02:00
Yuri Kuznetsov 70f7312f20 fix 2022-01-11 18:26:38 +02:00
Yuri Kuznetsov b7b5b1b3cb fix 2022-01-11 16:43:32 +02:00
Yuri Kuznetsov 44001d9764 Merge branch 'hotfix/7.0.9' 2022-01-11 13:04:09 +02:00
Yuri Kuznetsov 5dcfbf00d2 fix email address 2022-01-11 13:03:48 +02:00
Yuri Kuznetsov 8ca52259cd Merge branch 'hotfix/7.0.9' 2022-01-11 12:25:05 +02:00
Yuri Kuznetsov f4753f773f modal backdrop fix 2022-01-11 12:22:51 +02:00
Yuri Kuznetsov 0f3f9a827b mail flags fix 2022-01-11 11:41:30 +02:00
Yuri Kuznetsov a90745aded test 2022-01-11 11:20:35 +02:00
Yuri Kuznetsov 96a1ab6ad6 cleanup 2022-01-10 18:07:17 +02:00
Yuri Kuznetsov f49b6a072c refactoring 2022-01-10 18:03:48 +02:00
Yuri Kuznetsov 146ca6ae2a fix 2022-01-10 17:44:10 +02:00
Yuri Kuznetsov b775e16c1f refactoring 2022-01-10 17:39:58 +02:00
Yuri Kuznetsov 043df4bc73 select folder style fix 2022-01-10 16:39:19 +02:00
Yuri Kuznetsov 7d660f5127 fix 2022-01-10 16:23:31 +02:00
Yuri Kuznetsov 71064cd6ee cleanup 2022-01-10 14:13:27 +02:00
Yuri Kuznetsov 93f2f962e2 email refacctoring 2022-01-10 14:02:47 +02:00
Yuri Kuznetsov 8eb7f932fc refactoring 2022-01-10 12:39:14 +02:00
Yuri Kuznetsov d2fb6edde1 refactoring 2022-01-10 11:24:10 +02:00
Yuri Kuznetsov ed59886897 refactoring 2022-01-10 11:14:31 +02:00
Yuri Kuznetsov 07b6c64640 fix 2022-01-08 20:04:01 +02:00
Yuri Kuznetsov 420e5fa3a5 fix 2022-01-08 19:52:33 +02:00
Yuri Kuznetsov 3e12428e54 fix 2022-01-08 19:42:20 +02:00
Yuri Kuznetsov 4d2a2e9b20 cs fix 2022-01-08 19:34:15 +02:00
Yuri Kuznetsov 5650a00ab1 mail refactoring 2022-01-08 19:15:57 +02:00
Yuri Kuznetsov 2eb42a3313 fix 2022-01-06 14:57:12 +02:00
Yuri Kuznetsov 84d4d4f11b email notify fix 2022-01-06 14:36:00 +02:00
Yuri Kuznetsov b6a9182838 Merge branch 'hotfix/7.0.9' 2022-01-06 14:26:36 +02:00
Yuri Kuznetsov a6593f574e fix 2022-01-06 14:26:26 +02:00
Yuri Kuznetsov d277df1e49 cleanup 2022-01-06 14:26:08 +02:00
Yuri Kuznetsov 5721f6d737 email account refactoring 2022-01-06 14:15:48 +02:00
Yuri Kuznetsov a07b7530df Merge branch 'hotfix/7.0.9' 2022-01-06 14:15:21 +02:00
Yuri Kuznetsov bff4e859cd fix notice 2022-01-06 14:07:57 +02:00
Yuri Kuznetsov 0944d47c47 Merge branch 'hotfix/7.0.9' 2022-01-05 17:14:33 +02:00
Yuri Kuznetsov d725cce8a7 fix email to case attachments copy 2022-01-05 17:14:21 +02:00
Yuri Kuznetsov a730f47ceb sms status update 2022-01-05 11:19:33 +02:00
Yuri Kuznetsov 8e3d743023 cs fix 2022-01-03 16:23:54 +02:00
Yuri Kuznetsov cdb2b8a8a8 cs fix and text resize fix 2022-01-03 16:20:58 +02:00
Yuri Kuznetsov a453be93be type fixes 2022-01-03 16:04:23 +02:00
Yuri Kuznetsov 3cef36da3e type fixes 2022-01-03 15:58:05 +02:00
Yuri Kuznetsov 691343c9b2 type fixes 2022-01-03 15:52:15 +02:00
Yuri Kuznetsov 2453fe9ea5 textarea resize vertical 2022-01-03 12:55:19 +02:00
Yuri Kuznetsov c0594b80e9 css fixes 2022-01-03 12:47:43 +02:00
Yuri Kuznetsov 5239df2b95 fixes 2022-01-03 12:37:13 +02:00
Yuri Kuznetsov 0f1ac3af10 fixes 2022-01-03 12:31:11 +02:00
Yuri Kuznetsov d5f42a46b3 array, multi-enum: don't re-render if same option list is set 2022-01-03 12:11:58 +02:00
Yuri Kuznetsov 0ae6fdbac2 cs fix 2022-01-03 12:05:43 +02:00
Yuri Kuznetsov f214aaba2a cs fix 2022-01-03 11:50:34 +02:00
Yuri Kuznetsov 67a4208b3b dark theme fixes 2022-01-03 11:29:13 +02:00
Yuri Kuznetsov 5991bb948b drop php 7.3 2022-01-03 11:04:01 +02:00
Yuri Kuznetsov 50bfa1ae99 update doctrine 2022-01-03 10:50:55 +02:00
Yuri Kuznetsov 409f19bb29 fix acceptance status modal 2021-12-31 17:23:30 +02:00
Yuri Kuznetsov c631dd7a0f css fix 2021-12-31 17:20:56 +02:00
Yuri Kuznetsov db74afcfb4 css changes 2021-12-31 17:17:45 +02:00
Yuri Kuznetsov ac6bdcc30a css fix 2021-12-30 16:39:35 +02:00
Yuri Kuznetsov 2556f89637 style fixes 2021-12-30 16:11:14 +02:00
Yuri Kuznetsov 3ec25d5a97 cs fix- 2021-12-30 16:07:01 +02:00
Yuri Kuznetsov c9bdd8231b style fix 2021-12-30 15:54:26 +02:00
Yuri Kuznetsov 9d372155fb style fix 2021-12-30 15:49:09 +02:00
Yuri Kuznetsov 4ebdcf3637 Merge branch 'hotfix/7.0.9' 2021-12-30 15:40:33 +02:00
Eymen Elkum 150e41a26d fix folder name (#2180)
* fix folder name

* remove trim folder name on inbound
2021-12-30 15:39:28 +02:00
Yuri Kuznetsov 79c4a8351d body plain fix 2021-12-30 15:33:12 +02:00
Yuri Kuznetsov 0f6c340793 textarea disable resize 2021-12-30 14:10:20 +02:00
Yuri Kuznetsov c7fe7ac014 wysiwyg supporting image paste 2021-12-30 13:35:29 +02:00
Yuri Kuznetsov a0939c714c fix css 2021-12-30 13:12:46 +02:00
Yuri Kuznetsov d57098dd50 wysiwyg duplicate and email body forward duplicate 2021-12-30 13:06:14 +02:00
Yuri Kuznetsov 4b521d1481 X-Duplicate-Source-Id 2021-12-30 12:22:03 +02:00
Yuri Kuznetsov 919cea0703 passing x-duplicate-source-id 2021-12-30 12:01:49 +02:00
Yuri Kuznetsov 6aa372c955 entity duplicator framework 2021-12-30 11:22:15 +02:00
Yuri Kuznetsov 0e873fea52 mass action notify 2021-12-29 15:53:45 +02:00
Yuri Kuznetsov 44003e8130 test 2021-12-29 15:25:29 +02:00
Yuri Kuznetsov 2a4bd851ab fixes 2021-12-29 13:23:00 +02:00
Yuri Kuznetsov cb5fdfba85 cleanup 2021-12-29 12:51:27 +02:00
Yuri Kuznetsov 8973959910 type fix 2021-12-29 12:51:21 +02:00
Yuri Kuznetsov 383f411739 mass action testand fix 2021-12-29 12:39:08 +02:00
Taras Machyshyn c500b30484 Notification fix 2021-12-29 12:15:39 +02:00
Yuri Kuznetsov 91fec4ff95 Merge branch 'hotfix/7.0.9' 2021-12-28 18:36:18 +02:00
Yuri Kuznetsov 5266e8eeba email address fix 2021-12-28 18:31:05 +02:00
Yuri Kuznetsov d96bf13526 fix 2021-12-28 18:01:18 +02:00
Yuri Kuznetsov bf017ccc8a mass action cleanup 2021-12-28 17:55:03 +02:00
Yuri Kuznetsov c1ca41942f mass action idle 2021-12-28 17:28:52 +02:00
Yuri Kuznetsov 8c8e44b6f5 post button ux improvement 2021-12-27 11:07:46 +02:00
Yuri Kuznetsov f95824404a css fix 2021-12-27 10:44:43 +02:00
Yuri Kuznetsov 4eecc5462b phone type change 2021-12-26 11:08:43 +02:00
Yuri Kuznetsov 3a96cbae9b chevron-righr instead of right quote 2021-12-26 11:04:54 +02:00
Yuri Kuznetsov 77f3d81f27 css fix 2021-12-25 18:19:06 +02:00
Yuri Kuznetsov 7343e08abb css fixes 2021-12-25 18:04:40 +02:00
Yuri Kuznetsov 3b7b6e9ed7 cleanup 2021-12-25 17:37:40 +02:00
Yuri Kuznetsov 70a9fd95a2 css fix 2021-12-25 17:36:43 +02:00
Yuri Kuznetsov c0e64583e5 modal fixes 2021-12-25 16:17:53 +02:00
Yuri Kuznetsov 211f6bdc42 css fix 2021-12-24 17:55:59 +02:00
Yuri Kuznetsov f07440f9ef css fix 2021-12-24 17:50:27 +02:00
Yuri Kuznetsov 7f37cd40eb css fix 2021-12-24 17:47:30 +02:00
Yuri Kuznetsov b0d7b33dbc fix 2021-12-24 17:43:07 +02:00
Yuri Kuznetsov 35905aad1b fix 2021-12-24 17:38:29 +02:00
Yuri Kuznetsov 62b27475fb style changes 2021-12-24 17:35:29 +02:00
Yuri Kuznetsov 0985df234f css fix 2021-12-24 16:48:09 +02:00
Yuri Kuznetsov a05650a41a modal fixes 2021-12-24 16:20:08 +02:00
Yuri Kuznetsov 0c0744714e modal fixes 2021-12-24 16:07:33 +02:00
Yuri Kuznetsov cd60933525 summernote css fix 2021-12-24 15:50:07 +02:00
Yuri Kuznetsov 2d3deafcc6 ace theme tomorrows night 2021-12-24 15:36:20 +02:00
Yuri Kuznetsov 25508b932e ace dark mode 2021-12-24 15:29:26 +02:00
Yuri Kuznetsov 05d3610f5f requirePromise 2021-12-24 15:27:31 +02:00
Yuri Kuznetsov 5b0ef914c2 css fix 2021-12-24 13:44:13 +02:00
Yuri Kuznetsov 35f2ccecf5 calendar colors 2021-12-24 13:37:08 +02:00
Yuri Kuznetsov 122d759687 remove theme name translations 2021-12-24 13:03:57 +02:00
Yuri Kuznetsov a2c94c692a dark horizontal 2021-12-24 12:59:18 +02:00
Yuri Kuznetsov e197c6e491 css scroll 2021-12-24 12:41:52 +02:00
Yuri Kuznetsov 62ff80c1bf mass action btn fix 2021-12-24 12:10:30 +02:00
Yuri Kuznetsov 3a7cccbda2 cs fix 2021-12-24 12:01:05 +02:00
Yuri Kuznetsov 3bab92239a cs fix 2021-12-24 11:58:08 +02:00
Yuri Kuznetsov cc0b12097d cs fix 2021-12-24 11:50:36 +02:00
Yuri Kuznetsov fe09d91bf0 css fix list expanded dd 2021-12-24 11:35:51 +02:00
Yuri Kuznetsov 593ed7c5e0 Merge branch 'hotfix/7.0.9' 2021-12-24 11:32:25 +02:00
Yuri Kuznetsov e161b0da19 fix list expanded dd 2021-12-24 11:29:23 +02:00
Yuri Kuznetsov 31a2ef63ec cs fix 2021-12-24 11:19:33 +02:00
Yuri Kuznetsov facc26a795 fix css 2021-12-23 17:47:41 +02:00
Yuri Kuznetsov fb4a4f2340 css cleanup 2021-12-23 17:38:58 +02:00
Yuri Kuznetsov 42cab04edd css fix 2021-12-23 17:25:16 +02:00
Yuri Kuznetsov 247521ba37 dark theme 2021-12-23 17:17:23 +02:00
Yuri Kuznetsov 9f932462a8 fix image 2021-12-22 16:23:17 +02:00
Yuri Kuznetsov 3f7c42a05e theme changes 2021-12-21 11:45:42 +02:00
Yuri Kuznetsov 3ca502ba6e css changes 2021-12-20 16:59:30 +02:00
Yuri Kuznetsov 8afe22f637 theme colors 2021-12-20 15:47:34 +02:00
Yuri Kuznetsov a615eed985 Merge branch 'master' into hotfix/7.0.9 2021-12-20 15:38:14 +02:00
Yuri Kuznetsov df56679c4e rename themes 2021-12-20 15:37:30 +02:00
Yuri Kuznetsov 23b2e87127 fix 2021-12-19 09:42:59 +02:00
Yuri Kuznetsov 9391c68ad0 fix plural link name 2021-12-19 09:10:52 +02:00
Taras Machyshyn 8a15278af2 Installation fix 2021-12-14 16:12:22 +02:00
Yuri Kuznetsov 8f2c12cba7 remove css 2021-12-13 15:49:04 +02:00
Yuri Kuznetsov 842c028fb5 css changes 2021-12-13 15:37:16 +02:00
Yuri Kuznetsov 27aae16634 cleanup 2021-12-13 15:21:39 +02:00
Yuri Kuznetsov 0206da6d4f css fix 2021-12-13 13:09:42 +02:00
Yuri Kuznetsov 687f308b40 merge 2021-12-13 12:54:11 +02:00
Eymen Elkum 20eced4373 personal & group email account: ignore internal fields from being duplicated (#2178)
Co-authored-by: Eymen Elkum <eymen@eblasoft.com.tr>
2021-12-13 12:45:03 +02:00
Yuri Kuznetsov 7d0c793e47 kanban improvements 2021-12-13 12:36:06 +02:00
Yuri Kuznetsov ead21ea2ee kanban improvements 2021-12-13 12:11:43 +02:00
Yuri Kuznetsov 45ef1a4de5 kanban changes 2021-12-12 13:09:35 +02:00
Yuri Kuznetsov 28b866830e kanban changes 2021-12-10 17:08:51 +02:00
Yuri Kuznetsov 4d68e35f3b fix 2021-12-09 16:50:47 +02:00
Yuri Kuznetsov 12a2069fcf kanban scroll 2021-12-09 16:34:01 +02:00
Yuri Kuznetsov b87d2459cc kanban create 2021-12-09 14:06:08 +02:00
Yuri Kuznetsov 7c1c25577c save event 2021-12-09 12:38:58 +02:00
Yuri Kuznetsov 9d6e0ba54b cs fix 2021-12-09 12:38:58 +02:00
Yuri Kuznetsov bd3c6867b5 cs fix 2021-12-09 12:38:58 +02:00
Taras Machyshyn 28c4b8ea05 Fix typo 2021-12-09 12:18:26 +02:00
Yuri Kuznetsov 7a90e30243 fix 2021-12-09 11:37:32 +02:00
Yuri Kuznetsov f482c41e6c custom global bool filterse 2021-12-08 16:35:58 +02:00
Yuri Kuznetsov 06ffafba10 send invitations from modal 2021-12-08 15:50:38 +02:00
Yuri Kuznetsov 2a07124d52 cs fix 2021-12-08 15:35:28 +02:00
Yuri Kuznetsov 65247b1c69 cs fix 2021-12-08 11:59:03 +02:00
Yuri Kuznetsov 10e4b7e5b6 cs fix 2021-12-08 11:52:46 +02:00
Yuri Kuznetsov ff3e6c34ba cs fix 2021-12-08 11:50:50 +02:00
Yuri Kuznetsov 19700cfa00 cs fix 2021-12-08 11:50:32 +02:00
Yuri Kuznetsov d0de9e5bb9 Merge branch 'hotfix/7.0.9' 2021-12-06 10:54:11 +02:00
Yuri Kuznetsov 9861653378 types 2021-12-02 18:14:46 +02:00
Yuri Kuznetsov 0a4525b75e fix 2021-12-02 16:30:22 +02:00
Yuri Kuznetsov 1c45cadcf8 fix htmlizer order related 2021-12-02 15:33:50 +02:00
Yuri Kuznetsov 83ced0d58f orm defs: no type exception 2021-12-02 12:54:17 +02:00
Yuri Kuznetsov 6ee224ffbc fix 2021-12-01 17:23:20 +02:00
Yuri Kuznetsov a060f0732b attachment container fix 2021-12-01 15:15:06 +02:00
Yuri Kuznetsov 4e2a824b1d fix 2021-12-01 11:24:26 +02:00
Yuri Kuznetsov 85c4848614 cleanup 2021-12-01 11:16:40 +02:00
Yuri Kuznetsov a5ca838b7a fix typo 2021-12-01 11:12:34 +02:00
Yuri Kuznetsov 1127f4b28c languageIsGlobal param 2021-11-30 16:04:20 +02:00
Yuri Kuznetsov e68ff3c391 fix smarty for php8.1 2021-11-29 13:46:03 +02:00
Yuri Kuznetsov c257da0e70 accept bool 1 value, fix for php 8.1 2021-11-29 13:43:07 +02:00
Yuri Kuznetsov 7669ac90ae edit fix 2021-11-26 16:14:12 +02:00
Yuri Kuznetsov 5e7ddcad1c try check usage 2021-11-26 10:48:51 +02:00
Yuri Kuznetsov 1cf773216d cs fix 2021-11-26 10:44:35 +02:00
Yuri Kuznetsov da3283f2ba fix link one saver 2021-11-25 17:12:04 +02:00
Yuri Kuznetsov 18d6a6767b notification message support markdown 2021-11-25 13:19:58 +02:00
Yuri Kuznetsov f8fd222e25 multiple bool filters fix 2021-11-24 12:21:55 +02:00
Yuri Kuznetsov fd7819f76a cs fix 2021-11-24 09:09:29 +02:00
Yuri Kuznetsov 48cfedb777 fix parent 2021-11-24 09:07:51 +02:00
Yuri Kuznetsov 9220ad8baa email to case account 2021-11-23 15:16:52 +02:00
Yuri Kuznetsov 6207c8f547 attachment take into account field level 2021-11-22 11:22:56 +02:00
Yuri Kuznetsov b9e1660f92 comment 2021-11-22 10:58:05 +02:00
Yuri Kuznetsov 8863e7da9b Merge branch 'hotfix/7.0.9' 2021-11-19 12:41:24 +02:00
Yuri Kuznetsov 3b1462ac1a complex expression field view 2021-11-19 12:40:37 +02:00
Yuri Kuznetsov 937503ab8b formula hide entity functions if no target entity type 2021-11-18 12:53:51 +02:00
Yuri Kuznetsov b3edfba0da fix 2021-11-17 12:19:47 +02:00
Yuri Kuznetsov 01a1d26a52 cs fix 2021-11-17 12:18:27 +02:00
Yuri Kuznetsov 4662fc47e9 xlsx export: fix link one 2021-11-16 12:15:11 +02:00
Yuri Kuznetsov 5b543d778d fix 2021-11-16 12:11:21 +02:00
Yuri Kuznetsov 798f56650d person name support fix 2021-11-13 10:34:30 +02:00
Yuri Kuznetsov 864c96fe56 fixes 2021-11-13 10:29:47 +02:00
Yuri Kuznetsov 4d5eecd680 Merge branch 'hotfix/7.0.9' 2021-11-12 12:44:19 +02:00
Taras Machyshyn db2216adb7 Fixed PDO parameters for Dbal connection 2021-11-11 15:31:11 +02:00
Yuri Kuznetsov ae056f4a22 type 2021-11-11 12:49:20 +02:00
Yuri Kuznetsov 5178c2fbd0 orm pdo refactoring 2021-11-11 12:47:43 +02:00
Yuri Kuznetsov 4bedaef9a8 fixes 2021-11-11 12:17:21 +02:00
Yuri Kuznetsov 42d4de77ae cs fix 2021-11-11 12:17:05 +02:00
Yuri Kuznetsov 3e0a8f0af1 fix 2021-11-11 11:40:11 +02:00
Yuri Kuznetsov 33e29e20a2 type fixes 2021-11-10 16:53:15 +02:00
Yuri Kuznetsov d2a1e8f771 fixes 2021-11-10 16:40:33 +02:00
Yuri Kuznetsov 3a68ebcbf4 type fixes 2021-11-10 16:04:31 +02:00
Yuri Kuznetsov f496f386ee type fixes 2021-11-10 15:44:09 +02:00
Yuri Kuznetsov 9e641e65ed type fixes 2021-11-10 15:34:24 +02:00
Yuri Kuznetsov d34bc6d7d2 type fixes 2021-11-10 15:10:58 +02:00
Yuri Kuznetsov 7581169f87 update jquery-ui 2021-11-10 12:58:11 +02:00
Yuri Kuznetsov 7c53701df5 npm update packages 2021-11-10 12:31:57 +02:00
Yuri Kuznetsov d273523c46 fix link multiple remove btn 2021-11-10 12:20:39 +02:00
Yuri Kuznetsov df6745ff79 cs fix 2021-11-10 12:19:37 +02:00
Yuri Kuznetsov 9327b418bf fix 2021-11-10 11:38:04 +02:00
Yuri Kuznetsov 5430fed1d1 fix 2021-11-10 11:28:29 +02:00
Yuri Kuznetsov 10285cf3d3 phpstan level 5 2021-11-09 17:47:18 +02:00
Yuri Kuznetsov c8bed9af32 fixes 2021-11-09 17:46:54 +02:00
Yuri Kuznetsov 7499703d77 fix tests 2021-11-09 17:20:24 +02:00
Yuri Kuznetsov 4e1f421dc1 fixes and cleanup 2021-11-09 17:13:25 +02:00
Yuri Kuznetsov 4ab2a0749c fixes 2021-11-09 16:43:27 +02:00
Yuri Kuznetsov 530ac9da18 type fixes 2021-11-09 16:38:00 +02:00
Yuri Kuznetsov 4069d38978 type fixes 2021-11-09 16:14:07 +02:00
Yuri Kuznetsov 4070b38190 update phpstan 2021-11-09 15:58:36 +02:00
Yuri Kuznetsov 718f3ddc9f type fixes 2021-11-09 15:15:40 +02:00
Yuri Kuznetsov e4be18ac51 type fixes 2021-11-09 15:08:44 +02:00
Yuri Kuznetsov fa63270530 type fixes 2021-11-09 13:48:04 +02:00
Yuri Kuznetsov 54286984e9 type fixes 2021-11-09 13:07:37 +02:00
Yuri Kuznetsov 523e4d2900 type fixes 2021-11-09 12:48:57 +02:00
Yuri Kuznetsov 79af0d2cc7 type fixes 2021-11-09 12:26:42 +02:00
Yuri Kuznetsov 4152ee10ea type fixes 2021-11-09 12:01:22 +02:00
Yuri Kuznetsov c41b92d15a module fix order and test 2021-11-09 11:54:48 +02:00
Yuri Kuznetsov 5af9679751 fix user service 2021-11-09 11:24:07 +02:00
Yuri Kuznetsov c51fcf0cb6 fix 2021-11-08 17:24:54 +02:00
Yuri Kuznetsov 41d4735502 type fixes 2021-11-08 17:14:08 +02:00
Yuri Kuznetsov 7c3964c6f5 type fixes 2021-11-08 17:09:29 +02:00
Yuri Kuznetsov df744ba263 export fix 2021-11-08 16:40:23 +02:00
Yuri Kuznetsov 380b3dde0a return type const 2021-11-08 16:31:54 +02:00
Yuri Kuznetsov 4c696c8b21 type fixes 2021-11-08 16:05:53 +02:00
Yuri Kuznetsov 95f9206880 type fixes 2021-11-08 15:48:16 +02:00
Yuri Kuznetsov e00557885f type fixes 2021-11-08 15:28:12 +02:00
Yuri Kuznetsov 9aaab7d726 phpstan dynamic return type 2021-11-08 15:23:34 +02:00
Yuri Kuznetsov ab9f78d33f type fixes 2021-11-08 15:22:49 +02:00
Yuri Kuznetsov ac57f6a39a fix types 2021-11-08 15:16:39 +02:00
Yuri Kuznetsov 49077225c6 type fixes 2021-11-08 13:47:48 +02:00
Yuri Kuznetsov f3a13739c0 type fixes 2021-11-08 13:31:15 +02:00
Yuri Kuznetsov ae4d37498a csv export fix 2021-11-08 12:35:03 +02:00
Yuri Kuznetsov 25a607952c fix before action methods 2021-11-08 11:03:54 +02:00
Yuri Kuznetsov 51cfbb0779 fixes 2021-11-05 13:40:32 +02:00
Yuri Kuznetsov 15c97e5d12 fixes 2021-11-05 13:26:05 +02:00
Yuri Kuznetsov 4847bc019a phpstan level 4 2021-11-05 12:54:35 +02:00
Yuri Kuznetsov 094f6e2f50 fixes 2021-11-05 12:53:54 +02:00
Yuri Kuznetsov 6cc19a52f1 fixes 2021-11-05 12:33:36 +02:00
Yuri Kuznetsov f0237005c0 fixes 2021-11-05 12:14:56 +02:00
Yuri Kuznetsov 3aa31a830c type fixes 2021-11-05 12:12:39 +02:00
Yuri Kuznetsov c61513cf84 fixes 2021-11-05 12:02:06 +02:00
Yuri Kuznetsov d10b6dd9b3 fixes 2021-11-05 11:49:04 +02:00
Yuri Kuznetsov b466f91f8a fixes 2021-11-05 11:32:03 +02:00
Yuri Kuznetsov 7081440121 type fixes 2021-11-05 11:22:59 +02:00
Yuri Kuznetsov 5042f58e30 fixes 2021-11-05 11:04:49 +02:00
Yuri Kuznetsov beb51081d3 type fixes 2021-11-05 10:55:41 +02:00
Yuri Kuznetsov 1997da4343 fixes 2021-11-04 17:22:56 +02:00
Yuri Kuznetsov 0b3f3e67dd fixes 2021-11-04 17:14:41 +02:00
Yuri Kuznetsov e9d7b92a6e phpstan level 3 2021-11-04 16:20:29 +02:00
Yuri Kuznetsov 334d5609b0 types 2021-11-04 16:19:43 +02:00
Yuri Kuznetsov 6e31c591bd types 2021-11-04 16:16:22 +02:00
Yuri Kuznetsov d125d8f067 types 2021-11-04 15:54:48 +02:00
Yuri Kuznetsov 49b55236d0 types 2021-11-04 15:09:36 +02:00
Yuri Kuznetsov 093001bf95 fixes 2021-11-04 13:50:10 +02:00
Yuri Kuznetsov 3445f87e0c fix 2021-11-04 13:34:43 +02:00
Yuri Kuznetsov 8d3ba52501 injectable factory type hint 2021-11-04 13:33:16 +02:00
Yuri Kuznetsov 82a7590a2a type fixes 2021-11-04 13:19:53 +02:00
Yuri Kuznetsov 773df7aedd type fixes 2021-11-04 13:00:40 +02:00
Yuri Kuznetsov 424ca82b15 type fixes 2021-11-04 12:50:56 +02:00
Yuri Kuznetsov e5df6ad7bf type fixes 2021-11-04 12:48:31 +02:00
Yuri Kuznetsov d81f8f7bed type fixes 2021-11-04 12:35:39 +02:00
Yuri Kuznetsov 7203b652fa type fixes 2021-11-04 12:17:37 +02:00
Yuri Kuznetsov 5d5268c2c7 type fixes 2021-11-04 11:55:57 +02:00
Yuri Kuznetsov b568e96407 type fixes 2021-11-04 11:36:52 +02:00
Yuri Kuznetsov 1dda881422 type fixes 2021-11-04 11:14:25 +02:00
Yuri Kuznetsov 17d2791d40 type fixes 2021-11-04 10:59:48 +02:00
Yuri Kuznetsov 9469b66c61 fix 2021-11-04 08:19:52 +02:00
Yuri Kuznetsov bbc16b942e type fixes 2021-11-03 21:16:03 +02:00
Yuri Kuznetsov 2cb235f49c type fixes 2021-11-03 21:07:10 +02:00
Yuri Kuznetsov e2a7a439d2 type fixes 2021-11-03 18:38:20 +02:00
Yuri Kuznetsov 2c19ebf570 fix types 2021-11-03 17:57:50 +02:00
Yuri Kuznetsov 19d799ac5e type fixes 2021-11-03 17:38:27 +02:00
Yuri Kuznetsov e89a0955ea fix types 2021-11-03 17:30:42 +02:00
Yuri Kuznetsov fc6dfd1994 fix orm types 2021-11-03 17:01:17 +02:00
Yuri Kuznetsov 3fa33b6706 type fixes 2021-11-03 16:47:27 +02:00
Yuri Kuznetsov 939daa616b type fixes 2021-11-03 16:43:44 +02:00
Yuri Kuznetsov fd22f50de2 type fixes 2021-11-03 16:34:18 +02:00
Yuri Kuznetsov 48ca9259af type fixes 2021-11-03 16:02:45 +02:00
Yuri Kuznetsov c49d3d4c30 type fixes 2021-11-03 15:52:54 +02:00
Yuri Kuznetsov 246b0c2a37 type fixes 2021-11-03 15:39:45 +02:00
Yuri Kuznetsov 33f446401b di setters fixes 2021-11-03 15:29:54 +02:00
Yuri Kuznetsov 9c677463f2 type fixes 2021-11-03 15:27:08 +02:00
Yuri Kuznetsov 786e267e93 type fixes 2021-11-03 15:17:28 +02:00
Yuri Kuznetsov c782743a24 fix test 2021-11-03 13:19:29 +02:00
Yuri Kuznetsov b2c4c76fba type fixes 2021-11-03 13:14:22 +02:00
Yuri Kuznetsov 5a6660b60d type fixes 2021-11-03 12:56:57 +02:00
Yuri Kuznetsov f5d324eb48 type fixes 2021-11-03 11:39:41 +02:00
Yuri Kuznetsov 901e0967fc type fixes 2021-11-03 11:17:47 +02:00
Yuri Kuznetsov 1cfacc3813 fix regression websocket 2021-11-03 11:11:03 +02:00
Yuri Kuznetsov 8f1c7d5d54 fix attachment allowed types 2021-11-03 10:59:30 +02:00
Yuri Kuznetsov 3427c1b0bd type fixes 2021-11-02 21:15:15 +02:00
Yuri Kuznetsov 4a12d44971 type fixes 2021-11-02 19:56:48 +02:00
Yuri Kuznetsov d833d43a8b fixes 2021-11-02 19:40:15 +02:00
Yuri Kuznetsov 64a3b851b6 type fixes 2021-11-02 18:24:37 +02:00
Yuri Kuznetsov 2a0ceceb2f type fixes 2021-11-02 18:16:42 +02:00
Yuri Kuznetsov 7250e0e5c4 type fixes 2021-11-02 17:08:01 +02:00
Yuri Kuznetsov 40161fdc3c type fixes 2021-11-02 16:37:39 +02:00
Yuri Kuznetsov cb815d7dea type fixes 2021-11-02 16:25:25 +02:00
Yuri Kuznetsov fffe4aacc1 fixes 2021-11-02 16:20:55 +02:00
Yuri Kuznetsov 985c12c918 type fixes 2021-11-02 16:15:31 +02:00
Yuri Kuznetsov 87bbf61c66 type fixes 2021-11-02 15:58:40 +02:00
Yuri Kuznetsov 8f204de057 fix injectable factory types 2021-11-02 15:38:59 +02:00
Yuri Kuznetsov 419b08070a fix 2021-11-02 15:30:57 +02:00
Yuri Kuznetsov ba1d4d7b72 fixes 2021-11-02 13:45:16 +02:00
Yuri Kuznetsov a48b5df28e type fixes 2021-11-02 13:34:32 +02:00
Yuri Kuznetsov 07bbc42df5 fix exceptions 2021-11-02 13:20:29 +02:00
Yuri Kuznetsov 14e77571c0 type fixes 2021-11-02 12:40:50 +02:00
Yuri Kuznetsov 71a35878c1 type fixes 2021-11-02 12:24:56 +02:00
Yuri Kuznetsov 7dc74f0767 phpstan config 2021-11-02 12:24:42 +02:00
Yuri Kuznetsov 784d12f3ca fix container 2021-11-02 11:32:30 +02:00
Yuri Kuznetsov cdf9700ff0 fix loader interface 2021-11-02 11:10:43 +02:00
Yuri Kuznetsov 05f926b33b fix bool any filter 2021-11-02 11:07:55 +02:00
Yuri Kuznetsov b05f2acc34 type fix 2021-11-01 17:34:15 +02:00
Yuri Kuznetsov 67b52d1f42 fixes 2021-11-01 17:19:42 +02:00
Yuri Kuznetsov 6391c3ca08 fixes 2021-11-01 17:17:44 +02:00
Yuri Kuznetsov fc59a1efa1 type fixes 2021-11-01 17:00:07 +02:00
Yuri Kuznetsov e215e39e5d type fixes 2021-11-01 16:46:41 +02:00
Yuri Kuznetsov 33e1f48717 fix import 2021-11-01 11:49:28 +02:00
Yuri Kuznetsov 94f61e5aff fix 2021-11-01 11:43:59 +02:00
Yuri Kuznetsov 41b25a43ba tcpdf fix 2021-11-01 11:27:20 +02:00
Yuri Kuznetsov 09e617ee78 fixes 2021-10-29 21:56:31 +03:00
Yuri Kuznetsov f5f8b2f66a fix 2021-10-29 21:39:38 +03:00
Yuri Kuznetsov 45b9b41557 type fixes 2021-10-29 17:32:31 +03:00
Yuri Kuznetsov e0a1b983e3 Merge branch 'hotfix/7.0.9' of github.com:espocrm/espocrm into hotfix/7.0.9 2021-10-29 17:12:48 +03:00
Yuri Kuznetsov 4d2b339112 fixes 2021-10-29 17:12:40 +03:00
Yuri Kuznetsov b1a66e4a20 fix exceptions 2021-10-29 17:11:05 +03:00
Yuri Kuznetsov 1e44f82b38 fixes 2021-10-29 17:07:32 +03:00
Eymen Elkum 487f428c7f add missing returns (#2132) 2021-10-29 17:03:03 +03:00
Yuri Kuznetsov f5fa51854d fixes 2021-10-29 16:12:24 +03:00
Yuri Kuznetsov 3f15295293 fixes 2021-10-29 15:53:31 +03:00
Yuri Kuznetsov de72c2b055 fixes 2021-10-29 15:33:25 +03:00
Yuri Kuznetsov 8f93507fec fixes 2021-10-29 15:14:37 +03:00
Yuri Kuznetsov 2afaf8b446 fix 2021-10-29 14:05:59 +03:00
Yuri Kuznetsov 33e0a1b228 phpstan 2021-10-29 13:56:55 +03:00
Yuri Kuznetsov 4b7dd1fd22 fixes 2021-10-29 13:55:58 +03:00
Yuri Kuznetsov 6f7ef14482 fixes 2021-10-29 13:48:03 +03:00
Yuri Kuznetsov 097a115595 fixes 2021-10-29 13:42:43 +03:00
Yuri Kuznetsov cd78458d19 fix select 2021-10-29 13:24:21 +03:00
Yuri Kuznetsov b69d706cc4 fix where 2021-10-29 13:16:47 +03:00
Yuri Kuznetsov 8286d7b621 fixes 2021-10-29 12:46:57 +03:00
Yuri Kuznetsov d899c55f4f pagination fixes 2021-10-28 16:54:55 +03:00
Yuri Kuznetsov 0a954e171d pagination fixes 2021-10-28 13:59:45 +03:00
Yuri Kuznetsov 89d2c38257 refactoring 2021-10-28 13:50:32 +03:00
Yuri Kuznetsov d7829e7801 v 2021-10-26 12:07:42 +03:00
Yuri Kuznetsov 3d4f6055e4 merge fixes 2021-10-26 12:07:15 +03:00
Yuri Kuznetsov 383ae3fe3e entity inteface add methods 2021-10-26 11:45:10 +03:00
Yuri Kuznetsov 47cbd18c88 ldap user save fix 2021-10-26 11:43:18 +03:00
Yuri Kuznetsov d5779878c7 fix link multiple loading on list 2021-10-25 15:30:16 +03:00
Shefqet Avdullau c65cabffd5 Fixed typo in Tasks default filter Completed (#2126)
Fixes #2125
2021-10-25 15:04:42 +03:00
Yuri Kuznetsov fe90a62239 autocomplete new password 2021-10-25 13:24:21 +03:00
Yuri Kuznetsov 13ae33266f dummy file 2021-10-25 13:14:19 +03:00
Yuri Kuznetsov 399b689bcd fix personal email account assigned user 2021-10-25 12:01:38 +03:00
Yuri Kuznetsov 1219e7be12 fix category tree order 2021-10-25 11:02:23 +03:00
Yuri Kuznetsov 10f67ab360 mass update opp stage 2021-10-21 13:21:01 +03:00
Yuri Kuznetsov ce1f755612 action data cloning 2021-10-21 13:20:36 +03:00
Yuri Kuznetsov fa943d1166 mass action data cloning 2021-10-21 13:18:51 +03:00
Yuri Kuznetsov dc09f91e35 refactoring 2021-10-21 12:56:47 +03:00
Yuri Kuznetsov 34b8fa2728 acceptanceStatus customization fields disabled 2021-10-20 16:04:33 +03:00
Yuri Kuznetsov 02f7bebf67 outbound email address autocomplete 2021-10-19 16:01:19 +03:00
Yuri Kuznetsov 4ffc384764 formatting fix 2021-10-19 15:27:19 +03:00
Yuri Kuznetsov e1ef2b34ea orphan email address filter fix 2021-10-19 15:14:32 +03:00
Yuri Kuznetsov d5a83a8819 fix 2021-10-19 12:43:30 +03:00
Yuri Kuznetsov 661f499f67 orm custom functions 2021-10-19 12:40:07 +03:00
Yuri Kuznetsov a073beeea7 lastAccess export disable 2021-10-18 17:35:07 +03:00
Yuri Kuznetsov 07f6bf7a7a signature with insert email fix 2021-10-18 13:56:42 +03:00
Yuri Kuznetsov 0cfbb269f2 fix ldap 2021-10-18 13:15:23 +03:00
Yuri Kuznetsov f3791e5fb4 fix ldap create user 2021-10-18 13:03:06 +03:00
Yuri Kuznetsov 37d8b0d3bd cleanup 2021-10-15 15:47:17 +03:00
Arkadiy 4ae383033a fix missing class imports, exceptions and undefined properties (#2112)
* fix exception

* fix missing imports

* fix access to an undefined property
2021-10-15 15:46:45 +03:00
Yuri Kuznetsov ea71675701 fix typo 2021-10-15 10:56:48 +03:00
Arkadiy 1178d01baa fix for SelectingBuilderTrait (#2110)
* fix undefined type

* fix exception
2021-10-14 15:13:55 +03:00
Yuri Kuznetsov ace53f9494 v 2021-10-14 13:01:32 +03:00
Yuri Kuznetsov 3c17ff2da9 layout set fix 2021-10-14 10:35:08 +03:00
Yuri Kuznetsov 163991a36b fix 2021-10-14 10:07:09 +03:00
Yuri Kuznetsov 291721c1d0 fix checkboxes 2021-10-13 16:30:36 +03:00
Yuri Kuznetsov d96301d544 7.0.6 2021-10-13 15:56:19 +03:00
Yuri Kuznetsov 54d9674055 fix emails folderId 2021-10-13 10:35:47 +03:00
Yuri Kuznetsov 4a5a07649a cs fix 2021-10-13 10:32:39 +03:00
Yuri Kuznetsov cfdb65fad8 fix missing checkboxes 2021-10-13 10:12:44 +03:00
Yuri Kuznetsov 16544a4a70 fix email address parsing 2021-10-12 15:52:59 +03:00
Yuri Kuznetsov 02939d0840 v 2021-10-12 13:06:02 +03:00
Yuri Kuznetsov bf331c7020 cs fix 2021-10-12 12:05:58 +03:00
Yuri Kuznetsov e80b55572b fix lead filter 2021-10-12 11:32:10 +03:00
Yuri Kuznetsov 51c29f0a6e fix link & link multiple search empty 2021-10-12 11:30:20 +03:00
Yuri Kuznetsov 056191db82 fix pdf filename 2021-10-11 13:01:59 +03:00
Yuri Kuznetsov 9ace150efa v 2021-10-11 11:31:48 +03:00
Yuri Kuznetsov 79ae89d172 fix duration 2021-10-10 11:38:15 +03:00
Yuri Kuznetsov bb703e2060 fix export not existing fields 2021-10-10 11:22:58 +03:00
Yuri Kuznetsov 972d9019e1 fix log 2021-10-10 11:19:38 +03:00
Yuri Kuznetsov c99566410a note acl refactoring and period change 2021-10-08 15:35:05 +03:00
Yuri Kuznetsov 9c56a14fb0 file manager allow create file w/ wrong ownership 2021-10-08 11:45:56 +03:00
Yuri Kuznetsov b95e58317b fix msg 2021-10-08 11:27:09 +03:00
Yuri Kuznetsov 6fd9d6e15c upgrade fix 2021-10-07 17:42:31 +03:00
Yuri Kuznetsov 518b9fa2ba unlink file in checkCreateFile 2021-10-07 17:17:22 +03:00
Yuri Kuznetsov c113b7bd88 throw exception in auth 2021-10-07 15:00:11 +03:00
Yuri Kuznetsov fb0a302f62 v 2021-10-06 18:27:50 +03:00
Yuri Kuznetsov 43127379cd fix settings 2021-10-06 18:27:07 +03:00
Yuri Kuznetsov c5bc7136c7 fix activities 2021-10-06 13:34:35 +03:00
Yuri Kuznetsov 18ba671417 tryCheck usage 2021-10-06 12:00:33 +03:00
Yuri Kuznetsov 6141bfd1fb printTrace in default config 2021-10-06 11:28:41 +03:00
Yuri Kuznetsov 4e4b51c4f1 metadata tryCheck usage 2021-10-06 11:06:10 +03:00
Yuri Kuznetsov 83ac300aa3 fix logo upload 2021-10-05 20:31:24 +03:00
Yuri Kuznetsov f641a3c9c6 fix 2021-10-05 18:15:55 +03:00
Yuri Kuznetsov 18a4782bf1 v 2021-10-05 17:17:41 +03:00
Yuri Kuznetsov f1fddb7325 fix 2021-10-05 15:07:12 +03:00
Yuri Kuznetsov 9c864af409 fix 2021-10-05 13:34:08 +03:00
Yuri Kuznetsov 7cd332228a fix getEntity user 2021-10-05 12:58:04 +03:00
Yuri Kuznetsov 54c534736f printTrace logger param 2021-10-05 12:27:49 +03:00
Yuri Kuznetsov 6f07862572 fix test 2021-10-05 12:27:20 +03:00
Yuri Kuznetsov 54863ca6a4 fix group email account keep unread 2021-10-05 11:35:33 +03:00
Yuri Kuznetsov 70499e504c upgrade fix 2021-10-04 12:44:24 +03:00
Yuri Kuznetsov 697565f95c v 2021-10-04 12:14:43 +03:00
Yuri Kuznetsov 94f1501c96 fix upgrade 2021-10-04 12:03:01 +03:00
Yuri Kuznetsov 145b0e2c7b upgrade opcache check 2021-10-04 11:44:59 +03:00
Yuri Kuznetsov 7057b3ba82 config writer fix 2021-10-04 11:38:09 +03:00
Yuri Kuznetsov f6eecce135 upgrade fixes 2021-10-04 10:25:05 +03:00
Yuri Kuznetsov 1f0d105685 fix upgrade warning 2021-10-04 10:00:15 +03:00
Yuri Kuznetsov 7caf841edd fix htmlizer data 2021-10-04 09:56:08 +03:00
Yuri Kuznetsov 7cd82b1e03 warning fix 2021-10-02 11:12:58 +03:00
Yuri Kuznetsov 2c8a21fc04 cs fix 2021-10-02 11:07:31 +03:00
Yuri Kuznetsov 102ec389b9 fix record dashlet 2021-10-02 11:06:20 +03:00
Yuri Kuznetsov f07895eeb0 fix settings restriction 2021-10-01 18:41:44 +03:00
Yuri Kuznetsov a1570c7666 upgrade cli check 2021-10-01 16:47:18 +03:00
Yuri Kuznetsov ef260784ac cleanup 2021-10-01 15:24:24 +03:00
Yuri Kuznetsov bc7be925e2 fix 2021-10-01 15:18:02 +03:00
Yuri Kuznetsov 9091e49650 fix test 2021-10-01 12:54:52 +03:00
Yuri Kuznetsov 5a8dd95565 orm fix 2021-10-01 12:19:13 +03:00
Yuri Kuznetsov 23df87a8c3 v 2021-10-01 11:36:00 +03:00
Yuri Kuznetsov 3781d10cb6 Merge branch 'stable' 2021-10-01 11:32:08 +03:00
Yuri Kuznetsov f1d505330c v 2021-10-01 10:59:45 +03:00
Yuri Kuznetsov fc9fbd25fe fix invitation from address 2021-09-30 17:15:31 +03:00
Yuri Kuznetsov b3e5003e0c ref 2021-09-30 16:47:53 +03:00
Yuri Kuznetsov be9fd29023 cleanup 2021-09-30 15:18:32 +03:00
Yuri Kuznetsov 22bb9cfe09 Merge branch 'hotfix/6.1.10' 2021-09-30 11:35:45 +03:00
Yuri Kuznetsov 02238b4000 fix test 2021-09-30 11:35:19 +03:00
Yuri Kuznetsov 2f9bf085fa fix test 2021-09-30 11:34:14 +03:00
Yuri Kuznetsov 11010f274f order converter change 2021-09-30 11:32:14 +03:00
Taras Machyshyn 9f2c57c3f1 Upgrade script 2021-09-30 10:59:04 +03:00
Yuri Kuznetsov 41d815103c fix notifications 2021-09-29 16:26:32 +03:00
Yuri Kuznetsov 967c48f6d7 fix 2021-09-29 14:27:05 +03:00
Yuri Kuznetsov c4d0d0fba7 Merge branch 'hotfix/6.1.10' 2021-09-29 14:07:26 +03:00
Yuri Kuznetsov 9a720e9c82 fix fiscal quarter 2021-09-29 14:06:53 +03:00
Yuri Kuznetsov c41522ab67 fix fiscal quarter 2021-09-29 14:03:37 +03:00
Yuri Kuznetsov 501a4b3415 chmod upgrade 2021-09-28 13:15:30 +03:00
Yuri Kuznetsov 7af59ac7ec Merge branch 'hotfix/6.1.10' 2021-09-28 12:05:51 +03:00
Yuri Kuznetsov c16a4707b5 fix daemon 2021-09-28 12:05:02 +03:00
Yuri Kuznetsov 0a86ea65ed fix daemon long running jobs blocking 2021-09-28 12:03:16 +03:00
Yuri Kuznetsov 273ab1fe54 list expanded re render on edit 2021-09-27 13:16:42 +03:00
Yuri Kuznetsov 1b9622e6dd cs fix 2021-09-27 13:10:00 +03:00
Yuri Kuznetsov 7209184636 cs fix 2021-09-27 13:00:39 +03:00
Yuri Kuznetsov b4c0b264b9 rename 2021-09-24 20:26:39 +03:00
Yuri Kuznetsov 2e13e758b8 lang fixes 2021-09-24 16:27:19 +03:00
Yuri Kuznetsov 5359eb85e1 lang fix 2021-09-24 16:23:33 +03:00
Yuri Kuznetsov e42e758150 lang fixes 2021-09-24 16:21:39 +03:00
Yuri Kuznetsov 340fd9a324 swedish lang 2021-09-24 16:20:04 +03:00
Yuri Kuznetsov 1e277e5681 fix 2021-09-24 15:59:32 +03:00
Yuri Kuznetsov 2534176b8d renaming 2021-09-24 15:51:16 +03:00
Yuri Kuznetsov 4f1c547f77 renaming 2021-09-24 15:47:04 +03:00
Yuri Kuznetsov 4698b2a0e7 renaming 2021-09-24 15:10:47 +03:00
Yuri Kuznetsov cb76c9762c login renaming 2021-09-24 12:01:43 +03:00
Yuri Kuznetsov 496890357a renaming 2021-09-24 11:37:33 +03:00
Yuri Kuznetsov fc7dba6c91 all of filter 2021-09-23 17:03:20 +03:00
Yuri Kuznetsov 67efbdc6e9 fix array filter 2021-09-23 16:43:54 +03:00
Yuri Kuznetsov d660137e7e refactoring 2021-09-23 15:29:54 +03:00
Yuri Kuznetsov 15ae14d4a1 fix test 2021-09-23 13:11:13 +03:00
Yuri Kuznetsov 111524b6c6 job refactoring 2021-09-23 12:56:57 +03:00
Yuri Kuznetsov ce806c5aa8 renaming 2021-09-23 11:40:09 +03:00
Yuri Kuznetsov b244f613ee ref 2021-09-22 22:33:37 +03:00
Yuri Kuznetsov ad5cb35260 cleanup 2021-09-22 21:50:01 +03:00
Yuri Kuznetsov c0ca2174b6 ref 2021-09-22 21:48:20 +03:00
Yuri Kuznetsov c3c1398a2d renaming 5 2021-09-22 21:45:16 +03:00
Yuri Kuznetsov 1fbdd2edf4 job preparator 2021-09-22 16:55:16 +03:00
Yuri Kuznetsov a64a66912f renaming 4 2021-09-22 15:38:20 +03:00
Yuri Kuznetsov 61bbb23e7a renaming 3 2021-09-22 13:23:41 +03:00
Yuri Kuznetsov e8d62ecc22 renaming 2 2021-09-22 13:07:12 +03:00
Yuri Kuznetsov 7db64e9375 renaming 1 2021-09-22 12:59:48 +03:00
Yuri Kuznetsov 0a320cb3b3 templete helper interface 2021-09-22 11:58:02 +03:00
Yuri Kuznetsov 50d38d127c Merge branch 'hotfix/6.1.10' 2021-09-20 15:51:46 +03:00
Yuri Kuznetsov 1ad42423bf google map pdf fix 2021-09-20 15:51:25 +03:00
Yuri Kuznetsov 273c9b2f18 fix google map pdf 2021-09-20 15:45:36 +03:00
Yuri Kuznetsov 90260bbed5 acl tryCheck 2021-09-20 13:38:47 +03:00
Yuri Kuznetsov 833804c7b4 fix test 2021-09-20 13:36:18 +03:00
Yuri Kuznetsov 206f4bc2bb entity setters and getters 2021-09-20 12:38:36 +03:00
Yuri Kuznetsov 5280bdab86 htmlizer fixes 2021-09-20 11:54:33 +03:00
Yuri Kuznetsov ce0113cd6c cleanup 2021-09-19 20:11:07 +03:00
Yuri Kuznetsov 24885853fd fix 2021-09-19 18:51:07 +03:00
Yuri Kuznetsov 1f4ce20c8b template renderer 2021-09-19 18:47:15 +03:00
Yuri Kuznetsov 5629682a9a cleanup 2021-09-19 14:29:50 +03:00
Yuri Kuznetsov 826e335611 comment 2021-09-19 13:42:13 +03:00
Yuri Kuznetsov 06c0a425cd select text filter ref 2021-09-19 13:40:47 +03:00
Yuri Kuznetsov dc9b4bbb20 amend 2021-09-19 10:29:29 +03:00
Yuri Kuznetsov 4e951bcb98 refactoring 2021-09-19 10:27:59 +03:00
Yuri Kuznetsov 428cafeb7d import result fetch limit 2021-09-18 19:15:32 +03:00
Yuri Kuznetsov e145e461fa cs fix 2021-09-18 13:15:35 +03:00
Yuri Kuznetsov 7bfd268793 cs fix 2021-09-18 13:12:52 +03:00
Yuri Kuznetsov 2bc2d4ed26 fix import 2021-09-18 11:06:09 +03:00
Yuri Kuznetsov 185d006a61 fix css 2021-09-17 13:38:28 +03:00
Yuri Kuznetsov 42068c8a95 updateDuplicateCheck param 2021-09-17 12:50:55 +03:00
Yuri Kuznetsov cb4e86886a ref 2021-09-17 12:37:20 +03:00
Yuri Kuznetsov 02f6b1850c sms provider fix 2021-09-17 12:30:34 +03:00
Yuri Kuznetsov a667380d7a fix 2021-09-17 12:30:27 +03:00
Yuri Kuznetsov 21be67f025 parent reserved word 2021-09-17 11:24:24 +03:00
Yuri Kuznetsov 7d3fbcc7d0 mail sender attachment hint 2021-09-17 11:24:24 +03:00
Yuri Kuznetsov cbbfc2227c fix 2021-09-16 18:00:20 +03:00
Yuri Kuznetsov 9add3fa538 sms 2021-09-16 17:35:32 +03:00
Yuri Kuznetsov ef13bffcb9 fix 2021-09-16 13:48:53 +03:00
Yuri Kuznetsov a40c9d2b11 fix 2021-09-16 13:25:20 +03:00
Yuri Kuznetsov ddaa4c056d fix 2021-09-16 13:10:50 +03:00
Yuri Kuznetsov 8f0b34c2de settings improvement 2021-09-16 13:04:19 +03:00
Yuri Kuznetsov 5ff145ff12 dashboard 12 columns 2021-09-14 16:18:40 +03:00
Yuri Kuznetsov 6e8a3fa05d cs 2021-09-14 16:12:27 +03:00
Yuri Kuznetsov 2d3816e3ae cs fix 2021-09-14 15:25:44 +03:00
Yuri Kuznetsov 4c9441a690 email load addresses 2021-09-14 11:09:30 +03:00
Yuri Kuznetsov 035523b426 c 2021-09-14 10:50:12 +03:00
Yuri Kuznetsov 93179a21b2 refactoring 2021-09-14 10:46:03 +03:00
Yuri Kuznetsov 53534cf3d5 ref 2021-09-14 10:34:42 +03:00
Yuri Kuznetsov 8bb6c4012a ref 2021-09-14 10:30:53 +03:00
Yuri Kuznetsov 57960111f7 job fixes 2021-09-14 10:03:35 +03:00
Yuri Kuznetsov 165e6322fc comment fix 2021-09-13 19:29:45 +03:00
Yuri Kuznetsov 2afc157c24 email getFromAddress 2021-09-13 16:32:43 +03:00
Yuri Kuznetsov 9822bb94a1 fix 2021-09-13 15:44:08 +03:00
Yuri Kuznetsov bf72c8a4cc 2fa-email 2021-09-13 13:09:09 +03:00
Yuri Kuznetsov f6c8281c9e remove hook 2021-09-11 16:52:42 +03:00
Yuri Kuznetsov dcc2b2cb31 onFailSecondStep hook 2021-09-11 11:45:39 +03:00
Yuri Kuznetsov e9d3127932 rename 2021-09-11 09:19:30 +03:00
Yuri Kuznetsov c5d6b7d053 rename 2021-09-11 08:57:34 +03:00
Yuri Kuznetsov 9bb0950c12 email factory 2021-09-10 21:55:00 +03:00
Yuri Kuznetsov b2d6bd58e6 email methods 2021-09-10 21:50:19 +03:00
Yuri Kuznetsov 4fdcdec802 email methods 2021-09-10 21:24:57 +03:00
Yuri Kuznetsov 0873b17894 comments 2021-09-10 21:13:22 +03:00
Yuri Kuznetsov 48957d33b6 datetime fields impr 2021-09-10 21:09:05 +03:00
Yuri Kuznetsov 48675f1875 fix 2021-09-10 17:05:51 +03:00
Yuri Kuznetsov ef4377c77b naming fix 2021-09-10 12:57:52 +03:00
Yuri Kuznetsov 4394e0fca1 refactoring 2021-09-10 12:40:54 +03:00
Yuri Kuznetsov fc7b15042c 2fa refactoring 2021-09-10 12:25:43 +03:00
Yuri Kuznetsov bbaa119617 fix 2021-09-09 22:30:40 +03:00
Yuri Kuznetsov 88f4797f0b formula word wrap 2021-09-09 17:11:23 +03:00
Yuri Kuznetsov fa35e32578 refactoring 2021-09-09 14:57:01 +03:00
Yuri Kuznetsov c40cbc6cc2 fix 2021-09-09 12:45:57 +03:00
Yuri Kuznetsov 8fcd6c2ff9 fixes and refactoring 2021-09-09 11:51:11 +03:00
Yuri Kuznetsov 30c6a713d6 change 2021-09-08 15:55:01 +03:00
Yuri Kuznetsov 029a18ff1a fixes 2021-09-08 13:53:22 +03:00
Yuri Kuznetsov 45049ae176 cs fix 2021-09-08 13:38:44 +03:00
Yuri Kuznetsov 01f59521af email fix 2021-09-08 13:13:25 +03:00
Yuri Kuznetsov 0f3cd9dd24 cs fix 2021-09-08 13:02:33 +03:00
Yuri Kuznetsov ba4619df21 fixes 2021-09-08 12:58:11 +03:00
Yuri Kuznetsov f7aa5aaf0b refactoring 2021-09-08 11:53:01 +03:00
Yuri Kuznetsov d3f0553c65 fix 2021-09-08 10:59:18 +03:00
Yuri Kuznetsov 601d7729bc refactoring 2021-09-07 18:53:46 +03:00
Yuri Kuznetsov ac464b4036 refactoring 2021-09-07 18:41:33 +03:00
Yuri Kuznetsov 5f220bc364 comment 2021-09-07 16:17:30 +03:00
Yuri Kuznetsov 962ea50c44 fix 2021-09-07 16:16:29 +03:00
Yuri Kuznetsov 742fda24c6 bc fix 2021-09-07 16:04:55 +03:00
Yuri Kuznetsov e0c10f3564 fix 2021-09-07 15:45:27 +03:00
Yuri Kuznetsov 5a94143fd7 fix 2021-09-07 15:39:58 +03:00
Yuri Kuznetsov c5ba226fa0 fix 2021-09-06 15:57:17 +03:00
Yuri Kuznetsov be8dff3de7 fix 2021-09-06 15:57:10 +03:00
Yuri Kuznetsov 0582fd680d rebuild actionClassNameList 2021-09-06 14:04:47 +03:00
Yuri Kuznetsov c93a5e5299 fix 2021-09-06 12:16:28 +03:00
Yuri Kuznetsov c5229f1100 fix 2021-09-06 11:53:21 +03:00
Yuri Kuznetsov d78023f388 refactoring 2021-09-06 11:31:22 +03:00
Yuri Kuznetsov f15b63fd66 cleanup 2021-09-06 11:18:32 +03:00
Yuri Kuznetsov 0ff236edbc refactoring 2021-09-06 11:13:16 +03:00
Yuri Kuznetsov 9d23f3bdd0 refactoring 2021-09-05 18:11:53 +03:00
Yuri Kuznetsov dd74aac117 fix clone 2021-09-05 18:11:37 +03:00
Yuri Kuznetsov d49b713ccd fixes 2021-09-05 17:05:39 +03:00
Yuri Kuznetsov d6431cbcc4 fix 2021-09-05 16:56:24 +03:00
Yuri Kuznetsov 392748db57 refactoring 2021-09-05 16:54:24 +03:00
Yuri Kuznetsov 70cc8fb9e3 ref 2021-09-05 12:37:42 +03:00
Yuri Kuznetsov bbabe672d8 refactoring 2021-09-05 12:14:39 +03:00
Yuri Kuznetsov 447732bf9c fix import 2021-09-05 12:14:25 +03:00
Yuri Kuznetsov 29f60b5199 rename 2021-09-05 09:57:33 +03:00
Yuri Kuznetsov 94fa7b17ff rename 2021-09-04 20:37:36 +03:00
Yuri Kuznetsov b5ec93e571 fix 2021-09-04 19:15:06 +03:00
Yuri Kuznetsov 132e762c7e refactoring 2021-09-04 18:37:52 +03:00
Yuri Kuznetsov 8ef94890a9 fix 2021-09-04 18:34:22 +03:00
Yuri Kuznetsov b6c9ef990f refactoring 2021-09-04 17:48:55 +03:00
Yuri Kuznetsov b19ce60e74 notification refactoring 2021-09-04 16:59:24 +03:00
Yuri Kuznetsov 632e1ecb5c stream refactoring 2021-09-04 12:27:11 +03:00
Yuri Kuznetsov fa3ec522ca cs fixes and cleanup 2021-09-03 20:20:42 +03:00
Yuri Kuznetsov 4615cea8a6 more auth hooks 2021-09-03 15:35:47 +03:00
Yuri Kuznetsov 3c5dc1672a auth hooks 2021-09-03 14:25:13 +03:00
Yuri Kuznetsov 768c68df49 cleanup 2021-09-01 20:27:37 +03:00
Yuri Kuznetsov c44731bd97 fix test 2021-09-01 20:27:13 +03:00
Yuri Kuznetsov 9450cf9447 response change 2021-09-01 20:23:52 +03:00
Yuri Kuznetsov 1cfb60d65b fix 2021-09-01 19:48:55 +03:00
Yuri Kuznetsov 64519d6310 docs 2021-09-01 19:48:30 +03:00
Yuri Kuznetsov 3d9b5852f8 cs fix 2021-09-01 19:43:32 +03:00
Yuri Kuznetsov dc6109c530 fix broadcast channel 2021-09-01 19:41:49 +03:00
Yuri Kuznetsov 7fe1e27667 fix 2021-09-01 19:40:23 +03:00
Yuri Kuznetsov e24209438c get header as array 2021-09-01 16:13:15 +03:00
Yuri Kuznetsov ee2a3c9bea fix x-skip-duplicate-check header 2021-09-01 15:51:46 +03:00
Yuri Kuznetsov 5861aa11c1 Merge branch 'master' of github.com:espocrm/espocrm 2021-09-01 12:08:18 +03:00
Yuri Kuznetsov 0041c11aae fix show hide panel 2021-09-01 11:11:23 +03:00
Yuri Kuznetsov ed8def4ece ref 2021-09-01 10:57:57 +03:00
Yuri Kuznetsov 7f08cc9cf0 cs fix 2021-09-01 10:36:22 +03:00
Yuri Kuznetsov 981e477bd0 ref 2021-09-01 10:23:05 +03:00
Yuri Kuznetsov 01bf39764a ref 2021-09-01 09:58:03 +03:00
Yuri Kuznetsov b4a2ad646b cs fix 2021-09-01 09:52:05 +03:00
dependabot[bot] 79d557542b Bump tar from 6.1.2 to 6.1.9 (#2064)
Bumps [tar](https://github.com/npm/node-tar) from 6.1.2 to 6.1.9.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v6.1.2...v6.1.9)

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

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-31 20:07:56 +03:00
Yuri Kuznetsov 26d411c94d array field fix 2021-08-31 11:24:40 +03:00
Yuri Kuznetsov 8d3ae2ef00 refactoring 2021-08-30 13:55:01 +03:00
Yuri Kuznetsov f28854b7f2 fix css 2021-08-30 12:58:47 +03:00
Yuri Kuznetsov 5a24771d3c fix tests 2021-08-30 12:13:30 +03:00
Yuri Kuznetsov 84830d6aef refactoring 2021-08-30 12:00:51 +03:00
Yuri Kuznetsov 134cd53f45 Merge branch 'hotfix/6.1.9' 2021-08-30 10:58:36 +03:00
Yuri Kuznetsov 717b9db4af v 2021-08-30 10:49:36 +03:00
Yuri Kuznetsov 87c313c933 update markdown 2021-08-30 10:46:57 +03:00
Yuri Kuznetsov 928320c1bd refactoring 2021-08-29 16:22:55 +03:00
Yuri Kuznetsov bba4ad55da refactoring 2021-08-29 16:13:35 +03:00
Yuri Kuznetsov 23604fba25 refactoring 2021-08-29 14:37:51 +03:00
Yuri Kuznetsov 112c51d6e3 refactoring 2021-08-29 11:00:54 +03:00
Yuri Kuznetsov 9339a15d18 route refactoring 2021-08-28 22:34:30 +03:00
Yuri Kuznetsov a4b65ba0c7 comment fix 2021-08-28 14:11:54 +03:00
Yuri Kuznetsov 00dfe2599e refactoring 2021-08-28 13:47:55 +03:00
Yuri Kuznetsov dcf6ec5612 cs fix 2021-08-28 13:45:40 +03:00
Yuri Kuznetsov 0acd47fba0 email notification handler interface 2021-08-28 13:42:26 +03:00
Yuri Kuznetsov 4e718ff879 update markdown 2021-08-28 13:37:40 +03:00
Yuri Kuznetsov 1205462620 notificationDefs 2021-08-28 09:03:17 +03:00
Yuri Kuznetsov 75344a4ed2 refactoring 2021-08-27 23:00:34 +03:00
Yuri Kuznetsov 6dae15155a runner parameterized 2021-08-27 22:22:59 +03:00
Yuri Kuznetsov 338922099d cleanup interface 2021-08-27 17:05:33 +03:00
Yuri Kuznetsov 0c840de187 css fix 2021-08-27 17:05:26 +03:00
Yuri Kuznetsov 16755831bc css color fix 2021-08-27 13:19:01 +03:00
Yuri Kuznetsov 4c64b7e456 refactoring 2021-08-27 13:03:39 +03:00
Yuri Kuznetsov 28a56c0bd7 folder color 2021-08-27 10:50:03 +03:00
Yuri Kuznetsov 894f99aa66 fix ics import 2021-08-26 19:15:44 +03:00
Yuri Kuznetsov 450d785a58 email fix 2021-08-26 18:59:37 +03:00
Yuri Kuznetsov a26be8e7f0 pdfDefs hide 2021-08-26 18:31:40 +03:00
Yuri Kuznetsov d2f982fccb pdf data loader params 2021-08-26 17:35:53 +03:00
Yuri Kuznetsov 4b38f81384 fix 2021-08-26 16:13:07 +03:00
Yuri Kuznetsov 20bc336036 htmlizer fix data 2021-08-26 14:03:49 +03:00
Yuri Kuznetsov cec4585538 rename 2021-08-26 13:34:12 +03:00
Yuri Kuznetsov 8b4635ffaa fix 2021-08-26 13:26:43 +03:00
Yuri Kuznetsov 3dc53c5436 sp v change 2021-08-26 13:07:14 +03:00
Yuri Kuznetsov 7265b3c4b6 fix 2021-08-26 13:04:36 +03:00
Yuri Kuznetsov 49033dec1a cleanup 2021-08-26 13:03:24 +03:00
Yuri Kuznetsov 9b632f582f pdf data loader framework 2021-08-26 13:02:31 +03:00
Yuri Kuznetsov a989c8a6d1 upgrade sp version change 2021-08-26 10:41:20 +03:00
Yuri Kuznetsov e5c0427e68 select applier change 2021-08-25 18:26:52 +03:00
Yuri Kuznetsov c5811749cb fix order 2021-08-25 16:35:04 +03:00
Yuri Kuznetsov 5e925865a7 fix 2021-08-25 15:56:03 +03:00
Yuri Kuznetsov 175f837f3d fix inbox dashlet 2021-08-25 15:33:40 +03:00
Yuri Kuznetsov b28d3816c0 kanban fix 2021-08-25 13:31:40 +03:00
Yuri Kuznetsov 3ad66acb20 cs fix 2021-08-25 11:47:43 +03:00
Yuri Kuznetsov 958b44af15 cs fix 2021-08-25 11:43:34 +03:00
Yuri Kuznetsov 99b20f6724 fix kanban 2021-08-25 11:39:11 +03:00
Yuri Kuznetsov 4eec64e811 cs fix 2021-08-25 11:24:44 +03:00
Yuri Kuznetsov 052548fda7 fix 2021-08-25 09:59:25 +03:00
Yuri Kuznetsov 98e7218cf5 fix 2021-08-25 09:58:35 +03:00
Yuri Kuznetsov 374c3786df fix findByEmailAddress function 2021-08-24 18:09:54 +03:00
Yuri Kuznetsov a9a3f4381a extension list 2021-08-24 17:46:06 +03:00
Yuri Kuznetsov b845ad6d3c refactoring 2021-08-24 17:34:22 +03:00
Yuri Kuznetsov 7c8d3caba6 fix 2021-08-24 12:43:28 +03:00
Yuri Kuznetsov fcddc472e1 run job changes 2021-08-24 12:25:20 +03:00
Yuri Kuznetsov 1c18348475 app-info jobs 2021-08-24 12:18:11 +03:00
Yuri Kuznetsov c6c74bd7b9 refactoring 2021-08-24 11:56:12 +03:00
Yuri Kuznetsov 0775edd29e fix email notifications on duplicate 2021-08-24 11:50:43 +03:00
Yuri Kuznetsov 52017e5281 refactoring 2021-08-24 11:42:57 +03:00
Yuri Kuznetsov af3aecc3f8 manual merge 2021-08-23 13:10:13 +03:00
Eymen Elkum eaf6b511d0 fix meeting send invitation (#2058) 2021-08-23 09:52:18 +03:00
Yuri Kuznetsov e13d0248ae css fix logo 2021-08-21 11:11:35 +03:00
Yuri Kuznetsov e3d563a556 command refactoring 2021-08-21 10:31:07 +03:00
Yuri Kuznetsov e2078bba84 help command fix 2021-08-21 09:54:39 +03:00
M3sca 017af8a383 edit: Fix label in Account.json for italian translate (#2057) 2021-08-20 18:26:06 +03:00
Yuri Kuznetsov 0739e9f655 preload fix 2021-08-20 12:14:11 +03:00
Yuri Kuznetsov 6f2904eb9a command help 2021-08-17 13:03:45 +03:00
Yuri Kuznetsov 4003977ce3 fix 2021-08-16 17:49:41 +03:00
Yuri Kuznetsov d058bb7c3b cs fix 2021-08-16 15:59:25 +03:00
Yuri Kuznetsov 139dfc5b81 permissions 2021-08-16 11:34:19 +03:00
Yuri Kuznetsov 152a5b5a7b bin command 2021-08-14 15:47:52 +03:00
Yuri Kuznetsov ad54fa2ace fix 2021-08-13 19:30:54 +03:00
Yuri Kuznetsov d2e15f52c3 fix test 2021-08-13 15:59:05 +03:00
Yuri Kuznetsov f670f382cd refresh entity 2021-08-13 15:56:42 +03:00
Yuri Kuznetsov 1ebedaf791 auth result data 2021-08-13 11:32:23 +03:00
Yuri Kuznetsov 2879f426e0 cs fix 2021-08-13 11:32:14 +03:00
Yuri Kuznetsov d7c2cd8d2a fix 2021-08-13 11:19:27 +03:00
Yuri Kuznetsov 78814dedd3 fix modal 2021-08-12 16:52:15 +03:00
Yuri Kuznetsov 4865cf2202 upgrade mailchimp check 2021-08-12 15:24:48 +03:00
Yuri Kuznetsov 239c533137 fix 2021-08-12 13:33:19 +03:00
Yuri Kuznetsov 55bf893228 cs fix and ref 2021-08-12 12:45:55 +03:00
Yuri Kuznetsov 349cb32c5f cleanup 2021-08-12 12:19:57 +03:00
Yuri Kuznetsov 1545305d43 merge 2021-08-12 12:19:50 +03:00
Yuri Kuznetsov 0f84c6eaaa upgrade outlook version check 2021-08-12 12:14:28 +03:00
Yuri Kuznetsov df94b38019 job backward compatibility 2021-08-12 11:28:02 +03:00
Yuri Kuznetsov e8451f9648 wysiwig link insert scroll fix 2021-08-11 16:29:58 +03:00
Yuri Kuznetsov b42ed51c5e real estate version check 2021-08-11 15:48:31 +03:00
Yuri Kuznetsov 9ed9ccbe4a fix typo 2021-08-11 11:26:44 +03:00
Yuri Kuznetsov b4d0343992 fix record tree 2021-08-11 11:26:44 +03:00
dependabot[bot] 4b0604a183 Bump path-parse from 1.0.6 to 1.0.7 (#2054)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-11 08:50:18 +03:00
Yuri Kuznetsov 8d50ae1f46 fix orm 2021-08-10 16:45:59 +03:00
Yuri Kuznetsov 6ed4b60ebb ics create event 2021-08-10 14:08:44 +03:00
Yuri Kuznetsov 86e0c502ae email reply fix 2021-08-10 14:08:31 +03:00
Yuri Kuznetsov c1936cf46b ics fixes 2021-08-10 12:52:42 +03:00
Yuri Kuznetsov 973910b837 fix pdf 2021-08-10 12:52:02 +03:00
Yuri Kuznetsov 590918ac6d fix upgrade 2021-08-10 11:54:02 +03:00
Yuri Kuznetsov b9e1efbe00 email replied id in references 2021-08-09 16:38:52 +03:00
Yuri Kuznetsov 2ca6870c6a fix 2021-08-09 12:21:53 +03:00
Yuri Kuznetsov ca3bedeeb4 fix xlsx 2021-08-09 11:34:19 +03:00
Yuri Kuznetsov f85d56ac4d xlsx refactoring 2021-08-07 16:39:31 +03:00
Yuri Kuznetsov 9a522f7922 pdf contents stream 2021-08-07 14:57:05 +03:00
Yuri Kuznetsov f453077796 refactoring 2021-08-07 14:39:47 +03:00
Yuri Kuznetsov 387029c5a6 pdf title name-placeholder 2021-08-07 09:39:57 +03:00
dependabot[bot] f3b74696c0 Bump tar from 6.0.5 to 6.1.2 (#2049)
Bumps [tar](https://github.com/npm/node-tar) from 6.0.5 to 6.1.2.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v6.0.5...v6.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-06 18:48:54 +03:00
Yuri Kuznetsov f946adb6d1 fix metadata module list 2021-08-06 17:15:27 +03:00
Yuri Kuznetsov dc3174747b lang 2021-08-06 14:38:34 +03:00
Yuri Kuznetsov 837ad89502 module clear cache 2021-08-06 13:36:38 +03:00
Yuri Kuznetsov 58ffd93961 fix webhooks 2021-08-06 11:17:46 +03:00
Yuri Kuznetsov 579c392a09 fix css 2021-08-05 16:36:44 +03:00
Yuri Kuznetsov 81fd1f522f upgrade script 2021-08-05 16:35:52 +03:00
Yuri Kuznetsov e30dcac465 v 2021-08-05 16:14:51 +03:00
Yuri Kuznetsov ee54cf2ebb collection maxMaxSize 2021-08-05 15:56:52 +03:00
Yuri Kuznetsov f47ead51ca cs fix 2021-08-05 15:14:00 +03:00
Yuri Kuznetsov ab425e0492 cs fix 2021-08-05 15:05:35 +03:00
Yuri Kuznetsov 95134b9ab8 cs fix 2021-08-05 14:15:08 +03:00
Yuri Kuznetsov 7ccac9aa79 fix ldap 2021-08-05 12:35:30 +03:00
Yuri Kuznetsov 69f221a424 config tests and refactoring 2021-08-05 11:01:31 +03:00
Yuri Kuznetsov 3c6eabaef8 install config fix 2021-08-04 20:57:11 +03:00
Yuri Kuznetsov 76361d1ca9 fix 2021-08-04 20:00:14 +03:00
Yuri Kuznetsov de69cf7ceb installer fix 2021-08-04 19:37:13 +03:00
Yuri Kuznetsov 3fd894df50 refactoring config access 2021-08-04 17:35:20 +03:00
Yuri Kuznetsov ddbed22a6f config internal 2021-08-04 16:41:18 +03:00
Yuri Kuznetsov f51140f361 fix comment 2021-08-04 13:37:28 +03:00
Yuri Kuznetsov 1876667db1 config refactoring 2021-08-04 12:54:42 +03:00
Yuri Kuznetsov 2587c2e372 websocket binding factory usage 2021-08-03 12:03:10 +03:00
Yuri Kuznetsov 4f6dfe3132 binding factory 2021-08-03 12:02:56 +03:00
Yuri Kuznetsov 58dbd7868a websocket refactoring 2021-08-02 16:59:43 +03:00
Yuri Kuznetsov 3d1245bee6 cs fix 2021-08-02 16:31:23 +03:00
Yuri Kuznetsov 2df012fb97 fix cache api catch error 2021-08-02 16:06:17 +03:00
Yuri Kuznetsov 83d5f74e19 fix 2021-08-02 14:32:21 +03:00
Yuri Kuznetsov 4dfac05fcb cs fix 2021-08-02 12:36:29 +03:00
Yuri Kuznetsov 3548e3e8cd fix modal button click 2021-08-02 12:36:17 +03:00
Yuri Kuznetsov 862ebe7d48 cs fix 2021-07-31 14:47:54 +03:00
Yuri Kuznetsov a56acf553c pdf title 2021-07-30 17:19:47 +03:00
Yuri Kuznetsov 0658f5b7fa ics fix 2021-07-30 16:59:39 +03:00
Yuri Kuznetsov 972e154a75 link manager quick search 2021-07-30 13:26:07 +03:00
Yuri Kuznetsov 70b0bedf9b link manager improvements 2021-07-30 13:11:07 +03:00
Yuri Kuznetsov d843f719c8 field manager quick search 2021-07-30 12:49:52 +03:00
Yuri Kuznetsov edf8d8a463 entity manager quick search 2021-07-29 18:10:51 +03:00
Yuri Kuznetsov 8c3e61c6a0 field manager ui improvements 2021-07-29 17:03:27 +03:00
Yuri Kuznetsov 6de1d45246 index.php change 2021-07-29 15:38:25 +03:00
Yuri Kuznetsov 5488870267 css fix 2021-07-29 13:49:00 +03:00
Yuri Kuznetsov a3845187b3 index change 2021-07-29 13:47:21 +03:00
Yuri Kuznetsov 2955a61a5c fix 2021-07-29 13:44:44 +03:00
Yuri Kuznetsov 0f11730181 change index 2021-07-29 13:11:06 +03:00
Yuri Kuznetsov 75255d80cd cleanup 2021-07-28 16:32:40 +03:00
Yuri Kuznetsov 2d88f5966c inline edit & dynamlic logic interop 2021-07-28 16:18:13 +03:00
Yuri Kuznetsov 2984b755d5 increase max select attribute length 2021-07-28 13:41:48 +03:00
Yuri Kuznetsov 7362db833b query builders create method 2021-07-28 13:29:34 +03:00
Yuri Kuznetsov 7b9bbd5be4 refactoring 2021-07-28 13:25:42 +03:00
Yuri Kuznetsov 11d4687794 test fix 2021-07-28 13:14:36 +03:00
Yuri Kuznetsov ef7c94f4e0 repository inteface 2021-07-28 13:04:14 +03:00
Yuri Kuznetsov 676e516f73 css prevent menu item drag 2021-07-27 17:07:06 +03:00
Yuri Kuznetsov d83d3982cd refactoring 2021-07-27 17:01:48 +03:00
Yuri Kuznetsov a24bf2d1d7 cleanup 2021-07-27 16:39:05 +03:00
Yuri Kuznetsov db46faef29 orm gr protected 2021-07-27 16:36:48 +03:00
Yuri Kuznetsov 64e7c1081b select usage 2021-07-27 16:08:50 +03:00
Yuri Kuznetsov 56bfd6a069 select usage 2021-07-27 15:44:10 +03:00
Yuri Kuznetsov 18ac071c5d orm pdo provider 2021-07-27 12:41:12 +03:00
Yuri Kuznetsov b44790c15f refactoring 2021-07-27 11:58:28 +03:00
Yuri Kuznetsov e04f0eb98b sf 2021-07-27 11:33:14 +03:00
Yuri Kuznetsov 2278a1217b orm refactoring and comments 2021-07-27 11:26:18 +03:00
Yuri Kuznetsov 183205b8d4 rename 2021-07-27 11:07:31 +03:00
Yuri Kuznetsov 435bb7b65b rename 2021-07-27 11:06:04 +03:00
Yuri Kuznetsov 52159093dd applicationDescription param 2021-07-26 16:12:46 +03:00
Yuri Kuznetsov c7056efe69 websocket DSN params 2021-07-26 15:37:36 +03:00
Yuri Kuznetsov 1b69ffe9e0 select where item builder 2021-07-26 14:15:18 +03:00
Yuri Kuznetsov 04203312bf orm groupBy => group 2021-07-26 13:40:17 +03:00
Yuri Kuznetsov 57bb2a3978 remove 2021-07-26 13:03:43 +03:00
Yuri Kuznetsov c32cea8f8a orm fix 2021-07-26 13:03:35 +03:00
Yuri Kuznetsov 6ba62abd88 move tests 2021-07-26 12:42:33 +03:00
Yuri Kuznetsov a31bf4e48e gr order by int usage 2021-07-26 12:12:53 +03:00
Yuri Kuznetsov fab113db25 orm order refactoring 2021-07-25 18:30:50 +03:00
Yuri Kuznetsov 2858fd4fa8 orm refactoring join class 2021-07-25 12:37:23 +03:00
Yuri Kuznetsov 49f12ac82f orm refactoring 2021-07-25 10:15:00 +03:00
Yuri Kuznetsov bf943cc706 orm order 2021-07-24 17:09:54 +03:00
Yuri Kuznetsov 09d8c550b5 orm order expression class 2021-07-24 15:39:28 +03:00
Yuri Kuznetsov dadcee8fe2 orm refactoring 2021-07-24 15:16:57 +03:00
Yuri Kuznetsov 9dacaf7ddf test fix 2021-07-24 11:08:12 +03:00
Yuri Kuznetsov 622cf46858 orm order expression fix 2021-07-24 11:01:55 +03:00
Yuri Kuznetsov 0c6f8bb52d orm: select item 2021-07-23 16:37:32 +03:00
Yuri Kuznetsov cccf05db39 rename boolean => bool 2021-07-23 15:17:24 +03:00
Yuri Kuznetsov f4ca5290ce orm test 2021-07-23 15:04:34 +03:00
Yuri Kuznetsov 2380b6aa76 test rename 2021-07-23 15:02:04 +03:00
Yuri Kuznetsov 215ccb70bc fix categories 2021-07-23 14:53:36 +03:00
Yuri Kuznetsov 3d5376889f fix categories 2021-07-23 14:14:55 +03:00
Yuri Kuznetsov 6053e3be64 select usage 2021-07-23 14:05:10 +03:00
Yuri Kuznetsov 51f6d27edf orm relation filter in clone 2021-07-23 14:04:53 +03:00
Yuri Kuznetsov e46a2089dd select usage 2021-07-23 12:13:33 +03:00
Yuri Kuznetsov d5dd918fde select usage and refactoring 2021-07-22 16:10:25 +03:00
Yuri Kuznetsov bf855c8b4c select usage and refactoring 2021-07-22 14:07:38 +03:00
Yuri Kuznetsov 4d273b34f7 avatar save refresh fix 2021-07-21 16:04:31 +03:00
Yuri Kuznetsov eb82a8afda refactoring 2021-07-21 15:59:08 +03:00
Yuri Kuznetsov 73c4204ee9 cs fixes 2021-07-21 15:51:59 +03:00
Yuri Kuznetsov 8fbbd0e714 stream attachment type storing 2021-07-21 13:59:48 +03:00
Yuri Kuznetsov 438daf82b4 image refactoring and svg support 2021-07-21 13:50:19 +03:00
Yuri Kuznetsov 7066098957 email folder field entity 2021-07-21 12:40:17 +03:00
Yuri Kuznetsov 4e2b1cf4ce upgrade script 2021-07-21 12:36:47 +03:00
Yuri Kuznetsov 8e36b55e40 upgrade version change 2021-07-21 12:24:37 +03:00
Yuri Kuznetsov e8df572503 cron info style fix 2021-07-21 12:18:54 +03:00
Yuri Kuznetsov 3e9556e1ef ics event changes 2021-07-21 12:11:15 +03:00
Yuri Kuznetsov ceef3e690d merge 2021-07-21 11:13:37 +03:00
Yuri Kuznetsov 3e6bc02256 v 2021-07-20 15:17:28 +03:00
Yuri Kuznetsov 6cc1d7f721 fix test 2021-07-19 15:27:21 +03:00
Yuri Kuznetsov 53dba06764 typo fix 2021-07-19 15:26:04 +03:00
Yuri Kuznetsov e514a34e60 email to meeting 2021-07-19 15:14:22 +03:00
Yuri Kuznetsov 3efe76dc71 fix doc 2021-07-16 11:13:31 +03:00
Yuri Kuznetsov 571e7e3333 doc 2021-07-16 11:06:12 +03:00
Yuri Kuznetsov 6b4d955d7c orm: ssl verify disabled param 2021-07-15 17:05:06 +03:00
Yuri Kuznetsov da0b4ca25d css fix 2021-07-15 15:48:32 +03:00
Yuri Kuznetsov 3b093f5da3 task service 2021-07-15 12:14:41 +03:00
Yuri Kuznetsov 570c02ae55 fix mass action 2021-07-14 12:07:57 +03:00
Yuri Kuznetsov 81ff4f2c8a fix module 2021-07-13 15:16:21 +03:00
Yuri Kuznetsov 34b0402bc1 bc fixes 2021-07-13 12:54:38 +03:00
Yuri Kuznetsov 469b75624d fix 2021-07-13 12:02:10 +03:00
Yuri Kuznetsov 59e239118c fix 2021-07-13 12:02:04 +03:00
Yuri Kuznetsov 10957b5fdf fix tree 2021-07-12 16:29:55 +03:00
Yuri Kuznetsov bc9f66008d bc fix 2021-07-12 15:59:51 +03:00
Yuri Kuznetsov 76b798d6e2 install fix 2021-07-12 15:52:02 +03:00
Yuri Kuznetsov 7717a15fc2 trailing nl 2021-07-12 13:54:37 +03:00
Yuri Kuznetsov e0ef0a38a5 fix 2021-07-12 12:11:13 +03:00
Yuri Kuznetsov b21eea1568 fix installer 2021-07-12 12:06:43 +03:00
Yuri Kuznetsov ac73f8d6b6 htaccess dev replace 2021-07-12 11:59:30 +03:00
Yuri Kuznetsov 7d95969f03 searchParams in json 2021-07-10 13:17:41 +03:00
Yuri Kuznetsov f67b06be88 cleanup 2021-07-10 13:00:55 +03:00
Yuri Kuznetsov fa5effe1a9 refactoring 2021-07-10 12:55:37 +03:00
Yuri Kuznetsov 1f4dcb5a38 cs fix 2021-07-09 10:59:18 +03:00
Yuri Kuznetsov 949149ea4d cleanup and cs fixes 2021-07-09 10:57:16 +03:00
Yuri Kuznetsov 8ff262456b record id generator 2021-07-09 10:48:05 +03:00
HungNguyenPTN 03cf443b14 Fix issue #2009 (#2035)
* ISSUE #2009:
-Fix loadAdditionalFields does not work for email templates
-Similar to PDF template

* Update EmailTemplate.php
2021-07-09 09:08:04 +03:00
Yuri Kuznetsov 2681fdabec binding container builder 2021-07-08 17:34:24 +03:00
Yuri Kuznetsov 678c9779ce cs fix 2021-07-08 17:09:06 +03:00
Yuri Kuznetsov 1728f5d9f0 cs fix 2021-07-08 16:00:00 +03:00
Yuri Kuznetsov b71312b8eb url allow any protocol 2021-07-06 17:01:25 +03:00
Yuri Kuznetsov ebe27c499e cs fix 2021-07-06 16:44:40 +03:00
Yuri Kuznetsov fbc164df8c entity inteface getValueMap 2021-07-06 16:42:06 +03:00
Yuri Kuznetsov d419da1cac calendar sharedViewModeList 2021-07-06 16:35:38 +03:00
Yuri Kuznetsov 67e6e29994 cs fix 2021-07-06 16:31:10 +03:00
Yuri Kuznetsov 3059e60096 cs fix 2021-07-06 16:30:01 +03:00
Yuri Kuznetsov 8a4a0f6bdc fix 2021-07-06 16:14:19 +03:00
Yuri Kuznetsov a1ea97950e cleanup 2021-07-06 15:14:07 +03:00
Yuri Kuznetsov 2d58361620 cs fix 2021-07-06 15:12:00 +03:00
Yuri Kuznetsov a98262338a fix 2021-07-06 15:07:16 +03:00
Yuri Kuznetsov 47cd8b71f7 bundle fix 2021-07-06 15:06:25 +03:00
Yuri Kuznetsov 36d6a72317 public folder 2021-07-06 13:46:49 +03:00
Yuri Kuznetsov 1da5f7e223 fix portal attachment acl 2021-07-06 09:47:49 +03:00
Yuri Kuznetsov 29398de678 custom modules support 2021-07-02 12:11:33 +03:00
Yuri Kuznetsov d95d562843 cs fix 2021-07-02 11:55:07 +03:00
Yuri Kuznetsov cb51839eb9 module path refactoring 2021-07-01 17:16:57 +03:00
Yuri Kuznetsov ec31075fae bypass filter resolver 2021-07-01 15:37:49 +03:00
Yuri Kuznetsov b30a845a65 update summernote 2021-07-01 13:45:13 +03:00
Yuri Kuznetsov 9667c2fc5a fix category tree 2021-07-01 13:11:17 +03:00
Yuri Kuznetsov 7df4084d45 category tree show panel 2021-07-01 12:59:13 +03:00
Yuri Kuznetsov d91c9f45c3 fix 2021-07-01 11:43:29 +03:00
Yuri Kuznetsov 840b3940cd fix categore tree 2021-07-01 10:56:51 +03:00
Yuri Kuznetsov 8a1e875020 add broadcast-channel to bundle 2021-06-30 14:02:16 +03:00
Yuri Kuznetsov 8c43d3f378 admin changes update current and other tabs 2021-06-30 12:55:07 +03:00
Yuri Kuznetsov d67ebbe683 fix 2021-06-30 12:53:31 +03:00
Yuri Kuznetsov 16d9845027 cs fix 2021-06-30 12:36:43 +03:00
Yuri Kuznetsov 5591b49c8d cs fix 2021-06-30 12:17:48 +03:00
Yuri Kuznetsov e67d140af0 cs fix 2021-06-30 11:53:22 +03:00
Yuri Kuznetsov d8252fc769 cs fix 2021-06-30 10:22:28 +03:00
Yuri Kuznetsov dfb50ab7ee remove loadLib 2021-06-30 10:04:19 +03:00
Yuri Kuznetsov fcc2271e83 move 2021-06-29 18:12:06 +03:00
Yuri Kuznetsov ae25a48d4e move 2021-06-29 18:11:07 +03:00
Yuri Kuznetsov b703c6a0ae Update config.yml 2021-06-29 17:54:08 +03:00
Yuri Kuznetsov c8ae67aba8 Update bug_report.md 2021-06-29 17:53:53 +03:00
Yuri Kuznetsov 9e68c32f96 Update bug_report.md 2021-06-29 17:52:50 +03:00
Yuri Kuznetsov 5887480b29 Update config.yml 2021-06-29 17:52:11 +03:00
Yuri Kuznetsov edabd603b3 Update config.yml 2021-06-29 17:48:29 +03:00
Yuri Kuznetsov 1131af8283 Create config.yml 2021-06-29 17:46:18 +03:00
Yuri Kuznetsov 59e69ac1cc cs fix 2021-06-29 17:38:00 +03:00
Yuri Kuznetsov 25281d0c6f stream update note access control 2021-06-29 17:27:12 +03:00
Yuri Kuznetsov 0ab3da1512 comment 2021-06-29 16:12:33 +03:00
Yuri Kuznetsov 80d4799073 cs fix 2021-06-29 13:50:26 +03:00
Yuri Kuznetsov 71353042c3 cs fix 2021-06-29 13:13:45 +03:00
Yuri Kuznetsov b5c3fb16cb wider buttons 2021-06-29 12:55:39 +03:00
Yuri Kuznetsov 3e3159f03b fix 2021-06-29 12:25:26 +03:00
Yuri Kuznetsov 97a2044f5e cs fix 2021-06-29 11:56:11 +03:00
Yuri Kuznetsov fd1093180f cs fix 2021-06-29 11:48:06 +03:00
dependabot[bot] 68f3d6c056 Bump league/flysystem from 2.0.4 to 2.1.1 (#2029)
Bumps [league/flysystem](https://github.com/thephpleague/flysystem) from 2.0.4 to 2.1.1.
- [Release notes](https://github.com/thephpleague/flysystem/releases)
- [Changelog](https://github.com/thephpleague/flysystem/blob/2.x/CHANGELOG.md)
- [Commits](https://github.com/thephpleague/flysystem/compare/2.0.4...2.1.1)

---
updated-dependencies:
- dependency-name: league/flysystem
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-29 11:46:49 +03:00
Yuri Kuznetsov 6002e73a59 Update issue templates 2021-06-29 11:45:13 +03:00
Yuri Kuznetsov 1e0fd60d4e Update issue templates 2021-06-29 11:41:32 +03:00
Yuri Kuznetsov f0d5cda1c5 fix 2021-06-28 16:12:00 +03:00
Yuri Kuznetsov 04f8630d96 tpl fixes 2021-06-28 16:01:25 +03:00
Yuri Kuznetsov 440db9ba7e composer changes 2021-06-27 12:07:23 +03:00
Yuri Kuznetsov 44fca49e3f fix 2021-06-26 19:21:08 +03:00
Yuri Kuznetsov 061220263c namespace loader log 2021-06-26 19:20:45 +03:00
Yuri Kuznetsov 428f8a68bf diff: indlude composer changes 2021-06-26 19:13:54 +03:00
Yuri Kuznetsov 03f3e4595e psr4 usage 2021-06-26 18:58:32 +03:00
Yuri Kuznetsov 21fe26d042 npm-install ignore output 2021-06-26 18:51:35 +03:00
Yuri Kuznetsov 38f79e9244 refactoring 2021-06-26 18:40:30 +03:00
Yuri Kuznetsov 2ff4ec81ac module service 2021-06-26 15:09:20 +03:00
Yuri Kuznetsov 3d24f63fd7 refactoring 2021-06-26 11:26:18 +03:00
Yuri Kuznetsov e8c66db876 refactoring 2021-06-26 11:07:04 +03:00
Yuri Kuznetsov f38811ae9d fix 2021-06-26 10:51:02 +03:00
Yuri Kuznetsov 74693c5f6e hooks refactoring 2021-06-26 10:48:19 +03:00
Yuri Kuznetsov 3f2560655e cleanup 2021-06-25 16:20:48 +03:00
Yuri Kuznetsov bac596ff5b module refactoring 2021-06-25 16:11:28 +03:00
Yuri Kuznetsov b7561b6cfc fix 2021-06-25 16:03:41 +03:00
Yuri Kuznetsov afb41ebc05 fix 2021-06-25 15:56:07 +03:00
Yuri Kuznetsov 4961f4859e cleanup 2021-06-25 14:21:26 +03:00
Yuri Kuznetsov 0b18e1ae88 route refactoring 2021-06-25 14:18:47 +03:00
Yuri Kuznetsov 217fcaaddc refactoring 2021-06-25 13:01:22 +03:00
Yuri Kuznetsov f77c23f781 fix naming 2021-06-25 11:45:43 +03:00
Yuri Kuznetsov 639c7bb876 fix comment 2021-06-25 11:43:28 +03:00
Yuri Kuznetsov b9a5498279 refactoring 2021-06-25 11:43:28 +03:00
Taras Machyshyn 3a8e98bb82 Merge branch 'hotfix/6.1.8' 2021-06-24 18:28:40 +03:00
Yuri Kuznetsov f2e5e66383 template file manager use file reader 2021-06-24 17:55:54 +03:00
Taras Machyshyn 2a52d3c52e NamespaceLoader bug fixes 2021-06-24 17:47:57 +03:00
Yuri Kuznetsov 7332d0aa37 layout use file reader 2021-06-24 16:06:19 +03:00
Yuri Kuznetsov 1e7f248d28 rename QueryParams => Query 2021-06-24 12:30:24 +03:00
Yuri Kuznetsov a381eb3d5a orm parts => part 2021-06-24 11:50:29 +03:00
Yuri Kuznetsov 70f2d82963 fix grunt 2021-06-24 11:49:48 +03:00
Yuri Kuznetsov 2dc0a6bc95 installer libs 2021-06-24 11:34:13 +03:00
Yuri Kuznetsov b37a458a1d cleanup 2021-06-24 11:22:40 +03:00
Yuri Kuznetsov e2257c5046 cs fix 2021-06-24 10:57:26 +03:00
Yuri Kuznetsov e3ee433b49 change html 2021-06-24 10:50:55 +03:00
Yuri Kuznetsov 16e4b2ae40 fixes 2021-06-24 10:37:21 +03:00
Yuri Kuznetsov 0a513fe088 change 2021-06-23 16:24:21 +03:00
Yuri Kuznetsov f0cd18e711 fix 2021-06-23 16:02:51 +03:00
Yuri Kuznetsov 9559e9fff3 libs config 2021-06-23 15:45:51 +03:00
Yuri Kuznetsov e6c869a438 fix 2021-06-23 13:57:37 +03:00
Yuri Kuznetsov f701a142c8 grunt changes 2021-06-23 13:06:26 +03:00
Yuri Kuznetsov f02cfc5a1a lib minify 2021-06-23 12:58:25 +03:00
Yuri Kuznetsov 14e5446696 dif fix 2021-06-23 11:03:52 +03:00
Yuri Kuznetsov 61dc029867 diff changes 2021-06-23 10:43:06 +03:00
Yuri Kuznetsov 9f00055454 refactoring 2021-06-23 10:27:04 +03:00
Yuri Kuznetsov bf4a01971d refactoring 2021-06-22 22:24:23 +03:00
Yuri Kuznetsov 5b1d060e5a deprecated comments 2021-06-22 20:35:13 +03:00
Yuri Kuznetsov 8582f74e3e diff dev 2021-06-22 17:31:31 +03:00
Yuri Kuznetsov fcfeacdd82 fix 2021-06-22 16:17:02 +03:00
Yuri Kuznetsov 78902caf30 refactoring 2021-06-22 16:15:52 +03:00
Yuri Kuznetsov 03d5a8357a fix install lib 2021-06-22 15:46:07 +03:00
Yuri Kuznetsov c8f6f1b4f2 fix 2021-06-22 15:26:53 +03:00
Yuri Kuznetsov 519df8c33b cs fix 2021-06-22 13:58:00 +03:00
Yuri Kuznetsov 14205b4145 fix modal 2021-06-22 13:34:11 +03:00
Yuri Kuznetsov cf6eadcc8c selectize in bundle 2021-06-22 13:14:20 +03:00
Yuri Kuznetsov ab5e9c8344 libs dev 2021-06-22 12:51:38 +03:00
Yuri Kuznetsov c1f9a86dd3 libs 2021-06-22 12:34:29 +03:00
Yuri Kuznetsov 5204a34031 libs 2021-06-22 12:25:54 +03:00
Yuri Kuznetsov 4c980e64ac libs 2021-06-22 11:48:25 +03:00
Yuri Kuznetsov ad772b7706 cleanup 2021-06-22 08:46:35 +03:00
Yuri Kuznetsov 471299bd21 fix installer 2021-06-22 08:46:29 +03:00
Yuri Kuznetsov fc945fbab9 libs 2021-06-21 21:00:06 +03:00
Yuri Kuznetsov defc97dc35 cleanup 2021-06-21 18:52:17 +03:00
Yuri Kuznetsov e239cb551d flotr lib 2021-06-21 18:40:22 +03:00
Yuri Kuznetsov bceecbf377 lib 2021-06-21 17:23:22 +03:00
Yuri Kuznetsov 6bdbfe4aa0 lib 2021-06-21 17:09:53 +03:00
Yuri Kuznetsov 243fab3a05 libs 2021-06-21 16:46:38 +03:00
Yuri Kuznetsov 24470ffe11 cleanup 2021-06-21 14:29:53 +03:00
Yuri Kuznetsov cb04731319 libs 2021-06-21 14:22:31 +03:00
Yuri Kuznetsov 16db12231a lib usage 2021-06-21 14:14:06 +03:00
Yuri Kuznetsov 9e6385c00a tpl fix 2021-06-21 13:18:57 +03:00
Yuri Kuznetsov 5d79dfa6be tpl fixes 2021-06-21 13:13:10 +03:00
Yuri Kuznetsov 6ccc65a85a libs 2021-06-21 11:48:53 +03:00
Yuri Kuznetsov 58d2a2460b lib building 2021-06-21 11:08:05 +03:00
Yuri Kuznetsov df887cba61 lib devPath 2021-06-19 19:35:22 +03:00
Yuri Kuznetsov e68ad67070 fix 2021-06-19 18:54:21 +03:00
Yuri Kuznetsov 8c9a4f9d3b grunt run npm install 2021-06-19 18:48:42 +03:00
Yuri Kuznetsov d853f0e7f9 lib updates 2021-06-19 18:29:27 +03:00
Yuri Kuznetsov 5e60f65711 fix 2021-06-19 17:41:46 +03:00
Yuri Kuznetsov ad72465a04 lib upgrades 2021-06-19 17:27:23 +03:00
Yuri Kuznetsov df75bc04f8 libs 2021-06-19 15:04:47 +03:00
Yuri Kuznetsov 442c5870c4 lib updates 2021-06-19 14:34:55 +03:00
Yuri Kuznetsov 08495a3cb2 fix 2021-06-19 14:34:14 +03:00
Yuri Kuznetsov 06de76ed58 fix datetime 2021-06-19 14:02:52 +03:00
Yuri Kuznetsov 23f3ca2c5c cs fix 2021-06-19 13:55:23 +03:00
Yuri Kuznetsov 4939c281aa cs fix 2021-06-19 13:43:14 +03:00
Yuri Kuznetsov 02d15211fa npm usage for client libs 2021-06-19 13:39:08 +03:00
Yuri Kuznetsov be6f7671c8 footer link changes 2021-06-18 20:57:37 +03:00
Yuri Kuznetsov 76cd1b9cad fix 2021-06-18 15:37:58 +03:00
Yuri Kuznetsov 57cfa6f5a0 refactoring 2021-06-18 15:33:28 +03:00
Yuri Kuznetsov aa5bcf97d2 resource finder 2021-06-18 15:17:21 +03:00
Yuri Kuznetsov fbf05d5263 refactoring 2021-06-18 13:03:08 +03:00
Yuri Kuznetsov f54a8002a7 naming fix 2021-06-18 12:03:51 +03:00
Yuri Kuznetsov c25b10bb78 refactoring 2021-06-18 12:01:38 +03:00
Yuri Kuznetsov 703279a2f8 refactoring 2021-06-18 11:44:33 +03:00
Yuri Kuznetsov beae99c71b cs fix 2021-06-17 23:33:37 +03:00
Yuri Kuznetsov 7478a323ab rename 2021-06-17 18:40:18 +03:00
Yuri Kuznetsov 31a273446b fix 2021-06-17 18:07:38 +03:00
Yuri Kuznetsov e1e51eb124 deprecate getPDO 2021-06-17 18:05:03 +03:00
Yuri Kuznetsov 95327fd3a3 gr getPDO usage 2021-06-17 18:02:03 +03:00
Yuri Kuznetsov 533eed11f0 button larger 2021-06-17 14:17:31 +03:00
Yuri Kuznetsov eb68a43544 config not extending model offline 2021-06-17 14:13:38 +03:00
Yuri Kuznetsov 7bd1156cda requirements page fixes 2021-06-17 13:50:37 +03:00
Yuri Kuznetsov 0c7e33b2f1 Merge branch 'hotfix/6.1.8' 2021-06-17 13:28:45 +03:00
Yuri Kuznetsov a9623ff698 hotfix cache clear on login 2021-06-17 13:19:59 +03:00
Yuri Kuznetsov 44d97b64b9 cache issue fix 2021-06-17 13:10:07 +03:00
Yuri Kuznetsov e4778dea36 fix 2021-06-17 12:56:53 +03:00
Yuri Kuznetsov c3421b42c7 refactoring 2021-06-17 11:55:42 +03:00
Yuri Kuznetsov 10bbe516d7 cleanup 2021-06-17 10:54:36 +03:00
Yuri Kuznetsov 771e33109d fix 2021-06-16 13:35:05 +03:00
Yuri Kuznetsov ec81d5a964 fix 2021-06-16 13:30:38 +03:00
Yuri Kuznetsov ee1628dbdf scheduled job populating change 2021-06-16 13:13:59 +03:00
Yuri Kuznetsov a1c2c9efbd job group length 2021-06-16 12:54:13 +03:00
Yuri Kuznetsov f2070332e9 test job scheduler 2021-06-16 12:50:59 +03:00
Yuri Kuznetsov 5079ece2dc job scheduler change 2021-06-16 12:46:04 +03:00
Yuri Kuznetsov 6a791713ea job group processing 2021-06-16 12:43:26 +03:00
Yuri Kuznetsov 41c9568d80 job target group running check 2021-06-16 11:40:43 +03:00
Yuri Kuznetsov 698f3d2821 update laminas service manager 2021-06-16 11:13:29 +03:00
Yuri Kuznetsov a86ea5d12f fix filters enum 2021-06-16 10:15:22 +03:00
Yuri Kuznetsov fea9837f30 select item converter any, none filters 2021-06-16 10:15:05 +03:00
Yuri Kuznetsov 72a11e51a2 layout change 2021-06-16 09:42:01 +03:00
Yuri Kuznetsov b9e1406f5b fix 2021-06-16 09:41:00 +03:00
Yuri Kuznetsov 564b425b8f job changes 2021-06-15 22:55:27 +03:00
Yuri Kuznetsov 532dd78aa8 fix naming 2021-06-15 21:04:46 +03:00
Yuri Kuznetsov 5f969c703f fix 2021-06-15 20:01:49 +03:00
Yuri Kuznetsov 675b0a39fc fix 2021-06-15 18:51:41 +03:00
Yuri Kuznetsov 0a62472840 fix comment 2021-06-15 18:51:00 +03:00
Yuri Kuznetsov faa8545fcf fixes and tests 2021-06-15 18:48:42 +03:00
Yuri Kuznetsov 7d98a01e9a comment fix 2021-06-15 18:07:01 +03:00
Yuri Kuznetsov d74d3b282d job scheduler 2021-06-15 18:06:02 +03:00
Yuri Kuznetsov 747e9438c9 renaming 2021-06-15 16:27:09 +03:00
Yuri Kuznetsov b6ae809b56 job ui fix 2021-06-15 16:06:16 +03:00
Yuri Kuznetsov c999ae9da4 job groups 2021-06-15 16:01:10 +03:00
Yuri Kuznetsov 61eff01008 refactoring 2021-06-15 12:34:33 +03:00
Yuri Kuznetsov f2ee9afa88 refactoring 2021-06-15 11:59:47 +03:00
Yuri Kuznetsov dc5ac7b3a3 refactoring 2021-06-15 11:51:34 +03:00
Yuri Kuznetsov 612fbf8f38 refactoring 2021-06-15 11:37:10 +03:00
Yuri Kuznetsov f97a8728fd fix comment 2021-06-14 15:52:29 +03:00
Yuri Kuznetsov 1c1ddaf3d0 refactoring 2021-06-14 15:40:32 +03:00
Yuri Kuznetsov 30316222f3 job with class name 2021-06-14 15:36:07 +03:00
Yuri Kuznetsov d53e6b767c test 2021-06-14 15:11:21 +03:00
Yuri Kuznetsov 661a1b5839 fix 2021-06-14 15:07:47 +03:00
Yuri Kuznetsov cb2485ae3d job refactoring 2021-06-14 14:25:07 +03:00
Yuri Kuznetsov fa70bf3ff8 refactoring 2021-06-14 12:05:14 +03:00
Yuri Kuznetsov a32419d07d refactoring 2021-06-14 11:21:26 +03:00
Yuri Kuznetsov c2e806e318 cleanup 2021-06-13 16:41:17 +03:00
Yuri Kuznetsov ba8bbc462d refactoring 2021-06-13 16:40:46 +03:00
Yuri Kuznetsov c4a04d3dca cs fix 2021-06-13 11:48:40 +03:00
Yuri Kuznetsov 1135458d60 cs fix 2021-06-13 10:51:25 +03:00
Yuri Kuznetsov 3d2aa17cf2 cs fix 2021-06-12 21:20:10 +03:00
Yuri Kuznetsov 3baf1f17bf orm refactoring 2021-06-12 14:50:13 +03:00
Yuri Kuznetsov f8ecbb7806 refactor loader 2021-06-12 12:13:19 +03:00
Yuri Kuznetsov 8f3f2a20c1 cs fix 2021-06-12 11:37:09 +03:00
Yuri Kuznetsov 7935644115 cs fix 2021-06-12 11:13:21 +03:00
Yuri Kuznetsov dde3eca10e cs fix 2021-06-12 10:28:49 +03:00
Yuri Kuznetsov ae60a08baa cs fix 2021-06-11 21:29:27 +03:00
Yuri Kuznetsov 676e4a2cd4 webhook test 2021-06-11 16:12:30 +03:00
Yuri Kuznetsov 7f66d4690e webhook test 2021-06-11 16:01:55 +03:00
Yuri Kuznetsov 40fccc57ed webhook refactoring and test 2021-06-11 15:44:21 +03:00
Yuri Kuznetsov df44cc0779 webhook test 2021-06-11 13:20:02 +03:00
Yuri Kuznetsov d29e2f3994 cs fix 2021-06-11 13:04:08 +03:00
Yuri Kuznetsov 3c6b485321 renaming 2021-06-11 11:00:57 +03:00
Yuri Kuznetsov 4e08c0f3cf cs fix 2021-06-11 10:55:49 +03:00
Yuri Kuznetsov c9c45ec8d1 cs fix 2021-06-11 10:48:42 +03:00
Yuri Kuznetsov af4d1e650c cs fix 2021-06-10 17:01:54 +03:00
Yuri Kuznetsov 3412cb6e45 grid usage 2021-06-10 16:19:00 +03:00
Yuri Kuznetsov 9cbf9f3942 email image detecting 2021-06-10 15:53:24 +03:00
Yuri Kuznetsov 837e5764b8 cs fix 2021-06-10 15:22:36 +03:00
Yuri Kuznetsov 491c27cd74 disable kanban order in portal 2021-06-10 15:15:43 +03:00
Yuri Kuznetsov bddb517583 fix assignment checker 2021-06-10 15:12:56 +03:00
Yuri Kuznetsov 843cc89547 fix 2021-06-10 15:02:33 +03:00
Yuri Kuznetsov 4324b8dfc5 pdf apply default order for relations 2021-06-10 12:23:40 +03:00
Yuri Kuznetsov 078a65a8bf cleanup 2021-06-10 11:19:41 +03:00
Yuri Kuznetsov 17aa37f17b hook tests 2021-06-10 11:18:25 +03:00
Yuri Kuznetsov d30d951494 update npm dep 2021-06-10 09:30:50 +03:00
Yuri Kuznetsov 7bc76bdee4 uglify harmony usage 2021-06-10 09:22:50 +03:00
Yuri Kuznetsov 4fc1a87ead fix 2021-06-10 09:20:53 +03:00
Yuri Kuznetsov 4b8e157098 fix grunt 2021-06-10 09:20:22 +03:00
Yuri Kuznetsov 8fef756172 fix 2fa password 2021-06-09 21:52:33 +03:00
Yuri Kuznetsov 7aab27a60f fix tests 2021-06-09 16:13:21 +03:00
Yuri Kuznetsov 2ebcc52358 fix 2021-06-09 16:13:17 +03:00
Yuri Kuznetsov 7e83bad920 fix link multiple factory 2021-06-09 16:07:46 +03:00
Yuri Kuznetsov 052ea72e87 fix comment 2021-06-09 16:07:26 +03:00
Yuri Kuznetsov 37dd04746b uglify es 2021-06-09 15:37:26 +03:00
Yuri Kuznetsov c0a815f36e record hook 2021-06-09 15:34:36 +03:00
Yuri Kuznetsov 8fa1e3dd79 cs fix 2021-06-09 15:26:42 +03:00
Yuri Kuznetsov 61c9bdea92 fix composer 2021-06-09 15:23:26 +03:00
Yuri Kuznetsov d804ca40f4 fix composer temp 2021-06-09 14:21:15 +03:00
Yuri Kuznetsov aa3d09a55c deprecate createCollection 2021-06-08 17:20:09 +03:00
Yuri Kuznetsov 5a65ee5254 field invalid dynamic logic 2021-06-06 19:14:16 +03:00
Yuri Kuznetsov a50c7d34ff cs fix 2021-06-06 18:03:14 +03:00
Yuri Kuznetsov b98ab87ae7 nl lang 2021-06-05 15:40:18 +03:00
Yuri Kuznetsov f90f1ec7c0 update lock 2021-06-05 14:41:25 +03:00
Yuri Kuznetsov b8edecc092 ignore ext-ldap, ext-zmq deps 2021-06-05 14:33:41 +03:00
Yuri Kuznetsov 3b73e3d49d update laminas libs 2021-06-05 14:32:23 +03:00
Yuri Kuznetsov 580afb5a21 update symfony deps 2021-06-05 14:19:20 +03:00
Yuri Kuznetsov a673756664 update slim/psr7 2021-06-05 14:07:04 +03:00
Yuri Kuznetsov 0499639473 update fig/http-message-util 2021-06-05 14:03:58 +03:00
Yuri Kuznetsov 69dd14682c update cron expression lib 2021-06-05 14:02:22 +03:00
Yuri Kuznetsov d9fa110156 dynamic logic improvements 2021-06-05 12:15:24 +03:00
Yuri Kuznetsov 3f9fc67ab4 entity manager check link name matches entity type 2021-06-04 16:01:38 +03:00
Yuri Kuznetsov 43c82fb028 fix 2021-06-03 19:50:07 +03:00
Yuri Kuznetsov 01c0fa9563 fix css 2021-06-03 19:45:00 +03:00
Yuri Kuznetsov ffce78808e bind client manager 2021-06-02 16:14:59 +03:00
Yuri Kuznetsov e4d5ffb281 fix 2021-06-01 15:59:14 +03:00
Yuri Kuznetsov b8422e7299 dev 2021-06-01 15:56:12 +03:00
Yuri Kuznetsov d7641455d4 view setup handlers and document drop 2021-06-01 14:49:21 +03:00
Yuri Kuznetsov b6e56ae42c cs fix 2021-06-01 10:28:38 +03:00
Yuri Kuznetsov 52cfa061c4 entity type const usage 2021-05-31 14:08:00 +03:00
Yuri Kuznetsov 9208debb1a entity type const 2021-05-31 14:03:21 +03:00
Yuri Kuznetsov 5da4e9f4a8 attachment edit view download 2021-05-31 13:31:32 +03:00
Yuri Kuznetsov f30bfb20ef fix 2021-05-31 12:57:51 +03:00
Yuri Kuznetsov 798eee940c import ui fix 2021-05-31 12:41:56 +03:00
Yuri Kuznetsov 9c44356d5a email account monitored folders as array 2021-05-31 12:25:51 +03:00
Yuri Kuznetsov e241ad349a cs fix 2021-05-31 11:18:14 +03:00
Yuri Kuznetsov 25f5b82cff move 2021-05-29 15:07:49 +03:00
Yuri Kuznetsov 5776f56f7b monitoref fodler max length 2021-05-29 12:06:56 +03:00
Yuri Kuznetsov 20da15c931 refactoring 2021-05-29 12:06:47 +03:00
Yuri Kuznetsov 0b68dd0e85 refactoring 2021-05-29 11:49:12 +03:00
Yuri Kuznetsov 4e49e69c16 fix 2021-05-28 22:39:35 +03:00
Yuri Kuznetsov 8c775896b2 refactoring 2021-05-28 16:15:32 +03:00
Yuri Kuznetsov 9af1168004 refactoring 2021-05-28 16:12:39 +03:00
Yuri Kuznetsov c1986623ed fix attachment mail import 2021-05-28 15:38:44 +03:00
Yuri Kuznetsov 700a39f4c5 formula test 2021-05-28 15:15:26 +03:00
Yuri Kuznetsov 738cae727e cleanup 2021-05-28 15:14:08 +03:00
Yuri Kuznetsov 08536f0850 cleanup 2021-05-28 15:08:18 +03:00
Yuri Kuznetsov ddca72e8bd tests 2021-05-28 15:07:20 +03:00
Yuri Kuznetsov 3ddbf3aca7 fix entity manager 2021-05-28 13:47:05 +03:00
Yuri Kuznetsov 52ed21cae5 duplicate finder refactoring 2021-05-28 13:41:57 +03:00
Yuri Kuznetsov f7dd5d92ac fix 2021-05-27 23:00:20 +03:00
Yuri Kuznetsov 4d3e1c713a fix 2021-05-27 13:45:18 +03:00
Yuri Kuznetsov b54f6310f3 fromula autocomplete impr 2021-05-27 13:42:43 +03:00
Yuri Kuznetsov 008bdfdad5 more formula insert items 2021-05-27 13:12:30 +03:00
Yuri Kuznetsov ffa6c115e1 fix css wysiwyg 2021-05-27 12:39:29 +03:00
Yuri Kuznetsov ae3d59fc47 cleanup 2021-05-27 12:09:12 +03:00
Yuri Kuznetsov 3207aeb741 entity manager tool refactoring and fixes 2021-05-27 12:03:32 +03:00
Yuri Kuznetsov b3949aa3cc fix 2021-05-27 11:22:58 +03:00
Yuri Kuznetsov 6e9d29937d Optimistic concurrency control 2021-05-26 14:09:45 +03:00
Yuri Kuznetsov 96dca60a2b cs fix 2021-05-26 13:39:10 +03:00
Yuri Kuznetsov 8d3a7f2526 save error handlers 2021-05-25 13:55:02 +03:00
Yuri Kuznetsov ac9f51a0f3 fix person name select 2021-05-25 13:23:32 +03:00
Yuri Kuznetsov 8ffd06025e cleanup 2021-05-25 13:18:58 +03:00
Yuri Kuznetsov 576f424bc0 client save refactoring 2021-05-25 13:02:50 +03:00
Yuri Kuznetsov ec5c92e369 create update params 2021-05-25 11:40:33 +03:00
Yuri Kuznetsov 6a97b3dee5 cs fix 2021-05-25 11:08:05 +03:00
Yuri Kuznetsov 70070daf1c cs fix 2021-05-24 12:42:52 +03:00
Yuri Kuznetsov 482e4097d8 manual merge 2021-05-24 12:35:51 +03:00
Yuri Kuznetsov f774b4bbcf queue optimization 2021-05-24 12:20:40 +03:00
Yuri Kuznetsov 47938a1072 job queue optimization 2021-05-24 12:13:18 +03:00
Yuri Kuznetsov 93449c9320 fix webhook 2021-05-24 11:02:44 +03:00
Yuri Kuznetsov e93310b9bf tcpdf relocation 2021-05-21 18:26:06 +03:00
Yuri Kuznetsov 9a26889fc7 cs fix 2021-05-21 15:39:07 +03:00
Yuri Kuznetsov 106fdc72c4 cs fix 2021-05-21 15:35:39 +03:00
Yuri Kuznetsov 6224d8fbbe fix notification 2021-05-21 15:14:37 +03:00
Yuri Kuznetsov b1a195c67e fix preferences 2021-05-21 15:13:35 +03:00
Yuri Kuznetsov 607fbb609c fix loading notification 2021-05-21 15:09:27 +03:00
Yuri Kuznetsov 13e186576b fix 2021-05-21 15:06:35 +03:00
Yuri Kuznetsov d30041dfe7 iframe disabled 2021-05-21 15:04:42 +03:00
Yuri Kuznetsov dc14024dd7 cs fix 2021-05-21 14:01:44 +03:00
Yuri Kuznetsov bd95bc12ba update ace 2021-05-21 13:54:48 +03:00
Yuri Kuznetsov 0b67883de8 formula autocomplete 2021-05-21 13:37:15 +03:00
Yuri Kuznetsov 64e1d6b27e cs fix 2021-05-21 13:27:33 +03:00
Yuri Kuznetsov 7a840f1a6e cs fix 2021-05-21 13:21:45 +03:00
Yuri Kuznetsov 35ac4e91f6 cs fix 2021-05-21 11:24:31 +03:00
Yuri Kuznetsov 9a03074283 fixes 2021-05-20 23:03:10 +03:00
Arkady 0ed68957db fix typo (#1988)
Co-authored-by: Yuri Kuznetsov <yurikuzn@users.noreply.github.com>
2021-05-20 22:51:18 +03:00
Yuri Kuznetsov 44d4e4f78f pl lang fixes 2021-05-20 22:42:57 +03:00
Yuri Kuznetsov 4506f06b01 test 2021-05-20 19:57:46 +03:00
Yuri Kuznetsov 813e3227ad email refactoring 2021-05-20 19:50:48 +03:00
Yuri Kuznetsov 3bbccf2c3c rename 2021-05-20 18:31:23 +03:00
Yuri Kuznetsov 810677014c options usage 2021-05-20 18:22:57 +03:00
Yuri Kuznetsov f81ef16012 fix mail 2021-05-20 18:03:25 +03:00
Yuri Kuznetsov c33a9ea975 fix 2021-05-20 17:51:25 +03:00
Yuri Kuznetsov f672231eec cleanup 2021-05-20 14:37:24 +03:00
Yuri Kuznetsov 9876189c64 autoreply improvements 2021-05-20 14:34:20 +03:00
Yuri Kuznetsov 2f84ac6fee fix email template 2021-05-20 13:59:35 +03:00
Yuri Kuznetsov 692904dc5e fix 2021-05-20 13:38:02 +03:00
Yuri Kuznetsov c02aceeead email import refactoring and fixes 2021-05-20 13:34:11 +03:00
Yuri Kuznetsov ee24b58a2c job fix 2021-05-20 12:28:00 +03:00
Yuri Kuznetsov 29d1cda756 fix 2021-05-20 12:04:36 +03:00
Yuri Kuznetsov 343df3f97c auto reply changes 2021-05-19 16:08:38 +03:00
Yuri Kuznetsov 089eeb2956 Merge branch 'hotfix/6.1.8' 2021-05-19 15:55:51 +03:00
Yuri Kuznetsov da2e2dbf20 fix typo 2021-05-19 15:55:38 +03:00
Yuri Kuznetsov 8501a0b818 Merge branch 'hotfix/6.1.8' 2021-05-19 15:44:42 +03:00
Yuri Kuznetsov 59a9f73872 auto-reply headeres 2021-05-19 15:44:19 +03:00
Yuri Kuznetsov b3438ccc86 email in reply to header 2021-05-19 15:37:36 +03:00
Yuri Kuznetsov 72a57edaa3 save and new, save and continue editing 2021-05-19 14:34:54 +03:00
Yuri Kuznetsov b19a63f69a base record view fix 2021-05-19 14:30:43 +03:00
Yuri Kuznetsov 71a600e308 cs fix 2021-05-19 14:10:35 +03:00
Yuri Kuznetsov ebb9758d28 cs fix 2021-05-19 14:03:23 +03:00
Yuri Kuznetsov e9e25f8800 cs fix 2021-05-19 13:58:37 +03:00
Yuri Kuznetsov b42226c490 cs fix 2021-05-19 13:48:24 +03:00
Yuri Kuznetsov 15965cd1b1 fix avatar flicking 2021-05-19 13:15:40 +03:00
Yuri Kuznetsov 8fef564297 cleanup 2021-05-19 12:55:03 +03:00
Yuri Kuznetsov 81f01996db cleanup 2021-05-19 12:50:46 +03:00
Yuri Kuznetsov 00c378ad94 cs fix 2021-05-19 12:37:43 +03:00
Yuri Kuznetsov 85eefe9a54 select access filter bind acl 2021-05-19 12:17:53 +03:00
Yuri Kuznetsov 43cbc44941 header rootLinkDisabled prop 2021-05-19 11:38:03 +03:00
Yuri Kuznetsov f7540e7e36 cs fix 2021-05-19 11:28:54 +03:00
Yuri Kuznetsov c0a8c02c26 select usage 2021-05-19 11:21:54 +03:00
Eymen Elkum c054712828 config param emailAutoReplaySuppressPeriod (#1998) 2021-05-19 10:14:23 +03:00
Yuri Kuznetsov f20616e6b7 frontend acl cloning array 2021-05-19 09:44:19 +03:00
Yuri Kuznetsov e518c146f0 orm defs relocation 2021-05-18 18:19:58 +03:00
Yuri Kuznetsov 602115266a orm select builder where no default 2021-05-18 17:59:08 +03:00
Yuri Kuznetsov 4e074af139 select usage 2021-05-18 17:52:42 +03:00
Yuri Kuznetsov cceaf2bc02 select usage 2021-05-18 17:02:30 +03:00
Yuri Kuznetsov acb49d2b69 fix import 2021-05-18 16:56:58 +03:00
Yuri Kuznetsov 4d84924da0 link multiple vo addition 2021-05-18 15:49:20 +03:00
Yuri Kuznetsov cc94913e16 more functions 2021-05-18 13:39:20 +03:00
Yuri Kuznetsov 13459bd136 cleanup 2021-05-18 13:16:44 +03:00
Yuri Kuznetsov b285b1c17f dev 2021-05-18 13:02:37 +03:00
Yuri Kuznetsov 05c18658a0 select bool filter refactoring 2021-05-14 14:16:24 +03:00
Yuri Kuznetsov f1a52f55d9 gr select managers 2021-05-14 13:23:22 +03:00
Yuri Kuznetsov ea05052677 last viewed fix and list layout params 2021-05-14 12:24:42 +03:00
Yuri Kuznetsov 13311c374f select access control mandatory filter 2021-05-13 22:19:10 +03:00
Yuri Kuznetsov daa288c1cc visibility fix 2021-05-13 17:42:20 +03:00
Yuri Kuznetsov 38b613ac5f refactoring 2021-05-13 17:33:17 +03:00
Yuri Kuznetsov 7429f454eb fix test 2021-05-13 16:50:45 +03:00
Yuri Kuznetsov 3c119fe3e8 fix test 2021-05-13 16:39:51 +03:00
Yuri Kuznetsov 428525e1bd cleanup 2021-05-13 16:31:36 +03:00
Yuri Kuznetsov e07dbf374c cleanup 2021-05-13 16:31:10 +03:00
Yuri Kuznetsov f1306dfbee refactoring 2021-05-13 14:43:55 +03:00
Yuri Kuznetsov db4663cbf9 mail sender params 2021-05-13 12:29:34 +03:00
Yuri Kuznetsov 3760275937 orm select builder improvement 2021-05-13 11:20:27 +03:00
Yuri Kuznetsov b4afeac71f renaming 2021-05-13 11:08:49 +03:00
Arkady b19c543988 fix cs (#1995)
* remove leading slashes in `use` clauses

* remove spaces inside parenthesis

* ensure one blank line after the `use` statement

* ensure cast are written in lower case

* fix whitespace around the keyword of a class

* remove spaces after function call

* remove trailing whitespace

* standardize spaces around ternary operator

* ensure php keywords are in lower case

* remove whitespace before closing semicolon

* ensure whitespace after each comma in array

* ensure `true`, `false`, and `null` are lower case
2021-05-12 23:53:11 +03:00
Yuri Kuznetsov 0a5ce00878 fix 2021-05-12 23:26:14 +03:00
Arkady bfe256c578 remove duplicate object key (#1994) 2021-05-12 22:42:29 +03:00
Yuri Kuznetsov af31c84982 cleanup 2021-05-12 14:37:15 +03:00
Yuri Kuznetsov 67a2ad241a comment 2021-05-12 13:42:22 +03:00
Arkady 8a9449e240 remove duplicate object key (#1993) 2021-05-12 12:26:07 +03:00
Yuri Kuznetsov 95ef59be68 export refactoring and tests 2021-05-12 12:10:51 +03:00
Yuri Kuznetsov 8463fb402e export field processing 2021-05-11 22:36:29 +03:00
Yuri Kuznetsov 0f4391bdd1 pdf refactoring and fixes 2021-05-11 18:18:41 +03:00
Yuri Kuznetsov 2738019c3f move 2021-05-11 15:59:04 +03:00
Yuri Kuznetsov ce3e76aa3d move 2021-05-11 15:44:38 +03:00
Yuri Kuznetsov 9d76b6c5cc fix panel btn style 2021-05-11 15:34:46 +03:00
Yuri Kuznetsov 6e023222de assignment checking refactoring 2021-05-11 15:29:16 +03:00
Yuri Kuznetsov 6b62fc7963 fix tests 2021-05-11 15:28:28 +03:00
Yuri Kuznetsov d38962868b panel style conditions 2021-05-11 12:53:58 +03:00
Yuri Kuznetsov 3a0ee7de94 fix 2021-05-11 12:53:58 +03:00
Yuri Kuznetsov dff21145d0 cs fix 2021-05-11 12:53:58 +03:00
Yuri Kuznetsov 81bf80d8b0 css fix 2021-05-11 12:53:58 +03:00
Yuri Kuznetsov d2e1b556ba type hint fix 2021-05-11 10:19:31 +03:00
Yuri Kuznetsov 97b263cf57 cs fix 2021-05-11 10:14:26 +03:00
Yuri Kuznetsov fa140f09fc relation table id bigint 2021-05-10 13:07:16 +03:00
Arkady 2cb824c1e1 FileStorage\Factory small fix (#1989)
* fix use of unknown class

* fix use of unassigned variable
2021-05-09 23:11:04 +03:00
Yuri Kuznetsov 9dc5c60100 renaming 2021-05-09 15:46:07 +03:00
Yuri Kuznetsov 8212810276 Merge branch 'hotfix/6.1.8' 2021-05-09 15:24:15 +03:00
Yuri Kuznetsov 44d772a32f fix typo 2021-05-09 15:23:59 +03:00
Yuri Kuznetsov fbe3e1b44f search params fetcher fix 2021-05-09 15:22:02 +03:00
Yuri Kuznetsov d56fe9f9b0 cs fix 2021-05-09 15:21:51 +03:00
Yuri Kuznetsov 9d3d347fb7 fix 2021-05-09 15:08:00 +03:00
Yuri Kuznetsov 30fcab6626 typo fixes 2021-05-09 15:07:22 +03:00
Yuri Kuznetsov 44f25f7497 typo fixes and cleanup 2021-05-09 14:40:40 +03:00
Yuri Kuznetsov 53c4a74074 select refactoring 2021-05-09 10:51:46 +03:00
Yuri Kuznetsov a126c8f06d cs fix 2021-05-09 10:12:36 +03:00
Yuri Kuznetsov 2ed81ef9be fix 2021-05-08 23:08:05 +03:00
Yuri Kuznetsov 3a844767f0 refactoring and cs fixes 2021-05-08 22:53:56 +03:00
Yuri Kuznetsov 3667b72634 fix test 2021-05-08 20:11:37 +03:00
Yuri Kuznetsov 3f8d272eee address vo changes 2021-05-08 20:09:17 +03:00
Yuri Kuznetsov a15daa87c5 cleanup 2021-05-08 16:51:47 +03:00
Yuri Kuznetsov d6092fc3eb categories loading flicking fix 2021-05-08 16:33:02 +03:00
Yuri Kuznetsov 4d2c7bd776 ui fixes 2021-05-08 12:33:15 +03:00
Yuri Kuznetsov 78947d51dc export fix 2021-05-08 12:16:47 +03:00
Yuri Kuznetsov 8d7e482219 fix mass action 2021-05-08 11:40:45 +03:00
Yuri Kuznetsov 14d313686c export refactoring 2021-05-08 11:33:50 +03:00
dependabot[bot] b79bd9a30e Bump lodash from 4.17.20 to 4.17.21 (#1986)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-08 09:10:54 +03:00
Yuri Kuznetsov 891885fcb3 fix css 2021-05-07 20:58:18 +03:00
Yuri Kuznetsov e1986612d5 css fix 2021-05-07 16:39:07 +03:00
Yuri Kuznetsov 4c9435594d category list changes 2021-05-07 15:54:15 +03:00
Yuri Kuznetsov cc353f5956 Merge branch 'hotfix/6.1.8' 2021-05-07 15:53:10 +03:00
Yuri Kuznetsov a90971b762 not held event strikethrough 2021-05-07 10:34:38 +03:00
Yuri Kuznetsov f32edcde74 refactoring 2021-05-06 19:57:27 +03:00
Yuri Kuznetsov 177a7d3054 record service in core 2021-05-06 19:02:53 +03:00
Yuri Kuznetsov c693146e15 gr gloabls 2021-05-06 17:11:02 +03:00
Yuri Kuznetsov 296358e473 gr globals 2021-05-06 17:02:24 +03:00
Yuri Kuznetsov 06d5628180 fix tests 2021-05-06 16:51:25 +03:00
Yuri Kuznetsov 9085bbff96 external account refactoring 2021-05-06 16:41:26 +03:00
Yuri Kuznetsov 0171ce64e4 cleanup 2021-05-06 15:33:59 +03:00
Yuri Kuznetsov 222ff4a6de gr globals 2021-05-06 15:29:51 +03:00
Yuri Kuznetsov 1c46f2436c gr globals 2021-05-06 15:27:07 +03:00
Yuri Kuznetsov 65654fdef2 gr gloabals 2021-05-06 15:18:43 +03:00
Yuri Kuznetsov 9035d68d96 refactoring 2021-05-06 15:16:32 +03:00
Yuri Kuznetsov 41b2d2bce7 gr globals 2021-05-06 15:11:52 +03:00
Yuri Kuznetsov b67c2dc625 refactoring 2021-05-06 15:09:21 +03:00
Yuri Kuznetsov ec0d738e9f gr global log 2021-05-06 14:58:58 +03:00
Yuri Kuznetsov 028da06b34 refactoring 2021-05-06 14:56:58 +03:00
Yuri Kuznetsov dd5037cb07 refactoring 2021-05-06 14:04:15 +03:00
Yuri Kuznetsov 5406c0156a fix test 2021-05-06 13:45:55 +03:00
Yuri Kuznetsov 2f97583289 gr global log 2021-05-06 13:22:32 +03:00
Yuri Kuznetsov fcde65eaee log dependency 2021-05-06 13:14:57 +03:00
Yuri Kuznetsov 8fccdae675 log dependency 2021-05-06 12:51:07 +03:00
Yuri Kuznetsov 50cb0528c6 fix tests 2021-05-06 12:22:24 +03:00
Yuri Kuznetsov 3cf0c2f804 fix find followers 2021-05-06 10:57:01 +03:00
Yuri Kuznetsov fad9e8516e refactoring 2021-05-06 09:50:18 +03:00
Yuri Kuznetsov 7b3d4739aa fix findLinked methods 2021-05-06 09:39:24 +03:00
Yuri Kuznetsov e9f7046a05 fix request get content type 2021-05-06 09:26:16 +03:00
Yuri Kuznetsov 9ce7239308 cs fix 2021-05-05 22:30:00 +03:00
Yuri Kuznetsov acc5a88a27 comment 2021-05-05 22:04:41 +03:00
Yuri Kuznetsov 1cc99231ae cleanup 2021-05-05 22:02:15 +03:00
Yuri Kuznetsov 39e0784714 cs fix 2021-05-05 21:59:46 +03:00
Yuri Kuznetsov 9f0569cd0b refactoring 2021-05-05 21:53:25 +03:00
Yuri Kuznetsov d455ef3e33 fixes 2021-05-05 15:48:25 +03:00
Yuri Kuznetsov 691918cfc8 cleanup 2021-05-05 15:44:59 +03:00
Yuri Kuznetsov df294eee15 fix search params 2021-05-05 15:43:18 +03:00
Yuri Kuznetsov 3a94ea35f6 cs fix 2021-05-05 15:34:11 +03:00
Yuri Kuznetsov 4f711d8a34 fix test 2021-05-05 15:31:24 +03:00
Yuri Kuznetsov c5ec653215 search params building 2021-05-05 15:17:55 +03:00
Yuri Kuznetsov 937b83d776 refactoring 2021-05-05 13:49:37 +03:00
Yuri Kuznetsov 8b585a06e7 cleanup 2021-05-05 13:25:23 +03:00
Yuri Kuznetsov a53f88cbaf controllers refactoring 2021-05-05 13:24:59 +03:00
Yuri Kuznetsov 604a9212ca Merge branch 'stable' 2021-05-05 12:22:50 +03:00
Yuri Kuznetsov 09d7e8abde search apply button fixes 2021-05-05 11:54:24 +03:00
Yuri Kuznetsov 1ddfcff441 version 2021-05-05 11:17:35 +03:00
Yuri Kuznetsov 08eb168f06 refactoring 2021-05-04 19:01:04 +03:00
Yuri Kuznetsov f0f6fd6887 export refactoring 2021-05-04 18:54:16 +03:00
Yuri Kuznetsov 892df7bd0c merge 2021-05-04 16:13:21 +03:00
Yuri Kuznetsov 1a672a8aa3 escaping 2021-05-04 16:08:35 +03:00
Yuri Kuznetsov 8ec9a8ae22 orm create entity default array 2021-05-04 11:16:32 +03:00
Yuri Kuznetsov defa18724c merge test and fix 2021-05-04 11:15:30 +03:00
Yuri Kuznetsov f56f965d06 merge action 2021-05-02 18:23:55 +03:00
Yuri Kuznetsov 1ea488024b metadata json syntax error logging 2021-05-01 18:10:02 +03:00
Yuri Kuznetsov 4f85734de5 cs fixes 2021-05-01 17:50:49 +03:00
Yuri Kuznetsov a3b6e6f161 refactoring 2021-05-01 17:18:15 +03:00
Yuri Kuznetsov ff1e851143 tests 2021-05-01 15:40:26 +03:00
Yuri Kuznetsov 95f19bde45 refactoring 2021-05-01 14:51:40 +03:00
Yuri Kuznetsov 457110fa62 remove setTimezone method 2021-05-01 13:26:17 +03:00
Yuri Kuznetsov 23195e03b8 date time refactoring 2021-05-01 13:23:11 +03:00
Yuri Kuznetsov c9feaa7074 installer fixes 2021-05-01 11:33:04 +03:00
Yuri Kuznetsov 6ec5df9309 fix email sent message 2021-05-01 10:40:08 +03:00
Yuri Kuznetsov 892e5fab1f actions allowance 2021-05-01 10:28:26 +03:00
Yuri Kuznetsov 15424a2617 integration tests 2021-05-01 10:21:16 +03:00
Yuri Kuznetsov 5188c0f473 actions allowance 2021-05-01 09:45:55 +03:00
Yuri Kuznetsov c91552339c fix layout 2021-05-01 09:36:15 +03:00
Yuri Kuznetsov 8565b74510 fix 2021-05-01 09:34:10 +03:00
Yuri Kuznetsov 7524bc3bc3 actions allowed 2021-04-30 22:36:45 +03:00
Yuri Kuznetsov 038d0e038b fix 2021-04-30 22:04:11 +03:00
Yuri Kuznetsov 077e1a697b removal 2021-04-30 16:15:57 +03:00
Yuri Kuznetsov f5053bbc22 actions disabled and kanban disabled 2021-04-30 15:44:15 +03:00
Yuri Kuznetsov baf61c0bdb fix 2021-04-30 15:35:09 +03:00
Yuri Kuznetsov e3dcfb9136 refactoring 2021-04-30 15:19:35 +03:00
Yuri Kuznetsov e4c71fb3e4 acl fix 2021-04-30 14:25:28 +03:00
Yuri Kuznetsov 44e947ac8a acl fixes 2021-04-30 13:56:11 +03:00
Yuri Kuznetsov fc7e2400cf acl always do checkScope 2021-04-30 13:38:01 +03:00
Yuri Kuznetsov e30e164ba3 acl fixes 2021-04-30 12:42:40 +03:00
Yuri Kuznetsov 007e013514 fix 2021-04-30 11:47:28 +03:00
Yuri Kuznetsov 10b5d2c4f7 fix 2021-04-30 11:28:40 +03:00
Yuri Kuznetsov ef9b15d924 move record service container 2021-04-30 11:25:59 +03:00
Yuri Kuznetsov a44bc68e81 action and mass action separate services 2021-04-30 11:15:06 +03:00
Yuri Kuznetsov ec75d17bcf Aware setters comments and fix 2021-04-30 10:32:26 +03:00
Yuri Kuznetsov ad5f9a3762 refactoring 2021-04-30 10:19:40 +03:00
Yuri Kuznetsov a720065a45 fixes 2021-04-30 09:50:30 +03:00
Yuri Kuznetsov 6342e0b243 fix 2021-04-29 19:39:27 +03:00
Yuri Kuznetsov e9814504db refactoring 2021-04-29 19:35:38 +03:00
Yuri Kuznetsov 145cf9820a fix 2021-04-29 17:21:47 +03:00
Yuri Kuznetsov d7fae910fb refactoring 2021-04-29 17:19:39 +03:00
Yuri Kuznetsov d15474c243 controllers refactoring 2021-04-29 17:16:11 +03:00
Yuri Kuznetsov 805f377459 controllers refactoring 2021-04-29 15:33:23 +03:00
Yuri Kuznetsov bf320261f9 entity interface more methods 2021-04-29 12:08:11 +03:00
Yuri Kuznetsov fb94597409 field processing fix 2021-04-29 11:47:34 +03:00
Yuri Kuznetsov 93e4bd8cd0 fixes 2021-04-29 11:23:30 +03:00
Yuri Kuznetsov dfa839526c action disabled 2021-04-29 11:23:19 +03:00
Yuri Kuznetsov 0d1f138459 fix 2021-04-29 11:07:02 +03:00
Yuri Kuznetsov ace47d6515 cs fix 2021-04-29 09:57:58 +03:00
Yuri Kuznetsov 87c1808b7e reminder test 2021-04-28 14:12:34 +03:00
Yuri Kuznetsov 95627f3617 reminder saver 2021-04-28 12:49:54 +03:00
Yuri Kuznetsov 9c20ac68f5 saver framework 2021-04-28 11:49:57 +03:00
Yuri Kuznetsov ed1665d625 field processing refactoring 2021-04-28 11:17:35 +03:00
Yuri Kuznetsov c6de70f57f cs fix 2021-04-28 10:41:39 +03:00
Yuri Kuznetsov 28dcfd714e cs fix 2021-04-28 10:33:27 +03:00
Yuri Kuznetsov 1ed6099878 cleanup 2021-04-28 10:31:03 +03:00
Yuri Kuznetsov 5e9c2fc255 cleanup 2021-04-28 10:30:39 +03:00
Yuri Kuznetsov f9a4e3c9fc field loading usage 2021-04-28 10:27:46 +03:00
Yuri Kuznetsov 9d7582caa6 field loading usage and changes 2021-04-28 10:06:30 +03:00
Yuri Kuznetsov f9d47de8f2 cleanup 2021-04-28 09:48:59 +03:00
Yuri Kuznetsov e057b64055 cleanup 2021-04-28 09:47:16 +03:00
Yuri Kuznetsov 5968e3d065 field loading usage 2021-04-28 09:46:22 +03:00
Yuri Kuznetsov b22bb295af cs fix 2021-04-28 09:33:13 +03:00
Yuri Kuznetsov fb3ecd4cf7 field loading usage 2021-04-27 19:42:16 +03:00
Yuri Kuznetsov 65b4454f2c field loading usage 2021-04-27 19:25:08 +03:00
Yuri Kuznetsov 3e5f178c4d renaming 2021-04-27 19:11:04 +03:00
Yuri Kuznetsov 35f87f6361 cs fix 2021-04-27 18:59:17 +03:00
Yuri Kuznetsov c2141dc034 field loading usage 2021-04-27 18:56:22 +03:00
Yuri Kuznetsov 6e460c5584 field loader usage 2021-04-27 16:50:49 +03:00
Yuri Kuznetsov 3a523a514c renaming 2021-04-27 15:45:05 +03:00
Yuri Kuznetsov e1e654c6b7 field load processing changes 2021-04-27 13:28:59 +03:00
Yuri Kuznetsov 161009c4ac cleanup load additional fields 2021-04-27 11:52:27 +03:00
Yuri Kuznetsov 6cb2649981 cs fix 2021-04-26 15:33:15 +03:00
Yuri Kuznetsov 6089e2e267 cs fix 2021-04-26 15:27:06 +03:00
Yuri Kuznetsov ac6bf02b2d refactoring 2021-04-26 15:21:52 +03:00
Yuri Kuznetsov 365bbaf2ad list load processing 2021-04-26 15:17:11 +03:00
Yuri Kuznetsov f320ef4721 field loading 2021-04-26 13:47:35 +03:00
Yuri Kuznetsov 87a34f2fbb field loading 2021-04-26 12:46:58 +03:00
Yuri Kuznetsov defdd904c8 fix 2021-04-26 12:15:02 +03:00
Yuri Kuznetsov 3f91c33eae fix comments 2021-04-26 11:45:49 +03:00
Yuri Kuznetsov 2e3642671f fix test 2021-04-26 10:59:16 +03:00
Yuri Kuznetsov 02e2f42481 refacoring 2021-04-25 12:12:52 +03:00
Yuri Kuznetsov 168f37dc8a doc fix 2021-04-25 11:25:45 +03:00
Yuri Kuznetsov 38aeda6d83 comment fixes 2021-04-24 23:55:20 +03:00
Yuri Kuznetsov eb29b626d0 refactoring 2021-04-24 18:58:10 +03:00
Yuri Kuznetsov e50839b7cc refactoring 2021-04-24 18:47:03 +03:00
Yuri Kuznetsov 082086ffa3 doc fix 2021-04-24 17:53:40 +03:00
Yuri Kuznetsov 7327b995e1 doc fix 2021-04-24 17:52:55 +03:00
Eymen Elkum a6fb23302e typo fix (#1974) 2021-04-24 16:59:32 +03:00
Yuri Kuznetsov 055518da79 dev 2021-04-24 15:47:16 +03:00
Yuri Kuznetsov 6d903a526b refactoring 2021-04-24 15:17:22 +03:00
Yuri Kuznetsov 8d0c230c30 dev 2021-04-24 14:45:41 +03:00
Yuri Kuznetsov 440e71d983 refactoring 2021-04-24 14:32:58 +03:00
Yuri Kuznetsov 328cc89e39 refactoring 2021-04-24 14:28:21 +03:00
Yuri Kuznetsov e4fd5d7293 refactoring 2021-04-24 13:51:53 +03:00
Yuri Kuznetsov 77d8fbbfc5 refactoring 2021-04-24 13:38:57 +03:00
Yuri Kuznetsov fd4f484bab refactoring 2021-04-24 13:11:02 +03:00
Yuri Kuznetsov e116c52ea9 refactoring 2021-04-24 12:58:51 +03:00
Yuri Kuznetsov 46fbd93d9b cleanup 2021-04-24 11:03:08 +03:00
Yuri Kuznetsov bd1805750b refactoring 2021-04-24 10:56:40 +03:00
Yuri Kuznetsov 114663836c refactoring 2021-04-24 10:35:33 +03:00
Yuri Kuznetsov 82c5e88c4a refactoring 2021-04-24 10:11:51 +03:00
Yuri Kuznetsov a0ec26a755 refactoring 2021-04-23 22:39:25 +03:00
Yuri Kuznetsov a29386c7a1 refactoring 2021-04-23 16:27:29 +03:00
Yuri Kuznetsov 0ea25b46f7 fixes and refactoring 2021-04-23 15:42:51 +03:00
Yuri Kuznetsov 63b471780d next number refactoring 2021-04-23 12:19:22 +03:00
Yuri Kuznetsov 25065a66aa event select defs 2021-04-23 12:00:56 +03:00
Yuri Kuznetsov 60c64fcb6c refactoring 2021-04-22 23:35:53 +03:00
Yuri Kuznetsov e5f8a83c7f orm refactoring 2021-04-22 19:30:25 +03:00
Yuri Kuznetsov 39811e7a2e comment 2021-04-22 18:50:43 +03:00
Yuri Kuznetsov 04cb611183 orm refactoring 2021-04-22 18:45:50 +03:00
Yuri Kuznetsov f15a73200f typo fix 2021-04-22 17:59:20 +03:00
Yuri Kuznetsov a6f3c879a5 orm refactoring 2021-04-22 17:58:06 +03:00
Yuri Kuznetsov 811e5479f4 refactoring 2021-04-22 16:09:03 +03:00
Yuri Kuznetsov 13af95f600 refactoring 2021-04-22 15:45:01 +03:00
Yuri Kuznetsov b6743725e0 refactoring 2021-04-22 15:38:00 +03:00
Yuri Kuznetsov d3579218f2 htmlizer refactoring 2021-04-22 15:31:43 +03:00
Yuri Kuznetsov ff003d9603 orm refactoring 2021-04-22 14:21:32 +03:00
Yuri Kuznetsov 805b27074c orm refactoring 2021-04-22 13:57:54 +03:00
Yuri Kuznetsov 22e34da132 orm refactoring 2021-04-22 13:55:21 +03:00
Yuri Kuznetsov 71119b8d81 orm refactoring 2021-04-22 13:46:29 +03:00
Yuri Kuznetsov ef2886ffc7 orm refactoring 2021-04-22 13:39:55 +03:00
Yuri Kuznetsov 770b85ebd2 orm refactoring 2021-04-22 13:33:28 +03:00
Yuri Kuznetsov f75f992a59 orm refactoring 2021-04-22 13:14:02 +03:00
Yuri Kuznetsov 113f1fac6a cs fix 2021-04-22 13:03:30 +03:00
Yuri Kuznetsov de58da6dab cs fix 2021-04-22 13:01:31 +03:00
Yuri Kuznetsov 256eeb863c cs fix 2021-04-22 12:46:23 +03:00
Yuri Kuznetsov 7420f2ff98 orm refactoring using injectable factory for entities 2021-04-22 12:33:45 +03:00
Yuri Kuznetsov b2b968f915 test cleanup 2021-04-22 12:07:25 +03:00
Yuri Kuznetsov 12d89d8c4a select manager select builder usage 2021-04-22 11:44:59 +03:00
Yuri Kuznetsov 476e64c389 cs fix 2021-04-21 15:54:56 +03:00
Yuri Kuznetsov e183f39dfd cs fix 2021-04-21 15:19:37 +03:00
Yuri Kuznetsov f9e34ce9d5 cs fix 2021-04-21 15:02:38 +03:00
Yuri Kuznetsov 6bdd976209 cs fix 2021-04-21 14:19:47 +03:00
Yuri Kuznetsov efd64ecded cs fix 2021-04-21 14:13:08 +03:00
Yuri Kuznetsov 50db978fa2 cs fix 2021-04-21 13:57:18 +03:00
Yuri Kuznetsov de410bf75f injectable factory change and comment 2021-04-21 13:10:20 +03:00
Yuri Kuznetsov 2ff7825b34 repositories cleanup and cs fix 2021-04-21 13:03:53 +03:00
Yuri Kuznetsov 9b1ae75a00 field processing and database repository refactoring 2021-04-21 12:55:49 +03:00
Yuri Kuznetsov e7f0911f8b file processing array 2021-04-21 12:33:44 +03:00
Yuri Kuznetsov c004beab02 file field processing 2021-04-21 12:21:08 +03:00
Yuri Kuznetsov fa758c51ee fix attachment 2021-04-21 12:14:13 +03:00
Yuri Kuznetsov 1aa2282321 cs fix 2021-04-21 12:00:20 +03:00
Yuri Kuznetsov 9094c44b07 test fix 2021-04-21 10:29:21 +03:00
Yuri Kuznetsov c46036761c abolishment of acl non-strict mode 2021-04-21 10:25:08 +03:00
Yuri Kuznetsov 5d2f3cd2a7 acl admin mandatory 2021-04-21 09:36:56 +03:00
Yuri Kuznetsov 76f1902cae test code cs fix 2021-04-21 09:32:41 +03:00
Yuri Kuznetsov 5801c329b2 datetime refactoring 2021-04-20 19:27:12 +03:00
Yuri Kuznetsov 302833eb22 refactor database repository 2021-04-20 19:24:20 +03:00
Yuri Kuznetsov f30b25e23f field processing tests 2021-04-20 18:23:56 +03:00
Yuri Kuznetsov 211e8c438a fix comment 2021-04-20 18:08:50 +03:00
Yuri Kuznetsov 4a33ed8fc2 cleanup 2021-04-20 18:03:21 +03:00
Yuri Kuznetsov 556ea8754c relation save processing refactoring 2021-04-20 18:02:15 +03:00
Yuri Kuznetsov d2fdd37084 field processing fix 2021-04-20 13:20:30 +03:00
Yuri Kuznetsov 12e2f146bf fix 2021-04-20 13:13:54 +03:00
Yuri Kuznetsov eae701012a cs fix 2021-04-20 13:08:56 +03:00
Yuri Kuznetsov c4ae2c5c1b cs fix 2021-04-20 13:07:23 +03:00
Yuri Kuznetsov fb52bf3984 field processing 2021-04-20 13:00:29 +03:00
Yuri Kuznetsov 6c0ae235f0 acl refactoring 2021-04-19 15:48:49 +03:00
Yuri Kuznetsov 399f867016 cs fix 2021-04-19 15:29:34 +03:00
Yuri Kuznetsov bb947ac0a9 acl refactoring 2021-04-19 15:29:30 +03:00
Yuri Kuznetsov 30813f5efc cs fix 2021-04-19 12:19:34 +03:00
Yuri Kuznetsov 411e6720e1 cs fix 2021-04-19 11:59:32 +03:00
Yuri Kuznetsov 1255dc03b2 injectable factory test 2021-04-19 11:45:03 +03:00
Yuri Kuznetsov 61e060b8ef fix test 2021-04-19 11:42:25 +03:00
Yuri Kuznetsov 18b009f6af fix action processor 2021-04-19 11:42:14 +03:00
Yuri Kuznetsov d4b246e37f action processor 2021-04-19 11:31:16 +03:00
Yuri Kuznetsov 4da052279e acl fix 2021-04-19 11:06:12 +03:00
Yuri Kuznetsov 12a9afe2fe cs fix 2021-04-18 22:17:16 +03:00
Yuri Kuznetsov e2a0314742 cs fix 2021-04-18 20:32:02 +03:00
Yuri Kuznetsov bdd4df9dd7 cs fix 2021-04-18 20:20:36 +03:00
Yuri Kuznetsov 491a28c03e cs fix 2021-04-18 20:07:12 +03:00
Yuri Kuznetsov dc389e0f41 cs fix 2021-04-18 19:57:56 +03:00
Yuri Kuznetsov 121f9b547c fox 2021-04-18 19:56:22 +03:00
Yuri Kuznetsov 6c03a00f57 cs fix 2021-04-18 19:43:54 +03:00
Yuri Kuznetsov 58ec18f47d new acl usage 2021-04-17 15:16:32 +03:00
Yuri Kuznetsov 973a92886b new acl usage 2021-04-17 13:06:36 +03:00
Yuri Kuznetsov 4497c4be66 new acl usage 2021-04-17 12:47:48 +03:00
Yuri Kuznetsov 33ec8d0041 fix stream acl 2021-04-17 12:47:23 +03:00
Yuri Kuznetsov 215867ae21 acl portal trait 2021-04-17 11:16:40 +03:00
Yuri Kuznetsov 4711c0f785 new acl usage 2021-04-17 11:03:57 +03:00
Yuri Kuznetsov ad1dece946 new acl usage 2021-04-17 10:33:26 +03:00
Yuri Kuznetsov dc202f987a injectable factory test 2021-04-16 15:35:44 +03:00
Yuri Kuznetsov 12fbee8597 injectable factory cleanup 2021-04-16 14:25:58 +03:00
Yuri Kuznetsov 856621a8a7 new acl usage 2021-04-16 13:12:43 +03:00
Yuri Kuznetsov 2c4bda882f new acl usage 2021-04-16 12:28:18 +03:00
Yuri Kuznetsov 7f524153a6 injectable factory use binding for implementation resolved 2021-04-16 12:05:38 +03:00
Yuri Kuznetsov 6652f8cb65 select access all filter 2021-04-16 11:23:12 +03:00
Yuri Kuznetsov b00dfb6135 select use binding 2021-04-15 18:13:03 +03:00
Yuri Kuznetsov 93960dd1b8 select factories refactoring and fixes 2021-04-15 16:58:33 +03:00
Yuri Kuznetsov d105045b75 bindInstance usage 2021-04-15 14:20:50 +03:00
Yuri Kuznetsov 49d21bbba8 test change 2021-04-15 14:03:05 +03:00
Yuri Kuznetsov b1f05c38b3 fix tests 2021-04-15 13:59:11 +03:00
Yuri Kuznetsov 9f7ed802ea binder bind instance method 2021-04-15 13:57:43 +03:00
Yuri Kuznetsov 9b7313ce95 docs fix 2021-04-15 12:42:17 +03:00
Yuri Kuznetsov d42896a19c disable spellcheck for some fields 2021-04-15 12:37:17 +03:00
Yuri Kuznetsov 2729b8ece8 imap get size manual merge 2021-04-15 12:23:16 +03:00
Yuri Kuznetsov 85ed99a1dc email get size error fix 2021-04-15 11:40:06 +03:00
Yuri Kuznetsov aa7959b91c acl recactoring 2021-04-15 09:18:06 +03:00
Yuri Kuznetsov 781d9dd440 fix 2021-04-14 10:36:12 +03:00
Yuri Kuznetsov 483a346faa Merge branch 'stable' 2021-04-12 12:53:46 +03:00
Yuri Kuznetsov 6e9f368a0a version 2021-04-12 10:42:26 +03:00
Yuri Kuznetsov 84a3688525 scheduler honor eventAssignedUserIsAttendeeDisabled 2021-04-12 10:40:06 +03:00
Yuri Kuznetsov 3c08986889 cs fix 2021-04-12 10:37:07 +03:00
Yuri Kuznetsov 477828beb9 fix get entity followers 2021-04-12 10:31:47 +03:00
Eymen Elkum fadc6c46ba fix (#1969) 2021-04-12 10:31:29 +03:00
Yuri Kuznetsov 3111166f89 acl refactoring 2021-04-10 17:32:24 +03:00
Yuri Kuznetsov f7c8b62f6c grand acl refactoring 2021-04-10 16:25:40 +03:00
Yuri Kuznetsov e6edc6ae03 select fix 2021-04-09 15:46:21 +03:00
Yuri Kuznetsov 3bc0799091 select refactoring 2021-04-09 15:36:44 +03:00
Yuri Kuznetsov 1285955e32 cleanup 2021-04-08 10:48:30 +03:00
Yuri Kuznetsov 5fdc8cb32c injectable factory create with binding 2021-04-08 10:27:47 +03:00
Yuri Kuznetsov 8538a77db7 fix comment 2021-04-08 10:20:10 +03:00
Yuri Kuznetsov 329b84f7b5 comment fix 2021-04-08 09:52:19 +03:00
Yuri Kuznetsov 4dcb7acd58 fix 2021-04-08 09:51:27 +03:00
Yuri Kuznetsov d91f9cf29f refactoring and cs fix 2021-04-07 15:53:10 +03:00
Yuri Kuznetsov 1a04dec97b binding refactoring 2021-04-07 15:34:42 +03:00
Yuri Kuznetsov c6f95a9030 acl scope data no access to properties 2021-04-06 12:15:28 +03:00
Yuri Kuznetsov 62d2157fd8 fix orm sub query entity type 2021-04-06 12:07:02 +03:00
Yuri Kuznetsov d0c61ea5fa cleanup 2021-04-05 15:49:38 +03:00
Yuri Kuznetsov b9c7d108e5 auth token refactoring 2021-04-05 14:00:48 +03:00
Yuri Kuznetsov 20a8597b45 refactoring 2021-04-04 23:02:17 +03:00
Yuri Kuznetsov 9a1ada97ec fix acl 2021-04-04 22:44:06 +03:00
Yuri Kuznetsov 0ebe32228d acl refactoring 2021-04-04 22:40:20 +03:00
Yuri Kuznetsov ad5da12154 acl refactoring 2021-04-04 22:26:27 +03:00
Yuri Kuznetsov cdd2e0dd1d fix 2021-04-04 21:08:50 +03:00
Yuri Kuznetsov 3fe10212d5 cs fix 2021-04-04 20:12:18 +03:00
Yuri Kuznetsov 97e97a6cfc cs fix 2021-04-04 20:08:50 +03:00
Yuri Kuznetsov 9cb8d9d65e refactoring 2021-04-04 19:55:12 +03:00
Yuri Kuznetsov eadf3b46e0 acl table apply highest 2021-04-04 13:35:42 +03:00
Yuri Kuznetsov 5d97a16d75 acl refactoring 2021-04-04 13:17:39 +03:00
Yuri Kuznetsov e13ca70143 cleanup 2021-04-03 22:52:14 +03:00
Yuri Kuznetsov 732493d663 acl refactoring 2021-04-03 21:21:02 +03:00
Yuri Kuznetsov 569284ef60 comments 2021-04-03 20:05:45 +03:00
Yuri Kuznetsov 85a1891b8c fix test 2021-04-03 19:53:59 +03:00
Yuri Kuznetsov 6a67344643 acl test and fix 2021-04-03 19:52:53 +03:00
Yuri Kuznetsov 0bff0a7878 acl refactoring 2021-04-03 19:15:27 +03:00
Yuri Kuznetsov 925d26f02b cleanup 2021-04-03 19:00:04 +03:00
Yuri Kuznetsov 45539289fd acl refactoring 2021-04-03 18:39:54 +03:00
Yuri Kuznetsov 4cbcddf3c0 acl fix 2021-04-03 17:57:02 +03:00
Yuri Kuznetsov 304d63c6a2 fe cs fixes, link field selectFilterList 2021-04-03 16:25:40 +03:00
Yuri Kuznetsov ec784b4a98 cs fixes and comments 2021-04-03 14:50:20 +03:00
Yuri Kuznetsov 1b899f2228 acl refactoring 2021-04-03 14:41:29 +03:00
Yuri Kuznetsov a8d437720b stream fix 2021-04-03 13:04:45 +03:00
Yuri Kuznetsov fc7c9e1c0a cs fix 2021-04-03 13:02:21 +03:00
Yuri Kuznetsov 514607a731 cs fixes 2021-04-03 12:52:54 +03:00
Yuri Kuznetsov 9344e08d7b Merge branch 'master' of https://github.com/espocrm/espocrm 2021-04-03 12:16:42 +03:00
Yuri Kuznetsov 13cec0dd31 attachment fix 2021-04-02 15:37:30 +03:00
Yuri Kuznetsov b80e890fd6 attachment fix 2021-04-02 15:31:20 +03:00
Yuri Kuznetsov e54c07325e scope data class 2021-04-01 19:03:14 +03:00
Yuri Kuznetsov 3107705e25 cleanup 2021-04-01 17:18:53 +03:00
Yuri Kuznetsov 62db7b8382 cleanup 2021-04-01 17:16:20 +03:00
Yuri Kuznetsov 8e8fefef36 refactoring 2021-04-01 17:03:03 +03:00
Yuri Kuznetsov 0c178ec71f refactoring 2021-04-01 16:52:23 +03:00
Yuri Kuznetsov 3c9c3cb709 email template int disable formatting 2021-04-01 14:06:34 +03:00
Yuri Kuznetsov 2ebfd108ea refactoring 2021-04-01 14:00:48 +03:00
Yuri Kuznetsov 31df3927c5 Merge branch 'hotfix/6.1.6' 2021-04-01 13:28:00 +03:00
Yuri Kuznetsov c1b7e06308 remove noJoin 2021-04-01 13:27:42 +03:00
Yuri Kuznetsov 8368eb4541 follower management permission 2021-04-01 12:53:14 +03:00
Yuri Kuznetsov ce995a9380 follower management for portal permission 2021-04-01 12:02:28 +03:00
Yuri Kuznetsov 110d773e3c fix orm entity 2021-04-01 11:25:57 +03:00
Yuri Kuznetsov 6965591e7b refactoring 2021-04-01 11:08:40 +03:00
Yuri Kuznetsov 4b47cfda57 refactoring 2021-03-31 23:27:03 +03:00
Yuri Kuznetsov e7db4d6b67 refactoring 2021-03-31 22:41:08 +03:00
Yuri Kuznetsov c8a63044af cs fix 2021-03-31 22:37:38 +03:00
Yuri Kuznetsov 622b27448f cs fixes 2021-03-31 20:04:27 +03:00
Yuri Kuznetsov e2814141d4 fix 2021-03-31 16:29:58 +03:00
Yuri Kuznetsov 1a0f70c56b acl refactoring 2021-03-31 16:14:31 +03:00
Taras Machyshyn e86ec32dd7 Hide permission warnings 2021-03-31 15:12:46 +03:00
Yuri Kuznetsov 4667a14080 followers fix check permission 2021-03-31 14:46:32 +03:00
Taras Machyshyn c8bd2ec1a1 Time format fixes 2021-03-31 14:39:47 +03:00
Yuri Kuznetsov 933625011c followers admin access check 2021-03-31 13:12:08 +03:00
Yuri Kuznetsov c032541f69 followers portal access check 2021-03-31 13:11:43 +03:00
Yuri Kuznetsov 78b9bf9823 followers check access to user 2021-03-31 13:00:04 +03:00
Taras Machyshyn 3cf94bb728 Notification fixes 2021-03-31 12:17:18 +03:00
Yuri Kuznetsov ae1ee69d25 cs fix 2021-03-31 12:15:40 +03:00
Yuri Kuznetsov bf6bb93829 cs fix 2021-03-31 12:00:58 +03:00
Yuri Kuznetsov 61ef7dfc75 refacoring 2021-03-31 11:48:38 +03:00
Yuri Kuznetsov 82948e56d2 entity refactoring 2021-03-31 00:05:21 +03:00
Yuri Kuznetsov 2338c5a4fa fix 2021-03-31 00:03:23 +03:00
Yuri Kuznetsov 63b60999f8 orm entity refactoring and cloning 2021-03-30 19:39:50 +03:00
Yuri Kuznetsov 5857a3aed7 comment 2021-03-30 15:44:08 +03:00
Yuri Kuznetsov 364d41737f refactoring 2021-03-30 13:05:47 +03:00
Yuri Kuznetsov 31c69477f4 fixes 2021-03-30 12:56:08 +03:00
Yuri Kuznetsov d1e9477fb4 refactoring 2021-03-30 12:52:15 +03:00
Yuri Kuznetsov f325b778a9 refactoring and comments 2021-03-30 12:33:45 +03:00
Yuri Kuznetsov a7270f7510 refactoring 2021-03-30 12:02:04 +03:00
Yuri Kuznetsov 5da493713f validation test 2021-03-30 11:22:14 +03:00
Yuri Kuznetsov ca0a7689be validation test 2021-03-30 11:18:49 +03:00
Yuri Kuznetsov 6efe19d50c fix tests 2021-03-30 11:07:40 +03:00
Yuri Kuznetsov 08ce7c9186 fix test 2021-03-30 10:51:58 +03:00
Yuri Kuznetsov cd25f0c723 field validation refactoring 2021-03-29 16:24:53 +03:00
Yuri Kuznetsov fd6554658b fix 2021-03-29 16:01:24 +03:00
Yuri Kuznetsov 8abc8ab0e4 filter resolver interface 2021-03-29 14:05:49 +03:00
Yuri Kuznetsov 7a16e7743e cleanup 2021-03-29 13:13:19 +03:00
Yuri Kuznetsov aac3cf2b69 notificator refactoring 2021-03-29 13:09:26 +03:00
Yuri Kuznetsov c30a5e437f fix 2021-03-29 11:42:15 +03:00
Yuri Kuznetsov 473c63267f refactorig 2021-03-28 23:50:38 +03:00
Yuri Kuznetsov 318d8f8ccc mail refactoring 2021-03-28 19:21:08 +03:00
Yuri Kuznetsov ee24ab8f6e runners refactoring 2021-03-28 17:45:39 +03:00
Yuri Kuznetsov e89ca133cd fix validator 2021-03-28 13:51:34 +03:00
Yuri Kuznetsov c1292e5a52 remove test 2021-03-28 13:50:34 +03:00
Yuri Kuznetsov a236b1f9da test fix 2021-03-28 13:49:47 +03:00
Yuri Kuznetsov c9c7794e73 select refactoring 2021-03-28 13:43:16 +03:00
Yuri Kuznetsov 29c5717e79 comment 2021-03-28 13:19:03 +03:00
Yuri Kuznetsov ccc8e704b4 fix 2021-03-28 13:17:37 +03:00
Yuri Kuznetsov 5991afc1f0 login refactoring 2021-03-28 11:55:33 +03:00
Yuri Kuznetsov 58329fd61f refactoring 2021-03-27 15:28:10 +02:00
Yuri Kuznetsov b7ed8ec246 refactoring 2021-03-27 12:27:02 +02:00
Yuri Kuznetsov c975ab7b05 field validation refactoring 2021-03-27 12:20:38 +02:00
Yuri Kuznetsov fdf11d144f fix comment 2021-03-25 20:50:30 +02:00
Yuri Kuznetsov 99f1821215 supporting all week starts 2021-03-25 17:37:38 +02:00
Yuri Kuznetsov 3d14646548 enum translation support array 2021-03-25 17:26:03 +02:00
Yuri Kuznetsov b826b1928e Merge branch 'master' of github.com:espocrm/espocrm 2021-03-25 16:15:37 +02:00
Yuri Kuznetsov b6038285f4 merge with hotfix 2021-03-25 16:14:22 +02:00
Yuri Kuznetsov 0f8621d923 spatie async update 2021-03-25 16:11:30 +02:00
Yuri Kuznetsov 2d9e9a5e93 async downgrade 2021-03-25 15:38:50 +02:00
Yuri Kuznetsov abeb5fc0e3 v 2021-03-25 15:14:57 +02:00
Taras Machyshyn 47e61cecdd Upgrade scripts 2021-03-25 15:14:22 +02:00
Taras Machyshyn 17aaf08717 Installation: code changes 2021-03-25 13:23:23 +02:00
Taras Machyshyn 89e849d851 Installation: bug fixes 2021-03-25 13:06:19 +02:00
Yuri Kuznetsov 42098f477a fix oauth client 2021-03-25 12:14:22 +02:00
Taras Machyshyn e44ee9ca03 Installation: corrected languages 2021-03-25 11:10:18 +02:00
Yuri Kuznetsov e7831ac960 comment 2021-03-24 19:47:46 +02:00
Yuri Kuznetsov 8a48b71a0f small refactoring 2021-03-24 16:14:50 +02:00
Yuri Kuznetsov 2e4d50c7b5 small refactoring 2021-03-24 16:13:41 +02:00
Yuri Kuznetsov df501e42b9 cs fix 2021-03-24 15:31:43 +02:00
Yuri Kuznetsov 1d14d37c1d websocket refacroring 2021-03-24 14:23:34 +02:00
Yuri Kuznetsov 0d728ed4ce cs fix 2021-03-24 12:04:21 +02:00
Yuri Kuznetsov 4e2ff445e0 container and loaders refactoring 2021-03-24 11:59:21 +02:00
Yuri Kuznetsov f3818803fd method rename 2021-03-23 21:38:20 +02:00
Yuri Kuznetsov 329668322f comment 2021-03-23 20:54:08 +02:00
Yuri Kuznetsov 0ffd0c1530 authentication refactoring 2021-03-23 20:50:29 +02:00
Yuri Kuznetsov 7b7c6fbfae runner fix 2021-03-23 20:08:49 +02:00
Yuri Kuznetsov b946228ee2 portal api runner fix 2021-03-23 20:07:33 +02:00
Yuri Kuznetsov 61177901e8 fix duration 2021-03-23 18:08:26 +02:00
Yuri Kuznetsov bb4f8b0d78 cs fix 2021-03-23 17:02:30 +02:00
Yuri Kuznetsov 1a4e701f98 cs fix 2021-03-23 16:30:41 +02:00
Yuri Kuznetsov 968ee917fc add url field to dynamic logic 2021-03-23 16:14:18 +02:00
Yuri Kuznetsov bbc01c0be9 fix loader 2021-03-23 16:03:56 +02:00
Yuri Kuznetsov 3387b41841 icon fix 2021-03-23 16:02:56 +02:00
Yuri Kuznetsov d36a578708 fix job page 2021-03-23 16:02:44 +02:00
Yuri Kuznetsov 36d42ab8ba cleanup 2021-03-23 15:45:06 +02:00
Yuri Kuznetsov ba71f10dee cleanup 2021-03-23 15:44:00 +02:00
Yuri Kuznetsov 7bb1857d0c job settings in admin panel 2021-03-23 15:40:36 +02:00
Yuri Kuznetsov 999ce51178 job manager test 2021-03-23 15:19:43 +02:00
Yuri Kuznetsov a2ebf69551 fix auth 2021-03-23 14:08:05 +02:00
Yuri Kuznetsov 9ef3ba9342 job refactoring 2021-03-23 13:26:15 +02:00
Eymen Elkum 88e82a511b integration fields view param (#1949) 2021-03-23 09:57:31 +02:00
Yuri Kuznetsov 495c49f277 websocket reconnect 2021-03-22 15:59:49 +02:00
Yuri Kuznetsov 0459091a52 refacroring 2021-03-22 15:10:53 +02:00
Yuri Kuznetsov ba67529d62 job refactoring 2021-03-22 14:49:05 +02:00
Yuri Kuznetsov 9bd16c0b5c refactoring 2021-03-22 12:04:32 +02:00
Yuri Kuznetsov a0c76052cc Merge branch 'hotfix/6.1.5' 2021-03-22 09:17:08 +02:00
Yuri Kuznetsov c4861c5efa fix exceptions 2021-03-22 09:16:45 +02:00
Yuri Kuznetsov 6b8f46bf81 refactor email reminder sending 2021-03-21 14:38:24 +02:00
Yuri Kuznetsov 1a71f43c54 job refactoring 2021-03-21 14:22:10 +02:00
Yuri Kuznetsov b4d732656f jobs refactoring 2021-03-21 11:25:43 +02:00
Yuri Kuznetsov 6a335269f4 jobs refactoring 2021-03-20 16:13:33 +02:00
Yuri Kuznetsov c51f2fa401 comment 2021-03-20 11:55:47 +02:00
Yuri Kuznetsov 69072cf0ca entry point traits namespace 2021-03-20 11:52:52 +02:00
Yuri Kuznetsov b023964aec comments 2021-03-20 09:45:52 +02:00
Yuri Kuznetsov 59321dbd56 Core EntryPoint namespace 2021-03-19 22:02:49 +02:00
Yuri Kuznetsov f1c282451b application runner interface 2021-03-19 21:41:13 +02:00
Yuri Kuznetsov ff0c34c0b8 fix import command 2021-03-18 21:23:13 +02:00
Taras Machyshyn 4380175c8b Upgrade scripts 2021-03-18 17:39:32 +02:00
Yuri Kuznetsov 439598d7ee cleanup 2021-03-18 16:28:39 +02:00
Yuri Kuznetsov 08fa24b095 app-info command fix 2021-03-18 16:23:42 +02:00
Yuri Kuznetsov c836548fc7 command old interface support 2021-03-18 15:59:34 +02:00
Yuri Kuznetsov f109146379 Merge branch 'hotfix/6.1.5' 2021-03-18 15:47:57 +02:00
Yuri Kuznetsov 8ff46bba74 diff: removing git folder in vendor 2021-03-18 15:47:40 +02:00
Yuri Kuznetsov af7f4e3bc4 Merge branch 'hotfix/6.1.5' 2021-03-18 15:29:49 +02:00
Yuri Kuznetsov 06f1305f23 removing git folder in vendor on build 2021-03-18 15:29:21 +02:00
Yuri Kuznetsov ddc299fa08 fix extension command 2021-03-18 15:05:51 +02:00
Yuri Kuznetsov 43df9d25f0 new command interface 2021-03-18 13:39:14 +02:00
Yuri Kuznetsov 250ac0e8ba fix 2021-03-18 13:23:06 +02:00
Yuri Kuznetsov 29d960878c cs fix 2021-03-17 13:06:25 +02:00
Yuri Kuznetsov 8e6634ff0f value object framework 2021-03-17 12:55:30 +02:00
Yuri Kuznetsov 15b5cf9750 using cache api 2021-03-16 22:23:41 +02:00
Yuri Kuznetsov c001c4b5bd Merge branch 'hotfix/6.1.5' 2021-03-16 11:37:00 +02:00
Eymen Elkum 43723697f7 fix (#1944) 2021-03-15 14:20:42 +02:00
Yuri Kuznetsov 99d6a0ab32 local storage cache exceeded no error 2021-03-15 13:52:01 +02:00
Yuri Kuznetsov c2809ca091 no lib cache 2021-03-15 13:44:31 +02:00
Yuri Kuznetsov 108432c268 cs fix 2021-03-15 13:43:49 +02:00
Yuri Kuznetsov aa0db4b665 manual merge 2021-03-12 14:54:10 +02:00
Yuri Kuznetsov cda62b8a3e duration field fixes 2021-03-11 11:51:34 +02:00
Yuri Kuznetsov 970242e860 cs fixes 2021-03-10 16:05:38 +02:00
Yuri Kuznetsov 9c741da4e8 fix image 2021-03-09 17:27:55 +02:00
Yuri Kuznetsov 2dfd43c8ba fix index defs 2021-03-09 17:25:50 +02:00
Yuri Kuznetsov 5536687d90 fix metadata provider 2021-03-08 22:17:26 +02:00
Yuri Kuznetsov 34c421733e email address phone number group factory fix 2021-03-07 15:35:55 +02:00
Yuri Kuznetsov b0b29443a5 value objects from email address and phone number 2021-03-07 11:54:56 +02:00
Yuri Kuznetsov a637dcd28d fix test 2021-03-06 19:56:09 +02:00
Yuri Kuznetsov b6b3ec04be fix test 2021-03-06 19:54:15 +02:00
Yuri Kuznetsov 6586f51791 fix formula 2021-03-06 19:52:12 +02:00
Yuri Kuznetsov dff2e344a4 fix formula modulo 2021-03-06 16:25:13 +02:00
Taras Machyshyn 92e4e81788 Test fixes 2021-03-04 13:23:11 +02:00
Yuri Kuznetsov aa9ee7e1af attribute extractor fix 2021-03-04 13:02:38 +02:00
Taras Machyshyn 2d3f2f4b36 Fix test warning 2021-03-04 13:01:02 +02:00
Yuri Kuznetsov 73fe4d68f1 config param thumbImageCacheDisabled 2021-03-04 11:43:12 +02:00
Taras Machyshyn d244602818 Fix test warning 2021-03-04 11:38:25 +02:00
Yuri Kuznetsov 67d9c6ed4e move crm formula functins 2021-03-04 11:26:00 +02:00
Yuri Kuznetsov 55f8932495 remove flystem from composer 2021-03-04 09:54:39 +02:00
Eymen Elkum 24617f4a41 variable name typo (#1937) 2021-03-04 09:25:31 +02:00
Taras Machyshyn 5d47009e07 Database test fixes 2021-03-03 15:55:05 +02:00
Yuri Kuznetsov c46acc1ad4 aws s3 using temp when upload 2021-03-03 12:16:03 +02:00
Yuri Kuznetsov 20051a835b switch to async aws 2021-03-03 12:03:07 +02:00
Taras Machyshyn 2ae0f36241 LDAP bug fixes 2021-03-03 10:57:01 +02:00
Yuri Kuznetsov 873e33a04f attachment storage filter 2021-03-03 10:02:11 +02:00
Yuri Kuznetsov e33c5d7cbc fix file storage manager and image entry point 2021-03-03 09:45:25 +02:00
Yuri Kuznetsov b729ec1a85 s3 storage 2021-03-02 23:13:57 +02:00
Yuri Kuznetsov 9b18ecf072 cleanup 2021-03-02 23:07:13 +02:00
Yuri Kuznetsov 88c4ae5721 mass email refactoring 2021-03-02 14:11:08 +02:00
Yuri Kuznetsov d2b94955d1 mass email refactoring 2021-03-02 13:40:45 +02:00
Yuri Kuznetsov dbcc00fe1a cs fixes 2021-03-02 12:41:51 +02:00
Yuri Kuznetsov b56ae68854 request interface fixes 2021-03-02 12:27:02 +02:00
Yuri Kuznetsov 312ea7d962 fix api response wrapper 2021-03-02 11:49:00 +02:00
Yuri Kuznetsov ceb3b562e6 file storage changes 2021-03-02 11:45:25 +02:00
Yuri Kuznetsov b211009e91 Merge branch 'hotfix/6.1.5' 2021-03-02 11:42:18 +02:00
Yuri Kuznetsov eec372c6df fix css 2021-03-02 11:39:26 +02:00
Yuri Kuznetsov 011e83fac6 update selectize 2021-03-02 11:37:07 +02:00
Yuri Kuznetsov 70fa577e10 manual merge 2021-03-01 14:50:45 +02:00
Yuri Kuznetsov dd8e55c2ac restpore tcpdf 2021-03-01 14:34:38 +02:00
Yuri Kuznetsov b8f3f53d56 team position list as list 2021-03-01 14:24:24 +02:00
Yuri Kuznetsov d5623dabb6 comment fix 2021-02-26 14:10:25 +02:00
Yuri Kuznetsov db50687a1e Merge branch 'hotfix/6.1.5' 2021-02-26 12:33:05 +02:00
Yuri Kuznetsov 00fcd5a9b6 fix tcpdf page number 2021-02-26 12:32:48 +02:00
Yuri Kuznetsov 272fd58481 pdf changes 2021-02-26 12:23:46 +02:00
Yuri Kuznetsov ecbde48f63 manual merge 2021-02-26 10:42:53 +02:00
Yuri Kuznetsov 3dda43c70a update tcpdf 2021-02-26 10:38:46 +02:00
Yuri Kuznetsov 39827e449b update async 2021-02-26 09:33:43 +02:00
Yuri Kuznetsov 44d0c78077 manual merge 2021-02-26 09:32:09 +02:00
Yuri Kuznetsov 34029c6f6f update composer deps 2021-02-26 09:26:40 +02:00
Yuri Kuznetsov 929b8c2d50 field and entity manager fixes 2021-02-25 20:01:52 +02:00
Yuri Kuznetsov b71a64c214 cs fixes 2021-02-25 19:53:46 +02:00
Yuri Kuznetsov 66c5d408c6 fixes in field manager 2021-02-25 19:37:16 +02:00
Yuri Kuznetsov ab1dbd0d5c cs fix 2021-02-25 19:24:39 +02:00
Yuri Kuznetsov cc307e3217 cleanup 2021-02-25 16:40:42 +02:00
Yuri Kuznetsov e3c45a5039 hide reset to default field for custom entities 2021-02-25 16:39:33 +02:00
Yuri Kuznetsov 6754efc486 fix calendar query 2021-02-25 13:44:35 +02:00
Yuri Kuznetsov 1e5d9d314b remove tests depending on db from unit 2021-02-25 13:28:31 +02:00
Yuri Kuznetsov cea6aaf7ff fix composer dependency 2021-02-25 12:58:09 +02:00
Yuri Kuznetsov c1f019e71c update async 2021-02-25 11:54:50 +02:00
Yuri Kuznetsov c00b511c17 update slim 2021-02-25 11:37:12 +02:00
Yuri Kuznetsov 51c6067c17 udpdate composer phar 2021-02-25 11:33:19 +02:00
Yuri Kuznetsov c032e74e58 drop php 7.2 2021-02-25 11:28:26 +02:00
Yuri Kuznetsov 412d40d041 Merge branch 'hotfix/6.1.5' 2021-02-25 11:16:05 +02:00
Yuri Kuznetsov 2cc69a0725 fix related list sync 2021-02-24 12:39:50 +02:00
Yuri Kuznetsov 89b3b6da61 cs fix 2021-02-24 12:20:13 +02:00
Yuri Kuznetsov 77a7fffcb2 rename field utils to fields 2021-02-24 10:58:42 +02:00
Yuri Kuznetsov 30a9c8c90e foreign type 2021-02-23 18:50:24 +02:00
Yuri Kuznetsov abd52c7a42 orm fixes 2021-02-23 16:59:43 +02:00
Yuri Kuznetsov 9bb164246e cleanup 2021-02-23 14:24:57 +02:00
Yuri Kuznetsov 87d0e18696 move jobs 2021-02-23 14:24:13 +02:00
Yuri Kuznetsov e8f5864dd9 job refactoring 2021-02-23 14:13:04 +02:00
Yuri Kuznetsov 51d7b3f413 case fixes 2021-02-23 13:32:58 +02:00
Yuri Kuznetsov fb3de84aa4 layout change 2021-02-23 13:24:17 +02:00
Yuri Kuznetsov 4a2aa91b6d email notification refactoring 2021-02-23 13:13:24 +02:00
Yuri Kuznetsov a4edac59c6 refactoring 2021-02-23 10:10:14 +02:00
suparpat 19af59b301 Add Thai Language Support (#1920)
* Add Thai Language Support
2021-02-23 09:12:23 +02:00
Yuri Kuznetsov d1b27dfd9d tcpdf refactoring 2021-02-22 15:19:31 +02:00
Yuri Kuznetsov 274fb0f380 view followers list portal 2021-02-22 15:14:12 +02:00
Yuri Kuznetsov 8e70567688 follow entity support another user portal 2021-02-22 14:27:22 +02:00
Yuri Kuznetsov 7cbc24feb8 v 2021-02-22 10:52:07 +02:00
Yuri Kuznetsov 2bdcf3919e fix tests 2021-02-20 10:55:12 +02:00
Yuri Kuznetsov 8214f4ba20 cleanup 2021-02-19 15:31:08 +02:00
Yuri Kuznetsov d0a5fc24b1 dev 2021-02-19 15:30:22 +02:00
Yuri Kuznetsov c8084c670a fix tests 2021-02-19 14:53:07 +02:00
Yuri Kuznetsov 82a9779b09 renaming 2021-02-19 14:28:57 +02:00
Yuri Kuznetsov fdb887e43a fix test 2021-02-19 14:18:32 +02:00
Yuri Kuznetsov 7761244eec update composer 2021-02-19 14:10:57 +02:00
Yuri Kuznetsov 6580334bdd Merge branch 'hotfix/6.1.4' 2021-02-19 14:02:51 +02:00
Yuri Kuznetsov e2f7a22457 fix comment 2021-02-19 10:47:13 +02:00
Yuri Kuznetsov 494382f5cb value fix 2021-02-18 21:35:32 +02:00
Yuri Kuznetsov 2ff248a4c4 use forked lighrncandy 2021-02-18 15:35:01 +02:00
Yuri Kuznetsov 7ed15a2dbc cleanup 2021-02-18 12:21:55 +02:00
Yuri Kuznetsov 3d1725054a field utils refactoring 2021-02-18 12:17:23 +02:00
Yuri Kuznetsov d6e37f9f13 cleanup 2021-02-18 10:56:29 +02:00
Yuri Kuznetsov 2c78bef505 fieldUtil additions 2021-02-18 10:52:03 +02:00
Yuri Kuznetsov d60b9706b3 cs fix 2021-02-18 08:58:55 +02:00
Yuri Kuznetsov d20996d788 Merge branch 'hotfix/6.1.4' 2021-02-18 08:55:32 +02:00
Yuri Kuznetsov 0010976803 attachment download calculating actual filesize 2021-02-18 08:54:03 +02:00
Eymen Elkum bd422323ee fix typo (#1924) 2021-02-18 08:44:40 +02:00
Eymen Elkum 6a66d99017 add missing import (#1923) 2021-02-18 08:34:24 +02:00
Yuri Kuznetsov f1d87da9b6 comments fix 2021-02-17 20:17:52 +02:00
Yuri Kuznetsov ac8674a8b3 cs fixes and cleanup 2021-02-17 16:44:31 +02:00
Yuri Kuznetsov c2af7914e3 fix 2021-02-17 16:40:27 +02:00
Yuri Kuznetsov 102db4c937 merge 2021-02-17 16:38:09 +02:00
Yuri Kuznetsov 1f7d92b209 return type fix 2021-02-17 16:36:15 +02:00
Yuri Kuznetsov 555cc74312 cs fix 2021-02-17 16:31:49 +02:00
Yuri Kuznetsov 761319c13d entity setAsNotNew and refactoring 2021-02-17 16:12:53 +02:00
Yuri Kuznetsov 828e867ac9 remove tests 2021-02-17 13:23:55 +02:00
Yuri Kuznetsov 6a7b4f107e fix syntax 2021-02-17 13:10:31 +02:00
Yuri Kuznetsov c0df364b4f Merge branch 'hotfix/6.1.4' 2021-02-17 09:10:27 +02:00
Yuri Kuznetsov 71c72136f6 attachment proper size calculation 2021-02-17 09:09:52 +02:00
Yuri Kuznetsov ec5f8fc4f5 fix test 2021-02-16 22:52:39 +02:00
Yuri Kuznetsov f5e6ed914d cs fixes 2021-02-16 22:50:43 +02:00
Yuri Kuznetsov 2e7bc894f1 refactoring 2021-02-16 21:27:00 +02:00
Yuri Kuznetsov 7f57e64292 Merge branch 'hotfix/6.1.3' of github.com:espocrm/espocrm into hotfix/6.1.3 2021-02-15 10:51:31 +02:00
Yuri Kuznetsov 18537b9cdb some orm fixes 2021-02-14 21:25:40 +02:00
Yuri Kuznetsov ed5cb715da Merge branch 'hotfix/6.1.3' 2021-02-13 19:27:47 +02:00
Yuri Kuznetsov 300a0ece75 save and continue action 2 2021-02-13 19:21:47 +02:00
Yuri Kuznetsov 3172ba213e save and continue action 2021-02-13 19:16:45 +02:00
Yuri Kuznetsov 32cf86ede5 refactoring and cs fixes 2021-02-13 18:24:31 +02:00
Yuri Kuznetsov 97f320c9a7 ceanup 2021-02-13 17:55:23 +02:00
Yuri Kuznetsov 7c6dd75a23 cleanup 2021-02-13 17:52:44 +02:00
Yuri Kuznetsov 6a59355514 refactoring 2021-02-13 17:51:18 +02:00
Yuri Kuznetsov 91c3413c57 refactoring and cleanup 2021-02-13 14:33:30 +02:00
Yuri Kuznetsov 717f5f6e2e refactoring 2021-02-13 13:45:19 +02:00
Yuri Kuznetsov f48efae82d entity manager getDefs 2021-02-13 13:45:04 +02:00
Yuri Kuznetsov 5f372ebee3 cs fix 2021-02-13 11:14:57 +02:00
Yuri Kuznetsov 5b27fad3aa Merge branch 'hotfix/6.1.3' 2021-02-13 11:04:16 +02:00
Yuri Kuznetsov 5685ccbffd deprecated fix 2021-02-13 11:03:44 +02:00
Yuri Kuznetsov 6149a951bd cs fix 2021-02-13 10:59:22 +02:00
Yuri Kuznetsov 2529205359 orm defs usage 2021-02-13 10:54:00 +02:00
Yuri Kuznetsov 81b71a7676 orm defs fixes 2021-02-13 10:18:35 +02:00
Yuri Kuznetsov 29c80f7845 entity manager get rdb repository 2021-02-12 17:17:59 +02:00
Yuri Kuznetsov 05372fc4a4 cs fix 2021-02-12 17:11:03 +02:00
Yuri Kuznetsov 50e433aba0 cs fix 2021-02-12 16:59:28 +02:00
Yuri Kuznetsov ac4797a943 Merge branch 'hotfix/6.1.3' 2021-02-12 16:54:08 +02:00
Yuri Kuznetsov 3e372f753d fix 2021-02-12 16:53:54 +02:00
Yuri Kuznetsov 3c7baa7237 cs fix 2021-02-12 16:53:34 +02:00
Yuri Kuznetsov 3f9d6e48b5 cs fix 2021-02-12 16:21:41 +02:00
Yuri Kuznetsov 79adfe70a4 mass update copy attachments 2021-02-12 16:18:45 +02:00
Yuri Kuznetsov ae8b616fed cs fix 2021-02-12 15:49:15 +02:00
Yuri Kuznetsov 0b8b2db41e cs fix 2021-02-12 15:24:18 +02:00
Yuri Kuznetsov 63183b33f1 cs fix 2021-02-12 15:21:50 +02:00
Yuri Kuznetsov de09d1dbd2 cs fix 2021-02-12 14:30:46 +02:00
Yuri Kuznetsov b59e318444 Merge branch 'hotfix/6.1.3' 2021-02-12 14:18:52 +02:00
Yuri Kuznetsov 51ea8a5e1c fromula array join function 2021-02-12 14:11:02 +02:00
Yuri Kuznetsov 0a65da2fc4 Merge branch 'hotfix/6.1.3' 2021-02-12 12:54:19 +02:00
Yuri Kuznetsov d3c634b89f fix lead convert 2021-02-12 12:52:35 +02:00
Yuri Kuznetsov e46be54688 fix app 2021-02-12 11:16:11 +02:00
Yuri Kuznetsov e4f8a51df8 front end action improvements 2021-02-12 10:59:34 +02:00
Yuri Kuznetsov a51f48f060 cs fix 2021-02-12 09:48:54 +02:00
Yuri Kuznetsov 32df0c1730 cs fix 2021-02-12 09:43:57 +02:00
Yuri Kuznetsov 530c8818b7 cs fix 2021-02-12 09:40:10 +02:00
Yuri Kuznetsov 6c99f73596 refactoring, action framework 2021-02-11 16:49:25 +02:00
Yuri Kuznetsov 61acaaa054 cleanup 2021-02-11 15:09:37 +02:00
Yuri Kuznetsov eca341d7ec update phpspreadsheet 2021-02-11 14:18:49 +02:00
Yuri Kuznetsov 25b695bc32 dev 2021-02-11 13:33:20 +02:00
Yuri Kuznetsov 0f41cb5ad4 grand refactoring, mass actions 2021-02-11 13:29:19 +02:00
Taras Machyshyn 454ca3b136 Merge branch 'hotfix/6.1.3' of https://github.com/espocrm/espocrm into hotfix/6.1.3 2021-02-11 13:09:38 +02:00
Taras Machyshyn e3b8b450a4 DBAL: bug fixing 2021-02-11 13:09:20 +02:00
Taras Machyshyn c15c486603 Fix changing default values in MariaDB 2021-02-10 12:42:46 +02:00
Yuri Kuznetsov 40e57e3a54 Merge branch 'hotfix/6.1.3' 2021-02-10 10:45:20 +02:00
Yuri Kuznetsov c6554afaae Merge branch 'hotfix/6.1.3' of https://github.com/espocrm/espocrm into hotfix/6.1.3 2021-02-10 10:44:11 +02:00
Yuri Kuznetsov 0d6b5ce68c fix 2021-02-10 10:43:54 +02:00
Taras Machyshyn 2830400da5 DBAL: do not change collation when changing a field 2021-02-10 10:22:01 +02:00
Yuri Kuznetsov 113b05ed05 fix 2021-02-10 09:51:30 +02:00
Yuri Kuznetsov 824ce88914 mass action refactoring 2021-02-09 18:43:24 +02:00
Yuri Kuznetsov aa8edf1ee9 v 2021-02-09 11:05:49 +02:00
Yuri Kuznetsov f1bf439f7b wysiwyg modal backdrop 2021-02-08 15:37:17 +02:00
Yuri Kuznetsov 220992fc37 formula generate id 2021-02-08 15:18:14 +02:00
Yuri Kuznetsov a1e243714e cs fix 2021-02-07 22:29:43 +02:00
Yuri Kuznetsov 1c0ed64f67 fix 2021-02-07 22:12:44 +02:00
Yuri Kuznetsov 1f1cd1b6d7 refactoring 2021-02-07 22:01:58 +02:00
Yuri Kuznetsov e81725eb16 cs fix 2021-02-07 18:56:14 +02:00
Yuri Kuznetsov ee4220e1ce cs fixes 2021-02-07 18:46:19 +02:00
Yuri Kuznetsov a733c6c68d comment 2021-02-07 18:38:51 +02:00
Yuri Kuznetsov d7c7619218 entry points refactoring 2021-02-07 18:31:07 +02:00
Yuri Kuznetsov 77066ba7e5 cs fix 2021-02-07 12:59:06 +02:00
Yuri Kuznetsov 35c5919c44 cs fix 2021-02-07 12:56:00 +02:00
Yuri Kuznetsov fcdd286965 refactoring 2021-02-07 12:40:24 +02:00
Yuri Kuznetsov e84fa1d636 Merge branch 'hotfix/6.1.3' 2021-02-07 12:29:39 +02:00
Yuri Kuznetsov de52af79c5 cs fix 2021-02-07 12:28:36 +02:00
Yuri Kuznetsov c555102b5f refactoring 2021-02-07 12:28:00 +02:00
Yuri Kuznetsov 4c05175dbe tracking url uid 2021-02-07 12:12:30 +02:00
Yuri Kuznetsov de543fa2db fix typo 2021-02-07 08:50:02 +02:00
Yuri Kuznetsov bfe9bad905 fix stream query 2021-02-05 14:34:45 +02:00
Yuri Kuznetsov 459b6bc6fe attachment storage readonly 2021-02-05 14:06:53 +02:00
Yuri Kuznetsov 332211fb13 Merge branch 'hotfix/6.1.3' 2021-02-05 13:58:13 +02:00
Yuri Kuznetsov a0f85bd55a attachment source list improvements 2021-02-05 13:13:05 +02:00
Yuri Kuznetsov 7273caac36 cs fix 2021-02-05 12:37:57 +02:00
Yuri Kuznetsov d8383dc38a opcache invalidate error fix 2021-02-04 16:46:33 +02:00
Yuri Kuznetsov 7824ab8dc9 fix logger handler 2021-02-04 16:32:37 +02:00
Yuri Kuznetsov 7320bf68e5 fix id attribute reading 2021-02-02 14:42:48 +02:00
Yuri Kuznetsov e5d42cf0eb manual merge 2021-02-01 19:17:04 +02:00
Yuri Kuznetsov d7b9492f15 login exception fix 2021-02-01 19:11:13 +02:00
Yuri Kuznetsov 6a7b782309 v 2021-02-01 11:48:33 +02:00
Yuri Kuznetsov 9d080d7dca fix kanban order 2021-01-30 17:59:08 +02:00
Yuri Kuznetsov 424df8d4fe request parsed body cloning 2021-01-30 14:06:11 +02:00
Yuri Kuznetsov 2f4422f719 auth error msg 2021-01-29 18:40:19 +02:00
Yuri Kuznetsov 831611af1e cs fix 2021-01-29 18:26:33 +02:00
Yuri Kuznetsov c302d362a4 cs fix 2021-01-29 15:59:05 +02:00
Yuri Kuznetsov 69d4b1096f cs fix 2021-01-29 15:52:43 +02:00
Yuri Kuznetsov 2514a89286 fix diff 2021-01-29 15:44:12 +02:00
Yuri Kuznetsov 2034055148 acl refactoring 2021-01-29 15:28:25 +02:00
Yuri Kuznetsov 3a3b1007b9 Merge branch 'stable' 2021-01-29 13:38:38 +02:00
Yuri Kuznetsov 2582dfe3c4 v 2021-01-29 12:29:47 +02:00
Yuri Kuznetsov 295411a5d2 fix auth token 2021-01-29 11:31:51 +02:00
Yuri Kuznetsov 09a83b36ff cleanup 2021-01-28 23:35:16 +02:00
Yuri Kuznetsov 32cc59228d auth refactoring 2021-01-28 23:29:08 +02:00
Yuri Kuznetsov 31b2413953 icon quick search 2021-01-28 20:20:04 +02:00
Yuri Kuznetsov c8eb643818 theme param global 2021-01-28 18:10:39 +02:00
Yuri Kuznetsov 11b251003e fix protal config 2021-01-28 18:10:19 +02:00
Yuri Kuznetsov 28bb0e99cb cs fix 2021-01-28 18:04:18 +02:00
Yuri Kuznetsov 5c9c686317 cs fix 2021-01-28 17:51:40 +02:00
Yuri Kuznetsov 098425bdbf cs fix 2021-01-28 16:04:16 +02:00
Yuri Kuznetsov 5189f6b392 cs fixes 2021-01-28 16:02:47 +02:00
Yuri Kuznetsov f487479b1d fixes 2021-01-28 15:51:17 +02:00
Yuri Kuznetsov 03224cc4f6 fixes 2021-01-28 15:39:38 +02:00
Yuri Kuznetsov 482754eddb container prevent setting twice 2021-01-28 14:30:08 +02:00
Yuri Kuznetsov 7fcf6874e3 deprecation msg 2021-01-28 14:24:46 +02:00
Yuri Kuznetsov a3e0eee8d4 Merge branch 'hotfix/6.1.1' 2021-01-28 14:12:24 +02:00
Yuri Kuznetsov 453589de92 fix popup notification 2021-01-28 14:06:22 +02:00
Yuri Kuznetsov b7ffb06f9c fix auth 2021-01-28 13:51:50 +02:00
Yuri Kuznetsov 35a209bcb6 installer fix 2021-01-28 13:43:36 +02:00
Yuri Kuznetsov c3a2a15608 fix auth 2021-01-28 13:39:40 +02:00
Yuri Kuznetsov 9acdfe5dcf config writer 2021-01-28 13:14:40 +02:00
Yuri Kuznetsov 9ec8056d89 dev 2021-01-28 12:38:52 +02:00
Yuri Kuznetsov b9c2cc2c4f user type filter fix 2021-01-28 10:32:48 +02:00
Yuri Kuznetsov 675a2811d4 redactoring 2021-01-28 00:10:18 +02:00
Yuri Kuznetsov b1df5f533b fix typo 2021-01-27 23:56:54 +02:00
Yuri Kuznetsov a61cf3f889 fix 2021-01-27 13:11:27 +02:00
Yuri Kuznetsov ace09646c6 auth refactoring 2021-01-27 13:10:47 +02:00
Yuri Kuznetsov f42c33d77a username validation 2021-01-27 12:27:33 +02:00
Yuri Kuznetsov d2113c4379 auth refactoring 2021-01-27 11:23:40 +02:00
Yuri Kuznetsov 0d202499bc fix 2021-01-26 20:53:35 +02:00
Yuri Kuznetsov 9e60778075 Merge branch 'hotfix/6.1.1' 2021-01-26 18:38:54 +02:00
Yuri Kuznetsov be6896f34c fix log loader 2021-01-26 18:38:43 +02:00
Yuri Kuznetsov 4e78e4019f auth refactoring 2021-01-26 18:09:28 +02:00
Yuri Kuznetsov 823d13af34 cs fix 2021-01-26 17:38:47 +02:00
Yuri Kuznetsov 4007870bfb auth refactoring 2021-01-26 17:24:00 +02:00
Yuri Kuznetsov 5d92f98548 Merge branch 'hotfix/6.1.1' 2021-01-26 17:02:19 +02:00
Yuri Kuznetsov e5a3a0637d fix deprecated 2021-01-26 17:02:01 +02:00
Yuri Kuznetsov cbbff69003 auth refactoring 2021-01-26 17:00:53 +02:00
Yuri Kuznetsov f40240d8cb Auth refacoring 2021-01-26 15:08:59 +02:00
Yuri Kuznetsov 9671599fc9 fix method trailing comma 2021-01-26 15:08:43 +02:00
Yuri Kuznetsov e1be421410 Merge branch 'master' into version/6.2 2021-01-26 14:56:24 +02:00
Taras Machyshyn 068653ad3e Merge branch 'master' of https://github.com/espocrm/espocrm 2021-01-26 12:59:58 +02:00
Taras Machyshyn cd2a2c2639 Upgrade fixes 2021-01-26 12:59:28 +02:00
Yuri Kuznetsov 2d37dde8b8 year 2021-01-26 12:06:35 +02:00
Yuri Kuznetsov 42613c79b6 v 2021-01-26 11:30:07 +02:00
Taras Machyshyn f4a80ed856 2021 license 2021-01-25 16:46:11 +02:00
Taras Machyshyn 39610bce24 Merge branch 'master' of https://github.com/espocrm/espocrm into version/6.2 2021-01-25 16:41:36 +02:00
Taras Machyshyn 124cce55bd 2021 license 2021-01-25 16:37:54 +02:00
Taras Machyshyn 589aa4ae40 Merge branch 'master' of https://github.com/espocrm/espocrm 2021-01-25 15:44:36 +02:00
Yuri Kuznetsov 41ccba7955 fix deprecated 2021-01-25 15:31:36 +02:00
Taras Machyshyn ac2613682c Merge master 2021-01-25 14:55:03 +02:00
Taras Machyshyn 8a46cfb0da Merge branch 'master' of https://github.com/espocrm/espocrm 2021-01-25 14:53:29 +02:00
Yuri Kuznetsov 9c0643b61f Merge branch 'hotfix/6.0.10' 2021-01-25 11:53:10 +02:00
Yuri Kuznetsov 4d755d3795 fix tests 2021-01-25 11:46:56 +02:00
Yuri Kuznetsov 9fe61d2342 v 2021-01-25 11:12:38 +02:00
Yuri Kuznetsov d0273febf9 Rename Address class 2021-01-24 17:34:58 +02:00
Yuri Kuznetsov 5610ed6e15 Currency field utils 2021-01-24 17:13:03 +02:00
Yuri Kuznetsov 89ff894917 fix address 2021-01-24 15:39:29 +02:00
Yuri Kuznetsov e2b6f0c70f cs fix 2021-01-23 21:22:21 +02:00
Yuri Kuznetsov 654741261b Address formatter 2021-01-23 15:11:56 +02:00
Taras Machyshyn 1f17d79e2d Upgrade fixes 2021-01-21 17:53:54 +02:00
Taras Machyshyn 3b0c7f1d5b Upgrade bug fixes 2021-01-21 17:39:44 +02:00
Taras Machyshyn f2831f84df Merge branch 'master' of https://github.com/espocrm/espocrm 2021-01-21 16:17:22 +02:00
Taras Machyshyn d30edee790 Upgrade bug fixes 2021-01-21 16:14:14 +02:00
Yuri Kuznetsov 2635ed69ac cleanup 2021-01-21 11:19:25 +02:00
Yuri Kuznetsov 18e0044373 orm defs 2021-01-21 10:36:37 +02:00
Yuri Kuznetsov a9759a20c2 Merge branch 'master' into version/6.2 2021-01-19 17:47:20 +02:00
Yuri Kuznetsov f5b9673044 Select builder 2021-01-19 17:43:33 +02:00
Yuri Kuznetsov 9756bfbc4d Rename getRawParams method 2021-01-19 17:36:01 +02:00
Taras Machyshyn 1ae125ceb1 Merge branch 'master' of https://github.com/espocrm/espocrm 2021-01-19 12:57:13 +02:00
Milan Horák 443d010a59 Update Email.json (#1883)
Unified terminology, translated untranslated items, typos correction.
2021-01-18 15:43:35 +02:00
Yuri Kuznetsov fcdc704cc2 Merge branch 'hotfix/6.0.10' 2021-01-18 13:58:34 +02:00
Yuri Kuznetsov 0815cc3b5e xlsx export fix and refactoring 2021-01-18 13:58:13 +02:00
Yuri Kuznetsov 2416cf6ad5 fix popup notification service 2021-01-15 16:07:14 +02:00
Yuri Kuznetsov 9cf03fcbb0 fix orm notice 2021-01-14 14:09:50 +02:00
Yuri Kuznetsov 43c524533c global search cs fix 2021-01-13 21:12:53 +02:00
Yuri Kuznetsov 600ae5aed6 orm left function 2021-01-13 11:31:21 +02:00
Yuri Kuznetsov a9fb352fd9 log handler fix 2021-01-12 09:16:41 +02:00
Yuri Kuznetsov dd2434d4b4 Merge branch 'master' of github.com:espocrm/espocrm 2021-01-11 13:12:23 +02:00
Yuri Kuznetsov 3f221878e8 file manager change 2021-01-11 13:10:39 +02:00
Eymen Elkum 876dbb3ab4 link field keep name value in search mode (#1882) 2021-01-11 13:09:08 +02:00
Yuri Kuznetsov 97e7b1982f Merge branch 'hotfix/6.0.10' 2021-01-11 12:24:35 +02:00
Yuri Kuznetsov ddff78756d fix label 2021-01-11 12:24:07 +02:00
Yuri Kuznetsov d78df859b1 Merge branch 'hotfix/6.0.10' 2021-01-11 11:33:05 +02:00
Taras Machyshyn aa09f8789c Merge branch 'master' of https://github.com/espocrm/espocrm 2021-01-06 12:03:50 +02:00
Yuri Kuznetsov 106ffe5df7 Config file permissins fix 2021-01-05 18:56:07 +02:00
Taras Machyshyn f8c01808d4 Wrong directory owner fixes 2021-01-05 16:16:49 +02:00
Taras Machyshyn 9de775e0c9 Merge branch 'master' of https://github.com/espocrm/espocrm 2021-01-05 14:17:15 +02:00
Yuri Kuznetsov e073c82992 fix orm repository 2021-01-05 10:27:57 +02:00
Yuri Kuznetsov 90a6c85aff Merge branch 'stable' 2021-01-04 12:39:12 +02:00
Yuri Kuznetsov aa82f96993 Fix reply email with external account 2021-01-04 12:17:57 +02:00
Yuri Kuznetsov 867a0225f1 v 2021-01-04 11:47:18 +02:00
Taras Machyshyn ead92aac31 Merge branch 'master' of https://github.com/espocrm/espocrm 2021-01-04 10:51:48 +02:00
Yuri Kuznetsov 97ff03f87e Fix DBAL 2020-12-31 15:17:28 +02:00
Yuri Kuznetsov ec40acfac1 cs fixes 2020-12-31 15:12:44 +02:00
Yuri Kuznetsov 52904999fb Merge branch 'master' of https://github.com/espocrm/espocrm 2020-12-31 10:01:44 +02:00
Yuri Kuznetsov 14d296ea38 Merge branch 'hotfix/6.0.9' 2020-12-31 10:01:25 +02:00
Yuri Kuznetsov 4ab636ded8 autoload test and refactoring 2020-12-31 09:59:29 +02:00
Yuri Kuznetsov f764375e0e file manager method cleanups 2020-12-31 09:33:12 +02:00
Arkady 98b20a3e24 fix autoload path merging (#1875)
Co-authored-by: Arkadiy Asuratov <a.asuratov@dubas.pro>
2020-12-31 08:56:24 +02:00
Taras Machyshyn 7f6843b895 Merge 2020-12-30 15:55:43 +02:00
Taras Machyshyn 74ad947ade Fixes for DBAL v3.0 2020-12-30 15:36:39 +02:00
Yuri Kuznetsov 3dc1a156d4 orm has join alias 2020-12-30 12:35:57 +02:00
Yuri Kuznetsov b6a6cf052b add modal fixes 2020-12-29 13:29:24 +02:00
Eymen Elkum ae3975e3dd array field modal checkboxes (#1864) 2020-12-29 13:19:02 +02:00
Yuri Kuznetsov 79b2beba8f manual merge 2020-12-29 13:15:33 +02:00
dependabot[bot] e7345f678c Bump ini from 1.3.5 to 1.3.8 (#1873)
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-29 13:13:18 +02:00
Yuri Kuznetsov 771f8a8430 renormalize line endings 2020-12-28 18:23:21 +02:00
Yuri Kuznetsov ddef5312fd fix gitignore 2020-12-28 18:20:44 +02:00
Yuri Kuznetsov 43a7085f7c gitattributes file 2020-12-28 18:20:20 +02:00
Taras Machyshyn fd11c1d5bd Merge master 2020-12-28 13:13:20 +02:00
Taras Machyshyn 5cf06bce7e Upgrade DBAL v3.0 2020-12-28 12:22:10 +02:00
Yuri Kuznetsov f5232dc5af Merge branch 'master' of github.com:espocrm/espocrm 2020-12-28 11:52:32 +02:00
Yuri Kuznetsov d0cf57cb66 Merge branch 'hotfix/6.0.9' 2020-12-28 11:52:21 +02:00
Yuri Kuznetsov ca17a5453a fix warning 2020-12-28 11:51:56 +02:00
Yuri Kuznetsov 713ecb3be7 fix orm select builder 2020-12-25 14:02:42 +02:00
Yuri Kuznetsov e43265fe57 gruntfile fix 2020-12-23 09:33:19 +02:00
Yuri Kuznetsov 9642f9ae41 entity manager factory 2020-12-23 09:32:51 +02:00
Yuri Kuznetsov 5f95859bcd delete orm metadata service 2020-12-23 09:21:15 +02:00
Yuri Kuznetsov 6fecf61648 fix notice 2020-12-21 15:35:11 +02:00
Yuri Kuznetsov 85c199d563 cd fix 2020-12-21 14:15:10 +02:00
Yuri Kuznetsov facb5c747d fix test 2020-12-21 13:58:47 +02:00
Yuri Kuznetsov 1b517a6eb1 cleanup 2020-12-21 13:16:12 +02:00
Yuri Kuznetsov 99dc6b1623 phpunit config 2020-12-21 13:13:30 +02:00
Yuri Kuznetsov e569b8b9a7 fix tests 2020-12-21 13:07:14 +02:00
Yuri Kuznetsov f0b0c55d9b Merge branch 'master' of github.com:espocrm/espocrm 2020-12-21 13:01:37 +02:00
Yuri Kuznetsov df179212b1 orm metadata refactoring 2020-12-21 13:01:07 +02:00
Yuri Kuznetsov 19ccf09c20 Merge branch 'hotfix/6.0.9' 2020-12-21 11:50:25 +02:00
Yuri Kuznetsov 641382dc66 cs fix and error throwing 2020-12-21 11:50:07 +02:00
Yuri Kuznetsov 8f89fa4597 cs fix 2020-12-21 11:33:51 +02:00
Yuri Kuznetsov 543eb21a8b fix flotr 2020-12-21 11:27:48 +02:00
Yuri Kuznetsov 9fbc62837f fix validation 2020-12-21 11:07:31 +02:00
Yuri Kuznetsov d194eac5bc laminas service manager dependency 2020-12-18 15:06:00 +02:00
Yuri Kuznetsov 5ffd03ca85 application runner refactoring 2020-12-17 18:43:57 +02:00
Yuri Kuznetsov d6dec82610 Merge branch 'hotfix/6.0.9' 2020-12-17 16:22:07 +02:00
Yuri Kuznetsov 521a166c92 ceanup 2020-12-16 19:44:08 +02:00
Yuri Kuznetsov 2ca97d4e31 Merge branch 'master' of https://github.com/espocrm/espocrm 2020-12-15 09:46:35 +02:00
Yuri Kuznetsov b30df2f6e2 orm select builder check has join 2020-12-15 09:46:29 +02:00
Yuri Kuznetsov 4ab0d765e3 fix notices 2020-12-14 14:52:18 +02:00
Yuri Kuznetsov 58d3929bee fix notices and cs 2020-12-14 13:59:52 +02:00
Yuri Kuznetsov 35eff68f64 fix notices 2020-12-14 13:59:25 +02:00
Yuri Kuznetsov bb10b0a266 controller manager test 2020-12-14 13:48:32 +02:00
Yuri Kuznetsov 9dc050332e controller manager notice fix 2020-12-14 13:48:25 +02:00
Yuri Kuznetsov c65b9d8cc2 fix merge notice 2020-12-14 13:19:50 +02:00
Yuri Kuznetsov 2d26d1a9d1 fix notice 2020-12-14 13:18:23 +02:00
Yuri Kuznetsov a2be80501a fix query composer notices 2020-12-14 13:15:07 +02:00
Yuri Kuznetsov e19462c045 fix query composer notice 2020-12-14 13:10:07 +02:00
Yuri Kuznetsov 8a23bba39a fix authentication param order 2020-12-14 13:01:37 +02:00
Yuri Kuznetsov 105b494710 fix binding for php 8 2020-12-14 12:49:16 +02:00
dependabot[bot] e35ecf96ca Bump ini from 1.3.5 to 1.3.7 (#1862)
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-14 11:19:34 +02:00
Yuri Kuznetsov df16f37912 cleanup 2020-12-09 14:25:53 +02:00
Yuri Kuznetsov d3dcaa92e5 log handlers 2020-12-08 14:24:56 +02:00
Yuri Kuznetsov b1e31c9999 fix tests 2020-12-08 12:53:16 +02:00
Yuri Kuznetsov 3a89b16b91 log naming change 2020-12-07 16:13:51 +02:00
Yuri Kuznetsov 06ff48515c log cleanup 2020-12-07 16:01:49 +02:00
Yuri Kuznetsov b870025f88 cleanup 2020-12-07 13:39:57 +02:00
Yuri Kuznetsov 7041a9ca9d mysql locker fix 2020-12-07 12:13:20 +02:00
Yuri Kuznetsov 2f40830630 update mail-mime-parser 2020-12-07 12:04:09 +02:00
Yuri Kuznetsov 55b7d81922 pdf font face list 2020-12-07 11:46:56 +02:00
Yuri Kuznetsov 07d63013aa cleanup 2020-12-05 22:16:48 +02:00
Yuri Kuznetsov 70d15cbac5 pdf barcode tag 2020-12-05 15:37:14 +02:00
Yuri Kuznetsov d3d710b2b9 v 2020-12-04 15:04:36 +02:00
Yuri Kuznetsov 4426d81e77 fix category tree 2020-12-04 14:28:04 +02:00
Yuri Kuznetsov fad183e20a kanban order fix 2020-12-03 16:28:03 +02:00
Yuri Kuznetsov ad2e977b7c cs fix 2020-12-03 15:52:14 +02:00
Yuri Kuznetsov 6b3e81e3fd settings currency validation 2020-12-03 11:56:44 +02:00
Yuri Kuznetsov dd708778d6 field clone validations 2020-12-03 11:56:15 +02:00
Yuri Kuznetsov 0bc06f3cae fix autofollow 2020-12-02 11:04:33 +02:00
Yuri Kuznetsov 0ab8853455 fix notification for portal user 2020-12-01 13:14:17 +02:00
Yuri Kuznetsov bdf5664672 Merge branch 'hotfix/6.0.8' 2020-12-01 12:15:16 +02:00
Yuri Kuznetsov 83a44c60c1 pdf tool 2020-12-01 12:14:08 +02:00
Yuri Kuznetsov a612ffd2d2 fix pdf google maps 2020-12-01 11:40:23 +02:00
Yuri Kuznetsov 43b529ea8b Merge branch 'stable' 2020-12-01 10:23:52 +02:00
Yuri Kuznetsov bc19a6bb5f flotr2 fix 2020-11-30 12:48:53 +02:00
Eymen Elkum 8cc6a2ddf0 fix bc (#1853) 2020-11-29 11:25:07 +02:00
Yuri Kuznetsov c1f0c47cf7 bc fix 2020-11-28 19:33:12 +02:00
Yuri Kuznetsov 7e71eb0aeb fix warning 2020-11-27 18:42:52 +02:00
Taras Machyshyn 196f787a1f Fix installer for PHP 8 2020-11-27 17:32:00 +02:00
Taras Machyshyn b7bec1793c Fix installer for PHP 8 2020-11-27 12:26:57 +02:00
Taras Machyshyn b97aa8e3a7 Fix gitignore 2020-11-27 12:26:30 +02:00
Taras Machyshyn 21dcf59f21 Fix gitignore 2020-11-27 12:25:06 +02:00
Taras Machyshyn 326b6c8c53 Merge branch 'hotfix/6.0.7' of https://github.com/espocrm/espocrm into hotfix/6.0.7 2020-11-27 12:16:34 +02:00
Taras Machyshyn 7ebf0e7bf8 Fix installer for PHP 8 2020-11-27 12:16:01 +02:00
Yuri Kuznetsov 014df8b9d3 Merge branch 'hotfix/6.0.7' of github.com:espocrm/espocrm into hotfix/6.0.7 2020-11-27 12:12:28 +02:00
Yuri Kuznetsov 6d85055147 fix loaders 2020-11-27 12:12:16 +02:00
Taras Machyshyn 077f7d8855 Fix installer for PHP 8 2020-11-27 12:03:04 +02:00
Taras Machyshyn 296484360f Fix installer for PHP 8 2020-11-27 11:03:40 +02:00
Yuri Kuznetsov 08fa801878 htmlizer injectable factory 2020-11-26 13:13:38 +02:00
Yuri Kuznetsov 426260de00 Merge branch 'master' of github.com:espocrm/espocrm 2020-11-26 13:01:44 +02:00
Yuri Kuznetsov 86ff40e408 Merge branch 'hotfix/6.0.7' 2020-11-26 13:01:29 +02:00
Yuri Kuznetsov 1071f8a045 v 2020-11-26 12:09:45 +02:00
Yuri Kuznetsov 962d3a049c disable edit access to user email address 2020-11-26 09:44:22 +02:00
Yuri Kuznetsov 4272376278 tab groups 2020-11-25 13:47:48 +02:00
Yuri Kuznetsov 3d2857eec2 Update CONTRIBUTING.md 2020-11-25 13:45:48 +02:00
Yuri Kuznetsov 4c0298aed9 Update CONTRIBUTING.md 2020-11-25 13:44:27 +02:00
Yuri Kuznetsov 161859606a ceanup 2020-11-21 14:20:14 +02:00
Yuri Kuznetsov a71df0cff6 fix layout 2020-11-20 09:52:54 +02:00
Yuri Kuznetsov e9917f4fca Merge branch 'stable' 2020-11-18 13:28:49 +02:00
Yuri Kuznetsov fb9ff0b8c0 fix deprecated 2020-11-18 13:16:24 +02:00
Yuri Kuznetsov d1a62baa12 fix deprecated 2020-11-18 12:53:17 +02:00
Yuri Kuznetsov cdec7ccfe8 v 2020-11-18 11:34:14 +02:00
Yuri Kuznetsov 25bc3a40f7 fix export currency 2020-11-18 09:41:54 +02:00
Yuri Kuznetsov 826ba4c97c app info improvements 2020-11-17 12:51:22 +02:00
Yuri Kuznetsov 5ef73d3c08 fix typo 2020-11-17 11:49:20 +02:00
Yuri Kuznetsov 26e1d1d81d di binding 2020-11-17 11:35:41 +02:00
Yuri Kuznetsov a76f5498cb Merge branch 'stable' 2020-11-16 15:00:33 +02:00
Yuri Kuznetsov 02e5c1fc44 v 2020-11-16 13:40:49 +02:00
Yuri Kuznetsov 844e9dd8e3 Merge branch 'hotfix/6.0.5' of github.com:espocrm/espocrm into hotfix/6.0.5 2020-11-16 13:38:16 +02:00
Yuri Kuznetsov 39f2ec83d5 fix duplicate attachments multiple 2020-11-16 13:35:53 +02:00
Taras Machyshyn e4d2af03a5 Fixed PHP binary path 2020-11-16 13:34:24 +02:00
Taras Machyshyn 37616d69bf Merge branch 'hotfix/6.0.5' of https://github.com/espocrm/espocrm into hotfix/6.0.5 2020-11-16 13:28:03 +02:00
Taras Machyshyn 4e36f71dd8 Fixed PHP binary path 2020-11-16 13:27:16 +02:00
Yuri Kuznetsov b5877ac32a fix person name 2020-11-16 13:03:56 +02:00
Yuri Kuznetsov 66075b3d9d Merge branch 'master' of github.com:espocrm/espocrm 2020-11-16 11:26:03 +02:00
Yuri Kuznetsov 524773f855 update packages 2020-11-16 11:25:18 +02:00
Yuri Kuznetsov 92de588a6e update npm packages 2020-11-16 11:07:12 +02:00
Yuri Kuznetsov 700f4b5b10 fix export 2020-11-14 10:24:22 +02:00
Yuri Kuznetsov 9c0a7b6778 app service changes 2020-11-13 12:39:27 +02:00
Yuri Kuznetsov 9a54c66f68 preferences fixes 2020-11-13 12:32:13 +02:00
Yuri Kuznetsov 83332178a0 fix acl check command 2020-11-12 15:05:03 +02:00
Yuri Kuznetsov 2935118dab repository: calling updateFetchedValues always after save 2020-11-10 13:17:36 +02:00
Yuri Kuznetsov fb33c2acf1 fix task panel layout 2020-11-10 12:48:40 +02:00
Yuri Kuznetsov 989d431acf auth token manager 2020-11-10 10:51:50 +02:00
Yuri Kuznetsov 3c5914b5d9 fix text filter by foreign field 2020-11-10 09:22:20 +02:00
Taras Machyshyn 8c48f72a3c Command fix 2020-11-09 15:16:30 +02:00
Yuri Kuznetsov 2d385c163f entity manager page 2020-11-05 14:12:57 +02:00
Yuri Kuznetsov 4e1e6bf776 search apply button 2020-11-04 14:23:11 +02:00
Taras Machyshyn a8ce780718 Upgrade fix 2020-11-04 10:23:07 +02:00
Yuri Kuznetsov 0d50bc9563 Merge branch 'hotfix/6.0.4' 2020-11-03 16:44:40 +02:00
Yuri Kuznetsov 31eff86578 fix link search blur 2020-11-03 16:44:20 +02:00
Yuri Kuznetsov 35cefea3a8 cleanup and cs fix 2020-11-03 12:51:10 +02:00
Yuri Kuznetsov 4fc7700e7e Merge branch 'master' of https://github.com/espocrm/espocrm 2020-11-03 12:25:51 +02:00
Yuri Kuznetsov 3b2c776060 Merge branch 'hotfix/6.0.4' 2020-11-03 12:25:38 +02:00
Yuri Kuznetsov 892f9f01f6 export xlsx currency format 2020-11-03 10:43:33 +02:00
Yuri Kuznetsov 860a58847d currency format 10 $ 2020-11-03 10:03:12 +02:00
Yuri Kuznetsov 103e67ab8e Merge branch 'hotfix/6.0.4' 2020-11-02 12:56:14 +02:00
Yuri Kuznetsov 1ed90d2306 v 2020-11-02 12:55:01 +02:00
Yuri Kuznetsov aff0b350f3 fix portal runner 2020-11-02 12:54:13 +02:00
Yuri Kuznetsov 72256e7f8b fix notifications 2020-11-02 12:50:31 +02:00
Yuri Kuznetsov 8cdbcdcb8c kanban order 2020-11-02 12:28:19 +02:00
Yuri Kuznetsov 218dba2c78 Merge branch 'hotfix/6.0.4' 2020-11-02 12:24:30 +02:00
Yuri Kuznetsov 68b8230b99 popup notifications grouped request 2020-11-02 12:24:03 +02:00
Yuri Kuznetsov 9d872c3fd7 cs fix 2020-11-02 11:13:06 +02:00
Yuri Kuznetsov 651b0be5ed add log to slim 2020-10-31 13:38:11 +02:00
Yuri Kuznetsov cead33c09d template manager image 2020-10-30 09:26:37 +02:00
Yuri Kuznetsov 80602c084f fix pdf page number 2020-10-29 16:34:49 +02:00
Yuri Kuznetsov 9f2b2de261 Merge branch 'stable' 2020-10-28 13:26:46 +02:00
Yuri Kuznetsov b0420b8b93 fix email folder 2020-10-28 13:19:49 +02:00
Yuri Kuznetsov b47018cbab hide email menu items in portal 2020-10-28 11:58:44 +02:00
Yuri Kuznetsov ea69ab6eaf v 2020-10-28 11:12:51 +02:00
Eymen Elkum 92887401b2 address view remove duplicated codes (#1823) 2020-10-28 11:10:52 +02:00
Yuri Kuznetsov df0bda6324 Merge branch 'hotfix/6.0.3' of github.com:espocrm/espocrm into hotfix/6.0.3 2020-10-28 11:05:37 +02:00
Yuri Kuznetsov 9d67808496 fix tester 2020-10-28 11:02:24 +02:00
Yuri Kuznetsov cf33a98f20 fix activities and select manager 2020-10-27 17:04:49 +02:00
Yuri Kuznetsov afbda344ec fix export specific fields 2020-10-27 14:25:47 +02:00
Yuri Kuznetsov 1079597584 fix 2fa 2020-10-27 14:13:00 +02:00
Yuri Kuznetsov 8110b7ba4b Merge branch 'stable' 2020-10-27 12:45:51 +02:00
Yuri Kuznetsov af9b411a4c diff all patch versions 2020-10-27 12:07:39 +02:00
Yuri Kuznetsov cd49d951d8 v 2020-10-27 11:59:55 +02:00
Yuri Kuznetsov 7d63c114aa fix export all fields 2020-10-27 11:06:52 +02:00
Yuri Kuznetsov af6f05ba07 formula fix logical operator priority 2020-10-27 10:31:42 +02:00
Yuri Kuznetsov 46f8eb0cdb formula fix logical not 2020-10-27 10:23:03 +02:00
Pomazan Bogdan c543bb5a5b Update Admin.json (#1814) 2020-10-26 15:36:46 +02:00
Pomazan Bogdan 95ed02f0e4 Update Admin.json (#1814) 2020-10-26 15:34:51 +02:00
Yuri Kuznetsov 87e94bc5a7 Merge branch 'master' of github.com:espocrm/espocrm 2020-10-26 14:58:18 +02:00
Yuri Kuznetsov d1997089e4 v 2020-10-26 13:06:11 +02:00
Yuri Kuznetsov 57dd0177f9 fix export 2020-10-25 18:56:57 +02:00
Yuri Kuznetsov ba76e5ee3d fix language manager 2020-10-25 18:54:34 +02:00
Yuri Kuznetsov b757f18d53 kanban refactoring 2020-10-24 17:23:48 +03:00
Yuri Kuznetsov 76c93b842c case close reject actions only if available in status list 2020-10-23 10:25:26 +03:00
Yuri Kuznetsov e73bff5ddf v 2020-10-22 12:14:40 +03:00
Yuri Kuznetsov 7d5c0d754e fix upgrade script 2020-10-22 11:47:59 +03:00
Taras Machyshyn e08a74b129 Bug fixes 2020-10-22 11:30:00 +03:00
Taras Machyshyn be07aafaf4 Fix 2020-10-21 15:33:42 +03:00
Taras Machyshyn e2bf27e524 Fix 2020-10-21 12:00:47 +03:00
Yuri Kuznetsov b0157adbe2 cs fix 2020-10-21 09:40:34 +03:00
Yuri Kuznetsov 239593afb5 fix mass actions 2020-10-21 09:31:42 +03:00
Yuri Kuznetsov b97d764588 fix error msg 2020-10-19 15:30:36 +03:00
Yuri Kuznetsov bf8e7af984 export fixes 2020-10-19 15:19:24 +03:00
Yuri Kuznetsov bf68c475e5 email queue items filters email 2020-10-19 13:37:06 +03:00
Yuri Kuznetsov 29624239ba search queue items 2020-10-19 13:35:43 +03:00
Yuri Kuznetsov 4cb3c4918b campaign log search by email address 2020-10-19 12:59:36 +03:00
Yuri Kuznetsov 26fa0d65e1 fix campaign log search 2020-10-19 12:57:17 +03:00
Yuri Kuznetsov 958baed3df fix email invalid on bounced 2020-10-19 12:35:48 +03:00
Yuri Kuznetsov 40d6fb7565 fix export 2020-10-15 19:40:37 +03:00
Yuri Kuznetsov a7551b7dbf fix request getContentType 2020-10-15 17:35:58 +03:00
Yuri Kuznetsov 9ed33c4dc4 remove self assign in portal 2020-10-14 16:23:02 +03:00
Yuri Kuznetsov 6b18fbe8f7 select manager fix 2020-10-14 15:48:52 +03:00
Yuri Kuznetsov 53b9880ea8 entry point changes 2020-10-14 15:15:09 +03:00
Yuri Kuznetsov 62538664df Merge branch 'master' of github.com:espocrm/espocrm 2020-10-14 13:17:56 +03:00
Yuri Kuznetsov f678fb16cc ouauth callback changes 2020-10-14 13:17:46 +03:00
Yuri Kuznetsov fe09aa1cd9 cs fix 2020-10-13 11:01:52 +03:00
Yuri Kuznetsov 710decc610 fix htmlizer and email template no id 2020-10-13 10:47:37 +03:00
Yuri Kuznetsov 5d481d3528 email auto reply error log 2020-10-13 10:47:27 +03:00
Yuri Kuznetsov 8bcd3b72c5 hook fix 2020-10-13 09:56:13 +03:00
Yuri Kuznetsov 0a0da810e9 application state changes 2020-10-13 09:56:04 +03:00
Yuri Kuznetsov e630c046fe Merge branch 'hotfix/5.9.5' 2020-10-12 14:01:49 +03:00
Yuri Kuznetsov 2857b5c53d fix import button 2020-10-12 14:00:25 +03:00
Yuri Kuznetsov 0965c61f55 fix reminder submition 2020-10-12 10:14:17 +03:00
Yuri Kuznetsov 9dd318b176 fix label 2020-10-10 16:08:58 +03:00
Yuri Kuznetsov f8beca720c label fixes 2020-10-10 16:06:57 +03:00
Yuri Kuznetsov d8f58dcc1d upgrade cleanup 2020-10-09 14:58:34 +03:00
Yuri Kuznetsov 32aaaa350e v 2020-10-09 14:37:50 +03:00
Yuri Kuznetsov 0f6d1c6817 fix diff: ignore upgrades 2020-10-09 13:56:41 +03:00
Yuri Kuznetsov 8c5a342a5a fix diff 2020-10-09 13:53:07 +03:00
Yuri Kuznetsov 257401898b upgrade cleanup files and fix msg 2020-10-09 12:24:24 +03:00
Yuri Kuznetsov e7ff3f903a fix email modal 2020-10-08 14:05:28 +03:00
Taras Machyshyn 6f82638b5d Upgrade script 2020-10-07 17:46:08 +03:00
Taras Machyshyn 0625ce51c4 Upgrade script 2020-10-07 17:26:11 +03:00
Taras Machyshyn f5670436d0 Merge branch 'master' of https://github.com/espocrm/espocrm 2020-10-07 17:19:05 +03:00
Taras Machyshyn 5d20a56ac8 Upgrade script 2020-10-07 17:18:34 +03:00
Yuri Kuznetsov 020cf9713a Merge branch 'master' of https://github.com/espocrm/espocrm 2020-10-07 16:49:33 +03:00
Yuri Kuznetsov fe1361fc9c portal action list restriction 2020-10-07 16:49:01 +03:00
Taras Machyshyn 36621be496 Merge branch 'master' of https://github.com/espocrm/espocrm 2020-10-07 15:51:31 +03:00
Taras Machyshyn 25690030d1 Installation fixes 2020-10-07 15:50:57 +03:00
Yuri Kuznetsov fcd6be3a0c fix password recovery 2020-10-07 15:39:03 +03:00
Yuri Kuznetsov ad8dfa487c fix convert lead 2020-10-07 15:13:39 +03:00
Yuri Kuznetsov 7f6f54628d cs fix 2020-10-07 15:04:42 +03:00
Taras Machyshyn 8ea0b072c6 Installation fixes 2020-10-07 14:22:21 +03:00
Yuri Kuznetsov 0df6248226 getPhpSafeContents for unix 2020-10-07 13:12:55 +03:00
Yuri Kuznetsov 26a132658e date after before validation autocomplete 2020-10-07 12:42:51 +03:00
Yuri Kuznetsov d02529ee86 Merge branch 'hotfix/5.9.5' 2020-10-07 11:02:01 +03:00
Yuri Kuznetsov 0cec0fef51 fix image orientation 2020-10-07 11:01:32 +03:00
Yuri Kuznetsov e56f6ab75d fix image orientation 2020-10-07 10:55:39 +03:00
Yuri Kuznetsov a4980aa8f2 cs fix 2020-10-07 10:53:21 +03:00
Yuri Kuznetsov fd219b49be calendar modal fix 2020-10-06 13:44:35 +03:00
Yuri Kuznetsov b90579aadc cs fix 2020-10-06 13:44:18 +03:00
Yuri Kuznetsov 0b39d7f6b6 cs fix 2020-10-06 12:13:17 +03:00
Yuri Kuznetsov a44ce06162 Merge branch 'master' of https://github.com/espocrm/espocrm 2020-10-06 12:02:35 +03:00
Yuri Kuznetsov f1eb2ab5d5 cs fix 2020-10-06 12:00:48 +03:00
Yuri Kuznetsov 9a965bfba4 v 2020-10-05 15:27:48 +03:00
Yuri Kuznetsov 7349f37786 fix admin panel 2020-10-05 12:21:11 +03:00
Yuri Kuznetsov 3d03dfaef7 css fix 2020-10-03 19:01:19 +03:00
Yuri Kuznetsov 5bf88eaff1 categories tree improvements 2020-10-03 18:59:56 +03:00
Yuri Kuznetsov f3c4b2ba39 image preview improvements 2020-10-03 17:24:05 +03:00
Yuri Kuznetsov 92f6fb4588 settings tooltips 2020-10-03 12:27:54 +03:00
Yuri Kuznetsov 2d6d7fd618 list tree css fix 2020-10-02 14:57:26 +03:00
Yuri Kuznetsov 3a1d997d5a orm cleanup 2020-10-01 20:18:35 +03:00
Yuri Kuznetsov 5bbb259c95 orm fix order list 2020-10-01 20:16:32 +03:00
Yuri Kuznetsov b8e44767b3 upgrade real estate compatibility check 2020-10-01 16:27:46 +03:00
Yuri Kuznetsov 6b486beb5c fix autoload 2020-10-01 14:25:12 +03:00
Yuri Kuznetsov aab1265e4e data cache get safe contents 2020-10-01 14:08:03 +03:00
Yuri Kuznetsov 676181a4be fix ldap 2020-10-01 13:32:06 +03:00
Yuri Kuznetsov 839e5b7c74 data cache support onlt array and stdclass 2020-10-01 12:51:25 +03:00
Yuri Kuznetsov aff7003ceb cs fix 2020-10-01 12:01:51 +03:00
Yuri Kuznetsov 66aa60f303 file rename in loop for windows 2020-10-01 11:44:01 +03:00
Yuri Kuznetsov b196811cf9 fix notice 2020-10-01 10:24:36 +03:00
Yuri Kuznetsov 3fdddadd53 cs fix 2020-09-30 17:42:07 +03:00
Yuri Kuznetsov 7af2d1d3ac v 2020-09-30 15:00:22 +03:00
Yuri Kuznetsov 63670e3245 ldap fix 2020-09-30 12:24:36 +03:00
Yuri Kuznetsov 389931bf22 cs fix 2020-09-30 12:24:31 +03:00
Yuri Kuznetsov 76a67d15a3 ldap fix 2020-09-30 12:18:17 +03:00
Yuri Kuznetsov 8e65f2d375 cleanup 2020-09-30 12:17:58 +03:00
Yuri Kuznetsov 56737f5d67 ldap fix 2020-09-30 12:04:22 +03:00
Yuri Kuznetsov 20f8fae2f0 fix email import 2020-09-30 10:16:58 +03:00
Yuri Kuznetsov 17b5d77d33 fix json function 2020-09-30 09:44:45 +03:00
Yuri Kuznetsov cbe32c88b6 email: move to folder from trash 2020-09-30 09:18:22 +03:00
Yuri Kuznetsov dee291f3f6 email folder select modal css fix 2020-09-30 09:13:59 +03:00
Yuri Kuznetsov 0b20c8e13f fix docs link 2020-09-29 15:16:32 +03:00
Yuri Kuznetsov c0af0173e9 json retrieve function 2020-09-29 13:28:39 +03:00
Yuri Kuznetsov 79f4c4b5d2 cs fix 2020-09-29 13:07:48 +03:00
Yuri Kuznetsov 31c8be2ee1 cs fixes 2020-09-29 10:06:49 +03:00
Yuri Kuznetsov 061b237032 portal fixes 2020-09-29 10:05:54 +03:00
Yuri Kuznetsov d3466e201d fix 2020-09-29 09:38:43 +03:00
Taras Machyshyn c69c7d2194 Added new options in upgrade command 2020-09-28 19:46:19 +03:00
Yuri Kuznetsov 05e1624e47 fix notice 2020-09-28 16:04:18 +03:00
Yuri Kuznetsov 03e32412ca varchar 150 max length by default 2020-09-28 15:25:58 +03:00
Yuri Kuznetsov 451a2376a8 fix field manager 2020-09-28 15:22:38 +03:00
Yuri Kuznetsov 167c774446 email: only read access in poral roles 2020-09-28 15:11:08 +03:00
Yuri Kuznetsov 054262a002 fix tester 2020-09-28 13:10:26 +03:00
Yuri Kuznetsov ecbc3c537f cs fix 2020-09-28 12:57:25 +03:00
Yuri Kuznetsov d51bbfdfab fix portal role clear cache 2020-09-28 12:36:09 +03:00
Yuri Kuznetsov ae343cddbe fix dashlet layout field 2020-09-28 12:20:38 +03:00
Yuri Kuznetsov bb03fec604 portal index refactoring 2020-09-25 15:13:37 +03:00
Yuri Kuznetsov 248c9a6b00 entry point route detection 2020-09-25 14:46:18 +03:00
Yuri Kuznetsov dec5e0be5f cs fix 2020-09-25 13:26:22 +03:00
Yuri Kuznetsov bcbb29d94e fix portal list view url 2020-09-25 13:09:17 +03:00
Yuri Kuznetsov 3e2f995ba8 v 2020-09-25 12:39:50 +03:00
Yuri Kuznetsov 56b3b9d94d Merge branch 'master' of github.com:espocrm/espocrm 2020-09-25 12:16:01 +03:00
Yuri Kuznetsov 9b2ac0d443 fix record grid 2020-09-25 12:15:48 +03:00
Yuri Kuznetsov 3ee78c29cb cs fixes 2020-09-25 10:24:14 +03:00
Yuri Kuznetsov 548e829f2f cs fix 2020-09-25 10:16:05 +03:00
Taras Machyshyn 749c161aaa Upgrade fixes 2020-09-23 19:31:52 +03:00
Yuri Kuznetsov aee6b99a47 fix language 2020-09-23 15:45:26 +03:00
Yuri Kuznetsov 700262e07b cleanup 2020-09-23 12:37:50 +03:00
Yuri Kuznetsov c4cd9d3ee8 manual merge 2020-09-23 12:23:56 +03:00
Yuri Kuznetsov 235d8f2264 package lock version 2020-09-23 11:14:29 +03:00
Yuri Kuznetsov 6268f84b45 upgrade command fixes 2020-09-23 10:36:00 +03:00
Yuri Kuznetsov e2b49931c3 Merge branch 'hotfix/5.9.4' 2020-09-23 10:18:25 +03:00
Yuri Kuznetsov 9cfab5a7ea upgrade fix 2020-09-23 10:17:07 +03:00
Yuri Kuznetsov 66114e4748 bc fix 2020-09-22 15:38:30 +03:00
Yuri Kuznetsov 4ea9868285 email account fixes 2020-09-22 15:24:49 +03:00
Yuri Kuznetsov 2c09eacbd4 fix bc 2020-09-22 14:48:40 +03:00
Yuri Kuznetsov 2d5c01f25d fix upgrade 2020-09-22 13:20:32 +03:00
Yuri Kuznetsov 9610695701 fix email account 2020-09-22 10:01:00 +03:00
Yuri Kuznetsov b7062a2b75 imap: support tls 2020-09-22 09:53:01 +03:00
Yuri Kuznetsov 3100d43af0 Merge branch 'master' of https://github.com/espocrm/espocrm 2020-09-21 17:41:12 +03:00
Yuri Kuznetsov 53606cbde5 cs fix 2020-09-21 17:40:56 +03:00
Yuri Kuznetsov ca6d1d24f4 fix tests 2020-09-21 15:24:27 +03:00
Yuri Kuznetsov 928a8c75e8 data cache usage 2020-09-21 15:12:35 +03:00
Yuri Kuznetsov 693df2d6fb data cache usage 2020-09-21 14:43:36 +03:00
Yuri Kuznetsov bc3cea0b86 Data Cache usage 2020-09-21 14:14:59 +03:00
Yuri Kuznetsov feba3cd05e fix varexport 2020-09-21 12:02:54 +03:00
Yuri Kuznetsov e6b31b8c45 data cache usage 2020-09-21 11:48:49 +03:00
Yuri Kuznetsov 79efc87ed2 data cache usage 2020-09-21 11:40:26 +03:00
Yuri Kuznetsov e17b88ca74 data cache usage 2020-09-21 11:30:07 +03:00
Yuri Kuznetsov 0020a5ea4a data cache usage 2020-09-21 11:20:56 +03:00
Yuri Kuznetsov 5778167b01 amend 2020-09-21 11:18:39 +03:00
Yuri Kuznetsov 2b11414445 var export fix 2020-09-21 11:16:23 +03:00
Yuri Kuznetsov e7b51ef61d using data cache 2020-09-20 20:44:09 +03:00
Yuri Kuznetsov ca969ee79b change metadata loader 2020-09-20 20:12:55 +03:00
Yuri Kuznetsov 9ff62f9e28 cs fix 2020-09-20 16:57:48 +03:00
Yuri Kuznetsov 5c5cbf2933 fix test 2020-09-20 16:10:28 +03:00
Yuri Kuznetsov 91c5caee63 DataCache util 2020-09-20 15:56:03 +03:00
Yuri Kuznetsov 7aa439efbb comments fix 2020-09-20 14:04:08 +03:00
Yuri Kuznetsov 7baf49aa7e cs fix 2020-09-19 23:59:59 +03:00
Yuri Kuznetsov d7476c1de8 fix class parser 2020-09-19 16:43:07 +03:00
Yuri Kuznetsov d3e99a6de8 cron manager fix 2020-09-19 16:28:31 +03:00
Yuri Kuznetsov 893f9d50c3 cs fixes and array values cleanup 2020-09-19 16:19:55 +03:00
Yuri Kuznetsov a565766fcb cs fix 2020-09-19 15:46:49 +03:00
Yuri Kuznetsov 89e517e47b array value: use transactions 2020-09-19 15:45:15 +03:00
Yuri Kuznetsov 39d51bb68f cs fix 2020-09-19 14:20:52 +03:00
Yuri Kuznetsov 5e3168039a emailaddress phonenumber repository fixes 2020-09-19 14:00:07 +03:00
Yuri Kuznetsov f75062694f rebuild fixes 2020-09-18 17:27:02 +03:00
Yuri Kuznetsov cb3c3f18ee css changes 2020-09-18 15:07:42 +03:00
Yuri Kuznetsov 2415b29d45 css change 2020-09-18 14:40:06 +03:00
Yuri Kuznetsov 7fb162be77 dashboard fixes 2020-09-18 11:38:57 +03:00
Yuri Kuznetsov bf93834fd3 refactoring 2020-09-17 20:17:07 +03:00
Yuri Kuznetsov 63452d1bb2 update bull 2020-09-17 17:46:57 +03:00
Yuri Kuznetsov 5e26dbd870 preload gridstack 2020-09-17 17:23:45 +03:00
Yuri Kuznetsov fb782d67ed loader improvement 2020-09-17 17:23:30 +03:00
Yuri Kuznetsov 864c91cd18 css fix 2020-09-17 16:54:17 +03:00
Yuri Kuznetsov 038479564b update gridstack 2020-09-17 16:50:14 +03:00
Yuri Kuznetsov 08c0dfc4ef fix dashboard template 2020-09-17 16:32:41 +03:00
Yuri Kuznetsov 019291b707 css changes 2020-09-17 14:36:59 +03:00
Yuri Kuznetsov 1d84bbb548 fix warning 2020-09-17 12:52:18 +03:00
Yuri Kuznetsov 5ceb5c848e field converer class name in metadata 2020-09-17 11:14:13 +03:00
Yuri Kuznetsov b00e94bae9 get rid of phone and email attribute types 2020-09-17 10:57:10 +03:00
Yuri Kuznetsov 46f6584577 lead capture tool 2020-09-17 10:46:51 +03:00
Yuri Kuznetsov e3c651fcb9 Merge branch 'hotfix/5.9.4' 2020-09-16 13:46:29 +03:00
Yuri Kuznetsov 86a85ba177 Merge branch 'hotfix/5.9.4' of github.com:espocrm/espocrm into hotfix/5.9.4 2020-09-16 13:45:25 +03:00
Yuri Kuznetsov 36a4cb2451 fix formula int parsing 2020-09-16 13:44:56 +03:00
Yuri Kuznetsov ab726e9490 fix formula int parsing 2020-09-16 13:43:46 +03:00
Yuri Kuznetsov b9f75395b6 fix portal route 2020-09-16 13:03:02 +03:00
Yuri Kuznetsov c0e4f83d83 fix mention hook 2020-09-16 12:53:28 +03:00
Yuri Kuznetsov 08e94694b2 fix lead capture 2020-09-16 12:51:13 +03:00
Yuri Kuznetsov 5112fd4fd3 fix export csv 2020-09-16 12:16:55 +03:00
Yuri Kuznetsov 2aafc6a82e test email error message 2020-09-16 11:51:23 +03:00
Yuri Kuznetsov 1f200d53f8 fix import update foreign 2020-09-16 11:07:32 +03:00
Yuri Kuznetsov 77a5c75007 orm: fix insert query 2020-09-16 10:50:58 +03:00
Yuri Kuznetsov c44d4357a7 fix foreign phone number 2020-09-15 17:27:56 +03:00
Yuri Kuznetsov 2bf70e88ba fix repository usage 2020-09-15 15:29:09 +03:00
Yuri Kuznetsov 442bb998e4 Merge branch 'hotfix/5.9.4' 2020-09-15 14:34:22 +03:00
Eymen Elkum 6f60a73c62 minor fix (#1785) 2020-09-15 14:33:53 +03:00
Yuri Kuznetsov 106a5a77e7 upgrade extension check 2020-09-15 13:48:51 +03:00
Yuri Kuznetsov 2f3f13f34c list view image fit height 2020-09-15 13:34:06 +03:00
Yuri Kuznetsov bc4a9a07b6 diff deleted fix 2020-09-15 12:53:45 +03:00
Yuri Kuznetsov 5ca5ee55ee fix diff 2020-09-15 12:25:18 +03:00
Yuri Kuznetsov 08636b550f upgrade cli check 2020-09-15 11:25:49 +03:00
Yuri Kuznetsov b2aab26ded Merge branch 'master' of https://github.com/espocrm/espocrm 2020-09-15 11:01:58 +03:00
Yuri Kuznetsov 6d629d40e6 upgrade 6.0 changes 2020-09-15 11:01:41 +03:00
Yuri Kuznetsov 6e433ec9a4 diff fix 2020-09-15 10:43:26 +03:00
Yuri Kuznetsov 802a0229fa comment 2020-09-14 12:59:32 +03:00
Yuri Kuznetsov 41b4b86033 acl manager fix 2020-09-14 12:56:06 +03:00
Yuri Kuznetsov 63dca2712b fix action history 2020-09-14 12:40:14 +03:00
Yuri Kuznetsov e06d104e10 bc fix 2020-09-14 12:15:09 +03:00
Yuri Kuznetsov 4ab2ee875e fix task 2020-09-14 11:55:58 +03:00
Yuri Kuznetsov ac8debbb4b cs fixes and docs 2020-09-12 09:40:56 +03:00
Yuri Kuznetsov 8a7a2071b6 refactoring and route duplicate check 2020-09-11 22:59:11 +03:00
Yuri Kuznetsov df471cf5a0 small fix 2020-09-11 17:29:15 +03:00
Yuri Kuznetsov 79665cc552 remove route duplicate check and cleanup 2020-09-11 17:23:59 +03:00
Taras Machyshyn 9c6932b124 Router fixes 2020-09-11 16:59:39 +03:00
Yuri Kuznetsov 4e30caf894 cleanup 2020-09-11 14:02:57 +03:00
Yuri Kuznetsov 1bbff54c07 orm usage fix 2020-09-11 13:41:44 +03:00
Yuri Kuznetsov 81ccf2a860 acceptance status fix 2020-09-11 13:32:12 +03:00
Yuri Kuznetsov 463007b218 refactor error output 2020-09-11 13:07:19 +03:00
Yuri Kuznetsov ee53fffc67 refactor route processing 2020-09-11 12:33:35 +03:00
Taras Machyshyn 63351ed6b7 Integration tests fixes 2020-09-10 18:12:22 +03:00
Yuri Kuznetsov 87ba6f6ccc fix bc 2020-09-10 17:13:52 +03:00
Yuri Kuznetsov efeceb3a5b fix admin ui 2020-09-10 16:56:14 +03:00
Yuri Kuznetsov bb6fddad09 fix import 2020-09-10 16:49:41 +03:00
Yuri Kuznetsov def9f6b70c cs fix 2020-09-10 16:34:02 +03:00
Yuri Kuznetsov 95bbbb1daa fix record service 2020-09-10 16:10:23 +03:00
Yuri Kuznetsov 0c759b9016 fix additionalTables 2020-09-10 16:03:34 +03:00
Yuri Kuznetsov cb2d2dd363 code style fix 2020-09-10 12:54:24 +03:00
Taras Machyshyn 88948c4b66 BeforeUpgrade script 2020-09-10 12:35:42 +03:00
Yuri Kuznetsov 799626cfdc entity deprecated log 2020-09-10 12:13:47 +03:00
Yuri Kuznetsov ab82a8748f fix orm usage and cs fix 2020-09-10 11:12:21 +03:00
Yuri Kuznetsov 6f78840aec orm usage fix 2020-09-10 11:00:50 +03:00
Yuri Kuznetsov b94dc3c733 cs fix 2020-09-10 10:59:56 +03:00
Yuri Kuznetsov de3c6bc45b cs fix 2020-09-10 10:34:45 +03:00
Yuri Kuznetsov c17ae13fcf language functions 2020-09-10 10:29:36 +03:00
Yuri Kuznetsov e936ecbabd duplicate ui fix 2020-09-10 10:20:33 +03:00
Yuri Kuznetsov 0f5105fee2 upgrade cleanup 2020-09-09 16:44:10 +03:00
Yuri Kuznetsov 07571ecc32 Merge branch 'master' of https://github.com/espocrm/espocrm 2020-09-09 16:43:21 +03:00
Yuri Kuznetsov 3a4bc97abb revert 2020-09-09 16:43:12 +03:00
Taras Machyshyn 412966d8d0 Upgrade script: fixes 2020-09-09 16:10:46 +03:00
Taras Machyshyn d8bf6048c1 Upgrade script: check MyISAM 2020-09-09 15:49:58 +03:00
Yuri Kuznetsov f13f72ea16 fix upgrade 2020-09-09 15:11:46 +03:00
Yuri Kuznetsov a7818227bd fixes 2020-09-09 12:36:37 +03:00
Yuri Kuznetsov a4c45ecdcd fix grunt 2020-09-09 12:15:48 +03:00
Yuri Kuznetsov a21671f1b7 entityManagerProxy 2020-09-09 12:09:09 +03:00
Yuri Kuznetsov 3fc0349550 fixes 2020-09-09 11:37:32 +03:00
Yuri Kuznetsov fa177c41b7 v 2020-09-09 10:24:38 +03:00
Yuri Kuznetsov f3675fb838 Merge branch 'hotfix/5.9.4' 2020-09-08 17:42:43 +03:00
Yuri Kuznetsov 72fd9184f4 fix link manager ui 2020-09-08 17:42:19 +03:00
Yuri Kuznetsov 2196020705 import refactoring 2020-09-08 17:29:59 +03:00
Yuri Kuznetsov 81465a50d6 do not allow sub dirs for services 2020-09-08 16:42:09 +03:00
Yuri Kuznetsov a0ccbfcac5 container cleanup 2020-09-08 16:40:05 +03:00
Yuri Kuznetsov eaa3cf6137 container services cleanup 2020-09-08 16:08:18 +03:00
Yuri Kuznetsov 32d4e2f281 fix orm usage 2020-09-08 15:51:33 +03:00
Yuri Kuznetsov 6454f6843b fix entity manager ui reset to default 2020-09-08 15:48:05 +03:00
Yuri Kuznetsov 22e67d39b0 fix portal preferences layout 2020-09-08 15:29:43 +03:00
Yuri Kuznetsov 7efbf6fd66 fix tests 2020-09-08 13:33:57 +03:00
Yuri Kuznetsov eaf9c97f52 mass email: set teams for sent emails 2020-09-08 12:32:52 +03:00
Yuri Kuznetsov 5f7cee768d cs fixes 2020-09-08 12:27:32 +03:00
Yuri Kuznetsov 9c3b0aa289 console command exit 2020-09-08 12:09:02 +03:00
Yuri Kuznetsov b3bf52bd9b console command no exception 2020-09-08 12:07:58 +03:00
Yuri Kuznetsov 1f07688881 import console command in classes 2020-09-08 12:03:19 +03:00
Yuri Kuznetsov aafa30dbf9 export tool rename 2020-09-08 11:51:24 +03:00
Yuri Kuznetsov e8f2e5efd1 import tool 2020-09-08 11:48:12 +03:00
Yuri Kuznetsov c39e5bc02c fix controller manager 2020-09-08 11:21:53 +03:00
Yuri Kuznetsov 6576b5ef79 tools changes 2020-09-07 17:20:56 +03:00
o-data bec4b2d627 Fix typo error for the word "unsubsribe" (previously: "unsubsbribe") (#1779)
* Update EmailTemplate.json

https://forum.espocrm.com/forum/bug-reports/62259-tipos-in-emailtemplate-create

* Update EmailTemplate.json

https://forum.espocrm.com/forum/bug-reports/62259-tipos-in-emailtemplate-create

* Update EmailTemplate.json

https://forum.espocrm.com/forum/bug-reports/62259-tipos-in-emailtemplate-create

* Update EmailTemplate.json

* Update EmailTemplate.json

https://forum.espocrm.com/forum/bug-reports/62259-tipos-in-emailtemplate-create
2020-09-07 15:42:39 +03:00
Yuri Kuznetsov a36798534d fix 2020-09-07 14:58:33 +03:00
Yuri Kuznetsov dbd945e828 cleanup 2020-09-07 14:56:02 +03:00
Yuri Kuznetsov b5655bf8ee fixes 2020-09-07 14:42:44 +03:00
Yuri Kuznetsov 3637cf4512 list export in tools 2020-09-07 14:20:44 +03:00
Yuri Kuznetsov 4693d2aae8 fix tests 2020-09-07 13:01:06 +03:00
Yuri Kuznetsov ece49bc4dd label manager in tool 2020-09-07 12:50:02 +03:00
Yuri Kuznetsov f60115f18d entity manager in tools 2020-09-07 12:30:59 +03:00
Yuri Kuznetsov 90fdbc872e fieldUtil usage 2020-09-07 09:29:27 +03:00
Yuri Kuznetsov 7d5ad5d030 naming fix 2020-09-07 09:00:53 +03:00
Yuri Kuznetsov bd0e7909a1 field manager hook refactor 2020-09-06 22:30:45 +03:00
Yuri Kuznetsov cf3229a3c9 field manager tool 2020-09-06 22:11:48 +03:00
Yuri Kuznetsov 407f5fa53a classes folder 2020-09-06 15:54:44 +03:00
Yuri Kuznetsov b1edce46ff cs fix 2020-09-06 11:12:52 +03:00
Yuri Kuznetsov 551ed091e7 cleanup 2020-09-04 15:38:37 +03:00
Yuri Kuznetsov 7645fa4e90 emailSender usage and fixes 2020-09-04 15:35:09 +03:00
Yuri Kuznetsov 396ce79d22 cleanup 2020-09-04 15:08:24 +03:00
Yuri Kuznetsov 60ad79fd64 email sending fixes and changes 2020-09-04 15:07:18 +03:00
Yuri Kuznetsov 2c9a6aa456 fix exception 2020-09-04 12:50:18 +03:00
Yuri Kuznetsov 3577dfda9f fix exception 2020-09-04 12:33:37 +03:00
Yuri Kuznetsov 31549f2851 duplicate handling change 2020-09-04 12:08:04 +03:00
Yuri Kuznetsov c8ea3f869e error handling body 2020-09-04 12:07:53 +03:00
Yuri Kuznetsov bc01c9f7c6 error handling fix 2020-09-04 11:26:08 +03:00
Yuri Kuznetsov 592df35acf cs fix 2020-09-04 10:17:15 +03:00
Yuri Kuznetsov 66f98aadf9 email sender test and fixes 2020-09-03 16:24:11 +03:00
Yuri Kuznetsov 17e420f01b email sender refactoring 2020-09-03 15:35:41 +03:00
Yuri Kuznetsov 44f6d57832 fix request 2020-09-03 14:52:34 +03:00
Yuri Kuznetsov ae2cb10382 fix di 2020-09-03 13:47:57 +03:00
Taras Machyshyn d68e08c3fd Merge branch 'master' of https://github.com/espocrm/espocrm 2020-09-03 12:23:43 +03:00
Taras Machyshyn 3921e8c287 Integration tests fixes 2020-09-03 12:22:50 +03:00
Yuri Kuznetsov caf79d1657 email importer refactoring 2020-09-03 12:22:33 +03:00
Yuri Kuznetsov 7477ba64d2 unit tests fixes and changes 2020-09-03 10:35:10 +03:00
Yuri Kuznetsov e006261fcf comment 2020-09-02 18:04:30 +03:00
Yuri Kuznetsov 2ddd9c2fc6 comment 2020-09-02 17:57:37 +03:00
Yuri Kuznetsov 5a7253f89b di service loading checking class correspondance 2020-09-02 17:56:47 +03:00
Yuri Kuznetsov b68bc0f0b8 Merge branch 'master' of https://github.com/espocrm/espocrm 2020-09-02 14:07:17 +03:00
Yuri Kuznetsov edc4984f58 controller short param list 2020-09-02 13:59:48 +03:00
Taras Machyshyn c8a2ca87ba Fixed Integration tests 2020-09-02 13:26:13 +03:00
Yuri Kuznetsov 4dcc9c42c8 cleanup and cs fixes 2020-09-02 11:37:40 +03:00
Yuri Kuznetsov 912fa4a85c fix tests 2020-09-02 11:33:51 +03:00
Yuri Kuznetsov a64a4608be fixes 2020-09-02 11:20:16 +03:00
Yuri Kuznetsov b20773f2f5 update composer 2020-09-02 11:03:11 +03:00
Yuri Kuznetsov f9a440c708 fixes 2020-09-02 10:45:33 +03:00
Yuri Kuznetsov d002768a5f refactoring 2020-09-02 10:09:15 +03:00
Yuri Kuznetsov e0fcb9f225 request getParsedBody 2020-09-01 19:41:41 +03:00
Yuri Kuznetsov a7ed16c72f controller ob_clean and some cs fix 2020-09-01 18:42:29 +03:00
Yuri Kuznetsov 1129d1c145 di refactoring 2020-09-01 17:50:28 +03:00
Yuri Kuznetsov ee599c7ab8 cs fixes and orm usage fixes 2020-09-01 12:26:49 +03:00
Yuri Kuznetsov 1a5be5bf91 cs fix 2020-09-01 11:33:18 +03:00
Yuri Kuznetsov db0020d428 orm usage fixes 2020-09-01 11:28:59 +03:00
Yuri Kuznetsov 138ca4299b fix orm usage 2020-09-01 11:10:46 +03:00
Yuri Kuznetsov e9af1ebd80 comment fix 2020-08-31 20:23:00 +03:00
Yuri Kuznetsov 4d26e404b0 typo fix 2020-08-31 18:02:01 +03:00
Yuri Kuznetsov b41813fa23 bc fix 2020-08-31 17:48:25 +03:00
Yuri Kuznetsov b18796fd45 fix tests 2020-08-31 14:47:50 +03:00
Yuri Kuznetsov d44898ed8c fixes 2020-08-31 13:30:01 +03:00
Yuri Kuznetsov bb246cb4fd fix orm is related 2020-08-31 12:56:08 +03:00
Yuri Kuznetsov 17ceb3e721 fix syntax 2020-08-31 12:12:01 +03:00
Yuri Kuznetsov 8435c579c9 fix next number length index 2020-08-31 12:07:55 +03:00
Yuri Kuznetsov 3b4eb893b6 cleanup 2020-08-29 18:56:35 +03:00
Yuri Kuznetsov 54704bcee6 fixes 2020-08-29 18:39:59 +03:00
Yuri Kuznetsov 8bbfd862e4 cs fix 2020-08-28 16:28:17 +03:00
Yuri Kuznetsov c909de0271 orm quote identifier 2020-08-28 14:47:04 +03:00
Yuri Kuznetsov bd7f80a64e fix 2020-08-28 14:16:20 +03:00
Yuri Kuznetsov 2e15b5b271 orm fixes 2020-08-28 14:15:31 +03:00
Yuri Kuznetsov 0a61820f15 orm sth handling in repository 2020-08-28 13:27:34 +03:00
Yuri Kuznetsov 4b1af45cd6 orm improvements, relation where 2020-08-28 11:25:08 +03:00
Yuri Kuznetsov 756e3fcf39 cleanup 2020-08-27 17:33:53 +03:00
Yuri Kuznetsov bb34ec1be3 cleanup 2020-08-27 17:32:07 +03:00
Yuri Kuznetsov f98b86ae4d websocket app runner 2020-08-27 17:29:41 +03:00
Yuri Kuznetsov eaa9a869f2 cleanup 2020-08-27 16:44:18 +03:00
Yuri Kuznetsov d1f3dbf89b move defaults to resources 2020-08-27 16:41:57 +03:00
Yuri Kuznetsov 58c6208716 di usage 2020-08-27 15:09:14 +03:00
Yuri Kuznetsov 83eb252e82 update cron expression 2020-08-27 15:01:31 +03:00
Yuri Kuznetsov fd7da4d2fc update semver 2020-08-27 14:52:15 +03:00
Yuri Kuznetsov 4f76c98cec cleanup not need methods 2020-08-27 14:37:41 +03:00
Yuri Kuznetsov b7186e5da9 fix contact 2020-08-27 14:22:28 +03:00
Yuri Kuznetsov b3276fb329 update tcpdf 2020-08-27 13:51:57 +03:00
Yuri Kuznetsov 5d2a31e65e preload refactoring 2020-08-27 13:31:10 +03:00
Yuri Kuznetsov 8eaa01f1bc toDb protected 2020-08-27 13:17:22 +03:00
Yuri Kuznetsov 9bee6e12b4 cleanup 2020-08-27 13:14:28 +03:00
Yuri Kuznetsov 50b2de8ce2 get rid off lock table sql 2020-08-27 13:12:44 +03:00
Yuri Kuznetsov 78b9e608e9 locker 2020-08-27 12:58:22 +03:00
Yuri Kuznetsov 944c91d842 rdb transaction manager 2020-08-26 17:19:29 +03:00
Yuri Kuznetsov a936b9fec8 test move 2020-08-26 17:04:36 +03:00
Yuri Kuznetsov 1efdc626e0 more test for transactions 2020-08-26 13:35:20 +03:00
Yuri Kuznetsov afca969668 rdb repository forUpdate 2020-08-26 13:22:58 +03:00
Yuri Kuznetsov f72178f142 transaction integration test 2020-08-26 13:17:53 +03:00
Yuri Kuznetsov 2f4d744078 transaction manager 2020-08-26 12:54:16 +03:00
Yuri Kuznetsov 8563129dd5 select locking 2020-08-26 10:34:30 +03:00
Yuri Kuznetsov ef1427bc95 orm group by string 2020-08-26 09:56:25 +03:00
Yuri Kuznetsov 20c07aaca1 orm fix 2020-08-26 09:37:59 +03:00
Yuri Kuznetsov 4470b3fdec change query update 2020-08-26 09:35:41 +03:00
Yuri Kuznetsov 1e4705d20b Merge branch 'hotfix/5.9.4' 2020-08-25 18:15:10 +03:00
Yuri Kuznetsov 0a5ae621b4 fix complex text 2020-08-25 18:11:38 +03:00
Yuri Kuznetsov 4e588f6d0e cs fix 2020-08-25 18:08:06 +03:00
Yuri Kuznetsov f60c5e29de Merge branch 'hotfix/5.9.4' of https://github.com/espocrm/espocrm into hotfix/5.9.4 2020-08-25 18:04:36 +03:00
Yuri Kuznetsov 1662cfd97d notification form fix 2020-08-25 18:01:15 +03:00
Yuri Kuznetsov 8fdc0ab84d currency rate populate improvement 2020-08-25 17:39:32 +03:00
Yuri Kuznetsov 7c96fd391f account hook 2020-08-25 17:18:16 +03:00
Yuri Kuznetsov 2acbde70cc fix di usage 2020-08-25 16:52:41 +03:00
Yuri Kuznetsov cb7d100315 ditch createSelectQuery usage 2020-08-25 16:08:15 +03:00
Yuri Kuznetsov d96e1bb8a8 refactoring 2020-08-25 15:34:47 +03:00
Yuri Kuznetsov d27a67f567 get rid of createSelectQuery usage 2020-08-25 15:20:52 +03:00
Yuri Kuznetsov 47ae974304 ditch raw sql 2020-08-25 14:56:34 +03:00
Yuri Kuznetsov 6ce168faa2 ditch raw sql 2020-08-25 14:39:28 +03:00
Yuri Kuznetsov f9a8e1d9a7 fix comment 2020-08-25 14:24:54 +03:00
Yuri Kuznetsov 18543534fb ditch createSelectQuery usage 2020-08-25 14:23:29 +03:00
Yuri Kuznetsov 5349bd8d36 ditch raw sql 2020-08-25 14:10:29 +03:00
Yuri Kuznetsov 9a140571c3 ditch raw sql 2020-08-25 13:32:32 +03:00
Yuri Kuznetsov a4e0dc8bb7 ditch raw sql 2020-08-25 12:59:11 +03:00
Yuri Kuznetsov 14788e2a65 ditch sql usage 2020-08-25 12:10:28 +03:00
Yuri Kuznetsov c8118245e4 ditch raw sql 2020-08-25 11:10:06 +03:00
Yuri Kuznetsov fcff23e0c1 ditch raw sql 2020-08-25 11:04:20 +03:00
Yuri Kuznetsov 85f07ca15d ditch raw sql 2020-08-25 10:44:04 +03:00
Yuri Kuznetsov ed5a83c4f2 ditch raw sql 2020-08-25 10:04:40 +03:00
Yuri Kuznetsov 98e3ac0603 ditch raw sql 2020-08-25 09:53:33 +03:00
Yuri Kuznetsov df01ef4e14 ditch raw sql 2020-08-25 09:40:43 +03:00
Yuri Kuznetsov 24a3e6872c ditch raw sql 2020-08-25 09:31:58 +03:00
Yuri Kuznetsov 3d491b63f2 fix sql executor and test 2020-08-25 09:20:17 +03:00
Yuri Kuznetsov 65dda61ff3 orm: select from alias 2020-08-25 08:52:21 +03:00
Yuri Kuznetsov 6d72a784fc fix comment 2020-08-19 21:10:57 +03:00
Yuri Kuznetsov 388e4a71e1 fix name 2020-08-19 21:10:24 +03:00
Yuri Kuznetsov 1f77c6468c orm refactoring 2020-08-19 17:29:36 +03:00
Yuri Kuznetsov a242c283f3 cs fix 2020-08-19 14:16:12 +03:00
Yuri Kuznetsov a09ed79242 cleanup 2020-08-19 14:13:34 +03:00
Yuri Kuznetsov 5116469856 cleanup 2020-08-19 12:55:28 +03:00
Yuri Kuznetsov 81c5583b5c cleanup 2020-08-19 12:51:30 +03:00
Yuri Kuznetsov 9d1233fe24 fix match 2020-08-19 12:50:58 +03:00
Yuri Kuznetsov 43c59f8d3e clearnup 2020-08-19 12:33:06 +03:00
Yuri Kuznetsov 3bebb7ff07 remove raw sql 2020-08-19 12:24:09 +03:00
Yuri Kuznetsov 05409dacde set id for autoincrement after insert 2020-08-19 11:36:49 +03:00
Yuri Kuznetsov 65929eec4b orm renaming 2020-08-18 21:02:49 +03:00
Yuri Kuznetsov 3d7a04be8e query executor method rename 2020-08-18 20:01:13 +03:00
Yuri Kuznetsov 0f1b8ecb39 orm fix 2020-08-18 19:55:14 +03:00
Yuri Kuznetsov 177d48e5a6 orm alias and select sub query 2020-08-18 19:50:10 +03:00
Yuri Kuznetsov 8b6b7dec06 remove raw sql 2020-08-18 17:14:12 +03:00
Yuri Kuznetsov 7011ef7615 cs fix 2020-08-18 15:14:55 +03:00
Yuri Kuznetsov a8beabcd23 remove sql usage 2020-08-18 15:07:47 +03:00
Yuri Kuznetsov c114ee8acb remove raw sql 2020-08-18 14:52:31 +03:00
Yuri Kuznetsov aa121e326b remove raw sql 2020-08-18 14:15:12 +03:00
Yuri Kuznetsov ad0c5a01dd fix 2020-08-18 13:58:54 +03:00
Yuri Kuznetsov b66d60dd7d query builder use index 2020-08-18 13:55:46 +03:00
Yuri Kuznetsov 14993ad169 orm changes 2020-08-18 13:17:40 +03:00
Yuri Kuznetsov dbf7147f22 fix 2020-08-18 13:04:30 +03:00
Yuri Kuznetsov d3a8de29e3 category fix 2020-08-18 13:01:36 +03:00
Yuri Kuznetsov 98c42569ea grand orm improvements 2020-08-18 12:55:32 +03:00
Yuri Kuznetsov 1deebf0833 fix 2020-08-17 18:01:02 +03:00
Yuri Kuznetsov 3bc6b156a2 fix msg 2020-08-17 18:00:02 +03:00
Yuri Kuznetsov 0a52c50c47 cleanup 2020-08-17 17:58:20 +03:00
Yuri Kuznetsov 04c29294d6 fixes 2020-08-17 17:52:01 +03:00
Yuri Kuznetsov 9c28933882 preload 2020-08-17 17:51:49 +03:00
Yuri Kuznetsov a5d8aed6fb app fix 2020-08-17 16:53:29 +03:00
Yuri Kuznetsov 4c52e36a0e test change 2020-08-17 16:27:56 +03:00
Yuri Kuznetsov 7c2403f470 orm fixes 2020-08-17 16:24:08 +03:00
Yuri Kuznetsov 99dfa52915 orm fix 2020-08-17 15:52:25 +03:00
Yuri Kuznetsov 3c5b61eca4 remove sth from relation select builder 2020-08-17 15:48:44 +03:00
Yuri Kuznetsov 2185479c01 changing account filters 2020-08-17 15:18:04 +03:00
Yuri Kuznetsov fcbd48bc49 contact accountId change 2020-08-17 15:13:35 +03:00
Yuri Kuznetsov db03f4f408 fixes 2020-08-17 13:49:20 +03:00
Yuri Kuznetsov 2f0e0d2a3b fix tests 2020-08-17 13:30:03 +03:00
Yuri Kuznetsov 1aeb5639c7 fix syntax 2020-08-17 11:53:30 +03:00
Yuri Kuznetsov d14da8af12 fix test code 2020-08-17 11:53:22 +03:00
Yuri Kuznetsov 38e529ec14 fix tests 2020-08-17 11:14:24 +03:00
Yuri Kuznetsov b44f055013 fix test 2020-08-17 10:34:17 +03:00
Yuri Kuznetsov 18aee37057 remove sql usage, person name field defs changes 2020-08-16 14:55:40 +03:00
Yuri Kuznetsov 83b5b9051d remove sql usage 2020-08-16 13:38:55 +03:00
Yuri Kuznetsov e4141283f1 cleanup 2020-08-16 12:55:50 +03:00
Yuri Kuznetsov 209ad19164 orm fix and remove orm usage 2020-08-16 12:55:12 +03:00
Yuri Kuznetsov 52afb8d9d1 remove orm usage 2020-08-15 14:35:51 +03:00
Yuri Kuznetsov ec6c1b0578 remove orm usage 2020-08-15 14:14:26 +03:00
Yuri Kuznetsov 7e97a9b2a4 fix meeting 2020-08-15 13:08:26 +03:00
Yuri Kuznetsov 8230dd07c4 no sql usage 2020-08-15 13:02:26 +03:00
Yuri Kuznetsov 16e7826981 no sql usage 2020-08-15 12:42:46 +03:00
Yuri Kuznetsov 17b9ae5089 fix bool search 2020-08-15 12:42:07 +03:00
Yuri Kuznetsov 85b38bc0e1 raw sql usage removal 2020-08-15 10:47:50 +03:00
Yuri Kuznetsov ab8a9c8d36 orm changes 2020-08-15 10:47:34 +03:00
Yuri Kuznetsov c8fb6d9805 orm fixes and removing sql usag 2020-08-14 17:26:44 +03:00
Yuri Kuznetsov 35d0d7956d orm custom select 2020-08-14 15:19:02 +03:00
Yuri Kuznetsov 1e6cc7e8a2 custom order 2020-08-14 14:04:03 +03:00
Yuri Kuznetsov 6dff9d06c9 refactoring 2020-08-14 13:45:23 +03:00
Yuri Kuznetsov 6de31ead9d orm custom where clause for fields 2020-08-14 12:25:27 +03:00
Yuri Kuznetsov 6dc8cd7031 query composer refactoring 2020-08-14 11:19:04 +03:00
Yuri Kuznetsov 60209027fc dependeeSelect, get rid of handleSelectParams usage 2020-08-13 18:09:52 +03:00
Yuri Kuznetsov 7d186672ec cleanup and fixes 2020-08-13 16:38:31 +03:00
Yuri Kuznetsov 6dd757e70f comment 2020-08-13 16:04:53 +03:00
Yuri Kuznetsov 56207f7f48 fix 2020-08-13 15:46:09 +03:00
Yuri Kuznetsov bf5dc8a282 refactoring 2020-08-13 15:39:28 +03:00
Yuri Kuznetsov 0ec56ef0d3 relation columnAttributeMap 2020-08-13 15:33:19 +03:00
Yuri Kuznetsov 07b49d0147 orm order by to select if distinct 2020-08-13 12:21:34 +03:00
Yuri Kuznetsov 39d8b8f8ec link multiple fix 2020-08-12 16:59:34 +03:00
Yuri Kuznetsov 50564c5db8 orm fix 2020-08-12 16:36:31 +03:00
Yuri Kuznetsov e9aad35e70 relateById 2020-08-12 15:41:29 +03:00
Yuri Kuznetsov 47d82ac120 fix 2020-08-12 15:13:29 +03:00
Yuri Kuznetsov 4cb7d22657 orm refactoring 2020-08-12 15:01:31 +03:00
Yuri Kuznetsov e7992e356a grand orm refactoring 2020-08-12 14:38:49 +03:00
Yuri Kuznetsov 0fd8f9d29f email index change 2020-08-10 13:42:03 +03:00
Yuri Kuznetsov bf033c31af date fix 2020-08-08 10:33:20 +03:00
Yuri Kuznetsov aa788a17d9 fix date field issue 2020-08-07 18:00:17 +03:00
Yuri Kuznetsov 96c598d454 change 2020-08-05 17:05:29 +03:00
Yuri Kuznetsov 7cddf329d0 fix 2020-08-05 16:47:25 +03:00
Yuri Kuznetsov f95660406f orm refactoring 2020-08-05 15:22:29 +03:00
Yuri Kuznetsov 338caebfaf orm refactoring 2020-08-05 14:28:43 +03:00
Yuri Kuznetsov 77ba946861 orm refactoring 2020-08-05 14:12:49 +03:00
Yuri Kuznetsov cb37282a14 amend 2020-08-05 13:30:38 +03:00
Yuri Kuznetsov 3d40aefef5 orm refactoring 2020-08-05 13:28:49 +03:00
Yuri Kuznetsov e7b0489294 orm refactoring 2020-08-05 12:50:20 +03:00
Yuri Kuznetsov 2690fcdacd test fix 2020-08-05 11:38:55 +03:00
Yuri Kuznetsov 0cc6d69c66 orm refactoring 2020-08-05 11:34:50 +03:00
Yuri Kuznetsov 3312d440c1 orm refactoring 2020-08-04 22:34:18 +03:00
Yuri Kuznetsov dba5650f1a fix 2020-08-04 20:57:42 +03:00
Yuri Kuznetsov 81cab7acbf orm refactoring 2020-08-04 20:17:50 +03:00
Yuri Kuznetsov 42cb2eb9bb orm usage 2020-08-04 18:01:06 +03:00
Yuri Kuznetsov 1d0476e1b8 orm refactoring 2020-08-04 17:46:50 +03:00
Yuri Kuznetsov 4ea2455958 fixes 2020-08-04 16:08:07 +03:00
Yuri Kuznetsov 2338c57357 orm usage 2020-08-04 14:44:15 +03:00
Yuri Kuznetsov 019e1579f6 orm usage 2020-08-04 14:36:54 +03:00
Yuri Kuznetsov df547b2022 orm usage 2020-08-04 14:01:47 +03:00
Yuri Kuznetsov ce3b8b6f50 fixes and orm usage 2020-08-04 13:10:01 +03:00
Yuri Kuznetsov 4e24ee66f5 orm refactoring 2020-08-04 11:51:06 +03:00
Yuri Kuznetsov f82495c1cc orm usage 2020-08-03 14:02:42 +03:00
Yuri Kuznetsov c78c88cf92 fix bc 2020-08-03 13:44:36 +03:00
Yuri Kuznetsov 03b82e81f0 fix 2020-08-03 13:39:15 +03:00
Yuri Kuznetsov 90fe6a7416 stream service changes 2020-08-03 13:34:13 +03:00
Yuri Kuznetsov 30014d640b fix follow 2020-08-03 13:34:04 +03:00
Yuri Kuznetsov 2be2b7f459 orm fixes 2020-08-03 12:48:24 +03:00
Yuri Kuznetsov 659ae36ca6 orm changes 2020-08-03 11:43:16 +03:00
Yuri Kuznetsov c92a4bcf36 orm changes 2020-08-03 10:54:04 +03:00
Yuri Kuznetsov 931786eadb fix validators 2020-08-03 10:36:56 +03:00
Yuri Kuznetsov 068e8121dc changes 2020-08-02 23:33:45 +03:00
Yuri Kuznetsov 4e938d98fc orm changes 2020-08-02 23:25:58 +03:00
Yuri Kuznetsov da3e214ecd orm refactoring 2020-08-02 23:16:30 +03:00
Yuri Kuznetsov e88799265f orm changes 2020-08-02 22:17:35 +03:00
Yuri Kuznetsov dcb717db48 cleanup 2020-08-02 20:41:23 +03:00
Yuri Kuznetsov 9e78c0f9e1 orm changes 2020-08-02 19:26:15 +03:00
Yuri Kuznetsov 3b0596a93c formating fix 2020-08-02 19:17:46 +03:00
Yuri Kuznetsov 0c8593a958 orm refactoring 2020-08-02 19:11:57 +03:00
Yuri Kuznetsov 4e75524d6f mapper insert on duplicate update 2020-08-02 14:42:02 +03:00
Yuri Kuznetsov e17b8dba4b orm usage 2020-08-02 13:55:16 +03:00
Yuri Kuznetsov 11dc206fac cleanup 2020-08-02 13:48:55 +03:00
Yuri Kuznetsov f2ebd47ded merge 2020-08-02 13:48:19 +03:00
Yuri Kuznetsov 036ad99ba6 fix deprecation 2020-08-02 13:45:32 +03:00
Yuri Kuznetsov 904830579c orm refactoring 2020-07-31 17:49:37 +03:00
Yuri Kuznetsov a37d380440 orm usage 2020-07-31 15:11:06 +03:00
Yuri Kuznetsov 1d6889879d rdb fix 2020-07-31 15:10:59 +03:00
Yuri Kuznetsov b54cd7fbd9 RDBSelectBuilder 2020-07-31 11:41:44 +03:00
Yuri Kuznetsov 113b0ac446 repository changes and test 2020-07-31 10:38:25 +03:00
Yuri Kuznetsov e30061e2a0 cs fix 2020-07-26 19:59:28 +03:00
Yuri Kuznetsov 2b406aa7cc cs fix 2020-07-25 19:35:51 +03:00
Yuri Kuznetsov 6cf5bbed95 container changes 2020-07-25 19:24:40 +03:00
Yuri Kuznetsov 1579671259 orm fix 2020-07-25 14:54:54 +03:00
Yuri Kuznetsov 567d8416ec auth refactor 2020-07-25 14:07:08 +03:00
Yuri Kuznetsov 644e848011 orm usage 2020-07-24 16:45:39 +03:00
Yuri Kuznetsov dc4eccb043 relationship entities 2020-07-24 16:45:28 +03:00
Yuri Kuznetsov be8ea6bab3 cs fix 2020-07-24 15:38:26 +03:00
Yuri Kuznetsov 246d42469f orm usage 2020-07-24 15:33:36 +03:00
Yuri Kuznetsov 8890aa6618 fixes 2020-07-24 15:33:29 +03:00
Yuri Kuznetsov 2b2620c954 orm usage 2020-07-24 12:37:54 +03:00
Yuri Kuznetsov e594957c0b import confirm leavout 2020-07-24 11:08:11 +03:00
Yuri Kuznetsov a3b2f18a32 import fixes and orm usage 2020-07-24 10:56:06 +03:00
Yuri Kuznetsov 742b28a3c8 fix 2020-07-24 10:11:47 +03:00
Yuri Kuznetsov 8340c5ba1d cs fixes 2020-07-24 09:47:00 +03:00
Yuri Kuznetsov d44935bc29 fix 2020-07-24 09:45:12 +03:00
Yuri Kuznetsov efcbae5554 fixes 2020-07-23 20:14:55 +03:00
Yuri Kuznetsov 73c22bf815 comments 2020-07-23 19:56:48 +03:00
Yuri Kuznetsov e715d9e5b5 orm changes 2020-07-23 19:55:15 +03:00
Yuri Kuznetsov d1c1995018 Merge branch 'hotfix/5.9.4' 2020-07-23 17:46:41 +03:00
Yuri Kuznetsov 7fda7abbe6 attachments fixes 2020-07-23 17:46:00 +03:00
Yuri Kuznetsov bea8bd4057 mapper interface change 2020-07-23 15:02:15 +03:00
Yuri Kuznetsov 5d3996ae03 orm usage 2020-07-23 15:02:02 +03:00
Yuri Kuznetsov 3d5bc3bb0c orm mapper mass insert 2020-07-23 13:43:37 +03:00
Yuri Kuznetsov 2ec8022001 entity with out class 2020-07-23 13:16:11 +03:00
Yuri Kuznetsov 2dbbf72a6c cs fixes 2020-07-23 11:11:04 +03:00
Yuri Kuznetsov fbbe0e06cf disable hooks while rebuild 2020-07-23 11:10:57 +03:00
Yuri Kuznetsov 455ef1138f orm usage and fixes 2020-07-23 10:54:49 +03:00
Yuri Kuznetsov 2398ef7efe change 2020-07-22 18:25:56 +03:00
Yuri Kuznetsov f68c594a7e cleanup 2020-07-22 15:41:49 +03:00
Yuri Kuznetsov 8004e4eda8 currency use orm 2020-07-22 15:39:19 +03:00
Yuri Kuznetsov 1e682a3e9a cron: orm usage 2020-07-22 15:32:55 +03:00
Yuri Kuznetsov 6546d987e5 orm fix 2020-07-22 14:54:16 +03:00
Yuri Kuznetsov e4195f7b60 orm usage 2020-07-22 12:08:58 +03:00
Yuri Kuznetsov 27cdb68240 cs fix 2020-07-22 11:43:01 +03:00
Yuri Kuznetsov a59ea11aac orm query refactor and createDeleteQuery method 2020-07-22 11:31:59 +03:00
Yuri Kuznetsov 5fde8f9f4b formula functions change 2020-07-21 16:07:24 +03:00
Yuri Kuznetsov 3d05606ad6 formula functions changes 2020-07-21 14:51:02 +03:00
Yuri Kuznetsov f2da244a3c fix pdf 2020-07-21 14:47:54 +03:00
Yuri Kuznetsov c6e26b1323 move select manager to select 2020-07-21 11:42:18 +03:00
Yuri Kuznetsov 1550d289df Merge branch 'master' of https://github.com/espocrm/espocrm 2020-07-20 18:20:23 +03:00
Yuri Kuznetsov 81a6d05621 htmlizer code change 2020-07-20 18:13:31 +03:00
Yuri Kuznetsov 78c372b2f8 select manager code changes 2020-07-20 17:55:06 +03:00
Yuri Kuznetsov 59ec071908 diff refactoring 2020-07-20 13:38:14 +03:00
Yuri Kuznetsov 687e67faed comment 2020-07-18 18:52:18 +03:00
Yuri Kuznetsov 46e98d4660 Merge branch 'hotfix/5.9.4' 2020-07-18 15:02:52 +03:00
Yuri Kuznetsov fa0cf9c9fd cleanup 2020-07-18 15:02:25 +03:00
Yuri Kuznetsov 0e851eb687 Merge branch 'hotfix/5.9.4' 2020-07-18 15:01:24 +03:00
Yuri Kuznetsov 3c651f8633 lang fixes 2020-07-18 14:47:02 +03:00
Yuri Kuznetsov 2b5f1c28e8 lang.js refactoring 2020-07-18 14:41:48 +03:00
Yuri Kuznetsov 7fea881d17 refactor po 2020-07-18 14:21:05 +03:00
Yuri Kuznetsov 61de366e05 merge 2020-07-18 12:29:22 +03:00
Yuri Kuznetsov ada64bba0c fix dayOfWeek 2020-07-18 12:22:43 +03:00
Yuri Kuznetsov ab582b92c9 more formula day of week tests 2020-07-17 21:57:40 +03:00
Yuri Kuznetsov 506a6a7779 cs fix 2020-07-17 17:09:47 +03:00
Yuri Kuznetsov f87dcda391 entry point refactor 2020-07-17 17:08:30 +03:00
Yuri Kuznetsov 2d94ad60f3 diff: no delete tests 2020-07-17 13:00:49 +03:00
Yuri Kuznetsov 333ed98e37 update lodash 2020-07-17 10:26:24 +03:00
Yuri Kuznetsov 69b5f8a1cc api runner refactoring 2020-07-16 22:36:24 +03:00
Yuri Kuznetsov cefad1c76f Merge branch 'hotfix/5.9.4' 2020-07-16 20:15:21 +03:00
Yuri Kuznetsov 8fe96b140a tcpdf header 2020-07-16 20:14:48 +03:00
Yuri Kuznetsov 3b25a1a001 error message 4 seconds 2020-07-16 19:59:46 +03:00
Yuri Kuznetsov f4d98f177c fix typos 2020-07-16 19:57:04 +03:00
Yuri Kuznetsov 9f4f38bb0d webhook verify peer 2020-07-16 19:50:53 +03:00
Yuri Kuznetsov b42ebfde2f formula refactoring 2020-07-16 17:37:22 +03:00
Yuri Kuznetsov 1bd73d7872 admin search use keywords 2020-07-16 12:48:48 +03:00
Yuri Kuznetsov 6d83f77fcf webhook comments 2020-07-15 23:23:08 +03:00
Yuri Kuznetsov 17c1070fc1 cs fix 2020-07-15 23:07:50 +03:00
Yuri Kuznetsov f86a493ba6 app runners refactoring 2020-07-15 17:33:18 +03:00
Yuri Kuznetsov 32119b6afd docs fix 2020-07-15 16:11:56 +03:00
Yuri Kuznetsov e11661eadc cs fix 2020-07-15 15:14:50 +03:00
Yuri Kuznetsov 0fc2201d80 cs fix 2020-07-15 14:39:40 +03:00
Yuri Kuznetsov bbe96f67f6 formula changes 2020-07-15 14:34:05 +03:00
Yuri Kuznetsov f4b2d9b1df formula functions change 2020-07-15 12:39:59 +03:00
Yuri Kuznetsov 42d894fd5a file storage changes and comments 2020-07-15 11:04:48 +03:00
Yuri Kuznetsov e8c750c18f formula changes 2020-07-14 22:41:05 +03:00
Yuri Kuznetsov 89cb84d784 fix 2020-07-14 19:02:46 +03:00
Yuri Kuznetsov daa6e8360a cleanup 2020-07-14 18:49:56 +03:00
Yuri Kuznetsov 24429255dc fix formula exceptions 2020-07-14 18:38:20 +03:00
Yuri Kuznetsov 7c55ae98e5 formula fixes and comments 2020-07-14 18:35:02 +03:00
Yuri Kuznetsov 81ed21962f formula refactoring, using arguments 2020-07-14 18:17:34 +03:00
Yuri Kuznetsov d9752ed970 formula refactoring 2020-07-14 15:03:21 +03:00
Yuri Kuznetsov c6293580d9 compatibility fixes 2020-07-14 13:39:05 +03:00
Yuri Kuznetsov 5ddb76c137 fix mapper 2020-07-14 12:19:38 +03:00
Yuri Kuznetsov 20893622d4 fix tests 2020-07-14 11:47:43 +03:00
Yuri Kuznetsov 35445dbf2e fix entity 2020-07-14 11:47:32 +03:00
Yuri Kuznetsov fbe6e3c1e6 fix mapper and tests 2020-07-14 11:15:23 +03:00
Yuri Kuznetsov 1d35922155 api runner 2020-07-13 12:29:11 +03:00
Yuri Kuznetsov ea31174cc4 application refactoring 2020-07-13 12:05:35 +03:00
Yuri Kuznetsov f5ea5f673c manual merge 2020-07-13 10:55:33 +03:00
Yuri Kuznetsov e76490880a v 2020-07-13 10:48:13 +03:00
Yuri Kuznetsov e12bb1320c fix cookies 2020-07-13 10:47:57 +03:00
Yuri Kuznetsov 827e16cf93 application runners and fixes 2020-07-12 19:37:22 +03:00
Yuri Kuznetsov 1b61205281 aoolication runners 2020-07-12 19:11:53 +03:00
Yuri Kuznetsov 269f2b4850 extension and upgrade scripts fix 2020-07-12 14:27:07 +03:00
Yuri Kuznetsov d346e35901 comment fix 2020-07-12 14:17:21 +03:00
Yuri Kuznetsov 2f87691309 orm refactoring and comments 2020-07-12 14:16:26 +03:00
Yuri Kuznetsov 8e6c778a82 refactoring 2020-07-12 13:02:24 +03:00
Yuri Kuznetsov f36732f7d4 orm refactoring and comments 2020-07-12 11:14:27 +03:00
Yuri Kuznetsov e63d60ab3d cleanup 2020-07-11 23:35:58 +03:00
Yuri Kuznetsov 460f3fcfd6 orm refactoring 2020-07-11 23:34:19 +03:00
Yuri Kuznetsov 1f52ab9a3f cleanyp 2020-07-11 19:39:16 +03:00
Yuri Kuznetsov 397a9cdf1f fix 2020-07-11 16:46:22 +03:00
Yuri Kuznetsov 4560ef7ef7 fix comment 2020-07-11 16:38:27 +03:00
Yuri Kuznetsov dc41dff9a0 cleanup 2020-07-11 16:36:41 +03:00
Yuri Kuznetsov 3e6d9d1b11 auth refactoring 2020-07-11 16:34:05 +03:00
Yuri Kuznetsov 1513f45662 auth login result 2020-07-11 16:09:53 +03:00
Yuri Kuznetsov 3e8426da1a auth refactoring 2020-07-11 15:19:48 +03:00
Yuri Kuznetsov bb29373e16 refactoring 2020-07-11 12:24:35 +03:00
Yuri Kuznetsov da7ac548c5 comments 2020-07-11 10:30:01 +03:00
Yuri Kuznetsov b37441eaa8 admin quick server preserve search 2020-07-10 16:40:08 +03:00
Yuri Kuznetsov a546b77c10 admin quick search 2020-07-10 16:23:24 +03:00
Yuri Kuznetsov 392cb956d2 comments 2020-07-10 14:41:16 +03:00
Yuri Kuznetsov 76273a4d86 mail classes comments and type hinting 2020-07-10 12:55:10 +03:00
Yuri Kuznetsov eb32b41bd4 comments 2020-07-10 12:29:10 +03:00
Yuri Kuznetsov 767456ca9a mail sender changes 2020-07-10 12:29:04 +03:00
Yuri Kuznetsov c12354138a fix 2020-07-10 11:42:07 +03:00
Yuri Kuznetsov 1fd93a1fb8 fix 2020-07-10 11:19:20 +03:00
Yuri Kuznetsov 9c36937a9e refactoring 2020-07-09 21:50:45 +03:00
Yuri Kuznetsov 3d382e67b6 refactoring and fixes 2020-07-09 20:27:28 +03:00
Yuri Kuznetsov ecdcab7371 attachment fixes 2020-07-09 14:17:24 +03:00
Yuri Kuznetsov a5609f3cad fix 2020-07-09 13:44:24 +03:00
Yuri Kuznetsov 5c0bc397c1 fix test 2020-07-09 12:56:32 +03:00
Yuri Kuznetsov 21e9131c65 fix preferences 2020-07-09 12:49:36 +03:00
Yuri Kuznetsov 8159e33fef fix tester 2020-07-09 12:23:35 +03:00
Yuri Kuznetsov d2411e380b fix tests 2020-07-09 11:36:11 +03:00
Yuri Kuznetsov a2017a0a75 dev 2020-07-09 11:08:52 +03:00
Yuri Kuznetsov 16fcc4d61e dev 2020-07-09 11:00:52 +03:00
Yuri Kuznetsov b6b4909f3c fix 2020-07-08 22:50:48 +03:00
Yuri Kuznetsov 773abf3028 dev 2020-07-08 17:50:53 +03:00
Yuri Kuznetsov f8f7c4fbff dev 2020-07-08 17:30:25 +03:00
Yuri Kuznetsov c84abfb542 do not display auth error message 2020-07-08 16:15:30 +03:00
Yuri Kuznetsov 656f66f567 fix menu items 2020-07-08 16:07:27 +03:00
Yuri Kuznetsov 75386b4355 dev 2020-07-08 15:42:38 +03:00
Yuri Kuznetsov 434b3020a0 fix 2020-07-08 14:34:13 +03:00
Yuri Kuznetsov 64b0adee30 dev 2020-07-08 12:41:34 +03:00
Yuri Kuznetsov 6351dc030c fix 2020-07-08 12:38:43 +03:00
Yuri Kuznetsov f261690d76 dev 2020-07-08 12:37:59 +03:00
Yuri Kuznetsov de37982a64 dev 2020-07-08 12:18:34 +03:00
Yuri Kuznetsov 4266a38c01 dev 2020-07-08 12:04:35 +03:00
Yuri Kuznetsov 8daec77bb4 dev 2020-07-08 11:20:53 +03:00
Yuri Kuznetsov 4267c78f68 dev 2020-07-08 11:11:55 +03:00
Yuri Kuznetsov 2f7843687f dev 2020-07-08 10:30:56 +03:00
Yuri Kuznetsov 1648eb78f0 dev 2020-07-08 10:13:39 +03:00
Yuri Kuznetsov 2b8143b4fb dev 2020-07-08 10:12:29 +03:00
Yuri Kuznetsov b2d6e7c37e dev 2020-07-07 20:16:57 +03:00
Yuri Kuznetsov 22d41a144f dev 2020-07-07 20:03:37 +03:00
Yuri Kuznetsov f71d52c5ba dev 2020-07-07 19:55:00 +03:00
Yuri Kuznetsov 1a86438f32 dev 2020-07-07 19:34:32 +03:00
Yuri Kuznetsov 20aadf26a5 dev 2020-07-07 19:17:35 +03:00
Yuri Kuznetsov d6514bc946 dev 2020-07-07 19:04:11 +03:00
Yuri Kuznetsov 3f417198d7 dev 2020-07-07 18:50:33 +03:00
Yuri Kuznetsov 62da2245c1 dev 2020-07-07 18:38:14 +03:00
Yuri Kuznetsov 627fa8f89e dev 2020-07-07 18:20:17 +03:00
Yuri Kuznetsov 13e24501e5 cleanup 2020-07-07 18:17:58 +03:00
Yuri Kuznetsov 0002ec1a8e fix 2020-07-07 18:17:35 +03:00
Yuri Kuznetsov 62d7948b67 cleanup 2020-07-07 18:13:39 +03:00
Yuri Kuznetsov 54ca25571e dev 2020-07-07 16:09:29 +03:00
Yuri Kuznetsov a64bf2e97f fix comment 2020-07-07 16:08:33 +03:00
Yuri Kuznetsov 029a5587e6 dev 2020-07-07 16:05:27 +03:00
Yuri Kuznetsov 918ce84b1b fixes 2020-07-02 22:17:03 +03:00
Yuri Kuznetsov 4622e9fe01 dev 2020-07-02 21:53:24 +03:00
Yuri Kuznetsov d707979b7d fixes 2020-07-02 21:47:37 +03:00
Yuri Kuznetsov 0c224e2a22 cleanup 2020-07-02 21:39:54 +03:00
Yuri Kuznetsov b4b4ec2f89 dev 2020-07-02 21:38:29 +03:00
Yuri Kuznetsov 07b297f7ef dev 2020-07-02 19:40:11 +03:00
Yuri Kuznetsov e7804062f3 dev 2020-07-02 19:00:56 +03:00
Yuri Kuznetsov efed7969fc dev 2020-07-02 18:49:11 +03:00
Yuri Kuznetsov c8a1edea1a dev 2020-07-02 18:09:55 +03:00
Yuri Kuznetsov 8a0d2c9b6a dev 2020-07-02 17:12:58 +03:00
Yuri Kuznetsov 784b0e8e40 dev 2020-07-02 12:54:57 +03:00
Yuri Kuznetsov 9ac3cc23f7 dev 2020-07-02 12:36:33 +03:00
Yuri Kuznetsov 0e1b88fd25 dev 2020-07-02 12:28:21 +03:00
Yuri Kuznetsov 7084b38a5a dev 2020-07-02 12:11:26 +03:00
Yuri Kuznetsov 7cba7fad95 dev 2020-07-02 10:32:59 +03:00
Yuri Kuznetsov 73d67763c9 dev 2020-07-01 14:57:20 +03:00
Yuri Kuznetsov 29217453ab Merge branch 'hotfix/5.9.4' 2020-07-01 08:38:40 +03:00
Yuri Kuznetsov eca5bdea71 fix formula where 2020-07-01 08:38:14 +03:00
Yuri Kuznetsov 34fe3f53c3 slim cleanup 2020-06-30 15:36:02 +03:00
Yuri Kuznetsov 78353460d1 get rid of useController route condition 2020-06-30 14:34:38 +03:00
Yuri Kuznetsov 210c76bad1 slim headers deprecated usage fix 2020-06-30 13:56:03 +03:00
Yuri Kuznetsov d7326b927d container info sort 2020-06-30 10:59:36 +03:00
Yuri Kuznetsov a4cf749d6d log aware 2020-06-30 10:52:53 +03:00
Yuri Kuznetsov b7d256687a app info container command 2020-06-30 10:43:50 +03:00
Yuri Kuznetsov ccce2eb137 fix container configuration 2020-06-30 10:43:42 +03:00
Yuri Kuznetsov 46a0c1f7bf fix 2020-06-30 10:14:49 +03:00
Yuri Kuznetsov a84d6f4121 fix doc 2020-06-30 10:13:52 +03:00
Yuri Kuznetsov 10793ebdda refactoring 2020-06-30 10:11:26 +03:00
Yuri Kuznetsov 9c6bec3761 Merge branch 'hotfix/5.9.4' 2020-06-30 08:53:10 +03:00
Yuri Kuznetsov 2ab4173e85 oauth client fix 2020-06-30 08:51:29 +03:00
Yuri Kuznetsov 195db973dc get image url use ssl verify peer 2020-06-30 08:50:09 +03:00
Yuri Kuznetsov b15148f9f7 cleanup 2020-06-29 20:02:32 +03:00
Yuri Kuznetsov ae6f669629 remobe getOrmMetadata method 2020-06-29 20:01:20 +03:00
Yuri Kuznetsov a50c66557e cleanup 2020-06-29 19:58:15 +03:00
Yuri Kuznetsov 9a09822f7a fix comment 2020-06-29 19:57:29 +03:00
Yuri Kuznetsov 0a3174cba9 entity maanger comments and type hint additions 2020-06-29 19:56:54 +03:00
Yuri Kuznetsov d5414ece84 select manager comments 2020-06-29 19:18:18 +03:00
Yuri Kuznetsov fc4de43db3 acl comments and fixes 2020-06-29 17:37:51 +03:00
Yuri Kuznetsov e4138b894c acl changes 2020-06-29 17:23:07 +03:00
Yuri Kuznetsov 5b74430751 cleanup 2020-06-29 16:09:53 +03:00
Yuri Kuznetsov 22f6d2d1b9 comments 2020-06-29 16:01:31 +03:00
Yuri Kuznetsov 318e164a01 cleanup deprecation 2020-06-29 15:58:34 +03:00
Yuri Kuznetsov 969d40f5d8 acl comments 2020-06-29 15:53:29 +03:00
Yuri Kuznetsov c7f8b4899a docs fixes 2020-06-29 15:50:40 +03:00
Yuri Kuznetsov a81086493f acl manager docs 2020-06-29 15:49:55 +03:00
Yuri Kuznetsov b773f22bd2 app state comments 2020-06-29 14:45:59 +03:00
Yuri Kuznetsov 2b34b86746 controller refactoring 2020-06-29 14:41:14 +03:00
Yuri Kuznetsov 78c4350ff7 fix application state 2020-06-29 14:41:04 +03:00
Yuri Kuznetsov ecd33b0f54 stream controller refactoring 2020-06-29 14:35:34 +03:00
Yuri Kuznetsov 7753eb32af controller refactoring 2020-06-29 14:29:33 +03:00
Yuri Kuznetsov 9d3fbf8d27 controllers refactoring 2020-06-29 14:24:49 +03:00
Yuri Kuznetsov 7f3d099148 cs fixes and cleanup 2020-06-29 13:45:03 +03:00
Yuri Kuznetsov 518ed97ed4 controllers refactoring 2020-06-29 13:30:40 +03:00
Yuri Kuznetsov 6b46ac2fde controller manager check data type 2020-06-29 13:30:31 +03:00
Yuri Kuznetsov 6b9f0f07ec Merge branch 'feature/di-setter' 2020-06-29 11:35:36 +03:00
Yuri Kuznetsov 553c7e9caa test fixes 2020-06-29 11:34:08 +03:00
Yuri Kuznetsov bef0826f9d fix rdb repo 2020-06-29 11:20:29 +03:00
Yuri Kuznetsov 8fa4ec20a8 fix case repo 2020-06-29 11:10:47 +03:00
Yuri Kuznetsov 5ad7562f17 fix test 2020-06-29 11:10:32 +03:00
Yuri Kuznetsov b74d95894b fix test 2020-06-28 17:49:13 +03:00
Yuri Kuznetsov 562cd42344 portal config refactoring and type hinring 2020-06-28 11:35:39 +03:00
Yuri Kuznetsov 078bdfc28f deprcated tag 2020-06-28 10:27:29 +03:00
Yuri Kuznetsov 3c5e84bc44 ditch isAdmin isPortal isSuperAdmin 2020-06-28 09:48:20 +03:00
Yuri Kuznetsov e61a6a00d8 application class comments and cleanup 2020-06-28 09:24:48 +03:00
Yuri Kuznetsov f7b1441050 comments and datime type hint 2020-06-27 23:51:29 +03:00
Yuri Kuznetsov d0e6689dc4 cleanup 2020-06-27 23:25:18 +03:00
Yuri Kuznetsov 9af8dde878 auth refactor 2020-06-27 19:49:37 +03:00
Yuri Kuznetsov bfed745758 refactor 2020-06-27 19:49:28 +03:00
Yuri Kuznetsov cc22abba50 notificators di 2020-06-27 19:19:11 +03:00
Yuri Kuznetsov ca84177e87 password recovery di 2020-06-27 18:54:58 +03:00
Yuri Kuznetsov 4508991ca2 cleanup using di 2020-06-27 17:43:55 +03:00
Yuri Kuznetsov 0b1ddecd32 export di refactoring 2020-06-27 15:07:22 +03:00
Yuri Kuznetsov 59025f7d4c preferencesAware 2020-06-27 14:56:16 +03:00
Yuri Kuznetsov 8c75651650 services refactoring 2020-06-27 14:34:25 +03:00
Yuri Kuznetsov 44ea2aee40 fix repository 2020-06-27 14:34:17 +03:00
Yuri Kuznetsov 7401647d6a record service fix 2020-06-27 14:05:28 +03:00
Yuri Kuznetsov fbd496e663 cs fixes 2020-06-27 12:47:02 +03:00
Yuri Kuznetsov e22818f51f Merge branch 'hotfix/5.9.4' into feature/di-setter 2020-06-27 12:37:16 +03:00
Yuri Kuznetsov cd5537cc26 fix user generate new possword hidden if group email account used 2020-06-27 12:36:56 +03:00
Yuri Kuznetsov 1933194d35 user service refactoring 2020-06-27 12:29:45 +03:00
Yuri Kuznetsov aef08dcd75 webhook service refactoring 2020-06-27 12:13:20 +03:00
Yuri Kuznetsov fd4c49d3d2 team service refactoring 2020-06-27 12:06:37 +03:00
Yuri Kuznetsov c1518cb509 stream service refactoring 2020-06-27 11:57:42 +03:00
Yuri Kuznetsov 43e424d44d applicationState 2020-06-27 11:26:59 +03:00
Yuri Kuznetsov 4dfd313d10 services refactoring 2020-06-26 20:12:57 +03:00
Yuri Kuznetsov 9e68f4cd2c service refactoring 2020-06-26 18:30:52 +03:00
Yuri Kuznetsov 3fe373e20c cs fixes 2020-06-26 17:40:35 +03:00
Yuri Kuznetsov 1f2852a369 service refactoring 2020-06-26 17:15:43 +03:00
Yuri Kuznetsov abe4d91622 cleanup 2020-06-26 16:54:54 +03:00
Yuri Kuznetsov 0649b18952 services refactoring 2020-06-26 16:53:39 +03:00
Yuri Kuznetsov aee81c1533 services refactoring 2020-06-26 16:10:07 +03:00
Yuri Kuznetsov 451b8ea1e5 services refactoring 2020-06-26 14:12:18 +03:00
Yuri Kuznetsov 578cf90f85 formula refactoring 2020-06-25 19:24:10 +03:00
Yuri Kuznetsov 869fa35353 hook decoupling 2020-06-25 17:06:58 +03:00
Yuri Kuznetsov 4d8cfb05ee merge hotfix 2020-06-25 13:42:33 +03:00
Yuri Kuznetsov b9d9463cc9 fix tests 2020-06-25 13:39:48 +03:00
Yuri Kuznetsov 2c01caa7be select manager class 2020-06-25 13:02:19 +03:00
Yuri Kuznetsov 65e925ec22 repositories refactoring 2020-06-25 12:43:33 +03:00
Yuri Kuznetsov 1144956c99 repository decoupling 2020-06-25 11:56:29 +03:00
Yuri Kuznetsov cf586dcd75 repository refactoring 2020-06-25 10:50:20 +03:00
Yuri Kuznetsov 94008f5a53 fix metadata service null acl check 2020-06-25 08:35:47 +03:00
Yuri Kuznetsov 6c5dd4a120 entry point traits 2020-06-24 17:43:51 +03:00
Yuri Kuznetsov e87490aad8 acl changes 2020-06-24 16:54:52 +03:00
Yuri Kuznetsov cb55cec3f0 acl manager code improvements 2020-06-24 12:48:08 +03:00
Yuri Kuznetsov 8bfec9ec7e acl di 2020-06-24 11:32:47 +03:00
Yuri Kuznetsov bf410b2258 cleanup 2020-06-24 09:02:23 +03:00
Yuri Kuznetsov 6eaab67081 fix injectable factory 2020-06-23 21:06:14 +03:00
Yuri Kuznetsov d1ff4b0ede injectable factory fix 2020-06-23 20:50:58 +03:00
Yuri Kuznetsov 5bc4dc297d acl with factory 2020-06-23 19:10:41 +03:00
Yuri Kuznetsov 79f8a5e87c decoupling 2020-06-23 18:50:21 +03:00
Yuri Kuznetsov 5c0eec9c83 job interface move 2020-06-23 16:59:00 +03:00
Yuri Kuznetsov 42f6dab4ce entry point changes 2020-06-23 16:46:18 +03:00
Yuri Kuznetsov 7bcb6a320e decoupling 2020-06-23 16:14:11 +03:00
Yuri Kuznetsov 771acbea35 loader classes 2020-06-23 13:49:46 +03:00
Yuri Kuznetsov 8520bbcf85 decoupling 2020-06-23 13:13:01 +03:00
Yuri Kuznetsov 253838bba9 decoupling 2020-06-23 12:15:11 +03:00
Yuri Kuznetsov 0f2a26b744 formula comments fix 2020-06-22 21:26:51 +03:00
Yuri Kuznetsov 53db712015 decoupling 2020-06-22 20:30:20 +03:00
Yuri Kuznetsov 6f2fc808cd decoupling 2020-06-22 19:24:44 +03:00
Yuri Kuznetsov 6b2fdf5400 decoupling 2020-06-22 19:16:40 +03:00
Yuri Kuznetsov b2fa393673 portal application changes 2020-06-22 15:30:01 +03:00
Yuri Kuznetsov 5292d13ae6 application method changes 2020-06-22 15:25:07 +03:00
Yuri Kuznetsov bfa3a2948d Merge branch 'stable' 2020-06-22 13:53:50 +03:00
Yuri Kuznetsov c11fd843d0 Merge branch 'hotfix/5.9.3' of github.com:espocrm/espocrm into hotfix/5.9.3 2020-06-22 13:03:18 +03:00
Yuri Kuznetsov 70a374004d fix navbar verical scroll issue 2020-06-22 13:02:08 +03:00
Yuri Kuznetsov 2340a58e8f container get rid of setUser 2020-06-22 12:38:40 +03:00
Yuri Kuznetsov 6d696d94d8 fix container 2020-06-22 11:08:47 +03:00
Yuri Kuznetsov 57360e5fea container default loaders 2020-06-22 10:33:34 +03:00
Yuri Kuznetsov 5c8d6ee901 file manager fix 2020-06-22 10:28:34 +03:00
Yuri Kuznetsov 7850eda22e fix typo 2020-06-21 23:56:45 +03:00
Yuri Kuznetsov 38bda84426 cleanup 2020-06-21 23:17:52 +03:00
Yuri Kuznetsov 954267c830 container configuration 2020-06-21 23:13:31 +03:00
Yuri Kuznetsov 0dc5437ddd loader interface 2020-06-21 19:53:10 +03:00
Yuri Kuznetsov 36dbc16fcf use loader for injectable factory 2020-06-21 19:51:35 +03:00
Yuri Kuznetsov d20cc4c45e changes in loader 2020-06-21 19:45:31 +03:00
Yuri Kuznetsov 8b9e376609 container changes 2020-06-21 19:41:54 +03:00
Yuri Kuznetsov bc9395029b container has 2020-06-21 16:51:38 +03:00
Yuri Kuznetsov 6a2af9ffe4 method rename 2020-06-21 16:03:16 +03:00
Yuri Kuznetsov 9005656062 injectable factory constructor injections for injectable 2020-06-21 15:55:05 +03:00
Yuri Kuznetsov 965dc73351 controller use injectable factory 2020-06-21 09:20:57 +03:00
Yuri Kuznetsov 5dc31fac5b select manager in another class 2020-06-20 22:08:23 +03:00
Yuri Kuznetsov 4254382e7f cleanup 2020-06-20 22:00:02 +03:00
Yuri Kuznetsov 9c0a8266ab select manager with injectable factory 2020-06-20 21:58:36 +03:00
Yuri Kuznetsov 407c8204aa change currency converted hook 2020-06-20 21:08:17 +03:00
Yuri Kuznetsov e218aaaed2 internalAclManager fix 2020-06-20 20:38:42 +03:00
Yuri Kuznetsov d07a21fdaa cleanup 2020-06-20 20:16:20 +03:00
Yuri Kuznetsov e8b69e133e hook manager changes 2020-06-20 20:11:31 +03:00
Yuri Kuznetsov b02d2a7f8d fix comment 2020-06-20 19:31:08 +03:00
Yuri Kuznetsov b9e3c22a1e class parser skip not instantiable 2020-06-20 19:27:33 +03:00
Yuri Kuznetsov 80ab030c4a entry point manager use factory 2020-06-20 17:23:20 +03:00
Yuri Kuznetsov 5483919dd3 comment fix 2020-06-20 17:18:36 +03:00
Yuri Kuznetsov b21daf47a7 remove test 2020-06-20 17:10:53 +03:00
Yuri Kuznetsov 917ec1091a injectable factory create with 2020-06-20 17:06:59 +03:00
Yuri Kuznetsov 30bb9f4fcc di setter 2020-06-20 15:54:49 +03:00
Yuri Kuznetsov 626da4c8bb services changes 2020-06-20 11:50:13 +03:00
Yuri Kuznetsov 813462744b service changes 2020-06-19 22:17:43 +03:00
Yuri Kuznetsov 970b648145 file storage with factory 2020-06-19 21:13:22 +03:00
Yuri Kuznetsov b9fce4527a auth factorie improvements 2020-06-19 20:51:26 +03:00
Yuri Kuznetsov 597b157f83 injectable setter 2020-06-19 18:55:36 +03:00
Yuri Kuznetsov 4f82ae38cf service improvements 2020-06-19 17:26:40 +03:00
Yuri Kuznetsov 74e4012fee di improvements 2020-06-18 22:42:58 +03:00
Yuri Kuznetsov 74d18be94a fix typo 2020-06-18 14:55:57 +03:00
Yuri Kuznetsov 56788af48b command change and test 2020-06-18 14:54:48 +03:00
Yuri Kuznetsov e618b3d0aa fix grunt tests 2020-06-18 14:18:09 +03:00
Yuri Kuznetsov 9f9cfbd581 change import flags 2020-06-18 12:49:35 +03:00
Yuri Kuznetsov c2e5f3ac2f command: supporting --flag 2020-06-18 12:49:22 +03:00
Yuri Kuznetsov 9ccf4f6083 import commands 2 2020-06-18 12:33:13 +03:00
Yuri Kuznetsov eb3fb9ec1c reverting import 2020-06-18 12:04:57 +03:00
Yuri Kuznetsov 69f0f8d8bf grand impromenets for customization abilities 2020-06-17 19:27:51 +03:00
Yuri Kuznetsov af7a73ec42 class finder 2020-06-17 16:30:34 +03:00
Yuri Kuznetsov c0b68e7da5 class parser change 2020-06-17 16:21:39 +03:00
Yuri Kuznetsov 050c88ca55 email send no block 2020-06-17 12:19:26 +03:00
Yuri Kuznetsov 0b218833af fix q0 queue 2020-06-16 15:44:32 +03:00
Yuri Kuznetsov cc4f5b9ff5 import improvements 2020-06-16 12:50:49 +03:00
Yuri Kuznetsov 1645034f6e Merge branch 'hotfix/5.9.3' 2020-06-16 12:50:29 +03:00
Yuri Kuznetsov 4a1e5c974c fix import 2020-06-15 16:23:58 +03:00
Yuri Kuznetsov b08083173a reminder 7 days 2020-06-15 11:07:26 +03:00
Yuri Kuznetsov c24e7a6939 version 2020-06-15 10:47:00 +03:00
Yuri Kuznetsov ce99671583 layout set error msg 2020-06-15 10:39:28 +03:00
Yuri Kuznetsov b5e9f98fd1 email insert field 2020-06-15 10:30:41 +03:00
Yuri Kuznetsov d36e5cc0c1 fix select create related 2020-06-12 14:44:21 +03:00
Yuri Kuznetsov 13ae2d27c8 fix external account client manager 2020-06-12 13:43:47 +03:00
Yuri Kuznetsov ea5c76f012 oauth changes 2020-06-11 12:13:39 +03:00
Yuri Kuznetsov acb9b50d14 stream internal post button red color 2020-06-10 11:06:51 +03:00
Yuri Kuznetsov 968fc7ad30 fix email account form 2020-06-10 10:32:59 +03:00
Yuri Kuznetsov bb6d7598a1 email account layout change 2020-06-10 10:27:42 +03:00
Yuri Kuznetsov cd9481670a oauth fix 2020-06-09 15:33:42 +03:00
Yuri Kuznetsov 505e9e278b oauth race condition fix 2020-06-09 13:50:25 +03:00
Yuri Kuznetsov 7e59888fb2 oauth fix 2020-06-06 18:37:34 +03:00
Yuri Kuznetsov 74f2d7f1ea oauth: handle token expiration; factory in client manager 2020-06-06 18:12:39 +03:00
Yuri Kuznetsov f319be61d2 fix select related 2020-06-06 10:04:02 +03:00
4511 changed files with 275000 additions and 124200 deletions
+11
View File
@@ -0,0 +1,11 @@
* text=auto
*.php text eol=crlf
*.js text eol=crlf
*.json text eol=crlf
*.md text eol=crlf
*.less text eol=crlf
*.css text eol=crlf
*.tpl text eol=crlf
*.html text eol=crlf
*.png binary
+17
View File
@@ -0,0 +1,17 @@
## Pull Requests
Before we can merge your pull request you need to accept our CLA [here](https://github.com/espocrm/cla). It's very simple to do.
See [Code Style Guidelines](https://github.com/espocrm/espocrm/wiki/Code-Style-Guidelines).
Branches:
* *hotfix/** upcoming maintenance release; fixes should be pushed to this branch;
* *master* develop branch; new features should be pushed to this branch;
* *stable* last stable release.
## Issues
When reporting a possible bug please provide detail steps so that we will be able to reproduce the issue. Please try not to use phrases like "very big bug", "huge issue", etc. No need to use exclamation marks as well.
Note that we don't provide developer help or any kind of support on Github. Please use our [forum](https://forum.espocrm.com) for this.
+30
View File
@@ -0,0 +1,30 @@
---
name: Bug report
about: Create a bug report
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. ...
2. ...
3. ...
...
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**EspoCRM version**
Specify the EspoCRM version (or versions) on which the bug occurs.
**Additional context**
Add any other context about the problem here.
+4
View File
@@ -0,0 +1,4 @@
contact_links:
- name: EspoCRM forum
url: https://forum.espocrm.com/
about: Please use our forum to ask questions not related to product development
+20
View File
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for EspoCRM
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is.
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
View File
+64
View File
@@ -0,0 +1,64 @@
name: Test Integration
on:
schedule:
- cron: '0 10 * * *'
jobs:
test:
name: Test on PHP ${{ matrix.php-versions }}
runs-on: ubuntu-20.04
env:
TEST_DATABASE_HOST: '127.0.0.1'
TEST_DATABASE_PORT: '8888'
TEST_DATABASE_NAME: integration_test
TEST_DATABASE_USER: root
TEST_DATABASE_PASSWORD: password
services:
mysql:
image: mysql:8.0
env:
MYSQL_ALLOW_EMPTY_PASSWORD: false
MYSQ_USER: root
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: integration_test
ports:
- '8888:3306'
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
strategy:
fail-fast: false
matrix:
php-versions: ['7.4', '8.1']
branches: ['master']
steps:
- uses: actions/checkout@v2
with:
ref: ${{ matrix.branches }}
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 16.x
- name: Setup PHP with Composer
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: composer:v2
ini-values: memory_limit=1024M
- name: Start MySQL service
run: sudo systemctl start mysql
- name: Create DB table
run: mysql -h 127.0.0.1 --port 8888 -u root -ppassword -e 'CREATE DATABASE IF NOT EXISTS integration_test;'
- name: NPM install
run: npm install
- name: Build
run: grunt test
- name: Integration testing
run: vendor/bin/phpunit tests/integration
+48
View File
@@ -0,0 +1,48 @@
name: Test
on:
push:
branches:
- 'master'
- 'fix'
paths:
- '**.php'
- '**.json'
- '**.yml'
- 'composer.lock'
- 'phpstan.neon'
pull_request:
paths:
- '**.php'
- '**.json'
- '**.yml'
- 'composer.lock'
- 'phpstan.neon'
jobs:
test:
name: Test on PHP ${{ matrix.php-versions }}
runs-on: ubuntu-20.04
strategy:
matrix:
php-versions: ['7.4', '8.0', '8.1']
steps:
- uses: actions/checkout@v2
- name: Setup PHP with Composer
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: composer:v2
ini-values: memory_limit=1024M
- name: Composer install
run: composer install
- name: Static analysis
run: vendor/bin/phpstan
- name: Unit testing
run: vendor/bin/phpunit tests/unit
+12 -4
View File
@@ -4,10 +4,11 @@
/data/preferences/*
/data/.backup/*
/data/config.php
/data/config-internal.php
/data/tmp/*
/build
/node_modules
npm-debug.log
/npm-debug.log
/test.php
/main.html
@@ -15,7 +16,14 @@ npm-debug.log
!/tests/unit/testData/cache/.data
/tests/integration/config.php
.phpunit.result.cache
composer.phar
vendor/
/composer.phar
/vendor/
/custom/Espo/Custom/*
/install/config.php
/custom/Espo/Modules/*
!/custom/Espo/Custom/.htaccess
!/custom/Espo/Modules/.htaccess
/install/config.php
client/css/espo/*
client/lib/*
client/modules/crm/lib/*
+35 -15
View File
@@ -1,24 +1,44 @@
<ifModule mod_headers.c>
Header always set Access-Control-Allow-Methods "POST, GET, PUT, PATCH, DELETE"
Header always set Access-Control-Allow-Methods "POST, GET, PUT, PATCH, DELETE"
</ifModule>
DirectoryIndex index.php index.html
DirectoryIndex index.php
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteEngine On
# PROTECTED DIRECTORIES
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^/?(api|client)/ - [F]
# Forbid access. Not actual as redirect to `public` is applied.
# An extra security measure if redirect not fired.
RewriteRule ^/?data/ - [F]
RewriteRule ^/?application/ - [F]
RewriteRule ^/?custom/ - [F]
RewriteRule ^/?vendor/ - [F]
RewriteRule /?web\.config - [F]
RewriteRule ^/?data/ - [F]
RewriteRule ^/?application/ - [F]
RewriteRule ^/?custom/ - [F]
RewriteRule ^/?vendor/ - [F]
RewriteRule ^/?client/?$ - [F]
#END PROTECTED DIRECTORIES
# Forbid `public` dir.
RewriteCond %{ENV:REDIRECT_STATUS} !=200
RewriteRule ^/?public/? - [F,L]
RewriteRule .* - [E=HTTP_ESPO_CGI_AUTH:%{HTTP:Authorization}]
# Skip redirect for `client` dir.
RewriteRule ^client/ - [L]
RewriteRule /?web\.config - [F]
</IfModule>
# {#dev}
# Skip redirect for `node_modules` dir. Actual only for dev environment.
RewriteRule ^node_modules/ - [L]
# {/dev}
# Store base path.
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]
# Add trailing slash.
RewriteCond %{DOCUMENT_ROOT}/%{ENV:BASE}/public/$1 -d
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=301,NE]
# Rewrite to `public` dir.
RewriteRule ^((?!public/).*)$ %{ENV:BASE}/public/$1 [L,NC]
RewriteRule .* - [E=HTTP_ESPO_CGI_AUTH:%{HTTP:Authorization}]
</IfModule>
+1
View File
@@ -0,0 +1 @@
tag-version-prefix = ""
-15
View File
@@ -1,15 +0,0 @@
## Pull Requests
Before we can merge your pull request you need to accept our CLA [here](https://github.com/espocrm/cla). It's very simple to do.
[Code Style Guidelines](https://github.com/espocrm/espocrm/wiki/Code-Style-Guidelines).
Branches:
* *hotfix/** upcoming maintenance release; fixes should be pushed to this branch;
* *master* develop branch; new features should be pushed to this branch;
* *stable* last stable release.
## Issues
We don't provide developer help or any kind of support on github. Please use our [forum](https://forum.espocrm.com) for this.
+343 -195
View File
@@ -2,7 +2,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -19,112 +19,68 @@
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
************************************************************************/
/**
* * `grunt` - full build
* * `grunt dev` - build only items needed for development (takes less time)
* * `grunt offline` - build but skip *composer install*
* * `grant release` - full build plus upgrade packages`
* * `grant test` - build for test running
* * `grant run-tests` - build and run unit and integratino tests
*/
/**
* * `grunt` - full build;
* * `grunt dev` - build only items needed for development (takes less time);
* * `grunt offline` - build but skip *composer install*;
* * `grunt internal` - build only libs and css;
* * `grunt release` - full build plus upgrade packages`;
* * `grunt test` - build for tests running;
* * `grunt run-tests` - build and run unit and integration tests.
*/
module.exports = function (grunt) {
const fs = require('fs');
const cp = require('child_process');
const path = require('path');
var jsFilesToMinify = [
'client/lib/jquery-2.1.4.min.js',
'client/lib/underscore-min.js',
'client/lib/es6-promise.min.js',
'client/lib/backbone-min.js',
'client/lib/handlebars.js',
'client/lib/base64.js',
'client/lib/jquery-ui.min.js',
'client/lib/jquery.ui.touch-punch.min.js',
'client/lib/moment.min.js',
'client/lib/moment-timezone.min.js',
'client/lib/moment-timezone-data.js',
'client/lib/jquery.timepicker.min.js',
'client/lib/jquery.autocomplete.js',
'client/lib/bootstrap.min.js',
'client/lib/bootstrap-datepicker.js',
'client/lib/bull.js',
'client/lib/marked.min.js',
'client/lib/autobahn.js',
module.exports = grunt => {
'client/src/namespace.js',
'client/src/exceptions.js',
'client/src/loader.js',
'client/src/utils.js',
const pkg = grunt.file.readJSON('package.json');
const bundleConfig = require('./frontend/bundle-config.json');
'client/src/acl.js',
'client/src/model.js',
'client/src/model-offline.js',
'client/src/ajax.js',
'client/src/controller.js',
let jsFilesToBundle = getBundleLibList().concat(bundleConfig.jsFiles);
let jsFilesToCopy = getCopyLibDataList();
'client/src/ui.js',
'client/src/acl-manager.js',
'client/src/cache.js',
'client/src/storage.js',
'client/src/models/settings.js',
'client/src/language.js',
'client/src/metadata.js',
'client/src/field-manager.js',
'client/src/models/user.js',
'client/src/models/preferences.js',
'client/src/model-factory.js',
'client/src/collection-factory.js',
'client/src/pre-loader.js',
'client/src/controllers/base.js',
'client/src/router.js',
'client/src/date-time.js',
'client/src/layout-manager.js',
'client/src/theme-manager.js',
'client/src/session-storage.js',
'client/src/view-helper.js',
'client/src/page-title.js',
let libFilesToMinify = jsFilesToCopy
.filter(item => item.minify)
.reduce((map, item) => (
map[item.dest] = item.dest,
map
), {});
'client/src/app.js'
];
let currentPath = path.dirname(fs.realpathSync(__filename));
function camelCaseToHyphen (string){
if (string == null) {
return string;
}
return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}
let themeList = [];
var fs = require('fs');
var cp = require('child_process');
var path = require('path');
var currentPath = path.dirname(fs.realpathSync(__filename));
var themeList = [];
fs.readdirSync('application/Espo/Resources/metadata/themes').forEach(function (file) {
fs.readdirSync('application/Espo/Resources/metadata/themes').forEach(file => {
themeList.push(file.substr(0, file.length - 5));
});
var cssminFilesData = {};
var lessData = {};
themeList.forEach(function (theme) {
var name = camelCaseToHyphen(theme);
var files = {};
let cssminFilesData = {};
let lessData = {};
themeList.forEach(theme => {
let name = camelCaseToHyphen(theme);
let files = {};
files['client/css/espo/'+name+'.css'] = 'frontend/less/'+name+'/main.less';
files['client/css/espo/'+name+'-iframe.css'] = 'frontend/less/'+name+'/iframe/main.less';
cssminFilesData['client/css/espo/'+name+'.css'] = 'client/css/espo/'+name+'.css';
cssminFilesData['client/css/espo/'+name+'-iframe.css'] = 'client/css/espo/'+name+'-iframe.css';
var o = {
let o = {
options: {
yuicompress: true,
},
files: files
files: files,
};
lessData[theme] = o;
});
var pkg = grunt.file.readJSON('package.json');
grunt.initConfig({
pkg: pkg,
@@ -134,44 +90,71 @@ module.exports = function (grunt) {
mode: 0755,
create: [
'build/tmp',
]
},
],
}
}
},
clean: {
start: ['build/EspoCRM-*'],
start: [
'build/EspoCRM-*',
'client/lib/*',
'client/modules/crm/lib/*',
'client/css/espo/*',
],
final: ['build/tmp'],
release: ['build/EspoCRM-' + pkg.version],
beforeFinal: {
src: [
'build/tmp/custom/Espo/Custom/*',
'build/tmp/custom/Espo/Modules/*',
'!build/tmp/custom/Espo/Custom/.htaccess',
'!build/tmp/custom/Espo/Modules/.htaccess',
'build/tmp/install/config.php',
'build/tmp/vendor/*/*/.git',
'build/tmp/custom/Espo/Custom/*',
'build/tmp/client/custom/*',
'!build/tmp/client/custom/modules',
'build/tmp/client/custom/modules/*',
'!build/tmp/client/custom/modules/dummy.txt',
]
}
},
less: lessData,
cssmin: {
themes: {
files: cssminFilesData
}
files: cssminFilesData,
},
},
uglify: {
options: {
mangle: false,
mangle: true,
sourceMap: true,
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
output: {
comments: /^!/,
},
},
bundle: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
},
files: {
'client/lib/espo.min.js': jsFilesToBundle,
},
},
lib: {
files: libFilesToMinify,
},
'build/tmp/client/espo.min.js': jsFilesToMinify.map(function (item) {
return '' + item;
})
},
copy: {
options: {
mode: true,
},
frontendFolders: {
frontend: {
expand: true,
cwd: 'client',
src: [
@@ -183,39 +166,36 @@ module.exports = function (grunt) {
'img/**',
'css/**',
'sounds/**',
'custom/**'
'custom/**',
'lib/**',
],
dest: 'build/tmp/client',
},
frontendLib: {
expand: true,
dot: true,
cwd: 'client/lib',
src: '**',
dest: 'build/tmp/client/lib/',
files: jsFilesToCopy,
},
backend: {
expand: true,
dot: true,
src: [
'api/**',
'application/**',
'custom/**',
'data/.data',
'install/**',
'portal/**',
'vendor/**',
'html/**',
'public/**',
'install/**',
'bin/**',
'bootstrap.php',
'cron.php',
'daemon.php',
'rebuild.php',
'clear_cache.php',
'preload.php',
'upgrade.php',
'extension.php',
'websocket.php',
'command.php',
'oauth-callback.php',
'index.php',
'LICENSE.txt',
'.htaccess',
@@ -231,120 +211,205 @@ module.exports = function (grunt) {
dest: 'build/EspoCRM-<%= pkg.version %>/',
},
},
chmod: {
php: {
options: {
mode: '644'
},
src: [
'build/EspoCRM-<%= pkg.version %>/**/*.php',
'build/EspoCRM-<%= pkg.version %>/**/*.json',
'build/EspoCRM-<%= pkg.version %>/**/*.config',
'build/EspoCRM-<%= pkg.version %>/**/.htaccess',
'build/EspoCRM-<%= pkg.version %>/client/**/*.js',
'build/EspoCRM-<%= pkg.version %>/client/**/*.css',
'build/EspoCRM-<%= pkg.version %>/client/**/*.tpl',
'build/EspoCRM-<%= pkg.version %>/**/*.html',
'build/EspoCRM-<%= pkg.version %>/**/*.txt',
]
},
folders: {
options: {
mode: '755'
},
src: [
'build/EspoCRM-<%= pkg.version %>/install',
'build/EspoCRM-<%= pkg.version %>/portal',
'build/EspoCRM-<%= pkg.version %>/api',
'build/EspoCRM-<%= pkg.version %>/api/v1',
'build/EspoCRM-<%= pkg.version %>/api/v1/portal-access',
'build/EspoCRM-<%= pkg.version %>',
]
},
foldersWritable: {
options: {
mode: '775'
},
src: [
'build/EspoCRM-<%= pkg.version %>/data',
'build/EspoCRM-<%= pkg.version %>/custom',
'build/EspoCRM-<%= pkg.version %>/custom/Espo',
'build/EspoCRM-<%= pkg.version %>/custom/Espo/Custom',
'build/EspoCRM-<%= pkg.version %>/client/custom',
'build/EspoCRM-<%= pkg.version %>/client/modules',
'build/EspoCRM-<%= pkg.version %>/application/Espo/Modules',
]
},
},
replace: {
version: {
options: {
patterns: [
{
match: 'version',
replacement: '<%= pkg.version %>'
replacement: '<%= pkg.version %>',
}
]
},
files: [
{
src: 'build/tmp/application/Espo/Core/defaults/config.php',
dest: 'build/tmp/application/Espo/Core/defaults/config.php'
src: 'build/tmp/application/Espo/Resources/defaults/config.php',
dest: 'build/tmp/application/Espo/Resources/defaults/config.php',
}
]
}
],
},
dev: {
options: {
patterns: [
{
match: /\# \{\#dev\}(.*)\{\/dev\}/gs,
replacement: '',
}
]
},
files: [
{
src: 'build/tmp/.htaccess',
dest: 'build/tmp/.htaccess',
}
],
},
},
});
grunt.registerTask("chmod-folders", function() {
cp.execSync("find . -type d -exec chmod 755 {} + ", {stdio: 'ignore', cwd: 'build/EspoCRM-' + pkg.version});
grunt.registerTask('chmod-folders', () => {
cp.execSync(
"find . -type d -exec chmod 755 {} +",
{
cwd: 'build/EspoCRM-' + pkg.version,
}
);
});
grunt.registerTask("composer", function() {
cp.execSync("composer install --ignore-platform-reqs --no-dev", {stdio: 'ignore'});
grunt.registerTask('chmod-multiple', () => {
let dirPath = 'build/EspoCRM-' + pkg.version;
let fileList = [
{
name: '*.php',
},
{
name: '*.json',
},
{
name: '*.config',
},
{
name: '.htaccess',
},
{
name: '*.html',
},
{
name: '*.txt',
},
{
name: '*.js',
folder: 'client',
},
{
name: '*.css',
folder: 'client',
},
{
name: '*.tpl',
folder: 'client',
},
];
let dirReadableList = [
'public/install',
'public/portal',
'public/api',
'public/api/v1',
'public/api/v1/portal-access',
'.',
];
let dirWritableList = [
'data',
'custom',
'custom/Espo',
'custom/Espo/Custom',
'client/custom',
'client/modules',
'application/Espo/Modules',
];
fileList.forEach(item => {
let path = item.folder || '.';
let name = item.name;
cp.execSync(
`find ${path} -type f -iname "${name}" -exec chmod 644 {} +`,
{
cwd: dirPath,
}
);
});
dirReadableList.forEach(item => {
cp.execSync(
`chmod 755 ${item}`,
{
cwd: dirPath,
}
);
});
dirWritableList.forEach(item => {
cp.execSync(
`chmod 775 ${item}`,
{
cwd: dirPath,
}
);
});
cp.execSync(
`find bin -type f -exec chmod 754 {} +`,
{
cwd: dirPath,
}
);
});
grunt.registerTask("composer-dev", function() {
cp.execSync("composer install --ignore-platform-reqs", {stdio: 'ignore'});
grunt.registerTask('composer-install', () => {
cp.execSync("composer install --no-dev", {stdio: 'ignore'});
});
grunt.registerTask("upgrade", function() {
grunt.registerTask('composer-install-dev', () => {
cp.execSync("composer install", {stdio: 'ignore'});
});
grunt.registerTask('upgrade', () => {
cp.execSync("node diff --all --vendor", {stdio: 'inherit'});
});
grunt.registerTask("unit-tests-run", function() {
cp.execSync("vendor/bin/phpunit --bootstrap=./vendor/autoload.php tests/unit", {stdio: 'inherit'});
grunt.registerTask('unit-tests-run', () => {
cp.execSync("vendor/bin/phpunit ./tests/unit", {stdio: 'inherit'});
});
grunt.registerTask("integration-tests-run", function() {
cp.execSync("vendor/bin/phpunit --bootstrap=./vendor/autoload.php tests/integration", {stdio: 'inherit'});
grunt.registerTask('integration-tests-run', () => {
cp.execSync("vendor/bin/phpunit ./tests/integration", {stdio: 'inherit'});
});
grunt.registerTask("zip", function() {
var fs = require('fs');
grunt.registerTask('set-config-params', () => {
cp.execSync("composer run-script setConfigParams", {stdio: 'ignore'});
});
var resolve = this.async();
grunt.registerTask('zip', () => {
const archiver = require('archiver');
var folder = 'EspoCRM-' + pkg.version;
let resolve = this.async();
var zipPath = 'build/' + folder +'.zip';
if (fs.existsSync(zipPath)) fs.unlinkSync(zipPath);
let folder = 'EspoCRM-' + pkg.version;
var archiver = require('archiver');
var archive = archiver('zip');
let zipPath = 'build/' + folder +'.zip';
archive.on('error', function (err) {
if (fs.existsSync(zipPath)) {
fs.unlinkSync(zipPath);
}
let archive = archiver('zip');
archive.on('error', err => {
grunt.fail.warn(err);
});
var zipOutput = fs.createWriteStream(zipPath);
zipOutput.on('close', function () {
let zipOutput = fs.createWriteStream(zipPath);
zipOutput.on('close', () => {
console.log("EspoCRM package has been built.");
resolve();
});
archive.directory(currentPath + '/build/' + folder, folder).pipe(zipOutput);
archive
.directory(currentPath + '/build/' + folder, folder)
.pipe(zipOutput)
.finalize();
});
archive.finalize();
grunt.registerTask('npm-install', () => {
cp.execSync("npm ci", {stdio: 'ignore'});
});
grunt.loadNpmTasks('grunt-contrib-clean');
@@ -354,34 +419,42 @@ module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-replace');
grunt.loadNpmTasks('grunt-chmod');
grunt.registerTask('internal', [
'less',
'cssmin',
'uglify:bundle',
'copy:frontendLib',
'uglify:lib',
]);
grunt.registerTask('offline', [
'clean:start',
'mkdir:tmp',
'less',
'cssmin',
'uglify',
'copy:frontendFolders',
'copy:frontendLib',
'internal',
'copy:frontend',
'copy:backend',
'replace',
'clean:beforeFinal',
'copy:final',
'chmod-folders',
'chmod:php',
'chmod:folders',
'chmod:foldersWritable',
'chmod-multiple',
'clean:final',
]);
grunt.registerTask('default', [
'composer',
grunt.registerTask('build', [
'composer-install',
'npm-install',
'set-config-params',
'offline',
]);
grunt.registerTask('default', [
'build',
]);
grunt.registerTask('release', [
'default',
'build',
'upgrade',
'zip',
'clean:release',
@@ -394,7 +467,7 @@ module.exports = function (grunt) {
]);
grunt.registerTask('run-unit-tests', [
'composer-dev',
'composer-install-dev',
'unit-tests-run',
]);
@@ -404,12 +477,87 @@ module.exports = function (grunt) {
]);
grunt.registerTask('dev', [
'composer-dev',
'composer-install-dev',
'less',
]);
grunt.registerTask('test', [
'composer-dev',
'composer-install-dev',
'npm-install',
'offline',
]);
};
function getBundleLibList() {
const libs = require('./frontend/libs.json');
let list = [];
libs.forEach(item => {
if (!item.bundle) {
return;
}
if (item.files) {
item.files.forEach(item => {
list.push(item.src);
});
return;
}
if (!item.src) {
throw new Error("No lib src.");
}
list.push(item.src);
});
return list;
}
function getCopyLibDataList() {
const libs = require('./frontend/libs.json');
let list = [];
libs.forEach(item => {
if (item.bundle) {
return;
}
let minify = item.minify;
if (item.files) {
item.files.forEach(item => {
list.push({
src: item.src,
dest: item.dest || 'client/lib/' + item.src.split('/').pop(),
minify: minify,
});
});
return;
}
if (!item.src) {
throw new Error("No lib src.");
}
list.push({
src: item.src,
dest: item.dest || 'client/lib/' + item.src.split('/').pop(),
minify: minify,
});
});
return list;
}
function camelCaseToHyphen(string){
if (string === null) {
return string;
}
return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}
+10 -8
View File
@@ -1,6 +1,8 @@
## EspoCRM
[EspoCRM is an Open Source CRM](https://www.espocrm.com) (Customer Relationship Management) software that allows you to see, enter and evaluate all your company relationships regardless of the type. People, companies or opportunities - all in an easy and intuitive interface.
[![PHPStan level 8](https://img.shields.io/badge/PHPStan-level%208-brightgreen)](#espocrm)
[EspoCRM is an Open Source CRM](https://www.espocrm.com) (Customer Relationship Management) software that allows you to see, enter and evaluate all your company relationships regardless of the type. People, companies or opportunities all in an easy and intuitive interface.
It's a web application with a frontend designed as a single page application and REST API backend written in PHP.
@@ -8,22 +10,22 @@ It's a web application with a frontend designed as a single page application and
### Requirements
* PHP 7.2 and later (with pdo, json, gd, openssl, zip, imap, mbstring, curl extensions);
* PHP 7.4 and later (with pdo, json, gd, openssl, zip, imap, mbstring, curl extensions);
* MySQL 5.7 (and later), or MariaDB 10.1 (and later).
For more information about server configuration see [this article](https://docs.espocrm.com/administration/server-configuration/).
### Documentation
Documentation for administrators, users and developers is available [here](https://docs.espocrm.com).
The documentation for administrators, users and developers is available [here](https://docs.espocrm.com).
### How to report a bug
### Bug reporting
Create an issue [here](https://github.com/espocrm/espocrm/issues) or post on our [forum](http://forum.espocrm.com/forum/bug-reports).
### How to install a stable version
### Installing the stable version
[Download](https://www.espocrm.com/download/) the latest version. See the [instructions](https://docs.espocrm.com/administration/installation/) about installation.
See the [instructions](https://docs.espocrm.com/administration/installation/) about installation.
### Development
@@ -31,13 +33,13 @@ Create an issue [here](https://github.com/espocrm/espocrm/issues) or post on our
* [Running tests](https://docs.espocrm.com/development/tests)
* [Making translation](https://docs.espocrm.com/development/translation)
### How to contribute
### Contributing
Before we can merge your pull request you need to accept our CLA [here](https://github.com/espocrm/cla). It's very simple to do.
Branches:
* *hotfix/** upcoming maintenance release; fixes should be pushed to this branch;
* *fix* upcoming maintenance release; fixes should be pushed to this branch;
* *master* develop branch; new features should be pushed to this branch;
* *stable* last stable release.
-93
View File
@@ -1,93 +0,0 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Acl;
use \Espo\Entities\User as EntityUser;
use \Espo\ORM\Entity;
class Attachment extends \Espo\Core\Acl\Base
{
public function checkEntityRead(EntityUser $user, Entity $entity, $data)
{
if ($user->isAdmin()) {
return true;
}
if ($entity->get('parentType') === 'Settings') {
return true;
}
$parent = null;
$hasParent = false;
if ($entity->get('parentId') && $entity->get('parentType')) {
$hasParent = true;
$parent = $this->getEntityManager()->getEntity($entity->get('parentType'), $entity->get('parentId'));
} else if ($entity->get('relatedId') && $entity->get('relatedType')) {
$hasParent = true;
$parent = $this->getEntityManager()->getEntity($entity->get('relatedType'), $entity->get('relatedId'));
}
if ($hasParent) {
if ($parent) {
if ($parent->getEntityType() === 'Note') {
if ($parent->get('parentId') && $parent->get('parentType')) {
$parentOfParent = $this->getEntityManager()->getEntity($parent->get('parentType'), $parent->get('parentId'));
if ($parentOfParent && $this->getAclManager()->checkEntity($user, $parentOfParent)) {
return true;
}
} else {
return true;
}
} else {
if ($this->getAclManager()->checkEntity($user, $parent)) {
return true;
}
}
}
} else {
return true;
}
if ($this->checkEntity($user, $entity, $data, 'read')) {
return true;
}
return false;
}
public function checkIsOwner(EntityUser $user, Entity $entity)
{
if ($user->id === $entity->get('createdById')) {
return true;
}
return false;
}
}
-121
View File
@@ -1,121 +0,0 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Acl;
use \Espo\Entities\User as EntityUser;
use \Espo\ORM\Entity;
class Email extends \Espo\Core\Acl\Base
{
protected $ownerUserIdAttribute = 'usersIds';
public function checkEntityRead(EntityUser $user, Entity $entity, $data)
{
if ($this->checkEntity($user, $entity, $data, 'read')) {
return true;
}
if ($data === false) {
return false;
}
if (is_object($data)) {
if ($data->read === false || $data->read === 'no') {
return false;
}
}
if (!$entity->has('usersIds')) {
$entity->loadLinkMultipleField('users');
}
$userIdList = $entity->get('usersIds');
if (is_array($userIdList) && in_array($user->id, $userIdList)) {
return true;
}
return false;
}
public function checkIsOwner(EntityUser $user, Entity $entity)
{
if ($user->id === $entity->get('assignedUserId')) {
return true;
}
if ($user->id === $entity->get('createdById')) {
return true;
}
if ($entity->hasLinkMultipleId('assignedUsers', $user->id)) {
return true;
}
return false;
}
public function checkEntityDelete(EntityUser $user, Entity $entity, $data)
{
if ($user->isAdmin()) {
return true;
}
if ($data === false) {
return false;
}
if ($data->delete === 'own') {
if ($user->id === $entity->get('assignedUserId')) {
return true;
}
if ($user->id === $entity->get('createdById')) {
return true;
}
$assignedUserIdList = $entity->getLinkMultipleIdList('assignedUsers');
if (count($assignedUserIdList) === 1 && $entity->hasLinkMultipleId('assignedUsers', $user->id)) {
return true;
}
return false;
}
if ($this->checkEntity($user, $entity, $data, 'delete')) {
return true;
}
if ($data->edit !== 'no' || $data->create !== 'no') {
if ($entity->get('createdById') === $user->id) {
if ($entity->get('status') !== 'Sent' && $entity->get('status') !== 'Archived') {
return true;
}
}
}
return false;
}
}
-65
View File
@@ -1,65 +0,0 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Acl;
use \Espo\Entities\User as EntityUser;
use \Espo\ORM\Entity;
class EmailAddress extends \Espo\Core\Acl\Base
{
public function checkEditInEntity(EntityUser $user, Entity $entity, Entity $excludeEntity)
{
$id = $entity->id;
$isFobidden = false;
$repository = $this->getEntityManager()->getRepository('EmailAddress');
if (!$user->isAdmin()) {
$entityWithSameAddressList = $repository->getEntityListByAddressId($id, $excludeEntity);
foreach ($entityWithSameAddressList as $e) {
if (!$this->getAclManager()->check($user, $e, 'edit')) {
$isFobidden = true;
if (
$e->getEntityType() === 'User' &&
$e->isPortal() &&
$excludeEntity->getEntityType() === 'Contact' &&
$e->get('contactId') === $excludeEntity->id
) {
$isFobidden = false;
}
if ($isFobidden) break;
}
}
}
return !$isFobidden;
}
}
-119
View File
@@ -1,119 +0,0 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Acl;
use \Espo\Entities\User as EntityUser;
use \Espo\ORM\Entity;
class Note extends \Espo\Core\Acl\Base
{
protected $deleteThresholdPeriod = '1 month';
protected $editThresholdPeriod = '7 days';
public function checkIsOwner(EntityUser $user, Entity $entity)
{
if ($entity->get('type') === 'Post' && $user->id === $entity->get('createdById')) {
return true;
}
return false;
}
public function checkEntityCreate(EntityUser $user, Entity $entity, $data)
{
if ($entity->get('parentId') && $entity->get('parentType')) {
$parent = $this->getEntityManager()->getEntity($entity->get('parentType'), $entity->get('parentId'));
if ($parent) {
if ($this->getAclManager()->checkEntity($user, $parent, 'stream')) {
return true;
}
}
return false;
}
return true;
}
public function checkEntityEdit(EntityUser $user, Entity $entity, $data)
{
if ($user->isAdmin()) {
return true;
}
if ($this->checkEntity($user, $entity, $data, 'edit')) {
if ($this->checkIsOwner($user, $entity)) {
$createdAt = $entity->get('createdAt');
if ($createdAt) {
$noteEditThresholdPeriod = '-' . $this->getConfig()->get('noteEditThresholdPeriod', $this->editThresholdPeriod);
$dt = new \DateTime();
$dt->modify($noteEditThresholdPeriod);
try {
if ($dt->format('U') > (new \DateTime($createdAt))->format('U')) {
return false;
}
} catch (\Exception $e) {
return false;
}
}
}
return true;
}
return false;
}
public function checkEntityDelete(EntityUser $user, Entity $entity, $data)
{
if ($user->isAdmin()) {
return true;
}
if ($this->checkEntity($user, $entity, $data, 'delete')) {
if ($this->checkIsOwner($user, $entity)) {
$createdAt = $entity->get('createdAt');
if ($createdAt) {
$deleteThresholdPeriod = '-' . $this->getConfig()->get('noteDeleteThresholdPeriod', $this->deleteThresholdPeriod);
$dt = new \DateTime();
$dt->modify($deleteThresholdPeriod);
try {
if ($dt->format('U') > (new \DateTime($createdAt))->format('U')) {
return false;
}
} catch (\Exception $e) {
return false;
}
}
}
return true;
}
return false;
}
}
-65
View File
@@ -1,65 +0,0 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Acl;
use \Espo\Entities\User as EntityUser;
use \Espo\ORM\Entity;
class PhoneNumber extends \Espo\Core\Acl\Base
{
public function checkEditInEntity(EntityUser $user, Entity $entity, Entity $excludeEntity)
{
$id = $entity->id;
$isFobidden = false;
$repository = $this->getEntityManager()->getRepository('PhoneNumber');
if (!$user->isAdmin()) {
$entityWithSameNumberList = $repository->getEntityListByPhoneNumberId($id, $excludeEntity);
foreach ($entityWithSameNumberList as $e) {
if (!$this->getAclManager()->check($user, $e, 'edit')) {
$isFobidden = true;
if (
$e->getEntityType() === 'User' &&
$e->isPortal() &&
$excludeEntity->getEntityType() === 'Contact' &&
$e->get('contactId') === $excludeEntity->id
) {
$isFobidden = false;
}
if ($isFobidden) break;
}
}
}
return !$isFobidden;
}
}
-73
View File
@@ -1,73 +0,0 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Acl;
use \Espo\Entities\User as EntityUser;
use \Espo\ORM\Entity;
class Webhook extends \Espo\Core\Acl\Base
{
public function checkIsOwner(EntityUser $user, Entity $entity)
{
return $user->id === $entity->get('userId') && $user->isApi();
}
public function checkEntityCreate(EntityUser $user, Entity $entity, $data)
{
if ($user->isAdmin()) return true;
if (!$data) return false;
if ($user->isApi() && $user->id === $entity->get('userId')) return true;
return false;
}
public function checkEntityRead(EntityUser $user, Entity $entity, $data)
{
if ($user->isAdmin()) return true;
if (!$data) return false;
if ($user->isApi() && $user->id === $entity->get('userId')) return true;
return false;
}
public function checkEntityDelete(EntityUser $user, Entity $entity, $data)
{
if ($user->isAdmin()) return true;
if (!$data) return false;
if ($user->isApi() && $user->id === $entity->get('userId')) return true;
return false;
}
public function checkEntityEdit(EntityUser $user, Entity $entity, $data)
{
if ($user->isAdmin()) return true;
if (!$data) return false;
if ($user->isApi() && $user->id === $entity->get('userId')) return true;
return false;
}
}
-93
View File
@@ -1,93 +0,0 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\AclPortal;
use \Espo\Entities\User as EntityUser;
use \Espo\ORM\Entity;
class Attachment extends \Espo\Core\AclPortal\Base
{
public function checkEntityRead(EntityUser $user, Entity $entity, $data)
{
if ($user->isAdmin()) {
return true;
}
if ($entity->get('parentType') === 'Settings') {
return true;
}
$parent = null;
$hasParent = false;
if ($entity->get('parentId') && $entity->get('parentType')) {
$hasParent = true;
$parent = $this->getEntityManager()->getEntity($entity->get('parentType'), $entity->get('parentId'));
} else if ($entity->get('relatedId') && $entity->get('relatedType')) {
$hasParent = true;
$parent = $this->getEntityManager()->getEntity($entity->get('relatedType'), $entity->get('relatedId'));
}
if ($hasParent) {
if ($parent) {
if ($parent->getEntityType() === 'Note') {
if ($parent->get('parentId') && $parent->get('parentType')) {
$parentOfParent = $this->getEntityManager()->getEntity($parent->get('parentType'), $parent->get('parentId'));
if ($parentOfParent && $this->getAclManager()->checkEntity($user, $parentOfParent)) {
return true;
}
} else {
return true;
}
} else {
if ($this->getAclManager()->checkEntity($user, $parent)) {
return true;
}
}
}
} else {
return true;
}
if ($this->checkEntity($user, $entity, $data, 'read')) {
return true;
}
return false;
}
public function checkIsOwner(EntityUser $user, Entity $entity)
{
if ($user->id === $entity->get('createdById')) {
return true;
}
return false;
}
}
@@ -0,0 +1,49 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\ActionHistoryRecord;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\ActionHistoryRecord>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
public function checkOwn(User $user, Entity $entity): bool
{
return $entity->get('userId') === $user->getId();
}
}
@@ -0,0 +1,171 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Attachment;
use Espo\Entities\{
User,
Note,
Attachment,
};
use Espo\ORM\Entity;
use Espo\Core\{
ORM\EntityManager,
AclManager,
Acl\ScopeData,
Acl\DefaultAccessChecker,
Acl\AccessEntityCREDChecker,
Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDChecker<Attachment>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
private $aclManager;
private $entityManager;
public function __construct(
DefaultAccessChecker $defaultAccessChecker,
AclManager $aclManager,
EntityManager $entityManager
) {
$this->defaultAccessChecker = $defaultAccessChecker;
$this->aclManager = $aclManager;
$this->entityManager = $entityManager;
}
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
/** @var Attachment $entity */
if ($entity->get('parentType') === 'Settings') {
// Allow the logo.
return true;
}
$parent = null;
$parentType = $entity->get('parentType');
$parentId = $entity->get('parentId');
$relatedType = $entity->get('relatedType');
$relatedId = $entity->get('relatedId');
if ($parentId && $parentType) {
$parent = $this->entityManager->getEntityById($parentType, $parentId);
}
else if ($relatedId && $relatedType) {
$parent = $this->entityManager->getEntityById($relatedType, $relatedId);
}
if (!$parent) {
if ($this->defaultAccessChecker->checkEntityRead($user, $entity, $data)) {
return true;
}
return false;
}
if ($parent->getEntityType() === 'Note') {
/** @var Note $parent */
$result = $this->checkEntityReadNoteParent($user, $parent);
if ($result !== null) {
return $result;
}
}
else if ($this->aclManager->checkEntity($user, $parent)) {
if (
$entity->getTargetField() &&
in_array(
$entity->getTargetField(),
$this->aclManager->getScopeForbiddenFieldList($user, $parent->getEntityType())
)
) {
return false;
}
return true;
}
if ($this->defaultAccessChecker->checkEntityRead($user, $entity, $data)) {
return true;
}
return false;
}
private function checkEntityReadNoteParent(User $user, Note $note): ?bool
{
if ($note->getTargetType() === Note::TARGET_TEAMS) {
$intersect = array_intersect(
$note->getLinkMultipleIdList('teams') ?? [],
$user->getLinkMultipleIdList('teams') ?? []
);
if (count($intersect)) {
return true;
}
return null;
}
if ($note->getTargetType() === Note::TARGET_USERS) {
$isRelated = $this->entityManager
->getRDBRepository('Note')
->getRelation($note, 'users')
->isRelated($user);
if ($isRelated) {
return true;
}
return null;
}
if (!$note->getParentId() || !$note->getParentType()) {
return null;
}
$parent = $this->entityManager->getEntity($note->getParentType(), $note->getParentId());
if ($parent && $this->aclManager->checkEntity($user, $parent)) {
return true;
}
return null;
}
}
@@ -0,0 +1,55 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Attachment;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Attachment>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
private const ATTR_CREATED_BY_ID = 'createdById';
public function checkOwn(User $user, Entity $entity): bool
{
if ($user->getId() === $entity->get(self::ATTR_CREATED_BY_ID)) {
return true;
}
return false;
}
}
@@ -0,0 +1,59 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\AuthToken;
use Espo\Entities\User;
use Espo\Core\{
Acl\ScopeData,
Acl\DefaultAccessChecker,
Acl\AccessEntityCREDChecker,
Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\AuthToken>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
private $defaultAccessChecker;
public function __construct(DefaultAccessChecker $defaultAccessChecker)
{
$this->defaultAccessChecker = $defaultAccessChecker;
}
public function checkCreate(User $user, ScopeData $data): bool
{
return false;
}
}
@@ -0,0 +1,171 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Email;
use Espo\Entities\User;
use Espo\Entities\Email;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\Table,
Acl\ScopeData,
Acl\DefaultAccessChecker,
Acl\AccessEntityCREDSChecker,
Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDSChecker<\Espo\Entities\Email>
*/
class AccessChecker implements AccessEntityCREDSChecker
{
use DefaultAccessCheckerDependency;
public function __construct(DefaultAccessChecker $defaultAccessChecker)
{
$this->defaultAccessChecker = $defaultAccessChecker;
}
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
/** @var Email $entity */
if ($this->defaultAccessChecker->checkEntityRead($user, $entity, $data)) {
return true;
}
if ($data->isFalse()) {
return false;
}
if ($data->getRead() === Table::LEVEL_NO) {
return false;
}
if (!$entity->has('usersIds')) {
$entity->loadLinkMultipleField('users');
}
$userIdList = $entity->get('usersIds');
if (is_array($userIdList) && in_array($user->getId(), $userIdList)) {
return true;
}
return false;
}
public function checkEntityDelete(User $user, Entity $entity, ScopeData $data): bool
{
/** @var Email $entity */
if ($user->isAdmin()) {
return true;
}
if ($data->isFalse()) {
return false;
}
if ($data->getDelete() === Table::LEVEL_OWN) {
if ($user->getId() === $entity->get('assignedUserId')) {
return true;
}
if ($user->getId() === $entity->get('createdById')) {
return true;
}
/** @var string[] */
$assignedUserIdList = $entity->getLinkMultipleIdList('assignedUsers');
if (
count($assignedUserIdList) === 1 &&
$entity->hasLinkMultipleId('assignedUsers', $user->getId())
) {
return true;
}
return false;
}
if ($this->defaultAccessChecker->checkEntityDelete($user, $entity, $data)) {
return true;
}
if ($data->getEdit() === Table::LEVEL_NO && $data->getCreate() === Table::LEVEL_NO) {
return false;
}
if ($entity->get('createdById') !== $user->getId()) {
return false;
}
if ($entity->get('status') !== 'Sent' && $entity->get('status') !== 'Archived') {
return true;
}
return false;
}
public function checkEntityEdit(User $user, Entity $entity, ScopeData $data): bool
{
/** @var Email $entity */
if (
$entity->getStatus() === Email::STATUS_DRAFT &&
$entity->getCreatedBy() &&
$entity->getCreatedBy()->getId() === $user->getId()
) {
return true;
}
return $this->defaultAccessChecker->checkEntityEdit($user, $entity, $data);
}
public function checkEdit(User $user, ScopeData $data): bool
{
if ($data->getCreate() === Table::LEVEL_YES) {
return true;
}
return $this->defaultAccessChecker->checkEdit($user, $data);
}
public function checkDelete(User $user, ScopeData $data): bool
{
if ($data->getCreate() === Table::LEVEL_YES) {
return true;
}
return $this->defaultAccessChecker->checkDelete($user, $data);
}
}
@@ -0,0 +1,51 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Email;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\DefaultAssignmentChecker,
};
class AssignmentChecker extends DefaultAssignmentChecker
{
protected function isPermittedAssignedUser(User $user, Entity $entity): bool
{
return true;
}
protected function isPermittedAssignedUsers(User $user, Entity $entity): bool
{
return true;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,46 +27,53 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\AclPortal;
namespace Espo\Classes\Acl\Email;
use \Espo\Entities\User as EntityUser;
use \Espo\ORM\Entity;
use Espo\Entities\User;
use Espo\Entities\Email;
class Email extends \Espo\Core\AclPortal\Base
use Espo\ORM\Entity;
use Espo\Core\{
Acl\DefaultOwnershipChecker,
Acl\OwnershipOwnChecker,
Acl\OwnershipTeamChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Email>
* @implements OwnershipTeamChecker<\Espo\Entities\Email>
*/
class OwnershipChecker implements OwnershipOwnChecker, OwnershipTeamChecker
{
protected $ownerUserIdAttribute = 'usersIds';
private $defaultOwnershipChecker;
public function checkEntityRead(EntityUser $user, Entity $entity, $data)
public function __construct(DefaultOwnershipChecker $defaultOwnershipChecker)
{
if ($this->checkEntity($user, $entity, $data, 'read')) {
$this->defaultOwnershipChecker = $defaultOwnershipChecker;
}
public function checkOwn(User $user, Entity $entity): bool
{
/** @var Email $entity */
if ($user->getId() === $entity->get('assignedUserId')) {
return true;
}
if ($data === false) {
return false;
}
if (is_object($data)) {
if ($data->read === false || $data->read === 'no') {
return false;
}
}
if (!$entity->has('usersIds')) {
$entity->loadLinkMultipleField('users');
}
$userIdList = $entity->get('usersIds');
if (is_array($userIdList) && in_array($user->id, $userIdList)) {
if ($user->getId() === $entity->get('createdById')) {
return true;
}
if ($entity->hasLinkMultipleId('assignedUsers', $user->getId())) {
return true;
}
return false;
}
public function checkIsOwner(EntityUser $user, Entity $entity)
public function checkTeam(User $user, Entity $entity): bool
{
if ($user->id === $entity->get('createdById')) {
return true;
}
return false;
return $this->defaultOwnershipChecker->checkTeam($user, $entity);
}
}
@@ -0,0 +1,82 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\EmailFilter;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
ORM\EntityManager,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\EmailFilter>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
private $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function checkOwn(User $user, Entity $entity): bool
{
if (!$entity->has('parentId') || !$entity->has('parentType')) {
return false;
}
$parentType = $entity->get('parentType');
$parentId = $entity->get('parentId');
if (!$parentType || !$parentId) {
return false;
}
$parent = $this->entityManager->getEntity($parentType, $parentId);
if (!$parent) {
return false;
}
if ($parent->getEntityType() === 'User') {
return $parent->getId() === $user->getId();
}
if ($parent->has('assignedUserId') && $parent->get('assignedUserId') === $user->getId()) {
return true;
}
return false;
}
}
@@ -0,0 +1,88 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Import;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\ScopeData,
Acl\AccessEntityReadChecker,
Acl\AccessEntityDeleteChecker,
};
/**
* @implements AccessEntityReadChecker<\Espo\Entities\Import>
* @implements AccessEntityDeleteChecker<\Espo\Entities\Import>
*/
class AccessChecker implements AccessEntityReadChecker, AccessEntityDeleteChecker
{
public function check(User $user, ScopeData $data): bool
{
return $data->isTrue();
}
public function checkRead(User $user, ScopeData $data): bool
{
return $data->isTrue();
}
public function checkDelete(User $user, ScopeData $data): bool
{
return $data->isTrue();
}
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
if ($user->isAdmin()) {
return true;
}
if ($user->getId() === $entity->get('createdById')) {
return true;
}
return false;
}
public function checkEntityDelete(User $user, Entity $entity, ScopeData $data): bool
{
if ($user->isAdmin()) {
return true;
}
if ($user->getId() === $entity->get('createdById')) {
return true;
}
return false;
}
}
@@ -0,0 +1,175 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Note;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\ScopeData,
Acl\DefaultAccessChecker,
Acl\AccessEntityCREDChecker,
Acl\Traits\DefaultAccessCheckerDependency,
AclManager,
ORM\EntityManager,
Utils\Config,
};
use DateTime;
use Exception;
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\Note>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
private const EDIT_PERIOD = '7 days';
private const DELETE_PERIOD = '1 month';
private $defaultAccessChecker;
private $aclManager;
private $entityManager;
private $config;
public function __construct(
DefaultAccessChecker $defaultAccessChecker,
AclManager $aclManager,
EntityManager $entityManager,
Config $config
) {
$this->defaultAccessChecker = $defaultAccessChecker;
$this->aclManager = $aclManager;
$this->entityManager = $entityManager;
$this->config = $config;
}
public function checkEntityCreate(User $user, Entity $entity, ScopeData $data): bool
{
$parentId = $entity->get('parentId');
$parentType = $entity->get('parentType');
if (!$parentId || !$parentType) {
return true;
}
$parent = $this->entityManager->getEntity($parentType, $parentId);
if ($parent && $this->aclManager->checkEntityStream($user, $parent)) {
return true;
}
return false;
}
public function checkEntityEdit(User $user, Entity $entity, ScopeData $data): bool
{
if ($user->isAdmin()) {
return true;
}
if (!$this->defaultAccessChecker->checkEntityEdit($user, $entity, $data)) {
return false;
}
if (!$this->aclManager->checkOwnershipOwn($user, $entity)) {
return true;
}
$createdAt = $entity->get('createdAt');
if (!$createdAt) {
return true;
}
$noteEditThresholdPeriod =
'-' . $this->config->get('noteEditThresholdPeriod', self::EDIT_PERIOD);
$dt = new DateTime();
$dt->modify($noteEditThresholdPeriod);
try {
if ($dt->format('U') > (new DateTime($createdAt))->format('U')) {
return false;
}
}
catch (Exception $e) {
return false;
}
return true;
}
public function checkEntityDelete(User $user, Entity $entity, ScopeData $data): bool
{
if ($user->isAdmin()) {
return true;
}
if (!$this->defaultAccessChecker->checkEntityDelete($user, $entity, $data)) {
return false;
}
if (!$this->aclManager->checkOwnershipOwn($user, $entity)) {
return true;
}
$createdAt = $entity->get('createdAt');
if (!$createdAt) {
return true;
}
$deleteThresholdPeriod =
'-' . $this->config->get('noteDeleteThresholdPeriod', self::DELETE_PERIOD);
$dt = new DateTime();
$dt->modify($deleteThresholdPeriod);
try {
if ($dt->format('U') > (new DateTime($createdAt))->format('U')) {
return false;
}
}
catch (Exception $e) {
return false;
}
return true;
}
}
@@ -0,0 +1,53 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Note;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Note>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
public function checkOwn(User $user, Entity $entity): bool
{
if ($entity->get('type') === 'Post' && $user->getId() === $entity->get('createdById')) {
return true;
}
return false;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,22 +27,27 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Modules\Crm\AclPortal;
namespace Espo\Classes\Acl\Notification;
use \Espo\Entities\User;
use \Espo\ORM\Entity;
use Espo\Entities\User;
class Contact extends \Espo\Core\AclPortal\Base
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Notification>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
public function checkIsOwnContact(User $user, Entity $entity)
public function checkOwn(User $user, Entity $entity): bool
{
$contactId = $user->get('contactId');
if ($contactId) {
if ($entity->id === $contactId) {
return true;
}
if ($user->getId() === $entity->get('userId')) {
return true;
}
return false;
}
}
@@ -0,0 +1,66 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Portal;
use Espo\Entities\User;
use Espo\Core\{
Acl\ScopeData,
Acl\DefaultAccessChecker,
Acl\AccessEntityCREDChecker,
Acl\Traits\DefaultAccessCheckerDependency,
Acl\Table,
AclManager,
};
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\Portal>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
private $defaultAccessChecker;
private $aclManager;
public function __construct(DefaultAccessChecker $defaultAccessChecker, AclManager $aclManager)
{
$this->defaultAccessChecker = $defaultAccessChecker;
$this->aclManager = $aclManager;
}
public function check(User $user, ScopeData $data): bool
{
$level = $this->aclManager->getPermissionLevel($user, 'portal');
return $level === Table::LEVEL_YES;
}
}
@@ -0,0 +1,92 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\ScheduledJob;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\ScopeData,
Acl\DefaultAccessChecker,
Acl\AccessEntityCREDChecker,
Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\ScheduledJob>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
private $defaultAccessChecker;
public function __construct(DefaultAccessChecker $defaultAccessChecker)
{
$this->defaultAccessChecker = $defaultAccessChecker;
}
public function checkEntityCreate(User $user, Entity $entity, ScopeData $data): bool
{
if ($entity->get('isInternal')) {
return false;
}
return $this->defaultAccessChecker->checkEntityCreate($user, $entity, $data);
}
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
if ($entity->get('isInternal')) {
return false;
}
return $this->defaultAccessChecker->checkEntityRead($user, $entity, $data);
}
public function checkEntityEdit(User $user, Entity $entity, ScopeData $data): bool
{
if ($entity->get('isInternal')) {
return false;
}
return $this->defaultAccessChecker->checkEntityEdit($user, $entity, $data);
}
public function checkEntityDelete(User $user, Entity $entity, ScopeData $data): bool
{
if ($entity->get('isInternal')) {
return false;
}
return $this->defaultAccessChecker->checkEntityDelete($user, $entity, $data);
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,15 +27,26 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Acl;
namespace Espo\Classes\Acl\Team;
use \Espo\ORM\Entity;
use Espo\Entities\User;
class Team extends \Espo\Core\Acl\Base
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Team>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
public function checkInTeam(\Espo\Entities\User $user, Entity $entity)
public function checkOwn(User $user, Entity $entity): bool
{
/** @var string[] */
$userTeamIdList = $user->getLinkMultipleIdList('teams');
return in_array($entity->id, $userTeamIdList);
return in_array($entity->getId(), $userTeamIdList);
}
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,72 +27,116 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Acl;
namespace Espo\Classes\Acl\User;
use \Espo\ORM\Entity;
use \Espo\Entities\User as EntityUser;
use Espo\Entities\User;
class User extends \Espo\Core\Acl\Base
use Espo\ORM\Entity;
use Espo\Core\{
Acl\Table,
Acl\ScopeData,
Acl\DefaultAccessChecker,
Acl\AccessEntityCREDSChecker,
Acl\Traits\DefaultAccessCheckerDependency,
AclManager,
};
/**
* @implements AccessEntityCREDSChecker<User>
*/
class AccessChecker implements AccessEntityCREDSChecker
{
public function checkIsOwner(\Espo\Entities\User $user, Entity $entity)
use DefaultAccessCheckerDependency;
private $defaultAccessChecker;
private $aclManager;
public function __construct(DefaultAccessChecker $defaultAccessChecker, AclManager $aclManager)
{
return $user->id === $entity->id;
$this->defaultAccessChecker = $defaultAccessChecker;
$this->aclManager = $aclManager;
}
public function checkEntityRead(EntityUser $user, Entity $entity, $data)
public function checkEntityCreate(User $user, Entity $entity, ScopeData $data): bool
{
if (!$user->isAdmin() && $entity->isPortal()) {
if ($this->getAclManager()->get($user, 'portalPermission') === 'yes') {
if (!$user->isAdmin()) {
return false;
}
/** @var User $entity */
if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) {
return false;
}
return $this->defaultAccessChecker->checkEntityCreate($user, $entity, $data);
}
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
/** @var User $entity */
if ($entity->isPortal()) {
if ($this->aclManager->getPermissionLevel($user, 'portal') === Table::LEVEL_YES) {
return true;
}
}
return $this->checkEntity($user, $entity, $data, 'read');
}
public function checkEntityCreate(EntityUser $user, Entity $entity, $data)
{
if (!$user->isAdmin()) {
return false;
}
if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) {
return false;
}
return $this->checkEntity($user, $entity, $data, 'create');
return $this->defaultAccessChecker->checkEntityRead($user, $entity, $data);
}
public function checkEntityDelete(EntityUser $user, Entity $entity, $data)
public function checkEntityEdit(User $user, Entity $entity, ScopeData $data): bool
{
if ($entity->id === 'system') {
return false;
}
if (!$user->isAdmin()) {
return false;
}
/** @var User $entity */
if ($entity->isSystem()) {
return false;
}
if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) {
return false;
}
return parent::checkEntityDelete($user, $entity, $data);
}
public function checkEntityEdit(EntityUser $user, Entity $entity, $data)
{
if ($entity->id === 'system') {
return false;
}
if ($entity->isSystem()) {
return false;
}
if (!$user->isAdmin()) {
if ($user->id !== $entity->id) {
if ($user->getId() !== $entity->getId()) {
return false;
}
}
if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) {
return false;
}
return $this->checkEntity($user, $entity, $data, 'edit');
return $this->defaultAccessChecker->checkEntityEdit($user, $entity, $data);
}
public function checkEntityDelete(User $user, Entity $entity, ScopeData $data): bool
{
/** @var User $entity */
if (!$user->isAdmin()) {
return false;
}
if ($entity->isSystem()) {
return false;
}
if ($entity->isSuperAdmin() && !$user->isSuperAdmin()) {
return false;
}
return $this->defaultAccessChecker->checkEntityDelete($user, $entity, $data);
}
public function checkEntityStream(User $user, Entity $entity, ScopeData $data): bool
{
/** @var User $entity */
return $this->aclManager->checkUserPermission($user, $entity, 'user');
}
}
@@ -0,0 +1,67 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\User;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
Acl\OwnershipTeamChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\User>
* @implements OwnershipTeamChecker<\Espo\Entities\User>
*/
class OwnershipChecker implements OwnershipOwnChecker, OwnershipTeamChecker
{
public function checkOwn(User $user, Entity $entity): bool
{
return $user->getId() === $entity->getId();
}
public function checkTeam(User $user, Entity $entity): bool
{
assert($entity instanceof CoreEntity);
$intersect = array_intersect(
$user->getLinkMultipleIdList('teams') ?? [],
$entity->getLinkMultipleIdList('teams') ?? []
);
if (count($intersect)) {
return true;
}
return false;
}
}
@@ -0,0 +1,110 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Webhook;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\ScopeData,
Acl\DefaultAccessChecker,
Acl\AccessEntityCREDChecker,
Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\Webhook>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
private $defaultAccessChecker;
public function __construct(DefaultAccessChecker $defaultAccessChecker)
{
$this->defaultAccessChecker = $defaultAccessChecker;
}
public function check(User $user, ScopeData $data): bool
{
if ($user->isAdmin()) {
return true;
}
if (!$user->isApi()) {
return false;
}
if ($data->isFalse()) {
return false;
}
return true;
}
public function checkEntityCreate(User $user, Entity $entity, ScopeData $data): bool
{
return $this->checkEntityInternal($user, $entity, $data);
}
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
return $this->checkEntityInternal($user, $entity, $data);
}
public function checkEntityEdit(User $user, Entity $entity, ScopeData $data): bool
{
return $this->checkEntityInternal($user, $entity, $data);
}
public function checkEntityDelete(User $user, Entity $entity, ScopeData $data): bool
{
return $this->checkEntityInternal($user, $entity, $data);
}
private function checkEntityInternal(User $user, Entity $entity, ScopeData $data): bool
{
if ($user->isAdmin()) {
return true;
}
if ($data->isFalse()) {
return false;
}
if ($user->isApi() && $user->getId() === $entity->get('userId')) {
return true;
}
return false;
}
}
@@ -0,0 +1,46 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Acl\Webhook;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\Acl\OwnershipOwnChecker;
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Webhook>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
public function checkOwn(User $user, Entity $entity): bool
{
return $user->getId() === $entity->get('userId') && $user->isApi();
}
}
@@ -0,0 +1,177 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AclPortal\Attachment;
use Espo\Entities\{
User,
Note,
Attachment,
};
use Espo\ORM\Entity;
use Espo\Core\{
ORM\EntityManager,
Portal\AclManager,
Acl\ScopeData,
Acl\AccessEntityCREDChecker,
Portal\Acl\DefaultAccessChecker,
Portal\Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDChecker<Attachment>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
private $defaultAccessChecker;
private $aclManager;
private $entityManager;
public function __construct(
DefaultAccessChecker $defaultAccessChecker,
AclManager $aclManager,
EntityManager $entityManager
) {
$this->defaultAccessChecker = $defaultAccessChecker;
$this->aclManager = $aclManager;
$this->entityManager = $entityManager;
}
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
/** @var Attachment $entity */
if ($entity->get('parentType') === 'Settings') {
// Allow the logo.
return true;
}
$parent = null;
$parentType = $entity->get('parentType');
$parentId = $entity->get('parentId');
$relatedType = $entity->get('relatedType');
$relatedId = $entity->get('relatedId');
if ($parentId && $parentType) {
$parent = $this->entityManager->getEntityById($parentType, $parentId);
}
else if ($relatedId && $relatedType) {
$parent = $this->entityManager->getEntityById($relatedType, $relatedId);
}
if (!$parent) {
if ($entity->get('createdById') === $user->getId()) {
return true;
}
return false;
}
if ($parent->getEntityType() === 'Note') {
/** @var Note $parent */
$result = $this->checkEntityReadNoteParent($user, $parent);
if ($result !== null) {
return $result;
}
}
else if ($this->aclManager->checkEntity($user, $parent)) {
if (
$entity->getTargetField() &&
in_array(
$entity->getTargetField(),
$this->aclManager->getScopeForbiddenFieldList($user, $parent->getEntityType())
)
) {
return false;
}
return true;
}
if ($this->defaultAccessChecker->checkEntityRead($user, $entity, $data)) {
return true;
}
return false;
}
private function checkEntityReadNoteParent(User $user, Note $note): ?bool
{
if ($note->isInternal()) {
return false;
}
if ($note->getTargetType() === Note::TARGET_PORTALS) {
$intersect = array_intersect(
$note->getLinkMultipleIdList('portals') ?? [],
$user->getLinkMultipleIdList('portals') ?? []
);
if (count($intersect)) {
return true;
}
return false;
}
if ($note->getTargetType() === Note::TARGET_USERS) {
$isRelated = $this->entityManager
->getRDBRepository('Note')
->getRelation($note, 'users')
->isRelated($user);
if ($isRelated) {
return true;
}
return false;
}
if (!$note->getParentId() || !$note->getParentType()) {
return null;
}
$parent = $this->entityManager->getEntity($note->getParentType(), $note->getParentId());
if ($parent && $this->aclManager->checkEntity($user, $parent)) {
return true;
}
return null;
}
}
@@ -0,0 +1,55 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AclPortal\Attachment;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Attachment>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
private const ATTR_CREATED_BY_ID = 'createdById';
public function checkOwn(User $user, Entity $entity): bool
{
if ($user->getId() === $entity->get(self::ATTR_CREATED_BY_ID)) {
return true;
}
return false;
}
}
@@ -0,0 +1,85 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AclPortal\Email;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Core\{
Acl\Table,
Acl\ScopeData,
Acl\AccessEntityCREDSChecker,
Portal\Acl\DefaultAccessChecker,
Portal\Acl\Traits\DefaultAccessCheckerDependency,
};
/**
* @implements AccessEntityCREDSChecker<\Espo\Entities\Email>
*/
class AccessChecker implements AccessEntityCREDSChecker
{
use DefaultAccessCheckerDependency;
private $defaultAccessChecker;
public function __construct(
DefaultAccessChecker $defaultAccessChecker
) {
$this->defaultAccessChecker = $defaultAccessChecker;
}
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
if ($this->defaultAccessChecker->checkEntityRead($user, $entity, $data)) {
return true;
}
if ($data->isFalse()) {
return false;
}
if ($data->getRead() === Table::LEVEL_NO) {
return false;
}
assert($entity instanceof CoreEntity);
$userIdList = $entity->getLinkMultipleIdLIst('users');
if (is_array($userIdList) && in_array($user->getId(), $userIdList)) {
return true;
}
return false;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,22 +27,27 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Modules\Crm\AclPortal;
namespace Espo\Classes\AclPortal\Email;
use \Espo\Entities\User;
use \Espo\ORM\Entity;
use Espo\Entities\User;
class Account extends \Espo\Core\AclPortal\Base
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Email>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
public function checkInAccount(User $user, Entity $entity)
public function checkOwn(User $user, Entity $entity): bool
{
$accountIdList = $user->getLinkMultipleIdList('accounts');
if (count($accountIdList)) {
if (in_array($entity->id, $accountIdList)) {
return true;
}
if ($user->getId() === $entity->get('createdById')) {
return true;
}
return false;
}
}
@@ -0,0 +1,192 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AclPortal\Note;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Portal\AclManager,
Acl\ScopeData,
Acl\AccessEntityCREDChecker,
Portal\Acl\DefaultAccessChecker,
Portal\Acl\Traits\DefaultAccessCheckerDependency,
ORM\EntityManager,
Utils\Config,
};
use DateTime;
use Exception;
/**
* @implements AccessEntityCREDChecker<\Espo\Entities\Note>
*/
class AccessChecker implements AccessEntityCREDChecker
{
use DefaultAccessCheckerDependency;
private const EDIT_PERIOD = '7 days';
private const DELETE_PERIOD = '1 month';
private $defaultAccessChecker;
private $aclManager;
private $entityManager;
private $config;
public function __construct(
DefaultAccessChecker $defaultAccessChecker,
AclManager $aclManager,
EntityManager $entityManager,
Config $config
) {
$this->defaultAccessChecker = $defaultAccessChecker;
$this->aclManager = $aclManager;
$this->entityManager = $entityManager;
$this->config = $config;
}
public function checkEntityCreate(User $user, Entity $entity, ScopeData $data): bool
{
$parentId = $entity->get('parentId');
$parentType = $entity->get('parentType');
if (!$parentId || !$parentType) {
return $this->defaultAccessChecker->checkEntityCreate($user, $entity, $data);
}
$parent = $this->entityManager->getEntity($parentType, $parentId);
if ($parent && $this->aclManager->checkEntityStream($user, $parent)) {
return true;
}
return $this->defaultAccessChecker->checkEntityCreate($user, $entity, $data);
}
public function checkEntityRead(User $user, Entity $entity, ScopeData $data): bool
{
if ($entity->get('type') !== 'Post') {
return false;
}
if ($entity->get('type') === 'Post' && $entity->get('targetType')) {
return false;
}
if (!$entity->get('parentId') || !$entity->get('parentType')) {
return false;
}
$parent = $this->entityManager->getEntity($entity->get('parentType'), $entity->get('parentId'));
if ($parent) {
if ($this->aclManager->checkEntityStream($user, $parent)) {
return true;
}
}
return false;
}
public function checkEntityEdit(User $user, Entity $entity, ScopeData $data): bool
{
if (!$this->defaultAccessChecker->checkEntityEdit($user, $entity, $data)) {
return false;
}
if (!$this->aclManager->checkOwnershipOwn($user, $entity)) {
return true;
}
$createdAt = $entity->get('createdAt');
if (!$createdAt) {
return true;
}
$noteEditThresholdPeriod =
'-' . $this->config->get('noteEditThresholdPeriod', self::EDIT_PERIOD);
$dt = new DateTime();
$dt->modify($noteEditThresholdPeriod);
try {
if ($dt->format('U') > (new DateTime($createdAt))->format('U')) {
return false;
}
}
catch (Exception $e) {
return false;
}
return true;
}
public function checkEntityDelete(User $user, Entity $entity, ScopeData $data): bool
{
if (!$this->defaultAccessChecker->checkEntityDelete($user, $entity, $data)) {
return false;
}
if (!$this->aclManager->checkOwnershipOwn($user, $entity)) {
return true;
}
$createdAt = $entity->get('createdAt');
if (!$createdAt) {
return true;
}
$deleteThresholdPeriod =
'-' . $this->config->get('noteDeleteThresholdPeriod', self::DELETE_PERIOD);
$dt = new DateTime();
$dt->modify($deleteThresholdPeriod);
try {
if ($dt->format('U') > (new DateTime($createdAt))->format('U')) {
return false;
}
}
catch (Exception $e) {
return false;
}
return true;
}
}
@@ -0,0 +1,53 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AclPortal\Note;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Note>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
public function checkOwn(User $user, Entity $entity): bool
{
if ($entity->get('type') === 'Post' && $user->getId() === $entity->get('createdById')) {
return true;
}
return false;
}
}
@@ -0,0 +1,53 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AclPortal\Notification;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\Notification>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
public function checkOwn(User $user, Entity $entity): bool
{
if ($user->getId() === $entity->get('userId')) {
return true;
}
return false;
}
}
@@ -0,0 +1,49 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AclPortal\User;
use Espo\Entities\User;
use Espo\ORM\Entity;
use Espo\Core\{
Acl\OwnershipOwnChecker,
};
/**
* @implements OwnershipOwnChecker<\Espo\Entities\User>
*/
class OwnershipChecker implements OwnershipOwnChecker
{
public function checkOwn(User $user, Entity $entity): bool
{
return $user->getId() === $entity->getId();
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,41 +27,63 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\EntryPoints;
namespace Espo\Classes\AddressFormatters;
use \Espo\Core\Exceptions\NotFound;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
use Espo\Core\{
Field\Address,
Field\Address\AddressFormatter,
};
class Portal extends \Espo\Core\EntryPoints\Base
class Formatter1 implements AddressFormatter
{
public static $authRequired = false;
public function run($data = array())
public function format(Address $address): string
{
if (!empty($_GET['id'])) {
$id = $_GET['id'];
} else if (!empty($data['id'])) {
$id = $data['id'];
} else {
$url = $_SERVER['REQUEST_URI'];
$id = explode('/', $url)[count(explode('/', $_SERVER['SCRIPT_NAME'])) - 1];
$result = '';
if (!isset($id)) {
$url = $_SERVER['REDIRECT_URL'];
$id = explode('/', $url)[count(explode('/', $_SERVER['SCRIPT_NAME'])) - 1];
$street = $address->getStreet();
$city = $address->getCity();
$country = $address->getCountry();
$state = $address->getState();
$postalCode = $address->getPostalCode();
if ($street) {
$result .= $street;
}
if ($city || $state || $postalCode) {
if ($result) {
$result .= "\n";
}
if (!$id) {
$id = $this->getConfig()->get('defaultPortalId');
if ($city) {
$result .= $city;
}
if (!$id) {
throw new NotFound();
if ($state && $city) {
$result .= ', ';
}
if ($state) {
$result .= $state;
}
if ($postalCode && ($state || $city)) {
$result .= ' ';
}
if ($postalCode) {
$result .= $postalCode;
}
}
$application = new \Espo\Core\Portal\Application($id);
$application->setBasePath($this->getContainer()->get('clientManager')->getBasePath());
$application->runClient();
if ($country) {
if ($result) {
$result .= "\n";
}
$result .= $country;
}
return $result;
}
}
@@ -0,0 +1,91 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AddressFormatters;
use Espo\Core\{
Field\Address,
Field\Address\AddressFormatter,
};
class Formatter2 implements AddressFormatter
{
public function format(Address $address): string
{
$result = '';
$street = $address->getStreet();
$city = $address->getCity();
$country = $address->getCountry();
$state = $address->getState();
$postalCode = $address->getPostalCode();
if ($street) {
$result .= $street;
}
if ($city || $postalCode) {
if ($result) {
$result .= "\n";
}
if ($postalCode) {
$result .= $postalCode;
}
if ($postalCode && $city) {
$result .= ' ';
}
if ($city) {
$result .= $city;
}
}
if ($state || $country) {
if ($result) {
$result .= "\n";
}
if ($state) {
$result .= $state;
}
if ($state && $country) {
$result .= ' ';
}
if ($country) {
$result .= $country;
}
}
return $result;
}
}
@@ -0,0 +1,89 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AddressFormatters;
use Espo\Core\{
Field\Address,
Field\Address\AddressFormatter,
};
class Formatter3 implements AddressFormatter
{
public function format(Address $address): string
{
$result = '';
$street = $address->getStreet();
$city = $address->getCity();
$country = $address->getCountry();
$state = $address->getState();
$postalCode = $address->getPostalCode();
if ($country) {
$result .= $country;
}
if ($city || $state || $postalCode) {
if ($result) {
$result .= "\n";
}
if ($state) {
$result .= $state;
}
if ($state && $postalCode) {
$result .= ' ';
}
if ($postalCode) {
$result .= $postalCode;
}
if ($city && ($state || $postalCode)) {
$result .= ' ';
}
if ($city) {
$result .= $city;
}
}
if ($street) {
if ($result) {
$result .= "\n";
}
$result .= $street;
}
return $result;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,42 +27,63 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Modules\Crm\Acl;
namespace Espo\Classes\AddressFormatters;
use \Espo\Entities\User;
use \Espo\ORM\Entity;
use Espo\Core\{
Field\Address,
Field\Address\AddressFormatter,
};
class MassEmail extends \Espo\Core\Acl\Base
class Formatter4 implements AddressFormatter
{
public function checkIsOwner(User $user, Entity $entity)
public function format(Address $address): string
{
if ($entity->has('campaignId')) {
$campaignId = $entity->get('campaignId');
if (!$campaignId) return;
$result = '';
$campaign = $this->getEntityManager()->getEntity('Campaign', $campaignId);
if ($campaign && $this->getAclManager()->getImplementation('Campaign')->checkIsOwner($user, $campaign)) {
return true;
}
} else {
return parent::checkIsOwner($user, $entity);
$street = $address->getStreet();
$city = $address->getCity();
$country = $address->getCountry();
$state = $address->getState();
$postalCode = $address->getPostalCode();
if ($street) {
$result .= $street;
}
}
public function checkInTeam(User $user, Entity $entity)
{
if ($entity->has('campaignId')) {
$campaignId = $entity->get('campaignId');
if (!$campaignId) return;
$campaign = $this->getEntityManager()->getEntity('Campaign', $campaignId);
if ($campaign && $this->getAclManager()->getImplementation('Campaign')->checkInTeam($user, $campaign)) {
return true;
if ($city) {
if ($result) {
$result .= "\n";
}
} else {
return parent::checkInTeam($user, $entity);
$result .= $city;
}
if ($country || $state || $postalCode) {
if ($result) {
$result .= "\n";
}
if ($country) {
$result .= $country;
}
if ($state && $country) {
$result .= ' - ';
}
if ($state) {
$result .= $state;
}
if ($postalCode && ($state || $country)) {
$result .= ' ';
}
if ($postalCode) {
$result .= $postalCode;
}
}
return $result;
}
}
@@ -0,0 +1,120 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AppInfo;
use Espo\Core\{
Utils\Module,
Binding\EspoBindingLoader,
Binding\Binding as BindingItem,
Console\Command\Params,
};
class Binding
{
private $module;
public function __construct(Module $module)
{
$this->module = $module;
}
public function process(Params $params): string
{
$result = '';
$bindingLoader = new EspoBindingLoader($this->module);
$data = $bindingLoader->load();
$keyList = $data->getGlobalKeyList();
$result .= "Global:\n\n";
foreach ($keyList as $key) {
$result .= $this->printItem($key, $data->getGlobal($key));
}
$contextList = $data->getContextList();
foreach ($contextList as $context) {
$result .= "Context: {$context}\n\n";
$keyList = $data->getContextKeyList($context);
foreach ($keyList as $key) {
$result .= $this->printItem($key, $data->getContext($context, $key));
}
}
return $result;
}
private function printItem(string $key, BindingItem $binding): string
{
$result = '';
$tab = ' ';
$result .= $tab . "Key: {$key}\n";
$type = $binding->getType();
$value = $binding->getValue();
$typeString = [
BindingItem::IMPLEMENTATION_CLASS_NAME => 'Implementation',
BindingItem::CONTAINER_SERVICE => 'Service',
BindingItem::VALUE => 'Value',
BindingItem::CALLBACK => 'Callback',
BindingItem::FACTORY_CLASS_NAME => 'Factory',
][$type];
$result .= $tab . "Type: {$typeString}\n";
if ($type == BindingItem::IMPLEMENTATION_CLASS_NAME || $type == BindingItem::CONTAINER_SERVICE) {
$result .= $tab . "Value: {$value}\n";
}
if ($type == BindingItem::VALUE) {
if (is_string($value) || is_int($value) || is_float($value)) {
$result .= $tab . "Value: {$value}\n";
}
if (is_bool($value)) {
$valueString = $value ? 'true' : 'false';
$result .= $tab . "Value: {$valueString}\n";
}
}
$result .= "\n";
return $result;
}
}
@@ -0,0 +1,110 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AppInfo;
use Espo\Core\{
Container as ContainerService,
Utils\Metadata,
Console\Command\Params,
};
class Container
{
private $container;
private $metadata;
public function __construct(ContainerService $container, Metadata $metadata)
{
$this->container = $container;
$this->metadata = $metadata;
}
public function process(Params $params): string
{
$nameOnly = $params->hasFlag('nameOnly');
$result = '';
$serviceList = [
'injectableFactory',
'config',
'log',
'fileManager',
'dataManager',
'metadata',
'user',
];
/** @var string[] */
$fileList = scandir('application/Espo/Core/Loaders');
if (file_exists('custom/Espo/Custom/Core/Loaders')) {
$fileList = array_merge($fileList, scandir('custom/Espo/Custom/Core/Loaders') ?: []);
}
foreach ($fileList as $file) {
if (substr($file, -4) === '.php') {
$name = lcfirst(substr($file, 0, -4));
if (!in_array($name, $serviceList) && $this->container->has($name)) {
$serviceList[] = $name;
}
}
}
foreach ($this->metadata->get(['app', 'containerServices']) ?? [] as $name => $data) {
if (!in_array($name, $serviceList)) {
$serviceList[] = $name;
}
}
sort($serviceList);
if ($nameOnly) {
foreach ($serviceList as $name) {
$result .= $name . "\n";
}
return $result;
}
foreach ($serviceList as $name) {
$result .= $name . "\n";
$obj = $this->container->get($name);
$result .= get_class($obj) . "\n";
$result .= "\n";
}
return $result;
}
}
+68
View File
@@ -0,0 +1,68 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AppInfo;
use Espo\Core\Console\Command\Params;
use Espo\Core\Utils\ClassFinder;
use Espo\Core\Job\MetadataProvider;
class Jobs
{
private $classFinder;
private $metadataProvider;
public function __construct(ClassFinder $classFinder, MetadataProvider $metadataProvider)
{
$this->classFinder = $classFinder;
$this->metadataProvider = $metadataProvider;
}
public function process(Params $params): string
{
$result = "Available jobs:\n\n";
$list = array_map(
function ($item) {
return ' ' . $item;
},
array_unique(
array_merge(
array_keys($this->classFinder->getMap('Jobs')),
$this->metadataProvider->getScheduledJobNameList()
)
)
);
asort($list);
return $result . implode("\n", $list) . "\n";
}
}
@@ -0,0 +1,87 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AppParams;
use Espo\Core\{
Acl,
Select\SelectBuilderFactory,
ORM\EntityManager,
};
/**
* Returns a list of entity types for which a PDF template exists.
*/
class TemplateEntityTypeList
{
private $acl;
private $selectBuilderFactory;
private $entityManager;
public function __construct(Acl $acl, SelectBuilderFactory $selectBuilderFactory, EntityManager $entityManager)
{
$this->acl = $acl;
$this->selectBuilderFactory = $selectBuilderFactory;
$this->entityManager = $entityManager;
}
/**
* @return string[]
*/
public function get(): array
{
if (!$this->acl->checkScope('Template')) {
return [];
}
$list = [];
$query = $this->selectBuilderFactory
->create()
->from('Template')
->withAccessControlFilter()
->buildQueryBuilder()
->select(['entityType'])
->group(['entityType'])
->build();
$templateCollection = $this->entityManager
->getRDBRepository('Template')
->clone($query)
->find();
foreach ($templateCollection as $template) {
$list[] = $template->get('entityType');
}
return $list;
}
}
@@ -0,0 +1,316 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\AssignmentNotificators;
use Espo\Services\Email as EmailService;
use Espo\Services\Stream as StreamService;
use Espo\Core\Notification\AssignmentNotificator;
use Espo\Core\Notification\AssignmentNotificator\Params;
use Espo\Core\Notification\UserEnabledChecker;
use Espo\Core\InjectableFactory;
use Espo\Core\AclManager;
use Espo\ORM\EntityManager;
use Espo\ORM\Entity;
use Espo\Entities\User;
use Espo\Entities\Notification;
use Espo\Entities\Email as EmailEntity;
use Espo\Repositories\Email as EmailRepository;
use Espo\Repositories\EmailAddress as EmailAddressRepository;
use DateTime;
use Exception;
class Email implements AssignmentNotificator
{
private const DAYS_THRESHOLD = 2;
private ?StreamService $streamService = null;
private $user;
private $entityManager;
private $injectableFactory;
private $aclManager;
private $userChecker;
public function __construct(
User $user,
EntityManager $entityManager,
UserEnabledChecker $userChecker,
InjectableFactory $injectableFactory,
AclManager $aclManager
) {
$this->user = $user;
$this->entityManager = $entityManager;
$this->userChecker = $userChecker;
$this->injectableFactory = $injectableFactory;
$this->aclManager = $aclManager;
}
public function process(Entity $entity, Params $params): void
{
/** @var EmailEntity $entity */
if (
!in_array(
$entity->get('status'),
[
EmailEntity::STATUS_ARCHIVED,
EmailEntity::STATUS_SENT,
EmailEntity::STATUS_BEING_IMPORTED,
]
)
) {
return;
}
if ($params->getOption('isJustSent')) {
$previousUserIdList = [];
}
else {
$previousUserIdList = $entity->getFetched('usersIds');
if (!is_array($previousUserIdList)) {
$previousUserIdList = [];
}
}
$dateSent = $entity->get('dateSent');
if (!$dateSent) {
return;
}
try {
$dt = new DateTime($dateSent);
}
catch (Exception $e) {
return;
}
if ($dt->diff(new DateTime())->days > self::DAYS_THRESHOLD) {
return;
}
$emailUserIdList = $entity->get('usersIds');
if (is_null($emailUserIdList) || !is_array($emailUserIdList)) {
return;
}
$userIdList = [];
foreach ($emailUserIdList as $userId) {
if (
!in_array($userId, $userIdList) &&
!in_array($userId, $previousUserIdList) &&
$userId !== $this->user->getId()
) {
$userIdList[] = $userId;
}
}
$data = [
'emailId' => $entity->getId(),
'emailName' => $entity->get('name'),
];
/** @var EmailRepository $emailRepository */
$emailRepository = $this->entityManager->getRepository('Email');
/** @var EmailAddressRepository $emailAddressRepository */
$emailAddressRepository = $this->entityManager->getRepository('EmailAddress');
if (!$entity->has('from')) {
$emailRepository->loadFromField($entity);
}
if (!$entity->has('to')) {
$emailRepository->loadToField($entity);
}
$person = null;
$from = $entity->get('from');
if ($from) {
$person = $emailAddressRepository->getEntityByAddress($from, null, ['User', 'Contact', 'Lead']);
if ($person) {
$data['personEntityType'] = $person->getEntityType();
$data['personEntityName'] = $person->get('name');
$data['personEntityId'] = $person->getId();
}
}
$userIdFrom = null;
if ($person && $person->getEntityType() === 'User') {
$userIdFrom = $person->getId();
}
if (empty($data['personEntityId'])) {
$data['fromString'] = EmailService::parseFromName($entity->get('fromString'));
if (empty($data['fromString']) && $from) {
$data['fromString'] = $from;
}
}
$parent = null;
$parentId = $entity->get('parentId');
$parentType = $entity->get('parentType');
if ($parentType && $parentId) {
$parent = $this->entityManager->getEntityById($parentType, $parentId);
}
$account = null;
$accountId = $entity->get('accountId');
if ($accountId) {
$account = $this->entityManager->getEntityById('Account', $accountId);
}
foreach ($userIdList as $userId) {
if (!$userId) {
continue;
}
if ($userIdFrom === $userId) {
continue;
}
if ($entity->getLinkMultipleColumn('users', 'inTrash', $userId)) {
continue;
}
if (!$this->userChecker->checkAssignment('Email', $userId)) {
continue;
}
if (
$params->getOption('isBeingImported') ||
$params->getOption('isJustSent')
) {
$folderId = $entity->getLinkMultipleColumn('users', 'folderId', $userId);
if ($folderId) {
if (
$this->entityManager
->getRDBRepository('EmailFolder')
->where([
'id' => $folderId,
'skipNotifications' => true,
])
->count()
) {
continue;
}
}
}
/** @var User|null $user */
$user = $this->entityManager->getEntity('User', $userId);
if (!$user) {
continue;
}
if ($user->isPortal()) {
continue;
}
if (!$this->aclManager->checkScope($user, 'Email')) {
continue;
}
$isArchivedOrBeingImported =
$entity->get('status') === EmailEntity::STATUS_ARCHIVED ||
$params->getOption('isBeingImported');
if (
$isArchivedOrBeingImported &&
$parent &&
$this->getStreamService()->checkIsFollowed($parent, $userId)
) {
continue;
}
if (
$isArchivedOrBeingImported &&
$account &&
$this->getStreamService()->checkIsFollowed($account, $userId)
) {
continue;
}
$existing = $this->entityManager
->getRDBRepository(Notification::ENTITY_TYPE)
->where([
'type' => Notification::TYPE_EMAIL_RECEIVED,
'userId' => $userId,
'relatedId' => $entity->getId(),
'relatedType' => 'Email',
])
->select(['id'])
->findOne();
if ($existing) {
continue;
}
$this->entityManager->createEntity(Notification::ENTITY_TYPE, [
'type' => Notification::TYPE_EMAIL_RECEIVED,
'userId' => $userId,
'data' => $data,
'relatedId' => $entity->getId(),
'relatedType' => 'Email',
]);
}
}
private function getStreamService(): StreamService
{
if (empty($this->streamService)) {
$this->streamService = $this->injectableFactory->create(StreamService::class);
}
return $this->streamService;
}
}
@@ -0,0 +1,73 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Cleanup;
use Espo\Core\Cleanup\Cleanup;
use Espo\Core\Utils\Config;
use Espo\ORM\EntityManager;
use Espo\Core\Field\DateTime;
use Espo\Entities\Export;
class Exports implements Cleanup
{
private $config;
private $entityManager;
private string $cleanupPeriod = '2 days';
public function __construct(Config $config, EntityManager $entityManager)
{
$this->config = $config;
$this->entityManager = $entityManager;
}
public function process(): void
{
$period = '-' . $this->config->get('cleanupExportsPeriod', $this->cleanupPeriod);
$before = DateTime::createNow()
->modify($period)
->getString();
$delete = $this->entityManager
->getQueryBuilder()
->delete()
->from(Export::ENTITY_TYPE)
->where([
'createdAt<' => $before,
])
->build();
$this->entityManager->getQueryExecutor()->execute($delete);
}
}
@@ -0,0 +1,71 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Cleanup;
use Espo\Core\Cleanup\Cleanup;
use Espo\Core\Utils\Config;
use Espo\ORM\EntityManager;
use Espo\Core\Field\DateTime;
class MassActions implements Cleanup
{
private $config;
private $entityManager;
private string $cleanupPeriod = '14 days';
public function __construct(Config $config, EntityManager $entityManager)
{
$this->config = $config;
$this->entityManager = $entityManager;
}
public function process(): void
{
$period = '-' . $this->config->get('cleanupMassActionsPeriod', $this->cleanupPeriod);
$before = DateTime::createNow()
->modify($period)
->getString();
$delete = $this->entityManager
->getQueryBuilder()
->delete()
->from('MassAction')
->where([
'createdAt<' => $before,
])
->build();
$this->entityManager->getQueryExecutor()->execute($delete);
}
}
@@ -0,0 +1,73 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Cleanup;
use Espo\Core\Cleanup\Cleanup;
use Espo\Core\Utils\Config;
use Espo\Core\Field\DateTime;
use Espo\ORM\EntityManager;
use Espo\Entities\PasswordChangeRequest;
class PasswordChangeRequests implements Cleanup
{
private Config $config;
private EntityManager $entityManager;
private string $cleanupPeriod = '30 days';
public function __construct(Config $config, EntityManager $entityManager)
{
$this->config = $config;
$this->entityManager = $entityManager;
}
public function process(): void
{
$period = '-' . $this->config->get('cleanupPasswordChangeRequestsPeriod', $this->cleanupPeriod);
$before = DateTime::createNow()
->modify($period)
->getString();
$delete = $this->entityManager
->getQueryBuilder()
->delete()
->from(PasswordChangeRequest::ENTITY_TYPE)
->where([
'createdAt<' => $before,
])
->build();
$this->entityManager->getQueryExecutor()->execute($delete);
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,19 +27,21 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Utils\Authentication;
namespace Espo\Classes\Cleanup;
use \Espo\Core\Utils\Config;
use \Espo\Core\ORM\EntityManager;
use \Espo\Core\Utils\Auth;
use Espo\Core\Cleanup\Cleanup;
use Espo\Core\Utils\Config;
use Espo\ORM\EntityManager;
abstract class Base
use DateTime;
class Reminders implements Cleanup
{
protected $config;
private $config;
protected $entityManager;
private $entityManager;
private $passwordHash;
private string $cleanupRemindersPeriod = '15 days';
public function __construct(Config $config, EntityManager $entityManager)
{
@@ -47,22 +49,23 @@ abstract class Base
$this->entityManager = $entityManager;
}
protected function getConfig()
public function process(): void
{
return $this->config;
}
$period = '-' . $this->config->get('cleanupRemindersPeriod', $this->cleanupRemindersPeriod);
protected function getEntityManager()
{
return $this->entityManager;
}
$dt = new DateTime();
protected function getPasswordHash()
{
if (!isset($this->passwordHash)) {
$this->passwordHash = new \Espo\Core\Utils\PasswordHash($this->config);
}
$dt->modify($period);
return $this->passwordHash;
$delete = $this->entityManager
->getQueryBuilder()
->delete()
->from('Reminder')
->where([
'remindAt<' => $dt->format('Y-m-d'),
])
->build();
$this->entityManager->getQueryExecutor()->execute($delete);
}
}
@@ -0,0 +1,77 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Cleanup;
use Espo\Core\Cleanup\Cleanup;
use Espo\Core\Utils\Config;
use Espo\Core\Utils\DateTime as DateTimeUtil;
use Espo\ORM\EntityManager;
use Espo\Entities\TwoFactorCode;
use DateTime;
class TwoFactorCodes implements Cleanup
{
private const PERIOD = '5 days';
private $config;
private $entityManager;
public function __construct(Config $config, EntityManager $entityManager)
{
$this->config = $config;
$this->entityManager = $entityManager;
}
public function process(): void
{
$period = '-' . $this->config->get('cleanupTwoFactorCodesPeriod', self::PERIOD);
$from = (new DateTime())
->modify($period)
->format(DateTimeUtil::SYSTEM_DATE_TIME_FORMAT);
$query = $this->entityManager
->getQueryBuilder()
->delete()
->from(TwoFactorCode::ENTITY_TYPE)
->where([
'createdAt<' => $from,
])
->build();
$this->entityManager
->getQueryExecutor()
->execute($query);
}
}
@@ -0,0 +1,91 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\Cleanup;
use Espo\Core\Cleanup\Cleanup;
use Espo\Core\Utils\Config;
use Espo\ORM\EntityManager;
use DateTime;
class WebhookQueue implements Cleanup
{
private string $cleanupWebhookQueuePeriod = '10 days';
private $config;
private $entityManager;
public function __construct(Config $config, EntityManager $entityManager)
{
$this->config = $config;
$this->entityManager = $entityManager;
}
public function process(): void
{
$period = '-' . $this->config->get('cleanupWebhookQueuePeriod', $this->cleanupWebhookQueuePeriod);
$datetime = new DateTime();
$datetime->modify($period);
$from = $datetime->format('Y-m-d H:i:s');
$query1 = $this->entityManager
->getQueryBuilder()
->delete()
->from('WebhookQueueItem')
->where([
'DATE:(createdAt)<' => $from,
'OR' => [
'status!=' => 'Pending',
'deleted' => true,
],
])
->build();
$this->entityManager->getQueryExecutor()->execute($query1);
$query2 = $this->entityManager
->getQueryBuilder()
->delete()
->from('WebhookEventQueueItem')
->where([
'DATE:(createdAt)<' => $from,
'OR' => [
'isProcessed' => true,
'deleted' => true,
],
])
->build();
$this->entityManager->getQueryExecutor()->execute($query2);
}
}
@@ -0,0 +1,137 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\ConsoleCommands;
use Espo\Tools\Import\Service;
use Espo\Core\Utils\File\Manager as FileManager;
use Espo\Core\{
Console\Command,
Console\Command\Params,
Console\IO,
};
use Throwable;
class Import implements Command
{
private Service $service;
private FileManager $fileManager;
public function __construct(Service $service, FileManager $fileManager)
{
$this->service = $service;
$this->fileManager = $fileManager;
}
public function run(Params $params, IO $io) : void
{
$id = $params->getOption('id');
$filePath = $params->getOption('file');
$paramsId = $params->getOption('paramsId');
$forceResume = $params->hasFlag('resume');
$revert = $params->hasFlag('revert');
if (!$id && $filePath) {
if (!$paramsId) {
$io->writeLine("You need to specify --params-id option.");
return;
}
if (!$this->fileManager->isFile($filePath)) {
$io->writeLine("File not found.");
return;
}
$contents = $this->fileManager->getContents($filePath);
try {
$result = $this->service->importContentsWithParamsId($contents, $paramsId);
$resultId = $result->getId();
$countCreated = $result->getCountCreated();
$countUpdated = $result->getCountUpdated();
}
catch (Throwable $e) {
$io->writeLine("Error occurred: ". $e->getMessage() . "");
return;
}
$io->writeLine("Finished. Import ID: {$resultId}. Created: {$countCreated}. Updated: {$countUpdated}.");
return;
}
if ($id && $revert) {
$io->writeLine("Reverting import...");
try {
$this->service->revert($id);
}
catch (Throwable $e) {
$io->writeLine("Error occurred: " . $e->getMessage() . "");
return;
}
$io->writeLine("Finished.");
return;
}
if ($id) {
$io->writeLine("Running import, this may take a while...");
try {
$result = $this->service->importById($id, true, $forceResume);
}
catch (Throwable $e) {
$io->writeLine("Error occurred: " . $e->getMessage() . "");
return;
}
$countCreated = $result->getCountCreated();
$countUpdated = $result->getCountUpdated();
$io->writeLine("Finished. Created: {$countCreated}. Updated: {$countUpdated}.");
return;
}
$io->writeLine("Not enough params passed.");
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,36 +27,38 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\Utils\Layout\Defaults;
namespace Espo\Classes\DefaultLayouts;
use Espo\Core\Utils\Metadata;
class DefaultSidePanelType
{
protected $metadata;
private $metadata;
public function __construct(\Espo\Core\Utils\Metadata $metadata)
public function __construct(Metadata $metadata)
{
$this->metadata = $metadata;
}
public function get(string $scope) : array
/**
* @return \stdClass[]
*/
public function get(string $scope): array
{
$list = [];
if (
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUser', 'type']) === 'link'
&&
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUser', 'type']) === 'link' &&
$this->metadata->get(['entityDefs', $scope, 'links', 'assignedUser', 'entity']) === 'User'
||
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUsers', 'type']) === 'linkMultiple'
&&
$this->metadata->get(['entityDefs', $scope, 'fields', 'assignedUsers', 'type']) === 'linkMultiple' &&
$this->metadata->get(['entityDefs', $scope, 'links', 'assignedUsers', 'entity']) === 'User'
) {
$list[] = (object) ['name' => ':assignedUser'];
}
if (
$this->metadata->get(['entityDefs', $scope, 'fields', 'teams', 'type']) === 'linkMultiple'
&&
$this->metadata->get(['entityDefs', $scope, 'fields', 'teams', 'type']) === 'linkMultiple' &&
$this->metadata->get(['entityDefs', $scope, 'links', 'teams', 'entity']) === 'Team'
) {
$list[] = (object) ['name' => 'teams'];
@@ -0,0 +1,114 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\DuplicateWhereBuilders;
use Espo\Core\Duplicate\WhereBuilder;
use Espo\Core\Field\EmailAddressGroup;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\ORM\{
Query\Part\Condition as Cond,
Query\Part\WhereItem,
Query\Part\Where\OrGroup,
Entity,
};
/**
* @implements WhereBuilder<CoreEntity>
*/
class Company implements WhereBuilder
{
public function build(Entity $entity): ?WhereItem
{
assert($entity instanceof CoreEntity);
$orBuilder = OrGroup::createBuilder();
$toCheck = false;
if ($entity->get('name')) {
$orBuilder->add(
Cond::equal(
Cond::column('name'),
$entity->get('name')
),
);
$toCheck = true;
}
if (
($entity->get('emailAddress') || $entity->get('emailAddressData')) &&
(
$entity->isNew() ||
$entity->isAttributeChanged('emailAddress') ||
$entity->isAttributeChanged('emailAddressData')
)
) {
foreach ($this->getEmailAddressList($entity) as $emailAddress) {
$orBuilder->add(
Cond::equal(
Cond::column('emailAddress'),
$emailAddress
)
);
$toCheck = true;
}
}
if (!$toCheck) {
return null;
}
return $orBuilder->build();
}
/**
* @return string[]
*/
private function getEmailAddressList(CoreEntity $entity): array
{
if ($entity->get('emailAddressData')) {
/** @var EmailAddressGroup $eaGroup */
$eaGroup = $entity->getValueObject('emailAddress');
return $eaGroup->getAddressList();
}
if ($entity->get('emailAddress')) {
return [
$entity->get('emailAddress')
];
}
return [];
}
}
@@ -0,0 +1,123 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\DuplicateWhereBuilders;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Core\{
Duplicate\WhereBuilder,
Field\EmailAddressGroup,
};
use Espo\ORM\{
Query\Part\Condition as Cond,
Query\Part\WhereItem,
Query\Part\Where\OrGroup,
Entity,
};
/**
* @implements WhereBuilder<CoreEntity>
*/
class Person implements WhereBuilder
{
public function build(Entity $entity): ?WhereItem
{
assert($entity instanceof CoreEntity);
$orBuilder = OrGroup::createBuilder();
$toCheck = false;
if ($entity->get('firstName') || $entity->get('lastName')) {
$orBuilder->add(
Cond::and(
Cond::equal(
Cond::column('firstName'),
$entity->get('firstName')
),
Cond::equal(
Cond::column('lastName'),
$entity->get('lastName')
)
)
);
$toCheck = true;
}
if (
($entity->get('emailAddress') || $entity->get('emailAddressData')) &&
(
$entity->isNew() ||
$entity->isAttributeChanged('emailAddress') ||
$entity->isAttributeChanged('emailAddressData')
)
) {
foreach ($this->getEmailAddressList($entity) as $emailAddress) {
$orBuilder->add(
Cond::equal(
Cond::column('emailAddress'),
$emailAddress
)
);
$toCheck = true;
}
}
if (!$toCheck) {
return null;
}
return $orBuilder->build();
}
/**
* @return string[]
*/
private function getEmailAddressList(CoreEntity $entity): array
{
if ($entity->get('emailAddressData')) {
/** @var EmailAddressGroup $eaGroup */
$eaGroup = $entity->getValueObject('emailAddress');
return $eaGroup->getAddressList();
}
if ($entity->get('emailAddress')) {
return [
$entity->get('emailAddress')
];
}
return [];
}
}
@@ -0,0 +1,90 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldDuplicators;
use Espo\Core\Record\Duplicator\FieldDuplicator;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use Espo\Repositories\Attachment as AttachmentRepository;
use Espo\Entities\Attachment;
use stdClass;
class AttachmentMultiple implements FieldDuplicator
{
private $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function duplicate(Entity $entity, string $field): stdClass
{
$valueMap = (object) [];
/** @var \Espo\ORM\Collection<Attachment> $attachmentList */
$attachmentList = $this->entityManager
->getRDBRepository($entity->getEntityType())
->getRelation($entity, $field)
->find();
if (is_countable($attachmentList) && !count($attachmentList)) {
return $valueMap;
}
$idList = [];
$nameHash = (object) [];
$typeHash = (object) [];
/** @var AttachmentRepository $attachmentRepository */
$attachmentRepository = $this->entityManager->getRepository(Attachment::ENTITY_TYPE);
foreach ($attachmentList as $attachment) {
$copiedAttachment = $attachmentRepository->getCopiedAttachment($attachment);
$copiedAttachment->set('field', $field);
$this->entityManager->saveEntity($copiedAttachment);
$idList[] = $copiedAttachment->getId();
$nameHash->{$copiedAttachment->getId()} = $copiedAttachment->getName();
$typeHash->{$copiedAttachment->getId()} = $copiedAttachment->getType();
}
$valueMap->{$field . 'Ids'} = $idList;
$valueMap->{$field . 'Names'} = $nameHash;
$valueMap->{$field . 'Types'} = $typeHash;
return $valueMap;
}
}
@@ -0,0 +1,75 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldDuplicators;
use Espo\Core\Record\Duplicator\FieldDuplicator;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use Espo\Repositories\Attachment as AttachmentRepository;
use Espo\Entities\Attachment;
use stdClass;
class File implements FieldDuplicator
{
private $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function duplicate(Entity $entity, string $field): stdClass
{
$valueMap = (object) [];
/** @var Attachment|null $attachment */
$attachment = $this->entityManager
->getRDBRepository($entity->getEntityType())
->getRelation($entity, $field)
->findOne();
if (!$attachment) {
return $valueMap;
}
/** @var AttachmentRepository $attachmentRepository */
$attachmentRepository = $this->entityManager->getRepository(Attachment::ENTITY_TYPE);
$copiedAttachment = $attachmentRepository->getCopiedAttachment($attachment);
$idAttribute = $field . 'Id';
$valueMap->$idAttribute = $copiedAttachment->getId();
return $valueMap;
}
}
@@ -0,0 +1,82 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldDuplicators;
use Espo\Core\Record\Duplicator\FieldDuplicator;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use stdClass;
class LinkMultiple implements FieldDuplicator
{
private EntityManager $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function duplicate(Entity $entity, string $field): stdClass
{
$valueMap = (object) [];
$entityDefs = $this->entityManager
->getDefs()
->getEntity($entity->getEntityType());
if (!$entity->hasRelation($field)) {
return $valueMap;
}
$relationDefs = $entityDefs->getRelation($field);
if (
!$relationDefs->hasForeignEntityType() ||
!$relationDefs->hasForeignRelationName()
) {
return $valueMap;
}
$foreignRelationType = $this->entityManager
->getDefs()
->getEntity($relationDefs->getForeignEntityType())
->getRelation($relationDefs->getForeignRelationName())
->getType();
if ($foreignRelationType !== Entity::HAS_MANY) {
$valueMap->{$field . 'Ids'} = [];
$valueMap->{$field . 'Names'} = (object) [];
$valueMap->{$field . 'Columns'} = (object) [];
}
return $valueMap;
}
}
@@ -0,0 +1,117 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldDuplicators;
use Espo\Core\Record\Duplicator\FieldDuplicator;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use Espo\Repositories\Attachment as AttachmentRepository;
use Espo\Entities\Attachment;
use stdClass;
class Wysiwyg implements FieldDuplicator
{
private $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function duplicate(Entity $entity, string $field): stdClass
{
$valueMap = (object) [];
$contents = $entity->get($field);
if (!$contents) {
return $valueMap;
}
$matches = [];
$matchResult = preg_match_all("/\?entryPoint=attachment&amp;id=([^&=\"']+)/", $contents, $matches);
if (
!$matchResult ||
empty($matches[1]) ||
!is_array($matches[1])
) {
return $valueMap;
}
$attachmentIdList = $matches[1];
/** @var Attachment[] $attachmentList */
$attachmentList = [];
foreach ($attachmentIdList as $id) {
/** @var Attachment|null $attachment */
$attachment = $this->entityManager->getEntity(Attachment::ENTITY_TYPE, $id);
if (!$attachment) {
continue;
}
$attachmentList[] = $attachment;
}
if (!count($attachmentList)) {
return $valueMap;
}
/** @var AttachmentRepository $attachmentRepository */
$attachmentRepository = $this->entityManager->getRepository(Attachment::ENTITY_TYPE);
foreach ($attachmentList as $attachment) {
$copiedAttachment = $attachmentRepository->getCopiedAttachment($attachment);
$copiedAttachment->set([
'relatedId' => null,
'relatedType' => $entity->getEntityType(),
'field' => $field,
]);
$this->entityManager->saveEntity($copiedAttachment);
$contents = str_replace(
'?entryPoint=attachment&amp;id=' . $attachment->getId(),
'?entryPoint=attachment&amp;id=' . $copiedAttachment->getId(),
$contents
);
}
$valueMap->$field = $contents;
return $valueMap;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,41 +27,40 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\ORM;
namespace Espo\Classes\FieldProcessing\Email;
class RepositoryFactory
use Espo\ORM\Entity;
use Espo\Core\{
FieldProcessing\Loader,
FieldProcessing\Loader\Params,
ORM\EntityManager,
};
use Espo\Repositories\Email as EmailRepository;
/**
* @implements Loader<\Espo\Entities\Email>
*/
class AddressDataLoader implements Loader
{
protected $entityFactroy;
private $entityManager;
protected $entityManager;
protected $defaultRepositoryClassName = '\\Espo\\ORM\\Repository';
public function __construct(EntityManager $entityManager, EntityFactory $entityFactroy)
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
$this->entityFactroy = $entityFactroy;
}
public function create($name)
public function process(Entity $entity, Params $params): void
{
$className = $this->entityManager->normalizeRepositoryName($name);
/** @var EmailRepository $repository */
$repository = $this->entityManager->getRepository('Email');
if (!class_exists($className)) {
$className = $this->defaultRepositoryClassName;
}
$repository = new $className($name, $this->entityManager, $this->entityFactroy);
return $repository;
}
protected function normalizeName($name)
{
return $name;
}
public function setDefaultRepositoryClassName($defaultRepositoryClassName)
{
$this->defaultRepositoryClassName = $defaultRepositoryClassName;
$repository->loadFromField($entity);
$repository->loadToField($entity);
$repository->loadCcField($entity);
$repository->loadBccField($entity);
$repository->loadReplyToField($entity);
$repository->loadNameHash($entity);
}
}
@@ -0,0 +1,212 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\Email;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use Espo\Repositories\EmailAddress as EmailAddressRepository;
use Espo\Entities\EmailAddress;
use Espo\Entities\Email;
use Espo\Core\{
FieldProcessing\Loader,
FieldProcessing\Loader\Params,
Mail\Event\Event as EspoEvent,
Mail\Event\EventFactory,
Utils\Log,
};
use ICal\ICal;
use ICal\Event;
use Throwable;
use stdClass;
/**
* @implements Loader<\Espo\Entities\Email>
*/
class IcsDataLoader implements Loader
{
private $entityManager;
private $log;
/**
* @var array<string,string>
*/
private $entityTypeLinkMap = [
'User' => 'users',
'Contact' => 'contacts',
'Lead' => 'leads',
];
public function __construct(EntityManager $entityManager, Log $log)
{
$this->entityManager = $entityManager;
$this->log = $log;
}
public function process(Entity $entity, Params $params): void
{
$icsContents = $entity->get('icsContents');
if ($icsContents === null) {
return;
}
$ical = new ICal();
$ical->initString($icsContents);
/* @var $event Event */
$event = $ical->events()[0] ?? null;
if ($event === null) {
return;
}
if ($event->status === 'CANCELLED') {
return;
}
$espoEvent = EventFactory::createFromU01jmg3Ical($ical);
$valueMap = (object) [
'sourceEmailId' => $entity->getId(),
];
try {
$valueMap->name = $espoEvent->getName();
$valueMap->description = $espoEvent->getDescription();
$valueMap->dateStart = $espoEvent->getDateStart();
$valueMap->dateEnd = $espoEvent->getDateEnd();
$valueMap->location = $espoEvent->getLocation();
$valueMap->isAllDay = $espoEvent->isAllDay();
if ($espoEvent->isAllDay()) {
$valueMap->dateStartDate = $espoEvent->getDateStart();
$valueMap->dateEndDate = $espoEvent->getDateEnd();
}
}
catch (Throwable $e) {
$this->log->warning("Error while converting ICS event '" . $entity->getId() . "': " . $e->getMessage());
return;
}
/** @var EmailAddressRepository $emailAddressRepository */
$emailAddressRepository = $this->entityManager->getRepository(EmailAddress::ENTITY_TYPE);
$attendeeEmailAddressList = $espoEvent->getAttendeeEmailAddressList();
$organizerEmailAddress = $espoEvent->getOrganizerEmailAddress();
if ($organizerEmailAddress) {
$attendeeEmailAddressList[] = $organizerEmailAddress;
}
foreach ($attendeeEmailAddressList as $address) {
$personEntity = $emailAddressRepository->getEntityByAddress($address);
if (!$personEntity) {
continue;
}
$link = $this->entityTypeLinkMap[$personEntity->getEntityType()] ?? null;
if (!$link) {
continue;
}
$idsAttribute = $link . 'Ids';
$namesAttribute = $link . 'Names';
$idList = $valueMap->$idsAttribute ?? [];
$nameMap = $valueMap->$namesAttribute ?? (object) [];
$idList[] = $personEntity->getId();
$nameMap->{$personEntity->getId()} = $personEntity->get('name');
$valueMap->$idsAttribute = $idList;
$valueMap->$namesAttribute = $nameMap;
}
$eventData = (object) [
'valueMap' => $valueMap,
'uid' => $espoEvent->getUid(),
'createdEvent' => null,
];
$this->loadCreatedEvent($entity, $espoEvent, $eventData);
$entity->set('icsEventData', $eventData);
$entity->set('icsEventDateStart', $espoEvent->getDateStart());
if ($espoEvent->isAllDay()) {
$entity->set('icsEventDateStartDate', $espoEvent->getDateStart());
}
}
private function loadCreatedEvent(Entity $entity, EspoEvent $espoEvent, stdClass $eventData): void
{
$emailSameEvent = $this->entityManager
->getRDBRepository(Email::ENTITY_TYPE)
->where([
'icsEventUid' => $espoEvent->getUid(),
'id!=' => $entity->getId()
])
->findOne();
if (!$emailSameEvent) {
return;
}
if (
!$emailSameEvent->get('createdEventId') ||
!$emailSameEvent->get('createdEventType')
) {
return;
}
$createdEvent = $this->entityManager
->getEntity($emailSameEvent->get('createdEventType'), $emailSameEvent->get('createdEventId'));
if (!$createdEvent) {
return;
}
$eventData->createdEvent = (object) [
'id' => $createdEvent->getId(),
'entityType' => $emailSameEvent->getEntityType(),
'name' => $createdEvent->get('name'),
];
}
}
@@ -0,0 +1,135 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\Email;
use Espo\ORM\Entity;
use Espo\Repositories\EmailAddress as EmailAddressRepository;
use Espo\Core\{
FieldProcessing\Loader,
FieldProcessing\Loader\Params,
ORM\EntityManager,
};
use Espo\Entities\Email;
use Espo\Entities\User;
/**
* @implements Loader<\Espo\Entities\Email>
*/
class StringDataLoader implements Loader
{
private $entityManager;
private $user;
/**
* @var array<string,string>
*/
private $fromEmailAddressNameCache = [];
public function __construct(EntityManager $entityManager, User $user)
{
$this->entityManager = $entityManager;
$this->user = $user;
}
public function process(Entity $entity, Params $params): void
{
/** @var Email $entity */
$userEmailAdddressIdList = [];
$emailAddressCollection = $this->entityManager
->getRDBRepository('User')
->getRelation($this->user, 'emailAddresses')
->select(['id'])
->find();
foreach ($emailAddressCollection as $emailAddress) {
$userEmailAdddressIdList[] = $emailAddress->getId();
}
if (
in_array($entity->get('fromEmailAddressId'), $userEmailAdddressIdList) ||
$entity->get('createdById') === $this->user->getId() && $entity->get('status') === Email::STATUS_SENT
) {
$entity->loadLinkMultipleField('toEmailAddresses');
$idList = $entity->get('toEmailAddressesIds');
$names = $entity->get('toEmailAddressesNames');
if (empty($idList)) {
return;
}
$list = [];
foreach ($idList as $emailAddressId) {
$person = $this->getEmailAddressRepository()->getEntityByAddressId($emailAddressId, null, true);
$list[] = $person ? $person->get('name') : $names->$emailAddressId;
}
$entity->set('personStringData', 'To: ' . implode(', ', $list));
return;
}
/** @var ?string */
$fromEmailAddressId = $entity->get('fromEmailAddressId');
if (!$fromEmailAddressId) {
return;
}
if (!array_key_exists($fromEmailAddressId, $this->fromEmailAddressNameCache)) {
$person = $this->getEmailAddressRepository()->getEntityByAddressId($fromEmailAddressId, null, true);
$fromName = $person ? $person->get('name') : null;
$this->fromEmailAddressNameCache[$fromEmailAddressId] = $fromName;
}
$fromName =
$this->fromEmailAddressNameCache[$fromEmailAddressId] ??
$entity->get('fromName') ??
$entity->get('fromEmailAddressName');
$entity->set('personStringData', $fromName);
}
private function getEmailAddressRepository(): EmailAddressRepository
{
/** @var EmailAddressRepository */
return $this->entityManager->getRepository('EmailAddress');
}
}
@@ -0,0 +1,83 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\Email;
use Espo\ORM\Entity;
use Espo\Core\{
FieldProcessing\Loader,
FieldProcessing\Loader\Params,
ORM\EntityManager,
};
use Espo\Entities\User;
/**
* @implements Loader<\Espo\Entities\Email>
*/
class UserColumnsLoader implements Loader
{
private $entityManager;
private $user;
public function __construct(EntityManager $entityManager, User $user)
{
$this->entityManager = $entityManager;
$this->user = $user;
}
public function process(Entity $entity, Params $params): void
{
$emailUser = $this->entityManager
->getRDBRepository('EmailUser')
->select(['isRead', 'isImportant', 'inTrash'])
->where([
'deleted' => false,
'userId' => $this->user->getId(),
'emailId' => $entity->getId(),
])
->findOne();
if (!$emailUser) {
$entity->set('isRead', null);
$entity->clear('isImportant');
$entity->clear('inTrash');
return;
}
$entity->set([
'isRead' => $emailUser->get('isRead'),
'isImportant' => $emailUser->get('isImportant'),
'inTrash' => $emailUser->get('inTrash'),
]);
}
}
@@ -0,0 +1,69 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\Import;
use Espo\ORM\Entity;
use Espo\Core\{
FieldProcessing\Loader,
FieldProcessing\Loader\Params,
ORM\EntityManager,
};
use Espo\Repositories\Import as ImportRepository;
/**
* @implements Loader<\Espo\Entities\Import>
*/
class CountsLoader implements Loader
{
private $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function process(Entity $entity, Params $params): void
{
/** @var ImportRepository $repository */
$repository = $this->entityManager->getRepository('Import');
$importedCount = $repository->countResultRecords($entity, 'imported');
$duplicateCount = $repository->countResultRecords($entity, 'duplicates');
$updatedCount = $repository->countResultRecords($entity, 'updated');
$entity->set([
'importedCount' => $importedCount,
'duplicateCount' => $duplicateCount,
'updatedCount' => $updatedCount,
]);
}
}
@@ -0,0 +1,51 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\Note;
use Espo\ORM\Entity;
use Espo\Core\{
FieldProcessing\Loader,
FieldProcessing\Loader\Params,
};
use Espo\Entities\Note;
/**
* @implements Loader<\Espo\Entities\Note>
*/
class AttachmentsLoader implements Loader
{
public function process(Entity $entity, Params $params): void
{
/** @var Note $entity */
$entity->loadAttachments();
}
}
@@ -0,0 +1,67 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\Portal;
use Espo\ORM\Entity;
use Espo\Repositories\Portal as PortalRepository;
use Espo\Entities\Portal;
use Espo\Core\{
FieldProcessing\Loader,
FieldProcessing\Loader\Params,
ORM\EntityManager,
};
/**
* @implements Loader<\Espo\Entities\Portal>
*/
class UrlLoader implements Loader
{
private $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function process(Entity $entity, Params $params): void
{
/** @var Portal $entity */
$this->getPortalRepository()->loadUrlField($entity);
}
private function getPortalRepository(): PortalRepository
{
/** @var PortalRepository */
return $this->entityManager->getRepository('Portal');
}
}
@@ -0,0 +1,115 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldProcessing\User;
use Espo\ORM\Entity;
use Espo\Core\{
FieldProcessing\Loader,
FieldProcessing\Loader\Params,
ORM\EntityManager,
Acl,
Acl\Table,
};
use DateTime;
use Exception;
/**
* @implements Loader<\Espo\Entities\User>
*/
class LastAccessLoader implements Loader
{
private $entityManager;
private $acl;
public function __construct(EntityManager $entityManager, Acl $acl)
{
$this->entityManager = $entityManager;
$this->acl = $acl;
}
public function process(Entity $entity, Params $params): void
{
$forbiddenFieldList = $this->acl
->getScopeForbiddenFieldList($entity->getEntityType(), Table::ACTION_READ);
if (in_array('lastAccess', $forbiddenFieldList)) {
return;
}
$authToken = $this->entityManager
->getRDBRepository('AuthToken')
->select(['id', 'lastAccess'])
->where([
'userId' => $entity->getId(),
])
->order('lastAccess', 'DESC')
->findOne();
$lastAccess = null;
if ($authToken) {
$lastAccess = $authToken->get('lastAccess');
}
$dt = null;
if ($lastAccess) {
try {
$dt = new DateTime($lastAccess);
}
catch (Exception $e) {}
}
$where = [
'userId' => $entity->getId(),
'isDenied' => false,
];
if ($dt) {
$where['requestTime>'] = $dt->format('U');
}
$authLogRecord = $this->entityManager
->getRDBRepository('AuthLogRecord')
->select(['id', 'createdAt'])
->where($where)
->order('requestTime', true)
->findOne();
if ($authLogRecord) {
$lastAccess = $authLogRecord->get('createdAt');
}
$entity->set('lastAccess', $lastAccess);
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,7 +27,7 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class ArrayIntType extends ArrayType
{
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,24 +27,35 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class ArrayType extends BaseType
use Espo\ORM\Entity;
use StdClass;
class ArrayType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkRequired(Entity $entity, string $field): bool
{
return $this->isNotEmpty($entity, $field);
}
public function checkMaxCount(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkMaxCount(Entity $entity, string $field, int $validationValue): bool
{
if (!$this->isNotEmpty($entity, $field)) return true;
if (!$this->isNotEmpty($entity, $field)) {
return true;
}
$list = $entity->get($field);
if (count($list) > $validationValue) return false;
if (count($list) > $validationValue) {
return false;
}
return true;
}
public function checkArray(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function rawCheckArray(StdClass $data, string $field): bool
{
if (isset($data->$field) && $data->$field !== null && !is_array($data->$field)) {
return false;
@@ -53,12 +64,22 @@ class ArrayType extends BaseType
return true;
}
protected function isNotEmpty(\Espo\ORM\Entity $entity, $field)
protected function isNotEmpty(Entity $entity, string $field): bool
{
if (!$entity->has($field) || $entity->get($field) === null) return false;
if (!$entity->has($field) || $entity->get($field) === null) {
return false;
}
$list = $entity->get($field);
if (!is_array($list)) return false;
if (count($list)) return true;
if (!is_array($list)) {
return false;
}
if (count($list)) {
return true;
}
return false;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,7 +27,7 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class ChecklistType extends ArrayType
{
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,11 +27,13 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
use Espo\ORM\Entity;
class CurrencyType extends FloatType
{
protected function isNotEmpty(\Espo\ORM\Entity $entity, $field)
protected function isNotEmpty(Entity $entity, string $field): bool
{
return
$entity->has($field) && $entity->get($field) !== null &&
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,16 +27,18 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class DateType extends BaseType
use Espo\ORM\Entity;
class DateType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkRequired(Entity $entity, string $field): bool
{
return $this->isNotEmpty($entity, $field);
}
protected function isNotEmpty(\Espo\ORM\Entity $entity, $field)
protected function isNotEmpty(Entity $entity, string $field): bool
{
return $entity->has($field) && $entity->get($field) !== null;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,19 +27,27 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
use Espo\ORM\Entity;
class DatetimeOptionalType extends DatetimeType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkRequired(Entity $entity, string $field): bool
{
return $this->isNotEmpty($entity, $field);
}
protected function isNotEmpty(\Espo\ORM\Entity $entity, $field)
protected function isNotEmpty(Entity $entity, string $field): bool
{
if ($entity->has($field) && $entity->get($field) !== null) return true;
if ($entity->has($field . 'Date') && $entity->get($field . 'Date') !== null) return true;
if ($entity->has($field) && $entity->get($field) !== null) {
return true;
}
if ($entity->has($field . 'Date') && $entity->get($field . 'Date') !== null) {
return true;
}
return false;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,7 +27,7 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class DatetimeType extends DateType
{
@@ -0,0 +1,49 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* EspoCRM 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://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 General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Classes\FieldValidators\Email;
use Espo\ORM\Entity;
class EmailAddresses
{
public function checkRequired(Entity $entity, string $field): bool
{
if ($entity->get('status') === 'Draft') {
return true;
}
return $this->isNotEmpty($entity, $field);
}
private function isNotEmpty(Entity $entity, string $field): bool
{
return $entity->has($field) && $entity->get($field) !== '' && $entity->get($field) !== null;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,48 +27,65 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class EmailType extends BaseType
use Espo\ORM\Entity;
class EmailType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkRequired(Entity $entity, string $field): bool
{
if ($this->isNotEmpty($entity, $field)) return true;
if ($this->isNotEmpty($entity, $field)) {
return true;
}
$dataList = $entity->get($field . 'Data');
if (!is_array($dataList)) return false;
if (!is_array($dataList)) {
return false;
}
foreach ($dataList as $item) {
if (!empty($item->emailAddress)) return true;
if (!empty($item->emailAddress)) {
return true;
}
}
return false;
}
public function checkEmailAddress(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkEmailAddress(Entity $entity, string $field): bool
{
if ($this->isNotEmpty($entity, $field)) {
$address = $entity->get($field);
if (!filter_var($address, FILTER_VALIDATE_EMAIL)) {
return false;
}
}
$dataList = $entity->get($field . 'Data');
if (is_array($dataList)) {
foreach ($dataList as $item) {
if (empty($item->emailAddress)) continue;
$address = $item->emailAddress;
if (!filter_var($address, FILTER_VALIDATE_EMAIL)) {
return false;
}
if (!is_array($dataList)) {
return true;
}
foreach ($dataList as $item) {
if (empty($item->emailAddress)) {
continue;
}
$address = $item->emailAddress;
if (!filter_var($address, FILTER_VALIDATE_EMAIL)) {
return false;
}
}
return true;
}
protected function isNotEmpty(\Espo\ORM\Entity $entity, $field)
protected function isNotEmpty(Entity $entity, string $field): bool
{
return $entity->has($field) && $entity->get($field) !== '' && $entity->get($field) !== null;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,16 +27,18 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class EnumType extends BaseType
use Espo\ORM\Entity;
class EnumType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkRequired(Entity $entity, string $field): bool
{
return $this->isNotEmpty($entity, $field);
}
protected function isNotEmpty(\Espo\ORM\Entity $entity, $field)
protected function isNotEmpty(Entity $entity, string $field): bool
{
return $entity->has($field) && $entity->get($field) !== null;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,7 +27,7 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class FileType extends LinkType
{
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,7 +27,7 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class FloatType extends IntType
{
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,7 +27,7 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class ImageType extends FileType
{
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,30 +27,50 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class IntType extends BaseType
use Espo\ORM\Entity;
class IntType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkRequired(Entity $entity, string $field): bool
{
return $this->isNotEmpty($entity, $field);
}
public function checkMax(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
/**
* @param mixed $validationValue
*/
public function checkMax(Entity $entity, string $field, $validationValue): bool
{
if (!$this->isNotEmpty($entity, $field)) return true;
if ($entity->get($field) > $validationValue) return false;
if (!$this->isNotEmpty($entity, $field)) {
return true;
}
if ($entity->get($field) > $validationValue) {
return false;
}
return true;
}
public function checkMin(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
/**
* @param mixed $validationValue
*/
public function checkMin(Entity $entity, string $field, $validationValue): bool
{
if (!$this->isNotEmpty($entity, $field)) return true;
if ($entity->get($field) < $validationValue) return false;
if (!$this->isNotEmpty($entity, $field)) {
return true;
}
if ($entity->get($field) < $validationValue) {
return false;
}
return true;
}
protected function isNotEmpty(\Espo\ORM\Entity $entity, $field)
protected function isNotEmpty(Entity $entity, string $field): bool
{
return $entity->has($field) && $entity->get($field) !== null;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,23 +27,39 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class JsonArrayType extends BaseType
use Espo\ORM\Entity;
use StdClass;
class JsonArrayType
{
public function checkArray(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function rawCheckArray(StdClass $data, string $field): bool
{
if (!$entity->has($field) || $entity->get($field) === null) return true;
if (isset($data->$field) && $data->$field !== null && !is_array($data->$field)) {
return false;
}
return is_array($entity->get($field));
return true;
}
protected function isNotEmpty(\Espo\ORM\Entity $entity, $field)
protected function isNotEmpty(Entity $entity, string $field): bool
{
if (!$entity->has($field) || $entity->get($field) === null) return false;
if (!$entity->has($field) || $entity->get($field) === null) {
return false;
}
$list = $entity->get($field);
if (!is_array($list)) return false;
if (count($list)) return true;
if (!is_array($list)) {
return false;
}
if (count($list)) {
return true;
}
return false;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,22 +27,22 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\ORM\DB\Query;
namespace Espo\Classes\FieldValidators;
use Espo\ORM\Entity;
use Espo\ORM\IEntity;
use Espo\ORM\EntityFactory;
use PDO;
use Espo\Core\ORM\Entity as CoreEntity;
class Mysql extends Base
class LinkMultipleType
{
public function limit($sql, $offset, $limit)
public function checkRequired(Entity $entity, string $field): bool
{
if (!is_null($offset) && !is_null($limit)) {
$offset = intval($offset);
$limit = intval($limit);
$sql .= " LIMIT {$offset}, {$limit}";
if (!$entity instanceof CoreEntity) {
return false;
}
return $sql;
/** @var string[] */
$idList = $entity->getLinkMultipleIdList($field);
return count($idList) > 0;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,16 +27,22 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class LinkParentType extends BaseType
use Espo\ORM\Entity;
class LinkParentType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkRequired(Entity $entity, string $field): bool
{
$idAttribute = $field . 'Id';
$typeAttribute = $field . 'Type';
if (!$entity->has($idAttribute) || $entity->get($idAttribute) === '' || $entity->get($idAttribute) === null) {
if (
!$entity->has($idAttribute) ||
$entity->get($idAttribute) === '' ||
$entity->get($idAttribute) === null
) {
return false;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,11 +27,13 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class LinkType extends BaseType
use Espo\ORM\Entity;
class LinkType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkRequired(Entity $entity, string $field): bool
{
$idAttribute = $field . 'Id';
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,7 +27,7 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class MultiEnumType extends ArrayType
{
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,23 +27,45 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class PersonNameType extends BaseType
use Espo\ORM\Entity;
use Espo\Core\{
Utils\FieldUtil,
};
class PersonNameType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
private $fieldUtil;
public function __construct(FieldUtil $fieldUtil)
{
$this->fieldUtil = $fieldUtil;
}
public function checkRequired(Entity $entity, string $field): bool
{
$isEmpty = true;
foreach ($this->getActualAttributeList($entity, $field) as $attribute) {
$attributeList = $this->fieldUtil->getActualAttributeList($entity->getEntityType(), $field);
foreach ($attributeList as $attribute) {
if ($attribute === 'salutation' . ucfirst($field)) {
continue;
}
if ($entity->has($attribute) && $entity->get($attribute) !== '') {
$isEmpty = false;
break;
}
}
if ($isEmpty) return false;
if ($isEmpty) {
return false;
}
return true;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko
* Website: https://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -27,25 +27,34 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
namespace Espo\Core\FieldValidators;
namespace Espo\Classes\FieldValidators;
class PhoneType extends BaseType
use Espo\ORM\Entity;
class PhoneType
{
public function checkRequired(\Espo\ORM\Entity $entity, string $field, $validationValue, $data) : bool
public function checkRequired(Entity $entity, string $field): bool
{
if ($this->isNotEmpty($entity, $field)) return true;
if ($this->isNotEmpty($entity, $field)) {
return true;
}
$dataList = $entity->get($field . 'Data');
if (!is_array($dataList)) return false;
if (!is_array($dataList)) {
return false;
}
foreach ($dataList as $item) {
if (!empty($item->phoneNumber)) return true;
if (!empty($item->phoneNumber)) {
return true;
}
}
return false;
}
protected function isNotEmpty(\Espo\ORM\Entity $entity, $field)
protected function isNotEmpty(Entity $entity, string $field): bool
{
return $entity->has($field) && $entity->get($field) !== '' && $entity->get($field) !== null;
}

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