Compare commits

...

5942 Commits

Author SHA1 Message Date
yuri 92fedd2c2e Merge branch 'hotfix/5.3.2' of ssh://172.20.0.1/var/git/espo/backend 2018-07-12 10:09:31 +03:00
Taras Machyshyn 0ec450d59d Schema bug fixes 2018-07-12 10:09:01 +03:00
yuri f0a1634f90 version 2018-07-12 10:03:04 +03:00
Taras Machyshyn 5b5f5c8ab7 Schema bug fixes 2018-07-11 15:16:59 +03:00
yuri 19d37e8081 text filter disabling 2018-07-11 11:04:01 +03:00
yuri d8ab10fd75 textFilterDisabled param 2018-07-11 10:37:17 +03:00
yuri 312de11a15 smtp local host name 2018-07-10 15:53:15 +03:00
yuri 47a22042b2 fix select records 2 2018-07-10 13:13:07 +03:00
yuri 31cea9e36e fix select records 2018-07-10 12:26:37 +03:00
yuri 2b983ad880 fix attachment multiple 2018-07-10 12:11:45 +03:00
yuri 21b0c2b2eb attachment multiple in list view 2018-07-10 11:58:11 +03:00
yuri 59b4aa61e4 not sortable by default 2018-07-10 11:36:20 +03:00
yuri 25d91a1e73 Merge branch 'hotfix/5.3.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.3.1 2018-07-09 13:36:24 +03:00
yuri 6750d32bd6 skip printing x status reason for pdo exception 2018-07-09 13:30:36 +03:00
yuri 70b8fc9ac9 foreign field: supporting number field 2018-07-09 12:52:55 +03:00
yuri 38a1be5ae3 version 2018-07-09 12:04:26 +03:00
yuri 1d9e9752c8 mass remove memory usage 2018-07-09 12:03:45 +03:00
yuri eb37c1dc47 fix email text filter by email 2018-07-09 11:58:31 +03:00
yuri 1df6ec7f0c mass update improvement memory usage 2018-07-09 11:52:33 +03:00
yuri 1d6ee3e030 clean up 2018-07-09 11:37:39 +03:00
yuri 6eb80b747c login view name in clientDefs 2018-07-09 11:14:28 +03:00
yuri 539c0d22d7 convert lead skip disabled entity types 2018-07-09 10:54:29 +03:00
yuri 8e7d607ad4 fix dynamic logic not has 2018-07-09 10:49:44 +03:00
yuri 59e15eb71f fix select all results modal 2018-07-09 10:48:36 +03:00
Taras Machyshyn c1ba6d5330 Metadata improvements 2018-07-06 17:02:19 +03:00
yuri 410aec734a lead select name fix 2018-07-05 17:21:58 +03:00
yuri 6078b17d38 export memory usage optimization 2018-07-05 16:47:20 +03:00
yuri 3b36d607ac code style 2018-07-05 16:20:36 +03:00
yuri 156cd85474 export memory usage improvement 2018-07-05 16:18:06 +03:00
yuri 0e29798e2b cleanup 2018-07-05 15:41:03 +03:00
yuri 19dbe81c79 hide followers in portal 2018-07-05 11:13:51 +03:00
yuri 62838961bb record max size limit improvement 2018-07-05 11:09:20 +03:00
yuri ee84162470 createDisabled for modal select records 2018-07-03 12:22:12 +03:00
yuri 7a76dcce2c email to case copy body and attachments 2018-07-03 12:13:28 +03:00
yuri 0c21ed2e31 fix case 2018-07-03 11:50:53 +03:00
yuri 39daa763ab use numberic format param 2018-07-03 11:41:39 +03:00
yuri f0c9690152 opp mandatory account 2018-07-03 11:32:10 +03:00
yuri 450091e71f contact mandatory account id 2018-07-03 11:31:28 +03:00
yuri 3a5c64b877 email skip replyTo when adding user 2018-07-02 15:16:33 +03:00
yuri 949d96db7a fix expanded list css 2018-07-02 14:58:16 +03:00
yuri c974ce8864 entity manager check exists 2018-07-02 11:21:54 +03:00
yuri caab8e9bbb custom calendar views 2018-07-02 11:05:02 +03:00
Taras Machyshyn 12469ee6f9 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-29 16:04:06 +03:00
Taras Machyshyn dcd90b6f70 AdminNotifications improvements 2018-06-29 16:03:43 +03:00
Taras Machyshyn f92b3c3d16 Bug fixes in Util 2018-06-29 16:02:45 +03:00
yuri f3b41783c5 fix campaingn stats 2018-06-29 15:50:31 +03:00
yuri 3ec33c6054 fix currency converted hook 2018-06-29 15:36:34 +03:00
yuri eb7c0da40c naming fix 2018-06-29 15:30:00 +03:00
yuri 2817c0027e fix campaign log record 2018-06-29 15:28:52 +03:00
yuri c7457b95d1 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-29 14:29:55 +03:00
yuri 05244d598c email teams improvements 2018-06-29 13:08:49 +03:00
Taras Machyshyn f55e0b2cb0 Minor bug fixes 2018-06-29 12:36:52 +03:00
Taras Machyshyn ed6256da2c Possibility to check new versions of extensions 2018-06-29 12:10:25 +03:00
Taras Machyshyn 0398137ba7 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-28 16:36:03 +03:00
yuri a6448a2769 kanban support link multiple fields 2018-06-28 13:07:31 +03:00
yuri 71cf0d01f8 fix template 2018-06-28 11:29:49 +03:00
yuri d2a6d7ee99 fix event confirmation 2018-06-28 11:28:36 +03:00
yuri a07bc15f00 fix typo 2018-06-28 11:26:22 +03:00
yuri 52ebd35785 supporting link multiple field on the list view 2018-06-28 11:20:13 +03:00
Taras Machyshyn 636d24a117 Check version url for extensions 2018-06-27 17:33:10 +03:00
yuri 8afbfaeb31 view jobs button 2018-06-27 11:19:49 +03:00
yuri 117084f835 fix sorting by index 2018-06-27 11:08:00 +03:00
yuri eae92d8638 version 2018-06-27 10:52:41 +03:00
yuri 31f5df9db4 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-27 10:48:25 +03:00
Taras Machyshyn 00419a4cfc Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-26 18:02:05 +03:00
Taras Machyshyn 3f36e5b2e8 Bug fixes 2018-06-26 18:01:52 +03:00
Taras Machyshyn cc2abc961e Fulltext index Fixes 2018-06-26 16:47:44 +03:00
yuri bea0398776 grunt clean custom dir 2018-06-26 16:08:13 +03:00
yuri fd4c55ba9d Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-26 15:05:35 +03:00
Taras Machyshyn fef5edce28 Fulltext index changes 2018-06-26 15:05:21 +03:00
Taras Machyshyn 6423e4cb68 Changing text to medium types for fulltext index fields 2018-06-26 15:01:58 +03:00
yuri 2acaf1f7ff orm: 0 result if not existing attribnure is used in where 2018-06-26 12:35:24 +03:00
yuri fe31b078f6 full-text search for email 2018-06-26 11:30:55 +03:00
yuri e3d81f4a61 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-26 11:26:18 +03:00
yuri fb1d1d8fc5 fix import 2018-06-26 11:15:16 +03:00
yuri cabef5906c fix list view 2018-06-25 14:29:39 +03:00
Taras Machyshyn 2dfffe00d0 Database helper improvements 2018-06-25 13:03:07 +03:00
yuri 78390efe45 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-25 11:29:10 +03:00
yuri 8ae0d2da88 email: add teams from replied 2018-06-25 11:24:58 +03:00
Taras Machyshyn ecb3273883 Possibility to check if table supports fulltext index 2018-06-25 11:08:51 +03:00
yuri 256b94f877 fix panels row actions links 2018-06-25 10:54:21 +03:00
yuri 422f02b5c9 text filter supporting int and autoincrement fields 2018-06-22 17:00:48 +03:00
yuri 7e4c31db1a relationship proper orm attribute type 2018-06-22 16:03:31 +03:00
yuri c9918c07b8 htmlizer var helper 2018-06-22 15:59:51 +03:00
Taras Machyshyn ed438b1a31 Code improvements 2018-06-22 15:46:02 +03:00
yuri 83843cfe46 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-22 14:47:30 +03:00
yuri 462de7b025 fix fulltext 2018-06-22 12:51:14 +03:00
yuri 01dbc183f8 fix email text search 2018-06-22 12:30:07 +03:00
yuri 8817c82996 fix select attributes 2018-06-22 12:02:03 +03:00
yuri 3493addec5 print pdf mass max 50 2018-06-22 11:20:42 +03:00
yuri d41a588bb5 disable full text for email 2018-06-22 11:15:16 +03:00
Taras Machyshyn 7953705e30 MEDIUMTEXT is a default text type 2018-06-21 19:00:36 +03:00
Taras Machyshyn 763a1ad96f Possibility to ignore creating fulltext indexes 2018-06-21 18:59:34 +03:00
yuri b58d958f51 mb string functions 2018-06-21 16:10:16 +03:00
yuri 0b8d43f734 fixes 2018-06-21 14:21:38 +03:00
yuri 87518f33a9 full-text search 3 2018-06-21 12:53:12 +03:00
yuri d83530bbf6 fix massDelete 2018-06-20 16:53:15 +03:00
yuri 517e1bab7c serach by email address performance improvement 2018-06-20 16:01:37 +03:00
yuri cd22552e4a entity manager full-text search parameter 2018-06-20 15:24:39 +03:00
yuri abc394512c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-06-20 15:07:06 +03:00
yuri fa0cb01660 full text search 2 2018-06-20 14:51:50 +03:00
Taras Machyshyn e6d509bd0b Added support fulltext index 2018-06-20 14:37:23 +03:00
yuri 775641aee1 fix globals search name field 2018-06-20 12:20:34 +03:00
yuri 3c51c6bc77 remove test 2018-06-19 18:46:59 +03:00
yuri 9ddd7b1d32 Merge branch 'hotfix/5.2.6' 2018-06-19 18:44:54 +03:00
yuri 6020a01a62 fix orm empty in 2018-06-19 18:44:47 +03:00
yuri 1ad9ee10f6 full text search 2018-06-19 17:29:12 +03:00
yuri 59863b8a91 test 2018-06-19 15:51:22 +03:00
yuri 1a083c247c fix css 2018-06-19 15:48:14 +03:00
yuri cd7ca31212 orm query: supporting match 2018-06-19 15:35:30 +03:00
yuri 9be9ff3d68 mass print to pdf 2018-06-19 12:16:07 +03:00
yuri e3b1ead830 fix acl manager empty action 2018-06-19 12:14:11 +03:00
yuri b6041592ea fix job select attributes 2018-06-19 11:58:15 +03:00
yuri 0fa8b3da0b mail merge only with address 2018-06-18 16:13:36 +03:00
yuri 7dd0fe07ac fixes 2018-06-18 15:23:04 +03:00
yuri 2d1770f439 ignore select attributes 2018-06-18 15:11:50 +03:00
yuri 6be192514a force select all attributes 2018-06-18 15:06:46 +03:00
yuri 63fc42f8cf email mandatory select attributes 2018-06-18 14:47:32 +03:00
yuri 6f8a593f09 list select changes 2018-06-18 14:45:20 +03:00
yuri b00e8f8900 merge 2018-06-18 14:26:00 +03:00
yuri 4e226ebcb7 select records button disable 2018-06-18 14:23:04 +03:00
yuri 30909c497b record dashlet populate assigned user 2018-06-18 14:14:48 +03:00
yuri efd5ccfa96 list view select only attributes from layout 2018-06-18 13:23:35 +03:00
yuri 88d159d4c6 field manager load language after save 2018-06-15 15:28:45 +03:00
yuri 29788c353b link manager ui prevent existing link names 2018-06-15 15:18:43 +03:00
yuri 7897272f65 mail merge 2018-06-15 15:03:22 +03:00
yuri 5cabc76782 Merge branch 'hotfix/5.2.6' 2018-06-15 15:02:54 +03:00
yuri b0ef416a4f target list listed status 2018-06-14 17:23:51 +03:00
yuri 0de0768bfb remove et category from layout manager 2018-06-14 17:16:08 +03:00
yuri e4ac128a2e cleanup 2018-06-14 15:39:51 +03:00
yuri 2307f21d04 version 2018-06-14 15:15:15 +03:00
yuri 89d706c94f layout manager default panel 2018-06-14 13:00:18 +03:00
yuri 23350a0ffe field manager tpl fix 2018-06-14 12:04:02 +03:00
yuri 65d047f831 skip default opt out for users 2018-06-14 11:58:36 +03:00
yuri dc40045de6 fix css 2018-06-14 11:57:01 +03:00
yuri 50d91ea6d8 email folder count 200 2018-06-14 11:50:33 +03:00
yuri 3a8865e382 calendar task creating fix 2018-06-14 11:47:47 +03:00
yuri fddcef284f fix calendar task 2018-06-14 10:48:57 +03:00
yuri c0854250e4 cleanup 2018-06-12 14:47:27 +03:00
yuri 71c9501354 cleanup 2018-06-12 14:38:25 +03:00
yuri a85d0f91a2 layout manager panels dynamic logic 2018-06-12 14:34:57 +03:00
yuri 977514f5ef fix panels css 2018-06-12 13:22:17 +03:00
yuri bf9ad953a1 lead converted panel use dynamic logic 2018-06-12 12:52:32 +03:00
yuri 5b1d96f649 ability to remove notifications for regular users 2018-06-12 11:24:53 +03:00
yuri bf4ac0c9f3 opp detect closed stages by probability 2018-06-11 15:16:28 +03:00
yuri 3c8b2534eb opp last stage field 2018-06-11 15:06:19 +03:00
yuri 16c9f46583 countRelated subRelated functions 2018-06-11 12:01:52 +03:00
yuri ef9609b710 target list listed status 2018-06-08 16:00:31 +03:00
yuri a4c15992a9 fix calendar task 2018-06-08 14:20:35 +03:00
yuri 14d1173a0c calendar prevent drag between allday and hours 2018-06-08 14:01:06 +03:00
yuri 1e7acbdbd2 fix calendar 2018-06-08 12:47:11 +03:00
yuri 35e729b25c Merge branch 'hotfix/5.2.5' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.2.5 2018-06-08 12:12:18 +03:00
Taras Machyshyn 4ee5ea78e3 LDAP bug fixes 2018-06-08 12:11:32 +03:00
yuri fe971f9f67 outboundEmailBccAddress on ui 2018-06-08 11:30:04 +03:00
yuri a828523f26 external email client for email address field link 2018-06-08 11:25:32 +03:00
yuri af9ca6788e re-render header on name change after sync 2018-06-07 16:28:48 +03:00
yuri 36d1c3af63 version 2018-06-07 13:58:52 +03:00
yuri 1853e98209 wysiwyg text filters support 2018-06-07 12:43:38 +03:00
yuri f526d43798 improve dynamic logic conditions ui 2018-06-07 12:30:38 +03:00
yuri ae8c76cecb fix select manager 2018-06-07 10:48:48 +03:00
yuri 2b32c94543 Merge branch 'hotfix/5.2.5' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.2.5 2018-06-07 10:45:38 +03:00
Taras Machyshyn b6f5909df1 MySQL 8 bug fixes 2018-06-06 16:44:06 +03:00
yuri ef35bbbb63 import: setting null for wrong date time 2018-06-05 13:11:34 +03:00
yuri 64f2cc6c7e fix import varchar length exceeded 2018-06-05 13:03:00 +03:00
yuri a16635eb26 fix import ui 2018-06-05 13:02:31 +03:00
yuri 6e614f0a7d history has attachment 2018-06-04 16:40:07 +03:00
yuri 859f4eab0a target list panels change order 2018-06-04 14:33:11 +03:00
yuri 104e0b9079 target list changes 2 2018-06-04 14:25:00 +03:00
yuri 612abbf5c0 fix range fields 2018-06-04 12:46:54 +03:00
yuri 2dfbf71806 target list changes 2018-06-04 12:39:57 +03:00
yuri c43f4d129d fix calendar 2018-06-04 10:47:14 +03:00
yuri 8d47a48f62 lang fix 2018-06-04 10:44:55 +03:00
yuri 9a333e6e38 list layout widthPx preserving 2018-06-01 12:07:45 +03:00
yuri f6e0ef8cc6 layout manager data attribute list for custom layouts 2018-06-01 11:37:53 +03:00
yuri 36a45717f1 fix excel export varchar 2018-05-31 11:47:34 +03:00
yuri 86f63d72e1 fix list expanded 2018-05-31 11:41:38 +03:00
yuri ade4078f0d fix kanban sort 2 2018-05-30 16:33:14 +03:00
yuri fdeac68216 fix kanban sorting 2018-05-30 16:14:15 +03:00
yuri 4c220a5a65 version 2018-05-30 15:50:10 +03:00
yuri f148bd82c5 fix kanban 2018-05-30 15:48:36 +03:00
yuri 0d983ef34c fix create new field name 2018-05-30 15:40:41 +03:00
yuri 75ad9f5cf2 email body fit height fix 2018-05-30 15:37:33 +03:00
yuri 893efe212e email template category layouts 2018-05-30 12:06:39 +03:00
yuri 4a4d2e473f version 2018-05-30 11:48:36 +03:00
yuri 9d663ad140 email template categories 2018-05-30 11:41:48 +03:00
yuri f377dfc5b1 wysiwyg use iframe 2018-05-30 10:56:18 +03:00
yuri a4054f5273 keep initial attachments on forward email 2018-05-30 10:47:20 +03:00
yuri fcc3ac978f mass email track opened img alt 2018-05-30 10:40:59 +03:00
yuri 2bbeaa8198 es_MX lang fixes 2018-05-30 10:34:41 +03:00
yuri 70308d19ae hu and sk languages 2018-05-30 10:26:58 +03:00
yuri 143897cf18 fix set fetched link multiple 2018-05-30 10:18:44 +03:00
yuri ddc90a05d9 fix email template insertion 2018-05-25 10:15:14 +03:00
yuri bbbadb1c32 version 2018-05-24 14:35:10 +03:00
yuri 8995835d8e email attach in toolbox 2018-05-24 14:16:51 +03:00
yuri df3c119f5f wysywyg stick toolbar 2018-05-24 13:57:48 +03:00
yuri 6a2ba73412 fix orm 2018-05-23 15:22:00 +03:00
yuri cbee8cc541 version 2018-05-23 15:12:51 +03:00
yuri 22f186af29 fix label manager 2018-05-22 14:41:16 +03:00
yuri 77ab385db8 fix client manager exit 2018-05-22 10:25:48 +03:00
yuri 13495ee32e fix rdb 2018-05-21 11:16:39 +03:00
yuri 254ce7d5d2 email-to-case contact 2018-05-21 10:34:24 +03:00
yuri 4e1053d037 lang fix 2018-05-21 10:31:13 +03:00
yuri 2fcc6e168f orm setAsFetched fix 2018-05-21 10:30:22 +03:00
yuri 96ea0ae690 pl_PL lang fix 2018-05-18 14:40:41 +03:00
yuri aa66001981 fix personal email account check 2018-05-18 12:00:37 +03:00
yuri 173ff943a4 next number fix 2018-05-18 11:48:51 +03:00
yuri 79ac73bb95 cleanup 2018-05-18 11:43:53 +03:00
yuri 2143832c25 cleanup 2018-05-18 11:42:51 +03:00
yuri c656e36265 export timeout 2018-05-18 11:41:20 +03:00
yuri 8564adca6a fix portal assinment permission 2018-05-18 11:37:05 +03:00
yuri 19c9922115 fix navbar 2018-05-18 11:19:33 +03:00
yuri b22a6f204a fix export 2018-05-15 13:33:51 +03:00
yuri daa0cf9fc9 fix calendar 2018-05-15 12:52:28 +03:00
yuri 6365aa04df fix 2018-05-15 12:23:26 +03:00
yuri ff20e077b1 fix 2018-05-15 12:19:49 +03:00
yuri 1106aaf18e fix 2018-05-15 12:15:13 +03:00
yuri 872ba225b4 fix 2018-05-15 12:13:15 +03:00
yuri 95c15efa92 fix typo 2018-05-15 11:57:34 +03:00
yuri c179cec8a0 fix attachment multiple 2018-05-15 11:50:59 +03:00
yuri 97f96396c5 fix 2018-05-15 11:28:08 +03:00
yuri e05cac1261 fix kanban 2018-05-15 11:21:50 +03:00
yuri f9d8894f37 fix email field 2018-05-15 11:09:40 +03:00
yuri 5bd5a76722 fix person name 2018-05-15 11:06:09 +03:00
yuri 2fbb4f3725 fix email address 2018-05-15 11:02:29 +03:00
yuri 61e1b18eb9 opted out bool field 2018-05-14 16:50:12 +03:00
yuri 08c1710326 fix erase persoanal data 2018-05-14 15:59:14 +03:00
yuri 39d3baf1b5 fix stream 2018-05-14 15:57:35 +03:00
yuri fd4753d190 email template info panel fix 2018-05-14 15:48:32 +03:00
yuri 29745367f7 tr_TR lang fix 2018-05-14 12:26:06 +03:00
yuri 25bb4f08ba fix record list dashlet 2018-05-14 11:57:41 +03:00
yuri 40a13c16eb data privacy 2018-05-14 11:49:25 +03:00
yuri 8ad2c425bf fix table get 2018-05-11 17:15:29 +03:00
yuri 2b6c9bc57e fix opp report 2018-05-10 16:35:47 +03:00
yuri bebbee5abd email: replyTo link 2018-05-10 12:41:42 +03:00
yuri 99156499f1 display opted out on list view 2018-05-08 12:21:30 +03:00
yuri 9ad81581bb email opt out ui change 2018-05-08 11:48:33 +03:00
yuri 1b4cd1478b bc fix 2018-05-08 11:14:16 +03:00
yuri 5fdf2e4403 css fix 2018-05-07 16:33:10 +03:00
yuri 319b523117 css fix 2018-05-07 16:28:01 +03:00
yuri 62823646b0 css fix 2018-05-07 16:12:20 +03:00
yuri 3c16758605 xls float fix 2018-05-07 13:35:56 +03:00
yuri 4705d2e38d link multiple json fields 2018-05-07 13:13:07 +03:00
yuri 05b405f76e attachment multiple order 2018-05-07 12:38:46 +03:00
yuri f54b2788de fix list tree 2018-05-07 12:05:30 +03:00
yuri 6ac0c7b301 fix task/meeting accountName contactName 2018-05-07 11:57:05 +03:00
yuri c44cc9906e fix lang 2018-05-04 16:19:12 +03:00
yuri ecd5671e1a fix panels 2018-05-04 16:00:18 +03:00
yuri c83f729eea color picker fix 2018-05-04 14:11:09 +03:00
yuri 10afd2dfef update tcpdf 2018-05-04 14:03:38 +03:00
yuri 8229b8320f entity maanger reset to defaults 2018-05-04 13:58:40 +03:00
yuri 50493cf725 user icon 2018-05-04 13:24:04 +03:00
yuri 3937b80254 icons update 2018-05-04 13:18:16 +03:00
yuri bcb7aaf13c entity manager: ability to select icons 2018-05-04 13:18:04 +03:00
yuri f9d7ec7f47 fix test 2018-05-04 11:14:19 +03:00
yuri b7d43edf22 attachment tests 2018-05-04 11:13:05 +03:00
yuri 0f0060f0f6 fix attachment duplicate 2018-05-04 11:00:59 +03:00
yuri 036bad3912 entity manager iconClass backend 2018-05-03 17:09:57 +03:00
yuri c9d675798b icon color change 2018-05-03 15:08:23 +03:00
yuri 10703750f9 stream icon 2018-05-03 14:10:29 +03:00
yuri 4d942851d3 css fix 2018-05-03 14:01:50 +03:00
yuri 1434c31b2f theme names 2018-05-03 12:01:32 +03:00
yuri 74405b2842 theme order 2018-05-03 12:01:23 +03:00
yuri 1070d18085 icons 2018-05-03 11:45:28 +03:00
yuri b729c13c7a fix css 2018-05-03 11:37:00 +03:00
yuri 1c99327bfd team tab 2018-05-03 11:18:07 +03:00
yuri 61279b0e59 sidebar width fix 2018-05-03 11:10:07 +03:00
yuri 31cb17a41d sidebar expanded by default 2018-05-03 11:00:45 +03:00
yuri f9349d5545 icon colors 2018-05-03 10:59:18 +03:00
yuri c3703494eb icons 2018-05-02 16:42:37 +03:00
yuri d94ff7c4fa concurrency fix 2 2018-05-02 12:58:25 +03:00
yuri 01e0bf4d6d add GNF currency 2018-05-02 12:02:46 +03:00
yuri ca5f1a47fd cleanup 2018-05-02 11:54:07 +03:00
yuri 54af8ee7c6 fix concurrency 2018-05-02 11:41:46 +03:00
yuri 8572b565f3 update bull 2018-05-02 11:41:02 +03:00
yuri ea1cc1c65a fix calendar 2018-04-27 16:19:47 +03:00
yuri 4610c61bd4 fix dashlets 2018-04-27 16:16:37 +03:00
yuri 02f04ea9c4 concurrency race fix 2018-04-27 16:06:23 +03:00
yuri 1ce4db6be4 model abort last fetch 2018-04-27 15:47:21 +03:00
yuri 888291a99d fix 2018-04-27 14:07:10 +03:00
yuri 3f9773a4cf fix htmlizer 2018-04-27 11:59:26 +03:00
yuri a223c721aa fix nav tab overflow 2018-04-27 11:54:05 +03:00
yuri 5bce57b1f8 fix theme 2018-04-27 11:43:03 +03:00
yuri 3666c34845 tab colors enabled 2018-04-27 11:12:42 +03:00
yuri 0dceccac46 attachment create file before create record 2018-04-27 11:11:23 +03:00
yuri 59a2644e0f email order replies 2018-04-27 10:52:49 +03:00
yuri 6c33a7304d email template skip empty subject 2018-04-27 10:47:31 +03:00
yuri e89f01a525 person name autocomplete off 2018-04-27 10:42:32 +03:00
yuri 7181b45461 fix campaign stats panel 2018-04-27 10:41:00 +03:00
yuri b7ce52f476 fix 2018-04-26 18:05:04 +03:00
yuri d2a8cd961f theme fixes 2018-04-26 18:03:56 +03:00
yuri c152dbf4bf fix row actions 2018-04-26 11:50:27 +03:00
yuri 594a111bc3 fix import panels 2018-04-26 11:46:09 +03:00
yuri 005be2fe5a impoty fix attribute translation 2018-04-26 11:26:51 +03:00
yuri 8f194e6d9e import currency fix 2018-04-26 10:53:10 +03:00
yuri e3a5cb464c fix datetime optional 2018-04-25 16:52:12 +03:00
yuri 779f0df83e link parent fix 2018-04-25 16:46:23 +03:00
yuri 086d9bdbb6 kanban fix 2018-04-25 15:52:28 +03:00
yuri 9dcaa46bc7 css fix 2018-04-25 15:00:34 +03:00
yuri 3bca95a4da entity manager color fix 2018-04-25 14:24:26 +03:00
yuri be09935287 icon fix 2018-04-25 14:10:08 +03:00
yuri 410c338da8 css fix 2018-04-25 13:55:55 +03:00
yuri be0606ede6 fix css 2018-04-25 13:47:27 +03:00
yuri f54a84420a color icon change 2018-04-25 13:46:59 +03:00
yuri 6a0d1e3b8b kanban no data 2018-04-25 11:57:39 +03:00
yuri 33127cd1bb version 2018-04-25 11:09:33 +03:00
yuri 5cd03312e1 assigned users notifications 2018-04-24 17:02:14 +03:00
yuri 391c0dcaf8 fix list expanded layout 2018-04-24 16:26:53 +03:00
yuri 0b7b9599d3 multiple assigned users support 2018-04-24 16:18:50 +03:00
yuri b45ff69376 email account assigned user view 2018-04-24 14:00:17 +03:00
yuri 1836d0a127 css change 2018-04-24 12:13:07 +03:00
yuri 048e156e59 fix kanban 2018-04-23 14:38:18 +03:00
yuri a85be60e30 fix kanban 2018-04-23 14:29:32 +03:00
yuri 90d5c9eca6 fix kanban 2018-04-23 14:01:17 +03:00
yuri 1c8f0c7d9c css fix 2018-04-23 13:40:29 +03:00
yuri f8d1c9ce05 opp kanban fix 2018-04-23 13:32:12 +03:00
yuri 28052bac23 layout manager kanban view 2018-04-23 12:14:16 +03:00
yuri c361a940eb kanban view in entity manager 2018-04-23 11:56:46 +03:00
yuri fbc1e936db Merge branch 'master' of github.com:espocrm/espocrm 2018-04-23 10:46:20 +03:00
yuri 84661f88fd Merge branch 'hotfix/5.1.3' 2018-04-23 10:45:49 +03:00
yuri 10b4c88872 template variable triple braces 2018-04-23 10:37:04 +03:00
yuri 10ddc7d941 fix send email attachment filename 2018-04-23 10:23:40 +03:00
Yuri Kuznetsov b1c63e2cb9 Update CONTRIBUTING.md 2018-04-22 20:36:54 +03:00
yuri 3f6544d03b kanban fix 2018-04-20 16:05:40 +03:00
yuri a9f211dfd5 notify loading 2018-04-20 16:02:25 +03:00
yuri f2427abbf4 kanban 2018-04-20 15:27:58 +03:00
yuri a6187f9838 empty date on list view 2018-04-20 15:25:33 +03:00
yuri 384600ed95 Merge branch 'hotfix/5.1.3' 2018-04-20 15:23:02 +03:00
yuri 6d06f03ef9 fix frontend acl 2018-04-20 13:56:09 +03:00
yuri 0829c714fd Merge branch 'hotfix/5.1.3' 2018-04-20 10:57:07 +03:00
yuri 9e2251755f quick view edit icons 2018-04-20 10:55:03 +03:00
yuri 436f871be2 update marked js 2018-04-20 10:45:14 +03:00
yuri 8d09f8e9b2 Merge branch 'hotfix/5.1.3' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.1.3 2018-04-19 13:46:27 +03:00
yuri e4d43a6790 fix field names conflict with template variables 2018-04-19 13:11:20 +03:00
Taras Machyshyn bb3d9d3466 ExternalAccount bug fixes 2018-04-19 11:16:08 +03:00
yuri bd208e259c reset sorting in select modal 2018-04-18 14:42:39 +03:00
yuri 1a1cfec3e5 refactoring 2018-04-16 12:11:13 +03:00
yuri 1e95e98549 calendar dashlet fix 2018-04-16 11:36:00 +03:00
yuri 82056b5650 version 2018-04-16 10:35:44 +03:00
yuri c0d118ee98 email plain fix 2018-04-16 10:31:31 +03:00
yuri da13177292 shared calendar dashlet 2018-04-13 16:01:54 +03:00
yuri 4cc38ca564 meeting avatar fix 2018-04-13 15:17:00 +03:00
yuri fa945c981e nav menu changes 2018-04-13 15:15:41 +03:00
yuri 63d76c6b71 Merge branch 'hotfix/5.1.3' 2018-04-13 14:42:22 +03:00
yuri 9b749a8f67 fix read only 2018-04-13 13:32:12 +03:00
yuri 1ce1d5c79a scope colors changes 2018-04-13 12:14:11 +03:00
yuri 0c2dd73334 password disable autocomplete 2018-04-12 16:15:02 +03:00
yuri 7331f14e0a quick view remove color 2018-04-12 15:38:58 +03:00
yuri d44f2fd7cd calendar avatars change 2018-04-12 15:20:55 +03:00
yuri 4da7eddc69 event users with avatars 2018-04-12 15:12:16 +03:00
yuri 3ebe30a9c0 entity colors and icons 2018-04-12 14:48:45 +03:00
yuri e959361df9 createField changes 2018-04-12 14:34:11 +03:00
yuri 7773506361 shared calendar 2018-04-12 13:43:27 +03:00
yuri 9db652a501 fix repository merge select params 2018-04-11 16:03:53 +03:00
yuri 27ebfd7f23 fix link multiple required 2018-04-11 12:09:14 +03:00
yuri 96f80e0008 create field options 2018-04-11 12:03:46 +03:00
yuri 5f3c208161 Merge branch 'hotfix/5.1.3' 2018-04-11 10:56:35 +03:00
yuri d402f33c74 fix field level acl for json fields 2018-04-10 15:29:46 +03:00
yuri 879da4dca2 fix calls row actions 2018-04-10 14:02:36 +03:00
yuri 3e862790e6 Merge branch 'hotfix/5.1.3' 2018-04-10 12:08:29 +03:00
yuri 425e36bff6 view helper getAvatarHtml 2018-04-10 12:07:58 +03:00
yuri 705ecbdf72 es_MX lang fix 2018-04-10 11:49:28 +03:00
yuri c658d67ac8 lt_LT lang fix 2018-04-10 11:48:27 +03:00
yuri c46055b469 hr_HR language 2018-04-10 11:46:03 +03:00
yuri 66e4b89d1a email body plain fix 2018-04-10 11:35:45 +03:00
yuri 38b9f1d68c fix email body plain not filled 2018-04-10 11:17:27 +03:00
yuri 19b8a4e771 fix upload timeout 2018-04-10 10:42:07 +03:00
yuri 937ffea4ab fix upload timeout 2018-04-10 10:41:44 +03:00
yuri 1ae49a3d47 timeline users avatars 2018-04-06 16:48:02 +03:00
yuri c76daf50db currency rate ui improvement 2018-04-06 14:54:38 +03:00
yuri 9e5c797243 opp currency convert 2018-04-06 14:09:15 +03:00
yuri 662c4afcdf fix mass update 2018-04-06 13:00:08 +03:00
yuri 9b50b97e79 field labelText 2018-04-06 12:09:06 +03:00
yuri d00cefc37f list mass action all 2018-04-06 11:17:32 +03:00
yuri 1f94c13e25 fix confirm leavout 2018-04-05 17:12:04 +03:00
yuri 75801ea717 calendar fixes 2018-04-05 15:04:48 +03:00
yuri b845f5086e remove ics tests 2018-04-05 11:57:34 +03:00
yuri 8c8e6ec551 fix ics 2018-04-05 11:50:14 +03:00
yuri a4aecee18d fix stream parent fields load 2018-04-05 11:49:14 +03:00
Sebastian 3c0d445824 Fix Multiline descriptions for Outlook. (#862)
See https://social.technet.microsoft.com/Forums/lync/en-US/c16cc4aa-0a07-4742-929d-1b01d698066e/ics-file-description-with-colon-and-newline-is-displayed-without-newlines?forum=outlook
2018-04-05 11:48:31 +03:00
yuri c36c6dc42d wysywyg remove max length 2018-04-04 13:36:40 +03:00
yuri f7f8f14725 case new note color 2018-04-03 17:44:06 +03:00
yuri 9402bf4baf chart colors fix 2018-04-03 14:33:03 +03:00
yuri 12fcdcdb2d call icon change 2018-04-03 14:24:38 +03:00
yuri 61735ed4aa cleanup 2018-04-03 14:11:49 +03:00
yuri 3c65d252b6 fix image orientation 2018-04-02 15:57:14 +03:00
yuri 6423859195 email move to trash fix 2018-04-02 13:56:31 +03:00
yuri 53df34d6f2 acl read only comment 2018-04-02 13:21:51 +03:00
yuri ed762c9be3 stream notifications types 2018-04-02 12:44:55 +03:00
yuri f05f14b12a email fixes 2018-04-02 12:44:44 +03:00
yuri 183b5cb29b clientReadOnly 2018-04-02 12:44:07 +03:00
yuri 07193b1fb2 email send shared name 2018-04-02 12:29:05 +03:00
yuri b24f8f538b fix auth 2018-03-30 16:21:45 +03:00
yuri a259174415 outboundEmailBccAddress 2018-03-30 14:43:12 +03:00
yuri 3d93c2a4b1 Merge branch 'hotfix/5.1.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.1.2 2018-03-30 14:18:44 +03:00
yuri 8c112791ef external email client support 2018-03-30 14:16:28 +03:00
Taras Machyshyn 0ff4553c94 LDAP fixes 2018-03-30 13:52:22 +03:00
yuri 1e6094b5ee fix wysiwyg 2018-03-29 17:28:14 +03:00
yuri a646d97aec opp list layout changes 2018-03-29 16:03:18 +03:00
yuri 57f4980802 fix bc 2018-03-29 13:39:12 +03:00
yuri 2477f5b696 fix import float values 2018-03-29 12:33:36 +03:00
yuri 6463422e81 version 2018-03-29 11:48:49 +03:00
yuri 3daf041698 auth improvements 2018-03-29 11:45:57 +03:00
yuri 933456ecdf repository check 2018-03-28 15:55:12 +03:00
yuri ab18f72f69 schedule meeting for portal user fix 2018-03-28 15:22:55 +03:00
yuri 28465cf2bf acl read only 2018-03-27 17:22:28 +03:00
yuri 4cef5c547e string length and contains functions 2018-03-27 16:16:07 +03:00
yuri 057abf8024 fix email getBodyPlain 2018-03-27 15:00:36 +03:00
yuri 20de5658e9 role fields fixes 2018-03-27 14:43:29 +03:00
yuri 4a2ed2e0f7 kb language options disabled 2018-03-27 14:25:44 +03:00
yuri 3dc574bc48 fix field manager options 2018-03-27 14:23:52 +03:00
yuri d43a42b646 fix export 2018-03-27 13:18:04 +03:00
yuri 823c46a6df fix email body plain 2018-03-27 12:00:58 +03:00
yuri 919c0bc8ae fix field manager enum 2018-03-27 11:51:22 +03:00
yuri 54d62a19cd tooltip added 2018-03-22 15:28:09 +02:00
yuri 18304fb710 attachment throw error if fie not stored 2018-03-22 13:21:57 +02:00
yuri cc1afbed5d file field tpl fix 2018-03-22 12:52:51 +02:00
yuri a195acfee9 fix field name conflict with view helpers 2018-03-22 12:47:24 +02:00
yuri e22ec4c20b cleanup 2018-03-21 16:00:00 +02:00
yuri 7c8f4f9db8 display ... for not set values in detail views 2018-03-21 12:29:37 +02:00
yuri d28ff1e438 Merge branch 'hotfix/5.1.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.1.2 2018-03-20 16:38:11 +02:00
Taras Machyshyn 5af7499fdb Use utf8mb4 for fresh instances with MySQL 5.7+ 2018-03-20 16:02:40 +02:00
yuri 6588d783cc activities dashlet: next x days 2018-03-20 15:52:09 +02:00
yuri f1b8279d50 insert template fix 2018-03-20 14:51:31 +02:00
yuri 252d31ffac email template for reply 2018-03-20 14:00:05 +02:00
yuri 8a98cca4fa email insert email confirm 2018-03-20 13:12:30 +02:00
Taras Machyshyn 0b8486c1a7 Merge branch 'hotfix/5.1.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.1.2 2018-03-20 12:29:54 +02:00
Taras Machyshyn b0bd0664f9 Extension installation improvements 2018-03-20 12:29:36 +02:00
yuri 286fd7e0ce template placeholders translation improvement 2018-03-20 12:22:47 +02:00
yuri 42f5d28369 template today now 2018-03-20 12:00:46 +02:00
yuri ea5d873cc3 fix field manager buttons 2018-03-20 11:09:25 +02:00
yuri ee8608469e fix css 2018-03-19 14:08:42 +02:00
yuri f541625318 cache timestamp in dev html 2018-03-19 13:52:58 +02:00
yuri ee70fb8483 new version notification skip for dev 2018-03-19 13:10:38 +02:00
yuri f79e093f52 fix base auth split 2018-03-19 12:11:01 +02:00
yuri 254d9280b9 fix login 2018-03-16 15:47:03 +02:00
yuri ddd9c765b8 Merge branch 'master' of github.com:espocrm/espocrm into hotfix/5.1.2 2018-03-16 15:43:52 +02:00
Ettienne Pitts 080f204eed uninstallConfirmation added to en_US (#834) 2018-03-16 15:43:33 +02:00
tanyalei f30325849a Activities Dashlet: fix Display Records option (#835) 2018-03-16 14:20:57 +02:00
yuri 8caa5b3e60 image preview original target blank 2018-03-15 16:26:25 +02:00
yuri 0daeed49c1 version 2018-03-15 15:00:27 +02:00
Taras Machyshyn 34540e12f3 getMaxIndexLength() changes 2018-03-15 14:55:27 +02:00
yuri b954a81630 template: page orientation and format 2018-03-15 12:23:59 +02:00
yuri 56472d6746 textFilterContainsMinLength config param 2018-03-15 11:03:14 +02:00
yuri 2721649313 Merge branch 'hotfix/5.1.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.1.1 2018-03-14 17:17:40 +02:00
yuri 24d7de60ab inline edit skip exit 2018-03-14 17:15:44 +02:00
Taras Machyshyn 441f9296ad Fixed file permissions after upgrading 2018-03-14 15:44:24 +02:00
yuri 3116a152e7 fix currency converted 2018-03-14 14:39:54 +02:00
yuri 77784c4224 fix currency converted 2018-03-14 13:02:40 +02:00
yuri bf13c7ca8c textFilterUseContainsForVarchar on admin ui 2018-03-14 11:19:14 +02:00
yuri 26c779a2c5 fix store sent email 2018-03-14 11:03:03 +02:00
yuri 1bfaf6c3ad model get entity type 2018-03-13 15:11:54 +02:00
yuri 69229ff6af Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-03-13 14:54:12 +02:00
yuri 719164524b naming fix 2018-03-13 13:45:25 +02:00
yuri 5a67b17916 email fix 2018-03-13 13:37:37 +02:00
Taras Machyshyn db4968b1ca Upgrade: Renamed vendorFiles 2018-03-13 13:11:58 +02:00
Taras Machyshyn e50f46e38a Installer: fix installation warning 2018-03-13 13:02:30 +02:00
Taras Machyshyn adc8988f6c Upgrade: copy vendor directory 2018-03-13 12:33:13 +02:00
yuri a480ad9c11 optimization 2018-03-13 11:35:20 +02:00
Taras Machyshyn d9be685f89 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-03-13 11:07:45 +02:00
Taras Machyshyn bd9db140de Added 'deleteAndCopy' directory for upgrade 2018-03-13 10:56:14 +02:00
yuri 74c0204590 keep rootUrl for edit view 2018-03-12 14:59:37 +02:00
yuri ce9d3299b1 skipTextColumns for email 2018-03-12 12:27:06 +02:00
yuri 8b27bc194d proper naming 2018-03-12 11:19:21 +02:00
yuri 1a6b4a6683 set fetched email address data 2018-03-12 11:11:28 +02:00
yuri 2ae4d6e090 orm converter skip fields w/o type 2018-03-12 10:57:41 +02:00
yuri 9467171c84 fix entity manager labels 2018-03-09 16:37:40 +02:00
yuri 402db729b7 field manager dont resave labels if not changed 2018-03-09 16:05:41 +02:00
yuri e16be12438 fix field manager 2018-03-09 14:58:24 +02:00
yuri 605912443d fix tests 2018-03-09 14:50:50 +02:00
yuri 62acc14f4a drop php mime mail parser by default 2018-03-09 14:25:28 +02:00
yuri 017066a311 currency part label 2018-03-09 14:21:35 +02:00
yuri 273b122ca8 fix labels in entity manager saving 2018-03-09 13:58:26 +02:00
yuri ce2ec3dd6c field manager utils get fields by type 2018-03-09 12:28:20 +02:00
yuri fda22605cc fix repository 2018-03-09 12:16:12 +02:00
yuri 1076fa6230 repositories bypass 2018-03-09 12:01:39 +02:00
yuri 019af59c8a default currency if empty 2018-03-09 12:01:27 +02:00
yuri 08bb644b58 fix notice 2018-03-08 16:36:52 +02:00
yuri 6ec1273e61 update mail parser libs 2018-03-08 16:30:25 +02:00
yuri ba5df9a4ae fix export time 2018-03-08 15:53:42 +02:00
yuri 050d77ef12 fix activities dashlet 2018-03-08 15:25:31 +02:00
yuri f8ccaeab08 select manager user 2018-03-08 14:46:42 +02:00
yuri 3c4c464e4a fix email flicker 2018-03-08 12:37:06 +02:00
yuri 2a5730def9 iframe css fix 2018-03-08 11:36:35 +02:00
yuri 48fe3e6b86 fix email size 2018-03-07 16:15:26 +02:00
yuri eecbc3aa2c lang 2018-03-07 13:52:26 +02:00
yuri e177f14446 having count 2018-03-07 12:45:29 +02:00
yuri 493ab0396a fix currency 2018-03-07 11:52:31 +02:00
yuri c776150ce0 rebuild after upgrade 2018-03-06 16:01:50 +02:00
yuri b6bca982bb default side panel client defs params 2018-03-06 15:25:45 +02:00
yuri aa8a243bf1 order fixes 2018-03-06 12:36:02 +02:00
yuri 75da037656 fix stream note 2018-03-06 11:25:39 +02:00
yuri 56a06a5581 remove dynamic logic from bottom and side 2018-03-06 11:03:23 +02:00
yuri 0af67bea3a fix dynamic logic 2018-03-06 11:01:38 +02:00
yuri 08b8d899b7 fix typo 2018-03-05 17:03:33 +02:00
yuri cf07cb39c4 wysiwyg height fix 2018-03-05 17:03:24 +02:00
yuri 810d10c1c2 bottom panels order 2018-03-05 15:24:24 +02:00
yuri 342bdcfaac fix typo 2018-03-05 13:15:28 +02:00
yuri d933dbb31a fix dynamic logic 2018-03-05 12:41:54 +02:00
yuri fe61364178 fix panel dynamic logic 2018-03-05 12:32:09 +02:00
yuri 88c3c03f99 dynamic logic detail view 2018-03-05 12:12:41 +02:00
yuri c21b16f5c7 panel defs dynamic logic 2018-03-05 11:23:11 +02:00
yuri 2481a2504f fix auth token ip length 2018-03-02 16:57:25 +02:00
Taras Machyshyn dcb1e8040a MySQL charset change improvements 2018-03-02 15:42:26 +02:00
yuri 0e1c611034 update composer 2018-03-02 14:11:33 +02:00
yuri fccd9d642c ditch php imap dependency 2018-03-02 14:10:48 +02:00
yuri 849f1becc7 version 2018-03-02 13:44:14 +02:00
yuri be6c4a63ed do not remove mysql character service 2018-03-02 13:02:41 +02:00
yuri 4e48483276 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-03-02 13:01:32 +02:00
Taras Machyshyn 6817a54aa0 Job for changing mysql column characters 2018-03-02 13:00:25 +02:00
yuri 482f235dcc Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-03-02 11:54:04 +02:00
yuri 90b863c4ae update composer 2018-03-02 11:53:57 +02:00
Taras Machyshyn 8541a87d1f Integration tests fixes 2018-03-02 11:35:52 +02:00
Taras Machyshyn 002adeb00e Integration test fixes 2018-03-02 11:15:01 +02:00
Taras Machyshyn 30e7d1ba7c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-03-02 10:49:35 +02:00
yuri 0923f2e120 Merge branch 'master' of github.com:espocrm/espocrm 2018-03-02 10:37:50 +02:00
Andra Fetele 38a0c8e19f Romanian translation (#823) 2018-03-02 09:31:01 +02:00
yuri facf90d964 fix event Set Held label 2018-03-01 18:04:00 +02:00
yuri cca3482bc0 fix query stringifyValue 2018-03-01 17:41:39 +02:00
yuri 6178ca550b import fix 2018-03-01 16:37:22 +02:00
yuri dc51e467d4 excel export: migrate to phpspreadsheet 2018-03-01 16:01:37 +02:00
yuri 300827c1f0 vendor updates 2018-03-01 15:47:26 +02:00
yuri aacf09a444 email move to trash from detail view updates list 2018-03-01 15:14:24 +02:00
yuri 0123488828 import revert remove change 2018-03-01 14:50:45 +02:00
yuri a43b188f36 import action history 2018-02-28 17:06:50 +02:00
Taras Machyshyn f0285ef8f2 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-02-28 16:19:05 +02:00
yuri 70a0ffbf3d fix list tpl 2018-02-28 11:48:29 +02:00
yuri f2e6a4fc55 import improvement 2018-02-28 11:43:11 +02:00
yuri df5fd76ae2 update-all event for model 2018-02-28 11:42:58 +02:00
yuri f34d258b45 header button title 2018-02-28 11:09:34 +02:00
yuri 28c52763c8 Merge branch 'hotfix/5.0.6' 2018-02-27 17:46:45 +02:00
yuri ebe22fa7f0 fix htmlizer 2018-02-27 17:44:56 +02:00
yuri 160327e471 Merge branch 'hotfix/5.0.6' 2018-02-27 17:32:51 +02:00
yuri dd080dbff2 Merge branch 'hotfix/5.0.6' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.0.6 2018-02-27 17:32:33 +02:00
yuri d509886cd1 sql fixes 2018-02-27 17:31:50 +02:00
Taras Machyshyn 239a8f0af8 Code improvements 2018-02-27 17:14:19 +02:00
Taras Machyshyn c0565306c3 Code improvements 2018-02-27 17:13:15 +02:00
yuri 79d159511d fix category tree repository 2018-02-27 17:06:53 +02:00
yuri e123fc7e6f target list layout change 2018-02-27 16:26:33 +02:00
yuri 52fa30f389 event confirmation change 2018-02-27 16:19:23 +02:00
yuri 1d744d5abc cleanup fixes 2018-02-27 16:16:30 +02:00
yuri 2629c12ade fix link and link multiple empty name 2018-02-27 14:27:15 +02:00
yuri 8fb6b1a5a9 fix parent name load 2018-02-27 14:12:48 +02:00
yuri d4a23c9a4f fix parent 2018-02-27 14:07:58 +02:00
yuri 05d0f982a7 fix select manager 2018-02-26 15:30:42 +02:00
yuri e3c8a3fcda fix applyFilter 2018-02-26 15:07:41 +02:00
yuri 8cd56d2705 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-02-26 14:23:21 +02:00
Taras Machyshyn f94d1f3cd8 Metadata: get metadata in object format 2018-02-26 14:22:14 +02:00
yuri 5f64b74fad fix ro_RO 2018-02-26 13:35:54 +02:00
Taras Machyshyn b422cd6f52 Metadata: getCustom() changes 2018-02-26 13:03:25 +02:00
Andra Fetele 17698409b9 Approx 700 lines, translated into Romanian (#813)
* Romanian translation

* Approx 700 lines, translated into Romanian
2018-02-24 20:07:34 +02:00
Andra Fetele fb0dabebe1 Romanian translation (#812) 2018-02-23 20:59:55 +02:00
yuri f81805fbf4 fix dynamic handler 2018-02-23 17:00:48 +02:00
Taras Machyshyn 596c9d4996 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-02-23 15:50:59 +02:00
Taras Machyshyn a7530dcce9 Bug fixes in File Manager 2018-02-23 15:50:49 +02:00
yuri 55d59eea80 checkAccessDataList allowAllForAdmin 2018-02-23 15:14:22 +02:00
yuri 0c66a1fb7b dynamic handler extend 2018-02-23 13:55:00 +02:00
yuri ad7ca5d287 dynamic handler 2018-02-23 13:44:24 +02:00
yuri b34be4730d Merge branch 'master' of github.com:espocrm/espocrm 2018-02-23 11:10:16 +02:00
yuri 1c264055eb Merge branch 'hotfix/5.0.6' 2018-02-23 11:09:59 +02:00
yuri 12f41baff5 file filters 2018-02-23 11:09:42 +02:00
yuri 9a9ad1baa7 lang 2018-02-23 11:03:28 +02:00
Yuri Kuznetsov 46c31278e7 Update README.md 2018-02-22 18:34:37 +02:00
yuri a08dc3d422 bottom panels isBottom 2018-02-22 15:51:07 +02:00
yuri 158a74f79b fix tests 2018-02-22 15:37:19 +02:00
Taras Machyshyn bacf85ccf8 Metadata: saveCustom() fixes 2018-02-22 15:33:56 +02:00
Taras Machyshyn ef683bd7fa Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-02-22 15:02:37 +02:00
yuri 20c233fb8c more user acl tests 2018-02-22 15:01:37 +02:00
Taras Machyshyn ac21313190 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-02-22 14:56:29 +02:00
Taras Machyshyn 8ba6918139 Metadata: added possibility to work with metadata defined in custom directory 2018-02-22 14:56:20 +02:00
yuri 5e357b460d cleanup 2018-02-22 14:51:04 +02:00
yuri d660abe1f6 acl tests 2018-02-22 14:48:56 +02:00
yuri fd9617ec8f Merge branch 'hotfix/5.0.6' 2018-02-22 12:38:41 +02:00
yuri 48ccdaab5e calendar responcive fixes 2018-02-22 12:38:27 +02:00
yuri 52d9548333 select manager: external primary filters 2018-02-22 12:16:25 +02:00
yuri 4706d28560 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-02-21 16:34:58 +02:00
yuri 033f5de85d Merge branch 'hotfix/5.0.6' 2018-02-21 16:34:48 +02:00
yuri 6760f6f03d note type enum 2018-02-21 15:39:29 +02:00
yuri e1a7862194 xlsx fix 2018-02-21 14:00:46 +02:00
Taras Machyshyn 8ef53d229d Required MySQL version is 5.5.3 2018-02-21 13:01:57 +02:00
yuri c6d215f87c Merge branch 'hotfix/5.0.6' 2018-02-21 12:10:12 +02:00
yuri dccaed124c fix duplicate one-to-many issue 2018-02-21 12:10:04 +02:00
yuri ccfca4a61a activity account contact fiexes 2018-02-21 12:00:10 +02:00
Taras Machyshyn 417a05f24f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-02-20 17:54:14 +02:00
Taras Machyshyn 7a85f7576d Unit test for copy() of FileManager 2018-02-20 17:54:04 +02:00
yuri 8407ab3a74 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2018-02-20 16:58:13 +02:00
yuri c120ebd3ca header fixes 2018-02-20 16:50:24 +02:00
Taras Machyshyn d0635484a2 Database: default column charset is utf8mb4 2018-02-20 15:56:34 +02:00
yuri d3c487a28a modal overlaid shadow none 2018-02-20 15:49:22 +02:00
yuri 14f46a5d5d Merge branch 'hotfix/5.0.6' 2018-02-20 15:00:28 +02:00
yuri 00a8ca8273 fix select manager 2018-02-20 14:58:51 +02:00
yuri deec457728 header fix 2018-02-20 14:34:27 +02:00
yuri 5a5508a973 accessDataList for dashlets 2018-02-20 12:42:38 +02:00
yuri 357b285346 accessDataList for list filters and panels 2018-02-20 12:40:38 +02:00
yuri f8444b9e67 Merge branch 'hotfix/5.0.6' 2018-02-20 12:18:46 +02:00
yuri e0a224e414 calendar fixes 2018-02-20 12:18:39 +02:00
yuri 9dfb128e1d calender decrease longPressDelay 2018-02-20 11:58:11 +02:00
yuri 462d1f0274 utils checkAccessDataList 2018-02-20 11:44:10 +02:00
yuri 2e3803eef1 cleanup 2018-02-19 15:32:08 +02:00
yuri 42b186eb94 Merge branch 'hotfix/5.0.6' 2018-02-19 15:31:20 +02:00
yuri ccdee9ec09 import email unlock tables 2018-02-19 15:00:49 +02:00
yuri 05eeb82efd attendees panel not refreshable 2018-02-19 12:39:13 +02:00
yuri 6eefe64f4c fix frontend tests 2018-02-19 12:26:00 +02:00
yuri 5b96b19735 jasmine test fixes 2018-02-16 16:49:33 +02:00
yuri 3764d877ce Merge branch 'hotfix/5.0.6' 2018-02-16 12:33:46 +02:00
yuri 30e713c161 reminders in detailSmall 2018-02-16 11:49:01 +02:00
yuri da3a76e441 hack for upgrade 2018-02-16 11:23:19 +02:00
yuri adff467b50 event confirmation and unsubscribe: use frontend 2018-02-15 14:56:36 +02:00
yuri d59f05ad8b event confirmation hook 2018-02-15 13:26:19 +02:00
yuri 9c3d124f48 Merge branch 'hotfix/5.0.6' 2018-02-14 15:16:59 +02:00
yuri 4404b0f02e select manager: convertWhere 2018-02-14 11:33:22 +02:00
Andra Fetele 77533fba72 translated ~700 lines into Romanian (#806)
* Partial Romanian translation

* translated ~700 lines into Romanian
2018-02-14 08:49:10 +02:00
yuri 62d36ed0c2 lang 2018-02-13 12:46:40 +02:00
yuri 94ad0123c7 css fix 2018-02-13 11:21:05 +02:00
yuri 109842f0fe contact: hide title if no account 2018-02-13 11:19:38 +02:00
yuri d931d65cd8 formatting 2018-02-13 11:18:19 +02:00
yuri b7861a7cb1 htmlizer enum translation 2018-02-13 11:07:19 +02:00
yuri a49ad3bb48 fix lang 2018-02-13 11:04:05 +02:00
yuri d94acf5b78 fix activities dashlet tasks 2018-02-12 16:34:45 +02:00
yuri fd0e1d1460 css fix 2018-02-12 16:21:43 +02:00
yuri 2ed9d5487e chart css fix 2018-02-12 16:12:22 +02:00
yuri 5dc44cb701 fix assignment permission 2018-02-12 14:41:42 +02:00
yuri 9e07c383fe collection abortLastFetch 2018-02-12 14:33:09 +02:00
yuri 9e1ec2768b fix email switch folders 2018-02-12 14:06:55 +02:00
yuri 39674e8c7f htmlspecialchars for unsubscribe page 2018-02-12 12:52:47 +02:00
yuri 5dca4b7061 template aclPortal 2018-02-12 12:44:45 +02:00
yuri 5d3cb25d14 css fix 2018-02-12 12:43:16 +02:00
yuri 6e337affbb fix chart 2018-02-12 11:26:49 +02:00
yuri 87ab8cc15f chart css fix 2018-02-12 10:23:55 +02:00
yuri b654e5cebd icon class 2018-02-10 15:37:48 +02:00
yuri 11958f2abf icon changes 2018-02-10 15:34:45 +02:00
yuri 2a329ba92d fix next/prev through collection 2018-02-10 14:38:03 +02:00
yuri b22487ef70 lang fixes 2018-02-10 14:25:21 +02:00
Andra Fetele bf03a2f540 Partial Romanian translation (#804) 2018-02-09 20:08:08 +02:00
yuri ece51a6f9f task and activities dashlet fixes 2018-02-09 17:41:34 +02:00
yuri 915dbffe72 activities dashlet: support tasks 2018-02-09 17:22:00 +02:00
yuri fda0d6df1f fix login appParams 2018-02-09 15:51:05 +02:00
yuri 25891f9dc0 print pdf change 2018-02-09 15:45:24 +02:00
yuri 35902adbdc orm having clause 2018-02-09 14:47:18 +02:00
yuri 981d15ee55 Merge branch 'hotfix/5.0.5' 2018-02-09 13:04:04 +02:00
yuri adfec3441b template tab 2018-02-09 12:05:01 +02:00
yuri a208aa051f Merge branch 'hotfix/5.0.5' 2018-02-08 17:44:06 +02:00
yuri 9068302357 version 2018-02-08 16:52:23 +02:00
yuri 1bb0439f19 fix model reset 2018-02-08 16:02:12 +02:00
yuri f28585e245 mass update ui improvement 2018-02-08 15:37:41 +02:00
yuri 99cfeb25ee fix print to pdf button 2018-02-08 14:18:58 +02:00
yuri 6b7da9a39e fix entity manger and field manager 2018-02-08 13:22:00 +02:00
yuri 18bba7baec entity manager fix 2018-02-08 13:15:49 +02:00
yuri ec8ffbc090 chart dashlets acl 2018-02-08 12:52:18 +02:00
yuri 60eb1ca236 fix sales by month chart 2018-02-08 12:40:49 +02:00
yuri 5e3756313c fix sales pipeline chart 2018-02-08 12:20:13 +02:00
yuri d303d5a423 Merge branch 'hotfix/5.0.5' 2018-02-08 11:56:30 +02:00
yuri 938415aa79 cleanup 2018-02-08 11:54:15 +02:00
yuri 9033710e56 Merge branch 'hotfix/5.0.5' 2018-02-07 15:25:24 +02:00
yuri 2fd77e4034 excel export duration 2018-02-07 15:23:06 +02:00
yuri b733d8205e relationship panel setup list layout method 2018-02-07 14:59:58 +02:00
yuri f725ad09d7 user: hide mass update and export for non admin users 2018-02-07 13:41:29 +02:00
yuri e9a53c5b25 list view acl delete check 2018-02-07 12:54:58 +02:00
yuri 43e94cfe68 user acl check 2018-02-07 12:13:23 +02:00
yuri 07d713734f Merge branch 'hotfix/5.0.5' 2018-02-07 11:29:18 +02:00
yuri 4f004b8402 note status styles change 2018-02-07 11:07:24 +02:00
yuri b1f4131af9 user acl check 2018-02-06 17:36:10 +02:00
yuri 1adb19f427 fix field manager 2018-02-06 17:28:37 +02:00
yuri fce4a4b1d9 skip additional select params 2018-02-06 17:13:48 +02:00
yuri 61f35bcb5e user editable 2018-02-06 17:04:42 +02:00
yuri 0db68917a1 Merge branch 'hotfix/5.0.5' 2018-02-06 15:13:51 +02:00
yuri 9da8ab9bdb chart fix 2018-02-06 13:46:59 +02:00
yuri 8d1724df84 less opp stages 2018-02-06 13:01:09 +02:00
yuri cd88d59937 po ability to build po for all languages 2018-02-06 12:28:20 +02:00
yuri cab4f5ce64 opp stages translation 2018-02-06 12:22:20 +02:00
yuri 62ab1f8d00 fix export 2018-02-06 11:29:17 +02:00
yuri f0e1439c79 fix chart legend 2018-02-06 11:03:10 +02:00
yuri 5060918087 print pdf for all entity types 2018-02-05 16:42:33 +02:00
yuri bf6b058152 reset page title on logout 2018-02-05 15:54:13 +02:00
yuri 40b607a73f template change 2018-02-05 15:48:35 +02:00
yuri 2bdbba0eff fix sales chart 2018-02-05 15:42:56 +02:00
yuri 058d821a7c fix chart 2018-02-05 15:32:22 +02:00
yuri 4575ff89ad chart fixes 2018-02-05 12:59:50 +02:00
yuri 608454fcf2 fix css 2018-02-05 12:54:26 +02:00
yuri 58c1bec2da css fix 2018-02-05 12:30:57 +02:00
yuri e1ce16c399 chart legend title 2018-02-05 12:16:05 +02:00
yuri 2d3a748286 chart fixes 2018-02-05 11:58:21 +02:00
yuri 06834dd8bf fix calendar 2018-02-05 10:18:31 +02:00
yuri e4c0f19b1c fix css 2018-02-02 16:03:29 +02:00
yuri 84faf7a782 entity manager: supporting templates in modules 2018-02-02 14:27:40 +02:00
yuri 61db675ab1 css fix 2018-02-01 16:48:59 +02:00
yuri 59e72796e3 css fix 2018-02-01 16:43:07 +02:00
yuri 76e61a6358 fix dropdown on small screens 2018-02-01 14:54:04 +02:00
yuri 455eceefa1 Merge branch 'hotfix/5.0.4' 2018-02-01 13:15:41 +02:00
yuri 834e979060 fix css 2018-02-01 12:23:17 +02:00
yuri ece36c8711 fix test 2018-02-01 11:39:30 +02:00
yuri 9b999a1ec8 fix test email import 2018-02-01 11:22:16 +02:00
yuri 80c53e15e5 fix test 2018-02-01 11:12:15 +02:00
yuri a37b6077c1 css fix 2018-02-01 11:02:45 +02:00
yuri fabfa392b7 clear cache page style fixes 2018-02-01 10:55:57 +02:00
yuri 8ff717cfd5 css fixes 2018-02-01 10:53:28 +02:00
yuri eae042d730 css chages 2018-01-31 15:07:57 +02:00
yuri f6fda22160 css change 2018-01-31 14:55:43 +02:00
yuri c120ecab1a css changes 2018-01-31 14:47:26 +02:00
yuri 6afcbe90a1 css change 2018-01-31 14:35:56 +02:00
yuri 130bde63cf Merge branch 'hotfix/5.0.4' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.0.4 2018-01-31 12:19:40 +02:00
Taras Machyshyn c76e8f96d9 Code fixes 2018-01-31 11:56:47 +02:00
yuri 7b92014249 scheduled job update silent 2018-01-31 11:55:26 +02:00
yuri 33df80559d scheduled job hooks disabled 2018-01-31 11:53:12 +02:00
Taras Machyshyn c0d9d1e514 Static methods for System utils 2018-01-31 11:51:11 +02:00
yuri ed2567913b fix show more focus 2018-01-31 11:49:00 +02:00
yuri 9a7bd94ce1 fix collection lengthCorrection 2018-01-31 11:42:44 +02:00
yuri 036aea5c7f fix orm week_1 function 2018-01-31 11:33:09 +02:00
yuri 1bc1311113 fix job 2018-01-30 19:02:06 +02:00
yuri 135fe6f2e6 var name fixes 2018-01-30 18:56:08 +02:00
yuri f366a1d0dd Merge branch 'hotfix/5.0.4' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.0.4 2018-01-30 18:42:08 +02:00
Taras Machyshyn b4cda3b349 Code improvements 2018-01-30 18:41:53 +02:00
yuri 0e92ae792c Merge branch 'hotfix/5.0.4' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.0.4 2018-01-30 17:50:56 +02:00
Taras Machyshyn cf4247321c Installer: changed loading icon 2018-01-30 17:26:03 +02:00
Taras Machyshyn 994be85579 Fixed after install duplicate records 2018-01-30 17:24:33 +02:00
yuri 8cdaf1a534 cleanup 2018-01-30 17:06:23 +02:00
yuri f9996d3643 css fix 2018-01-30 14:25:36 +02:00
yuri 6b7bcca21b css fix 2018-01-30 14:24:26 +02:00
Taras Machyshyn c7109906bc Merge branch 'pid' into hotfix/5.0.4 2018-01-30 12:52:15 +02:00
Taras Machyshyn 63583ad630 CronManager: added checking is process active 2018-01-30 12:49:29 +02:00
yuri 4d063194ed font size param in theme 2018-01-30 11:47:04 +02:00
yuri c579e08614 save error handling supporting 500 error 2018-01-30 11:39:24 +02:00
yuri 40414a0f17 save error handling in frontend 2018-01-29 17:43:29 +02:00
yuri 5e1ee6f06f throw conflict if user name exists 2018-01-29 17:31:38 +02:00
yuri f885333310 default jobs scheduling change 2018-01-29 17:14:12 +02:00
yuri 72149851cf job config params change 2018-01-29 16:02:10 +02:00
yuri e2ce971b70 css fix 2018-01-29 14:30:43 +02:00
yuri 802bb9b1c2 fix css 2018-01-29 14:24:08 +02:00
yuri 30ce642d88 reneme check new version job 2018-01-29 13:35:33 +02:00
yuri bc901fad0b installer style fixes 2018-01-29 13:26:04 +02:00
yuri dae251fb43 fix show more 2018-01-29 13:13:18 +02:00
yuri f98a916a55 update libs 2018-01-29 13:13:09 +02:00
yuri a7fd14ef36 fix job 2018-01-27 13:55:34 +02:00
yuri 5ff2eb1945 number fields title in list view 2018-01-27 13:05:20 +02:00
yuri a60e82591f default currency format 2 2018-01-27 12:59:47 +02:00
yuri 2ae59a5820 email portions limitation 2018-01-27 12:49:23 +02:00
yuri 1d46427d51 settings layout change 2018-01-27 12:47:08 +02:00
yuri 8bd7009c02 currency decimal places = 2 2018-01-27 12:41:06 +02:00
yuri cc90d546a5 scheduled jobs fix 2018-01-27 12:36:42 +02:00
yuri e916ff5a0b system scheduled job change 2018-01-27 12:34:42 +02:00
yuri 54fa8f4867 lang 2018-01-27 12:12:33 +02:00
yuri 7d92ee7d7a email import improvements 2018-01-26 16:23:29 +02:00
yuri 884388d0df email message id index 2018-01-26 15:55:39 +02:00
yuri 50b386388e App service rebuild and clear cache jobs 2018-01-26 15:55:20 +02:00
yuri f03c0d7c57 entity manager: skipAll, keepNew save options 2018-01-26 15:08:19 +02:00
yuri 83a3552b21 charts date filter ranges 2018-01-26 13:33:17 +02:00
yuri 1462f54a65 sales pipeline fix 2018-01-26 12:55:12 +02:00
yuri b7cd1657b0 css fix 2018-01-26 12:09:18 +02:00
yuri 9d1ae432d5 chart change 2018-01-26 11:40:08 +02:00
yuri 1e32df5a26 fix layout manager panel name loss 2018-01-25 17:56:04 +02:00
yuri 07128d04b0 dashboard side menu issue fix 2018-01-25 17:42:22 +02:00
yuri 8d0c1348b1 chart fixes 2018-01-25 17:31:22 +02:00
yuri 7bcacdbd27 css fix 2018-01-25 16:25:37 +02:00
yuri 65c3bb3291 chart fixes 2018-01-25 16:08:56 +02:00
yuri a08fa65fae chart improvements 2018-01-25 15:47:47 +02:00
yuri 85d8c9795a fix calendar warning 2018-01-24 16:41:19 +02:00
yuri 9a17dbbd68 chart overflow fix 2018-01-24 16:26:33 +02:00
yuri f83827886e chart sales by month fix 2018-01-24 16:07:46 +02:00
yuri 8964e98873 version 2018-01-24 15:10:51 +02:00
yuri 63e17e91bd email import concurrency issue fix 2018-01-24 15:05:52 +02:00
yuri f95cbe4ed2 fix email replate to email account 2018-01-24 15:05:17 +02:00
yuri 9ddd1dac3a fix typo in email 2018-01-24 14:03:06 +02:00
yuri 5ff0e67392 skipHooks param 2018-01-24 13:16:33 +02:00
yuri a60a2885e1 fix php mime mail parser 2018-01-24 13:12:34 +02:00
yuri 7e9ddf0c14 user access table: hide mandatory 2018-01-24 11:48:06 +02:00
yuri 5cb82cca42 email store sent fix 2018-01-24 11:40:52 +02:00
yuri 02edc35d3a user mass update fixes 2018-01-24 11:20:10 +02:00
yuri a30c17ed91 chart fixes 2018-01-23 18:06:04 +02:00
yuri d2dfd7ddb0 excel export: supporting address 2018-01-23 16:29:54 +02:00
yuri 2a35b9912c target lists exportable 2018-01-23 15:59:37 +02:00
yuri bc097db09f record grid layout improvement 2018-01-23 15:55:40 +02:00
yuri 75eb49ced3 acl changes 2018-01-23 14:51:28 +02:00
yuri cd2e3eec08 acl fix 2018-01-23 13:40:39 +02:00
yuri d72884a0e4 lang 2018-01-23 13:30:23 +02:00
yuri 315e35965c acl gender default 2018-01-23 12:51:07 +02:00
yuri f2fb3fc077 css fix 2018-01-23 11:30:28 +02:00
yuri f4d9e3fbc6 fix navbar 2018-01-23 11:01:09 +02:00
yuri d44f8e7ab4 fix export exception 2018-01-23 10:40:16 +02:00
yuri b0438991bf entity manager refactoring 2018-01-22 15:52:13 +02:00
yuri 0a23a469e2 loadLinkMultipleField improvement 2018-01-22 15:28:15 +02:00
yuri 2900e8afb7 csv export link multiple 2018-01-22 15:12:40 +02:00
yuri e3e25785c7 excel export link multiple fields 2018-01-22 14:43:57 +02:00
yuri 7c4e1393fe lang 2018-01-22 12:49:18 +02:00
yuri b06736351b fix lang 2018-01-22 12:46:25 +02:00
yuri 9c5a8c63ce portal preferences layout fix 2018-01-19 14:44:32 +02:00
yuri e8c171be92 Merge branch 'stable' 2018-01-19 14:14:25 +02:00
yuri 1b7aa9e48c css fixes 2018-01-19 12:39:59 +02:00
yuri 51fd3e681c css fix 2018-01-18 16:38:17 +02:00
yuri 484510f763 css fix 2018-01-18 15:50:26 +02:00
yuri 7fde7327fe css fixes 2018-01-18 15:14:28 +02:00
yuri 2c8094bf28 Merge branch 'hotfix/5.0.3' 2018-01-18 15:06:34 +02:00
tanyalei 256d30847e PDF: Images rendered not properly in footer FIX (#768) 2018-01-18 14:11:14 +02:00
yuri 0bbfee8716 timeline fixes 2018-01-18 11:53:23 +02:00
yuri 8d58e81d28 email account list fix 2018-01-18 11:41:22 +02:00
yuri 8fb80d12c9 portal hide custom tab list 2018-01-18 11:26:49 +02:00
yuri 2b5eed3a38 Merge branch 'hotfix/5.0.3' 2018-01-17 17:05:38 +02:00
yuri dccd5305e7 css fix 2018-01-17 17:04:29 +02:00
yuri bbb418d2af fix select record w/ categories 2018-01-17 15:27:45 +02:00
yuri a5bae56f8d cleanup 2018-01-17 14:56:28 +02:00
yuri aa3d2f8787 Merge branch 'hotfix/5.0.3' 2018-01-17 14:39:22 +02:00
yuri e9750e145f kb: hide side for portal 2018-01-17 14:35:11 +02:00
yuri d0cdefd972 Merge branch 'hotfix/5.0.3' 2018-01-17 13:34:38 +02:00
yuri 451aa7f5da relatonshipsPortal layout 2018-01-17 13:34:25 +02:00
yuri 43ee6ef8f6 css fix 2018-01-17 13:28:38 +02:00
yuri c366e8decc search filters disabled for portal 2018-01-17 13:22:48 +02:00
yuri 8610c61c18 fix css 2018-01-17 13:12:07 +02:00
yuri bee3a3b012 update vis 2018-01-17 12:57:54 +02:00
yuri dc2d46ca21 noAppCache param for libs 2018-01-17 12:41:22 +02:00
yuri 1b5346e86d Merge branch 'hotfix/5.0.3' 2018-01-17 12:23:35 +02:00
yuri 8bc633aed9 fix preset filter for ie 2018-01-17 12:17:16 +02:00
yuri ee3dee0570 fixc wysiwyg for ie 2018-01-17 12:11:05 +02:00
yuri 69048d8f89 fix css 2018-01-17 12:04:19 +02:00
yuri 427025c2ed storage fixes 2018-01-17 11:36:33 +02:00
yuri 6deb336115 Merge branch 'hotfix/5.0.3' 2018-01-16 17:15:24 +02:00
yuri a8be115d4b fix service populateDefaults 2018-01-16 17:12:32 +02:00
yuri 115ae82b17 Merge branch 'hotfix/5.0.3' 2018-01-16 15:40:54 +02:00
yuri e4b357e8d3 loading and caching impovements 2018-01-16 15:23:51 +02:00
yuri 560a7b2465 markdown disable tables 2018-01-16 12:56:59 +02:00
yuri acfe05297b cache set try catch 2018-01-16 11:48:55 +02:00
yuri 16579ff1a8 Merge branch 'hotfix/5.0.3' 2018-01-16 11:12:48 +02:00
yuri 2dcf81a516 css fix 2018-01-16 11:12:39 +02:00
yuri 44f379e3d2 fix wysiwyg 2018-01-16 10:49:11 +02:00
yuri 9be406c0a2 fix categories 2018-01-15 16:31:37 +02:00
yuri a030c50780 Merge branch 'hotfix/5.0.3' 2018-01-15 16:17:00 +02:00
yuri c9ca3a497f wysywyg resize fix 2018-01-15 16:14:21 +02:00
yuri 71886cd91c role action title 2018-01-15 14:50:00 +02:00
yuri e60d46b2ec Merge branch 'hotfix/5.0.3' 2018-01-15 14:44:30 +02:00
yuri 9829ca8d28 ff textarea fix 2018-01-15 14:44:22 +02:00
yuri 28c4651599 Merge branch 'hotfix/5.0.3' 2018-01-15 14:23:16 +02:00
yuri 14de81520b job: fix failed attempts 2018-01-15 14:23:05 +02:00
yuri 3a11d335a2 fix css 2018-01-15 12:51:03 +02:00
yuri 0d3554cc49 file upload ready validation 2018-01-15 12:50:48 +02:00
yuri 6b458f3b55 file upload ready validation 2018-01-15 12:46:49 +02:00
yuri 874885671b fix css 2018-01-15 12:38:52 +02:00
yuri a75f4dacab Merge branch 'hotfix/5.0.3' 2018-01-15 11:56:26 +02:00
yuri 8c5a455f08 fix assigned permission issues 2018-01-15 11:55:21 +02:00
yuri 1b12cd46b2 Merge branch 'hotfix/5.0.3' 2018-01-12 16:46:15 +02:00
yuri 42581469da list in panel margin bottom fix 2 2018-01-12 16:45:06 +02:00
yuri 562fa03c6c list in panel margin bottom fix 2018-01-12 16:42:45 +02:00
yuri 7389acd87f Merge branch 'hotfix/5.0.3' 2018-01-12 16:09:45 +02:00
yuri 8feca2783f fix navbar 2018-01-12 15:45:05 +02:00
yuri a290f7aba9 Merge branch 'hotfix/5.0.3' 2018-01-12 15:09:44 +02:00
yuri eb11f9f757 label manager: filter options 2018-01-12 15:08:17 +02:00
yuri 2ace19face horizontal navbar fix 2 2018-01-12 13:43:15 +02:00
yuri 25b6a94fd6 horizontal navbar fix 2018-01-12 13:25:07 +02:00
yuri d0768b3dce email plain fix 2018-01-11 17:18:09 +02:00
yuri b4c27f50ea diff change 2018-01-11 17:01:45 +02:00
yuri 669cb10f10 fix email side panel 2018-01-11 16:52:24 +02:00
yuri e9c0cd6d53 Merge branch 'hotfix/5.0.3' 2018-01-11 16:49:31 +02:00
yuri 06708a8b7e version 2018-01-11 16:44:45 +02:00
yuri fba8ca7817 css form panel bottom margin fix 2018-01-11 16:31:25 +02:00
yuri 37cae817a7 fix file uploading validate message 2018-01-11 14:26:58 +02:00
yuri 7d847cf179 Merge branch 'hotfix/5.0.3' 2018-01-11 12:29:41 +02:00
yuri a32c560f60 hide merge action if no remove access 2018-01-11 12:29:34 +02:00
yuri a4d4e640a2 merge improvements 2018-01-11 12:24:12 +02:00
yuri 74093976db Merge branch 'hotfix/5.0.3' 2018-01-10 15:02:01 +02:00
yuri 76f17e3f95 Merge branch 'hotfix/5.0.3' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.0.3 2018-01-10 14:46:42 +02:00
Taras Machyshyn ab4ce21927 Integration test fixes 2018-01-10 14:46:09 +02:00
yuri eb14dedb63 update tests for phpunit 6 2018-01-10 12:54:44 +02:00
yuri 004dfc1687 Merge branch 'hotfix/5.0.2' 2018-01-09 16:23:56 +02:00
yuri 62b4b92815 fix install 2018-01-09 16:18:48 +02:00
yuri e429bde5b8 Merge branch 'hotfix/5.0.2' 2018-01-09 16:15:07 +02:00
yuri 6c3ee8d462 fix opp repository 2018-01-09 12:35:32 +02:00
yuri 43f1c0d889 fix wysiwyg 2018-01-09 12:11:31 +02:00
yuri 2cd1bb8cdd Merge branch 'hotfix/5.0.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.0.2 2018-01-09 11:51:00 +02:00
yuri 3d8bbdd01d Merge branch 'hotfix/5.0.2' of ssh://172.20.0.1/var/git/espo/backend 2018-01-09 11:49:45 +02:00
yuri 1e90153f75 fix integration 2 2018-01-09 11:41:35 +02:00
yuri 61ef68d4ae account target list not exportable 2018-01-09 11:37:07 +02:00
Taras Machyshyn 517953a097 Merge branch 'hotfix/5.0.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/5.0.2 2018-01-09 11:19:38 +02:00
Taras Machyshyn 5ca757ac05 Tests: fixed a FieldManagerTest 2018-01-09 11:19:22 +02:00
yuri 1e69075099 fix integration 2018-01-09 11:08:59 +02:00
yuri 5e12a4b238 test disable 2018-01-08 14:34:28 +02:00
yuri 9ddbad0b50 fix account merge 2018-01-08 14:23:35 +02:00
yuri 6e444c3289 wysywyg useIframe 2018-01-08 12:09:26 +02:00
yuri 385f8733ab css 2018-01-08 11:47:09 +02:00
yuri 42c0c50e1b lang 2018-01-08 11:38:54 +02:00
yuri 3c17a8982a merge frontend change 2018-01-08 11:20:44 +02:00
yuri e0abf85014 fix deprecated 2018-01-08 11:09:18 +02:00
yuri 35db6e5cde merge change 2018-01-08 11:05:01 +02:00
yuri 7abdb854ea merge use object 2018-01-08 10:54:12 +02:00
yuri 924e50d135 grunt theme refactor 2018-01-05 13:31:43 +02:00
yuri 0f70f7a169 fix iframe css 2018-01-05 13:21:32 +02:00
yuri 7d4683d130 remove reset 2018-01-05 13:14:37 +02:00
yuri 8803e96bb7 version 2018-01-05 13:13:17 +02:00
yuri 3a4220878d css location change 2018-01-05 13:12:13 +02:00
yuri 21ee02d4ed fix json array export 2018-01-05 11:20:50 +02:00
yuri fbecb09d45 fix throw 2018-01-04 11:42:08 +02:00
yuri bbbec3b54a opp fix 2018-01-03 11:59:35 +02:00
yuri d62f7f3628 opp amount weight refresh 2018-01-03 11:54:01 +02:00
yuri fc07a06248 fix orm DATE_NUMBER 2018-01-03 11:01:29 +02:00
yuri c32682b245 amd support 2018-01-02 15:05:12 +02:00
yuri fc502a55b3 multiEnum change 2017-12-29 14:11:38 +02:00
yuri d580a3fa26 fix field manager 2017-12-29 14:09:08 +02:00
yuri 639686253b fix field manager options field 2017-12-29 11:19:59 +02:00
yuri 1274731a02 theme loading improvement 2017-12-28 12:56:42 +02:00
yuri 9ca51fcd94 fix css 2017-12-27 16:38:45 +02:00
yuri 8cabec8a3b fix navbar 2017-12-27 14:30:26 +02:00
yuri 967b6cfc81 ditch More label from navmar 2017-12-27 11:21:14 +02:00
yuri 416ae76a94 fix link panel css for small screen 2017-12-27 11:03:48 +02:00
yuri 05cfe65d8e gridstack fix 2017-12-26 17:33:16 +02:00
yuri d7dd804822 fix getMaxUploadSize 2017-12-26 16:22:49 +02:00
yuri aa56a20240 version 2017-12-26 14:59:07 +02:00
yuri 23b85d078b naming fix 2017-12-26 14:58:52 +02:00
yuri 154dad7cb4 fix button disabled 2017-12-26 12:23:52 +02:00
yuri 0a4c552602 tab remove 2017-12-26 11:32:27 +02:00
yuri ae479449fc installer xml recommendation 2017-12-26 11:07:24 +02:00
yuri f215196bcb 2018 2017-12-26 11:04:59 +02:00
yuri 79b688535b fix loader 2017-12-26 11:03:06 +02:00
yuri b5bd3ec514 fix categories 2017-12-22 13:58:13 +02:00
yuri 696cab7f65 fix filterInput 2017-12-22 13:42:30 +02:00
yuri 9f3122df29 fix opp stage 2017-12-22 13:26:15 +02:00
Taras Machyshyn 2ef1d5becb Added new 2018 year 2017-12-22 10:29:39 +02:00
yuri f5b5d94b27 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-21 17:11:39 +02:00
yuri 3a61e9b62d fix file 2017-12-21 17:11:18 +02:00
Taras Machyshyn 8ec70cc42f Metadata optimization 2017-12-21 15:57:42 +02:00
yuri e336bfbc1d categories fix 2017-12-21 13:42:54 +02:00
yuri bdd8579e7b fix list view 2017-12-21 12:31:19 +02:00
Taras Machyshyn 9b19e67eac Added 2018 year 2017-12-20 15:29:17 +02:00
yuri 62a4ea9080 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-20 13:54:58 +02:00
Taras Machyshyn 8dc9076de3 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-20 13:51:11 +02:00
Taras Machyshyn 4a72481a7d FieldManager: save only changes 2017-12-20 13:51:04 +02:00
yuri ad22d2bab6 fix layout manager 2017-12-20 13:44:25 +02:00
yuri d879d70b7d css 2017-12-20 13:37:07 +02:00
yuri ec01288930 css 2017-12-20 12:51:16 +02:00
yuri 6bb03bb176 fix entity manager remove entity and links 2017-12-20 11:41:23 +02:00
yuri fd085f5fde fix settings admin items 2017-12-19 16:51:56 +02:00
yuri 6e0b34d9d5 import style 2017-12-19 16:00:16 +02:00
yuri a69cee274f fix checkEntityForDuplicate 2017-12-19 15:54:10 +02:00
yuri 63126a8371 css for iframe 2017-12-19 15:41:52 +02:00
yuri 2a2e7524e8 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-19 13:57:35 +02:00
yuri 87f1a84e0d layouts change 2017-12-19 12:55:11 +02:00
yuri 08b90e08cf email accounts: useImap 2017-12-19 12:24:45 +02:00
yuri e5dad4622f fix group email account ui 2017-12-19 11:56:41 +02:00
Taras Machyshyn f6f2010670 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-18 16:52:31 +02:00
Taras Machyshyn fa8b77392a Css url fixes in the iframe 2017-12-18 16:52:22 +02:00
yuri 00476f082b Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-18 15:23:45 +02:00
Taras Machyshyn 60eefda570 Metadata optimizations 2017-12-18 15:10:44 +02:00
yuri 7532ba06cd cleanup 2017-12-18 13:47:40 +02:00
yuri a86ba2b704 fix email smtp test and using smtpAuthMechanism for system 2017-12-18 12:38:32 +02:00
yuri 4d9bd89544 fix task complete sent twice 2017-12-18 11:53:37 +02:00
yuri a6dc770afc metdata objects for frontend 2017-12-18 11:43:59 +02:00
yuri a4deda924a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-18 11:29:11 +02:00
yuri f75511e723 dynamic logic required only if has required 2017-12-18 11:26:49 +02:00
Taras Machyshyn b72c8bb212 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-15 16:51:18 +02:00
Taras Machyshyn 62eb33d936 Metadata in objects fixes 2017-12-15 16:51:10 +02:00
yuri aa481dc14d lang 2017-12-15 15:52:51 +02:00
yuri b2276950ca fix cron 2017-12-15 13:11:45 +02:00
yuri 1c032405fe attachment fix 2017-12-15 12:30:39 +02:00
yuri 2ae9b9239d css 2017-12-15 11:39:51 +02:00
yuri b390cb921e lt_LT lang 2017-12-15 11:34:29 +02:00
yuri fbee7df8da Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-15 11:25:37 +02:00
Taras Machyshyn 43559a0158 New version checker changes 2017-12-15 11:17:58 +02:00
yuri 0409a6102e fix 2017-12-14 17:46:48 +02:00
yuri 30985196b2 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-14 17:30:51 +02:00
Taras Machyshyn f289072486 Metadata: added getAllObjects() 2017-12-14 17:23:28 +02:00
yuri d244192783 text fix 2017-12-14 17:11:44 +02:00
yuri 87bf131f8e Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-14 16:58:29 +02:00
yuri ff1d010745 stream: store on closing window 2017-12-14 16:50:10 +02:00
yuri c0a72f3cbe layouts 2017-12-14 16:39:00 +02:00
yuri 14db1291b6 text minRows 2017-12-14 16:34:46 +02:00
yuri 76ab6bde62 fix text 2017-12-14 16:26:37 +02:00
yuri df92a6e110 text: fit height 2017-12-14 15:54:37 +02:00
yuri 0836dec4a6 markdown support 2017-12-14 15:06:08 +02:00
yuri 6ae345a9e1 lt_LT 2017-12-14 12:03:40 +02:00
yuri 4c283747a4 formula lowerCase upperCase 2017-12-14 11:45:28 +02:00
yuri a504bc8d4f lang changes 2017-12-13 15:29:42 +02:00
yuri f6fcfeae06 ability to import number field type 2017-12-13 15:21:15 +02:00
yuri 11376e3a09 target list count not sortable 2017-12-13 14:38:48 +02:00
yuri 86d1650ede foreigh field: supporing text 2017-12-13 12:01:14 +02:00
yuri 3c1d2a4236 version 2017-12-13 11:49:44 +02:00
yuri c80cfc9574 export disabled 2017-12-13 11:38:29 +02:00
Taras Machyshyn 4e47f203fb Fixed integration tests 2017-12-13 10:29:37 +02:00
Taras Machyshyn 42bbf92111 Integration tests improvements 2017-12-13 10:20:49 +02:00
yuri e4be63222a cleanup 2017-12-12 17:04:10 +02:00
yuri 061ff019ea fix email template 2017-12-12 17:02:14 +02:00
yuri 84b0b4a713 hide dashlet resize icon 2017-12-12 16:31:05 +02:00
yuri f9d4cdca51 fix dashboard layout field 2017-12-12 16:14:30 +02:00
yuri b2ab2a9b01 fullcalendar upgrade 2017-12-12 14:58:05 +02:00
yuri b044566309 summernote update 2017-12-12 12:29:20 +02:00
yuri 14e95414ab cleanup 2017-12-12 12:04:14 +02:00
yuri 88836f2d3a fix 2017-12-12 12:04:03 +02:00
yuri d2aefab3e2 format json 2017-12-12 11:40:48 +02:00
yuri a62e91af6f category ui fix 2017-12-12 11:27:36 +02:00
yuri cdf473fb2c deprecated controller actions 2017-12-12 11:16:59 +02:00
yuri 4f1730d929 fix htmlizer 2017-12-11 15:48:16 +02:00
yuri 4a3a13414b mass update fix 2017-12-11 15:06:29 +02:00
yuri 939ead833c use object for conroller action data 2017-12-11 14:51:01 +02:00
yuri 0946c8dba8 mass update data typehint 2017-12-08 15:52:26 +02:00
yuri 47e1687029 category cleanup 2017-12-08 15:17:54 +02:00
yuri 9230519d91 notifications fix 2017-12-08 14:44:55 +02:00
yuri 915ddab072 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-08 14:31:12 +02:00
yuri 7293910d45 job layout fix 2017-12-08 14:30:23 +02:00
yuri 3cfae1964e cron data as object 2017-12-08 14:27:12 +02:00
Taras Machyshyn e02fc8c9a2 Changed newVersionChecker 2017-12-08 12:49:22 +02:00
yuri 53fb2513d4 fix dashboard 2017-12-08 12:21:49 +02:00
yuri ecc0d65ee4 controller change methods 2017-12-08 12:15:17 +02:00
yuri c8dcc686c0 update gridstack 2017-12-08 10:42:24 +02:00
yuri 543a6447ae kb: hide empty attachments for portal users 2017-12-08 10:12:16 +02:00
yuri 78939a7152 codestyle fix 2017-12-07 17:25:12 +02:00
yuri b6bcb75dcf en_GB lang 2017-12-07 17:10:07 +02:00
yuri 81e841f784 lang: do not translate if equals original 2017-12-07 17:09:50 +02:00
yuri 3e64daae0c fix layout detail 3 2017-12-07 16:36:27 +02:00
yuri 124acbc17d fix grid layout 2017-12-07 16:18:12 +02:00
yuri 0060823de6 changes 2017-12-07 15:52:59 +02:00
yuri e60999ca5d fix email from 2 2017-12-07 14:08:22 +02:00
yuri aab28fcc5d fix test 2017-12-07 13:37:03 +02:00
yuri 452c5981a8 fix email from 2017-12-07 13:35:21 +02:00
yuri ebf43b64af fix file fetch 2017-12-07 12:40:07 +02:00
yuri dbd95a96fb edit access detail button fix 2017-12-07 12:13:32 +02:00
yuri 8362ec825f fix relate acl check 2017-12-07 12:02:14 +02:00
yuri e44d240f22 fix acl frontend 2017-12-07 11:44:02 +02:00
Taras Machyshyn c04722c8d5 Added a css url for news iframe 2017-12-07 11:42:29 +02:00
yuri 26a5e5fa33 portal layouts 2017-12-07 11:23:15 +02:00
Taras Machyshyn 5b3837af9f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-12-06 16:55:13 +02:00
Taras Machyshyn 6a64d5fe0e Merge branch 'check-releases' 2017-12-06 16:54:42 +02:00
Taras Machyshyn 4ceae087fa New version checker 2017-12-06 16:23:11 +02:00
yuri 321d45dc86 format fix 2017-12-06 16:22:59 +02:00
yuri 066b2b3803 grid layout refactoring 2017-12-06 16:04:37 +02:00
yuri 448387f29c fix max upload size 2017-12-06 13:11:12 +02:00
yuri 64b6eb42cc attachmentUploadMaxSize 2017-12-06 13:03:00 +02:00
yuri c2f4e689e8 max file size check 2017-12-06 12:55:39 +02:00
yuri f0d2856f44 team remove side panel 2017-12-06 11:37:11 +02:00
yuri 0465a03aee entity getValueMap 2017-12-06 11:30:10 +02:00
yuri ef7eaa925f fix collection unset 2 2017-12-06 11:12:39 +02:00
yuri e4d0fbaf37 fix collection 2017-12-05 15:48:08 +02:00
yuri 0bd2e65d93 link multiple role empty value 2017-12-05 14:27:05 +02:00
yuri 4f98f39f2a fix css 2017-12-05 11:18:22 +02:00
yuri 230364b3f3 trim address and person name 2017-12-05 11:02:40 +02:00
yuri 5fa591c84f lang fixes 2017-12-05 10:51:48 +02:00
yuri f70ef6bb14 inbound email translation fix 2017-12-05 10:47:01 +02:00
yuri 9586b725ad fix return 2017-12-04 16:58:52 +02:00
yuri a96a306901 fix return to list 2017-12-04 16:40:56 +02:00
yuri 366c0ca069 field level acl for list view 2017-12-04 15:23:43 +02:00
yuri a22f8ce76c list view fix 2017-12-04 14:42:45 +02:00
yuri 96c97df1e0 cleanup 2017-12-04 14:35:28 +02:00
yuri d683425ee1 emails drafts count 2017-12-04 14:10:30 +02:00
yuri cd9690a45a export permission 2017-12-04 12:41:36 +02:00
yuri 81338e9120 personal email account list change 2017-12-04 12:22:34 +02:00
yuri 51c279047f fix return to list 2017-12-04 12:22:14 +02:00
yuri a095f1255e manage categories link 2017-12-04 11:48:30 +02:00
yuri 2675b1f8e3 css fixes 2017-12-04 11:42:44 +02:00
yuri f4d39051e3 es lang 2017-12-04 11:30:13 +02:00
yuri d8f682393f panel customLabel 2017-12-04 11:17:24 +02:00
yuri e592227628 fix lang 2017-12-04 10:04:43 +02:00
yuri 853e8dcebc categories small fix 2017-12-01 16:21:52 +02:00
yuri cd77b5867a fix attachment multiple triggering change event 2017-12-01 15:59:21 +02:00
yuri 8d80e25d08 fix router navigate back 2017-12-01 15:31:05 +02:00
yuri 8b0ee19d6e filter list actions 2017-12-01 15:23:07 +02:00
yuri 817b853472 categories big change 2017-12-01 15:08:21 +02:00
yuri cbc0597852 document layout change 2017-12-01 10:45:11 +02:00
yuri 642f12e894 trim username on login 2017-12-01 10:40:51 +02:00
yuri 7a0ed9ecf6 fix avatar forbidden access 2017-12-01 10:36:18 +02:00
yuri a7d7c6e8f0 formula floor and ceil functions 2017-11-30 12:10:59 +02:00
yuri 14c747a26c improve number\format function 2017-11-30 12:00:18 +02:00
yuri f1d57bd0df fix email action label 2017-11-30 11:31:05 +02:00
yuri fc2bc0c715 fix detail view actions translation 2017-11-30 11:29:41 +02:00
yuri 47268cd6e0 fix required sign 2017-11-29 16:23:58 +02:00
yuri 214e7e4953 printPdf action 2017-11-28 13:56:15 +02:00
yuri 8161f387aa lt_LT lang 2017-11-28 12:06:23 +02:00
yuri 8f7d395a81 fix lang script 2017-11-28 12:06:05 +02:00
yuri df9320bb8c fix link multiple field 2017-11-28 11:26:24 +02:00
yuri 0075f42c58 formula: removeLinkMultipleId 2017-11-28 11:21:28 +02:00
yuri e76a05a436 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-11-27 11:52:33 +02:00
yuri e8eeb98131 formula datetime functions change 2017-11-27 11:00:13 +02:00
Taras Machyshyn 67d47d59d3 Fixed checking if crontab is configured 2017-11-24 17:36:38 +02:00
yuri 30ebcf6d76 fix email 2017-11-24 15:28:27 +02:00
yuri 468c1c5fc2 fix css 2017-11-24 15:21:43 +02:00
yuri bf4a172cb5 case portal default acl change 2017-11-24 13:59:16 +02:00
yuri 55a4a836c6 case portal filling account and contact if empty 2017-11-24 13:52:57 +02:00
yuri 2fe6f87b23 version 2017-11-24 12:30:22 +02:00
yuri d0d9c91487 acl refactors 2017-11-24 12:13:59 +02:00
yuri a3c7d8c0c2 email fixes 2017-11-24 11:45:17 +02:00
yuri e1b8565358 password detail view 2017-11-24 11:16:31 +02:00
yuri 21b7ef1f21 fix int validation messages 2017-11-24 11:04:04 +02:00
yuri 547583a1bc mass email fixes 2017-11-24 10:57:39 +02:00
yuri 1c513cfb6f email: filters by subject and body 2017-11-24 10:47:55 +02:00
yuri ae9c69307d fix notices 2017-11-23 17:53:07 +02:00
yuri db5db54fcf fix mass email 2017-11-23 17:50:07 +02:00
yuri 34d28c1b34 Merge branch 'master' of github.com:espocrm/espocrm 2017-11-23 17:39:13 +02:00
yuri 92fa02514b mass email group smtp 2017-11-23 17:38:36 +02:00
yuri 5aad4489c1 group smtp 2017-11-23 15:32:03 +02:00
ayman-alkom acf990e621 fix enum translate in list view when linkable (#709) 2017-11-23 11:30:43 +02:00
yuri 4f211cf691 readme change 2017-11-22 13:28:19 +02:00
yuri be467cbbc1 readme change 2017-11-22 13:26:43 +02:00
yuri 1293620bbd Merge branch 'hotfix/4.8.5' 2017-11-22 13:24:03 +02:00
yuri 047c5d5f65 fixes category and storing list view 2017-11-22 12:54:18 +02:00
yuri b66732bcd0 ms before mrs 2017-11-22 11:52:56 +02:00
yuri cc245b3de8 fix link parent link 2017-11-22 11:48:46 +02:00
yuri bb32b06063 fix address field search 2017-11-22 11:00:09 +02:00
yuri f2f1fbddf3 Merge branch 'hotfix/4.8.5' 2017-11-21 18:38:02 +02:00
yuri ee3378f88b storing list view improvements 2017-11-21 18:35:02 +02:00
yuri 9f57e68252 categoties refactor 2017-11-21 16:45:39 +02:00
yuri 70262f4e89 Merge branch 'hotfix/4.8.5' 2017-11-21 13:52:07 +02:00
yuri 7305ff7792 category tree improvement 2017-11-21 13:52:00 +02:00
yuri b035f7aab4 Merge branch 'hotfix/4.8.5' 2017-11-21 12:13:50 +02:00
yuri 401a9c4687 export xlsx substr utf-8 2017-11-21 12:13:39 +02:00
yuri 420645800e Merge branch 'hotfix/4.8.5' 2017-11-21 12:11:12 +02:00
yuri f4f33e3d1f fix xlsx export 2017-11-21 12:11:06 +02:00
yuri 7da0dfde7d Merge branch 'hotfix/4.8.5' 2017-11-21 11:43:24 +02:00
yuri 9c77281942 cases attachments 2017-11-21 11:33:27 +02:00
yuri b67f775404 fix readme 2017-11-21 11:05:47 +02:00
yuri ba844c4382 drop php 5.5 support 2017-11-21 11:03:41 +02:00
yuri b8e526757a Merge branch 'hotfix/4.8.5' 2017-11-21 10:55:24 +02:00
yuri 0797b71d95 fix frontend date time 2017-11-21 10:55:13 +02:00
yuri 17cef2461d Merge branch 'hotfix/4.8.5' 2017-11-20 15:19:25 +02:00
yuri cfec27eab8 attachments changes 2017-11-20 15:19:14 +02:00
yuri 0ae8f95313 Merge branch 'hotfix/4.8.5' 2017-11-17 17:08:15 +02:00
yuri 3d2ff947e4 refactor attachments 2017-11-17 17:08:08 +02:00
yuri df5fead77c Merge branch 'hotfix/4.8.5' 2017-11-17 14:24:06 +02:00
yuri 6081aca66c fix email 2017-11-17 12:35:10 +02:00
yuri 2e51e3f363 Merge branch 'hotfix/4.8.5' 2017-11-17 12:30:00 +02:00
yuri ea66bd16cb contact accountRole listen to title 2017-11-17 11:54:57 +02:00
yuri 80e9ffe881 hasSubject hasName methods 2017-11-17 11:47:02 +02:00
yuri cc9cacc04b fix draft empty subject 2017-11-16 16:55:22 +02:00
yuri 355ca2e7fe Merge branch 'hotfix/4.8.5' 2017-11-16 16:10:21 +02:00
yuri 851cef40c4 formula datetime closest function 2017-11-16 16:10:13 +02:00
yuri 4cde4a5885 fix email-to-case 2017-11-16 14:16:05 +02:00
yuri c6d37b7195 Merge branch 'hotfix/4.8.5' 2017-11-16 12:29:14 +02:00
yuri 618aa84555 ui filters changes 2017-11-16 12:24:19 +02:00
yuri 82d53474d3 Merge branch 'hotfix/4.8.5' 2017-11-16 11:56:08 +02:00
yuri 9d0d6d7475 update mail mime parser 2017-11-16 11:36:14 +02:00
yuri f7923bdf52 version 2017-11-16 11:33:18 +02:00
yuri e4598d5ebf Merge branch 'master' of github.com:espocrm/espocrm 2017-11-16 11:31:27 +02:00
yuri fbe41afdca Merge branch 'hotfix/4.8.5' 2017-11-16 11:31:03 +02:00
yuri b94f702cc0 language caching and fix 2017-11-16 11:30:53 +02:00
Taras Machyshyn 3951c8e35b Merge pull request #699 from zsroma/tests_for_route_replacing
PHPUnit for "Route : possibility to replace routes in modules"
2017-11-16 11:07:19 +02:00
r.ratsun a331edafe8 PHPUnit for "Route : possibility to replace routes in modules" 2017-11-15 17:11:29 +02:00
yuri a82b3acc2b selectize small in search mode 2017-11-15 16:12:17 +02:00
yuri 2637698641 Merge branch 'hotfix/4.8.5' 2017-11-15 16:02:02 +02:00
yuri ffeb600382 next month filter 2017-11-15 16:01:54 +02:00
yuri 171ed885eb Merge branch 'master' of github.com:espocrm/espocrm 2017-11-15 15:14:06 +02:00
yuri e3e05a07f3 Merge branch 'hotfix/4.8.5' 2017-11-15 15:13:05 +02:00
yuri 5a990de0d6 field manager: create labels for generated fields 2017-11-15 15:11:16 +02:00
Taras Machyshyn 3b11245525 Merge pull request #694 from Forestsoft-de/master
Unittests on windows failed
2017-11-15 12:55:02 +02:00
yuri 94923d3ddf merge hotfix/4.8.5 2017-11-15 11:39:14 +02:00
yuri 37a1a5246b sr_RS lang 2017-11-15 11:35:01 +02:00
yuri 428cfa3fe0 it_IT lang 2017-11-15 11:34:43 +02:00
yuri d08a100259 es_MX lang 2017-11-15 11:34:14 +02:00
yuri be567b9c0e es_ES lang 2017-11-15 11:33:45 +02:00
yuri 748231b8f1 fr_FR lang 2017-11-15 11:29:59 +02:00
yuri 48b1fbe66e zh CN lang 2017-11-15 11:26:36 +02:00
Sebastian Foerster 30fb116676 Extract change in different branch 2017-11-14 21:24:05 +01:00
Sebastian Foerster c6149cedcc Remove duplicated Test lines. 2017-11-14 21:05:02 +01:00
Sebastian Foerster 5eb2b92397 Integration Test failed on Windows because Espo Bool Type for doctrine could not been found. 2017-11-14 20:54:03 +01:00
Sebastian Foerster 26bbd6672f Merge branch 'master' of https://github.com/espocrm/espocrm 2017-11-14 18:24:06 +01:00
yuri 3cfacafb16 Merge branch 'master' of github.com:espocrm/espocrm 2017-11-14 15:30:13 +02:00
yuri d3bc318307 Merge branch 'hotfix/4.8.5' 2017-11-14 15:30:02 +02:00
yuri 405200d109 fix user filter not storing 2017-11-14 15:29:54 +02:00
yuri 6dfb4dd989 layout changes 2017-11-14 15:23:44 +02:00
Taras Machyshyn 763840e7fc Merge pull request #689 from ZinitSolutions/route_change
Route: possibility to replace routes in modules
2017-11-14 13:29:50 +02:00
Taras Machyshyn a9f9a8ef7f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-11-14 13:26:40 +02:00
Taras Machyshyn 2480ad34af Tests for Route 2017-11-14 13:25:08 +02:00
yuri e2f6e3324a admin notifications param 2017-11-14 10:57:02 +02:00
Sebastian Foerster ca7b5cab86 Fix Tests for Windows based Development System 2017-11-13 20:59:36 +01:00
r.ratsun 76471a6db1 Route: possibility to replace routes in modules 2017-11-13 16:51:25 +02:00
yuri dd8e51a1d9 skipOrmDefs param additional 2017-11-13 16:14:33 +02:00
yuri 83a6a8663d Merge branch 'hotfix/4.8.5' 2017-11-13 15:33:46 +02:00
yuri 3c6fc62a8a lead w/o name 2017-11-13 15:33:35 +02:00
yuri 5fff3bd09e dynamic logic: support email address and phone number in conditions 2017-11-13 15:13:27 +02:00
yuri 9cbfb930a4 Merge branch 'hotfix/4.8.5' 2017-11-13 14:47:55 +02:00
yuri 4015bf7d3b Merge branch 'hotfix/4.8.5' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.8.5 2017-11-13 14:45:02 +02:00
yuri 7a7dc9b2b7 Merge branch 'hotfix/4.8.5' 2017-11-13 14:44:10 +02:00
yuri 0c993c069d preferences: auto-follow improvements 2017-11-13 14:43:09 +02:00
Taras Machyshyn d04035dd3f HookManager improvements 2017-11-13 13:59:30 +02:00
yuri 5e18528d02 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-11-13 13:32:32 +02:00
yuri 68e42e9c5a Merge branch 'hotfix/4.8.5' 2017-11-13 13:32:21 +02:00
yuri 495f8bf968 import/export fixes 2017-11-13 11:54:21 +02:00
yuri 506a9a2e3f Merge branch 'hotfix/4.8.5' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.8.5 2017-11-10 15:30:36 +02:00
yuri 95992e918a change formula hook order 2017-11-10 15:27:15 +02:00
yuri cf53edf604 Merge branch 'hotfix/4.8.5' 2017-11-10 12:22:14 +02:00
yuri a581879a8e email parsing fixes 2017-11-10 12:19:57 +02:00
Taras Machyshyn 7581205800 Portal url fixes 2017-11-09 16:32:25 +02:00
yuri 4ed742fa4a fix email attachment import for weird formatting by apple client 2017-11-09 11:44:49 +02:00
yuri d3cb258440 fix email attachment import for emails composed with not proper formatting by bad agents 2017-11-09 11:20:38 +02:00
Taras Machyshyn 2d42c21c1a Merge branch 'hotfix/4.8.5' 2017-11-08 16:50:03 +02:00
Taras Machyshyn 1e2700cde1 HookManager improvements 2017-11-08 16:48:20 +02:00
yuri 6c39a89636 Merge branch 'hotfix/4.8.5' 2017-11-07 14:36:25 +02:00
yuri e5f8883399 formula: array push function 2017-11-07 14:33:05 +02:00
yuri 92b9a40891 fix excel export: foreign fields formatting 2017-11-07 14:19:55 +02:00
yuri 7d45be983b Merge branch 'hotfix/4.8.5' 2017-11-07 14:04:10 +02:00
yuri 63c60f3e6f export datetime timezone fix 2017-11-07 14:03:59 +02:00
yuri badadbf469 user created by field 2017-11-06 17:04:14 +02:00
yuri c32b665c12 job config change 2017-11-06 16:17:17 +02:00
yuri b37f60053d event invitation change 2017-11-06 15:45:44 +02:00
Taras Machyshyn 87d96b285b Variable correction 2017-11-06 12:53:43 +02:00
yuri 0ad12719f0 Merge branch 'hotfix/4.8.5' 2017-11-03 16:48:39 +02:00
yuri 8ad80c7a1a acl: aclAllowDeleteCreated 2017-11-03 16:48:18 +02:00
yuri 7a17c78a51 Merge branch 'hotfix/4.8.5' 2017-11-02 11:22:59 +02:00
yuri 05acdc4c5c fix default today 2017-11-02 11:22:46 +02:00
yuri 0787252f36 version 2017-11-02 10:22:03 +02:00
yuri c8089bfc32 fix link multiple sorting 2017-11-02 10:18:43 +02:00
yuri 1f38f5fd66 fix record base 2017-10-31 15:12:51 +02:00
yuri 1fb1edb2fa fix task complete button 2017-10-31 14:23:51 +02:00
yuri 9f5aa292ab fix main menu item names 2017-10-31 14:21:51 +02:00
Taras Machyshyn 92e61db752 Cleanup: remove old backup files after upgrade 2017-10-30 12:40:11 +02:00
yuri 67977a944c Merge branch 'hotfix/4.8.3' 2017-10-27 13:37:06 +03:00
yuri 9b170483da version 2017-10-27 13:33:02 +03:00
yuri 71ecc3c59e fix search preset filter 2017-10-27 10:26:26 +03:00
yuri 04039f5bc3 fix typo 2017-10-24 17:17:21 +03:00
yuri 94d0bccd96 dummy 2017-10-24 16:09:46 +03:00
yuri 72a12636b3 fix 2017-10-24 16:05:57 +03:00
yuri bfbc69fb25 fix search preset menu 2017-10-24 15:29:24 +03:00
yuri 206dc36a78 person name required 2017-10-24 12:23:11 +03:00
yuri 54a35674bc Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-10-24 11:55:38 +03:00
yuri d73bf51fcb Merge branch 'hotfix/4.8.3' 2017-10-24 11:55:28 +03:00
yuri 65f285e93f entity set object support 2017-10-24 11:45:45 +03:00
yuri 41f842e581 fix orm entity 2017-10-24 11:45:29 +03:00
yuri 9879f749e4 order link multiple records 2017-10-24 11:40:43 +03:00
yuri b88686816b link parent changes 2017-10-24 10:55:41 +03:00
yuri 59219a8f55 Merge branch 'hotfix/4.8.3' 2017-10-23 11:40:08 +03:00
yuri 08da60b1b0 foreign field: support date and datetime 2017-10-23 11:40:01 +03:00
yuri 6481f38f66 Merge branch 'hotfix/4.8.3' 2017-10-23 11:09:03 +03:00
yuri 987b838856 fix layout manager 2017-10-23 11:08:50 +03:00
yuri 4706c971d6 Merge branch 'hotfix/4.8.3' 2017-10-20 14:21:29 +03:00
yuri 8ba79cce2a notificator fix 2017-10-20 14:21:19 +03:00
yuri bfa1533ebf Merge branch 'master' of github.com:espocrm/espocrm 2017-10-18 12:19:34 +03:00
yuri 5db8069872 Merge branch 'hotfix/4.8.3' 2017-10-18 12:19:27 +03:00
yuri 3a48b155e2 formula: undefined variable treated as null 2017-10-18 12:18:58 +03:00
yuri c5af04ec2b formula nl support 2017-10-18 12:17:38 +03:00
Yuri Kuznetsov 46692fd3dd Revert "Create rodrigoscoelho.md (#659)" (#663)
This reverts commit 4aa27ce269.
2017-10-17 11:03:59 +03:00
rodrigoscoelho 4aa27ce269 Create rodrigoscoelho.md (#659) 2017-10-16 23:50:17 +03:00
yuri db38756b88 Merge branch 'hotfix/4.8.3' 2017-10-10 13:20:35 +03:00
yuri 62f0b6ad04 es_ES template 2017-10-10 13:20:27 +03:00
yuri 65e32d351b Merge branch 'hotfix/4.8.3' 2017-10-10 13:13:15 +03:00
yuri e7787b18a3 fix actions propagation 2017-10-10 13:13:07 +03:00
yuri e77127e2d5 fix orm 2017-10-10 13:03:41 +03:00
yuri bc11e35d35 fix admin 2017-10-09 11:59:03 +03:00
Taras Machyshyn 39940b3cc7 Changed documentation link 2017-10-06 17:47:47 +03:00
Taras Machyshyn d2d7b6805e Checking if Scheduled Jobs were run 2017-10-06 17:00:31 +03:00
yuri 9df45f6564 Merge branch 'hotfix/4.8.3' 2017-10-04 13:04:10 +03:00
yuri a44a25f2e7 fix setup detail view 2017-10-04 13:00:27 +03:00
yuri 37827dfda1 admin panel changes 2017-10-04 11:26:35 +03:00
yuri 827b69076a admin notifications changes 2017-10-04 10:50:27 +03:00
yuri b5d830361a Merge branch 'hotfix/4.8.3' 2017-10-03 18:23:35 +03:00
yuri 2ec595f8b0 admin quick create list fix 2017-10-03 18:23:17 +03:00
yuri 9d61f22296 first name last name max liength 2017-10-03 18:21:36 +03:00
yuri 69a99667a3 fix duplicate check person names 2017-10-03 18:17:19 +03:00
yuri 2665df0f1e fix duplicate check person names 2017-10-03 18:16:42 +03:00
yuri 6d5fc0a082 fix typo 2017-10-03 14:39:07 +03:00
yuri 41d12504ff admim notifications changes 2017-10-03 14:14:18 +03:00
yuri 20e069b5b2 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-10-03 13:18:33 +03:00
Taras Machyshyn 5f0a065f4b admin notifications 2017-10-03 13:18:22 +03:00
Sebastien DOIDO f7c5e8773d Array field: fix fetch search replace regexp if multi slash are present (#653)
Thanx
2017-10-02 11:51:52 +03:00
Sebastien DOIDO 990b38a4c6 Array field: fix fetch search replace regexp if multi slash are present (#653)
Thanx
2017-10-02 11:50:00 +03:00
yuri d48571cb04 Merge branch 'hotfix/4.8.3' 2017-09-28 11:01:37 +03:00
yuri 1e7bdaa991 fix css 2017-09-28 11:01:19 +03:00
yunga91 52acd88e97 mass-update field type fix (#652)
Thanks
2017-09-28 11:00:51 +03:00
yuri b265375148 Merge branch 'hotfix/4.8.3' 2017-09-27 13:42:51 +03:00
yuri fcd40af7c9 multi enum support empty strings 2017-09-27 13:40:53 +03:00
yuri da1f339fd1 Merge branch 'hotfix/4.8.3' 2017-09-26 17:52:06 +03:00
yuri 8d949fa1fc formula fetch related link mulitple ids 2017-09-26 17:50:37 +03:00
yuri 83f0d70291 Merge branch 'hotfix/4.8.3' 2017-09-26 17:27:08 +03:00
yuri d9504360d9 cleanup 2017-09-26 17:27:02 +03:00
yuri bcd21f6fd1 Merge branch 'hotfix/4.8.3' 2017-09-26 17:15:51 +03:00
yuri 09c34ff006 formula entity addLinkMultipleId support array 2017-09-26 17:15:41 +03:00
yuri dfc3f0a5d3 formula array create 2017-09-26 17:12:07 +03:00
yuri 0a3f1dad50 fix typo 2017-09-25 12:06:53 +03:00
yuri 3772e1e839 fix enum 2017-09-22 14:06:49 +03:00
yuri c4f5416adf rename campaign statistics 2017-09-21 12:25:53 +03:00
yuri fcdb9aca5d lang fix 2017-09-15 14:40:23 +03:00
yuri eaadcca1a9 remove loadAdditionalFields request param 2017-09-15 11:16:24 +03:00
yuri f0bff56146 Merge branch 'hotfix/4.8.3' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.8.3 2017-09-14 14:47:00 +03:00
yuri 1760e8019b Merge branch 'hotfix/4.8.3' 2017-09-14 13:48:37 +03:00
yuri 92e2177ed3 List action: loadAdditionalFields param 2017-09-14 13:48:28 +03:00
yuri 444b45a0c0 Merge branch 'hotfix/4.8.3' 2017-09-14 12:57:53 +03:00
yuri de72e6d6af htmplizer: ifEqual 2017-09-14 12:57:41 +03:00
Taras Machyshyn 32a8efad0e Installer: changed default value of smtpAuth 2017-09-13 14:23:59 +03:00
yuri a35e149e13 Merge branch 'hotfix/4.8.3' 2017-09-13 12:12:53 +03:00
yuri f8523cf2b6 htmlizer numberFormat 2017-09-13 12:10:55 +03:00
yuri 4e1df42f36 event stop propagation 2017-09-13 11:03:45 +03:00
yuri 9a60ee9fe6 cleanup 2017-09-13 11:02:17 +03:00
yuri 4cba0dac6e Merge branch 'stable' 2017-09-12 17:03:41 +03:00
yuri 19f1ef75fd fix application set 2017-09-12 16:51:54 +03:00
yuri 0561ba1f83 Merge branch 'hotfix/4.8.2' 2017-09-12 10:45:28 +03:00
yuri b29172ad18 it_IT lang fixes 2017-09-12 10:45:21 +03:00
yuri 312ced7e62 Merge branch 'hotfix/4.8.2' 2017-09-08 11:02:16 +03:00
yuri 8f201944a4 email inline attachment cleanable 2017-09-08 11:02:06 +03:00
yuri 6c9a350e43 fix typo 2017-09-06 12:09:13 +03:00
yuri a8881d146a Merge branch 'hotfix/4.8.2' 2017-09-06 12:04:35 +03:00
yuri 6f1be59b4c remove attachment if file/image changed 2017-09-06 12:03:46 +03:00
yuri 5a15fcbbb5 cleanup attachment improvements 2017-09-06 11:45:05 +03:00
yuri 40d1b7a654 Merge branch 'hotfix/4.8.2' 2017-09-05 11:18:52 +03:00
yuri 9084e6b679 fix excel 2017-09-05 11:18:40 +03:00
yuri 2f280151d4 Merge branch 'hotfix/4.8.2' 2017-09-04 10:57:06 +03:00
yuri ccb4fb13a9 fix formula parser 2017-09-04 10:56:57 +03:00
yuri b07c3b62cf fix recotd stop listen window 2017-08-31 16:08:34 +03:00
yuri d4805acef7 layout noLabel param 2017-08-31 15:37:14 +03:00
yuri 0637304a4f fix empty varchar and text 2017-08-31 11:39:22 +03:00
yuri 1454ac9299 Merge branch 'hotfix/4.8.2' 2017-08-30 16:31:29 +03:00
yuri 8f9089f0a3 fix lang 2017-08-30 16:31:22 +03:00
yuri 83ccec26ee fix lang 2017-08-30 15:29:33 +03:00
yuri db427c0bf1 version 2017-08-28 17:02:24 +03:00
yuri 0785ab9ee1 bottom loaded with middle 2017-08-28 16:57:17 +03:00
yuri 3882bddc8a Merge branch 'hotfix/4.8.2' 2017-08-23 13:53:47 +03:00
yuri 767dcd1e9f Merge branch 'hotfix/4.8.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.8.2 2017-08-23 13:53:22 +03:00
Taras Machyshyn 7e997b224b Fixed undefined Log class 2017-08-23 12:47:11 +03:00
yuri 1c11442aea lang portal permission fix 2017-08-23 11:08:25 +03:00
Taras Machyshyn 7a08eea518 Changed news URL 2017-08-22 16:48:35 +03:00
Taras Machyshyn cb14ca4627 installer: load values from existing data/config.php 2017-08-22 15:54:24 +03:00
Taras Machyshyn 7a6a8bc707 installer: added possibility to load values from existing data/config.php 2017-08-22 14:19:55 +03:00
yuri 157d63e2ed Merge branch 'hotfix/4.8.2' 2017-08-21 15:08:12 +03:00
yuri cc3ba89ab3 calendar dashlet month title 2017-08-21 15:07:21 +03:00
yuri f9da876818 Merge branch 'hotfix/4.8.2' 2017-08-21 13:03:27 +03:00
yuri 88135f93fe calendar dashlet next/previous buttons and some css fixes 2017-08-21 13:00:51 +03:00
yuri 1148e391a6 panel tpl fix 2017-08-21 11:52:22 +03:00
yuri f7c5706004 calendar dashlet view link 2017-08-21 11:25:01 +03:00
yuri 569a23759a Merge branch 'hotfix/4.8.2' 2017-08-21 10:57:48 +03:00
yuri 3120afb55e fix date time filter ranges 2017-08-21 10:55:16 +03:00
yuri 4d565b853e Merge branch 'stable' 2017-08-18 13:23:35 +03:00
yuri e991241ad2 remove target lang 2017-08-18 11:22:30 +03:00
Sebastien DOIDO 22e7756083 Fix clear cache typo update fr lang (#623)
* Update fr_FR lang.

* Fix clear cache typo.
2017-08-18 11:22:17 +03:00
yuri c65f537b8f remove target lang 2017-08-18 11:21:17 +03:00
yuri f2e48df7ea fix lang sr_RS 2017-08-18 11:10:08 +03:00
Sebastien DOIDO 935792fa9f Fix clear cache typo update fr lang (#623)
* Update fr_FR lang.

* Fix clear cache typo.
2017-08-17 22:37:08 +03:00
yuri 3b4dc45984 dont show auth error message 2017-08-16 16:30:55 +03:00
yuri fc747a94bd Merge branch 'hotfix/4.8.1' 2017-08-16 16:25:27 +03:00
yuri d9b1418f36 fix check personal email account job 2017-08-16 15:51:29 +03:00
yuri 443016790a fix menu check access 2017-08-16 14:45:23 +03:00
yuri ca9253ecd5 email account assigned user required 2017-08-16 14:39:42 +03:00
yuri ed8960d71f Merge branch 'hotfix/4.8.1' 2017-08-15 17:21:03 +03:00
yuri 395b11474e lang fix 2017-08-15 17:20:54 +03:00
yuri 71c2cb93cf lang fix 2017-08-15 17:17:37 +03:00
yuri 615438f1dd lang 2017-08-15 17:13:53 +03:00
yuri dd14c94202 Merge branch 'hotfix/4.8.1' 2017-08-15 12:56:56 +03:00
yuri 1c7fb79b33 more db ssl options 2017-08-15 12:54:49 +03:00
yuri 0c8ac1539c Merge branch 'hotfix/4.8.1' 2017-08-15 12:39:29 +03:00
yuri c6c16cd488 ssl database 2017-08-15 12:39:05 +03:00
yuri 86bd65556f Merge branch 'hotfix/4.8.1' 2017-08-14 16:38:42 +03:00
yuri a56502b814 show loading if email address in not loaded 2017-08-14 16:38:33 +03:00
yuri 24137df013 lang 2017-08-14 11:51:38 +03:00
yuri b945473422 fix array field 2017-08-11 15:05:23 +03:00
yuri d1fd6bfc8a Merge branch 'hotfix/4.8.1' 2017-08-11 14:58:42 +03:00
yuri ab7db9d084 color picker field 2017-08-11 14:57:14 +03:00
yuri c36007f216 fix naming 2017-08-11 14:49:13 +03:00
yuri 1d8cc18411 fix record tpl 2017-08-11 14:40:00 +03:00
yuri 0ec31c689d Merge branch 'hotfix/4.8.1' 2017-08-11 11:38:00 +03:00
yuri 723fc52d1c fix cache 2017-08-11 11:37:53 +03:00
yuri 8f15b098fb Merge branch 'hotfix/4.8.1' 2017-08-10 14:35:29 +03:00
yuri 073aedc18b strikethrough inactive account 2017-08-10 14:35:20 +03:00
yuri 035abf03cb field manager label upper case first 2017-08-10 13:36:55 +03:00
yuri 5808e85182 Merge branch 'hotfix/4.8.1' 2017-08-10 13:32:31 +03:00
yuri 50dbc60a5c file/image should create link 2017-08-10 13:32:24 +03:00
yuri dbdc83c544 fix stream acl 2017-08-10 12:58:45 +03:00
yuri 3551b3a8d4 Merge branch 'hotfix/4.8.1' 2017-08-10 12:44:40 +03:00
yuri 1d743afd2a Merge branch 'hotfix/4.8.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.8.1 2017-08-10 12:31:44 +03:00
yuri 3240d3161b Merge branch 'hotfix/4.8.1' 2017-08-10 12:31:24 +03:00
yuri 094bf69fab contacts panel filters 2017-08-10 12:31:13 +03:00
Taras Machyshyn 706226298a Merge branch 'hotfix/4.8.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.8.1 2017-08-09 17:38:17 +03:00
Taras Machyshyn 322bbb5d95 Schema converter optimization 2017-08-09 17:37:58 +03:00
yuri 3d9bd3b646 Merge branch 'hotfix/4.8.1' 2017-08-09 16:15:08 +03:00
yuri 5c12c6133f new text filters 2017-08-09 16:12:27 +03:00
yuri 417367838c fix array length 2017-08-09 14:30:46 +03:00
yuri eb3480b514 Merge branch 'hotfix/4.8.1' 2017-08-09 14:25:36 +03:00
yuri 6f1cc78329 array\length function 2017-08-09 14:18:02 +03:00
yuri a2faab036c file audited 2017-08-09 14:07:41 +03:00
yuri a32441543c image converter orm 2017-08-09 14:06:44 +03:00
yuri f4497402ca noIndex and file metadata converter 2017-08-09 13:13:33 +03:00
tanyalei ef6548bc82 Import fix: find related person by name (#605) 2017-08-08 17:30:36 +03:00
tanyalei 99ec7d43c5 Import fix: find related person by name (#605) 2017-08-08 17:29:49 +03:00
yuri f1bf0b3dee fix model:getLinkMultipleColumn 2017-08-08 15:18:13 +03:00
yuri ec23cae38d fix user teams load error 2017-08-08 14:01:36 +03:00
yuri 771e3237cf system user is admin 2017-08-08 13:47:43 +03:00
yuri ae72146d14 avatar requiring auth 2017-08-08 13:44:09 +03:00
yuri 20d6865323 version 2017-08-08 12:49:14 +03:00
yuri 89e13b0bac next number fix 2017-08-04 17:59:07 +03:00
yuri 8fa36ac14c fix next number unlock table 2017-08-04 17:45:46 +03:00
yuri e557782c64 fix notice 2017-08-04 14:05:28 +03:00
yuri 7cc7f3fbcf week function 2017-08-03 12:45:53 +03:00
yuri 3f293a6d23 orm: week function 2017-08-03 12:07:06 +03:00
yuri 309b09f6ce Merge branch 'master' of github.com:espocrm/espocrm 2017-08-02 12:26:58 +03:00
yuri 0b7e9f3d62 disableHooks property 2017-08-02 11:51:36 +03:00
tanyalei 58c17ffd5c beforeSave for Event fix (#602) 2017-08-01 15:18:44 +03:00
yuri 7d3ba23a9f fix labal manager 2017-07-31 16:41:04 +03:00
yuri ca2e4f5b37 fix duplicateIgnore 2017-07-31 16:17:47 +03:00
yuri d82174fec5 fix excel export 2017-07-31 13:00:55 +03:00
yuri 033c65b79b acl strict mode 2017-07-31 12:15:01 +03:00
yuri dbc8e5d9cc entity manager: common reserved word 2017-07-31 11:28:48 +03:00
yuri 42407935d5 duplicateIgnore 2017-07-31 11:23:52 +03:00
yuri e7d558b0bf version 2017-07-31 11:14:48 +03:00
yuri 290b530b92 Merge branch 'master' of github.com:espocrm/espocrm 2017-07-18 15:23:24 +03:00
yuri 18726bdccd empty reminder if event is not actual 2017-07-18 15:23:09 +03:00
Dmitry Danilson 06b0498abb Fix #592: Replace undefined with (#593) 2017-07-14 13:57:40 +03:00
yuri 7a7627e931 update mail-mime-parser 2017-07-12 12:03:37 +03:00
yuri c6038e9cee email account: unset recent flag 2017-07-12 11:32:10 +03:00
yuri 0e05596155 beforeSave repositoty order fix 2017-07-12 11:28:59 +03:00
yuri 0ca212f911 fix warning 2017-07-11 11:08:24 +03:00
yuri 94c2b9deda fix link search 2017-07-07 11:42:46 +03:00
yuri 2016a1bb0d relationship panel link in defs 2017-07-07 11:05:06 +03:00
yuri 6841ba9c85 side panel fieldList 2017-07-07 11:04:19 +03:00
yuri d5988f2c04 fix after twice after remove hook 2017-07-05 15:38:11 +03:00
yuri a56c9c3a46 fix complexText link 2017-07-04 17:28:51 +03:00
yuri 9d0bbdcd4d sr_RS lang 2017-07-04 15:47:57 +03:00
yuri 4bfaac3414 layout changes 2017-07-03 17:11:54 +03:00
yuri d54c044fd9 Merge branch 'hotfix/4.7.3' 2017-07-03 11:27:08 +03:00
yuri 1def66bb77 fix team clear roles cache 2017-07-03 11:26:25 +03:00
yuri 75041db2e9 currency setting changes 2017-06-28 14:37:45 +03:00
yuri 356948cdf7 fix preferences edit 2017-06-28 14:04:33 +03:00
yuri db92abf3ee Merge branch 'hotfix/4.7.3' 2017-06-28 12:45:20 +03:00
yuri d5d59abf13 fix notice 2017-06-28 12:45:11 +03:00
yuri 69c1e3e8e0 email load bcc name 2017-06-28 12:22:08 +03:00
yuri 963c4e3e2b fix typo 2017-06-26 12:43:22 +03:00
yuri cc4c735a27 entity manager: dont allow entity name if controller exists 2017-06-26 12:42:47 +03:00
yuri 175517a9dc list row menu links 2017-06-26 12:23:39 +03:00
yuri 9cb3548393 cleanup reminders 2017-06-26 12:22:36 +03:00
yuri ac0dea317f reminder threshold fix 2017-06-26 11:42:44 +03:00
yuri 839dfb9709 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-06-23 15:47:24 +03:00
Taras Machyshyn 2c7a4098f3 Upgrade manager: added beforeUpgradeFiles and afterUpgradeFiles 2017-06-23 13:16:36 +03:00
yuri 0228396376 fix formula dayOfWeek 2017-06-23 13:11:00 +03:00
yuri c5aa0eba48 fix formula dayOfWeek 2017-06-23 13:10:42 +03:00
Taras Machyshyn ac4472975d Fixed scheduled job run date 2017-06-23 12:40:33 +03:00
yuri 379f5fbaaf field manager ui fix 2017-06-23 12:34:21 +03:00
yuri af71408c52 cleanup 2017-06-23 12:19:22 +03:00
yuri b7a4fa1e7c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-06-23 12:15:39 +03:00
yuri 92b6e45ef2 default for link field 2017-06-23 12:15:31 +03:00
yuri acf6f67627 fix warning 2017-06-23 12:15:12 +03:00
Taras Machyshyn 017c34dcde Orm converter: remove fields without type 2017-06-22 17:26:05 +03:00
yuri f6e54918b2 fix orm 2017-06-22 12:43:11 +03:00
yuri 75b3c33526 tpl fix 2017-06-21 15:22:28 +03:00
yuri f784760735 css fix 2017-06-21 14:22:30 +03:00
yuri a739b3a96e fix link field empty name 2017-06-21 13:10:55 +03:00
yuri 0a8e0f00c2 defaultAttributes param 2017-06-21 12:37:01 +03:00
yuri 00c4cf4893 update mailmimeparser 2017-06-21 12:07:17 +03:00
yuri e8e9ea9e2f fix search trim 2017-06-20 16:08:50 +03:00
yuri c9cdb6767b update slim 2017-06-20 14:50:03 +03:00
yuri 24f9c1c762 es_MX lang 2017-06-20 11:08:15 +03:00
yuri 766a880799 lang 2017-06-20 11:04:23 +03:00
yuri 07de0dbeb0 fix search preset 2017-06-19 16:35:04 +03:00
yuri d1752f2ff0 fix select related 2017-06-19 16:13:59 +03:00
yuri ef27234ef8 enum column and varchar column field views 2017-06-19 15:58:20 +03:00
yuri 685862f1de fix enum int float 2017-06-19 11:04:12 +03:00
yuri 97621c45a8 opportunity role search 2017-06-16 12:50:35 +03:00
yuri b96d433796 search by account fixes 2017-06-15 17:31:32 +03:00
yuri 03d784c284 label manager 2017-06-15 16:53:12 +03:00
yuri 02ef97724f inactive account 2017-06-15 16:50:37 +03:00
yuri 93e2c65d30 en_GB lang 2017-06-14 15:55:17 +03:00
yuri d02bf65a55 version 2017-06-14 12:53:29 +03:00
yuri fb2f566314 email importer contact parent if no account 2017-06-14 12:51:36 +03:00
yuri 2227870854 Merge branch 'master' of github.com:espocrm/espocrm 2017-06-14 12:34:16 +03:00
yuri b195509843 Merge branch 'hotfix/4.7.3' 2017-06-14 12:34:06 +03:00
yuri 2100fa0606 fix email acl ui 2017-06-14 12:33:56 +03:00
Dmitry Danilson 3fe43bdfa3 #563 Replace Container::loadLog() with loader class (#565)
Looks good. Thanks.
2017-06-14 12:18:25 +03:00
yuri 26ad3d48af da_DK fix 2017-06-14 11:59:16 +03:00
yuri 9c224fefb7 label editor: confirm leave out 2017-06-12 14:51:51 +03:00
barwi e4db873e43 fix typo (#560) 2017-06-12 14:29:50 +03:00
barwi f06d53b3d2 fix typo (#560) 2017-06-12 14:28:58 +03:00
yuri 4ef706b716 Merge branch 'hotfix/4.7.2' 2017-06-08 16:52:16 +03:00
yuri 09e364625d fix formula parser 2017-06-08 16:52:03 +03:00
yuri 35f575ed7f fix array field 2017-06-07 12:06:58 +03:00
yuri 7b0d46b37f travel industry 2017-06-07 11:51:39 +03:00
yuri b8be2c9e13 travel industry 2017-06-07 11:51:20 +03:00
yuri f05c763119 label manager 2017-06-06 15:09:36 +03:00
yuri 262b3bb3b3 Merge branch 'hotfix/4.7.2' 2017-06-06 14:01:53 +03:00
yuri f474137b91 fix mention 2017-06-06 14:01:33 +03:00
yuri 7a18d88c50 fix export 2 2017-06-06 12:20:46 +03:00
yuri d3ea71c726 Merge branch 'hotfix/4.7.2' 2017-06-06 12:03:35 +03:00
yuri 8d1c9fe666 fix export 2017-06-06 12:01:19 +03:00
yuri 62ccfaa9c0 Merge branch 'hotfix/4.7.2' 2017-05-31 10:38:00 +03:00
yuri e6566bccdc fix portal 2017-05-29 13:42:41 +03:00
yuri 14ed7282f3 cleanup 2017-05-29 11:47:50 +03:00
yuri b13145adce version 2017-05-29 11:40:52 +03:00
yuri c0b169f7dd Merge branch 'hotfix/4.7.2' 2017-05-29 11:40:18 +03:00
yuri 3cfca9845a improve dependencies 2017-05-29 11:40:06 +03:00
yuri afa8d07bb4 fix notice 2017-05-29 11:35:00 +03:00
yuri 02434e0ca1 css fix 2017-05-26 11:48:34 +03:00
yuri 3d68c77ed4 Merge branch 'hotfix/4.7.1' 2017-05-26 11:19:11 +03:00
yuri 11f76c507b fix export sheet name 2017-05-25 14:51:11 +03:00
yuri a2e241966e Merge branch 'hotfix/4.7.1' 2017-05-25 14:22:49 +03:00
yuri c68f3eb44d template fixes 2017-05-25 14:22:39 +03:00
yuri 6a1d8dcdca version 2017-05-25 11:44:44 +03:00
yuri ba358e5847 Merge branch 'hotfix/4.7.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.7.1 2017-05-25 11:40:18 +03:00
yuri 5e174fd5a9 excel export fix 2017-05-25 11:16:58 +03:00
yuri 7bf7944360 excel export fix 2017-05-25 11:16:23 +03:00
yuri 9f72b074d5 Merge branch 'hotfix/4.7.1' 2017-05-24 13:41:26 +03:00
yuri 9af2500292 xsl export fix 2017-05-24 13:41:15 +03:00
yuri 59b7934aa2 Merge branch 'hotfix/4.7.1' 2017-05-22 15:41:03 +03:00
yuri 8e9dea260e fix port theme 2017-05-22 15:40:31 +03:00
yunga91 29ed6cb3b0 Fix view name resolving for custom field types in filter action (#546)
* fix view name resolving for custom field types in merge action

* fix view name resolving for custom field types in filter action
2017-05-22 14:36:43 +03:00
yuri a7a61a993c Merge branch 'master' of github.com:espocrm/espocrm 2017-05-22 14:36:09 +03:00
yunga91 68d1c0854b Fix view name resolving for custom field types in filter action (#546)
* fix view name resolving for custom field types in merge action

* fix view name resolving for custom field types in filter action
2017-05-22 14:35:31 +03:00
yuri fdd6f01415 Merge branch 'hotfix/4.7.1' 2017-05-22 14:16:03 +03:00
yuri 4670bb49e8 excel export by default 2017-05-22 14:15:56 +03:00
yuri 54a045e25a Merge branch 'hotfix/4.7.1' 2017-05-19 17:37:25 +03:00
yuri fcc18befc3 excel export fix currency 2017-05-19 17:37:18 +03:00
yuri 52ac9b1621 small fix 2017-05-19 17:14:58 +03:00
yuri 862b76f165 Merge branch 'hotfix/4.7.1' 2017-05-19 15:11:16 +03:00
yuri 9bca545f01 fix excel temp file name 2017-05-19 15:11:05 +03:00
Taras Machyshyn 80032f8ed7 Correct labels 2017-05-18 17:08:37 +03:00
yuri a63a690307 field manager: forbid underscore name 2017-05-18 13:24:36 +03:00
yuri 5ed0b2ba6b field manager: forbid underscore name 2017-05-18 13:24:15 +03:00
yuri 24dc2716f7 fix excel export label 2017-05-18 12:44:30 +03:00
yuri bbe26618ac fix excel export label 2017-05-18 12:44:10 +03:00
yuri 6f65d9e8d8 Merge branch 'hotfix/4.7.1' 2017-05-18 12:18:39 +03:00
yuri 3f40896374 export fileName 2017-05-18 12:18:31 +03:00
yuri f1b0decbab Merge branch 'hotfix/4.7.1' 2017-05-17 16:08:06 +03:00
yuri 8d8778b397 lang 2017-05-17 16:07:36 +03:00
yuri c2b60698bc Merge branch 'hotfix/4.7.1' 2017-05-17 15:56:37 +03:00
yuri 68d3b422cc lang 2017-05-17 15:56:28 +03:00
yuri 63ff4c1dca Merge branch 'hotfix/4.7.1' 2017-05-17 15:32:03 +03:00
yuri 145420aaaa fix export noJoin names 2017-05-17 15:31:54 +03:00
yuri 8987ec61fe Merge branch 'hotfix/4.7.1' 2017-05-16 13:45:29 +03:00
yuri 34ee17b7f5 fix notice 2017-05-16 13:45:12 +03:00
yuri a93627d274 tooltips 2017-05-16 12:58:23 +03:00
yuri 90fe18b660 Merge branch 'hotfix/4.7.1' 2017-05-16 12:47:44 +03:00
yuri 2a0646d1dd fix warning 2017-05-16 12:47:37 +03:00
yuri 6182376d1f Merge branch 'hotfix/4.7.1' 2017-05-16 12:21:48 +03:00
yuri 52620e84cd skipCreatedBy 2017-05-16 12:21:35 +03:00
yuri 66235f7e77 hide 2017-05-16 11:36:46 +03:00
yuri 49b61dab53 Merge branch 'hotfix/4.7.1' 2017-05-16 11:34:33 +03:00
yuri 4747113742 lang 2017-05-16 11:34:22 +03:00
yuri a10f2949a4 Merge branch 'hotfix/4.7.1' 2017-05-16 11:30:52 +03:00
yuri f26d7c6a62 lang 2017-05-16 11:30:43 +03:00
yuri 2e0d8cfd43 hide 2017-05-16 11:12:35 +03:00
yuri 666d8ab5ad Merge branch 'hotfix/4.7.1' 2017-05-16 10:55:34 +03:00
yuri db57c53652 BAM currency 2017-05-16 10:55:27 +03:00
yuri bbcf9e00fa notification number 2017-05-15 16:54:34 +03:00
yuri badf1aec6f fix side panel 2017-05-15 11:38:46 +03:00
yuri 19bb4514df lang 2017-05-12 14:31:32 +03:00
yuri 778be7fea8 Merge branch 'master' of github.com:espocrm/espocrm 2017-05-12 11:22:53 +03:00
yuri 326970bcd4 fix lang 2017-05-12 11:22:42 +03:00
yuri 9411bce8b0 fix sorting field types 2017-05-12 11:12:40 +03:00
yuri 244c1a426b fix model factory 2017-05-12 11:04:36 +03:00
Mauricio Panuncio b3f9ca8721 Fix and improve translations ES (#538)
* Translate es_ES: Globals. Admin.

* Tickets.

* Emails.

* New translations (missing).

* New translations (missing) II.

* Various.

* Opportunities: Improvement. Self-explanatory names.

* Some small fixes.

* Undo Tickets. Redo Casos.

* Fix: 'Lenguaje' to 'Idioma'.

* Fix some erros in the installation screens.

* Fix some erros in the installation screens II.

* Chamge mod

* Translate. Round 1.

* Translate ES. Stream: Actividades to Historia.

* Translate ES. Lead: Potencial to Posible Cliente.

* Translate ES. Log: Registros.

* Translate ES. Round 2.

* Translate ES. Round 3.

* Translate ES. Round 4.

* Translate ES. New translations.

* Translate ES. Fix bugs.

* Translate ES. Activity: Actividades to Actividades planeadas.

* Translate ES. Hostory: Historia to Historial de aactividades.

* Translate ES. Improvements.

* Fix.

* Traanslate ES.

* Traanslate ES.

* Traanslate ES.

* Fix permissions.

* New translations ES

* Fix and improve translations ES.
2017-05-11 17:55:55 +03:00
yuri 8c66a83054 html cache timestamp 2017-05-10 16:52:56 +03:00
yuri df6a1f6613 defaults config addition 2017-05-10 14:59:59 +03:00
yuri 1033a926fc v 4.7.0 2017-05-10 14:49:41 +03:00
yuri d339c04177 field manager: dont allow field name beginning with a number 2017-05-10 12:52:28 +03:00
yuri edcf0aae84 allow only one attachment multiple field 2017-05-10 12:47:14 +03:00
yuri 20f97caab3 field manager: not allow name same as link 2017-05-10 12:36:50 +03:00
yuri 86be4e7352 Merge branch 'hotfix/4.6.1' 2017-05-10 12:31:50 +03:00
yuri 697e271e66 Merge branch 'hotfix/4.6.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.6.1 2017-05-10 12:31:34 +03:00
yuri 5f74504da8 cleanup changes 2017-05-10 12:06:11 +03:00
yuri fb3d46d389 attachments fill parentType or relatedId w/o id if entity is not created 2017-05-10 11:35:23 +03:00
yuri 875971fb6e generate password preview 2017-05-10 10:59:04 +03:00
yuri 1939a58f17 stream post storing improvement 2017-05-09 15:57:03 +03:00
yuri 40b3374fdd stream post keep attachments 2017-05-09 15:07:03 +03:00
yuri c564b1b75a stream: store post content on leave 2017-05-09 12:57:49 +03:00
yuri c28e73ce3f formula fix 2017-05-08 16:06:47 +03:00
yuri 788a6bfdc3 formula ui fix 2017-05-08 13:32:16 +03:00
yuri 15d1f79115 formula change ui 2017-05-08 13:30:14 +03:00
yuri bf699d88f7 system jobs 2017-05-08 12:34:07 +03:00
yuri d7f8e4e050 fix notice 2017-05-08 12:32:49 +03:00
yuri 3872d7897a stream ignoreScopeList fix 2017-05-08 11:46:48 +03:00
yuri 17a1f6ce63 stream ignoreScopeList fix 2017-05-08 11:45:50 +03:00
Mauricio Panuncio eaa155eff7 Translate es (#536)
* Translate es_ES: Globals. Admin.

* Tickets.

* Emails.

* New translations (missing).

* New translations (missing) II.

* Various.

* Opportunities: Improvement. Self-explanatory names.

* Some small fixes.

* Undo Tickets. Redo Casos.

* Fix: 'Lenguaje' to 'Idioma'.

* Fix some erros in the installation screens.

* Fix some erros in the installation screens II.

* Chamge mod

* Translate. Round 1.

* Translate ES. Stream: Actividades to Historia.

* Translate ES. Lead: Potencial to Posible Cliente.

* Translate ES. Log: Registros.

* Translate ES. Round 2.

* Translate ES. Round 3.

* Translate ES. Round 4.

* Translate ES. New translations.

* Translate ES. Fix bugs.

* Translate ES. Activity: Actividades to Actividades planeadas.

* Translate ES. Hostory: Historia to Historial de aactividades.

* Translate ES. Improvements.

* Fix.

* Traanslate ES.

* Traanslate ES.

* Traanslate ES.

* Fix permissions.
2017-05-08 10:57:45 +03:00
yuri 13fba6d71c Merge branch 'master' of github.com:espocrm/espocrm 2017-05-08 10:56:50 +03:00
yuri 0d423aa349 Merge branch 'hotfix/4.6.1' 2017-05-08 10:56:09 +03:00
yuri 2fca224ba4 fix html 2017-05-08 10:55:47 +03:00
yuri 574f85df46 email template related 2017-05-08 10:42:25 +03:00
yuri b7176983e2 email template related 2017-05-08 10:42:01 +03:00
Mauricio Panuncio e8f19ff0dc Translate es (#536)
* Translate es_ES: Globals. Admin.

* Tickets.

* Emails.

* New translations (missing).

* New translations (missing) II.

* Various.

* Opportunities: Improvement. Self-explanatory names.

* Some small fixes.

* Undo Tickets. Redo Casos.

* Fix: 'Lenguaje' to 'Idioma'.

* Fix some erros in the installation screens.

* Fix some erros in the installation screens II.

* Chamge mod

* Translate. Round 1.

* Translate ES. Stream: Actividades to Historia.

* Translate ES. Lead: Potencial to Posible Cliente.

* Translate ES. Log: Registros.

* Translate ES. Round 2.

* Translate ES. Round 3.

* Translate ES. Round 4.

* Translate ES. New translations.

* Translate ES. Fix bugs.

* Translate ES. Activity: Actividades to Actividades planeadas.

* Translate ES. Hostory: Historia to Historial de aactividades.

* Translate ES. Improvements.

* Fix.

* Traanslate ES.

* Traanslate ES.

* Traanslate ES.

* Fix permissions.
2017-05-07 08:13:47 +03:00
yuri d3cb4607ea orm functions 2017-05-05 15:57:11 +03:00
yuri 8ae0696f07 formula: minute, hour 2017-05-05 13:45:37 +03:00
yuri 299c3c13fc orm: functionList 2017-05-05 13:33:33 +03:00
yuri a79a8bcef6 orm dayofweek 2017-05-05 12:50:05 +03:00
yuri 2a0dd46b5e formula: date functions 2017-05-05 12:44:27 +03:00
yuri 6c287bc2e2 orm: DATE functions 2017-05-05 11:53:08 +03:00
yuri 7add59ffcb formula: list 2017-05-05 11:03:21 +03:00
yuri 9747c43988 duplicate link new tab 2017-05-04 15:40:39 +03:00
yuri 8b9a0f1437 excel export changes 2017-05-04 14:43:12 +03:00
yuri 1315ca007c fix 2017-05-03 16:37:59 +03:00
yuri e753d767fc no-currency support 2017-05-03 16:34:25 +03:00
yuri db893859c2 excel export changes 2017-05-03 16:25:02 +03:00
yuri 16af3d2ad8 currency format 2017-05-03 16:24:47 +03:00
yuri f334080fe6 metadata currency symbols 2017-05-03 14:20:07 +03:00
yuri b2acfbed98 email keep attachments on select template option 2017-05-03 12:00:21 +03:00
yuri 2aca6ca28a email keep attachments on select template option 2017-05-03 11:59:12 +03:00
yuri c96040edec export fixes 2017-05-02 15:30:48 +03:00
yuri e0ebb44e64 export xslx 2017-05-02 15:14:18 +03:00
yuri ee1af88f8d fix select manager order file field 2017-05-02 11:27:46 +03:00
yuri 1659e583ea fix select manager order file field 2017-05-02 11:27:27 +03:00
yuri 6f0575d798 Merge branch 'hotfix/4.6.1' of ssh://172.20.0.1/var/git/espo/backend 2017-04-28 17:05:53 +03:00
Taras Machyshyn ba05c45f47 EntityManager: fixed translated options 2017-04-28 17:02:16 +03:00
yuri 353caf29b3 fix export 2017-04-28 16:40:55 +03:00
yuri 7600d473bb export change 2017-04-28 16:39:26 +03:00
yuri c9ff48245e export changes 2017-04-28 16:16:44 +03:00
yuri 4ed4a94209 export changes 2017-04-28 15:50:18 +03:00
yuri c88e01fe75 export populate with list layout 2017-04-28 15:10:40 +03:00
yuri 9e46edce79 fix export 2017-04-28 14:46:39 +03:00
yuri bae5c67839 exportCollection 2017-04-28 14:44:25 +03:00
yuri 635d5d9c6c tr_TR lang 2017-04-28 13:45:18 +03:00
yuri 65be8c385f formula array includes 2017-04-28 13:36:11 +03:00
yuri c3d44e2472 orm not subquery prevent too deep 2017-04-28 12:42:08 +03:00
yuri 4a781ed5f4 Merge branch 'hotfix/4.6.1' 2017-04-28 12:34:13 +03:00
yuri d9995512a1 fix required sign 2017-04-28 12:34:04 +03:00
Taras Machyshyn 6ed2466785 Fixed nginx routing rules 2017-04-28 12:15:01 +03:00
Anthony Andriano 724c74b488 en_US Updates (#525)
* fixed a typo

* updated a few en_US labels to be more natural english
2017-04-28 11:31:19 +03:00
Anthony Andriano 67887c5ba4 update diff to use util instead of sys (#524) 2017-04-28 11:31:05 +03:00
yuri ea2a0068ed Merge branch 'master' of github.com:espocrm/espocrm 2017-04-28 11:25:25 +03:00
Anthony Andriano 0bfdea5976 en_US Updates (#525)
* fixed a typo

* updated a few en_US labels to be more natural english
2017-04-27 20:04:13 +03:00
Anthony Andriano 305ebc293f update diff to use util instead of sys (#524) 2017-04-27 19:19:58 +03:00
yuri f17f74672e fix orm 2017-04-27 15:57:39 +03:00
yuri fcaf184b13 dynamic logic and forumla add field focus 2017-04-27 15:41:51 +03:00
yuri efe653f1f6 dynamic logic and forumla add field focus 2017-04-27 15:41:24 +03:00
yuri c1022bf8f3 Merge branch 'hotfix/4.6.1' 2017-04-27 15:01:01 +03:00
yuri 0f4c3988f8 fix class name 2017-04-27 15:00:45 +03:00
yuri 498b7b5679 Merge branch 'hotfix/4.6.1' 2017-04-27 12:36:14 +03:00
yuri ca445a3cb7 kb ui acl fix 2017-04-27 12:36:02 +03:00
yuri 8a293749e0 fix ORM not 2017-04-27 12:14:22 +03:00
yuri 5c034279e8 Merge branch 'hotfix/4.6.1' 2017-04-27 11:33:31 +03:00
yuri 9460943ad2 escaping fix 2017-04-27 11:33:22 +03:00
yuri 5eaeabe231 ORM: Subqueries IN and NOT 2017-04-26 16:32:24 +03:00
yuri 2202b00600 inlineEditDisabled in clientDefs 2017-04-26 11:35:07 +03:00
Sebastien DOIDO 68ba5a5c4a Improve french translation: Campaign.json + MassEmail.json (#517) 2017-04-24 17:39:35 +03:00
Sebastien DOIDO e80b490152 Improve french translation: Campaign.json + MassEmail.json (#517) 2017-04-24 16:03:29 +03:00
yuri 380937b644 enum field filters 2017-04-24 15:44:43 +03:00
yuri ac72305101 Merge branch 'hotfix/4.6.1' 2017-04-24 14:59:27 +03:00
yuri a41779b0bb fr_FR fixes 2017-04-24 14:58:41 +03:00
yuri 86cdbf24b7 Merge branch 'hotfix/4.6.1' 2017-04-24 12:44:41 +03:00
yuri 5d7bc98088 user detail view: created at field 2017-04-24 12:43:39 +03:00
yuri 1359e8eb2f Merge branch 'hotfix/4.6.1' 2017-04-24 12:32:15 +03:00
yuri f3a7003444 fr_FR lang 2017-04-24 12:32:05 +03:00
yuri 624f76b1a0 clear local cache improvements 2017-04-24 12:24:30 +03:00
yuri 484ffa071c label fix 2017-04-24 11:40:13 +03:00
Sebastien DOIDO 850fb3cb15 Fix typo to have correct translation (#516) 2017-04-24 11:32:04 +03:00
Sebastien DOIDO 40075ed2e3 Fix typo to have correct translation (#516) 2017-04-24 11:31:26 +03:00
yuri f68bb4b491 tr_TR lang fix 2017-04-21 11:19:00 +03:00
yuri 473e1109b4 fix import 2017-04-20 15:23:20 +03:00
yuri c4b8b90ff5 fix css 2017-04-20 12:21:30 +03:00
yuri 70b4017353 tr_TR lang 2017-04-20 11:32:58 +03:00
yuri e6f7bf4d6c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-04-19 16:28:22 +03:00
Taras Machyshyn 69385519d7 Metadata: delete related additional fields in entitiDefs 2017-04-19 16:24:44 +03:00
yuri 235ee7c383 Merge branch 'master' of github.com:espocrm/espocrm 2017-04-19 13:49:21 +03:00
yunga91 a6dba9f09a fix view name resolving for custom field types in merge action (#509) 2017-04-19 13:49:02 +03:00
yuri f1352430b9 close modal bigger icon 2017-04-18 17:45:08 +03:00
yuri b9b63a8a7c fix last viewed 2017-04-18 15:50:56 +03:00
yuri 5358bf4a43 fix last viewerd 2017-04-18 15:00:19 +03:00
yuri 1c7a7d8147 template placeholders labels 2017-04-18 14:58:23 +03:00
yuri ca055e8ca9 css fix 2017-04-18 14:22:33 +03:00
yuri 081c058229 languge field order fix 2017-04-18 13:20:39 +03:00
yuri a5c941b1b2 zh_CN lang 2017-04-18 13:14:26 +03:00
yuri d43e63b89e fix checbox css 2 2017-04-18 12:39:47 +03:00
yuri 102886e23d fix firefox checkbox style 2017-04-18 12:06:50 +03:00
yuri 3b8b9e392e fix auth 2017-04-18 12:06:38 +03:00
yuri 226152135d fix portal language 2017-04-18 11:11:18 +03:00
yuri 7f6a5b626e fix last viewed 2017-04-14 16:04:54 +03:00
yuri c5fa26ffcb portal kb acl published check 2017-04-14 15:12:29 +03:00
yuri 7b2bbcfd05 version 4.6.0 2017-04-13 15:40:10 +03:00
yuri e5b336d4f3 Merge branch 'master' of github.com:espocrm/espocrm 2017-04-13 15:03:18 +03:00
yuri 2d786d9660 noneOf filter 2017-04-13 15:01:23 +03:00
yuri a587efddde link multiple filters improvements 2017-04-13 12:56:32 +03:00
yuri 81dd2bc800 link filters changes 2017-04-12 17:20:06 +03:00
tanyalei b1273176a9 Hooks for afterOptOut, afterCancelOptOut for TargetList (#502)
* Process hooks for optOut, cancelOptOut

* process hook afterOptOut

* process hook afterCancelOptOut

* updateRelation
2017-04-12 16:26:21 +03:00
yuri 46beb8b6b7 uk_UA lang 2017-04-12 15:22:32 +03:00
yuri 264efa2e8d formula number\\round 2017-04-12 14:18:47 +03:00
yuri f538f05ec3 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-04-12 12:16:31 +03:00
yuri 069a50c717 fix hooks 2017-04-12 12:16:19 +03:00
yuri 08f1329868 kb article aclPortal 2017-04-12 12:09:06 +03:00
yuri e48043c2e8 record list dashlet changes 2017-04-11 16:25:00 +03:00
yuri 024aeb6d01 fix dashlet expoanded layout field 2017-04-11 15:51:48 +03:00
yuri c79ef63c4d internal scheduled jobs 2017-04-11 15:41:03 +03:00
yuri 54798b94c9 acl: check entity create 2017-04-11 15:40:40 +03:00
yuri f70f22c503 css changes 2017-04-11 15:28:23 +03:00
yuri 33adc65dac records dashlet layout 2017-04-11 14:42:01 +03:00
yuri a6541f6f21 fix chart 2 2017-04-11 14:05:49 +03:00
yuri 0b44fee0e5 field manager: forbidden field list 2017-04-11 12:56:16 +03:00
yuri d03aec270e Merge branch 'master' of github.com:espocrm/espocrm 2017-04-11 12:33:45 +03:00
yuri 08bca7daf7 chart fix 2017-04-11 12:33:30 +03:00
yuri d5cb1f5c1b useCacheInDeveloperMode 2017-04-11 12:22:31 +03:00
Yuri Kuznetsov 68b16d3de9 Update CONTRIBUTING.md 2017-04-10 16:35:07 +03:00
Taras Machyshyn daffa60cd4 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-04-10 15:56:24 +03:00
Taras Machyshyn 25cb6cdfb3 Installation: correct configuration for nginx server 2017-04-10 15:56:15 +03:00
yuri 7afecc4cdd afterMassRelate, afterUnlinkAll hooks 2017-04-10 12:49:24 +03:00
yuri 0e9373cf5e fix record/list 2017-04-10 12:42:37 +03:00
yuri 7992b78d4e fix naming 2017-04-10 12:19:12 +03:00
yuri fed5e6ded7 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-04-10 12:15:24 +03:00
Taras Machyshyn 82ddd2e562 HookManager: add possibility to define custom hook methods 2017-04-10 12:15:10 +03:00
yuri 1470cea4ed kb article available only in specified portals 2017-04-10 12:01:49 +03:00
yuri 43e8929368 fix kb moveToTop/Bottom 2017-04-10 11:32:02 +03:00
yuri 6db3600a4b Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-04-10 11:18:09 +03:00
Taras Machyshyn 9b2324755b Fixed wrong php path for Scheduled job in Windows 2017-04-10 10:55:42 +03:00
Taras Machyshyn dc77b3c73e Added support 'unsetIgnore' 2017-04-10 10:47:10 +03:00
yuri 7627afb7d2 markdown changes 2017-04-07 16:01:42 +03:00
yuri e68ad81d57 Merge branch 'hotfix/4.5.2' 2017-04-07 14:43:48 +03:00
yuri 73b84d720a fix auth 2017-04-07 14:43:23 +03:00
yuri 0743582ef6 records dashlet fix 2017-04-06 15:54:17 +03:00
yuri f73d26fcf3 records dashlet sorting 2017-04-06 15:49:16 +03:00
yuri b1dd9f30fb records dashlet 2017-04-06 15:25:51 +03:00
yuri 27071695cb email: keep list after remove 2017-04-06 13:19:30 +03:00
yuri 1f551b6052 mass email: additional headers 2017-04-06 12:44:56 +03:00
yuri 947ebbb6f5 fix dashboard css 2017-04-05 15:56:18 +03:00
yuri 3a706cad86 cleanup auth tokens 2017-04-05 14:08:17 +03:00
yuri 8cb1709966 document acl portal fix 2017-04-05 13:06:26 +03:00
yuri 7533fc337e preferences changes 2017-04-04 16:56:02 +03:00
yuri 601f908992 action history dev 2017-04-04 13:04:56 +03:00
yuri ff72489f39 add contact to scope templates acl portal level list 2017-04-04 12:31:57 +03:00
yuri db442e0769 action history onlt for admin 2017-04-03 14:25:01 +03:00
yuri 189bbd784d last viwed modal click 2017-04-03 14:10:32 +03:00
yuri 2940de57b6 Merge branch 'stable' 2017-04-03 13:55:22 +03:00
yuri cceb9eccc3 fix license 2017-04-03 12:04:21 +03:00
yuri 410ba24bef Merge branch 'hotfix/4.5.1' 2017-04-03 12:03:15 +03:00
yuri 292e90e6b7 fix formula diff 2017-04-03 12:03:07 +03:00
yuri 3f9b229a9e Merge branch 'hotfix/4.5.1' 2017-04-03 11:30:13 +03:00
yuri 05c2270f36 fix relationship manager not storing has children audited 2017-04-03 11:28:24 +03:00
yuri f22fdd6724 Merge branch 'hotfix/4.5.1' 2017-04-03 11:14:06 +03:00
yuri 8059669a21 link fields select modal issue 2017-04-03 11:14:00 +03:00
yuri 28a8ad927a Merge branch 'hotfix/4.5.1' 2017-03-31 14:40:27 +03:00
yuri 6f7d27a5fd fix user removal 2017-03-31 14:40:16 +03:00
yuri d89a173a41 fix warning 2017-03-31 14:01:45 +03:00
yuri ba5fef320e fix user changePassword method 2017-03-31 13:53:48 +03:00
yuri a7982acc8f fix login page taborder 2017-03-31 13:30:41 +03:00
yuri 17742fccf1 fix array 2017-03-31 13:26:35 +03:00
yuri 7a2b563cd4 fix array field with empty options 2017-03-31 13:26:20 +03:00
yuri 549984d1ed fix xss 2017-03-31 13:13:27 +03:00
yuri d9256074fe about tpl change 2017-03-24 16:38:27 +02:00
yuri 97be52a0bc menu change 2017-03-24 16:34:50 +02:00
yuri 26a4d24492 about tpl change 2017-03-24 16:29:00 +02:00
yuri 03dad5a178 action history 2017-03-24 16:19:35 +02:00
yuri 4c0453d0e3 Merge branch 'hotfix/4.5.1' 2017-03-23 12:31:30 +02:00
yuri 1299853961 campaign: subscribe again removes optet out log record 2017-03-23 12:28:25 +02:00
yuri e6d792ef5a Merge branch 'hotfix/4.5.1' 2017-03-23 11:49:50 +02:00
yuri e8e8d0d7b2 target list: update count dynamicaly 2017-03-23 11:49:43 +02:00
yuri cec0c7b374 dynamic logic: multi-enum and array support 2017-03-22 13:22:58 +02:00
yuri fd73a0b8a5 lang 2017-03-22 11:52:06 +02:00
yuri 120ff8543e language list sorted 2017-03-22 11:12:47 +02:00
yuri 7b8fa73474 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-03-22 11:04:35 +02:00
yuri 85164758ce zh_CN lang 2017-03-22 11:04:15 +02:00
yuri 8a38568617 zh_CN lang 2017-03-22 11:03:48 +02:00
Taras Machyshyn 0c9e795dfd Options for tables 2017-03-21 15:20:18 +02:00
yuri ee1a50aa16 Merge branch 'hotfix/4.5.1' 2017-03-16 12:47:40 +02:00
yuri a13b6af04a fix modal 2017-03-16 12:47:33 +02:00
yuri f847535aea small amendments 2017-03-16 12:43:34 +02:00
yuri b1b03c6dc1 naming fix 2017-03-16 12:26:46 +02:00
yuri eeb10c6bce fix router navigate back 2017-03-16 12:23:55 +02:00
yuri 05241cefa5 side modal in espo theme 2017-03-15 17:06:28 +02:00
yuri 1861e2cd87 cleanup 2017-03-15 15:20:06 +02:00
yuri 8a17cbe23c mark mandatory fields on edit 2017-03-15 15:18:54 +02:00
yuri 484458c2ba inbound email ui improvement 2 2017-03-15 14:40:56 +02:00
yuri c62cc15159 inbound email ui fix 2017-03-15 13:29:18 +02:00
yuri 17f8b09782 inbound email ui fix 2017-03-15 13:28:55 +02:00
yuri 9fd05672ae fix 2017-03-13 17:41:36 +02:00
yuri 69d96450da addition to about.tpl 2017-03-13 16:52:51 +02:00
tanyalei 7393040c12 Update datetime-optional.js (#457)
Does not work validating before and after type for field type datetimeOptional, if time wasn't set
2017-03-13 16:45:19 +02:00
yuri 9097e644d4 Merge branch 'master' of https://github.com/espocrm/espocrm 2017-03-13 16:44:12 +02:00
yuri 837b1691d1 showing email address name part 2017-03-13 16:44:00 +02:00
tanyalei 2cdec34062 Update datetime-optional.js (#457)
Does not work validating before and after type for field type datetimeOptional, if time wasn't set
2017-03-13 16:43:20 +02:00
yuri a33e10e92d mailmimeparser and email parsing imrovements 2017-03-13 16:22:42 +02:00
yuri 86631117a2 fix inline attachment issue 2017-03-13 12:50:50 +02:00
yuri 05dfcf7511 fix image warning 2017-03-13 12:39:38 +02:00
yuri 3e1582bd6b version 2017-03-10 16:49:07 +02:00
yuri 743f348fcf version 2017-03-10 16:19:53 +02:00
yuri 2b2ac2a76d Merge branch 'hotfix/4.5.1' 2017-03-10 15:49:00 +02:00
yuri a7d2d41b0f da_DK lang 2017-03-10 15:48:26 +02:00
yuri 6ef0081ace nb_NO fixes 2017-03-10 15:44:44 +02:00
yuri 4f3304d55f fix query 2017-03-10 14:24:47 +02:00
yuri 47b6093752 fix query 2017-03-10 14:22:36 +02:00
yuri ea8d930e56 email: addToPerson improvement 2017-03-10 13:13:05 +02:00
yuri 79f3d86384 contact parent to event 2017-03-10 13:03:36 +02:00
yuri fff201b7cd parent improvements 2017-03-10 13:02:30 +02:00
yuri 1ad454ce0b fix email address 2017-03-10 12:33:22 +02:00
yuri e090fe699b new actions for unknown email addresses 2017-03-10 12:32:14 +02:00
yuri f677b5614b tasks stream 2017-03-09 16:02:57 +02:00
yuri f7b240e6a9 fix send email not read 2017-03-09 13:04:24 +02:00
yuri ea3a60aaf7 email address tpl fix 2017-03-09 12:53:38 +02:00
yuri 6a7cfa58ae email import: inline attachment issue 2017-03-09 12:37:53 +02:00
yuri 482f0cc314 dashlet chart color 2017-03-07 11:06:59 +02:00
yuri 28ada61f3d internal post title 2017-03-07 10:58:04 +02:00
yuri 7057210e90 next number table locking 2017-03-06 17:32:54 +02:00
yuri 8c5bc59c45 fix lang 2017-03-06 15:35:53 +02:00
yuri b7370ff238 activities panel: check read access 2017-03-06 12:49:03 +02:00
yuri fb36f769d9 SelectManager: accessNo 2017-03-06 12:37:34 +02:00
yuri f07b728851 nb_NO lang 2017-03-06 11:01:28 +02:00
yuri 7d4ada7ec2 fix portal user creation 2017-03-02 16:28:05 +02:00
yuri 1c31a6689f fix event duration order 2017-03-02 12:41:21 +02:00
yuri a839144796 hide reminders from list view layout 2017-03-02 12:21:16 +02:00
yuri 87cbe603d2 fix lang 2017-03-02 12:00:53 +02:00
yuri ec96916013 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-03-02 11:44:52 +02:00
yuri 2c811a4faa integration form fix 2017-03-02 11:43:11 +02:00
yuri 6e089c1e25 change stream post tpl 2017-03-02 11:03:30 +02:00
yuri 2e203341b7 dynamic logic: foreign fields 2017-03-02 10:30:21 +02:00
yuri 5bea143bf0 labels 2017-03-02 10:22:49 +02:00
yuri 732494e251 import: added time format with seconds 2017-03-01 16:57:18 +02:00
Taras Machyshyn 39e1303cbe Schema Converter improvements 2017-03-01 16:17:52 +02:00
yuri 62c3549004 label fix 2017-03-01 15:20:40 +02:00
yuri 9bcc942f0f change formula metadata 2017-03-01 13:04:28 +02:00
yuri e34ee34d7b fix formula function insertText 2017-03-01 12:25:42 +02:00
yuri dedef4b36f array: none if empty 2017-03-01 12:18:54 +02:00
yuri e6f6e0fcf1 email performance improvement 2017-03-01 12:07:52 +02:00
yuri 11a9e2ab9c mark notification read if email is read 2017-03-01 12:05:50 +02:00
yuri 9077542f61 fix email inbound 2017-03-01 12:03:31 +02:00
yuri cb6faaa769 fix email back 2017-02-28 15:55:28 +02:00
yuri a209d5aaaf link multiple if not set then show dots 2017-02-27 15:17:30 +02:00
yuri 767cdc75ee fix css 2017-02-27 14:03:44 +02:00
yuri 3eef0e088a fix modal backdrop 2017-02-27 11:59:36 +02:00
yuri 1e5ef6a070 fix text field 2017-02-27 11:56:43 +02:00
yuri a2edc3cf4e theme changes 2017-02-24 12:38:42 +02:00
yuri 9a5dc7b4d1 reduntancy fix 2017-02-24 12:17:19 +02:00
yuri 7b0fd40d3e fix modal 2017-02-24 12:11:25 +02:00
yuri 169df31cab css fix 2017-02-24 11:20:56 +02:00
yuri 44b0ba2f33 fix array field int issue 2017-02-23 16:15:34 +02:00
yuri 8d70956607 Merge branch 'master' of https://github.com/espocrm/espocrm 2017-02-23 15:59:12 +02:00
ayman-alkom 5ad20c8666 fix variable name (#426) 2017-02-23 15:58:48 +02:00
yuri 790d4a88b5 de_DE additions 2017-02-23 14:24:13 +02:00
yuri b72ac42068 fr_FR langauge 2017-02-23 13:30:38 +02:00
yuri 0a379be049 version 4.5.0 2017-02-23 12:33:22 +02:00
yuri e0e08a1c17 Merge branch 'hotfix/4.4.2' 2017-02-23 11:28:05 +02:00
yuri 0d825120bb notifications to portal users fix 2017-02-23 11:27:42 +02:00
yuri 7b81b66b76 formula: number abs 2017-02-22 15:38:50 +02:00
yuri d39f4e2533 forumle: datetime diff 2017-02-22 15:31:36 +02:00
yuri 598a2f9f05 fix 2017-02-22 13:09:07 +02:00
yuri ce9089b838 date time format 2017-02-22 13:06:10 +02:00
yuri 45b06fc154 stream: auto-follow after posting 2017-02-22 11:38:39 +02:00
yuri f44177a994 Merge branch 'hotfix/4.4.2' 2017-02-21 17:11:41 +02:00
yuri d91b13a7c1 Merge branch 'hotfix/4.4.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.4.2 2017-02-21 17:11:08 +02:00
Taras Machyshyn bd1894322c Slim: fixed a notice 2017-02-21 17:10:16 +02:00
yuri 90874535ea Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-02-21 17:06:23 +02:00
yuri 8c919dbca4 Merge branch 'hotfix/4.4.2' 2017-02-21 17:06:14 +02:00
yuri 05223c5272 Merge branch 'hotfix/4.4.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.4.2 2017-02-21 17:05:52 +02:00
yuri afee6d564b select manager textFilterUseContainsAttributeList 2017-02-21 17:04:47 +02:00
Taras Machyshyn b4e879a369 FieldManager: improved storing logic 2017-02-21 16:26:23 +02:00
yuri de4d96e260 event template set held action 2017-02-21 15:40:05 +02:00
yuri 89056f61c2 add consulting industry 2017-02-21 12:55:18 +02:00
yuri afac29151c account filter website 2017-02-21 12:44:35 +02:00
Taras Machyshyn e54430fb1b Merge branch 'hotfix/4.4.2' 2017-02-20 16:19:23 +02:00
tanyalei 7d8736b98c Creating Target List from Campaign Log not working in php7
creating a target list from the log bug fix(for mysql 5.7+)
2017-02-20 15:00:55 +02:00
tanyalei 216e9419d4 Creating Target List from Campaign Log not working in php7
creating a target list from the log bug fix(for mysql 5.7+)
2017-02-20 14:59:02 +02:00
yuri 359fdd4dab Merge branch 'hotfix/4.4.2' 2017-02-20 11:44:32 +02:00
yuri 2044a87630 fix last quarter filter 2017-02-20 11:44:24 +02:00
yuri 171feed28e global search mouseup fix 2017-02-20 11:10:58 +02:00
yuri 92dbbbd390 Merge branch 'master' of https://github.com/espocrm/espocrm 2017-02-17 16:24:04 +02:00
yuri 3166cb862e inbound email teams field 2017-02-17 12:41:04 +02:00
Taras Machyshyn b606cb2e04 Fixed warnings in Slim 2017-02-17 11:10:29 +02:00
tanyalei 724ef00d52 clientDefs view of entities for convert (#416) 2017-02-16 21:41:15 +02:00
yuri 0b7857b495 self assign 2017-02-16 16:22:13 +02:00
yuri a150eb7f0e fix email notification 2017-02-16 13:35:21 +02:00
yuri 4cb21a4fdb Merge branch 'hotfix/4.4.2' 2017-02-16 13:23:43 +02:00
yuri 46e13b0269 Merge branch 'hotfix/4.4.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.4.2 2017-02-16 13:23:32 +02:00
yuri d4d5138991 fix sorting alphabeetically 2017-02-16 13:23:17 +02:00
yuri 9fd00d9f0a inbound email: reply to not required 2017-02-16 13:16:23 +02:00
yuri 9361938285 Injectable factory && Case: notifications replyToAddress 2017-02-16 13:00:11 +02:00
yuri cb054b2f2b fix email email address 2017-02-16 12:41:58 +02:00
yuri f8ff6e6cf5 Merge branch 'hotfix/4.4.2' 2017-02-16 10:56:59 +02:00
yuri 918c1b2114 fix formula resize issue 2017-02-16 10:56:51 +02:00
Taras Machyshyn 2026bcb021 Fixed field manager notices 2017-02-16 10:46:47 +02:00
Taras Machyshyn ce5393155a Fixed merge method 2017-02-16 10:06:16 +02:00
Taras Machyshyn 6f4b752b10 Fixed merge method 2017-02-15 12:45:31 +02:00
yuri 2a5a453517 Merge branch 'hotfix/4.4.2' 2017-02-14 17:07:05 +02:00
yuri 191bba7afc fix notice 2017-02-14 17:06:54 +02:00
yuri f50d2ef9e3 fix notice 2017-02-14 16:59:38 +02:00
yuri 1ad744d151 fix source list 2017-02-14 16:49:40 +02:00
yuri ba0f86c8d4 attachment source list config check 2017-02-14 13:42:43 +02:00
yuri 372c84bfa3 file: sourceList 2017-02-14 12:33:28 +02:00
yuri 6ec18950e4 fix email user sent not added to users 2017-02-14 12:07:37 +02:00
yuri 6c3168a356 Merge branch 'hotfix/4.4.2' 2017-02-14 11:18:18 +02:00
yuri 109ee17a47 formula: parentName 2017-02-14 11:17:35 +02:00
yuri 21702b3c34 Merge branch 'hotfix/4.4.2' 2017-02-10 15:55:39 +02:00
yuri 159a2ee99d fix target list opted out count 2017-02-10 15:55:28 +02:00
yuri d6151d33b4 ditch document source 2017-02-10 15:36:01 +02:00
yuri 2217e03fa8 file storage: download url 2017-02-10 15:28:52 +02:00
yuri 794c7eb523 fix document download link 2017-02-10 15:27:38 +02:00
yuri 98f61c0c4b fix css 2017-02-10 14:54:59 +02:00
yuri 5f5a450d95 css fix 2017-02-10 13:21:25 +02:00
yuri 0ba9679a75 confirm additions 2017-02-10 13:10:23 +02:00
yuri 85e60d4e32 attachment storage additions 2017-02-10 12:59:49 +02:00
yuri a074b8a214 htmlizer fix 2017-02-09 16:01:04 +02:00
yuri ac593c1d3d fix email queue 2 2017-02-09 15:39:34 +02:00
yuri 170e62bc8b fix email queue 2 2017-02-09 15:39:17 +02:00
yuri 5d19ae42dc fix email queue 2017-02-09 15:24:34 +02:00
yuri 9f3fdd01bf fix email queue 2017-02-09 15:24:06 +02:00
yuri 65e94e237d metadata getAllForFrontend 2017-02-09 15:05:11 +02:00
yuri 7935bc59fe fix sysiwyg 2017-02-09 14:31:40 +02:00
yuri f49677b5c0 file storage manager 2017-02-09 14:29:28 +02:00
yuri b69f829a3e import: timezone 2017-02-08 14:42:20 +02:00
yuri 13dfc90a1b import tpl fix 2017-02-08 13:46:35 +02:00
yuri 6d49d39480 layout manager confirm 2017-02-08 13:35:32 +02:00
yuri f473ea9cea dashlet remove confirm 2017-02-08 13:34:06 +02:00
yuri db8536ac55 phone strikestrough 2017-02-08 12:37:13 +02:00
yuri e402745a86 change detailSmall layouts 2017-02-08 12:20:14 +02:00
yuri abcaaddc2f fix wysiwyg destroying 2017-02-08 12:00:53 +02:00
yuri 3ac375c95c confirm change 2017-02-08 11:32:25 +02:00
yuri 56f65e0fc0 ui dialog 2017-02-07 16:30:55 +02:00
yuri 471df0034e css changes 2017-02-07 12:50:40 +02:00
yuri a1b3be9ef3 Merge branch 'hotfix/4.4.2' 2017-02-07 11:32:36 +02:00
yuri c4f70482ac fix email folder navigate back 2017-02-07 11:31:53 +02:00
yuri 31a8fa387d fix autocomplete 2017-02-07 10:48:45 +02:00
yuri a0d6cb9be4 fix wysywyg modal 2017-02-07 10:34:53 +02:00
yuri 4586d26bd6 css fix 2017-02-06 17:41:52 +02:00
yuri 1609adc766 modal new style 2017-02-06 17:23:05 +02:00
yuri aa0a9cf708 Merge branch 'hotfix/4.4.2' 2017-02-06 11:44:04 +02:00
yuri d7dfe5fea4 email reply head text change 2017-02-06 11:43:47 +02:00
yuri 340ed5acec formula fix 2017-02-06 10:43:51 +02:00
yuri 7ec3e38e6d version 2017-02-03 15:53:53 +02:00
yuri 879bf13809 Merge branch 'stable' 2017-02-03 15:05:02 +02:00
yuri 4edf4ef9ea button fix 2017-02-02 14:13:27 +02:00
yuri b44bbaffa2 Merge branch 'hotfix/4.4.1' 2017-02-02 12:44:12 +02:00
yuri 4b24491fe4 fix mass email 2017-02-02 12:44:05 +02:00
yuri 96458ab26a admin iframe height 2017-02-02 12:38:40 +02:00
yuri 4c562cb603 Merge branch 'hotfix/4.4.1' 2017-02-02 11:59:19 +02:00
yuri 494227324a formula field fix 2017-02-02 11:59:08 +02:00
yuri 8eb2be46ca Merge branch 'hotfix/4.4.1' 2017-02-02 11:25:53 +02:00
yuri 6d4b3f24cb fix formula 2017-02-02 11:18:25 +02:00
yuri a26436d3de fix formula field 2017-02-01 15:55:38 +02:00
yuri cd7571387c fix formula field 2017-02-01 15:55:15 +02:00
yuri 741f7f65c2 formula fix 2017-02-01 12:12:10 +02:00
yuri 1b3496edd9 formula fix 2017-02-01 12:11:49 +02:00
yuri 356da4e70d Merge branch 'hotfix/4.4.1' 2017-02-01 12:06:06 +02:00
yuri cd6da3ba87 fix formula 2017-02-01 12:05:57 +02:00
yuri ba0a79cc9b year 2017 2017-02-01 11:43:56 +02:00
yuri f3deffb3f6 year 2017 2017-02-01 11:43:36 +02:00
yuri c76823f9ee fix timeline 2017-02-01 11:14:43 +02:00
yuri 8398cc4364 fix timeline 2017-02-01 11:14:18 +02:00
yuri 6ddda814c0 Merge branch 'hotfix/4.4.1' 2017-01-31 15:30:34 +02:00
yuri 5b777d3f1e fix default schedulings 2017-01-31 15:30:17 +02:00
yuri 4f19109ba1 duration sortable 2017-01-31 14:29:40 +02:00
yuri 76ffa2def9 duration sortable 2017-01-31 13:24:05 +02:00
yuri 2fdc0a3a93 Merge branch 'master' of https://github.com/espocrm/espocrm 2017-01-31 12:23:12 +02:00
yuri 7f3b874061 fix array search 2017-01-31 12:22:36 +02:00
yuri d9315763a6 v 2017-01-31 11:53:21 +02:00
yuri c732f30e40 resize admin iframe 2017-01-31 11:46:32 +02:00
yuri 793cb4b878 installer theme 2017-01-31 11:38:48 +02:00
yuri 85c476c548 hazyblue horizontal theme 2017-01-31 11:34:32 +02:00
Alasdair Campbell 0dcc8d08d1 Removed executable permission set on stub file data/.data (#386) 2017-01-30 13:15:32 +02:00
yuri da7635f68f diff 2017-01-27 15:50:41 +02:00
yuri 2fc66f14f3 field manager: fix default date 2017-01-27 15:10:58 +02:00
yuri 6623d9fa8b change install footer 2017-01-27 12:09:26 +02:00
yuri 774984a5a4 fix field manager tpl 2017-01-26 16:54:19 +02:00
yuri 30dec6bc02 fix css 2017-01-26 15:34:10 +02:00
yuri 3e56a1117d mass email filters 2017-01-26 15:08:12 +02:00
yuri c28d680bf4 fix labels 2017-01-26 12:46:38 +02:00
yuri 89aa2950fa fix person name 2017-01-26 12:45:03 +02:00
yuri d1c13bf03f css 2017-01-26 12:44:55 +02:00
yuri 5dc79086b7 fix attachment 2017-01-26 10:54:04 +02:00
yuri 406d241bc8 fix css 2017-01-25 14:57:21 +02:00
yuri 021760d75f fix css 2017-01-25 14:53:17 +02:00
yuri 77bae5a5e2 error message 2017-01-25 13:56:04 +02:00
yuri d2cacdc8d9 text field fix 2017-01-25 11:12:59 +02:00
yuri 30097c32b5 fix list view 2017-01-24 17:35:56 +02:00
yuri c114e08541 fix css 2017-01-24 16:00:26 +02:00
yuri bf660e81ae css fix 2017-01-24 11:18:54 +02:00
yuri cf9c4ec0b1 word wrapping in list view 2017-01-23 17:15:50 +02:00
yuri 7649f4d680 user acl fixes 2017-01-23 13:27:59 +02:00
yuri 9d238d270e css fixes 2017-01-23 12:47:00 +02:00
yuri b89a128292 default tab list and theme change 2017-01-23 12:35:53 +02:00
yuri ac2e244b11 fix notification update 2017-01-20 17:19:51 +02:00
yuri 76551a59fe modal fixes 2017-01-20 15:46:07 +02:00
yuri 61c1732b9c export fix 2017-01-20 14:34:47 +02:00
yuri c54c4e9a17 cleanup 2017-01-19 16:29:40 +02:00
yuri 9bc7cefbc5 test fix 2017-01-19 16:22:27 +02:00
yuri 9a918e5d97 after x days filter 2017-01-19 15:21:14 +02:00
yuri 5f578298b4 Merge branch 'master' of https://github.com/espocrm/espocrm 2017-01-19 12:26:36 +02:00
Alasdair Campbell cf63b1c779 Add .editorconfig file (#373) 2017-01-19 12:26:19 +02:00
yuri 85992dde1a installer fix 2017-01-19 11:58:55 +02:00
yuri 17dac5bde8 diff change 2017-01-18 16:18:21 +02:00
yuri 3887acfbf8 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-01-18 16:07:45 +02:00
Taras Machyshyn ad5a0b2060 Added support PHP 7.1 2017-01-18 16:06:06 +02:00
yuri bb2ddb3d1d version 2017-01-18 16:05:33 +02:00
yuri 6a6e0adb57 css change 2017-01-18 15:21:59 +02:00
yuri 4fa8d9b919 ui dialog change 2017-01-18 15:21:49 +02:00
yuri 908d2f69d3 css change 2017-01-18 11:13:26 +02:00
yuri 4c3c0db2c5 theme changes 2017-01-17 15:28:15 +02:00
yuri fb4db584c2 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2017-01-17 15:11:57 +02:00
yuri fcf645e73f changes theme 2017-01-17 15:10:09 +02:00
Taras Machyshyn fac5704c9e Added 2017 year 2017-01-17 15:07:08 +02:00
Taras Machyshyn a3548bc194 Improved crontab command for scheduled jobs 2017-01-17 13:59:03 +02:00
yuri 055a7daad5 theme change 2017-01-17 13:02:24 +02:00
Taras Machyshyn e4a8bc38df Merge branch 'hotfix/4.3.2' 2017-01-17 12:59:58 +02:00
yuri 86bd451b05 fix theme 2017-01-17 12:44:53 +02:00
yuri 1101510817 cleanup 2017-01-17 12:27:33 +02:00
yuri 01d8dddeac portal tab list 2017-01-17 12:27:21 +02:00
yuri ee2a8d2a39 theme changes 2017-01-17 12:21:15 +02:00
yuri d8894d6645 fix nav 2017-01-16 18:03:34 +02:00
yuri 07daf6f5a0 rename theme 2017-01-16 16:44:40 +02:00
yuri 496ede69ac navbar: more delimiter 2017-01-16 16:34:45 +02:00
yuri 6068cbf3cc fix settings page title 2017-01-16 15:57:10 +02:00
yuri 7264fce1dd Merge branch 'hotfix/4.3.2' 2017-01-13 17:45:05 +02:00
yuri a8a1acdbd0 fix dashlet translation 2017-01-13 17:44:54 +02:00
yuri 059c43f840 slim version certain 2017-01-13 16:56:10 +02:00
yuri a5cb393447 ditch mcrypt 2017-01-13 16:12:17 +02:00
yuri 0b98c7beb5 fix theme 2017-01-12 16:00:13 +02:00
yuri be735e572e sortable side panels 2017-01-12 15:28:29 +02:00
yuri 807dcb7901 theme changes 2017-01-12 12:19:12 +02:00
yuri 19241aca7a smtp admin changes 2017-01-12 12:10:59 +02:00
yuri 05e1145084 fix z index 2017-01-12 12:06:44 +02:00
yuri 22972b32b4 internal smtp 2017-01-12 11:58:39 +02:00
yuri 0d89218031 theme changes 2017-01-11 17:57:27 +02:00
yuri baa0dd91d0 theme changes 2017-01-11 16:48:42 +02:00
yuri 09c11b2d7a calendar shadow 2017-01-11 16:37:00 +02:00
yuri bb26bc1eab theme fixes 2017-01-11 16:31:41 +02:00
yuri 26a60fb68b theme lang change 2017-01-11 15:15:05 +02:00
yuri 3cebf73464 rtl and new cool theme 2017-01-11 15:11:12 +02:00
yuri 9e8550b572 Merge branch 'master' of https://github.com/espocrm/espocrm 2017-01-10 16:05:29 +02:00
yuri cb8b6654e7 Merge branch 'hotfix/4.3.2' 2017-01-10 16:05:03 +02:00
yuri 8969866aec fix nl in email template text field 2017-01-10 16:04:54 +02:00
Taras Machyshyn 91ba7dfaf0 Fixed warnig for preg_match for some class names 2017-01-10 15:20:16 +02:00
Mauricio Panuncio deb4dad643 Translate es (#359)
* Translate es_ES: Globals. Admin.

* Tickets.

* Emails.

* New translations (missing).

* New translations (missing) II.

* Various.

* Opportunities: Improvement. Self-explanatory names.

* Some small fixes.

* Undo Tickets. Redo Casos.

* Fix: 'Lenguaje' to 'Idioma'.

* Fix some erros in the installation screens.

* Fix some erros in the installation screens II.

* Chamge mod

* Translate. Round 1.

* Translate ES. Stream: Actividades to Historia.

* Translate ES. Lead: Potencial to Posible Cliente.

* Translate ES. Log: Registros.

* Translate ES. Round 2.

* Translate ES. Round 3.

* Translate ES. Round 4.

* Translate ES. New translations.

* Translate ES. Fix bugs.

* Translate ES. Activity: Actividades to Actividades planeadas.

* Translate ES. Hostory: Historia to Historial de aactividades.

* Translate ES. Improvements.
2017-01-09 20:57:42 +02:00
yuri 720635d7a3 older than x days filter 2017-01-09 13:18:35 +02:00
yuri e5e082c48b permissions 2017-01-09 12:41:52 +02:00
yuri d8b2a13c20 mass follow/unfollow actions 2017-01-09 12:36:34 +02:00
yuri 535607e089 Merge branch 'hotfix/4.3.2' 2017-01-09 11:42:18 +02:00
yuri 20f15e749e automatically follow case by portal user 2017-01-09 11:42:09 +02:00
yuri d14faee83d es_ES lang 2017-01-09 11:12:15 +02:00
yuri a53ccb66c5 change permissions 2017-01-09 11:02:57 +02:00
yuri 90bc01e467 Merge branch 'master' of https://github.com/espocrm/espocrm 2017-01-09 10:50:44 +02:00
Yuri Kuznetsov 399ac5348a Revert "es_ES - Update translations to today" (#357) 2017-01-08 00:18:39 +02:00
Mauricio Panuncio 61c8a125c3 es_ES - Update translations to today (#356)
* Translate es_ES: Globals. Admin.

* Tickets.

* Emails.

* New translations (missing).

* New translations (missing) II.

* Various.

* Opportunities: Improvement. Self-explanatory names.

* Some small fixes.

* Undo Tickets. Redo Casos.

* Fix: 'Lenguaje' to 'Idioma'.

* Fix some erros in the installation screens.

* Fix some erros in the installation screens II.

* Chamge mod

* Translate. Round 1.

* Translate ES. Stream: Actividades to Historia.

* Translate ES. Lead: Potencial to Posible Cliente.

* Translate ES. Log: Registros.

* Translate ES. Round 2.

* Translate ES. Round 3.

* Translate ES. Round 4.
2017-01-07 18:13:15 +02:00
yuri 84f261752f fix calendar edit 2017-01-05 17:32:39 +02:00
ayman-alkom ec37ea62a2 add number fields to text filter list (#354) 2017-01-05 11:25:08 +02:00
ayman-alkom 6736f15f61 add number fields to text filter list (#354) 2017-01-05 11:23:13 +02:00
Alasdair Campbell bc64e7ffe4 Compose from email address not sorted by primary (#351) 2017-01-04 12:54:25 +02:00
Alasdair Campbell 1e51006786 Compose from email address not sorted by primary (#351) 2017-01-04 12:53:10 +02:00
yuri 7357054517 Merge branch 'hotfix/4.3.2' 2017-01-04 12:49:02 +02:00
yuri b25ff943e4 fix pdf footer 2017-01-04 12:48:53 +02:00
yuri 4446bc520b about 2017-01-03 12:58:18 +02:00
yuri 924d55de6e Merge branch 'hotfix/4.3.2' 2017-01-03 12:29:07 +02:00
yuri eab9705e08 fix calendar 2017-01-03 12:28:56 +02:00
yuri 25ccc9f685 fix orm 2017-01-03 12:24:12 +02:00
yuri 62894366e6 fix opp stage change 2016-12-30 15:50:52 +02:00
yuri d06c3f82c3 naming 2016-12-30 15:39:35 +02:00
yuri a0fd9e05e8 read only param 2016-12-29 17:24:35 +02:00
yuri dd3e52f230 metadata unset formula 2016-12-29 16:23:46 +02:00
yuri af60f82322 formula ui 2016-12-29 16:17:54 +02:00
Taras Machyshyn 2e8e466a22 Unit tests fixes 2016-12-29 13:38:29 +02:00
yuri a3ad4130af Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-12-29 13:37:49 +02:00
yuri 37f718f26e formula dev 2016-12-29 13:37:36 +02:00
Taras Machyshyn c7e46ecc03 Unit tests fixes 2016-12-27 16:07:40 +02:00
yuri 1e368757ec fix dynamic logic isEmpty 2016-12-27 15:29:07 +02:00
yuri 54122e6ea2 fix dynamic logic isEmpty 2016-12-27 15:28:50 +02:00
yuri 9e3096b674 date/datetime default values 2016-12-27 15:24:14 +02:00
yuri f0dbe8b78b field manager: opporunity probabilities 2016-12-27 12:42:45 +02:00
yuri ab89b3c91b Merge branch 'hotfix/4.3.2' 2016-12-27 11:16:26 +02:00
yuri 54e0ee08e6 field manager: enum default 2016-12-27 11:16:14 +02:00
yuri 803e06c019 formula substring 2016-12-26 16:46:14 +02:00
yuri 2057fd7357 Merge branch 'hotfix/4.3.2' 2016-12-26 16:27:51 +02:00
yuri 2561660cf4 fix notice 2016-12-26 16:27:44 +02:00
yuri e382c59556 formula field 2016-12-26 15:54:07 +02:00
yuri a003efe7c9 Merge branch 'hotfix/4.3.2' 2016-12-26 11:15:55 +02:00
yuri 1975d16f3a orm: fix issue with bool column in relation table 2016-12-26 11:15:45 +02:00
yuri da74c37ab1 Merge branch 'hotfix/4.3.1' 2016-12-23 17:15:28 +02:00
yuri 3df9c7eb02 fix stream panel 2016-12-23 16:55:22 +02:00
yuri 5951ac930a fix stream post 2016-12-23 16:31:53 +02:00
yuri 7160c0a65b fix stream panel 2016-12-23 16:30:19 +02:00
yuri 19a9b5c91e fix language.js 2016-12-23 15:56:58 +02:00
yuri b6d1f26af0 fix cache 2016-12-23 15:52:19 +02:00
yuri 6094c69fc1 formula null 2016-12-23 13:09:36 +02:00
yuri a11c6a23c4 formula ui 1 2016-12-23 12:52:00 +02:00
yuri 52afd6f11c Merge branch 'hotfix/4.3.1' 2016-12-22 17:23:48 +02:00
yuri 0c10657351 fix import 2016-12-22 17:23:39 +02:00
yuri 36ade17f67 formula item 2016-12-22 17:02:54 +02:00
yuri 469e35d8a0 industries 2016-12-22 11:18:32 +02:00
yuri 39219b6b78 Merge branch 'hotfix/4.3.1' 2016-12-21 17:40:36 +02:00
yuri 977b8fa8e9 fix enum none 2016-12-21 17:40:17 +02:00
yuri 7e0604409a varchar/text none 2016-12-21 17:37:10 +02:00
yuri 83f78cc02c Merge branch 'hotfix/4.3.1' 2016-12-21 16:07:11 +02:00
yuri c21ec8d5f2 template fix 2016-12-21 16:06:16 +02:00
yuri 41c566e227 template ui improve 2016-12-21 15:56:15 +02:00
yuri ae82ebbf74 htmlizer file helper 2016-12-21 15:29:12 +02:00
yuri 177018daae entity manager: check reserved names 2016-12-21 15:05:17 +02:00
yuri 003e884056 Merge branch 'hotfix/4.3.1' 2016-12-21 12:33:26 +02:00
yuri 5f481fa2dd fix 2016-12-21 12:20:29 +02:00
yuri f425584822 Merge branch 'hotfix/4.3.1' 2016-12-21 12:08:35 +02:00
yuri 8c1142481d campaign log fix 2016-12-21 12:08:19 +02:00
yuri 569b995a94 Merge branch 'hotfix/4.3.1' 2016-12-21 12:00:43 +02:00
yuri d20a26680a fix markdown 2016-12-21 12:00:29 +02:00
yuri 472e1ece5a Merge branch 'hotfix/4.3.1' 2016-12-20 17:52:44 +02:00
yuri 84c56256f7 css 2016-12-20 17:52:30 +02:00
yuri 632467a9a6 close modal on location change 2016-12-20 16:11:20 +02:00
yuri d2faec45bb close modal on location change 2016-12-20 16:10:33 +02:00
yuri 480772e022 change css list view 2016-12-20 15:17:17 +02:00
yuri e7bd4c1790 select records create change 2016-12-20 14:37:30 +02:00
yuri 5910b28362 css modal list cache 2016-12-20 14:29:01 +02:00
yuri a3c32d8389 css modal changes 2016-12-20 14:21:44 +02:00
yuri e2b0bba6e6 portal users 2016-12-20 14:01:13 +02:00
yuri 4813657568 Merge branch 'hotfix/4.3.1' 2016-12-19 11:56:23 +02:00
yuri 2989181723 fix calendar create acl check 2016-12-19 11:45:01 +02:00
yuri 5df8d833d5 fix lang 2016-12-19 11:26:41 +02:00
yuri 449fc4cddc fix css 2016-12-16 17:24:21 +02:00
yuri fb87926318 cleanup 2016-12-16 16:43:39 +02:00
yuri 623d94b77f change 2016-12-16 16:34:40 +02:00
yuri 74ad0cab35 fix detailsmall edit small 2016-12-16 16:22:27 +02:00
yuri 4f81706b92 Merge branch 'hotfix/4.3.1' 2016-12-16 15:01:29 +02:00
yuri 4e61bd6048 fix user field list view tpl 2016-12-16 15:00:41 +02:00
yuri 252ae4e18f v 2016-12-16 14:53:06 +02:00
yuri 3249c07bcd Merge branch 'hotfix/4.3.1' 2016-12-16 12:14:28 +02:00
yuri 3def2ef0da enum: show none 2016-12-16 12:14:16 +02:00
yuri cb0321aa20 lead layout change 2016-12-16 11:56:28 +02:00
yuri 1096f719ae panels fixes 2016-12-16 11:53:55 +02:00
yuri 9bfe12587f formula hook order change 2016-12-15 17:35:58 +02:00
yuri 91d4b26c1c formula 2016-12-15 16:52:29 +02:00
yuri ef317064b4 fix modified and created fields 2016-12-15 16:42:53 +02:00
yuri fa3b4f3ac2 export fix 2016-12-15 10:53:55 +02:00
yuri 052c489bf7 fix export error 2016-12-15 10:45:36 +02:00
yuri f3402e2c4e dont send invitation for self if accepted 2016-12-14 12:23:15 +02:00
yuri 34a3cd9ce5 fix list js error 2016-12-12 11:17:09 +02:00
yuri 4d5f3bcbfe v 2016-12-08 11:41:55 +02:00
yuri 339e1dc897 defaultSidePanelFieldList 2016-12-07 17:32:43 +02:00
yuri c4e617f18e css 2016-12-07 15:48:35 +02:00
yuri 89bc329ea6 css 2016-12-07 13:21:47 +02:00
yuri eee49b215e portal user field show up 2016-12-07 11:32:22 +02:00
yuri d9a8b83268 remove isToSelf not used field 2016-12-07 10:56:32 +02:00
yuri def7abe3ba fix mention notification 2016-12-07 10:55:33 +02:00
yuri 75e64b3836 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-12-06 15:52:56 +02:00
yuri efb106c597 fix translated options 2016-12-06 15:50:48 +02:00
Taras Machyshyn 5e1087c6b4 Cache in language 2016-12-06 13:18:06 +02:00
yuri 5f8800defa fix css 2016-12-06 13:08:06 +02:00
yuri 445c0b3834 integration check 2016-12-06 12:24:07 +02:00
yuri 61c1e5ab6c fix mass action list 2016-12-06 11:37:40 +02:00
yuri 2502cad0c1 settings activityEntityList no emails 2016-12-05 14:20:50 +02:00
yuri 76032493b9 fix 2016-12-01 12:33:34 +02:00
yuri 0a3a6b3773 load users config params after login 2016-12-01 12:29:26 +02:00
yuri 014d47d017 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-12-01 11:45:00 +02:00
Taras Machyshyn 8bd7734ae3 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-12-01 11:22:48 +02:00
Taras Machyshyn 7aa2ba917f Added 'userItems' 2016-12-01 11:21:20 +02:00
yuri 96f0ce2381 fix template 2016-11-30 17:41:30 +02:00
yuri f1eb5b9862 email notification about email received 2016-11-30 15:54:23 +02:00
yuri 45cb5a6e38 Merge branch 'master' of https://github.com/espocrm/espocrm 2016-11-30 11:13:43 +02:00
ayman-alkom 4131ea54ae remove decleration duplicate (#319) 2016-11-30 11:12:56 +02:00
yuri 3806affe1b add industry 2016-11-30 10:58:17 +02:00
yuri 6ea3a03de3 readme change 2016-11-29 17:55:59 +02:00
yuri 5b25e8b7e6 fix address validate error 2016-11-29 17:04:27 +02:00
yuri 60c96ba5f7 import status colors 2016-11-29 15:29:09 +02:00
yuri 9732852891 job search fix 2016-11-29 15:27:28 +02:00
yuri 326b46a6e6 fix setting max records per page and int max length 2016-11-29 15:18:31 +02:00
yuri 29924ea3b1 css fix 2016-11-29 12:37:47 +02:00
yuri 434506699b fix list width 2016-11-29 12:00:13 +02:00
yuri eeaaaf7af1 deferred filter 2016-11-29 11:19:32 +02:00
yuri 3f5dab0680 fix task date end field 2016-11-29 11:03:51 +02:00
yuri dd69658f2a css change 2016-11-29 10:37:23 +02:00
yuri 3c2d998a30 added industries 2016-11-28 16:54:09 +02:00
yuri a0ead9d774 fix css 2016-11-25 16:24:39 +02:00
yuri 4460a105a8 dynamic logic ID field and mass email duplicate fix 2016-11-25 15:52:05 +02:00
yuri c6b369587d fix css 2016-11-25 12:46:13 +02:00
yuri 8c19ad5f7f fix warning 2016-11-25 12:22:48 +02:00
yuri 1824e0d0a6 version 2016-11-22 14:29:35 +02:00
yuri 404bb0c3cd layout panel colors 2 2016-11-22 12:27:03 +02:00
yuri 7fd6b16cf3 fix color panels 2016-11-22 10:39:28 +02:00
yuri 47abd1ab52 middle panel styles 2016-11-21 15:32:10 +02:00
yuri 5c8d728ac5 cleanup 2016-11-21 15:09:55 +02:00
yuri 2706bc461e fix error 2016-11-21 15:09:36 +02:00
yuri 91f52e4f42 panel color and sidePanels Small layout 2016-11-21 14:58:08 +02:00
yuri 5538dd45d3 preferences: reload page after theme or language changed 2016-11-21 11:00:06 +02:00
yuri 105205a9aa change in record base 2016-11-21 10:59:50 +02:00
yuri e3547717a0 change varchar filter type order 2016-11-21 10:35:09 +02:00
yuri 1714e0e9a0 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-11-21 10:30:50 +02:00
yuri afdd15ac44 text field: contains filter by default 2016-11-21 10:28:54 +02:00
yuri 09097dba4a cleanup 2016-11-21 10:28:23 +02:00
yuri 01a8fbd5b1 fix label 2016-11-21 10:27:21 +02:00
yuri f2d5eed7e3 company entity: check for duplicates 2016-11-21 10:26:27 +02:00
Taras Machyshyn cfae3cde1d Label correction 2016-11-18 18:18:01 +02:00
Taras Machyshyn 87a0c1b293 Installer bug fixes 2016-11-18 18:17:37 +02:00
Taras Machyshyn 486c8c8f37 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-11-18 17:33:45 +02:00
Taras Machyshyn ea99ca3d38 FileManager: bug fixes 2016-11-18 17:33:29 +02:00
yuri 2069a25f30 b2c mode in settings 2016-11-18 11:31:25 +02:00
yuri baf3493044 show up date time on mouse over shortened dates 2016-11-18 11:23:12 +02:00
yuri 543a12a475 note post textarea height 2016-11-18 11:11:00 +02:00
yuri a73f97744a fix email address add 2016-11-18 10:58:59 +02:00
yuri ae135ab678 fix mention text 2016-11-17 17:25:08 +02:00
yuri 96366548a3 fix avatar for deleted user and campaign tracker 1px 2016-11-17 10:49:00 +02:00
yuri 54cdd5180d industry 2016-11-17 10:25:56 +02:00
yuri 0a5ce2a4d4 industries 2016-11-16 17:09:50 +02:00
yuri a4e1ccc4bb fix label 2016-11-16 15:28:30 +02:00
Taras Machyshyn 55c632979e Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-11-16 15:25:01 +02:00
Taras Machyshyn b1208a449e Integration tests: added tests for upgrade, extension installation 2016-11-16 15:24:48 +02:00
Taras Machyshyn 9e2b329beb Integration tests improvements 2016-11-16 15:23:49 +02:00
Taras Machyshyn 10d329094c Added 'deleteBeforeCopy' for upgrade/extensions 2016-11-16 15:21:39 +02:00
yuri 38f44b3e5f cases layout change 2016-11-16 13:06:42 +02:00
yuri c99a1261d5 lead industry field 2016-11-16 11:54:17 +02:00
yuri 4e2e344892 industry field additions 2016-11-16 11:45:31 +02:00
yuri e0128bf54f contact-document relation 2016-11-16 11:17:46 +02:00
yuri a683e6bdf8 improve export 2016-11-15 12:15:01 +02:00
yuri bc64effb14 cleanup 2016-11-14 13:23:22 +02:00
yuri 6b0a280e2c fix layout swaping 2016-11-14 12:44:36 +02:00
yuri ddf25e02e3 email: has attachment filter 2016-11-14 10:39:18 +02:00
yuri 967d5a6387 addition to about page 2016-11-11 16:46:11 +02:00
yuri a5137b85af downgrade zendservicemanager 2016-11-11 16:34:38 +02:00
yuri 1ed79fedf0 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-11-10 14:44:40 +02:00
yuri 8a8cb08b99 order export 2016-11-10 14:41:39 +02:00
yuri b49aaa69cc fix audited 2016-11-10 14:14:46 +02:00
yuri 015357d551 industries 2016-11-10 13:19:34 +02:00
yuri 5419d76080 link field empty name and audited note change 2016-11-10 12:58:54 +02:00
yuri 21e1422994 filed manager hook change 2016-11-09 11:43:30 +02:00
yuri dafb076659 field manager inficate that field is readOnly 2016-11-09 10:56:19 +02:00
Taras Machyshyn 491f3d27ff Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-11-08 12:13:35 +02:00
Taras Machyshyn 3be58d5d09 Integration test improvements 2016-11-08 12:13:25 +02:00
yuri 8aeb23a985 version 2016-11-08 11:46:19 +02:00
yuri fa99040232 downgrade zend 2016-11-08 11:45:32 +02:00
yuri 2e928f2442 clenup 2016-11-08 11:33:51 +02:00
yuri 8ebb35c0d5 my activities dashlet entity list 2016-11-07 17:18:04 +02:00
yuri 7d17bee201 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-11-07 16:06:12 +02:00
yuri 5c345fb4d9 import: idle mode 2016-11-07 16:01:52 +02:00
yuri d2cd098ab0 fix record view readOnly 2016-11-07 15:09:15 +02:00
yuri f4a88df067 import: skip search for duplicates 2016-11-07 12:54:14 +02:00
yuri 8f4917eb24 delete duplicates before import 2016-11-07 11:46:09 +02:00
yuri a9310b108a fix warning 2016-11-07 10:45:52 +02:00
Taras Machyshyn 8c638dffd4 commented out sendRequest tests 2016-11-04 18:56:07 +02:00
yuri 0151273a75 cleanup 2016-11-04 17:39:00 +02:00
yuri b10dc8128c conrollerManager in container 2016-11-04 17:32:58 +02:00
yuri 476d36c9c5 comment sendRequest tests 2016-11-04 17:22:55 +02:00
yuri 64087defd0 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-11-04 17:21:18 +02:00
yuri 807b7bc349 tooltip 2016-11-04 16:57:18 +02:00
yuri 3018c345fa entity manager tooltips 2016-11-04 16:34:12 +02:00
yuri 8f35c59943 ckeanup 2016-11-04 15:34:49 +02:00
yuri 348332f7ca entity manager: fix loading after creation 2016-11-04 12:52:24 +02:00
yuri 9ebd992222 default status styles 2016-11-04 12:43:49 +02:00
yuri 9597ea0dbd stream messages improvements 2016-11-04 12:29:39 +02:00
yuri 23fb6c6e1f status field in entity manager 2016-11-04 11:36:28 +02:00
Taras Machyshyn ddb5033de8 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-11-03 18:00:15 +02:00
Taras Machyshyn 43a49e3c31 Integration tests: added 'createUser' method, portal support 2016-11-03 18:00:03 +02:00
yuri 5a06ee50d8 fix notice 2016-11-03 16:19:43 +02:00
yuri c02f65ef81 audited relations 2016-11-03 16:14:19 +02:00
yuri dbb9b20b7f fix case compose email 2016-11-03 11:37:39 +02:00
yuri 3bfd540f53 kb: move to top move to bottom 2016-11-03 11:11:03 +02:00
yuri a971f7357f fix dynamic logic 2016-11-02 16:31:04 +02:00
yuri 4918f8f985 task reminders 2016-11-02 16:30:56 +02:00
Taras Machyshyn 988388ed16 Added 'sendRequest' possibility 2016-11-02 15:52:38 +02:00
yuri f1de9deb80 event entity: reminders 2016-11-02 12:08:01 +02:00
yuri 2642a6ea6e fix notice 2016-11-02 11:52:42 +02:00
yuri 74b82c92d8 fix default layout detailSmall 2016-11-02 11:15:38 +02:00
yuri ded3d112b2 created and modified fields fixes 2016-11-02 11:11:51 +02:00
yuri c9e7f02b23 cut text columns 2016-11-01 15:07:18 +02:00
yuri c7fb864e04 email changes and test 2016-11-01 12:54:51 +02:00
yuri 16d300445c fix emails 2016-11-01 12:43:20 +02:00
yuri edc24621a6 fix php mime mail parser 2016-10-31 15:52:38 +02:00
yuri 17b48c0e4c fix wysywyg issue with base tags 2016-10-31 15:52:29 +02:00
yuri 771d58f425 phpmimemailparser 2016-10-31 11:30:14 +02:00
Felix Kaechele fd76459077 Fix de_DE translation (#269)
* Fix escape symbols in translations

Signed-off-by: Felix Kaechele <felix@kaechele.ca>

* Update German translation

Signed-off-by: Felix Kaechele <felix@kaechele.ca>
2016-10-28 15:21:27 +03:00
yuri 1955dff68e manual merge 2016-10-28 14:50:48 +03:00
yuri 730b5fb8a9 fix calendar dashlet 2016-10-28 14:46:37 +03:00
yuri c1a115e2b0 reminders: skip if declined 2016-10-21 15:55:03 +03:00
yuri 7773e41ad4 convert lead changes 2016-10-21 14:48:58 +03:00
yuri 304bbb62ad fix naming 2016-10-21 12:05:36 +03:00
yuri 7b439ace04 cleanup 2016-10-21 11:32:10 +03:00
yuri d9ef87fb90 fix naming 2016-10-21 11:30:21 +03:00
yuri 2333b7a1ef user permission = all by default 2016-10-21 11:21:03 +03:00
yuri 1a00932c63 Merge branch 'hotfix/4.2.7' 2016-10-20 15:48:49 +03:00
yuri 1f09015c86 fix ids 2016-10-20 15:48:33 +03:00
yuri 5d79d8520f email: show group email account if email address matches 2016-10-20 15:04:26 +03:00
yuri dde044d8c5 imptove email/phone filters 2016-10-20 14:53:47 +03:00
yuri aeeb84b626 fix text and varchar 2016-10-20 14:47:18 +03:00
yuri ccb9022e16 fix email address search 2016-10-20 12:47:44 +03:00
yuri a9e783b5f1 email autocomplete: users first 2016-10-20 11:36:52 +03:00
yuri 46190df6ff fix notice 2016-10-20 11:30:19 +03:00
yuri 1eb258cab7 email filtering fix 2016-10-20 11:26:48 +03:00
yuri a3836b0091 email fix 2016-10-19 16:38:27 +03:00
yuri 7fbc9fbac8 email fix 2016-10-19 16:38:00 +03:00
yuri d0b5e2188b add marketing industry 2016-10-19 16:13:01 +03:00
yuri dfa2d6be89 email notifications related to parent 2016-10-19 16:04:43 +03:00
yuri 276941197f email importer refactoring 2016-10-19 15:46:07 +03:00
yuri 20569e4252 fix notices 2016-10-19 12:47:54 +03:00
yuri 3b7f99daa1 fix import 2016-10-19 12:14:21 +03:00
Taras Machyshyn 5ee30d9f3f Integration test improvements 2016-10-17 17:35:44 +03:00
yuri 3cde7fa5e3 company type fix 2016-10-11 15:11:36 +03:00
yuri aecb9bbdf4 lang 2016-10-11 15:11:25 +03:00
yuri 1a95e14ee8 entity manager improvements 2016-10-11 12:32:28 +03:00
yuri 83aa07b918 entity manager remove layouts 2016-10-11 11:30:53 +03:00
yuri 4f8eea59fe removeDir method 2016-10-11 11:28:45 +03:00
yuri 248280e086 fix entity manager 2016-10-11 11:28:38 +03:00
yuri 02b465ab8c company entity type 2016-10-11 11:22:48 +03:00
yuri c9d26dc1d8 base plus entity template 2016-10-10 17:32:03 +03:00
yuri 389b158134 look up email address in custom entities 2016-10-10 16:35:30 +03:00
yuri 312af9befb change person layouts 2016-10-10 16:19:34 +03:00
yuri b7f22bf687 Merge branch 'stable' 2016-10-10 15:33:27 +03:00
yuri f062ac255a version 2016-10-10 15:19:14 +03:00
yuri dd8082244c activities and tasks for person type 2016-10-10 12:37:21 +03:00
yuri 25ff7e17c1 activities dashlet change 2016-10-07 15:27:17 +03:00
yuri f4b3071a92 change readme 2016-10-07 14:50:34 +03:00
yuri 0c7b182215 Merge branch 'stable' 2016-10-07 14:36:32 +03:00
yuri 2223a1ecf4 getActivitiesQuery change 2016-10-07 12:54:10 +03:00
yuri 3a24784980 fix email filter 2016-10-07 12:46:46 +03:00
yuri f86564a580 tests 2016-10-07 12:46:27 +03:00
yuri 58897949eb fix email filter 2016-10-07 12:46:19 +03:00
yuri 2dee859b2a fix link field 2016-10-07 12:10:57 +03:00
yuri b1dbd173ad fix mail filters 2016-10-07 11:14:37 +03:00
yuri a9fc290627 mail filter test 2016-10-07 11:14:15 +03:00
yuri 12794968fc fix mail filters 2016-10-07 11:14:02 +03:00
yuri 1b4cbb91ee activities refactor additional 2016-10-06 17:26:51 +03:00
yuri 62f1362cf6 activities big refactor 2016-10-06 16:46:52 +03:00
yuri 49031d0b33 fix orm 2016-10-06 11:49:57 +03:00
yuri 22fea07b0a fix orm 2016-10-05 17:54:00 +03:00
yuri 81692371ec search by hasOne link 2016-10-05 15:35:53 +03:00
yuri a96314f0f0 Merge branch 'hotfix/4.2.6' 2016-10-05 12:37:45 +03:00
yuri a92c294255 fix layout manager reset to default 2016-10-05 12:37:38 +03:00
yuri 7c554a605e originalLead field 2016-10-05 12:07:08 +03:00
yuri 57eeec63c1 remove opportunities link from lead 2016-10-05 11:44:07 +03:00
yuri bd158008b2 update tcpdf 2016-10-04 12:58:24 +03:00
yuri c0ae8d5cdd Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-10-03 12:17:33 +03:00
yuri 78347920aa fix settings entityDefs 2016-10-03 12:17:26 +03:00
yuri c88e662a30 mass email: massEmailDisableMandatoryOptOutLink 2016-10-03 12:03:28 +03:00
yuri 5ae57ff5f6 fix campaign log percentage 2016-10-03 11:32:06 +03:00
Taras Machyshyn 7c74c85a66 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-29 17:48:00 +03:00
Taras Machyshyn 07fc2123e7 Added testData cache folder to gitignore 2016-09-29 17:47:46 +03:00
yuri afdb47b601 fix test email 2016-09-29 17:35:57 +03:00
yuri 5ea437afbb Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-29 17:30:49 +03:00
yuri c7041546c4 fix number test 2016-09-29 17:27:26 +03:00
yuri 1d2fd21a06 Merge branch 'hotfix/4.2.6' 2016-09-29 17:25:35 +03:00
yuri 27624ead8d number fix 2 2016-09-29 17:25:25 +03:00
Taras Machyshyn fefc003984 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-29 17:21:23 +03:00
Taras Machyshyn 70d3bf9fff Integration tests: rename method to 'createApplication' 2016-09-29 17:21:05 +03:00
yuri 4a64c4b648 Merge branch 'hotfix/4.2.6' 2016-09-29 17:21:01 +03:00
yuri 15c980e57f rename number to number util 2016-09-29 17:20:52 +03:00
yuri 9d8fc5b8ea sort by address field 2016-09-28 17:46:14 +03:00
yuri 8184221d2b Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-28 16:15:31 +03:00
yuri 5786983d8b add team to roles 2016-09-28 16:13:53 +03:00
yuri 1e1468ab68 acl changes and user role 2016-09-28 15:36:41 +03:00
yuri e3f0177759 role changes 2016-09-27 16:46:14 +03:00
yuri f1fc6160fe fix typo 2016-09-27 16:30:59 +03:00
yuri 38d4a39014 campaign log to target list 2016-09-27 15:13:25 +03:00
yuri 566d0c1aa0 fix orm query in array 2016-09-27 12:35:40 +03:00
yuri ce752b32fd naming fix 2016-09-27 11:15:59 +03:00
Taras Machyshyn a61553d08b Improved tests 2016-09-26 16:36:47 +03:00
yuri daacb026d8 panel actions changes 2016-09-26 16:16:40 +03:00
yuri 0ae637fba2 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-26 12:50:41 +03:00
yuri b81fd66b85 remove note with parent remval 2016-09-26 12:48:57 +03:00
yuri 071e94ac97 Merge branch 'hotfix/4.2.6' 2016-09-26 12:04:32 +03:00
yuri a98465f30e skip notification checking while upgrade 2016-09-26 12:04:10 +03:00
yuri e949a0bae6 dashboard: ability to rename tabs 2016-09-26 11:31:29 +03:00
yuri f7f9e2fda0 fix export 2016-09-23 11:37:21 +03:00
yuri 80a0571b0c export: skip attributes 2016-09-23 11:31:38 +03:00
yuri d91897a922 fix export 2016-09-22 17:31:42 +03:00
Taras Machyshyn 05180ece92 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-22 17:25:40 +03:00
Taras Machyshyn ee8e960ce4 Added integration tests 2016-09-22 17:25:26 +03:00
yuri 5b4a8666cd Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-22 17:17:21 +03:00
yuri 7240757a28 export field list 2016-09-22 17:15:27 +03:00
yuri 2a8baa2f34 export: use POST request 2016-09-22 14:54:35 +03:00
yuri 0c44e0d101 duplicate target list only not opted out 2016-09-22 12:45:23 +03:00
yuri 63ab5b77f3 relationship copy change 2016-09-22 12:32:53 +03:00
yuri 300198c9fa duplicate with links 2016-09-22 11:24:21 +03:00
yuri 340af18beb Merge branch 'hotfix/4.2.6' 2016-09-20 15:58:34 +03:00
yuri 8862fd279e fix language enum translation 2016-09-20 15:47:58 +03:00
Taras Machyshyn 83cff1bc42 Added favicon to installator 2016-09-20 11:54:51 +03:00
yuri a75534e32a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-20 11:52:07 +03:00
Taras Machyshyn 462eb8792c Added test cache to gitignore 2016-09-20 11:51:57 +03:00
yuri 19f29c0401 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-20 11:49:41 +03:00
Taras Machyshyn 27657260fc Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-20 11:47:40 +03:00
yuri c17fb9ab1e Merge branch 'hotfix/4.2.6' 2016-09-16 17:46:31 +03:00
yuri bd6eafd291 version 2016-09-16 17:44:26 +03:00
yuri a63306603a fix email filter 2016-09-16 17:44:10 +03:00
yuri d3b1114b1e filters refactor 2016-09-16 16:38:10 +03:00
yuri 87340e29e8 base field: search data 2016-09-16 15:38:21 +03:00
yuri 4f1f8d9301 lead: created fields filter populate 2016-09-16 14:51:20 +03:00
yuri 664b294471 bool notNull 2016-09-16 11:23:44 +03:00
yuri 7774c12ab2 lang 2016-09-16 11:02:14 +03:00
yuri 6592dfc4da mass retrive from trash 2016-09-16 11:00:19 +03:00
yuri e823ecc178 user: create portal user fix 2016-09-15 12:59:06 +03:00
yuri 74d5a737db int/float: isEmpty, isNotEmpty filters 2016-09-15 12:07:26 +03:00
yuri bf9799af66 fix markdown link syntax 2016-09-14 17:09:10 +03:00
yuri fc9b67672f date: isEmpty filter 2016-09-14 16:14:06 +03:00
yuri 6e8342511f lang 2016-09-14 16:01:29 +03:00
yuri da2cebd765 fix orm 3 2016-09-14 14:03:30 +03:00
yuri ef19dc3330 fix orm 2 2016-09-14 13:53:11 +03:00
Taras Machyshyn 2f73a2d19b Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-09-14 13:25:07 +03:00
yuri fab257eb97 fix orm 2016-09-14 13:07:32 +03:00
yuri 850c3fd696 orm: get parent relation 2016-09-14 13:00:22 +03:00
yuri a619738652 fix dashboard javascript error 2016-09-13 16:53:06 +03:00
Taras Machyshyn 395c575f78 Moved tests into 'unit' folder 2016-09-13 16:20:42 +03:00
yuri ecf8256b14 fix textFilterFields list 2016-09-13 15:26:51 +03:00
yuri 2d6d6a2b19 link parent: search by parent type 2016-09-13 15:17:49 +03:00
yuri ee404fa400 parentType = null if empty 2016-09-13 15:05:38 +03:00
yuri 10fc546369 Merge branch 'hotfix/4.2.5' 2016-09-13 13:13:00 +03:00
yuri 0ea0c09007 fix acl 2016-09-13 13:12:39 +03:00
yuri 85b2dbac11 Merge branch 'hotfix/4.2.5' 2016-09-13 10:28:39 +03:00
yuri d69f994f4c fix insert template issue with signature 2016-09-13 10:28:24 +03:00
yuri 12a368054a dynamic logic options 2016-09-12 17:27:39 +03:00
yuri 7a2a9de174 Merge branch 'hotfix/4.2.5' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.2.5 2016-09-12 11:17:15 +03:00
yuri 0e14f2b987 fix dynamic logic save 2016-09-12 11:16:36 +03:00
yuri a50d97adf5 cleanup 2016-09-09 16:36:57 +03:00
yuri 62e9138cf1 minor core changes, metadata delete fix 2016-09-09 16:33:43 +03:00
yuri 657e7f0e37 email sender: define sender header 2016-09-08 15:05:58 +03:00
yuri 66d648c7d4 hack zend messageId bug 2016-09-08 12:42:53 +03:00
yuri 08dd77a6b6 metadata refactoring 2016-09-08 11:59:33 +03:00
yuri 037f0d4db1 dynamicLogic edit 3 2016-09-07 17:18:40 +03:00
yuri 19ff591105 fix date field default null 2016-09-07 15:17:00 +03:00
Taras Machyshyn 7d2655f757 Fixed warnings on PHP 7 2016-09-07 15:04:06 +03:00
yuri 7b1a1be366 dynamicLogic edit 2 2016-09-06 16:59:50 +03:00
yuri 1fc3ae72b5 dynamicLogic edit 1 2016-09-05 17:01:41 +03:00
yuri 991b864881 tabs fix 2016-09-05 11:35:04 +03:00
yuri f95fa96ae1 fix package.json 2016-09-05 11:13:23 +03:00
yuri e33cdf268a dynamicLogic change 2016-09-05 11:12:36 +03:00
yuri dcae13f4dc dynamicLogic string dev 2016-09-02 17:17:31 +03:00
yuri 96ac275970 client: fix naming 2016-09-02 16:17:09 +03:00
yuri e58a4c4bbf fix stream status update message 2016-09-02 12:43:26 +03:00
yuri c35985e658 Merge branch 'master' of https://github.com/espocrm/espocrm 2016-09-02 12:40:19 +03:00
yuri 4bc5a89ac2 fix stream status update message 2016-09-02 12:40:09 +03:00
yuri b7e14d60cc dynamicLogic string change 2016-09-02 12:31:45 +03:00
Mauricio Panuncio 7164a71d88 es_ES - Complete translations to today (#219)
* Translate es_ES: Globals. Admin.

* Tickets.

* Emails.

* New translations (missing).

* New translations (missing) II.

* Various.

* Opportunities: Improvement. Self-explanatory names.

* Some small fixes.

* Undo Tickets. Redo Casos.
2016-09-02 12:30:13 +03:00
yuri 6bedd86e08 dynamic logic development 2016-09-01 17:38:47 +03:00
yuri d39e99cbdd dynamic logic changes 2016-09-01 11:24:13 +03:00
yuri ab3134f44a dynamicLogic additional compare types 2016-08-31 17:23:00 +03:00
yuri 5aaca9921c dynamicLogic core 2 2016-08-31 16:28:25 +03:00
yuri 9223e43b7c htmlizer: format number fix 2016-08-31 14:55:12 +03:00
yuri 3766dd16e7 dynamicLogic core 1 2016-08-31 14:48:51 +03:00
yuri e53aff0031 fill primary account on selecting from account 2016-08-30 15:30:06 +03:00
yuri 4a40f1fba7 trim smtp credentials 2016-08-30 14:51:08 +03:00
yuri 8432e9dcc8 fix endWidth search 2016-08-30 13:05:41 +03:00
yuri 04e9bd9de3 fix endWidth search 2016-08-30 13:04:52 +03:00
yuri ed8ed591f7 user: search by position 2016-08-30 13:00:37 +03:00
yuri 34ff0218b9 email notifications about posts w/o parent 2016-08-29 17:12:42 +03:00
yuri 2f6c928077 fix notification parent not null 2016-08-29 16:40:24 +03:00
yuri eff0152f44 layout manager: Side Panels 2016-08-29 15:51:17 +03:00
yuri a3188ce694 preferences: doNotFillAssignedUserIfNotRequired 2016-08-29 12:36:21 +03:00
yuri 4bf81be56f fix naming 2016-08-29 12:22:37 +03:00
yuri 7c22960f42 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-26 17:44:40 +03:00
yuri 3d6f90ad93 fix field manager 2016-08-26 17:44:04 +03:00
yuri a02aebeed2 tooltips editable 2016-08-26 15:01:41 +03:00
Taras Machyshyn d06afd4def Deleted unnecessary file 2016-08-26 14:25:30 +03:00
Taras Machyshyn 88e148fca8 Possibility to redefine hooks 2016-08-26 14:23:41 +03:00
Taras Machyshyn 2d00ef314f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-26 14:22:35 +03:00
yuri 0b6a29a035 field manager: reset to detault 2016-08-26 12:19:50 +03:00
yuri 5feb0eb7c7 fix FieldManager controller 2016-08-26 11:21:09 +03:00
yuri 48cb718fbe naming change 2016-08-26 10:51:09 +03:00
yuri 13ad6ec0d0 field manager: change tpl 2016-08-26 10:48:36 +03:00
yuri 9cfdb3a00b Merge branch 'master' of https://github.com/espocrm/espocrm 2016-08-25 17:24:16 +03:00
rodrigoscoelho b560254df2 Adding Home Page APP meta info for Android and IOS (#145)
This will allow the program to start as a separated program on Android and IOS. As a native program.
2016-08-25 17:23:44 +03:00
yuri 101ed19073 shortcut icon 2016-08-25 17:23:03 +03:00
yuri 65868fd26a fix unsubscribe 2016-08-25 17:07:30 +03:00
yuri d2e5b26765 update zend 2016-08-25 17:00:34 +03:00
yuri 2cac1ea608 unsubscribe changes 2016-08-25 16:54:30 +03:00
yuri 9d37e68e24 sync contact name on portal user update 2016-08-25 13:01:08 +03:00
yuri 290a1c5b31 php 5.4 drop 2 2016-08-25 13:00:50 +03:00
yuri ff924f666f drop php 5.4 support 2016-08-25 12:25:30 +03:00
yuri 8c5eb9c913 update zend 2016-08-25 12:19:06 +03:00
yuri 25e72fa6a5 Merge branch 'hotfix/4.2.5' 2016-08-25 11:58:24 +03:00
yuri 76602aede1 email import: fix for emails w/o subject header 2016-08-25 11:45:56 +03:00
Ayman Alkom 77411702a7 remove repeated key (#205) 2016-08-25 10:44:29 +03:00
Ayman Alkom 1aeee24d97 remove repeated key (#205) 2016-08-25 10:43:53 +03:00
yuri d8cd0d31db email template foreign fields and acl 2016-08-25 10:43:06 +03:00
yuri e72557bb59 Merge branch 'hotfix/4.2.5' 2016-08-24 11:09:41 +03:00
yuri 84e587fcaf mass email: automatically fill name 2016-08-24 10:49:53 +03:00
yuri f8e75dccdf version 2016-08-23 15:41:32 +03:00
yuri b6eca1db17 fix email entityDefs 2016-08-23 15:39:00 +03:00
yuri 6ff414ffcd fix users teams field 2016-08-23 15:26:00 +03:00
yuri b54c9a797d Merge branch 'hotfix/4.2.5' 2016-08-23 12:05:51 +03:00
yuri 7acbf3084d template: related attributes 2016-08-23 12:05:29 +03:00
yuri 87847446a8 css cleanup 2016-08-23 11:18:20 +03:00
yuri 59f250b386 allow template entity 2016-08-23 11:17:39 +03:00
yuri f93ce594d0 add mobile phone type to account 2016-08-23 11:13:58 +03:00
yuri c41f4e51e5 fix filter fields css 2016-08-23 11:01:17 +03:00
yuri 6efd355864 remove tabs 2016-08-23 10:11:37 +03:00
Ayman Alkom 7ee2ee9d35 small syntax fixes (#197)
* fix variable name

* init $number variable

* another fix
2016-08-23 10:09:15 +03:00
Ayman Alkom 737215c599 small syntax fixes (#197)
* fix variable name

* init $number variable

* another fix
2016-08-23 10:08:17 +03:00
Yuri Kuznetsov ced0c25a08 Merge pull request #194 from grzegorzgie/patch-3
Fix pl_PL
2016-08-22 19:51:22 +03:00
Yuri Kuznetsov 5e810d2aa3 Merge pull request #193 from grzegorzgie/patch-2
Fix pl_PL
2016-08-22 19:51:09 +03:00
Yuri Kuznetsov c9e27dd190 Merge pull request #192 from grzegorzgie/patch-2
Fix pl_PL
2016-08-22 19:50:12 +03:00
yuri 1f8a14aca0 fix warning 2016-08-22 15:50:21 +03:00
yuri f518ae59c0 activities small refactoring 2016-08-22 12:27:18 +03:00
Taras Machyshyn c5866f3d86 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-22 12:21:16 +03:00
yuri 4d4bde46f8 version 2016-08-22 11:02:41 +03:00
yuri cb89ad59af cleanup 2016-08-22 11:00:03 +03:00
yuri 092b5024fe it_IT language 2016-08-22 10:36:17 +03:00
grzegorzgie 8221f7182b Fix pl_PL 2016-08-21 13:21:43 +02:00
grzegorzgie ecee739b1a Fix pl_PL 2016-08-21 13:16:03 +02:00
grzegorzgie 702b47296c Fix pl_PL
Repair linguistic errors
2016-08-21 13:02:22 +02:00
yuri 517edf2ced undo comment 2016-08-19 17:52:09 +03:00
yuri 219c28313c fix mass select 2016-08-19 17:48:14 +03:00
Taras Machyshyn 656bba1d3f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-19 17:34:57 +03:00
yuri 311d92202b fix assignment notification if user is removed 2016-08-19 14:43:44 +03:00
yuri 05cb2ee272 email: fix move to trash update counts 2016-08-18 17:07:16 +03:00
yuri f896a2d71a fix calendar range issue 2016-08-18 11:13:24 +03:00
yuri dd6704ace5 fix moving to trash 2016-08-18 10:40:16 +03:00
yuri 1dc4d44a65 es_ES lang fix 2016-08-17 17:52:22 +03:00
yuri bfb28ea178 Merge branch 'hotfix/4.2.3' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.2.3 2016-08-17 17:43:43 +03:00
yuri ec6f3a22f2 version 2016-08-17 17:30:34 +03:00
yuri 5a0c7c330c fix email imported error in php4 2016-08-17 17:28:17 +03:00
Taras Machyshyn f64df5af87 LDAP fixed admin login 2016-08-17 11:54:59 +03:00
Taras Machyshyn d4dc7a4051 LDAP fixes 2016-08-16 16:53:40 +03:00
Taras Machyshyn d676f85c8f LDAP fixes 2016-08-16 16:01:32 +03:00
Taras Machyshyn ab382f2387 LDAP: changed ldapUserObjectClass attribute. 2016-08-15 16:46:55 +03:00
yuri 206219c738 Merge branch 'hotfix/4.2.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.2.2 2016-08-15 15:51:40 +03:00
Taras Machyshyn 37d1c707cb LDAP: label corrections 2016-08-15 15:51:10 +03:00
Taras Machyshyn 93af1c9bfc LDAP improvements: added possibility to define user objectClass 2016-08-15 15:47:25 +03:00
yuri a021c4c8d5 open attachments in new window 2016-08-15 11:08:45 +03:00
yuri a125244cdf Merge branch 'hotfix/4.2.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.2.2 2016-08-15 10:50:10 +03:00
yuri 1cfd251c4c copy attachments for duplicate 2016-08-12 12:51:02 +03:00
Taras Machyshyn d2f4f312e5 Improvements 2016-08-11 16:21:35 +03:00
Taras Machyshyn c468b061d9 Bug fixes for installation 2016-08-11 16:21:03 +03:00
yuri 7bf945f0b6 v 2016-08-11 15:31:19 +03:00
yuri fecbb26cbf email acl fix 2016-08-11 15:30:47 +03:00
yuri a5ae33ab81 fix dateTime exception 2016-08-11 13:01:25 +03:00
yuri c6fa0e464e prevent stream request after remove record 2016-08-11 12:49:56 +03:00
yuri 38bae6238a portal: disable teams field 2016-08-11 12:28:14 +03:00
yuri 79de4c874f portal: follow created 2016-08-11 12:16:51 +03:00
yuri 814748ec61 fix map 2016-08-11 11:48:46 +03:00
yuri 1f0ad0cbec fix inbound email duplicate 2016-08-11 11:12:36 +03:00
yuri 7224f566d6 email import: bad date catch 2016-08-10 16:50:22 +03:00
yuri eefb01ec4f fix salesByMonth 2016-08-10 16:22:17 +03:00
yuri 24d46ed81d fix currency rates 2016-08-10 15:51:20 +03:00
yuri 37c749faf8 remove messageIdInternal index 2016-08-10 15:34:23 +03:00
yuri 4306a3131e fix inbound email ui 2016-08-10 15:32:59 +03:00
yuri 8fa95fcce3 email: fix whitespace subject 2016-08-09 11:12:30 +03:00
yuri b7c41ce640 email fix 2016-08-08 13:09:51 +03:00
yuri a21be94ed3 fix acl 2016-08-08 13:06:40 +03:00
yuri 9d59edcae2 v 2016-08-08 11:51:54 +03:00
yuri deaa26a355 es_ES lang fix 2016-08-08 10:29:49 +03:00
yuri 25d6fb6d82 theme fixes 2016-08-08 10:18:06 +03:00
yuri c1bcc44f04 fix error 2016-08-08 10:03:00 +03:00
yuri fdf8183385 fix massRemove acl check 2016-08-08 09:57:06 +03:00
yuri db40426f00 lang fix 2016-08-05 11:00:24 +03:00
yuri eb92e648a0 dashlet action url 2016-08-04 12:52:37 +03:00
yuri 5df26c324f fix scheduled job running 2016-08-04 12:30:26 +03:00
yuri c36a064fdc lang 2016-08-04 11:01:39 +03:00
yuri a28baa6a75 fix install footer date 2016-08-03 17:29:19 +03:00
yuri 27aed29ddf Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-03 17:26:43 +03:00
yuri 744fb176cc fix code to meet standards 2016-08-03 17:25:29 +03:00
Taras Machyshyn 5f8a0736e4 LDAP corrections 2016-08-03 16:25:33 +03:00
yuri 7fb179e769 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-03 16:09:55 +03:00
Taras Machyshyn 48239c53ca Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-03 12:41:50 +03:00
Taras Machyshyn 4e18afb80f LDAP: added 'Test Connection' button 2016-08-03 12:41:33 +03:00
yuri e9d3d7c807 fix date stringify 2016-08-03 12:23:58 +03:00
Taras Machyshyn 60923197e5 Ldap: added user teams, user default team 2016-08-03 10:56:08 +03:00
Taras Machyshyn a9f7c90323 Improvements 2016-08-03 10:37:48 +03:00
yuri cc723095c2 fix file manager 2016-08-02 15:04:53 +03:00
yuri 373b77f83f fix tests 2016-08-02 14:57:47 +03:00
Taras Machyshyn 68ab589f3e Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-02 13:09:26 +03:00
Taras Machyshyn 23ccbb226f Test fixes 2016-08-02 13:09:14 +03:00
yuri 48edf2a2b5 selectManager test 2016-08-02 13:03:56 +03:00
yuri 082c65ef05 fix unit test 2016-08-02 10:54:12 +03:00
yuri 6553d8ec6c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-01 17:45:07 +03:00
yuri c54b6fcc7c test addition 2016-08-01 17:44:43 +03:00
yuri 655ee740e0 importer test 2016-08-01 17:40:47 +03:00
Taras Machyshyn b02f77b8f9 LDAP improvements 2016-08-01 16:29:26 +03:00
yuri 351c46af06 fix kb order 2016-08-01 15:36:24 +03:00
yuri d3db25d98a fix portal user password email 2016-08-01 15:24:01 +03:00
yuri ef1fe1bd1d Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-08-01 11:12:51 +03:00
Taras Machyshyn 6c2cd93826 Default config 2016-08-01 11:12:26 +03:00
yuri 4859f54f42 email import: get rid of file manager 2016-08-01 10:16:09 +03:00
Taras Machyshyn 749c2dc1e9 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-07-29 17:54:02 +03:00
Taras Machyshyn 3d13026084 LDAP fixes 2016-07-29 17:53:49 +03:00
yuri 6cf66aa88e account: recently created filter 2016-07-29 11:51:23 +03:00
yuri d10ef7038b meetings and assignmentPermissions 2016-07-29 11:41:37 +03:00
yuri cda612810d Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-07-28 11:31:42 +03:00
yuri a7aaac513d composer.lock 2016-07-28 11:30:57 +03:00
yuri 329dbdf408 it_IT lang 2016-07-28 11:28:47 +03:00
Taras Machyshyn 007f705904 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-07-27 16:53:24 +03:00
Taras Machyshyn 36cddbe0cf Fixed LDAP authorization 2016-07-27 16:53:11 +03:00
yuri e9409ccf72 remove tab 2016-07-27 16:44:46 +03:00
yuri b5a1ede962 Merge branch 'hotfix/4.1.7' 2016-07-27 11:26:28 +03:00
yuri 2dc6951ef9 v 2016-07-27 11:26:07 +03:00
yuri 66f686c013 fix kb order 2016-07-27 10:56:20 +03:00
yuri 937aab2b1c massAction successMessage 2016-07-26 15:31:49 +03:00
yuri 43bee97055 massAction fix 2016-07-26 12:22:36 +03:00
yuri a31f5ea87a email address book filter by portal permissions 2016-07-26 12:06:50 +03:00
yuri 0c4d5f3405 mass action defs 2016-07-26 11:31:07 +03:00
yuri 4e70ea0586 fix email 2016-07-25 17:13:34 +03:00
yuri 7736f6cd76 fix email update 2016-07-25 17:07:14 +03:00
yuri 2db6eaa344 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-07-25 14:48:08 +03:00
Taras Machyshyn 38b6cbda0e Merge pull request #159 from ecm4u/master
Support AD with LDAP Auth
2016-07-25 14:47:36 +03:00
Taras Machyshyn 9292f18b5b WARNING fixes 2016-07-25 12:35:52 +03:00
Taras Machyshyn 193cf2438a Cron manager bug fixes 2016-07-25 12:31:27 +03:00
yuri 155e0e3841 import: allow created at and created by 2016-07-25 12:01:03 +03:00
yuri 019c03ed2f email-to-task name 2016-07-25 11:24:23 +03:00
yuri 316e54df92 fix message id issue 2016-07-25 11:17:00 +03:00
yuri 40691ae899 fix entity manager text filter list 2016-07-25 11:16:53 +03:00
yuri ab8ba168ac move kb articles 2016-07-22 14:50:09 +03:00
yuri b066d91cf5 fix warning 2016-07-21 15:24:01 +03:00
yuri 2833581cde email folders side panel: remove edit link 2016-07-21 13:28:53 +03:00
yuri 279c8b3188 email folder and email filter email link 2016-07-21 13:24:20 +03:00
yuri eca6408415 prevent changing users email address and phone numbers for non admins 2016-07-21 13:07:13 +03:00
yuri 35cfb1a480 scheduled job mass actions 2016-07-21 10:58:09 +03:00
yuri 30f3d4ab5e stream notifications 2016-07-20 16:40:21 +03:00
yuri 7e5424e40a activities and history listen to save 2016-07-19 12:23:46 +03:00
Heiko Robert 82612326bf fixed wrong method syntax 2016-07-18 09:04:41 +02:00
Heiko Robert da2e5c835a removed unnecessary comments 2016-07-14 15:06:31 +02:00
Heiko Robert af8eb51c76 fix: setting ldap user fields array after constructor in createUser to support getConfig() 2016-07-14 14:51:26 +02:00
Heiko Robert 7253e257f1 moved hard coded ldap config to conf.php, added default config for Active Directory (cn --> samaccountname) 2016-07-13 17:50:43 +02:00
Heiko Robert 37e93edf25 Merge pull request #2 from espocrm/master
Update from original
2016-07-13 17:40:48 +02:00
yuri 36a56f050f multiple smtp 2016-07-08 16:25:27 +03:00
yuri 31c2d1360d fix warnings 2016-07-08 11:18:28 +03:00
yuri 4addc48339 fix import 2016-07-08 11:00:19 +03:00
yuri a7267bc920 fix import of noJoin relations 2016-07-08 10:49:06 +03:00
yuri 93e94f40c3 fix move to folder 2016-07-07 17:36:58 +03:00
yuri bd75790c29 change email list layout 2016-07-07 17:26:43 +03:00
yuri f1cffcae38 email actions 2016-07-07 17:08:05 +03:00
yuri 9111bce47a move to folder email 2016-07-07 16:30:08 +03:00
yuri 73ec161ac4 fix RDB findRelated if new 2016-07-07 15:55:53 +03:00
yuri 495a07639e email folders dev 2016-07-07 15:55:37 +03:00
yuri 044223e70e fix RDB findRelated if new 2016-07-07 15:27:53 +03:00
yuri 42c9250995 email folders url 2016-07-07 12:07:51 +03:00
yuri 8b4a1d96fd replyInHtml 2016-07-07 11:32:42 +03:00
yuri fff06d7e92 email folder dev 2016-07-06 17:14:08 +03:00
yuri 726adc550c email folders 2016-07-06 16:38:29 +03:00
yuri f5bde670f6 fix mapper fatal error 2016-07-06 10:26:22 +03:00
yuri 050873dd3a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-07-06 10:12:50 +03:00
yuri d3886c1c94 dev 2016-07-06 10:12:40 +03:00
yuri 84f03cf3f9 email improvements 2 2016-07-05 12:41:57 +03:00
yuri f8953d56f4 fix link multiple with role 2016-07-05 10:23:01 +03:00
yuri ebbf14160b email folder changes 2016-07-04 17:29:46 +03:00
yuri 4df0a09de0 lang 2016-07-04 10:22:58 +03:00
yuri c485aa9a62 email folder entity 2016-07-01 17:18:32 +03:00
yuri ae474022b9 email filters skip 2016-07-01 15:23:41 +03:00
yuri f994cdf7c4 email filter changes 2016-06-30 16:56:04 +03:00
yuri 7ff514e5a7 email sentBy field 2016-06-30 11:48:53 +03:00
yuri 344403de54 fix email sent filter 2016-06-30 11:18:15 +03:00
yuri 836243d170 fix email sent filter 2016-06-30 11:17:31 +03:00
yuri 0dc9129d79 notification improvements 2 2016-06-29 16:54:23 +03:00
yuri 61c9d07ad8 notifications improvements 2016-06-29 16:50:01 +03:00
yuri a238295ba8 control followers after reassignment 2016-06-29 16:23:30 +03:00
yuri dbabd0dd45 Merge branch 'hotfix/4.1.6' 2016-06-29 16:03:10 +03:00
yuri f87ff8db8a fix 2016-06-29 15:38:21 +03:00
yuri 60d121f1e1 portal acl fixes 2016-06-29 15:17:52 +03:00
yuri 1497abff07 v 2016-06-29 13:12:09 +03:00
yuri 935ba7d4e4 fix 2016-06-29 13:10:36 +03:00
yuri fba79cde8f notification chanfes 2016-06-29 11:51:30 +03:00
yuri ce79d14a29 duplicate by default 2016-06-28 15:53:18 +03:00
yuri 14b2083226 google maps key 2016-06-28 15:28:50 +03:00
yuri 779a841817 kba ordering 2016-06-28 11:56:29 +03:00
yuri 3647523150 naming fix 2016-06-28 10:59:32 +03:00
yuri eb5b941fe6 email accounts massUpdate 2016-06-28 10:56:25 +03:00
yuri c542d99536 fix stream header long texts 2016-06-27 10:50:48 +03:00
yuri 918031a9c6 fix long texts in stream 2016-06-27 10:49:00 +03:00
yuri 163e0cac2a drag and drop additional 2016-06-24 17:08:49 +03:00
Taras Machyshyn 95096dd8fd Correct translations for installer 2016-06-24 15:28:28 +03:00
yuri 67bd98bf4b iso week numbers 2016-06-24 15:22:03 +03:00
yuri ac434c00d6 stream drag and drop 2016-06-24 15:04:54 +03:00
yuri 0fb8330ecf preferenses: hide notifications if not enabled 2016-06-24 12:36:55 +03:00
yuri 3f969cee5b Merge branch 'hotfix/4.1.6' 2016-06-24 12:15:59 +03:00
yuri ea5f6300f3 fix text overflow in list expanded 2016-06-24 12:15:51 +03:00
yuri 0d5e75db23 activities dashlet: show only todays and next day 2016-06-23 17:18:49 +03:00
yuri 7d667a1d1b notification about mention 2016-06-23 16:18:32 +03:00
yuri 610922c8e0 fix client notification 2016-06-23 15:20:17 +03:00
yuri 36e0882542 rename method 2016-06-23 11:44:13 +03:00
yuri b9979e87af email notifications: dont notify old emails 2016-06-23 11:21:38 +03:00
yuri bcd38dd853 fix email filters 2016-06-23 10:52:22 +03:00
yuri b018580c0b fix email reminder 2016-06-23 10:36:08 +03:00
yuri 38a7f42a1e remove ob_clean and flush 2016-06-22 16:26:52 +03:00
yuri 1387d856ba remove ob_clean from installer 2016-06-22 16:20:11 +03:00
yuri f2bbc872d6 lang fixes 2016-06-22 16:00:45 +03:00
yuri c74e7b416e lang 2016-06-22 15:03:33 +03:00
yuri f008688c14 orm: fix order by list 2016-06-22 12:14:15 +03:00
yuri dff0d5a992 fix email notification from person 2016-06-22 12:01:38 +03:00
yuri 6fe6f8960f fix stream note.js 2016-06-22 10:28:25 +03:00
yuri 0b0184098d fix gender in stream 2016-06-21 17:25:18 +03:00
yuri 647515d21a gender support 2016-06-21 17:21:45 +03:00
yuri 2ee944ef7b change assignment templates 2016-06-21 12:23:51 +03:00
yuri f4d2325b8b reminder and invitations change 2016-06-21 12:08:55 +03:00
yuri c0904125eb notification changes and stream message changes 2016-06-20 17:35:57 +03:00
yuri 7dad30ad0c fix notices 2016-06-20 11:24:15 +03:00
yuri d6acb6dfdc fix notice 2016-06-20 11:06:26 +03:00
yuri b6da94fe2e fix modal backdrop close 2016-06-17 11:54:09 +03:00
yuri dc5e292a02 fix modal backdrop close 2016-06-17 11:53:30 +03:00
yuri 4bf938107d portal id 2016-06-16 16:59:10 +03:00
yuri ec7d49cdbc fix validate message if empty element 2016-06-15 17:20:19 +03:00
yuri 3c73062b91 email: is replied 2016-06-15 16:38:01 +03:00
yuri 5122f112d1 task dashlet: dont show if date start is future 2016-06-15 12:43:47 +03:00
yuri 5e20fa6717 orm: skip text fields param 2016-06-15 11:41:52 +03:00
yuri d4599d9377 fix mapper test 2016-06-15 11:40:26 +03:00
yuri adb9ce4d7e email: rename name label 2016-06-15 11:17:16 +03:00
yuri e777413a7b enum order 2016-06-15 11:15:02 +03:00
yuri 2cb0ac6221 email: forward info 2016-06-14 17:30:24 +03:00
yuri 8f7fafb990 email import: fetch parent from replied 2016-06-14 16:37:54 +03:00
yuri 158c911787 fix label 2016-06-14 13:01:58 +03:00
yuri aa67575ecb internal post dev 2016-06-14 12:56:18 +03:00
yuri 81cf82c99f fix stream posting 2016-06-14 11:56:42 +03:00
yuri e638bf2eec Merge branch 'hotfix/4.1.6' 2016-06-14 11:44:55 +03:00
yuri 6c9d1dbb3d fix notification sounds 2016-06-14 11:43:31 +03:00
yuri fbb034ef92 intenal post dev 2016-06-14 11:24:42 +03:00
yuri 335601d6b8 fix multienum validate message 2016-06-13 15:57:37 +03:00
yuri f6ad51ca74 fix calendar colors 2016-06-13 15:30:16 +03:00
yuri e119f8b008 fix entity manager tabList 2016-06-13 15:23:29 +03:00
yuri 5af0eeff3b entity manager: event type 2016-06-13 13:12:41 +03:00
yuri f685feb312 Merge branch 'hotfix/4.1.6' 2016-06-13 10:56:38 +03:00
yuri c78254a8fa no dashboard layout for portal useres 2016-06-13 10:52:20 +03:00
yuri 9c3758b92c Merge branch 'stable' 2016-06-10 16:10:48 +03:00
yuri 4ca2a7fa1a fix notice 2016-06-10 16:03:10 +03:00
yuri d6814b1601 Merge branch 'hotfix/4.1.5' 2016-06-10 15:55:57 +03:00
yuri 55e5a21dcd Merge branch 'hotfix/4.1.5' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.1.5 2016-06-10 15:54:14 +03:00
Taras Machyshyn 792f422f76 Bug fixing 2016-06-10 15:53:37 +03:00
yuri 8cac546087 merge with hotfix/4.1.5 2016-06-10 15:05:41 +03:00
yuri 0cfe91d960 loadAdditionalFieldsForPdf 2016-06-10 14:44:09 +03:00
yuri 4dea1762e8 stream textarea fix 2016-06-10 13:08:22 +03:00
Taras Machyshyn b1a9b8d8b1 Code improvement 2016-06-10 10:57:56 +03:00
yuri 6787acce61 fix next number 2016-06-10 10:50:40 +03:00
yuri eb0adf7c28 fix afterMassRemove 2016-06-09 14:03:23 +03:00
yuri 783cccaa1b Number field type 2016-06-09 12:47:17 +03:00
yuri 36a0a22996 naming fix 2016-06-09 10:49:56 +03:00
yuri a3f3357b2e Merge branch 'hotfix/4.1.5' 2016-06-08 17:58:29 +03:00
yuri cbbfa44174 fix field manager ui 2016-06-08 17:58:18 +03:00
yuri 812d2ec9bc fix field manager hook 2016-06-08 17:52:20 +03:00
yuri b51ba96bb7 number field type prepare 2016-06-08 17:38:12 +03:00
yuri 4c60cf79f6 rdb: rename methods 2016-06-08 15:56:04 +03:00
yuri 8451949805 database charset param 2016-06-08 11:47:52 +03:00
yuri af5750cdf6 color change 2016-06-07 19:00:57 +03:00
yuri 1a4dfd6f67 version 2016-06-07 12:29:29 +03:00
yuri 6aa800d453 fix fetchOnModelAfterRelate 2016-06-07 12:26:20 +03:00
yuri 82aa3b9508 fix massRelate 2016-06-07 12:15:04 +03:00
yuri 6910a113da email filter: filters 2016-06-06 16:49:07 +03:00
yuri bd20aaa577 fix htmlizer 2016-06-06 12:55:04 +03:00
yuri 0aef3c0b04 htmlizer and password 2016-06-06 12:53:10 +03:00
yuri 2f97010b54 htmlizer improvements 2016-06-06 12:31:26 +03:00
yuri 5bcdad2996 wysiwyg htmlToPlain fix 2016-06-06 11:59:49 +03:00
yuri 1e8a8d94c2 fix timeline timezone 2016-06-06 11:51:21 +03:00
yuri 9aeefd7685 contact: fix accounts field 2016-06-03 11:29:46 +03:00
yuri f72385471c naming fix 2016-06-03 11:27:41 +03:00
yuri f7a542560a check duplicates: all email 2016-06-03 11:19:03 +03:00
yuri 400f43447d v 2016-06-02 17:22:15 +03:00
yuri 866593a831 Storage Message: define ErrorHandler 2016-06-02 17:15:30 +03:00
yuri c90cdc62fb global search changes 2016-06-02 12:39:06 +03:00
yuri d5c93f21b5 audited for miltiEnum and arrays 2016-06-02 12:26:47 +03:00
yuri b58d78a29e preferences: dashboardLayout 2016-05-31 12:05:37 +03:00
yuri f5b41eb78b field manager: translatedOptions param 2016-05-31 11:01:17 +03:00
yuri c2a7d90944 fix view-helper options 2016-05-27 13:17:51 +03:00
yuri b2a4ec238c fix preferences fields 2016-05-27 12:11:17 +03:00
yuri df69584c7d v 2016-05-27 11:46:31 +03:00
yuri 574da55be7 Merge branch 'hotfix/4.1.3' of ssh://172.20.0.1/var/git/espo/backend into hotfix/4.1.3 2016-05-26 17:15:40 +03:00
Taras Machyshyn 52b808b902 Removed unnecessary debugging messages 2016-05-26 16:53:52 +03:00
Taras Machyshyn 714c7b0a33 Fixed an issue for MySQL 5.7 2016-05-26 16:41:50 +03:00
yuri 3d774e3afa fix wysywyg modals 2016-05-26 16:26:16 +03:00
yuri c91db1699b upgrade bootstrap 2016-05-26 15:39:04 +03:00
yuri 2b5695d8dc fix wysywig field detail view height 2016-05-26 12:23:52 +03:00
yuri b562fc33bd dont allow email to modify 2016-05-26 11:43:52 +03:00
yuri 425414b8f3 fix add email address 2016-05-26 11:24:21 +03:00
yuri 3b363d5ee3 cleanup 2016-05-26 11:10:34 +03:00
yuri 4fc3b9a99e fix kb massUpdate layout 2016-05-25 15:23:12 +03:00
yuri ab2b9bafeb fix meeting/call select manager 2016-05-24 15:53:09 +03:00
yuri e99fc6302f reminders for all users 2016-05-24 12:35:46 +03:00
yuri 82996a807f calendar: getCalendarSelectParams method 2016-05-24 11:38:14 +03:00
yuri 86b31b1f26 clear role cach if isAdmin changed 2016-05-23 17:25:58 +03:00
yuri 19c9b38f82 applicationName in settings 2016-05-23 12:24:18 +03:00
yuri b1d0d1cd27 activities: status not required 2016-05-23 11:47:04 +03:00
yuri c916011530 add id_ID language 2016-05-23 11:36:58 +03:00
yuri 5db6327272 de_DE 2016-05-23 11:10:03 +03:00
yuri 3c5fe4c778 v 2016-05-20 15:41:08 +03:00
yuri f6f3f05aa5 fix meeting acl 2016-05-20 15:39:51 +03:00
yuri 10f34564d0 load teams for user 2016-05-20 15:38:40 +03:00
yuri 216ec2329d fix record isPermittedTeams 2016-05-20 15:30:49 +03:00
yuri c3cb4619cf disable formatting for autoincrement 2016-05-20 11:21:06 +03:00
yuri fcf2929b5b fix record/base 2016-05-19 17:56:19 +03:00
yuri 15c10ca553 fix notice 2016-05-18 16:38:40 +03:00
yuri 9bb417ab38 v 2016-05-18 16:32:25 +03:00
yuri 5b110ee7b2 fix warning 2016-05-18 16:30:46 +03:00
yuri f3951966f3 fix popup 2016-05-18 16:25:20 +03:00
yuri f580f0ba60 namimng 2016-05-18 12:34:53 +03:00
yuri a9e4ad3833 sidePanels refactoring 2016-05-18 11:22:18 +03:00
yuri 3e6c88eb27 lead-document relationship 2016-05-17 17:16:33 +03:00
yuri 7c4ef3f00f query: use distinct instead of group by id 2016-05-17 15:51:08 +03:00
yuri 762d7f71c6 fix date time 2016-05-17 11:18:30 +03:00
yuri 50cc658c20 fix campaign image 2016-05-16 16:09:18 +03:00
yuri 21a59cb198 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-05-16 12:56:36 +03:00
Taras Machyshyn 38ba3461be Fixed SemVer for PHP 7 2016-05-16 12:55:51 +03:00
yuri f70ee27809 remove notes from user layout 2016-05-16 10:59:08 +03:00
yuri 674c1588d9 iOS 9 support 2016-05-13 12:40:26 +03:00
yuri e9eb5402cc fix selector 2016-05-11 17:35:55 +03:00
yuri 7f746a72bb ui performance oprtimization 2016-05-11 16:22:02 +03:00
yuri bde6a810c4 cleanup 2016-05-11 11:42:12 +03:00
yuri ff3e7d1c5b fit add dashlet modal height 2016-05-11 11:41:27 +03:00
yuri 7ecb63189a fix full form from quick edit 2016-05-11 10:56:33 +03:00
yuri eb1e16d6bd phone/email search more optimized way 2016-05-10 16:45:43 +03:00
yuri f17b5d7244 small fix in RDB 2016-05-10 13:04:04 +03:00
yuri a5b44e9fdf entity manager: text filter fields 2016-05-10 12:34:29 +03:00
yuri 734219dbd4 customUrl portal layout 2016-05-09 11:26:02 +03:00
yuri 45c351ab39 user entity small fixes 2016-05-09 11:22:06 +03:00
yuri 74aa55a8aa store sent emails 2016-05-09 11:19:14 +03:00
yuri 64b3a88ba0 fix shared calendar 2016-05-09 11:06:12 +03:00
yuri 08ff00f602 fix user select manager 2016-05-09 11:05:52 +03:00
yuri 0d9853311a inbox dashlet layout change 2016-05-06 12:54:24 +03:00
yuri b1d17f9e84 fix shared calendar store 2016-05-06 12:02:00 +03:00
yuri 3a6041a8df shared calendar improvements 2016-05-06 11:57:37 +03:00
yuri 023171f19e merge 2016-05-05 15:17:29 +03:00
yuri 546fed83c8 version 4.0.6 2016-05-05 15:15:54 +03:00
yuri 6b37ce80fd fix kb 2016-05-05 15:14:32 +03:00
yuri a98c8b3bcd naming 2016-05-05 13:08:28 +03:00
yuri 7bd3dd26cf notificationSoundsDisabled 2016-05-05 13:03:15 +03:00
yuri fe7684b46c naming 2016-05-05 12:56:16 +03:00
yuri ea5dcfe630 entity manager trimming 2016-05-05 12:12:40 +03:00
yuri ad5f29338b field manager: trim 2016-05-05 11:59:35 +03:00
yuri 89d2b26613 cleanup 2016-05-05 11:10:56 +03:00
yuri 7206dc38bc meeting/call acl fix: allow read own record if no assigned 2016-05-05 11:08:26 +03:00
yuri 4b9ff21743 version 4.2.0 2016-05-04 17:05:09 +03:00
yuri fbe7910349 merge 2016-05-04 16:32:19 +03:00
yuri 7b098095cb v 4.0.5 2016-05-04 16:18:36 +03:00
yuri 7966be90e7 fix acl 2016-05-04 16:18:12 +03:00
yuri b64db89307 fix acl 2016-05-04 16:17:25 +03:00
yuri cb9b7c3e72 code fix suite 2016-05-04 16:16:57 +03:00
yuri a268962c15 dont save email reminder 2016-05-04 15:16:29 +03:00
yuri 36c1b56916 scheduled job mass update 2016-05-04 14:51:49 +03:00
yuri 39a2e30e3f version 2016-05-04 11:29:12 +03:00
yuri b91d237f0b portal users activities 2016-05-04 11:25:12 +03:00
yuri f7a0a0daa0 config textFilterUseContainsForVarchar 2016-05-04 10:52:25 +03:00
yuri 4f270d003b linkParent field entityList filtered by disabled 2016-05-04 10:23:34 +03:00
yuri e3ebc8c2e2 portal customUrl and fix 2016-05-04 09:57:42 +03:00
yuri c31c5618dd fix portal user sendPassword 2016-05-04 09:47:10 +03:00
yuri 341d5f8d7c fix InboundEmail namespace 2016-05-04 09:45:24 +03:00
yuri 04d2bd69c1 fix jobs 2016-04-29 16:40:05 +03:00
yuri 47efa792ee kb/documents buttons 2016-04-29 12:15:04 +03:00
yuri a71c6789bc fix dateTimeOptional required 2016-04-29 11:49:50 +03:00
yuri 3a41aad935 fix job.php 2016-04-28 17:14:42 +03:00
yuri fad56c1c0a email craetedAt filter 2016-04-28 17:09:08 +03:00
yuri d6ad7f16c1 cron populate logic 2016-04-28 16:16:31 +03:00
yuri ae89a9216d fix email importer 2016-04-28 15:18:14 +03:00
yuri 6927c82a0f Application setupSystemUser 2016-04-28 11:00:12 +03:00
yuri e06b553653 fix avatar 2016-04-27 16:24:11 +03:00
yuri e9a63c0c36 merge all links 2016-04-27 12:26:06 +03:00
yuri 582c23ecf4 metadata get by array 2016-04-27 12:24:42 +03:00
yuri d86ff1e905 user mass update layout change 2016-04-27 11:43:33 +03:00
yuri 773bca8448 user mass update fix 2016-04-27 11:41:45 +03:00
yuri a6258cd334 afterMassUpdate afterMassRemove methods 2016-04-27 11:41:35 +03:00
yuri 1cdf88ef9b cleanup 2016-04-27 11:41:14 +03:00
yuri 58ffbad422 fix jobs 2016-04-27 11:40:57 +03:00
yuri aafcd5767e emails dashlet 2016-04-26 11:59:22 +03:00
yuri 2bfac8352b fix wysiwyg 2016-04-26 11:39:07 +03:00
yuri 954eff0c94 acl change 2016-04-26 11:36:42 +03:00
yuri 9692076ba8 int format 2016-04-26 11:08:30 +03:00
yuri 5ae64989eb system avatar color 2016-04-25 17:45:57 +03:00
yuri 3fd34fc48d show more after remove issue fix 2016-04-25 15:28:39 +03:00
yuri 94c207677f int count 2016-04-25 15:23:04 +03:00
yuri 39188f0b3a fix phone number import 2016-04-25 11:07:44 +03:00
yuri 7665ec2730 naming 2016-04-22 11:20:12 +03:00
yuri bc57ac3065 fix task dashlet 2016-04-22 11:20:07 +03:00
yuri 6cf62736bb wysiwyg fix base tag 2016-04-20 17:59:46 +03:00
yuri d5e78c1a7a field manager: foreign fielld 2016-04-20 15:37:18 +03:00
yuri 4a0aa1bca0 global search fix 2016-04-20 10:32:05 +03:00
yuri 2d06e8a801 calendar custom entity support 2016-04-19 16:32:40 +03:00
yuri 25b1479c23 fix layouts 2016-04-19 16:09:10 +03:00
yuri 09ab17f18b naming fix 2016-04-19 16:03:38 +03:00
yuri be438a2f18 pl_PL fix 2016-04-19 11:51:48 +03:00
yuri c9f91bb8da merge fix 2016-04-19 11:51:06 +03:00
yuri cd01178151 fix activities service 2016-04-19 11:48:09 +03:00
yuri 3e8ed72246 mass update keep emails and phones 2016-04-19 11:32:56 +03:00
yuri c500520130 remove dashlet confirmation 2016-04-18 16:45:48 +03:00
yuri 0fc2eb6817 fix lang 2016-04-18 16:42:43 +03:00
yuri 4db2f49233 fix json 2016-04-15 16:30:45 +03:00
yuri 8215c44be9 fix address format 2016-04-15 15:35:10 +03:00
yuri dbee926a94 address formats 2016-04-15 15:28:54 +03:00
yuri d85e13cae0 timeline today by default 2016-04-14 16:42:31 +03:00
yuri 370eee8d9d fix timeline lang 2016-04-14 16:34:26 +03:00
yuri 98f317cb1c calendar scope list for create 2016-04-14 12:43:17 +03:00
yuri 3ec9613b0e timeline and calendar less 2016-04-14 12:02:37 +03:00
yuri 8e27d50d5c about.tpl 2016-04-13 17:17:53 +03:00
yuri fc50991317 fix deprecated ajax usage 2016-04-13 16:37:19 +03:00
yuri 52382bb958 fix deprecated moment usage 2016-04-13 16:22:41 +03:00
yuri 66fdd40659 timeline dashlet fix 2016-04-13 15:50:20 +03:00
yuri f0f402a8b3 calendar timeline dashlet 2016-04-13 12:40:45 +03:00
yuri 591cbf4484 opp dashlet sorting 2016-04-13 10:00:10 +03:00
yuri 44d813bf5b fix person name template 2016-04-13 09:36:02 +03:00
yuri fceff4ad7f calendar changes 2016-04-12 17:19:15 +03:00
yuri f47b41928e fix view field 2016-04-12 17:14:58 +03:00
yuri c559a97953 timeline dev 2016-04-11 17:16:14 +03:00
yuri d1d64c84b0 fix typo 2016-04-11 12:46:16 +03:00
yuri cb1f32ec3a Merge branch 'hotfix/4.0.5' 2016-04-11 11:36:13 +03:00
yuri e76116810f fix calendar weekStart 2016-04-11 11:36:01 +03:00
yuri 974b69eed0 timeline dev 2016-04-08 17:20:38 +03:00
yuri bb379c7a0e fix invitation 2016-04-08 10:30:00 +03:00
yuri 5664ede648 fix invitation 2016-04-08 10:28:31 +03:00
yuri 881a3db412 dev timeline 2016-04-08 10:26:53 +03:00
yuri b74f1cc5d6 Merge branch 'hotfix/4.0.5' 2016-04-07 12:51:38 +03:00
yuri 265ec60614 remove empty side panel box 2016-04-07 12:51:22 +03:00
yuri d79d716612 download file name escape 2016-04-07 12:51:09 +03:00
yuri aa61f322bc fix email attachment filename parsing 2016-04-07 12:50:42 +03:00
yuri c8d2f08c13 fix naming 2016-04-07 10:41:36 +03:00
yuri 920b6e2eba dev 2016-04-06 16:09:11 +03:00
yuri 6e7908de52 timeline dev 1 2016-04-05 16:22:13 +03:00
yuri 10de6aedbd Merge branch 'hotfix/4.0.5' 2016-04-05 11:23:46 +03:00
yuri ce0efed7b8 fix calendar 2016-04-05 11:23:32 +03:00
yuri 204b9aa49d dev 2016-04-05 10:55:02 +03:00
yuri ae1db7990e Merge branch 'hotfix/4.0.5' 2016-04-04 16:37:11 +03:00
yuri 18f13acfa9 assigner user field: dont display avatar in list view 2016-04-04 16:10:06 +03:00
yuri a15b247952 fix lang 2016-04-01 16:34:00 +03:00
yuri 2e457e1f6f fix entity manager link conflicts 2016-04-01 16:30:53 +03:00
yuri e0375a52f9 fix relationship manager ui 2016-04-01 16:30:38 +03:00
yuri 351a70015a fix email address and phone number duplicates 2016-04-01 12:27:52 +03:00
yuri 8faa001a56 use teams view 2016-04-01 11:34:48 +03:00
yuri 182fc8b65e Merge branch 'hotfix/4.0.5' 2016-04-01 11:16:34 +03:00
yuri 49b581dafd assigned user view 2016-04-01 11:16:25 +03:00
yuri 1319c54365 fix assignment permission no 2016-04-01 11:12:33 +03:00
yuri c9db2687f5 fetch only header for emails w/ exceeding size 2016-03-31 12:38:37 +03:00
yuri 21252a6eb7 Merge branch 'hotfix/4.0.5' 2016-03-31 11:27:21 +03:00
yuri 1054050542 fix list modal 2 2016-03-31 11:27:12 +03:00
yuri 90e2d7ef0b cleanup 2016-03-31 11:24:56 +03:00
yuri de9c1e7a20 merge 2016-03-31 11:24:30 +03:00
yuri 08b5f09c55 fix list modal 2016-03-31 11:21:46 +03:00
yuri 23a0ed86e0 cleanup 2016-03-31 10:34:50 +03:00
yuri 0ca7da454b fix notice 2016-03-31 10:33:16 +03:00
yuri ffc22673f7 Merge branch 'hotfix/4.0.5' 2016-03-30 14:59:08 +03:00
yuri 1faa75c303 add email to quick create list 2016-03-30 12:30:01 +03:00
yuri 8136eed152 orm improvements 2016-03-30 12:29:07 +03:00
yuri 13dc6f0d76 email quick create 2016-03-30 11:19:46 +03:00
yuri dd55141422 Merge branch 'hotfix/4.0.5' 2016-03-30 10:36:14 +03:00
yuri d3bcadce13 fix contact filter is empty account 2016-03-30 10:36:06 +03:00
yuri 99533a5416 dont show notification about note if no access to entity 2016-03-29 16:20:05 +03:00
yuri 4a288434bc lead - case 2016-03-29 16:00:40 +03:00
yuri 9218bce3e4 kb email addition 2016-03-29 15:36:50 +03:00
yuri b566413b78 Merge branch 'hotfix/4.0.5' 2016-03-29 15:30:46 +03:00
yuri f624b441e4 KB: send email 2016-03-29 15:30:01 +03:00
yuri ebe7834092 error message if restore password with empty smtp 2016-03-28 15:34:34 +03:00
yuri 9c8f54fd24 fix send test email button 2016-03-28 15:34:01 +03:00
yuri 4a20d74258 Merge branch 'hotfix/4.0.4' 2016-03-25 16:02:53 +02:00
yuri f47915d077 fix list 2016-03-25 15:20:19 +02:00
yuri eb2305712a user smtp info 2016-03-25 12:30:10 +02:00
yuri f75414a5d2 fix intaller 2016-03-25 12:30:02 +02:00
yuri a88cb05897 fix installer 2016-03-25 11:55:30 +02:00
yuri 2435ae67c9 v 2016-03-25 11:51:02 +02:00
yuri 4c49be5203 installer fix 2016-03-25 11:50:58 +02:00
yuri 2d8a1dad80 fix installer 2016-03-25 05:30:16 -04:00
yuri a15b009133 user filters 2016-03-25 05:11:11 -04:00
yuri 25d2033b7c user select default filter active 2016-03-25 05:08:08 -04:00
yuri 9abeb6aec8 Merge branch 'hotfix/4.0.4' 2016-03-25 05:01:28 -04:00
yuri c509eeae49 fix notices 2016-03-25 05:01:05 -04:00
yuri 2a4b0dbcb4 remove task dublicate index 2016-03-25 04:56:47 -04:00
yuri e45a863e8d fix invitation 2016-03-24 11:27:53 +02:00
yuri 2ca40a6b4e Merge branch 'hotfix/4.0.4' 2016-03-23 17:01:30 +02:00
yuri c4819e29e0 fix inv email date time 2016-03-23 17:01:00 +02:00
yuri 176fae228c Merge branch 'hotfix/4.0.4' 2016-03-23 16:57:33 +02:00
yuri c0242a18e3 fix invitation email and email template 2016-03-23 16:57:18 +02:00
yuri 7a953c9a47 use word-break for long field 2016-03-23 16:09:07 +02:00
yuri 27cc0d812e url field title 2016-03-23 16:06:45 +02:00
Yuri Kuznetsov 2a1df998eb Merge pull request #123 from ecm4u/master
allow "Ends With" and "Like (%)" on varchar field
2016-03-23 14:59:56 +02:00
yuri 78573b85b5 Merge branch 'hotfix/4.0.4' 2016-03-23 14:59:09 +02:00
yuri 7a433c1890 fix list remove 2016-03-23 13:03:44 +02:00
yuri de26d87400 list title 2016-03-23 12:02:03 +02:00
yuri 07da707503 Record controller fix sort 2016-03-23 11:40:24 +02:00
yuri b473b19b45 fix opportunity dashlet acl 2016-03-22 16:19:44 +02:00
yuri 6c291999f4 keep meeting duration if rescheduled 2016-03-22 13:07:14 +02:00
yuri 2e92d0d3a5 case email compose fix 2016-03-22 12:03:21 +02:00
yuri 2ac5695e45 case email compose fix 2016-03-22 12:02:44 +02:00
yuri 0af4ab54f9 calendar quick view 2016-03-22 11:50:46 +02:00
yuri 8da92966de Merge branch 'hotfix/4.0.4' 2016-03-22 10:41:47 +02:00
yuri bc3dfc7ff9 fix warnings 2016-03-18 16:05:41 +02:00
yuri e81d5707f2 fix warnings 2016-03-18 15:26:04 +02:00
yuri 4cb42f8762 Merge branch 'hotfix/4.0.4' 2016-03-18 14:47:51 +02:00
yuri 1d2e3aff89 fix job rep 2016-03-18 14:47:21 +02:00
yuri e36c8d6053 change year 2016-03-18 11:25:45 +02:00
yuri 4ea1d50caf fix detail getFieldViews 2016-03-18 11:19:14 +02:00
yuri a50361126f Merge branch 'hotfix/4.0.4' 2016-03-17 12:32:49 +02:00
yuri 865a8e2abc fix E_STRICT notices 2016-03-16 17:34:50 +02:00
yuri 037ef7ea78 Merge branch 'hotfix/4.0.4' 2016-03-16 12:49:17 +02:00
yuri 5783f4e708 fix autoincrement 2016-03-16 12:48:44 +02:00
yuri 9991dd350f fix autoincrement 2016-03-16 12:48:18 +02:00
yuri 557a48ec6a isDraggable 2016-03-15 16:01:43 +02:00
yuri d5fa18975e try catch for send password 2016-03-14 16:54:35 +02:00
yuri 23ee06e123 hide panels and buttons from portal user 2016-03-14 16:50:44 +02:00
yuri e47eab0ce7 fix select manager 2016-03-14 15:52:06 +02:00
yuri 17ae5b6b5a fix file permissions 2016-03-14 15:51:58 +02:00
yuri fa29bf3309 v 2016-03-14 11:43:24 +02:00
Heiko Robert e839e505c8 en localisation for new search filter 2016-03-11 15:50:47 +01:00
Heiko Robert 7dc9c3e6b6 added search filter "Ends With", "Like" for varchar fields 2016-03-11 15:46:15 +01:00
yuri 684585278d fix email import 2016-03-11 12:02:21 +02:00
yuri e303be8155 fix german salutations 2016-03-10 15:17:40 +02:00
yuri f1285f0615 fix default side panel tpl 2016-03-10 12:46:21 +02:00
yuri 3fd1974d86 fix build permissions 2016-03-09 15:57:13 +02:00
yuri d48716e65a account: text search by email address 2016-03-09 11:20:57 +02:00
yuri a0432051f4 fix lead service 2016-03-09 11:03:56 +02:00
yuri 076c3aa65b trim search 2016-03-09 10:44:32 +02:00
yuri 92abd16032 remove notification if record removed 2016-03-04 12:40:30 +02:00
yuri e6632066a6 aclPortal case: default status readOnly 2016-03-04 12:28:43 +02:00
yuri e2deaf57dd fix portal account contact select acl 2016-03-03 13:02:10 +02:00
yuri 0530d9deb8 fix case compose email 2016-03-03 12:30:58 +02:00
yuri b57ccf0c6a fix case assigned status 2016-03-03 12:27:01 +02:00
yuri 9ea9cf693d v 2016-03-03 12:19:44 +02:00
yuri 3460931fba fix portal windows issue 2016-03-03 12:19:05 +02:00
yuri b743d113cc fix acl 2016-03-03 12:12:13 +02:00
yuri f810371e70 fix tabbing 2016-03-03 12:12:07 +02:00
yuri bc525f3047 fetchOnModelAfterRelate 2016-03-02 13:21:19 +02:00
yuri 6809181adf mass email: dont store test email 2016-03-02 13:02:44 +02:00
yuri 2c71a28421 fix use 2016-03-02 11:49:47 +02:00
yuri 82162e4fe6 fix select manager 2016-03-01 17:25:11 +02:00
yuri 03454bc309 fix portal log 2016-03-01 16:40:23 +02:00
yuri d975501f29 fix warnings 2016-03-01 16:32:37 +02:00
yuri 761356adda fix mention 2016-03-01 12:23:37 +02:00
yuri 824835a28c email template: array fields 2016-03-01 12:01:27 +02:00
yuri 252ce15973 fix email template 2016-03-01 11:55:37 +02:00
yuri 7f25dba917 v 2016-03-01 10:57:31 +02:00
yuri b5d4b8aa5a fix warning 2016-03-01 10:20:07 +02:00
yuri 39a136295a repository default options 2016-02-29 17:45:39 +02:00
yuri 6d674c007e php 7 compatibility 2016-02-29 17:01:18 +02:00
yuri 31f380a03a russian lang 2016-02-29 12:03:38 +02:00
yuri 7e23960196 v 2016-02-26 17:11:36 +02:00
yuri d3b9f2479b fix export 2016-02-26 17:11:32 +02:00
yuri c211842b52 fix metadata 2016-02-26 15:17:33 +02:00
yuri 3e11c0cfc1 fix loader 2016-02-26 12:23:53 +02:00
yuri 6747440b00 document folder customizable 2016-02-26 12:09:30 +02:00
yuri dc1c4b1e78 fix lang 2016-02-26 10:48:01 +02:00
yuri 26f2fba3ac cleanyp 2016-02-25 16:17:55 +02:00
yuri eb481c689b fix warnings 2016-02-25 16:16:40 +02:00
yuri 88c3984d35 date: ever filter 2016-02-25 13:07:50 +02:00
yuri 4eae088973 fix flotr2: remove underscore 2016-02-25 12:19:11 +02:00
yuri 60ae0fb365 fix 2016-02-25 10:28:21 +02:00
yuri ab36f41fc3 duration notStorable 2016-02-24 17:51:13 +02:00
yuri 98de243e37 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-02-24 15:31:45 +02:00
yuri 0c6ccabbeb fix checkEntityForDuplicate 2016-02-24 15:31:26 +02:00
yuri a66e6111cb fix detail view buttons fixed possition 2016-02-24 12:11:00 +02:00
yuri caf5c8806a chart outlineColor 2016-02-24 11:43:48 +02:00
yuri 0154dfd6a1 view naming fix 2016-02-24 11:36:43 +02:00
yuri e545e68877 version 2016-02-24 10:43:43 +02:00
yuri fa24c2b7fe fix array field 2016-02-23 16:43:02 +02:00
Taras Machyshyn df2b7d9659 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2016-02-23 15:58:24 +02:00
Taras Machyshyn cc395232ff Fixed ukrainian translation 2016-02-23 15:58:10 +02:00
yuri 47afb83536 fix datetime 2016-02-23 15:48:13 +02:00
yuri 02d1b50b59 view naming 2016-02-23 15:42:05 +02:00
yuri bd86eb08fa fix account list layout 2016-02-23 15:10:47 +02:00
yuri b3c1a45b72 task: add parent to filters layout 2016-02-23 12:41:34 +02:00
yuri 15678e59e2 fix search frontend 2016-02-23 12:41:00 +02:00
yuri 6fe379bab3 link multiple and attachment multiple listLayoutDisabled 2016-02-23 11:54:48 +02:00
yuri 39ecb2fd37 cleanup 2016-02-23 11:51:36 +02:00
yuri 988c0059ff import language file 2016-02-23 11:34:15 +02:00
yuri 61ff31b3b7 trim 2016-02-23 11:17:05 +02:00
yuri 7c1a098b89 change account layouts 2016-02-22 16:47:52 +02:00
yuri f843593843 add country to lead small view 2016-02-22 16:38:22 +02:00
yuri c34eb915bc fix email draft 2016-02-22 15:54:37 +02:00
yuri 9508432294 opportunity set probability if empty 2016-02-22 15:00:40 +02:00
yuri 0959962269 version 2016-02-22 14:53:05 +02:00
yuri e39a91bde6 fix view naming 2016-02-22 12:42:09 +02:00
yuri 51f5dbe25c address list view 2016-02-22 11:47:45 +02:00
yuri 6fd5c6cbe7 fix view naming 2016-02-22 11:18:07 +02:00
yuri 6622b09eaa fix issue that search input not stored 2016-02-22 11:16:47 +02:00
yuri 9bb9f066cd fix dashboard 2016-02-19 18:15:28 +02:00
yuri 03110b47df change account list layout 2016-02-19 17:41:15 +02:00
yuri 034e532e05 change contact list layout 2016-02-19 17:35:07 +02:00
yuri c306af8b4c readable date formats according to selecred date format 2016-02-19 12:21:23 +02:00
yuri bd4a784676 move readable date formats to date-time.js 2016-02-19 12:10:55 +02:00
yuri 4ca0a9dc5f fix german salutations 2016-02-19 12:03:15 +02:00
yuri c6816b01b5 bool field filter: checked by default 2016-02-19 11:51:27 +02:00
yuri bc7583ccb4 improve role table ui 2016-02-19 11:32:16 +02:00
yuri 318e43aca3 json formating 2016-02-19 10:38:05 +02:00
yuri ea992f727b admin page: move user interface upper 2016-02-18 18:19:03 +02:00
yuri 5bdb16f98c fix home icon position 2016-02-18 18:09:27 +02:00
yuri faa06993e6 cacheTimestamp fix for no cache 2016-02-18 18:06:50 +02:00
yuri f6e0d017b2 change home icon 2016-02-18 18:03:16 +02:00
yuri 8ea56a74b0 code style link 2016-02-18 17:23:18 +02:00
yuri d4c9666f85 contributing file 2016-02-18 17:19:43 +02:00
yuri 5f376304ce portal entryPoint changes 2016-02-18 11:41:56 +02:00
yuri dbb29f25ab portal fixes 2016-02-17 17:31:10 +02:00
yuri da059b2589 portal changes 2016-02-17 16:54:53 +02:00
yuri fee64fd5ac fix lang 2016-02-17 12:48:30 +02:00
yuri 85de9f7a6f entryPoint data 2016-02-17 12:47:16 +02:00
yuri 5beb7641af portal folder 2016-02-17 12:35:19 +02:00
yuri 249852c3d7 baseBath 2016-02-16 17:27:45 +02:00
yuri 223d07579b display total count by default 2016-02-16 12:01:20 +02:00
yuri 74fb359740 pdf fontface in config 2016-02-16 10:48:40 +02:00
yuri f7ffadc76f fix template vars sorting 2016-02-16 10:40:19 +02:00
yuri fc03141dee calendar: fix issue with date w/o time 2016-02-16 10:25:38 +02:00
yuri 8d29014811 added cs_CZ lang 2016-02-15 16:18:52 +02:00
yuri 7dcbbcb98d version 2016-02-15 12:36:33 +02:00
yuri 60b9200247 fix vertical theme pagination issue 2016-02-15 12:19:02 +02:00
yuri fa4d1d70d5 naming fix 2016-02-15 12:01:05 +02:00
yuri de6cc1f9bb currency rounding 2016-02-15 11:52:20 +02:00
yuri 5fb6abe0e1 keep history in converted laed 2016-02-15 11:41:38 +02:00
yuri 94073b8aad account filters layout change 2016-02-15 11:16:40 +02:00
yuri 0e83e21aa0 use wildcard in address search 2016-02-15 11:14:56 +02:00
yuri 63bbf72942 fix company logo 403 error 2016-02-15 11:12:54 +02:00
yuri dbaa41b161 refresh list view after create / edit 2016-02-15 10:53:25 +02:00
yuri ed673dbe0d fix portal isDefault 2016-02-15 10:39:18 +02:00
yuri d54ccb0c9e fix config 2016-02-12 18:40:23 +02:00
yuri b29cbec3a1 kb fix 2016-02-12 12:33:19 +02:00
yuri edc967c118 campaign: dont count test in statistics 2016-02-12 11:40:45 +02:00
yuri e80681da22 change password url 2016-02-12 10:44:05 +02:00
yuri 03ec9c9378 attachment related field 2016-02-11 14:26:11 +02:00
yuri 6c54306cd6 fix email template 2016-02-11 12:48:33 +02:00
yuri db49af84f4 kb portals 2016-02-11 12:29:12 +02:00
yuri 79a29531e9 fix import 2016-02-10 14:45:12 +02:00
yuri c3de7f022e stream dashlet view list 2016-02-10 12:55:27 +02:00
yuri 59a3111596 fix acl 2016-02-10 12:49:06 +02:00
yuri cf8dfadbdf dont display global search if no acl access 2016-02-10 11:58:07 +02:00
yuri e500b2c906 user filters 2016-02-10 11:25:02 +02:00
yuri 0d9417cc3e create portal user 2016-02-10 11:21:50 +02:00
yuri eb57d70182 fix lang 2016-02-10 10:27:37 +02:00
yuri 215b572d70 color fix 2016-02-10 10:01:46 +02:00
yuri bc72f7f3e6 record dachlet check access 2016-02-09 16:18:09 +02:00
yuri b449473f10 fix typo 2016-02-09 15:45:44 +02:00
yuri 6f23362bfd record dashlet url 2016-02-09 15:32:54 +02:00
yuri 074d2cc119 fix role 2016-02-09 12:33:20 +02:00
yuri 725cd224c1 fix portal html and 2016 2016-02-09 11:55:21 +02:00
yuri 2baee2398b fix portal html 2016-02-09 11:44:17 +02:00
yuri 1a8f8875fd fix show hide field 2016-02-09 10:46:40 +02:00
yuri 9cecea8317 theme in diff 2016-02-09 10:45:53 +02:00
yuri 05ac6ea0b8 fix cache 2016-02-08 18:22:56 +02:00
yuri cce8186ccf fix dashlet 2016-02-08 17:39:19 +02:00
yuri b143d1a30e show hide field for middle record 2016-02-08 17:09:50 +02:00
yuri 4c5f2e6b40 fixes 2016-02-08 16:54:58 +02:00
yuri 6bc2c7a576 theme manager fix 2016-02-08 16:03:09 +02:00
yuri 2412c7521b theme css use cacheTimestamp 2016-02-08 15:59:07 +02:00
yuri c964897c59 fix list view show more 2016-02-08 13:00:47 +02:00
yuri 6abdc001e5 attachment: forbid parent 2016-02-08 11:56:47 +02:00
yuri 83943d1daa fix auto follow notification 2016-02-08 11:06:52 +02:00
yuri eedd54d10a fix email modal 2016-02-05 16:40:03 +02:00
yuri c8a3736816 attachment: small changes 2016-02-05 16:31:31 +02:00
yuri e727196424 email address search check email create access 2016-02-05 16:06:07 +02:00
yuri d0f715863c cleanup attachments w/o parent 2016-02-05 15:57:29 +02:00
yuri ae94113370 attachment set size if empty 2016-02-05 12:43:16 +02:00
yuri 3fbe4970b2 clientDefs compose modal view 2016-02-05 12:31:54 +02:00
yuri 54e6e3bf39 fix mail sender 2016-02-05 12:16:17 +02:00
yuri f2a7d3ae86 fix array 2016-02-05 11:06:31 +02:00
yuri 3799dd739b Attachment Multiple: sourceList to field manager 2016-02-05 10:55:16 +02:00
yuri 3161419682 fix pdf 2016-02-04 17:41:50 +02:00
yuri bdc277e557 fix pdf 2016-02-04 17:39:38 +02:00
yuri a515cd29a0 fix pdf 2016-02-04 17:38:26 +02:00
yuri 770a2b83f0 Pdf service 2016-02-04 17:35:48 +02:00
yuri f9df8a757d attachment getFilePath method 2016-02-04 15:57:53 +02:00
yuri 6d17017c2d wysiwyg: auto height 2016-02-04 13:08:18 +02:00
yuri 9fea9d46fb fix attachment entry point 2016-02-04 12:44:37 +02:00
yuri 3925d83b68 when select display only not empty categories 2016-02-04 12:30:43 +02:00
yuri ca23f1d58e add document 2016-02-04 12:15:28 +02:00
yuri 4492293464 new view naming 2016-02-03 15:30:33 +02:00
yuri cd0a32846c added theme 2016-02-03 11:52:16 +02:00
yuri f5d0a80626 impoty: empty assigned user 2016-02-03 10:43:42 +02:00
yuri 1b0fdad357 chache user layout 2016-02-02 17:03:28 +02:00
yuri 9ea5e3f4d0 email-to-case: no distribution 2016-02-02 15:58:40 +02:00
yuri 79416d7ac5 fix note error 2016-02-02 15:54:35 +02:00
yuri 52c6ecbcb6 new view name standard 2016-02-02 15:37:09 +02:00
yuri f6732e72d2 notification: related id 2016-02-02 12:48:31 +02:00
yuri bbf2128c8a fix notification all read 2016-02-02 12:19:01 +02:00
yuri d5ba8058e4 notification list view link 2016-02-02 11:28:32 +02:00
yuri 926e243aa3 Notification remove 2016-02-01 17:36:53 +02:00
yuri ed7d24bc8f notification fronend refactor 2016-02-01 17:09:45 +02:00
yuri 4f4069c3d7 case distribution small change 2016-02-01 15:49:03 +02:00
yuri 9426a09a40 fix stream post view 2016-02-01 11:51:53 +02:00
yuri bfd9b40a5b fix email create contact 2016-02-01 11:04:39 +02:00
yuri e94da5c189 select manager: addAndWhere addOrWhere 2016-01-29 16:56:51 +02:00
yuri 36847497fc fix case assignment if email is duplicate 2016-01-29 16:30:09 +02:00
yuri 0bb52a11ea fix email sent filter 2016-01-29 15:08:34 +02:00
yuri 9f7043a85d isFromTeams filter 2016-01-29 14:54:46 +02:00
yuri eafb8bd2cb fix portal auth 2016-01-29 11:36:17 +02:00
yuri 63eeea7b26 lang 2016-01-29 11:29:07 +02:00
yuri eac2372e00 edit dd for stream panel 2016-01-29 11:26:04 +02:00
yuri d9e972684c change portal user name autofill 2016-01-29 11:12:39 +02:00
yuri aaa9d1a7b4 add items to default filter layouts 2016-01-29 10:46:57 +02:00
yuri df9a778ba0 portal dev 2016-01-28 17:55:28 +02:00
yuri 68612cf9d1 fux uk_UA 2016-01-28 16:26:07 +02:00
yuri 26b72ea73d Added Mass Email link 2016-01-28 16:19:59 +02:00
yuri e8c570f5df fix emailReplyToAllByDefault 2016-01-28 16:10:29 +02:00
yuri abbf601325 Preferences: replyEmailToAllByDefault 2016-01-28 15:57:23 +02:00
yuri 1cd73e2f50 fix lang 2016-01-28 15:33:11 +02:00
yuri 4b49bf280b portalUserLimit 2016-01-28 15:23:44 +02:00
yuri 48302fae95 code improvements 2016-01-28 13:00:39 +02:00
yuri c525698427 fix reply cc 2016-01-27 16:29:47 +02:00
yuri 64738979e3 fix campaign revenue sum 2016-01-27 16:17:06 +02:00
yuri bed7434cd0 Settings: added readableDateFormatDisabled 2016-01-27 15:42:19 +02:00
yuri 95f23863d4 attachment: sourceId 2016-01-27 11:56:22 +02:00
yuri 1406527755 text field parameters added 2016-01-27 11:08:16 +02:00
yuri 78395407e3 load jsLibs before login 2016-01-27 10:53:28 +02:00
yuri 26e5c802b6 portal dev 2016-01-26 16:26:10 +02:00
yuri 2f5f64e53c added d/m/y date format 2016-01-26 11:17:22 +02:00
yuri a1c95fe0e9 kb changes 2016-01-26 11:17:09 +02:00
yuri eb17c54dd6 opportunity assigned user not required 2016-01-25 15:58:51 +02:00
yuri f3207a271a fix acl delete own record 2016-01-25 11:25:55 +02:00
yuri ea76104b80 role: change order 2016-01-25 11:25:39 +02:00
yuri 3d5be39d46 fix quick create acl 2016-01-25 11:25:19 +02:00
yuri 1678bb070e dashlets changes 2016-01-22 16:52:08 +02:00
yuri 470a49d6cd fix record list dashlet 2016-01-22 16:04:02 +02:00
yuri bb11a26816 role: clear cache on team change 2016-01-22 16:01:17 +02:00
yuri 06e6b19c40 siteUrl and text search filters 2016-01-22 15:43:37 +02:00
yuri f085bf5e58 dashlet layouts dev 2016-01-22 15:01:30 +02:00
yuri 2437388bf0 dashboard improvements 2016-01-21 17:47:45 +02:00
yuri fb70c9dce6 calendar size fix 2016-01-21 10:35:28 +02:00
yuri 30384a713e calendar dashlet size 2016-01-20 18:12:17 +02:00
yuri cc26345db6 Merge branch 'master' of https://github.com/espocrm/espocrm 2016-01-20 18:03:45 +02:00
yuri f29534531d dashboard improvements 2016-01-20 18:03:37 +02:00
Yuri Kuznetsov 00a2eae74e Merge pull request #82 from alasdaircr/PATCH_warning
Typo in variable name
2016-01-20 15:19:51 +02:00
Alasdair Campbell 283cac586d PATCH: warning 2016-01-20 11:03:20 +00:00
yuri ca33cab247 fix currency change trigger 2016-01-20 12:51:09 +02:00
yuri 52fb9f8b0a increase max lenngth of attachment field 2016-01-18 16:54:49 +02:00
yuri 10fee4d974 after relate event 2016-01-18 16:48:00 +02:00
yuri 6edf6ae9f2 refactor stream query 2016-01-18 16:23:54 +02:00
yuri 58e0ee5721 portal dev 2016-01-18 15:35:23 +02:00
yuri 6354c72334 knowledge base dev 2016-01-15 16:36:20 +02:00
yuri f93e6c03c9 knowledge base dev 2016-01-15 15:23:49 +02:00
yuri ef5fec4282 portal dev 2016-01-15 14:41:58 +02:00
yuri 6dc13f229e is not read 2016-01-15 13:27:49 +02:00
yuri f148bb0089 email: is read and is important filters 2016-01-15 13:24:06 +02:00
yuri 9b9a472dd5 portal dev 2016-01-15 12:52:23 +02:00
yuri f965acf384 kb fixes 2016-01-14 17:12:36 +02:00
yuri f7e3fb3e15 knowledge base 2016-01-14 16:41:27 +02:00
yuri a8396df545 document folder acl 2016-01-14 12:02:29 +02:00
yuri 3cd91ba15e cleanup 2016-01-13 17:39:05 +02:00
yuri 2433f0d626 document changes 2016-01-13 17:30:24 +02:00
yuri c0b5661ef4 fix list tree 2016-01-13 17:30:09 +02:00
yuri ff81306e90 fix list and list tree views 2016-01-13 16:40:27 +02:00
yuri d51e38bb6e portal dev 2016-01-13 13:08:35 +02:00
yuri 5c1ae72bc6 fix text fields undefined 2016-01-13 11:16:46 +02:00
yuri b1ada57d93 portal dev 2016-01-12 15:51:30 +02:00
yuri e7afe68868 dev 2016-01-11 16:02:03 +02:00
yuri f6f58c679d fixes 2016-01-08 15:18:48 +02:00
yuri 4b4f8d2cc4 dev and fix 2016-01-08 14:50:46 +02:00
yuri 7dc230d731 portal development 2016-01-08 14:39:59 +02:00
yuri db7e33fa61 development 2016-01-05 18:04:15 +02:00
yuri e4d6b13d27 fixes 2016-01-05 13:00:30 +02:00
yuri 3177945146 portal auth 2016-01-05 11:49:14 +02:00
yuri ef9c5da2d6 portal development 2016-01-04 16:14:18 +02:00
yuri 18423c0ba1 acl portal 2015-12-29 15:16:49 +02:00
yuri f629cb3af6 role appearance change 2015-12-29 12:09:58 +02:00
yuri d081d6b2d9 portal dev 2015-12-28 17:37:17 +02:00
yuri ab3dfe4bf6 portal dev 2015-12-28 16:58:16 +02:00
yuri a472e6d348 Portal Roles 2015-12-28 14:43:10 +02:00
yuri fa014bb232 modal fixes 2015-12-25 18:31:20 +02:00
yuri bdee4068c0 fixes 2015-12-25 18:01:02 +02:00
yuri 025e7134fc acl changes and portal entity 2015-12-25 17:01:50 +02:00
yuri a388638a91 fix field readOnly 2015-12-25 15:52:30 +02:00
yuri e7b8283fdc modals fixes 2015-12-25 12:30:56 +02:00
yuri d7172f8ebe acl changes and fixes 2015-12-25 12:04:41 +02:00
yuri bc0ea9ab3a readOnly attributes 2015-12-25 10:59:28 +02:00
yuri 838f8ba3b3 fix contact layout 2015-12-24 18:03:24 +02:00
yuri 4da13a55cf hasOne link and portal user fields 2015-12-24 18:01:59 +02:00
yuri 8489bca8c0 portal fields 2015-12-24 14:59:01 +02:00
yuri d620b36dd1 Merge branch 'hotfix/3.9.3' 2015-12-23 12:37:19 +02:00
yuri 89b5daebee fix ua lang 2015-12-23 12:37:05 +02:00
yuri fdea3231e9 acl and search 2015-12-23 12:09:42 +02:00
yuri 882b74a31f fix acl and relogin issue 2015-12-23 10:43:49 +02:00
yuri 181a680296 acl and export 2015-12-23 10:06:35 +02:00
yuri d7d93e6a79 role panels 2015-12-22 16:59:52 +02:00
yuri d6ee607b9d fix email save 2015-12-22 15:57:01 +02:00
yuri 75f26e3ecc navigate in quick view 2 2015-12-22 15:43:35 +02:00
yuri e959bcb369 trim 2015-12-22 11:28:56 +02:00
yuri c9eea8796f next prev title 2015-12-21 17:28:38 +02:00
yuri 8d44e0b1ad next prev in preview 2015-12-21 17:26:37 +02:00
yuri 947f47ef25 role add field translte 2015-12-21 16:03:32 +02:00
yuri 27e5df5367 field level acl frontend 2 2015-12-21 15:15:06 +02:00
yuri b7b64d7b32 duplicate changes 2015-12-21 11:25:23 +02:00
yuri 4f9a6a0dd0 acl table change 2015-12-18 18:00:49 +02:00
yuri bb5543fc81 role field security detail view 2015-12-18 17:45:42 +02:00
yuri 8b1ffaac3f disable template 2015-12-18 11:46:06 +02:00
yuri 0961ceb203 field level client side 1 2015-12-17 16:44:32 +02:00
yuri 96ca44f91b fix acl table 2015-12-17 15:14:23 +02:00
yuri 869bf46070 attributes instead of fields; server side field level security 2015-12-17 14:58:19 +02:00
yuri af039971a6 fix acl 2015-12-16 17:44:39 +02:00
yuri 5b614691fd acl table refactor 2015-12-16 17:36:11 +02:00
yuri 39295d2d6f merge 2015-12-16 11:27:24 +02:00
yuri 51952a9283 fix issue that email reply stylesheet was broken 2015-12-16 11:26:16 +02:00
yuri e88ffc1270 wyywyg full screen button 2015-12-15 18:23:08 +02:00
yuri c7fccac10c summernote upgrade 2015-12-15 18:18:23 +02:00
yuri cdb4b4e7bd summernote upgrade 2015-12-15 18:18:02 +02:00
yuri 3fa6ac5042 Merge branch 'master' of https://github.com/espocrm/espocrm 2015-12-15 15:59:04 +02:00
Yuri Kuznetsov 47e52b6670 Merge pull request #73 from ayman-alkom/master
Translate Turkish dates
2015-12-15 15:58:45 +02:00
yuri 461eb480f1 move populate assigned user and assigned teams to view 2015-12-15 14:49:55 +02:00
yuri b73cbef3d4 Merge branch 'hotfix/3.9.3' 2015-12-15 11:03:16 +02:00
yuri c6abb0a531 fix stream list 2015-12-15 11:03:03 +02:00
yuri 7227122fd8 Merge branch 'hotfix/3.9.3' 2015-12-15 11:01:18 +02:00
yuri cf3228466d fix list 2015-12-15 11:01:06 +02:00
yuri 4452db65ed Merge branch 'hotfix/3.9.3' 2015-12-15 10:30:33 +02:00
yuri 635f0d4891 fix remove from list 2015-12-15 10:30:23 +02:00
yuri 3da60c1ada rdb before after methods added 2015-12-14 17:39:43 +02:00
yuri 7187156390 rdb relate methods 2015-12-14 17:34:20 +02:00
yuri b764fd8da2 fix email select manager 2015-12-14 15:44:04 +02:00
yuri da6d590cc1 select manager change 2015-12-14 15:43:33 +02:00
Ayman Alkom 3b265056c2 Translate Turkish dates 2015-12-14 15:11:39 +02:00
yuri 7fe08f1669 acl fixes 2015-12-14 11:58:14 +02:00
yuri dc0a616ec8 select manager changes 2015-12-11 14:43:02 +02:00
yuri 7dc43e5ccc entity class fixes 2015-12-11 12:50:23 +02:00
yuri 9a78cf2389 acl changes 2015-12-11 12:17:15 +02:00
yuri b0e050ceac email assignedUsers 2015-12-10 18:05:37 +02:00
yuri 90f06fc532 setReadOnly locked 2015-12-10 16:45:13 +02:00
yuri 6d3d922290 hide show field changhe 2015-12-10 16:04:02 +02:00
yuri 3c2bc8871e fix 2015-12-10 16:01:43 +02:00
yuri 16399bf71d acl email 2015-12-10 15:48:11 +02:00
yuri abf963099c acl load and promises 2015-12-10 12:01:01 +02:00
yuri b7ab6953cd fixes in record view 2015-12-09 18:53:13 +02:00
yuri 1628821cdd changes in record 2015-12-09 18:46:05 +02:00
yuri fbf98e9754 frontend client refactor 2015-12-09 17:21:05 +02:00
yuri b4ec610fc2 record fixes 2015-12-09 17:20:53 +02:00
yuri e2a63729b6 record view refactor 2015-12-09 12:58:45 +02:00
yuri b72924c126 panel view disabled check 2015-12-08 17:15:04 +02:00
yuri 115bcc626a Merge branch 'stable' 2015-12-08 17:05:48 +02:00
yuri 083e248f21 fix logo 2 2015-12-08 16:56:14 +02:00
yuri df422f6365 v 2015-12-08 16:51:10 +02:00
yuri 47a2fee51d fix logo 2015-12-08 16:50:35 +02:00
yuri 3fabdc1d44 Merge branch 'hotfix/3.9.2' 2015-12-08 16:23:20 +02:00
yuri 4b0be0137c fix user detail view 2015-12-08 16:23:12 +02:00
yuri 7fdb40b44e more view refactoring 2015-12-08 16:21:35 +02:00
yuri 929eeddce7 grand record view refactor 2015-12-08 12:59:19 +02:00
yuri ea5d27a87f detail view refactor 2015-12-07 17:08:17 +02:00
yuri 0da898a242 show hide field method changes 2015-12-04 16:16:10 +02:00
yuri 4a14cb0e8c showPanel hidePanel methods 2015-12-04 15:55:41 +02:00
yuri 509c7f3989 stream acl 2015-12-04 15:22:18 +02:00
yuri 38514941b8 clearfix 2015-12-04 14:24:03 +02:00
yuri 3212f59cf2 fix css 2015-12-04 14:12:59 +02:00
yuri ad25e13cf0 acl view change 2015-12-04 12:42:36 +02:00
yuri fadd4ffe42 refactor acl table 2015-12-04 12:02:38 +02:00
yuri 7a3e36c092 notifications suprt parent 2015-12-04 11:10:34 +02:00
yuri 730e8143e7 scope disabled check 2015-12-03 15:37:59 +02:00
yuri a401c4cd4c set is fetched 2015-12-03 15:34:59 +02:00
yuri 51bf1343c8 notifications and acl 2015-12-03 15:32:35 +02:00
yuri 343986bf83 email notificator acl check 2015-12-03 14:46:46 +02:00
yuri d0b3ab57de Merge branch 'hotfix/3.9.2' 2015-12-03 14:26:04 +02:00
yuri d79993ba11 phone field type fix 2015-12-03 14:25:37 +02:00
yuri 6ca6f45b58 stream and acl 2015-12-03 13:54:07 +02:00
yuri d3b50c077b ability to disable scope 2015-12-03 12:42:25 +02:00
yuri 2c4ba8c1b5 lang 2015-12-03 11:08:29 +02:00
yuri a8e00dda0b fix main view $el emptyied 2015-12-02 13:22:27 +02:00
yuri 7b88c008de fix naming 2015-12-02 13:09:20 +02:00
yuri 2c251133af naming fix 2015-12-02 13:07:48 +02:00
yuri c079b256f0 fix naming 2015-12-02 12:40:27 +02:00
yuri 6a9abab7ea refactor settings views 2015-12-02 12:23:10 +02:00
yuri f59c217053 fields/base small change 2015-12-02 11:18:51 +02:00
yuri 57008f834a Merge branch 'hotfix/3.9.2' 2015-12-02 10:47:36 +02:00
yuri 7b90e74b97 view refactoring 2015-12-02 10:47:28 +02:00
yuri da62759130 destroy popover on remove 2015-11-30 16:40:01 +02:00
yuri 7cfae284ae remove main.html 2015-11-30 15:25:18 +02:00
yuri d946eed86a html folder 2015-11-30 15:22:52 +02:00
yuri 030e4ac7ab Merge branch 'hotfix/3.9.2' 2015-11-30 14:23:22 +02:00
yuri 2e04fd5a3b style 2015-11-30 14:14:29 +02:00
yuri 6174245b22 cleanup 2015-11-30 12:22:48 +02:00
yuri 9b9d3d9634 ORM: ability to join children 2015-11-30 11:15:21 +02:00
yuri f98d5a4ee9 fix typo 2015-11-30 10:26:08 +02:00
yuri c653d731cc fix readme 2015-11-27 17:14:07 +02:00
yuri f4582ac3a6 change readme 2015-11-27 17:11:14 +02:00
yuri 5bb7842585 client manager 2015-11-27 16:58:05 +02:00
yuri e13a722dca cleanup and style fix 2015-11-27 16:03:27 +02:00
yuri dba325aa61 join conditions and alias 2015-11-27 12:21:40 +02:00
yuri 59dccbedbd fix activities queries 2015-11-27 12:05:48 +02:00
yuri df32edf85f version 2015-11-27 11:47:15 +02:00
yuri 0385513f0e rename checkPemission and fix calendar 2015-11-27 11:46:52 +02:00
yuri 710fdebbec email account small fixes 2015-11-27 11:02:49 +02:00
yuri 7b707716f9 scheduled jobs ui changes 2015-11-27 10:35:54 +02:00
yuri 8cdb2df433 email template: assignmed user not required 2015-11-27 10:28:58 +02:00
yuri 6c1fb42f59 exclude by email address 2015-11-26 15:04:30 +02:00
yuri 233da7a0be mass email: dont send twice 2015-11-26 12:24:14 +02:00
yuri 612f73dac9 link Parent filters 2015-11-26 11:48:40 +02:00
yuri 3ae7634b15 campaign log lan 2015-11-26 11:10:27 +02:00
yuri 9cfabebdad fix default config 2015-11-25 16:01:57 +02:00
yuri 0522796fe3 po lang fix 2015-11-25 12:46:20 +02:00
yuri 261e76458a fix lang 2015-11-25 12:45:36 +02:00
yuri 4f2d218a82 improve po and lang 2015-11-25 12:22:46 +02:00
yuri 4f531da9f5 de_DE 2015-11-25 10:33:39 +02:00
yuri c8adb52b7a dashlet calendar and scopeList from metadata 2015-11-24 13:13:35 +02:00
yuri 5152e1ff36 po.js code style 2015-11-24 12:55:50 +02:00
yuri 5b1cfbdcfc fix lang 2015-11-24 12:34:13 +02:00
yuri 00b690da99 notification enhancement 2015-11-24 12:21:33 +02:00
yuri ed63848efa fix lang 2015-11-24 11:37:15 +02:00
yuri d174fe3e6f fix activities 2015-11-23 18:19:54 +02:00
yuri e1a505955e calendar metadata 2015-11-23 17:49:20 +02:00
yuri a30b638a8d personal email accounts link on admin panel 2015-11-23 16:57:22 +02:00
yuri c37fb02b9e record view impovements 2015-11-23 16:44:40 +02:00
yuri 3fc5b08969 form leave off confirmation while inline edit 2015-11-23 16:06:43 +02:00
yuri 0209bc3cd3 Merge branch 'master' of https://github.com/espocrm/espocrm 2015-11-23 12:52:12 +02:00
yuri db02fc4e55 refactor calendar backend 2015-11-23 12:52:05 +02:00
yuri d7787a829e refactor activities backend 2015-11-23 12:25:31 +02:00
Yuri Kuznetsov acdea144bc Merge pull request #70 from PanuWeb/translateES
New Translations ES
2015-11-22 16:23:17 +02:00
PanuWeb 700bb150bb Remaking translations II. Translations dumped and not know why. 2015-11-20 22:56:12 -03:00
PanuWeb 9a22ed262b Remaking translations. Translations dumped and not know why. 2015-11-20 22:52:44 -03:00
PanuWeb 65827b2c02 Fix 'options'. 2015-11-20 22:38:59 -03:00
PanuWeb e23e80347b Difficult words translated. 2015-11-20 22:29:05 -03:00
PanuWeb ddedbfc999 Fix missing 'Save'. Add missing translations. 2015-11-20 21:55:32 -03:00
yuri d6144f777c cleanup 2015-11-20 16:58:43 +02:00
yuri a328eff3ae fix package.json 2015-11-20 16:43:59 +02:00
yuri 45bc019967 ver 2015-11-20 16:43:21 +02:00
yuri 2aafca7ae4 fix in about 2015-11-20 16:35:06 +02:00
yuri 13a38f9767 fix in about 2015-11-20 16:32:18 +02:00
yuri fcf07cdf7c additions in about page 2015-11-20 16:29:30 +02:00
yuri 723a01c12d fix warning 2015-11-20 15:53:50 +02:00
yuri 0c1526cb69 fix notices and logging 2015-11-20 15:47:45 +02:00
yuri e25cd0c1a5 jobSchedulingMap 2015-11-20 15:21:33 +02:00
yuri a3683b76b8 authTokenControl job 2015-11-20 15:02:13 +02:00
yuri e4e56489d7 fix notice 2015-11-20 13:13:04 +02:00
yuri 1db01f1b5f naming fix 2015-11-19 16:38:37 +02:00
yuri d9a134bb3a logo refactoring 2015-11-19 15:09:11 +02:00
yuri 1cb762fae7 map field 2015-11-19 11:25:33 +02:00
yuri 16e57e38a3 fix image preview 2015-11-18 17:38:21 +02:00
yuri 42cb6fff5c navigate through image attachments 2015-11-18 16:55:01 +02:00
yuri 55239615ef email trash 2015-11-18 12:45:47 +02:00
yuri 6083531c4a record list changes 2015-11-18 12:45:07 +02:00
yuri 65cae656c3 fix stream note rowActions 2015-11-18 10:43:17 +02:00
yuri ab928c56ad list view improvement: keep selection after return 2015-11-17 17:15:58 +02:00
yuri 884a135397 email is read fix 2015-11-17 16:54:28 +02:00
yuri da2baec89d improve list layout load 2015-11-17 16:03:29 +02:00
yuri 59dfa99ff3 inbound email: addAllTeamUsers field 2015-11-17 15:44:50 +02:00
yuri e15c748470 ics cleanup 2015-11-17 12:12:07 +02:00
yuri 51fc8ac9b1 fix linkMultiple field 2015-11-17 12:08:12 +02:00
yuri a4c0d7874f link fields create attributes 2015-11-17 11:46:26 +02:00
yuri 2f62a455a3 email: change list layout 2015-11-16 18:41:40 +02:00
yuri a7a3d8a0a7 fix record tree 2015-11-16 17:40:36 +02:00
yuri 1a7774341a fix 2015-11-16 17:33:51 +02:00
yuri 0d4565962f email template editQuick is wide 2015-11-16 17:28:05 +02:00
yuri a2ff2e2f5e Email: show replied field after reply 2015-11-16 17:22:07 +02:00
yuri b038a9449f Email Template: one-off field added 2015-11-16 16:52:14 +02:00
yuri 160d10c5d1 opt out in ui 2015-11-16 13:11:29 +02:00
yuri 4eb842d37d fix linkMultiple edit html 2015-11-16 12:47:30 +02:00
yuri 7fd78a71fd cleanup 2015-11-16 12:45:41 +02:00
yuri 88fb06d982 fix documents 2015-11-16 12:43:20 +02:00
yuri c8a208db4b documents: account panel by default 2015-11-16 12:27:38 +02:00
yuri 2aaec4ea99 documents navigation fix 2015-11-16 12:22:05 +02:00
yuri b64c897f33 email template filters 2015-11-13 16:52:59 +02:00
yuri 64bf4b8296 change order of email dropdown 2015-11-13 16:35:25 +02:00
yuri 52bb6d10be sort email templates by date created 2015-11-13 15:32:53 +02:00
yuri 3527abb171 tagetLists field for Account 2015-11-13 12:08:41 +02:00
yuri 8bdbac85a8 configurable notification sound 2015-11-13 11:46:10 +02:00
yuri 13eb8630ca try catch for email sendings 2015-11-12 17:47:43 +02:00
yuri e749ec6943 Merge branch 'hotfix/3.8.1' 2015-11-12 15:29:36 +02:00
yuri c0d0c72392 fix email filter 2015-11-12 15:29:25 +02:00
yuri f1834147c7 is on of filter 2015-11-12 12:21:33 +02:00
yuri e044d34abd entity manager: dont allow to change linkMultipleField if not custom 2015-11-12 10:37:20 +02:00
yuri bfcc5b0b14 spelling fix 2015-11-11 17:42:04 +02:00
yuri 7a5b3b23e6 varchar filters added 2015-11-11 16:50:15 +02:00
yuri 9e15565227 linkMultiple in Entity Manager 2015-11-11 15:21:18 +02:00
yuri 79e6befdf4 commit fix link manager view 2015-11-11 11:06:47 +02:00
yuri 07ff4cb3d1 refactoring and modal fix 2015-11-11 10:41:08 +02:00
yuri 961a5bb8a0 entityManager relationName 2015-11-10 18:26:10 +02:00
yuri bf5f0e0e7f cleanup 2015-11-10 16:15:05 +02:00
yuri 329f05fd5b email attachment encoded fix 2015-11-10 12:42:57 +02:00
yuri 2661511bbc silent email notification param 2015-11-10 11:46:55 +02:00
yuri cea3c8609b email failed 2015-11-10 10:40:35 +02:00
yuri 35cbbb06ce remove stream from default tabList 2015-11-10 10:31:02 +02:00
yuri 1383a5d5da fix warning 2015-11-10 10:30:14 +02:00
yuri 67857ef93c fix warning 2 2015-11-09 17:07:56 +02:00
yuri f93cc5b472 fix warning 2015-11-09 17:06:19 +02:00
yuri e9df433b27 gruntfile fix 2015-11-09 15:59:37 +02:00
yuri dc300dbbe0 mass email schedule each hour 2015-11-09 12:20:09 +02:00
yuri c6b905d503 fix import rn 2015-11-09 11:38:07 +02:00
yuri 73c1cc40eb version 2015-11-06 11:36:53 +02:00
yuri 38cf2d8500 email: change row-action 2015-11-05 17:20:39 +02:00
yuri 747c7742da email improvements: isUsers field 2015-11-05 16:57:08 +02:00
yuri 5365818d82 fix show/hide fields 2015-11-05 16:07:18 +02:00
yuri eddc32ebd7 fix bad comments 2015-11-05 16:01:40 +02:00
yuri 7ae41e414b email selectManager changes 2015-11-05 15:56:42 +02:00
yuri 6572d2a998 no disconnect for smtp 2015-11-05 11:39:43 +02:00
yuri 6a2314060f force to close sockets for emails 2015-11-05 11:20:24 +02:00
yuri 6a5e22eaa0 cleanup 2015-11-04 17:10:47 +02:00
yuri 98f77041e8 cleanup 2015-11-04 17:09:11 +02:00
yuri 5fb0ddb1d2 fix in export 2015-11-04 16:24:52 +02:00
yuri 7bfedff3c8 export refactor 2015-11-04 16:23:48 +02:00
yuri cc364bc088 summernote insertText 2015-11-04 15:25:51 +02:00
yuri 81fd286834 trim 2015-11-04 12:05:52 +02:00
yuri 7d3af14f4d date sent for inbound email 2015-11-04 11:41:39 +02:00
yuri 37f5244790 fix warning in language 2015-11-04 11:02:54 +02:00
yuri 61fd827dca email template label fix 2015-11-04 10:58:44 +02:00
yuri de68abfbb4 license 2015-11-04 10:56:15 +02:00
yuri 03ecfdb805 fix lang 2015-11-04 10:55:22 +02:00
yuri 2061bf68af Merge branch 'master' of https://github.com/espocrm/espocrm 2015-11-03 17:25:09 +02:00
yuri 79f9aae744 Merge branch 'hotfix/3.7.5' 2015-11-03 17:24:43 +02:00
yuri d6fe7b59eb fix campaign statistics 2015-11-03 17:24:37 +02:00
yuri 7287854cc0 silent and noStream 2015-11-03 15:43:44 +02:00
Yuri Kuznetsov dd5a395061 Merge pull request #64 from PanuWeb/translateES
Updated Spanish translation
2015-11-03 10:21:33 +02:00
PanuWeb da1b92fdd4 Complete missing translations. 2015-11-02 18:48:38 -03:00
PanuWeb f1f23b37c4 Improved some translations. 2015-11-02 18:30:58 -03:00
yuri fea5669078 improve navigate 2015-10-30 17:57:56 +02:00
yuri 9fb88a6b92 changes for navigation buttons 2015-10-30 17:48:48 +02:00
yuri 3eb6648d2b prevNextButtons in detail view 2015-10-30 17:30:01 +02:00
yuri 7e8f0db610 change lang 2015-10-30 12:26:51 +02:00
yuri 6c57d9c658 fix calendar ratio 2015-10-30 12:24:47 +02:00
yuri bc3e873ef7 upgrade fullcalendar 2015-10-30 12:00:10 +02:00
yuri 50105087cc stream filters and panel filters 2015-10-30 11:41:29 +02:00
yuri f3406f1fcd stream filters 2015-10-30 11:17:29 +02:00
yuri 8e105205a4 fix small 2015-10-29 16:43:42 +02:00
yuri 6a496be1fa exportSkipFieldList 2015-10-29 15:50:24 +02:00
yuri ecc6e9f4ec restrict access to mention 2015-10-29 15:20:55 +02:00
yuri deee30eb3e entity manager: no stream for user 2015-10-29 11:26:50 +02:00
yuri c92ba7f8f6 stream tab 2015-10-29 11:20:47 +02:00
yuri 5f46b2f74a user stream 2015-10-29 11:03:32 +02:00
yuri 5c642f93e9 notifications about post to all 2015-10-28 17:33:52 +02:00
yuri 915c58e9ab revert comment 2015-10-28 17:28:19 +02:00
yuri ff437c204f notifications about post 2015-10-28 17:27:42 +02:00
yuri e25bfbf1d7 license fix 2015-10-28 16:39:05 +02:00
yuri ab4e16e9e7 post to users 2015-10-28 16:22:07 +02:00
yuri d60d8bdcae user stream 2015-10-28 12:19:49 +02:00
yuri a1f641af7a stream post for user 2015-10-28 11:17:38 +02:00
yuri 5cae8f359a fix installer jquery 2015-10-27 17:39:26 +02:00
yuri 19e10aa748 stream post 2015-10-27 17:12:27 +02:00
yuri 0e24774fb9 stream post 2015-10-27 16:14:46 +02:00
yuri 31d31fca73 fix strem acl 2015-10-27 12:48:59 +02:00
yuri f874aed44f stream post client 2015-10-27 12:37:58 +02:00
yuri 04ce825191 stream post 2 2015-10-26 17:14:33 +02:00
yuri 516f2218d4 stream post 2015-10-26 12:54:59 +02:00
yuri 3cbf1447c9 Merge branch 'hotfix/3.7.5' 2015-10-26 11:10:22 +02:00
yuri 1c3ca4aa5a fix vertical navbar scroll 2015-10-26 11:09:57 +02:00
yuri 143ab06a74 error messages 2015-10-26 10:44:38 +02:00
yuri c9609bf707 stream internal posts 3 2015-10-23 16:28:28 +03:00
yuri 291380c6b4 stream internal posts 2 2015-10-23 15:55:49 +03:00
yuri 74edceaf67 stream internal posts 1 2015-10-23 14:59:22 +03:00
yuri 84754077c5 calendar scope list configuranle 2015-10-22 17:12:34 +03:00
yuri e2dae62fa9 fix panel filters 2015-10-22 15:50:37 +03:00
yuri e0d475e2da fix panel filters 2015-10-22 15:50:09 +03:00
yuri 02cdf522f6 campaign tooltips 2 2015-10-22 15:01:00 +03:00
yuri 8345307760 campaign tooltips 2015-10-22 14:59:36 +03:00
yuri 888bb9d3db Merge branch 'hotfix/3.7.4' 2015-10-22 11:35:50 +03:00
yuri 0a0f8da2f4 fix auth for 5.5 2015-10-22 10:41:07 +03:00
yuri bb5d5a0ccf text filter default search by email address 2015-10-21 17:14:57 +03:00
yuri 1bd5eac103 ver 2015-10-21 10:09:21 +03:00
yuri 61957e628b fix optOut 2015-10-21 10:07:15 +03:00
yuri 97aab07d77 merge 2015-10-20 17:55:54 +03:00
yuri c5296bf906 typo 2015-10-20 17:52:26 +03:00
yuri 707f1a0b5c fix typo 2015-10-20 17:48:41 +03:00
yuri 5ffa68bee1 Merge branch 'hotfix/3.7.4' 2015-10-20 17:38:11 +03:00
yuri a16919f10b fix typo 2015-10-20 17:38:04 +03:00
yuri 7050757e4e fix campaign type 2015-10-20 17:22:52 +03:00
yuri cbd7ef4737 merge 2015-10-20 15:48:48 +03:00
yuri d27e9c91e7 import: dont import if no fields 2015-10-20 15:47:42 +03:00
yuri 5e1c7bce33 leads actual filter 2015-10-20 15:38:25 +03:00
yuri a23ac54da0 email template: translate enum 2015-10-20 15:32:01 +03:00
yuri 260c050f36 fix email address 2 2015-10-20 13:01:14 +03:00
yuri fc5c07927f fix email address case 2015-10-20 12:57:42 +03:00
yuri d321f0d701 email invitees duplicates 2015-10-20 12:32:50 +03:00
yuri dddedcf088 Merge branch 'hotfix/3.7.4' 2015-10-20 12:27:13 +03:00
yuri 95cbc138f7 meeting/call/task and converted leads 2015-10-20 12:27:05 +03:00
yuri 395063ea35 order global search 2015-10-20 11:42:16 +03:00
yuri 835f95eb52 email template list layout 2015-10-20 11:29:05 +03:00
yuri c0f6c91a0e fix email draft 2015-10-20 11:26:09 +03:00
yuri b410d0e66f todays task 2015-10-19 17:43:32 +03:00
yuri 52853a4dc4 Merge branch 'stable' 2015-10-19 16:18:24 +03:00
yuri d04f72cfd8 vers 2015-10-19 16:14:44 +03:00
yuri a9203b8e22 fix global search 2015-10-19 16:13:52 +03:00
yuri 31c7fdcfa6 manual merge 2015-10-19 15:37:41 +03:00
yuri e89c7c9328 email filter improvement 2015-10-19 15:36:22 +03:00
yuri 7808865080 import csv label 2015-10-19 15:27:09 +03:00
yuri 5283d1b6ae Merge branch 'master' of https://github.com/espocrm/espocrm 2015-10-16 17:20:47 +03:00
yuri da6546779a Merge branch 'hotfix/3.7.3' 2015-10-16 17:20:25 +03:00
yuri 404e2de3b6 fix email isRead 2015-10-16 17:19:51 +03:00
Yuri Kuznetsov 9ba2611f3f Update README.md 2015-10-16 14:22:49 +03:00
yuri f02dabc540 industry list 2015-10-16 13:50:42 +03:00
yuri c29da46a97 fix client side access denied 2015-10-16 13:07:37 +03:00
yuri b7702d2418 order fields in entity manager 2015-10-16 12:40:15 +03:00
yuri 2bc56db4c6 fix edit view link to detail 2015-10-16 12:33:59 +03:00
yuri dd0ef5455e fix 2015-10-16 10:40:45 +03:00
Yuri Kuznetsov 7cffefff1c Update README.md 2015-10-15 12:50:19 +03:00
yuri a8396df12a Merge branch 'hotfix/3.7.2' 2015-10-15 12:06:44 +03:00
yuri 901bee6d3f fix campaign 2015-10-15 11:52:25 +03:00
yuri 3375eff719 Merge branch 'hotfix/3.7.2' 2015-10-14 15:13:59 +03:00
yuri 72a0415207 fix orderBy by alias 2015-10-14 13:03:08 +03:00
yuri de69652137 fix id in model.set 2015-10-14 11:35:21 +03:00
yuri f6b696aad6 Merge branch 'master' of https://github.com/espocrm/espocrm 2015-10-13 15:57:43 +03:00
yuri e7018965c9 ajaxCall and Import not Duplicate 2015-10-13 15:57:30 +03:00
Yuri Kuznetsov 126eaed2ca Merge pull request #62 from PanuWeb/translateES
Spanish translations - es_ES (Complete)
2015-10-12 16:40:59 +03:00
yuri 8916b5eca8 Merge branch 'hotfix/3.7.2' 2015-10-12 15:17:43 +03:00
yuri dda34dce5f notImportable linkMultiple 2015-10-12 10:45:33 +03:00
yuri 1cd2d6b35e target lists field not importable 2015-10-12 10:43:50 +03:00
yuri 9888ec8a6f fix global searct 2015-10-12 10:30:16 +03:00
PanuWeb e2d5592d0a Spanish translations - es_ES (Complete) 2015-10-10 14:37:31 -03:00
PanuWeb 242d1fcfe5 Spanish translations - es_ES (90/100) 2015-10-10 13:32:46 -03:00
PanuWeb 77b0ebfa76 Spanish translations - es_ES (80/100) 2015-10-09 22:24:24 -03:00
yuri ea5321577a fix target list import 2015-10-08 17:55:48 +03:00
yuri 89508ccc3e change email labels 2015-10-08 10:54:33 +03:00
yuri 24d80f86e5 Merge branch 'hotfix/3.7.2' 2015-10-07 16:53:34 +03:00
yuri 23c772e029 fix config 2015-10-07 16:53:22 +03:00
yuri e0b6c2cf6f Merge branch 'hotfix/3.7.2' 2015-10-07 15:00:31 +03:00
yuri e67387d9ea additionalSelectColumns 2015-10-07 15:00:03 +03:00
yuri aac356d2a3 Merge branch 'hotfix/3.7.2' 2015-10-07 12:22:21 +03:00
yuri 2156094407 cleanup 2015-10-07 12:21:59 +03:00
yuri 54a6bc9c87 Merge branch 'hotfix/3.7.2' 2015-10-07 12:18:10 +03:00
yuri 03d5bf1ef2 tree impr 2015-10-07 12:18:01 +03:00
yuri b12b3895ec Merge branch 'hotfix/3.7.2' 2015-10-07 12:08:21 +03:00
yuri 42f57409c8 list tree imp 2015-10-07 12:08:11 +03:00
yuri 69d7ce408d fix preferences layout 2015-10-07 11:24:52 +03:00
yuri 15b3c0440c lead converted panel change 2015-10-07 10:56:56 +03:00
yuri e1f0715c4d email import: relate to converted entity if lead is converted 2015-10-07 10:35:07 +03:00
yuri 15aec72e97 fix double quick view 2015-10-07 10:33:47 +03:00
yuri 66eade5db7 v 2015-10-07 10:20:37 +03:00
yuri ea733bb48e versuin 2015-10-07 10:05:31 +03:00
yuri 83d9d1d924 campaign statystic percentage 2015-10-06 13:19:30 +03:00
yuri 5935bb012d stream entity type capitalized 2015-10-06 12:05:34 +03:00
yuri 48139b2be8 fix nl_NL 2015-10-06 11:52:36 +03:00
yuri 415babde64 excluding target list 2015-10-06 11:28:57 +03:00
yuri f5f5f46c75 unsubscribe entirely 2015-10-05 14:58:45 +03:00
yuri 3d89e25349 label 2015-10-05 14:36:52 +03:00
yuri 1f57a01d5d linkMultiple field for search 2015-10-05 14:34:16 +03:00
yuri 7c890aa83a fix empty tablist 2015-10-02 17:23:02 +03:00
yuri 62a29c86ab fix record controller 2015-10-02 15:27:34 +03:00
yuri bd57b6bb8e detailLayout param 2 2015-10-02 15:10:13 +03:00
yuri 9ab1d16ea0 detailLayout param 2015-10-02 15:09:39 +03:00
yuri 435aa28ca2 iconHtml for menu items 2015-10-01 13:11:05 +03:00
yuri 4bd375f154 fix notice 2015-09-30 17:22:15 +03:00
yuri d6521f9176 de_DE 2015-09-30 15:07:20 +03:00
yuri f8e0e4955a fix meeting onlymy 2015-09-30 15:06:34 +03:00
yuri 7957359c15 fix prev 2015-09-30 11:41:53 +03:00
yuri bdc3731b9a fix select manager 2015-09-30 11:39:11 +03:00
yuri 6b8af1220b opp lost filter 2015-09-30 10:24:39 +03:00
yuri 58fffeaa84 fix typo 2015-09-29 17:56:35 +03:00
yuri 5806785286 fix email notification dups 2015-09-29 11:56:15 +03:00
yuri 2f2d9b5f6f fix roles 2015-09-29 10:27:02 +03:00
yuri 5af20c1ee0 merge targetLists 2015-09-28 16:41:28 +03:00
yuri 7620be3b40 ve 2015-09-28 14:26:20 +03:00
yuri 86f591b409 trim emails when search 2015-09-28 11:18:12 +03:00
yuri 533dfe24d0 default dashlet options 2015-09-28 11:08:13 +03:00
yuri 10c51dc46e target lists panels 2015-09-28 10:55:58 +03:00
yuri a9d24a1e09 fix mass update 2015-09-28 10:45:30 +03:00
yuri 0cfe093701 fix german language 2015-09-28 10:29:50 +03:00
yuri 11ec99fe6a duplicate email template 2015-09-28 10:26:59 +03:00
yuri b07e5a6da2 campaign list layout 2015-09-28 10:24:10 +03:00
yuri 151738f896 fix tracking img 2015-09-28 10:23:20 +03:00
yuri 075a370e7a fix log opened 2015-09-25 16:46:55 +03:00
yuri e7aa147b90 fix import 2015-09-25 15:41:38 +03:00
yuri 2e988fab6d css fiux 2015-09-25 14:51:56 +03:00
yuri b38e03a53a cleanup 2015-09-25 11:32:17 +03:00
yuri 68e01f9e6f fix backbone id 2015-09-25 11:25:24 +03:00
yuri 4d32955e28 wysywyg field 2015-09-24 17:30:39 +03:00
yuri 13a2aa7f03 decrease wysywyg height 2015-09-24 17:17:17 +03:00
yuri ac91087b82 header menu improvements 2015-09-24 12:55:47 +03:00
yuri 57a4a30402 updade history panel on activities changes 2015-09-24 12:26:27 +03:00
yuri dd3ee8d69a update backbone and improve list view listening 2015-09-24 12:05:22 +03:00
yuri accbc9582e add email settings 2015-09-24 10:47:26 +03:00
yuri 4a2845d7a5 showNewRecords stream panel 2015-09-23 15:41:13 +03:00
yuri 9b2ae8992f stream fetch new 2015-09-23 15:26:20 +03:00
yuri 1bb0038be8 dont reset filters if primary filter changed 2015-09-23 11:32:38 +03:00
yuri 6c4e73f1c4 created by field in export 2015-09-23 09:53:02 +03:00
yuri 72f5dbea87 created fields in export 2015-09-23 09:52:10 +03:00
yuri aeb8411695 de_DE 2015-09-23 09:49:47 +03:00
yuri df6db9bd47 changes in mass email 2015-09-22 16:26:13 +03:00
yuri ab17044da9 grunt 2015-09-22 15:41:38 +03:00
yuri 7356bd98ab fix filter 2015-09-22 13:23:44 +03:00
yuri a631e52f63 fix usubscribe email link 2015-09-22 12:50:23 +03:00
yuri b925100df7 fix importer 2015-09-22 12:49:47 +03:00
yuri eeba65440c email template info 2015-09-22 11:46:02 +03:00
yuri 95f72933a4 fix header menu 2015-09-22 11:28:20 +03:00
yuri 4b03e74662 update zend 2015-09-22 10:27:20 +03:00
yuri b316eeb3eb fix attachment download 2015-09-21 18:44:03 +03:00
yuri 53e6904ce1 fix campaign 2015-09-21 12:38:26 +03:00
yuri e2b9647cf1 not render list after sync if modal is opened 2015-09-21 12:02:50 +03:00
yuri 1145406531 remove queue after mass email remove 2015-09-21 11:41:14 +03:00
yuri 9ce65c9a2b fix email account 2015-09-18 17:20:43 +03:00
yuri 2ec1db8379 refactor select manager 2 2015-09-18 17:19:23 +03:00
yuri 8074baef56 activities dashlet 2015-09-18 15:44:19 +03:00
yuri 4584211c04 select manager refactoring 2015-09-18 13:51:00 +03:00
yuri 290099641b dont show declined meetings/calls in only my 2015-09-18 12:00:49 +03:00
yuri d0c3044e8e dont show declined in calendar 2015-09-18 11:58:44 +03:00
yuri 4e983ff440 user calendar 2015-09-17 17:38:48 +03:00
yuri 9aba8b0d8f format address in js 2015-09-17 15:26:08 +03:00
yuri ee6ef6694f custom tab list 2015-09-17 15:01:11 +03:00
yuri 8330137c4e fixes with assignment in mass update and autopopulate 2015-09-17 13:18:05 +03:00
yuri bd420ad963 clear roles cache on team change 2015-09-17 12:18:12 +03:00
yuri e03bedf439 job improvement 2015-09-17 11:46:05 +03:00
yuri 5cba246bb2 improve link 2 2015-09-17 11:21:26 +03:00
yuri 3490c16285 link select improvements 2015-09-17 11:19:33 +03:00
yuri 957fda9e8e clear cache if user changed roles 2015-09-17 11:00:21 +03:00
yuri b940adc341 clear roles cache after role change 2015-09-17 10:46:18 +03:00
yuri f44a093ea9 acl for activities 2015-09-16 15:53:21 +03:00
yuri 0b6dc1ff5f acl attendees 2015-09-16 15:41:28 +03:00
yuri 907eb5feb5 opted out remove 2015-09-16 15:17:14 +03:00
yuri 17a339c318 target list no remove 2015-09-16 14:24:49 +03:00
yuri 3bea161618 tooltip 2015-09-16 12:50:57 +03:00
yuri b39a4a3624 track opened 2015-09-16 12:46:28 +03:00
yuri 2530d13d25 mass email test send 2015-09-16 12:26:19 +03:00
yuri 67e152c923 mass email dev 2015-09-15 15:38:58 +03:00
yuri 4934d4ad95 cleanup 2015-09-15 15:17:34 +03:00
yuri 9a072949fd lead listSmall change 2015-09-15 15:15:55 +03:00
yuri 6e5f8676a1 campaign dev 2015-09-15 14:59:03 +03:00
yuri 5a52484295 panel filters 2015-09-15 12:41:30 +03:00
yuri a3338b0db7 mass email dev 2015-09-15 11:40:27 +03:00
yuri d212d4a193 dev 2015-09-11 17:45:49 +03:00
yuri e3f9a0f607 dev 2015-09-11 17:02:01 +03:00
yuri 91b7635d26 dev 2015-09-11 16:47:50 +03:00
yuri 532581cb50 small change 2015-09-11 11:47:19 +03:00
yuri 9b4a3a8ca9 fix lang 2015-09-11 11:43:01 +03:00
yuri 564c397258 Merge branch 'hotfix/3.6.3' 2015-09-11 11:27:45 +03:00
yuri 22e81898c0 fix external account 2015-09-11 11:27:30 +03:00
yuri ec863fe09a dev 2015-09-11 11:25:11 +03:00
yuri cb9a1d31d8 email account readOnl 2015-09-11 11:05:00 +03:00
yuri 0e8d0495a9 dev 2015-09-10 17:58:03 +03:00
yuri fa19e5ebce dev 2015-09-10 17:27:27 +03:00
yuri b67e8960fa Merge branch 'hotfix/3.6.3' 2015-09-10 11:02:06 +03:00
yuri 6efd697a1e fix email import counter 2015-09-10 10:57:48 +03:00
yuri a9379dcf0a Merge branch 'hotfix/3.6.3' 2015-09-10 10:41:44 +03:00
yuri 9798f399bd fix import time 2015-09-10 10:41:37 +03:00
yuri a520510f9b Merge branch 'hotfix/3.6.3' 2015-09-10 10:36:21 +03:00
yuri fbfe82870f fix import dates 2015-09-10 10:36:00 +03:00
yuri 3b668f4dbd dev 2015-09-10 10:22:19 +03:00
yuri 62eb54d853 dev 2015-09-09 17:03:37 +03:00
yuri 81335454fd fix insert template 2015-09-09 17:03:32 +03:00
yuri 1b33221fc1 autoincrement field change 2015-09-09 09:49:01 +03:00
yuri 152c96838f detailSmall layouts changes 2015-09-09 09:42:18 +03:00
yuri f78af9b204 dev 2015-09-08 17:51:00 +03:00
yuri 302b9e759f campaign log acl 2015-09-08 17:29:00 +03:00
yuri dab7e329df dev 2015-09-08 17:22:36 +03:00
yuri 6a93fe77ca dev 2015-09-08 15:56:00 +03:00
yuri 0e21a9bf91 dev 2015-09-08 15:18:44 +03:00
yuri 723f504a56 dev 2015-09-08 12:21:49 +03:00
yuri 121b324532 add activities and tasks actions 2015-09-07 11:21:56 +03:00
yuri c54a4eee95 varchar trim and system emails 2015-09-04 17:17:41 +03:00
yuri 2a03797436 return list fix 2015-09-04 16:11:49 +03:00
yuri 55dc4d1e77 loader change 2015-09-04 15:14:39 +03:00
yuri cb51feef48 fix email importer 2015-09-04 13:24:28 +03:00
yuri e75c957aad Merge branch 'hotfix/3.6.3' 2015-09-04 12:42:27 +03:00
yuri e08624fae3 fix preferences controler 2015-09-04 12:42:09 +03:00
yuri e8ac486d4a default select filters 2015-09-04 12:34:30 +03:00
yuri 1ded65b85d fix selectRelatedFilters 2015-09-04 12:14:23 +03:00
yuri 35b2f0e57e fix removeButton 2015-09-04 11:57:58 +03:00
yuri d6ef8e1b33 fix list view return 2015-09-04 11:36:19 +03:00
yuri 118025f646 fix currency 2015-09-03 16:31:41 +03:00
yuri 0888752e2a range fields 2015-09-03 15:59:13 +03:00
yuri df5177a565 activities panel change 2015-09-03 12:15:45 +03:00
yuri 3f03770b6e refactor activities service 2015-09-03 11:59:19 +03:00
yuri 27ebac0722 app status styles 2015-09-03 11:25:09 +03:00
yuri e5b46bc547 email replyTo 2015-09-03 11:05:20 +03:00
yuri 468a236ce1 fix edit layout column 2015-09-02 15:40:18 +03:00
yuri 6fda3dd147 mass update layout fix 2015-09-02 15:17:09 +03:00
yuri 9f0705c82d pass event obj to actions 2015-09-02 14:02:48 +03:00
yuri 0ab0de2371 fix linkMultipeCategoryTree 2015-09-02 13:18:47 +03:00
yuri ba7d79ef39 Merge branch 'master' of https://github.com/espocrm/espocrm 2015-09-02 11:56:39 +03:00
yuri c0e51d85b5 vertical theme width 2015-09-02 11:56:30 +03:00
yuri 80334d59ff back route and isReturn 2015-09-02 11:20:00 +03:00
yuri 759ad1a8d3 rename scheduled job 2015-09-02 10:05:44 +03:00
yuri 7c569d3880 fix global search padding 2015-09-02 10:03:14 +03:00
yuri 7b21b82a2e email to case fix 2015-09-02 10:00:15 +03:00
yuri 5e86c5da8c list view return imporovement 2015-09-02 09:40:17 +03:00
Yuri Kuznetsov 9998f82596 Update README.md 2015-09-01 21:42:29 +03:00
Yuri Kuznetsov 9cb3f5fb3a Update README.md 2015-09-01 21:40:40 +03:00
yuri dcce3335cd returnDispatchParams 2015-09-01 16:30:41 +03:00
yuri 5f9b4d99f3 list view stored 2015-09-01 16:02:39 +03:00
yuri a6f4111383 automatically accept meeting/call for current user 2015-09-01 12:58:37 +03:00
yuri 569180ed86 email important 2015-09-01 12:31:08 +03:00
yuri f9cc21a06d import update 2015-08-31 15:19:09 +03:00
yuri e5ad31a965 prevent loop 2015-08-31 12:24:46 +03:00
yuri 5252d63260 lastXDays and nextXDays filters 2015-08-31 12:10:44 +03:00
yuri a9fea0b9f5 change default jobs 2015-08-31 11:27:45 +03:00
yuri cee91eb6af email replied 2015-08-31 11:23:39 +03:00
yuri c61765cc31 Merge branch 'hotfix/3.6.3' 2015-08-28 15:50:28 +03:00
yuri 03d3884bf4 follow fix 2015-08-28 15:50:09 +03:00
yuri cb01caddd3 Merge branch 'hotfix/3.6.2' 2015-08-28 14:30:56 +03:00
yuri 725a2be959 fix resize 3 2015-08-28 14:30:17 +03:00
yuri 45d2cec423 Merge branch 'hotfix/3.6.2' 2015-08-28 14:24:41 +03:00
yuri 08b576105c fix nav resize 2 2015-08-28 14:24:27 +03:00
yuri 6d86c65ea6 Merge branch 'hotfix/3.6.2' 2015-08-27 17:13:01 +03:00
yuri 0e19fe087b fix email restricted appearance 2015-08-27 17:12:42 +03:00
yuri 2571f967b7 displayTotalCount option 2015-08-27 16:04:21 +03:00
yuri a93d5a0678 change email filter descriptipon 2015-08-27 16:00:21 +03:00
yuri be1647548a email filters final 2015-08-27 15:50:49 +03:00
yuri 91571fa47c fix readOnly and create 2015-08-27 15:43:05 +03:00
yuri cf3220581f Merge branch 'hotfix/3.6.2' 2015-08-27 15:29:37 +03:00
yuri 44ddf9b400 fix acl manager 2015-08-27 15:29:30 +03:00
yuri 99b4f7eb5c email filters dev 2015-08-27 15:28:36 +03:00
yuri 803111b12f Merge branch 'hotfix/3.6.2' 2015-08-27 12:17:35 +03:00
yuri 9509d00fd4 readOnlyDisabled option 2015-08-27 12:16:53 +03:00
yuri 70eb562400 fix user limit 2015-08-27 12:04:10 +03:00
yuri 2ceb686198 Merge branch 'hotfix/3.6.2' 2015-08-27 10:29:33 +03:00
yuri 6f89a01c50 convert lead improvements 2015-08-27 10:29:07 +03:00
yuri 2d85106a1f dont error 500 if try to follow entity w/o stream 2015-08-27 10:10:41 +03:00
yuri cefe304c2f filters 2 2015-08-26 16:30:45 +03:00
yuri cbe4f0009b Merge branch 'hotfix/3.6.2' 2015-08-26 12:09:12 +03:00
yuri a9cad90a02 hack issue with user theme and not rendered css 2015-08-26 12:07:53 +03:00
yuri 597d83c6f7 version 2015-08-25 16:18:16 +03:00
yuri cbc3c3e921 fix theme 2015-08-25 16:17:03 +03:00
yuri 2d1aa77ddc email filter 2 2015-08-25 16:16:12 +03:00
yuri 5357061d52 campaign lead created change 2015-08-25 10:30:52 +03:00
yuri 13b7db63d0 add createdBy filters 2015-08-25 09:40:22 +03:00
yuri 62b0020c67 email filters dev 2015-08-24 17:33:43 +03:00
yuri 4512dfd420 refactor acl and assigmnent permissions, email filter entity 2015-08-24 16:50:54 +03:00
yuri b1303cb50e rename hasAttachments 2015-08-24 15:07:47 +03:00
yuri 3facbc782b Merge branch 'hotfix/3.6.2' 2015-08-24 14:50:05 +03:00
yuri cdcaf7cd24 fix auth tokens 2015-08-24 14:49:53 +03:00
yuri dae249e4b2 Merge branch 'hotfix/3.6.2' 2015-08-24 12:10:29 +03:00
yuri ce782ab8bd de_DE 2015-08-24 12:10:18 +03:00
yuri 2497ab6a5e hasAttachments icon 2015-08-24 12:03:40 +03:00
yuri 2d00b27fb6 translatedOptions param 2015-08-24 11:48:45 +03:00
yuri 8d179aa719 version 2015-08-20 15:36:41 +03:00
yuri 6688e19789 fix integration 2015-08-20 15:23:52 +03:00
yuri 1db8b94ea7 remove sticked panel 2015-08-20 14:40:16 +03:00
yuri 63a61349ea job name 3 2015-08-20 13:28:37 +03:00
yuri 811066a201 job name 2015-08-20 13:27:47 +03:00
yuri 0b547c26a2 fix jobs 2015-08-20 13:17:30 +03:00
yuri 15497b96d1 change colors 2015-08-20 12:11:14 +03:00
yuri 9c3cf0b8dd rename theme 2015-08-20 12:00:30 +03:00
yuri eeaff7ac9d css fix 2015-08-20 11:54:35 +03:00
yuri 17e48c4e9f fix create 2015-08-20 11:02:23 +03:00
yuri 4a878c73be lang 2015-08-20 10:49:59 +03:00
yuri f05e41afb6 global search margin 2015-08-18 15:27:24 +03:00
yuri ba8e63c40b fix user 2015-08-18 12:47:42 +03:00
yuri 5d6b9b4785 fix email import 2015-08-18 12:32:45 +03:00
yuri 06c0a59632 fix hookManager 2 2015-08-18 11:19:03 +03:00
yuri f6df48278c fix hookManager 2015-08-18 11:14:51 +03:00
yuri 8207684193 fix grantfile 2015-08-18 10:45:07 +03:00
yuri 49ac186f80 disable isReturn 2015-08-17 17:48:25 +03:00
yuri 4325e1591c return to list and edit attributes fix 2015-08-17 17:43:05 +03:00
yuri 16eb1e0b6d back button 2015-08-17 17:25:32 +03:00
yuri 68668acf57 fix calendar dashlet 2015-08-17 15:42:48 +03:00
yuri 5e5e82d6b6 lang 2015-08-17 15:35:19 +03:00
yuri 8e23ef59a3 lang 2015-08-17 15:34:44 +03:00
yuri 0213064217 fix preset filters dropdown 2015-08-17 12:55:06 +03:00
yuri d360cbcb4b fix restrictedMode check 2015-08-17 11:22:06 +03:00
yuri d1dea478f7 fix email notifications 2015-08-17 10:54:03 +03:00
yuri 778e7b335e request check fixes 2015-08-14 16:54:50 +03:00
yuri 5fc502c6a2 fix install css 2015-08-14 16:40:27 +03:00
yuri ba5bd60931 fix xss in link multiple with role 2015-08-14 16:28:50 +03:00
yuri dfb72bb3e1 lang change 2015-08-14 15:04:20 +03:00
yuri c4880b77e6 layout reset to default 2015-08-14 15:02:32 +03:00
yuri 8aab9d17b1 controller action changes 2015-08-14 13:33:17 +03:00
yuri 205beb068c fix layouts 2015-08-14 12:26:55 +03:00
yuri 80cf2f2e10 fix mavbar css 2015-08-14 12:25:13 +03:00
yuri 5982b27b90 last 7 days filter 2015-08-14 12:12:38 +03:00
yuri d696ca3013 returnUrl for list-edit 2015-08-14 11:46:16 +03:00
yuri 9d10218487 cleanup 2015-08-14 11:42:14 +03:00
yuri b41ef6094a returnUrl for quick edit 2015-08-14 11:40:21 +03:00
yuri 9a9a69ace4 improve navbar for mobile view 2015-08-14 11:28:48 +03:00
yuri 1000139d01 dont fit modal height if window height is small 2015-08-14 09:47:10 +03:00
yuri 129984f4c6 unique joins 2015-08-13 17:42:03 +03:00
yuri d665bc54e0 fix acl 2015-08-13 17:28:21 +03:00
yuri 69b027698d acl global search 2015-08-13 17:24:49 +03:00
yuri 6ffff16f06 global search pagination 2015-08-13 17:22:29 +03:00
yuri 79393f16d3 importove global search 2015-08-13 17:15:07 +03:00
yuri 5821a06f9e fix case 2015-08-13 15:02:28 +03:00
yuri 3eb4cf27f2 case - contact many-to-many 2015-08-13 14:54:31 +03:00
yuri 94c345c386 -sticked 2015-08-13 12:56:33 +03:00
yuri 6fe7853eb7 added new noification type message 2015-08-13 09:44:55 +03:00
yuri c45ea08ab2 cleanup 2015-08-12 17:56:06 +03:00
yuri 04d41e9c86 fix iinsert image 2015-08-12 17:55:19 +03:00
yuri 2850cffc6a audited param 2015-08-12 16:28:12 +03:00
yuri 0cdc15ecaf rel panels filx 2015-08-12 15:13:22 +03:00
yuri ee85ee369b select document filter 2015-08-12 15:08:57 +03:00
yuri 738e56cc63 field manager change 2015-08-12 14:43:11 +03:00
yuri 6b38e1561b fix pre 2015-08-11 16:55:22 +03:00
yuri a56d8b7d1c default layoutSmall change 2015-08-11 16:53:37 +03:00
yuri db6e5ee778 remove sticked from history panel 2015-08-11 15:46:03 +03:00
yuri a0bf1af3d3 mass update for emails 2015-08-11 12:23:44 +03:00
yuri 5b47178162 createDisabled 2 2015-08-11 12:13:57 +03:00
yuri 3f0684c1ea createDisabled 2015-08-11 12:07:19 +03:00
yuri d2bc49755d email address autocomplete 2 2015-08-11 11:52:07 +03:00
yuri 0502c1768b auto complete search by email address 2015-08-11 11:49:14 +03:00
yuri cf7d21db32 keep emails unread 2015-08-11 11:15:16 +03:00
yuri 977fb47efb version 2015-08-10 17:03:31 +03:00
yuri 6c7a3adcdd email fix 2015-08-10 16:45:47 +03:00
yuri 3b22e08840 fix users activities 2015-08-10 16:34:18 +03:00
yuri 8d79524c62 extension.php 2015-08-10 15:37:32 +03:00
yuri 3c70f28dc0 ability to use standartizized view name 2015-08-10 15:00:50 +03:00
yuri 79b37e7047 dashlet row actions 2015-08-10 14:56:06 +03:00
yuri 3050d8b5b5 account history fix 2015-08-10 13:57:44 +03:00
yuri 231a40e4a8 notification entityRemoved 2015-08-10 13:45:01 +03:00
yuri 1f1c87513b set defaults 2015-08-10 12:26:51 +03:00
yuri 910822334e group email accounts 2015-08-10 10:56:51 +03:00
yuri af02d721c3 try catch getMessage 2015-08-10 10:45:08 +03:00
yuri faf7cb9acd lang 2015-08-10 10:33:56 +03:00
yuri 73869d5674 fix link multiple 2015-08-07 17:05:13 +03:00
yuri f60732170e ability to disable field param in entity manager 2015-08-07 16:00:54 +03:00
yuri aecf04a4f8 fix theme and user change 2015-08-07 15:41:06 +03:00
yuri 7a383912c8 system notification 2015-08-07 15:30:50 +03:00
yuri 21c288badf fix theme 2015-08-07 13:26:29 +03:00
yuri 65492ea1dc lead convertion follow 2015-08-07 12:08:58 +03:00
yuri 7fd10104cc task dashlet dont show deferred 2015-08-07 11:39:59 +03:00
yuri ad85c6fa3f lang 2015-08-07 11:18:14 +03:00
yuri e32bf06e4d lang typo 2015-08-07 10:56:26 +03:00
yuri f363d77cb7 max size error message 2015-08-06 17:21:40 +03:00
yuri 8986b6f426 campaign budget 2015-08-06 16:24:48 +03:00
yuri 8b35c064c8 sacura vertical theme 2015-08-06 15:05:49 +03:00
yuri da5ea180ab fix login 2015-08-06 14:55:33 +03:00
yuri 3aca557420 fix enum 2015-08-06 13:10:42 +03:00
yuri ea723742c7 theme change 2015-08-06 12:55:32 +03:00
yuri d85675f540 vertical theme 2015-08-06 12:21:00 +03:00
yuri 9b4aeb8e4c vertival theme dev 2015-08-05 18:23:20 +03:00
yuri 2c539b1fe6 jobs link 2015-08-05 16:05:33 +03:00
yuri 5f31e7e148 modal change var names 2015-08-05 15:53:25 +03:00
yuri cc9227910f jobs 2015-08-05 15:49:23 +03:00
yuri 85d8dfe885 change diff 2015-08-05 14:06:33 +03:00
yuri 563179bec7 vertical theme mobile 2015-08-05 13:18:33 +03:00
yuri 386ada05d6 cleanup 2015-08-05 13:02:57 +03:00
yuri 70c2992282 theme in preferences 2015-08-05 12:35:57 +03:00
yuri 36d6483a51 ability to create custom note types 2015-08-05 10:36:27 +03:00
yuri 01039b9881 attachment multiple field 2015-08-05 10:25:45 +03:00
yuri bbd1297302 attachment block 2015-08-05 09:38:41 +03:00
yuri 88c0d8810c css changes 2015-08-05 09:35:19 +03:00
yuri b365bc17db fix record.base 2015-08-05 09:35:12 +03:00
yuri 3f24e64988 fix enum translation 2015-08-04 17:25:23 +03:00
yuri 7a5ce2f4ee fix theme 2015-08-04 17:11:37 +03:00
yuri a410fb903a theme fixes 2015-08-04 16:21:27 +03:00
yuri ba4004d720 theme fix 2015-08-04 16:07:51 +03:00
yuri cdc980c2b6 theme fixes 2015-08-04 15:53:38 +03:00
yuri 3578cc9523 vertical theme 2015-08-04 15:49:35 +03:00
yuri 09ff1d1e5a mobile view collapse fix 2015-08-04 11:29:34 +03:00
yuri 8e4a6ef183 stick panels 2015-08-04 11:13:02 +03:00
yuri 0d111a6bd8 Opportunity listForAccount 2015-08-04 11:08:41 +03:00
yuri 3e503852db translate links 2015-08-04 10:55:23 +03:00
yuri d3fe435115 theme changes 2015-08-04 09:51:07 +03:00
yuri e6a0080c0e vertical theme 2015-08-03 17:06:12 +03:00
yuri b8ddb72d3b color change 2015-08-03 14:45:49 +03:00
yuri 58953ca009 show total count 2015-08-03 14:43:21 +03:00
yuri d4e98155d0 gitignore 2015-08-03 12:28:21 +03:00
yuri 86fabe3352 email: get rid of assigned user 2015-08-03 12:00:06 +03:00
yuri c5ccf8e6da Enum is Sorted 2015-08-03 11:43:49 +03:00
yuri b7e0a0de23 Merge branch 'hotfix/3.5.3' 2015-08-03 11:12:34 +03:00
yuri 9c2a18f0aa indestry options added 2015-08-03 11:11:50 +03:00
yuri aa95f2cf88 change currency field 2015-08-03 11:00:27 +03:00
yuri 8dd7f262a2 color change 2015-07-31 17:22:46 +03:00
yuri b76feba080 remove css 2015-07-31 17:18:57 +03:00
yuri 1b5aea85ba themes 2015-07-31 17:18:24 +03:00
yuri c89c7f5e0e stylesheet 2015-07-31 11:25:58 +03:00
yuri bcaaf539be remove fields from settings 2015-07-31 11:23:06 +03:00
yuri 48f0988373 stylesheet 2015-07-31 11:17:22 +03:00
yuri a0c0d37bfd navbar fix 2015-07-31 10:44:03 +03:00
yuri 9c696fe8d6 navbar fix 2015-07-31 10:43:38 +03:00
yuri 224e3475d8 Merge branch 'hotfix/3.5.3' 2015-07-30 17:05:29 +03:00
yuri 841c5f85bd fix email import 2015-07-30 14:38:23 +03:00
yuri 6745419a4f install lang fix 2015-07-30 11:40:21 +03:00
yuri 6bf9bb875a email address search improvement 2015-07-30 11:12:49 +03:00
yuri d6e1322775 Merge branch 'hotfix/3.5.3' 2015-07-30 10:07:41 +03:00
yuri bb0e97160c fix task layout 2015-07-30 10:00:48 +03:00
yuri 8124ceea6b email import fix 2015-07-29 16:48:53 +03:00
yuri b5cb0c0881 email import fix 2015-07-29 16:43:46 +03:00
yuri 8747ccc105 show error message reason 2015-07-29 15:06:03 +03:00
yuri 8b0147484c userLimit 2015-07-29 13:56:18 +03:00
yuri 233037a1eb adminPanelIframeUrl 2015-07-29 11:16:19 +03:00
yuri 11446ef857 dashlet actions 2015-07-29 10:21:04 +03:00
Taras Machyshyn 4403131235 Merge branch 'hotfix/3.5.3' 2015-07-29 09:47:43 +03:00
Taras Machyshyn 9dde3d0645 Fixed a bug for module orders 2015-07-29 09:46:49 +03:00
yuri 2fcf00ef4f Merge branch 'stable' 2015-07-28 17:52:43 +03:00
yuri 1139cb242b fix dashboard 2015-07-28 17:13:33 +03:00
yuri 796e1894ac added test 2015-07-28 16:03:05 +03:00
yuri 8d15bdab3c fix call layout 2015-07-28 15:11:00 +03:00
yuri e94564b5e7 Merge branch 'hotfix/3.5.2' 2015-07-28 14:38:49 +03:00
yuri 67b56345e6 fix email iOS 2015-07-28 14:36:25 +03:00
yuri 9ac2fe1534 version 2015-07-27 16:39:00 +03:00
yuri 08cf619807 fix attachment acl and bad requests 2015-07-27 16:37:11 +03:00
yuri 380aad2f4d fix import phone 2015-07-27 12:28:33 +03:00
yuri d3a8e57fdf fix loader 2015-07-27 11:58:35 +03:00
yuri c6542c0698 restrictedMode 2015-07-27 11:02:42 +03:00
yuri f74959ab00 fix user layout 2015-07-27 10:48:42 +03:00
yuri 2bb28ac270 Merge branch 'stable' 2015-07-24 17:04:59 +03:00
yuri faf3350aab vesrion 2015-07-24 16:56:28 +03:00
yuri 9fc4e0b06e fix import 2015-07-24 14:58:00 +03:00
yuri 4c3ecf0b3a fix target list 2015-07-24 14:13:43 +03:00
yuri b1a345963d fix email address field 2015-07-24 12:49:44 +03:00
yuri ca64d7c8ec Merge branch 'hotfix/3.5.1' 2015-07-23 16:10:25 +03:00
yuri f62db8b943 fix list 2015-07-23 16:09:51 +03:00
yuri ce2a2a03a3 list changes 2015-07-23 14:50:15 +03:00
yuri d947223b9b fix wysiwyg 2015-07-23 14:41:51 +03:00
yuri b1aea34137 de_DE 2015-07-23 10:45:25 +03:00
yuri ae6d03ce2b update summernote 2015-07-22 14:50:42 +03:00
yuri fa4b459d58 update jquery 2015-07-22 10:52:58 +03:00
yuri 372a8d0d69 upgrade link change 2015-07-21 12:18:25 +03:00
yuri bd413a75a0 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-07-20 14:37:42 +03:00
Taras Machyshyn 9bb0d123d3 Improved russian translation 2015-07-20 12:20:41 +03:00
yuri 59240fb090 entity list editable 2015-07-20 10:42:41 +03:00
yuri 598852484b change email to contact 2015-07-17 16:49:17 +03:00
yuri 18548c515e email address to contact change 2015-07-17 16:43:44 +03:00
yuri 6190017919 cleanup 2015-07-17 12:53:15 +03:00
yuri e49cbcad3f search select text 2015-07-17 11:48:19 +03:00
yuri 2a22b94b95 bull update 2015-07-17 11:41:29 +03:00
yuri 739374de59 improve email address 2015-07-17 11:02:36 +03:00
yuri 03b8041acb email to contact 2 2015-07-16 17:59:26 +03:00
yuri a31df6f2af from email to contact 2015-07-16 17:15:19 +03:00
yuri 64317389a8 clearnup 2015-07-16 15:51:58 +03:00
yuri ab4552d064 fix task panel tabs 2015-07-16 11:46:00 +03:00
yuri 20281f8cbb cleanup 2015-07-16 11:35:55 +03:00
yuri fb7db0f91d fix confirm leaveout 2015-07-15 15:19:02 +03:00
yuri b3b0e9254f task attachments 2015-07-14 16:49:00 +03:00
yuri 03ffc7727d template fields 2015-07-14 13:04:34 +03:00
yuri 59a4f88eeb Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-07-13 17:38:45 +03:00
yuri d504ab8f54 fix email template 2015-07-13 17:38:26 +03:00
Taras Machyshyn 627c167ef7 Added title tranlation for Integration Entity 2015-07-13 17:10:45 +03:00
yuri 656c9b1eee pdf font 2015-07-13 16:57:03 +03:00
yuri 92f319a2d9 template 2015-07-13 15:22:48 +03:00
yuri da1f96595f entity manager fix 2015-07-13 11:25:36 +03:00
yuri 21568efa2c hide template entity 2015-07-13 10:07:14 +03:00
yuri 8a75a5a71b es_ES fix 2015-07-13 10:05:37 +03:00
yuri 012e4d609d fix select related 2015-07-13 10:03:42 +03:00
yuri 5e66d2e2c1 fix save issue 2015-07-10 18:37:58 +03:00
yuri 49ae22e048 public load addition fields 2015-07-10 17:31:42 +03:00
yuri 5d92d14125 fix 2015-07-10 17:19:58 +03:00
yuri b6d52d3c97 template 2015-07-10 17:19:14 +03:00
yuri 7e2d445db8 pdf 2015-07-10 15:59:15 +03:00
yuri 2325ad695f cleanup 2015-07-10 15:55:59 +03:00
yuri c499b06baa Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-07-10 15:48:35 +03:00
yuri a03a512846 remove pdf from lead 2015-07-10 15:48:20 +03:00
yuri 1e6062bd10 update timezone 2015-07-10 14:51:34 +03:00
yuri 2c90558785 fix category loop 2015-07-10 14:40:29 +03:00
Taras Machyshyn f6071bad41 Merge branch 'hotfix/3.4.3' 2015-07-10 12:44:43 +03:00
Taras Machyshyn a09120f39e Merge branch 'hotfix/3.4.3' of ssh://172.20.0.1/var/git/espo/backend into hotfix/3.4.3 2015-07-10 12:42:40 +03:00
Taras Machyshyn 8fb7cbdfcf Espo installation, message error fixes 2015-07-10 12:42:09 +03:00
yuri 3e8da12410 pdf 2015-07-10 12:01:23 +03:00
yuri d60213e93f pdf 2015-07-10 11:45:32 +03:00
yuri 0864f7d604 pdf 2015-07-09 17:57:16 +03:00
yuri 6fb2112e40 pdf 2015-07-09 17:18:27 +03:00
yuri 65bb063c2c fix email template 2015-07-09 16:06:31 +03:00
yuri 75b2c91baa object 2015-07-09 15:49:01 +03:00
yuri 530be71fdd acl: no access if scope is not in acl table 2015-07-09 15:17:07 +03:00
yuri c064b8fa80 template 2015-07-09 14:55:34 +03:00
yuri b2b0ed82e5 test addition 2015-07-09 11:33:36 +03:00
yuri 71a5e1ab22 number 2015-07-09 11:30:56 +03:00
yuri 371b140056 htmlizer\ 2015-07-08 15:40:52 +03:00
yuri 5555383b1e template fix 2015-07-07 16:40:46 +03:00
yuri ffe824e405 remove sent storing from layout 2015-07-07 14:57:42 +03:00
yuri 6586785415 imap sent storing 2015-07-07 13:55:02 +03:00
yuri 8a2554ef28 fix preferences layout 2015-07-07 12:15:28 +03:00
yuri ec2ddc429a version 2015-07-06 10:55:37 +03:00
yuri 1754b8e7b9 fix layouts 2015-07-03 11:16:40 +03:00
yuri 2e20b24d04 fix layouts 2015-07-03 11:14:39 +03:00
yuri 5da3df3cd2 format number fields 2015-07-03 11:02:04 +03:00
yuri 61d428a4a5 int field none 2015-07-03 10:46:45 +03:00
yuri a941f0c5da fix wysiwyg 2015-07-03 10:01:26 +03:00
yuri 199d0a956a detail small 2 columns 2015-07-02 17:25:38 +03:00
yuri 105ec0f441 rename delete 2015-07-02 16:52:50 +03:00
yuri 062effd39a fix imap 2015-07-02 15:57:04 +03:00
yuri 3ac5c71736 update zend 2015-07-02 15:34:12 +03:00
yuri 97d7796f9d improve password change 2015-07-02 15:10:01 +03:00
yuri 8cd4fe5891 stream filter 2015-07-02 12:32:14 +03:00
yuri 77df445c03 signature with template 2015-07-02 10:18:16 +03:00
yuri a510bb4ea0 ddefine 2015-07-01 16:12:24 +03:00
yuri 48883211ee email templates link 2015-07-01 15:58:29 +03:00
yuri 8b77f181da define 2015-07-01 15:51:58 +03:00
yuri 88dbc988ca minified js change 2015-07-01 15:07:44 +03:00
yuri 0ecd387ef8 version 2015-07-01 14:54:56 +03:00
yuri 2c4cc20005 fix shared email 2015-07-01 12:48:04 +03:00
yuri b25c115913 define 2015-07-01 10:34:12 +03:00
yuri e46921ac33 define 2015-06-30 17:10:19 +03:00
yuri dab213ea01 define 2015-06-30 17:01:59 +03:00
yuri 7f058b8591 define 2015-06-30 16:48:49 +03:00
yuri 76cf945d40 define 2015-06-30 14:44:09 +03:00
yuri c5850d18da define changes 2015-06-30 14:39:50 +03:00
yuri 645cdc440c define 2015-06-30 11:41:59 +03:00
yuri 6e910e002e define 2015-06-30 11:26:14 +03:00
yuri cc4de320fd define 2015-06-30 11:14:42 +03:00
yuri 7565492666 define 2015-06-29 16:21:45 +03:00
yuri 878d74bfa5 fix tests 2015-06-29 12:42:48 +03:00
yuri ee2d8b3f00 Merge branch 'hotfix/3.4.3' 2015-06-26 15:31:31 +03:00
yuri ebd35638b2 create/select relation panel hooks 2015-06-26 15:31:02 +03:00
yuri 6372c7a22e panel events fix 2015-06-26 15:25:34 +03:00
yuri a404f7f196 Merge branch 'hotfix/3.4.3' 2015-06-24 12:38:20 +03:00
yuri 0013ca382a fix translateOption 2015-06-24 12:38:11 +03:00
yuri a9c904afa7 Merge branch 'hotfix/3.4.3' 2015-06-24 11:41:31 +03:00
yuri a0be338676 fix variable 2015-06-24 11:41:02 +03:00
yuri 58d0f2bd98 fix followers 2015-06-23 18:12:22 +03:00
yuri 4c92d54119 Merge branch 'hotfix/3.4.3' 2015-06-23 16:17:08 +03:00
yuri 711b2df143 Merge branch 'hotfix/3.4.3' of ssh://172.20.0.1/var/git/espo/backend into hotfix/3.4.3 2015-06-23 16:16:51 +03:00
yuri 0307900942 acl dashlet 2015-06-23 16:14:43 +03:00
yuri 4c60898002 cleanup 2015-06-23 14:41:38 +03:00
yuri 4d350b256b fix fatal 2015-06-23 14:36:40 +03:00
yuri d41704f1b1 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-06-23 11:37:06 +03:00
yuri 5bbb5ee937 fix test connection error msg 2015-06-23 11:36:01 +03:00
yuri 50e825b7a0 layout change 2015-06-23 11:31:40 +03:00
yuri dc036225be fix view helper 2015-06-23 11:29:52 +03:00
Taras Machyshyn c5a8df84f7 Merge branch 'hotfix/3.4.3' 2015-06-23 11:16:41 +03:00
Taras Machyshyn 7ad6c495a6 Improvements 2015-06-23 11:13:21 +03:00
yuri e8c217e468 followed bool filter 2015-06-18 17:17:52 +03:00
yuri 9e32298d42 css 2015-06-17 16:38:00 +03:00
yuri e4d833e49f css 2015-06-17 11:39:49 +03:00
yuri 8505f583f4 css 2015-06-17 11:38:24 +03:00
yuri c1de2d9bd5 fix css 2015-06-16 11:34:11 +03:00
yuri d192e0aabf fix css 2015-06-16 11:25:08 +03:00
yuri fb5b464bf6 fix enum 2015-06-15 12:25:17 +03:00
yuri eb71379562 fix unicode and multi enum storing 2015-06-15 12:17:49 +03:00
yuri b603543537 layouts 2015-06-15 10:22:43 +03:00
yuri 344da24b5e fix stream fetched twice 2015-06-12 14:50:54 +03:00
yuri 23ef028cb4 fix varchar search 2015-06-12 12:06:19 +03:00
yuri 492d4869c2 disable cut param for text 2015-06-12 11:02:02 +03:00
yuri 56e45c32f8 fix draft 2015-06-12 10:24:00 +03:00
yuri cb41c55e7a bottom mode 2015-06-11 16:42:58 +03:00
yuri 7d63eaf3e0 fix bottom panels 2015-06-11 16:34:03 +03:00
yuri 1538b08fd9 version 2015-06-11 14:06:11 +03:00
yuri 82a8914848 fix entity manager 2015-06-11 14:03:28 +03:00
yuri 2d5bf843d5 fix css 2015-06-11 12:22:37 +03:00
yuri f22f6d54aa edit bottom 2015-06-11 12:20:11 +03:00
yuri d609e4f70b fix merge and mass u pdate 2015-06-11 11:49:32 +03:00
yuri 8f56769e14 change document layout 2015-06-11 10:58:04 +03:00
yuri fa5b2da69e change documnts 2015-06-11 10:52:14 +03:00
yuri 937202784d autocomplete category tree 2015-06-11 10:49:34 +03:00
yuri 07424df41a document mass update 2015-06-11 10:47:46 +03:00
yuri e960ac472e version 2015-06-10 17:45:40 +03:00
yuri 84113356b5 fix mass update 2015-06-10 17:45:03 +03:00
yuri 3844946dc0 fix parent 2015-06-10 17:40:14 +03:00
yuri 9ecdf5713c fix create 2015-06-10 17:32:56 +03:00
yuri f1abd22512 fix email template 2015-06-10 15:40:26 +03:00
yuri c963058571 improve field hide/show 2015-06-10 12:04:23 +03:00
yuri 7e264780ec fix acl 2015-06-09 16:29:46 +03:00
Taras Machyshyn 0750a89f74 Ukrainian corrections 2015-06-09 16:07:47 +03:00
Taras Machyshyn 5b52668359 Fixed metadata cache bug 2015-06-09 15:51:23 +03:00
Taras Machyshyn 3c91f8450d Bug fixing 2015-06-09 14:05:01 +03:00
yuri f820168283 Merge branch 'hotfix/3.3.1' 2015-06-09 12:54:37 +03:00
yuri bdb90a0016 Merge branch 'hotfix/3.3.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/3.3.1 2015-06-09 12:54:20 +03:00
yuri 521fa42bf1 fix layout 2015-06-09 12:25:15 +03:00
yuri 1b272ea0c7 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-06-09 12:22:01 +03:00
Taras Machyshyn b055adfd87 Updated composer.lock file 2015-06-09 12:21:46 +03:00
yuri 42ea6e0d7c cleanup 2015-06-09 12:11:17 +03:00
yuri 20b21622ed layout manager improvement 2015-06-09 11:57:11 +03:00
yuri 34c61a2fc5 lang 2015-06-09 10:47:43 +03:00
yuri cf8198dc98 version 2015-06-09 10:31:30 +03:00
yuri c57fd2c55e Merge branch 'master' of https://github.com/espocrm/espocrm 2015-06-08 17:52:57 +03:00
yuri 3669bf4e11 fix modal 2015-06-08 17:29:58 +03:00
yuri b6bbdada06 modal fit height 2015-06-08 17:17:14 +03:00
yuri 804a618408 folders width 2015-06-05 15:27:07 +03:00
yuri a1192474d9 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-06-05 14:53:24 +03:00
yuri dd28642370 setReadOnly form action 2015-06-05 14:53:11 +03:00
Taras Machyshyn b92295cbb1 Installer: added check PHP < 5.4.0 2015-06-05 13:08:47 +03:00
Taras Machyshyn d186cd2b1a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-06-05 12:23:18 +03:00
Taras Machyshyn 9ebee47d5c Orm converter improvements 2015-06-05 12:23:05 +03:00
yuri 3fdc7c8cf7 create button change 2015-06-05 11:10:07 +03:00
Yuri Kuznetsov b298b26bab Merge pull request #53 from alasdaircr/attr-not-empty
Fix ifAttrNotEmpty failing with boolean attributes
2015-06-05 10:17:54 +03:00
Alasdair Campbell 0a38857e64 Fix ifAttrNotEmpty failing with boolean attributes 2015-06-05 00:06:31 +01:00
yuri 2497e9bd88 fix modals 2015-06-04 17:52:24 +03:00
yuri bee44612e5 external account id max length 2015-06-04 11:33:11 +03:00
Yuri Kuznetsov 8946b4ad11 Merge pull request #52 from alasdaircr/post-entrypoints
PATCH: Allow POST entrypoints
2015-06-04 10:10:34 +03:00
Alasdair Campbell d4b78b9977 PATCH: Allow POST entrypoints 2015-06-03 16:12:17 +01:00
yuri f9614385df Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-06-03 16:30:22 +03:00
yuri 7352abebe9 activities control 2015-06-03 16:30:12 +03:00
yuri 5c57b34893 user activities 2015-06-03 15:55:13 +03:00
yuri 0d873b7302 fix campaign fields 2015-06-03 12:41:06 +03:00
yuri ccca6a8f55 fix fullForm link 2015-06-03 11:16:09 +03:00
Taras Machyshyn bad9cc848f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-06-02 17:31:18 +03:00
Taras Machyshyn e3ab16a7bf Merge branch 'hotfix/3.3.1' 2015-06-02 17:31:04 +03:00
Taras Machyshyn 6db068e625 Improve Extension installation 2015-06-02 17:29:58 +03:00
Taras Machyshyn 64b1ac3ccf Rebuild fixes 2015-06-02 17:23:57 +03:00
yuri ca038970ff folders notify 2015-06-02 17:11:39 +03:00
yuri 4d852c8515 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-06-02 17:09:00 +03:00
yuri b96ea5100b modals select 2015-06-02 17:05:51 +03:00
yuri fd86727bfc scopes in entity templates 2015-06-02 15:52:54 +03:00
yuri 8dacf66242 record tree create acl 2015-06-02 15:44:36 +03:00
Taras Machyshyn bbb4271dd1 Merge branch 'hotfix/3.3.1' 2015-06-02 15:33:45 +03:00
Taras Machyshyn 8b72499c19 Databse rebuild fixes 2015-06-02 15:31:20 +03:00
yuri 0a9a5a47af document folders 3 2015-06-02 12:19:28 +03:00
yuri 4304724315 disable isOverdue field 2015-06-02 11:02:37 +03:00
yuri 8dc3c146e0 fix 2015-05-29 18:14:50 +03:00
yuri 7cefff04a7 document folders 2 2015-05-29 17:18:42 +03:00
yuri dd6d6995b9 row actions active fix 2015-05-28 16:59:36 +03:00
yuri 3606dc39e3 document folder 1 2015-05-28 16:19:37 +03:00
yuri 03fef2fc8c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-28 11:38:16 +03:00
yuri 704e548654 opp lead source disable customization and none for empty 2015-05-28 11:35:26 +03:00
yuri 6120d5501d fix followers order 2015-05-28 10:47:13 +03:00
Taras Machyshyn 3f8c338265 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-27 17:19:18 +03:00
Taras Machyshyn ec07b23af8 Test corrections 2015-05-27 17:19:04 +03:00
yuri cc349ca545 tooltip 2015-05-27 16:39:36 +03:00
yuri b16ec66eb3 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-27 16:34:31 +03:00
yuri 22667e17f1 Repository: leftJoin method 2015-05-27 16:34:18 +03:00
yuri 5741834d53 fix test 2015-05-27 16:32:18 +03:00
yuri 0df39cdc4f fix middle tables 2015-05-27 16:30:36 +03:00
yuri 70489e8846 email loop prevention and query middle table change 2015-05-27 16:17:45 +03:00
Taras Machyshyn c4558ec633 Merge branch 'hotfix/3.3.1' 2015-05-27 16:03:09 +03:00
Taras Machyshyn 5b500ae42a Added support UTF-8 strings for saved JSON data 2015-05-27 16:01:24 +03:00
yuri cdbe6a2383 active filter 2 2015-05-26 16:32:29 +03:00
yuri 48c650eab2 user active filter 2015-05-26 16:31:33 +03:00
yuri 0c815b5761 followers 3 2015-05-26 16:17:24 +03:00
yuri 9b104b9a16 followers 2 2015-05-26 12:26:30 +03:00
yuri 97248e2b18 fix users panel 2015-05-26 11:41:15 +03:00
yuri b3aa244f4e fix side panels 2015-05-26 11:40:13 +03:00
yuri 45c59ff242 fix createRelated 2015-05-26 11:30:25 +03:00
yuri 0038c3666d followers 1 2015-05-26 11:25:29 +03:00
yuri 7cfebbf87e fix entryPoint error messages 2015-05-26 10:34:57 +03:00
yuri 0cd3666a96 Merge branch 'hotfix/3.3.1' 2015-05-25 11:15:06 +03:00
yuri d4a5f68398 fix before remove 2015-05-25 11:14:53 +03:00
yuri 1a30a9c29a pre-loader huck 2015-05-22 16:51:20 +03:00
yuri cd75ddbbd7 select filter search 2015-05-22 16:46:03 +03:00
yuri 55aedb7194 selectRelated filters 2015-05-22 15:40:37 +03:00
yuri aa303d164f reply from histpry panel 2015-05-22 15:17:55 +03:00
yuri 1723f63b21 label 2015-05-22 11:47:16 +03:00
yuri 55fef695ec fix panels 2015-05-22 11:42:44 +03:00
yuri 42ee41ae54 cleanup 2015-05-22 11:10:03 +03:00
yuri 676f480db8 full form on modal header 2015-05-21 15:34:07 +03:00
yuri 233408b076 wysiwyg size and scroll 2 2015-05-21 14:55:05 +03:00
yuri 9dfec82f6e fix frontend acl 2015-05-21 12:33:21 +03:00
yuri 3c791b6363 wysiwyg size and scroll 2015-05-21 11:39:51 +03:00
yuri 5a0e5f6804 total count in title 2015-05-21 11:13:25 +03:00
yuri 3376ab06d0 improve reply email 2015-05-21 11:01:42 +03:00
yuri e8b22f9331 remove email ico 2015-05-21 10:33:59 +03:00
yuri 0b9104f992 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-20 17:12:28 +03:00
yuri 566d0e50a6 unlink all 2015-05-20 17:11:55 +03:00
yuri be5a6a0ee0 fix controller 2015-05-20 16:10:07 +03:00
yuri 4df460d6cb fix paneld 2015-05-20 14:31:20 +03:00
yuri 7443c969b1 refactor panels 2015-05-20 14:27:38 +03:00
Taras Machyshyn 3b5b1fb1b3 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-20 13:05:18 +03:00
Taras Machyshyn 5737927e2d Merge branch 'hotfix/3.3.1' 2015-05-20 13:05:01 +03:00
Taras Machyshyn c59b837315 Fixed a bug with '__APPEND__' merge 2015-05-20 13:03:33 +03:00
yuri ce75b68df0 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-20 12:02:51 +03:00
yuri d17257fc95 link fields filters fix 2015-05-20 12:02:07 +03:00
Taras Machyshyn ed996eff43 Merge branch 'hotfix/3.3.1' 2015-05-20 10:57:20 +03:00
Taras Machyshyn 8f70c32687 Correction Ukrainian translation 2015-05-20 10:36:08 +03:00
yuri d134db65a3 fix varchar searc 2015-05-19 18:07:56 +03:00
yuri deaa3f3f73 fix varchar searc 2015-05-19 18:05:50 +03:00
yuri 5f5f6dcf38 fix query sanitize 2015-05-19 15:31:06 +03:00
yuri 8e373a9c33 fix warnings 2015-05-19 15:23:44 +03:00
yuri f7a367d755 email to case 2015-05-19 15:17:11 +03:00
yuri fea113269b compose email from detail view imporovement 2015-05-19 15:01:36 +03:00
yuri 5299da7a21 contact target list for import 2015-05-19 12:28:39 +03:00
yuri 9a06ee3221 opted out panel 2015-05-19 12:16:40 +03:00
yuri 5b489e2341 target list opted out api 2015-05-19 11:48:43 +03:00
yuri 5b0e4f910d fix target list add 2015-05-18 18:10:43 +03:00
Taras Machyshyn 575a4f12cc Fixed a bug with deleting/adding an autoincrement field 2015-05-18 16:14:55 +03:00
yuri 9b77f74e53 optedOut column 2015-05-18 12:02:34 +03:00
yuri 7be801c647 target list btn style 2015-05-18 11:30:14 +03:00
yuri a95471a239 fix lang 2015-05-18 11:26:54 +03:00
yuri 8982993813 dropdownItemList 2015-05-18 11:25:17 +03:00
Taras Machyshyn cc48dc2a65 Fixed a bug with module 'order' option 2015-05-18 10:47:21 +03:00
yuri 9e0d8632f5 email ui improvements 2015-05-15 17:46:17 +03:00
yuri 2f751085e0 bcc 2015-05-15 17:37:06 +03:00
yuri f5faae13c4 email icon 2 2015-05-15 17:30:04 +03:00
yuri 015fd4014c email ico 2015-05-15 17:22:11 +03:00
yuri ff9c68d7f6 createdAccount filter 2015-05-15 16:45:28 +03:00
yuri 323138eebf filter email by subject 2015-05-15 16:36:42 +03:00
yuri 43f15252bb relatedAttributeFunctions 2015-05-15 15:26:17 +03:00
yuri 25ad4ffa43 campaign and document small improvements 2015-05-15 15:06:50 +03:00
yuri 0cd3a464d8 acl improvement 2015-05-15 12:15:14 +03:00
yuri 71e9b313bb campaign label 2015-05-15 11:08:12 +03:00
yuri 9b13f82c55 selectize 2015-05-15 11:01:57 +03:00
yuri 20cf214187 stream hover 2015-05-14 12:26:26 +03:00
yuri 2d06568470 hover list row 2015-05-14 12:19:09 +03:00
yuri 59ccd121c5 fix modal in notification 2015-05-14 11:18:47 +03:00
yuri caa0256f19 fix email notification 2015-05-14 10:54:13 +03:00
yuri b27b356997 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-13 13:40:35 +03:00
yuri 3b76eec06c cleanup 2015-05-13 12:18:40 +03:00
yuri 04a768ee40 fix filter style 2015-05-13 12:07:46 +03:00
Taras Machyshyn 0a3490d4f2 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-13 11:53:55 +03:00
Taras Machyshyn df71605c47 Fixed a bug with username of installer 2015-05-13 11:53:42 +03:00
yuri 7424828f0c remove account filters 2015-05-13 11:27:48 +03:00
yuri c9c759f33b Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-13 11:15:09 +03:00
yuri 98835fdb6c fix uk_UA lang 2015-05-13 11:14:57 +03:00
Taras Machyshyn d32887ed40 Improved some descriptions 2015-05-13 11:02:17 +03:00
yuri 6dd7573f7b fix followed filter 2015-05-13 10:44:16 +03:00
yuri 0027e1bf9a fix invitartion 2015-05-12 15:21:24 +03:00
Taras Machyshyn eb10aa33d6 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-12 12:16:54 +03:00
Taras Machyshyn cfe77569f1 Changed footer 2015-05-12 12:16:43 +03:00
yuri 62da3462bc follow button improvement 2015-05-12 11:35:27 +03:00
yuri 334b0baacc email account: email address 2015-05-12 11:35:10 +03:00
yuri d16d177eaf entity manager: order 2015-05-11 15:17:58 +03:00
yuri 2966f158fe fix campaign 2015-05-11 13:07:43 +03:00
yuri 1f57bcb250 Merge branch 'master' of https://github.com/espocrm/espocrm 2015-05-11 12:32:38 +03:00
yuri 90e775c27a fix multi enum search 2015-05-11 12:30:36 +03:00
yuri 9ff47844e7 fix fetch 2015-05-11 12:09:51 +03:00
yuri 042d98d05b fetch for bottom and side views 2015-05-11 12:06:20 +03:00
yuri 0533c5a3ef sticked panels 2015-05-11 11:34:51 +03:00
yuri 0325f637b2 monitoredFolders tooltip 2015-05-11 11:27:17 +03:00
yuri 3d2bfe48b9 show stream count 2015-05-11 11:08:58 +03:00
yuri c8a538d73e cleanup 2015-05-11 11:04:06 +03:00
yuri fbc171b07f update fr_FR 2015-05-11 11:03:13 +03:00
yuri 70e4921961 fix email import 2015-05-11 11:00:46 +03:00
Yuri Kuznetsov 1ca96c7ca8 Update README.md 2015-05-09 10:04:58 +03:00
yuri 65359f103f disable task stream 2015-05-08 17:18:27 +03:00
yuri e5afffbde1 datetimeOptional fix 2015-05-08 12:51:09 +03:00
yuri 66364e91b7 datetimeOptional field type and task stream 2015-05-08 12:38:52 +03:00
yuri 567ca19398 converted to panel change 2015-05-08 11:51:03 +03:00
yuri 1e073def9d footer catch 2015-05-08 11:24:31 +03:00
yuri 70c772dfd2 note.related_id 2015-05-08 10:58:44 +03:00
yuri 709259f45e fix task complete button 2015-05-07 18:19:41 +03:00
yuri dca51642e3 email userse filter 2015-05-07 17:59:02 +03:00
yuri f24aea6354 followCreateEntities field 2015-05-07 15:05:22 +03:00
yuri c020cd4251 followed filter 2015-05-07 14:14:42 +03:00
yuri 452e2ddc51 css changes 2015-05-07 11:59:03 +03:00
yuri 1860c69313 fix filters css 2015-05-07 11:49:59 +03:00
yuri 201beca8fa audited change 2015-05-07 11:22:52 +03:00
yuri 9182aeef99 Followed bool filter 2015-05-07 11:11:27 +03:00
yuri d2cb7f60de stream status changes 2015-05-07 10:35:52 +03:00
yuri c6beb0aac3 inCategory search 2015-05-06 17:38:41 +03:00
yuri e394b12888 fix linkedWith 2015-05-06 16:06:28 +03:00
yuri a461c8515f Merge branch 'master' into feature/tree 2015-05-06 15:45:40 +03:00
yuri 9bb36e1a35 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-06 15:39:55 +03:00
yuri 1a5c75daac remove oveflow hidden for .field 2015-05-06 15:23:58 +03:00
yuri 2c7633e74d task detailSmall change 2015-05-06 15:22:53 +03:00
yuri 996ad352e1 create task from email 2015-05-06 15:18:56 +03:00
yuri 5c4b0d7723 change link field tpl 2015-05-06 14:31:46 +03:00
yuri 6485ed38d6 layouts ability to add new 2015-05-06 12:22:48 +03:00
yuri 48d9c0a7ff sort entity manager 2015-05-06 12:08:31 +03:00
yuri 40c4b77cbf field tpl changes 2015-05-06 12:01:03 +03:00
Taras Machyshyn 9b0ed1c833 Added possibility to define custom tables in metadata under 'additionalTables' option 2015-05-06 11:17:39 +03:00
yuri bc6e74a092 compose email body height 2015-05-06 11:13:31 +03:00
yuri 52bdb136d4 fix wtsiwyg 2015-05-06 11:06:58 +03:00
yuri f0e77da5d4 overflow hidden for field 2015-05-06 10:56:57 +03:00
yuri 0b77c4cdfe move inbound email to core 2015-05-06 10:40:22 +03:00
yuri 2efa0c0ca7 lang 2015-05-06 10:00:11 +03:00
yuri 87892c799c dev 2015-05-05 17:25:37 +03:00
yuri 5bfa258881 dev 2015-05-05 15:58:07 +03:00
yuri d742de40c5 fix get imap folders ssl 2015-05-05 13:51:43 +03:00
yuri bb3bd0e915 dev 2015-05-05 13:38:11 +03:00
yuri 8d50f52b7f cleanup 2015-05-05 11:39:57 +03:00
yuri bd2fd5eb3a Merge branch 'master' into feature/tree 2015-05-05 11:38:51 +03:00
yuri 2db25fda63 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-05 11:38:36 +03:00
yuri 3067abcac2 save calendar view 2015-05-05 11:30:29 +03:00
yuri c0c77e6e6b task attachments 2015-05-05 11:23:35 +03:00
Taras Machyshyn 4037ffa295 Changed 'relationName' to camelCase 2015-05-05 10:49:44 +03:00
Taras Machyshyn 2aa263847f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-05 10:30:08 +03:00
Taras Machyshyn 50f9f24887 OrmMetadata: fixed 'midKeys' merging priority 2015-05-05 10:29:52 +03:00
yuri e36ee5aaff link multiple <div> 2015-05-05 10:14:03 +03:00
yuri 6d8017f1dc fix link manager 2015-05-04 16:00:03 +03:00
yuri d22ce60f7b fix link manager 2015-05-04 15:48:58 +03:00
yuri bc7d4f214f fix email preview 2015-05-04 15:34:03 +03:00
yuri daa80d7196 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-05-04 15:23:49 +03:00
yuri 8d3da43dca list buttonDisabled 2015-05-04 15:23:25 +03:00
yuri 15b329580c fix layout 2015-05-04 15:19:41 +03:00
yuri 0e2f8d9bf9 fix email link 2015-05-04 15:15:39 +03:00
yuri 951d68724b acl imporvements 2015-05-04 12:24:32 +03:00
yuri f678253b05 fix outbound email encoding 2015-05-04 11:11:08 +03:00
yuri 0603eaf48d dev 2015-05-04 10:35:24 +03:00
yuri 753caf7eeb dev 2015-05-01 17:32:28 +03:00
yuri 5dbf719a53 gitignore 2015-05-01 17:31:38 +03:00
yuri 1e945cff41 dev 2015-05-01 13:14:20 +03:00
Taras Machyshyn 4a1237cdcc Translation corrections 2015-05-01 12:51:40 +03:00
Taras Machyshyn b60e65379e Improved ScheduledJobLog 2015-05-01 12:03:17 +03:00
yuri 6da4e1796b dev 2015-04-30 15:55:07 +03:00
yuri 2666f05bd5 dev 2015-04-30 15:02:21 +03:00
Taras Machyshyn 461bffbf02 Jobs: improved scheduledJobLog 2015-04-30 13:07:54 +03:00
yuri 2653bba158 dev 2015-04-30 12:14:47 +03:00
yuri 56d73519bf dev 2015-04-29 18:27:54 +03:00
yuri df3a7d78f4 dev 2015-04-29 17:39:17 +03:00
Taras Machyshyn 898a7d89c7 Fixed ScheduledJobLog clean-up 2015-04-29 17:17:00 +03:00
yuri 2734b9bf8c dev 2015-04-29 16:33:44 +03:00
yuri 2c074c6e82 dev 2015-04-28 18:09:17 +03:00
yuri 1e67fe69e1 dev 2015-04-28 17:53:31 +03:00
Taras Machyshyn 08cf333c0c Metadata: optimization 2015-04-28 15:38:45 +03:00
Taras Machyshyn 0f62d7da13 Metadata: code improvements 2015-04-28 15:28:26 +03:00
Taras Machyshyn 8ce806d41f Metadata: renamed option 'skip' to 'skipOrmDefs' 2015-04-28 14:54:43 +03:00
Taras Machyshyn 59a564cc1b FieldManager fixes 2015-04-28 14:40:50 +03:00
Taras Machyshyn 1135573af6 Metadata changes: generated fields now added to metadata 2015-04-28 11:59:05 +03:00
yuri c9a1e3733c listSmall 2015-04-28 10:16:41 +03:00
yuri 6dbeba3473 quick view more quicker 2015-04-24 13:22:19 +03:00
yuri 351087781e fix email inbox 2015-04-24 12:37:03 +03:00
yuri 92f977d6c2 camelCase aliases 2015-04-24 11:45:27 +03:00
yuri 489fbb8800 fix search 2015-04-24 11:26:38 +03:00
yuri 159c19fe08 conflict fix 2015-04-24 10:43:36 +03:00
yuri c13e46554d change upgrade done message 2015-04-24 10:14:17 +03:00
yuri 6f45e26028 version 2015-04-24 10:04:19 +03:00
yuri 7e02481b35 version 2015-04-24 09:59:16 +03:00
yuri 79e94a8255 Merge branch 'hotfix/3.2.2' 2015-04-24 09:54:11 +03:00
yuri 288398d4c2 fix preferences decode 2015-04-23 17:18:23 +03:00
yuri 92afc4deee cleanup 2015-04-23 15:49:05 +03:00
Taras Machyshyn f6892877c1 Extension can be installed with the same version 2015-04-23 15:44:31 +03:00
yuri 30c57921d1 refresh for extensions and upgrades installed 2015-04-23 15:30:11 +03:00
yuri d23bf569c0 cleanup 2015-04-23 15:22:29 +03:00
yuri 796830d2dd set not held row action 2015-04-23 15:17:47 +03:00
yuri 286ec0325d set held mass action 2015-04-23 15:15:08 +03:00
yuri c8338e1759 link filter change 2015-04-23 12:34:35 +03:00
yuri 5f8adf51c1 Merge branch 'hotfix/3.2.2' 2015-04-23 11:57:10 +03:00
yuri c7cc44edf6 Merge branch 'hotfix/3.2.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/3.2.2 2015-04-23 11:56:41 +03:00
yuri e958d7c488 fix inbound email 2015-04-23 11:55:25 +03:00
Taras Machyshyn 77ff11990b Installer: disable prompt password saving while installing 2015-04-23 11:48:23 +03:00
yuri e1538a5028 fix acl 2015-04-23 11:40:55 +03:00
Taras Machyshyn 994e0c1eda Extensions: improved restore functionality of install script 2015-04-23 10:48:42 +03:00
Taras Machyshyn d51e88be60 Minor bug fixes for fileManager 2015-04-23 10:42:24 +03:00
yuri b1ba07a995 task date completed 2015-04-22 17:07:32 +03:00
yuri 146a7aba1f filters 2015-04-22 16:43:45 +03:00
yuri 981c60c78a fix plain text 2015-04-22 16:28:04 +03:00
yuri 2e85e7fc56 email: show plain 2015-04-22 16:26:30 +03:00
yuri 99edab675a create contact from email 2015-04-22 16:12:55 +03:00
yuri 1a8d3a3cdf fix rerender on remove from list 2015-04-22 15:29:40 +03:00
yuri 43abd1740e modals change 2015-04-22 15:01:09 +03:00
yuri 261d60f338 cleanup 2015-04-22 11:20:19 +03:00
yuri 1a36d7758b reply to all be default 2015-04-22 11:08:22 +03:00
yuri c09fc39881 fix image crop 2015-04-22 10:46:30 +03:00
yuri 0a7cd28ab5 assignedUser not required for Account/Contact/Lead 2015-04-22 10:27:10 +03:00
yuri bf8bf5e4d9 fix link parent 2015-04-22 10:19:51 +03:00
yuri 1defafd258 remove async false 2015-04-22 10:13:10 +03:00
yuri 4854133f46 fix in acl table 2015-04-22 10:04:01 +03:00
yuri d93879a24d cleanup 2015-04-21 18:01:36 +03:00
yuri 8ff6d2063c fix calendar modal 2015-04-21 17:59:21 +03:00
yuri a46ecce6d0 not held in history 2015-04-21 17:57:19 +03:00
yuri 49175ae1b1 fix compose email modal 2015-04-21 17:40:45 +03:00
yuri 532473df15 fix modal 2015-04-21 17:14:38 +03:00
yuri 252ba4dccc modal buttonList 2015-04-21 17:11:02 +03:00
yuri 1ddac304d7 Email drafts filter 2015-04-21 16:12:41 +03:00
yuri 44ecebad03 translateOption Global by default 2015-04-21 15:42:48 +03:00
yuri 67d8c6cb17 version number in upgrade page 2015-04-21 15:40:50 +03:00
yuri c52ca7244f reply prefix changes 2015-04-21 15:35:42 +03:00
yuri b42b276054 cleanup 2015-04-21 14:39:07 +03:00
yuri 619a279dbb isEditable 2015-04-21 14:34:53 +03:00
yuri 56e0c9928e dont show email content in note if not parent view 2015-04-21 12:29:46 +03:00
yuri 25a424266b filters change 2015-04-21 12:19:14 +03:00
yuri c8b13e07b1 Merge branch 'hotfix/3.2.1' 2015-04-17 16:05:19 +03:00
yuri 9595d528a8 wysywyg strip base tag 2015-04-17 15:22:29 +03:00
yuri 48cf4a6ed6 admin panel: outbound email change 2015-04-17 12:35:46 +03:00
yuri 9de2b5f7ef Merge branch 'hotfix/3.2.1' 2015-04-17 11:57:14 +03:00
yuri 9bfb27e10a layout pretty print 2015-04-17 11:57:00 +03:00
yuri be50630d2f fix primary address 2015-04-17 11:51:16 +03:00
yuri 7d7234a226 some change with filters 2015-04-17 11:31:31 +03:00
yuri a7517bed9d document file field change 2015-04-17 10:48:01 +03:00
yuri 66fca4dadd change documents listSmall 2015-04-16 17:15:29 +03:00
yuri 645b64437f change email ack 2015-04-16 17:12:18 +03:00
yuri efa2755f19 acl refactor 2 2015-04-16 16:36:26 +03:00
yuri 4fe0f53878 acl refactor 2015-04-16 12:39:56 +03:00
yuri d8b629a5a0 fix email note if sent is fail 2015-04-16 10:31:03 +03:00
yuri 5db5b41f7f email notification change 2015-04-15 17:36:53 +03:00
yuri 6d0b39f2b6 fix email note 2015-04-15 16:43:06 +03:00
yuri 909aa49e39 email notificator change 2015-04-15 16:42:48 +03:00
yuri dd3d09f895 fix email note 2015-04-15 16:36:49 +03:00
yuri 395182bda5 filter layout 2015-04-15 16:27:27 +03:00
yuri fd7d73756a email improvement 2015-04-15 15:47:10 +03:00
yuri aff95d47dd Merge branch 'hotfix/3.2.1' 2015-04-15 12:11:13 +03:00
yuri b778f74628 Test Connection for email account 2015-04-15 12:10:59 +03:00
yuri 9f72d65281 Merge branch 'hotfix/3.2.1' 2015-04-15 11:02:30 +03:00
yuri 6db658c0b3 fix follow button 2015-04-15 10:47:03 +03:00
yuri 6fb88665bb messageId fix 2015-04-15 10:05:08 +03:00
yuri 669cc2b883 defaultReminders 2015-04-14 17:35:31 +03:00
yuri dec262e999 cleanup 2015-04-14 16:47:30 +03:00
yuri cb03047ac3 rowActionsView prop 2015-04-14 16:42:13 +03:00
yuri 8c5f94ace4 view and edit for record dashlet 2015-04-14 16:40:18 +03:00
yuri 6269f02bca filters improvements 2015-04-14 16:22:42 +03:00
yuri f20a47542a disable escape for quick edit 2015-04-14 14:30:55 +03:00
yuri c77e3b7e92 link field placeholder 2015-04-14 12:28:50 +03:00
yuri e7b033304c clear_cache.php 2015-04-14 12:11:45 +03:00
yuri 2b8a8d23eb fix notifications hook 2015-04-14 11:51:34 +03:00
yuri 0f59f79a9e fix email search 2015-04-14 11:50:05 +03:00
yuri 2904cd1f53 performance tweeks 2015-04-14 11:43:29 +03:00
yuri d87ae60fea version 2015-04-13 12:16:30 +03:00
yuri 0d17cf6e78 lang cache issue 2015-04-13 11:53:22 +03:00
yuri 81739d59f5 quickDetailDisabled 2015-04-13 11:07:16 +03:00
yuri 7704d5afd0 layout change 2015-04-13 10:43:18 +03:00
yuri da268f2b29 note email from === parent 2015-04-13 10:30:57 +03:00
yuri 01dc251ef2 fix email RE 2015-04-13 10:17:20 +03:00
yuri 9054d70f4c fix email from 2015-04-13 10:14:05 +03:00
yuri 788b265cd4 email fixes 2015-04-13 10:00:48 +03:00
yuri c96640bcb1 fix orm double join 2015-04-10 15:41:45 +03:00
yuri 66fb7b4e81 fix import 2015-04-10 11:49:42 +03:00
yuri d83a19e316 fix lang 2015-04-10 10:24:58 +03:00
yuri 452e39903e ua lang 2015-04-09 15:28:07 +03:00
yuri 797fcc172c email to lead: use reply to 2015-04-09 14:06:11 +03:00
yuri cdb7c919b3 sort layout field list 2015-04-09 12:27:38 +03:00
yuri 0f7f438935 layoutSearch fix 2015-04-09 12:12:10 +03:00
yuri 7c01eedda8 followCreatedEntities param 2015-04-09 12:05:40 +03:00
yuri bab7f3e9fc email notifications 2015-04-09 11:56:47 +03:00
yuri 761d85a112 fix email import and send 2015-04-09 11:02:55 +03:00
yuri 52e323123a notifications 2 2015-04-08 18:23:14 +03:00
yuri 01af1677cf notifications 2015-04-08 17:38:32 +03:00
yuri d4f4fcb10e email optimization 2015-04-07 16:54:54 +03:00
yuri 74fd228bfb fix email small layout 2015-04-07 15:46:31 +03:00
yuri f452d2e5d2 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-04-07 15:25:29 +03:00
yuri 3a01348e02 improve draft email 2015-04-07 15:25:15 +03:00
Taras Machyshyn b1743ee4a2 Cleared passwords when loggin input data 2015-04-07 12:32:13 +03:00
Taras Machyshyn ab14769387 Changed current year for installer 2015-04-07 12:04:13 +03:00
yuri 5c800601e4 cleanup addition 2015-04-07 11:23:25 +03:00
yuri 8aea81340b default layout changes 2015-04-07 10:28:26 +03:00
yuri 8513911f21 Merge branch 'master' of https://github.com/espocrm/espocrm 2015-04-06 17:38:33 +03:00
yuri 6a46c453cd add client custom dir 2015-04-06 17:38:10 +03:00
yuri 2029dc5e10 fix tasks panel 2015-04-06 17:34:04 +03:00
yuri 70664d1a7a fix template entityDefs 2015-04-06 16:13:08 +03:00
yuri 7d212ec62f fix default detail layout 2015-04-06 16:10:20 +03:00
yuri fa7b145e07 fix link manager 2015-04-06 16:02:10 +03:00
yuri 830645cb73 parent type length 100 2015-04-06 15:43:47 +03:00
yuri 94e03b3c18 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-04-06 15:36:46 +03:00
Taras Machyshyn 3ace85eebc Improved Orm convertor 2015-04-06 15:36:14 +03:00
yuri c6cfdd9e90 version 2015-04-06 12:37:57 +03:00
yuri d1b2dfae3e default task status 2015-04-06 12:29:48 +03:00
yuri 98fb345a5a dont create auth token if logged browser basic auth 2015-04-06 11:26:18 +03:00
Yuri Kuznetsov 481314886f Update README.md 2015-04-03 18:59:02 +03:00
yuri ad90cd171a leadSource field 2015-04-03 12:50:14 +03:00
yuri 8272e0e652 default duration 2015-04-03 12:07:11 +03:00
yuri f218de2e04 fix messages 2015-04-03 11:58:58 +03:00
yuri 53529fc506 duration options 2015-04-03 11:47:55 +03:00
yuri aef99fb4fd lang 2015-04-03 11:08:42 +03:00
yuri 86f690c79f midAlias ORM 2015-04-03 10:29:28 +03:00
yuri 71f9e90436 join many alias 2015-04-02 17:48:46 +03:00
yuri 75608f41b1 Merge branch 'hotfix/3.1.2' 2015-04-02 15:30:19 +03:00
yuri 0730ae5b3f fix forgot password 2015-04-02 15:27:29 +03:00
yuri a7f537879e change dev index.php 2015-04-02 15:20:05 +03:00
yuri 6066cf1d65 change version 2015-04-02 14:24:20 +03:00
yuri ccda236b6e Merge branch 'hotfix/3.1.2' 2015-04-02 11:46:22 +03:00
yuri 32ec348369 pt_BR fixes 2015-04-02 11:46:04 +03:00
yuri d85f66171d Merge branch 'hotfix/3.1.2' 2015-04-02 11:13:26 +03:00
yuri 8c6aa46ec8 fix email plain 2015-04-02 11:12:56 +03:00
yuri d2f7bc475a fix role and team list layout 2015-04-02 10:57:25 +03:00
yuri 410cf02518 filters layout changes 2015-04-01 16:49:44 +03:00
yuri 958414017e Merge branch 'hotfix/3.1.2' 2015-04-01 16:22:30 +03:00
yuri 8fbfad9637 async false for upgrade 2015-04-01 16:22:17 +03:00
yuri 07e8f94748 fix form leave out 2015-04-01 15:52:21 +03:00
yuri 4db162f9f7 fix form leave out 2015-04-01 15:33:03 +03:00
yuri 459dfb7937 Merge branch 'master' of https://github.com/espocrm/espocrm 2015-04-01 15:07:55 +03:00
yuri 56b0536152 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-04-01 15:07:42 +03:00
yuri 5bb7dd3ccd list buttons 2015-04-01 15:07:27 +03:00
yuri 6e50e4fd8e hide cc field if empty 2015-04-01 12:23:00 +03:00
yuri 878e1616da change email layout and email from name fix 2015-04-01 12:16:35 +03:00
yuri 64a410099e form leave out 2015-04-01 11:32:37 +03:00
yuri 9cb8664ddf fix token remove 2015-04-01 09:49:41 +03:00
Taras Machyshyn 6d5c3c8ad5 Code optimization for Orm convertation 2015-03-31 17:23:53 +03:00
Yuri Kuznetsov f07c8fca64 Update README.md 2015-03-31 16:41:56 +03:00
yuri 944c76ad93 imprort improvements 2015-03-31 15:50:33 +03:00
yuri ae8f9df02b fix metadata to orm 2015-03-31 10:57:10 +03:00
yuri 6da3659b7d Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-31 10:48:13 +03:00
yuri 1f1d9f3abd Merge branch 'hotfix/3.1.2' 2015-03-31 10:48:08 +03:00
yuri 530d7f2d81 import email: findParent lead 2015-03-31 10:47:53 +03:00
Taras Machyshyn e67ecded2a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-31 10:43:31 +03:00
Taras Machyshyn b9343d5e64 Improved Orm convertation 2015-03-31 10:43:14 +03:00
yuri 898393c7ac Merge branch 'hotfix/3.1.2' 2015-03-30 17:44:16 +03:00
yuri 9b2ea5298d fix iframe links 2015-03-30 17:14:37 +03:00
yuri 0d2b56c58f signature fix 2015-03-30 17:07:28 +03:00
yuri 076c920dc7 upgrade summernote 2015-03-30 16:58:45 +03:00
yuri 638df642ec import dev 2015-03-30 16:47:27 +03:00
yuri d2f4190612 field changes 2015-03-30 16:18:29 +03:00
yuri 7201f517e8 row actions change 2015-03-30 15:32:18 +03:00
yuri c91365f627 change calendar query 2015-03-30 15:03:41 +03:00
yuri f3bc4dbccf import dev 2015-03-30 13:39:14 +03:00
yuri d4daef6012 autoincrement creatable 2015-03-30 12:29:53 +03:00
yuri dbf4f68a44 user filters 2015-03-30 12:28:54 +03:00
yuri 8a7325963b import revert/remove duplicates 2015-03-30 12:26:41 +03:00
yuri fc0d8dffcd fix prev 2015-03-30 11:34:54 +03:00
yuri f8498e3adc save and remove options 2015-03-30 11:22:14 +03:00
yuri e4b51ba675 fix isOverdue 2015-03-27 16:49:32 +02:00
yuri 83f9ead607 record getEntity 2015-03-27 16:44:34 +02:00
yuri bf6778770e fix label 2015-03-27 16:23:40 +02:00
yuri 093b80293a import dev 2015-03-27 16:20:44 +02:00
yuri 34dee314e7 import dev 2015-03-27 15:46:59 +02:00
yuri 313b94168e search.tpl fix 2015-03-27 13:10:56 +02:00
yuri d6085bbdcf createdAt to filters 2015-03-27 12:43:09 +02:00
yuri 160dc5d61c Merge branch 'hotfix/3.1.2' 2015-03-27 12:10:41 +02:00
yuri 987b383d7c fix plainText signature 2015-03-27 12:10:12 +02:00
yuri 8b4cb1568e import dev 2015-03-27 12:00:10 +02:00
yuri aef4028180 replace tabs 2015-03-27 11:52:07 +02:00
yuri 9b779ee8cd change streamRelated for account 2015-03-26 18:08:35 +02:00
yuri ccc339cf48 import 1 2015-03-26 17:23:26 +02:00
yuri 6aabbfd944 replace tabs 2015-03-26 13:58:32 +02:00
yuri 0e87626e34 cleanup 2015-03-26 13:22:20 +02:00
yuri 8641181511 fix task panel 2015-03-26 13:20:21 +02:00
yuri 123c3ef8ab grand filters change 2015-03-26 13:14:13 +02:00
yuri 07bd5a9d60 opp by stage w/o Closed Won 2015-03-25 16:07:05 +02:00
yuri deca89039a calendar dashlet changes 2015-03-25 15:58:08 +02:00
yuri 1542fa86d8 Merge branch 'hotfix/3.1.1' 2015-03-25 15:28:11 +02:00
yuri 93ca814fe3 fix save filters margin 2015-03-25 15:27:54 +02:00
yuri 4d9e5ee302 accountId improvements 2015-03-25 15:25:39 +02:00
yuri 0a697cdc0a note superParent 2 2015-03-25 14:42:19 +02:00
yuri 1b01e476ac clearnup 2015-03-25 14:09:10 +02:00
yuri ee689fb351 remove dashletOptions when dashlet removed 2015-03-25 14:08:34 +02:00
yuri 92a76d80f2 Merge branch 'hotfix/3.1.1' 2015-03-25 10:26:56 +02:00
yuri a662c1a5fe improve uniqid 2015-03-25 10:26:02 +02:00
yuri 3ffa949276 fix create in select 2015-03-24 17:44:16 +02:00
yuri 371966e2cf add super parent for note 2015-03-24 17:24:38 +02:00
yuri 8f1a4d2a02 link, linkParent and belondToParent fix 2015-03-24 16:44:15 +02:00
yuri 3128b6f25a add index to email 2015-03-24 15:51:36 +02:00
yuri 0920821f1e change lang message 2015-03-24 12:12:24 +02:00
yuri 0f8f9c01ff change css 2015-03-24 12:06:29 +02:00
yuri 1d9621bc91 change version 2015-03-24 11:25:09 +02:00
yuri e138daec5f fix table head hight 2015-03-24 11:16:26 +02:00
yuri 4a51e754d7 fix in inbound email 2015-03-24 11:01:55 +02:00
yuri e6e0bc1703 fix inbound email double notification 2015-03-24 10:52:33 +02:00
yuri 49fbc6e082 email fromName changes 2015-03-24 10:39:08 +02:00
yuri a0ed610f60 search by target lists 2015-03-23 18:07:39 +02:00
yuri 9f8c0eb4a2 cleanup 2015-03-23 16:50:32 +02:00
yuri be29fac010 rename role to title 2015-03-23 16:02:07 +02:00
yuri b3cefd9bcb change case layout 2015-03-23 15:54:34 +02:00
yuri 501d6f2692 fix markdown parsing 2015-03-23 15:45:48 +02:00
yuri 3d7560024f fixes email reply 2015-03-23 14:39:01 +02:00
yuri a201b45d04 change stream messages 2015-03-23 11:45:30 +02:00
yuri 41f88a4015 modal.detail scroll to top hack 2015-03-23 11:18:45 +02:00
yuri 52a131ef93 fix dashlet actions 2015-03-23 10:34:54 +02:00
yuri 7ab28601ca dashlet options clone 2015-03-23 10:04:34 +02:00
yuri 5de509a0de fix warnings 2015-03-23 10:00:08 +02:00
yuri 2534b14dce fix frontend acl 2015-03-23 09:50:40 +02:00
yuri 27f98b95eb fix currency field 2015-03-20 17:09:02 +02:00
yuri b08bee78b9 iframe fix 2015-03-20 16:57:46 +02:00
yuri a39327a95b 2015 2015-03-20 16:23:18 +02:00
yuri f979a8dd46 fix options 2015-03-20 15:23:22 +02:00
yuri ecf1645e05 cleanup 2015-03-20 14:31:24 +02:00
yuri d015bec89c navbar changes 2015-03-20 14:31:07 +02:00
yuri 92e1d4b8e6 clearnup 2015-03-19 17:13:02 +02:00
yuri a75df456e2 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-19 17:11:43 +02:00
yuri 5393c2f314 header changes 2015-03-19 17:08:04 +02:00
yuri c49bcc29db logo changes 2015-03-19 16:21:45 +02:00
yuri 3e74fb49ac contact list layout 2015-03-19 15:43:51 +02:00
Taras Machyshyn cf885cafb4 Upgrade improvements 2015-03-19 15:38:20 +02:00
yuri 7a7c605687 fix frontend/index.php 2015-03-19 15:35:38 +02:00
yuri 5676d42801 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-19 15:02:45 +02:00
Taras Machyshyn c893a4441d Added a file to Gruntfile.js 2015-03-19 15:01:36 +02:00
yuri c5e1d0847f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-19 14:13:19 +02:00
Taras Machyshyn f0b4c2dc79 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-19 13:49:41 +02:00
Taras Machyshyn 1584f25af5 Fixed a bug with the upgrade 2015-03-19 13:49:25 +02:00
yuri 761e7b2344 detaul buttons changes 2015-03-19 12:58:36 +02:00
yuri 7099c92c39 fixes with el 2015-03-19 12:44:23 +02:00
yuri be26ec2651 inline edit disanled option 2015-03-19 11:49:08 +02:00
yuri 7a2f49ad43 list fixes 2015-03-19 10:54:25 +02:00
yuri 22477385f7 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-18 18:18:20 +02:00
yuri e7ae0862ba menu title 2015-03-18 18:18:10 +02:00
yuri f501a7377d navbar changes 2015-03-18 18:16:19 +02:00
yuri 9ce9ccdb5c update bootstrap 2015-03-18 17:37:46 +02:00
yuri f8a425b7d1 fix select all 2015-03-18 17:37:23 +02:00
yuri 8ab92f8668 navbar changes 2015-03-18 17:30:56 +02:00
Taras Machyshyn e598665242 Added upgrade.php script to upgrade EspoCRM via CLI 2015-03-18 17:22:07 +02:00
yuri 1bc984f8fa fix select all icon 2015-03-18 17:18:24 +02:00
Taras Machyshyn 3a0b1a22f0 Improved logging when permission denied for a log file 2015-03-18 17:09:47 +02:00
Taras Machyshyn 8fd41d5ea7 Bug fixes 2015-03-18 17:00:58 +02:00
yuri 787adc72a5 changes in calls/mettings dashlets 2015-03-18 16:52:43 +02:00
yuri a99b043d95 add bool filter to cases 2015-03-18 16:45:00 +02:00
yuri 2079c19dc0 add deferred status to tasks 2015-03-18 16:35:17 +02:00
yuri 9f9ba2c915 cases dashlet change 2015-03-18 16:35:06 +02:00
yuri 31db584658 change task dashlet 2015-03-18 16:13:54 +02:00
yuri a09c7db717 fix array field json 2015-03-18 15:44:48 +02:00
yuri 19bd38bb85 array field cursor 2015-03-18 12:22:41 +02:00
yuri 7e678a8378 opportunity account not required 2015-03-18 12:14:02 +02:00
yuri 93c5d7eb91 fix options view helper 2015-03-18 11:51:12 +02:00
yuri a9fcf5d510 Merge branch 'hotfix/3.0.2' 2015-03-18 11:40:36 +02:00
yuri 6f1266dcea Merge branch 'hotfix/3.0.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/3.0.2 2015-03-18 11:40:25 +02:00
yuri 2395fb6986 change version 2015-03-18 11:40:05 +02:00
yuri 48a0fa5e96 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-18 10:52:02 +02:00
yuri 95a0f78fa7 array field param noEmprtString 2015-03-18 10:51:51 +02:00
yuri 85f18fe338 change default dashboard tab 2015-03-18 10:38:02 +02:00
yuri cbfad8eb79 dashboard changes 2015-03-18 10:37:22 +02:00
Taras Machyshyn 5cd4a92049 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-17 18:04:53 +02:00
Taras Machyshyn e5b4de1683 Jobs: added attempts for jobs 2015-03-17 18:04:40 +02:00
yuri cdd07a9f44 dashboard tabs 2015-03-17 17:54:42 +02:00
yuri 121eaabe40 fix quick view modal 2015-03-17 14:53:57 +02:00
yuri f559c512fd change info color 2015-03-17 11:54:21 +02:00
yuri 9aa5ed63d0 bool filters labels 2015-03-17 11:53:12 +02:00
yuri fa9c0e5b3b fix query in empty array 2015-03-17 11:39:47 +02:00
yuri 469c6f3b45 email-to-lead fix 2015-03-17 11:05:21 +02:00
yuri e23e013432 Lead Create for campaign 2015-03-17 10:45:51 +02:00
yuri e051ef4935 email fixes 2015-03-16 19:04:58 +02:00
yuri 2a4e816448 fix email from 2015-03-16 18:09:11 +02:00
yuri 4095530491 clearnup 2015-03-16 17:26:55 +02:00
yuri 5a40507b54 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-16 17:26:06 +02:00
yuri f438b0898b email to lead and fucking fixes 2015-03-16 17:25:53 +02:00
Taras Machyshyn 58cfeeb1be Removed unnecessary debug message 2015-03-16 15:51:43 +02:00
yuri 6dbd521501 fix email and phone fields 2015-03-16 14:40:57 +02:00
yuri 541cb13ec3 view helper fix 2 2015-03-16 13:42:33 +02:00
yuri e7fbcbbac6 view helper fix 2015-03-16 13:36:52 +02:00
yuri 7bc3d8a826 show from name in email 2015-03-16 13:13:07 +02:00
yuri a814a95c9a list row dropdown css change 2015-03-16 13:04:26 +02:00
yuri e95a40f24d quick view 2015-03-16 12:43:57 +02:00
yuri b5972da08e autocomplete fix for assignmentPermission 2015-03-16 11:47:03 +02:00
yuri 9f488c5539 fix text field 2015-03-16 11:15:19 +02:00
yuri aeea86155c fix email record list 2015-03-16 10:25:10 +02:00
yuri 843ca2a7c5 fix email address primary pdo quote 2015-03-13 15:32:04 +02:00
yuri bbb67856c0 Merge branch 'master' of https://github.com/espocrm/espocrm 2015-03-13 15:27:40 +02:00
Yuri Kuznetsov 1100e82364 Merge pull request #38 from Threxxy/patch-1
INSERTing number fix for PhoneNumber.php
2015-03-13 15:27:28 +02:00
Pete 7dfafaee22 INSERTing number fix for PhoneNumber.php
Adding a new phone number to a contact was giving the error: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'primary' at row 1

Cast the boolean to an int and it appears to be fixed.
2015-03-13 13:08:41 +00:00
yuri cd1aab0b1e cleanup 2015-03-13 13:52:00 +02:00
yuri fa9c2806ca mass actions 2015-03-13 13:49:22 +02:00
yuri 736a53c8d0 calendar changes 2015-03-12 17:11:56 +02:00
yuri 0b713be508 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-03-12 16:24:21 +02:00
yuri 715b290174 task date 2015-03-12 16:24:07 +02:00
yuri 54d241d247 fix notice 2015-03-12 10:28:52 +02:00
yuri bf8f9023e2 fix task panel filter 2015-03-12 10:15:44 +02:00
Taras Machyshyn f57c81efe4 correction ru_RU translation 2015-03-11 16:44:57 +02:00
Taras Machyshyn 6d12cf44b4 fixed problem with espocrm news for https connections 2015-03-11 16:35:23 +02:00
yuri 4e76855a12 cleanup 2015-03-11 16:16:35 +02:00
yuri 724b2adbbd fix calendar date-end 2015-03-11 16:09:08 +02:00
yuri c95031912a calendar-page 2015-03-11 12:59:31 +02:00
yuri 4f7c6dacee assignment permission 3 2015-03-11 12:34:12 +02:00
yuri 716e434099 assignmentPermission 2 2015-03-11 12:15:51 +02:00
yuri f1f566d56f readOnly fix 2015-03-11 11:52:39 +02:00
yuri 4cf1b8dbda assignmentPermission 1 2015-03-10 16:49:43 +02:00
yuri 87ce26f3cd fix default jobs scheduling value 2015-03-10 16:24:53 +02:00
yuri 94c157df7a fix user side 2015-03-10 15:55:23 +02:00
yuri d13ccb8dc7 reset model if status = 400 and not new 2015-03-10 15:53:10 +02:00
yuri b73d82ba00 cancel prev 2015-03-10 15:49:19 +02:00
yuri afdeeeffa7 reset model if bad request 2015-03-10 15:45:21 +02:00
yuri 16cd135cb7 fixes in oauth2 client 2015-03-10 10:14:52 +02:00
yuri 0c6df91604 email draft 2015-03-09 17:06:26 +02:00
yuri 58a6ced886 fix unread 2015-03-09 16:23:11 +02:00
yuri d0d3f39f5d email signature 2015-03-09 15:48:13 +02:00
yuri 82a96c743c email/phone paste fix 2015-03-09 12:19:26 +02:00
yuri a18453c3af play notification sound only onnce 2015-03-09 11:47:25 +02:00
yuri a75dc61748 mettings held action 2015-03-09 11:23:05 +02:00
yuri 0a60663548 documents for opp 2015-03-09 11:16:30 +02:00
yuri 53cac1c299 convert lead: emails 2015-03-09 11:14:12 +02:00
yuri 4d624aa6d1 campaign log error Espo 2015-03-09 11:06:50 +02:00
yuri ca807c7ec8 Merge branch 'feature/campaign' 2015-03-06 18:11:02 +02:00
yuri f245b30d90 fix presets 2015-03-06 18:10:40 +02:00
yuri 0cfb29ad6d cleanup 2015-03-06 17:19:49 +02:00
yuri 27ed23cb51 email improvements 2015-03-06 17:18:45 +02:00
Taras Machyshyn 1794042cea fix bug into CronManager 2015-03-06 16:55:23 +02:00
yuri 6657078a89 email personStringData field 2015-03-06 12:16:02 +02:00
yuri a156e869fc if email duplicat then add user/team 2015-03-06 11:13:42 +02:00
yuri 06ffe9d373 fix ORM Query 2015-03-05 18:38:42 +02:00
yuri 817fc2fd40 fix ORM Query 2015-03-05 18:36:07 +02:00
yuri 2ec4464a52 dev 2015-03-05 15:12:55 +02:00
yuri e79874c039 Merge branch 'master' into feature/campaign 2015-03-05 13:07:07 +02:00
yuri 72b9d77e44 changes in side panels 2015-03-05 13:06:08 +02:00
yuri c622b976de side panel action refresh 2015-03-05 12:27:17 +02:00
yuri 4e0d570f90 dev 2015-03-05 12:26:11 +02:00
yuri ffce8cb0f7 Merge branch 'master' into feature/campaign 2015-03-05 11:34:19 +02:00
yuri 6dd2e365ad fix currency notStorable 2015-03-05 11:34:11 +02:00
yuri c324729cdf Merge branch 'master' into feature/campaign 2015-03-05 11:16:23 +02:00
yuri 5b3eee299c fix currency joins 2015-03-05 11:16:11 +02:00
yuri 2ff6946b91 dev 2015-03-05 11:14:02 +02:00
yuri c3a44a413a add types for inline download 2015-03-04 16:43:04 +02:00
yuri a4050b1476 Merge branch 'master' into feature/campaign 2015-03-04 14:52:50 +02:00
yuri 2da6d68fe3 fix email preview 2015-03-04 14:50:08 +02:00
yuri ed19b9d328 check isPost in User change own password 2015-03-04 12:26:09 +02:00
yuri f41e4f2df4 Merge branch 'master' into feature/campaign 2015-03-04 12:15:32 +02:00
yuri 410bd7f177 fix panel tpls 2015-03-04 12:15:17 +02:00
yuri caa659020e dev 2015-03-04 12:13:47 +02:00
yuri 877820f5f5 merge with master 2015-03-04 11:47:55 +02:00
yuri 18c6847481 email preview in stream 2015-03-04 11:27:04 +02:00
yuri 274c043f44 improve action events 2015-03-04 11:15:34 +02:00
yuri 529d8c1100 changes in relationship panel 2015-03-04 11:03:32 +02:00
yuri c05c169948 disable ability to remove ow user 2015-03-04 10:31:44 +02:00
yuri 99db3f5416 fix email attachmentsField handle 2015-03-04 10:29:58 +02:00
yuri 1fa976a43c fix email acl real 2015-03-04 10:24:47 +02:00
yuri 32198144cc add document to tablist 2015-03-04 10:08:26 +02:00
yuri 29420a5306 attendeess panels 2015-03-04 10:06:57 +02:00
yuri 67f6f9b250 Merge branch 'master' into feature/campaign 2015-03-04 09:52:46 +02:00
yuri c2bbc2e61e showModal action 2015-03-04 09:52:31 +02:00
yuri 2d74cddf86 Merge branch 'master' into feature/campaign 2015-03-03 18:01:45 +02:00
yuri 53049cf1f4 merge layout improve 2015-03-03 17:36:43 +02:00
yuri 6aa012891d dev 2015-03-03 17:26:00 +02:00
yuri 5a7f3ed101 dev 2015-03-03 15:58:17 +02:00
yuri 131743e702 Merge branch 'master' into feature/campaign 2015-03-03 15:51:51 +02:00
yuri b5cde9a157 fix view-helper 2015-03-03 15:51:40 +02:00
yuri b150aad977 dev 2015-03-03 15:45:20 +02:00
yuri 75d220e74d dev 2015-03-03 13:38:15 +02:00
Taras Machyshyn 39a3d215d6 Improved set owner, group permissions 2015-03-03 12:42:02 +02:00
yuri 8fe87ccd04 Merge branch 'master' into feature/campaign 2015-03-03 12:32:55 +02:00
yuri 621a2ffbbf add Views.Record.RowActions.Empty 2015-03-03 12:32:19 +02:00
yuri 0f582c59ab dev 2015-03-03 12:31:10 +02:00
yuri ce18f41400 Merge branch 'master' into feature/campaign 2015-03-03 12:25:31 +02:00
yuri d780847232 relationship-remove-only 2015-03-03 12:25:15 +02:00
yuri c074423f0b campaign dev 2015-03-03 12:24:18 +02:00
yuri 31cb2fed88 Merge branch 'master' into feature/campaign 2015-03-03 11:24:26 +02:00
yuri 225f407545 cleanup 2015-03-03 11:23:19 +02:00
yuri f10dd19446 campaign 2015-03-03 11:20:56 +02:00
yuri 78d5547e08 Merge branch 'hotfix/3.0.2' 2015-03-03 11:00:32 +02:00
yuri af08f23ca1 de_DE changes 2015-03-03 11:00:19 +02:00
yuri 99d2f14008 campaign dev 2015-03-02 17:52:23 +02:00
yuri a90a2b859d Merge branch 'master' into feature/campaign 2015-03-02 13:26:26 +02:00
yuri b0edae1eae Merge branch 'hotfix/3.0.2' 2015-03-02 13:25:56 +02:00
yuri a5d923c4e3 add ms. to salutation 2015-03-02 13:25:17 +02:00
yuri 86e118341e Merge branch 'master' into feature/campaign 2015-03-02 12:56:06 +02:00
yuri ed152c9d4c Merge branch 'hotfix/3.0.2' 2015-03-02 12:55:53 +02:00
yuri 8fa805f5eb fix person name salutation 2015-03-02 12:55:35 +02:00
yuri 16ce5385f4 campaign dev 2015-03-02 12:24:57 +02:00
yuri d1fe581706 Merge branch 'master' into feature/campaign 2015-03-02 12:02:55 +02:00
yuri dc651b5d77 refactor detail-bottom 2015-03-02 12:02:34 +02:00
yuri be3dabe5a7 campaign dev 2015-03-02 11:55:43 +02:00
yuri 21326ec3b5 Merge branch 'master' into feature/campaign 2015-03-02 10:25:38 +02:00
yuri 8b851463bc change container padding 2015-02-27 17:32:42 +02:00
yuri d4a3eb1026 change target list layout 2015-02-27 17:18:24 +02:00
yuri 0980120184 fix taget list service 2015-02-27 15:49:48 +02:00
yuri db275028d1 Merge branch 'master' into feature/campaign 2015-02-27 15:49:33 +02:00
yuri f78004b9d3 fix loadAddition 2015-02-27 15:47:30 +02:00
yuri bac0227675 Merge branch 'master' into feature/campaign 2015-02-27 15:44:59 +02:00
yuri 9f84faa776 fix loadAdditionalFieldsForList 2015-02-27 15:44:28 +02:00
yuri 639c52d1d6 fix relation 2015-02-27 15:36:46 +02:00
yuri 811db09a1d calculate entryCount 2015-02-27 15:24:27 +02:00
yuri 9c61e03542 Merge branch 'master' into feature/campaign 2015-02-27 15:24:11 +02:00
yuri 3e4e86bd5a refactor Record 2015-02-27 15:15:03 +02:00
yuri 5acf253a98 campaign 2015-02-27 15:10:06 +02:00
yuri 84cfcd4352 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-27 12:28:02 +02:00
Taras Machyshyn 73f3673a11 Improved unique indexes for relationship tables 2015-02-27 12:27:37 +02:00
yuri 2c18f75152 Merge branch 'master' into feature/campaign 2015-02-27 12:25:39 +02:00
yuri 3601ee35bd change layouts 2015-02-27 12:25:28 +02:00
yuri 76379f49be Merge branch 'master' into feature/campaign 2015-02-27 12:21:47 +02:00
yuri 1f1fc9111f change lead list layout 2015-02-27 12:21:33 +02:00
yuri 334bd55ad6 Merge branch 'master' into feature/campaign 2015-02-27 12:20:44 +02:00
yuri 2f9f0964ed change contact list layouts 2015-02-27 12:20:28 +02:00
yuri b5b04f85d0 Merge branch 'master' into feature/campaign 2015-02-27 12:14:50 +02:00
yuri 554f5de0af fix createLink 2015-02-27 12:14:36 +02:00
yuri 5f528c9f6f Merge branch 'master' into feature/campaign 2015-02-27 12:10:28 +02:00
yuri 64b98a7a3c mass relate 3 2015-02-27 12:10:16 +02:00
yuri 74c9d5a8e6 fix email address and phone number repository 2015-02-27 12:02:28 +02:00
yuri ff2ca7f18c mass relate dev 2 2015-02-26 17:14:44 +02:00
yuri a0203d3310 fix search manager 2015-02-26 16:05:57 +02:00
yuri bddd55213f merge with hotfix 2015-02-26 15:55:00 +02:00
yuri fa97c0ede4 fix selectRElated filters copied 2015-02-26 15:50:41 +02:00
yuri 1dbfe36d1e select all dev 2015-02-26 15:48:11 +02:00
yuri ec898f297a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-26 14:49:00 +02:00
Taras Machyshyn 67049d2f08 DBAL: added an unique index for midKeys of manyMany relationship table 2015-02-26 14:42:14 +02:00
yuri a2c7f84907 ORM: massRelate 2015-02-26 13:24:32 +02:00
yuri 338ba010a2 fix relationship 2015-02-26 11:52:27 +02:00
yuri a9737e8352 Merge branch 'master' into feature/campaign 2015-02-26 11:23:01 +02:00
yuri fb8a4b90ca maxEmailAccountCount 2015-02-26 11:16:57 +02:00
yuri 6876bd9a6d cleanup 2015-02-25 15:16:25 +02:00
yuri 392f107de1 emails: dont show attachments if there are no 2015-02-25 14:57:58 +02:00
yuri 17ab2cc717 fix quickDetail 2015-02-25 13:42:01 +02:00
yuri abddb6c686 change email history layout 2015-02-25 13:21:08 +02:00
yuri 0a5ec4b81c cleanup and backdrop for quickDetail 2015-02-25 13:14:50 +02:00
yuri ddba654f00 quickDetail and fixes in list expanded 2015-02-25 13:08:32 +02:00
yuri 27a5833b36 change text field detailMaxNewLineCount 2015-02-25 11:11:09 +02:00
yuri c4cc29b452 remove contract php files 2015-02-25 10:22:20 +02:00
yuri ac56846e1b trim person name, phone and email 2015-02-25 10:21:04 +02:00
yuri efb7592782 fix typo 2015-02-25 10:15:00 +02:00
yuri 6c40c5a20c improve emails notes 2015-02-25 10:13:34 +02:00
yuri 724c79d089 fix sentEmail note in case 2015-02-24 18:36:47 +02:00
yuri 7148cb232b improve wysiwyg field 2015-02-24 17:52:02 +02:00
yuri 9943d1794b fix iframe resize 2015-02-24 17:06:57 +02:00
yuri 972615c8e6 Added Campaigns and Target Lists 2015-02-24 15:57:34 +02:00
yuri 213546b83f enable multi-enum filter 2015-02-23 17:29:09 +02:00
yuri e23345edc6 use getEntityType 2015-02-23 17:09:15 +02:00
yuri 7af38e8d21 fix leads detail-side 2015-02-23 17:05:15 +02:00
yuri b1e62ecb20 add getEntityType into entity 2015-02-23 17:05:00 +02:00
yuri f05e3924ff fix mass-update layouy and leads side panel 2015-02-23 16:54:06 +02:00
yuri 2ccb9c3a17 noJoin links 2015-02-23 16:53:48 +02:00
yuri c64d27f413 fix record list dashlet 2015-02-23 16:12:58 +02:00
yuri 2a3711d0b4 improve search manager 2015-02-23 16:05:15 +02:00
yuri 2baace4ef9 fix Zend issues 2015-02-23 15:30:45 +02:00
yuri aa501a4429 fix my opportunities dashlet 2015-02-20 17:35:49 +02:00
yuri 3095f61011 change opportunity dashlet layout 2015-02-20 17:31:33 +02:00
yuri 001de70fe8 show only future calls and meetings in dashlet 2015-02-20 17:21:06 +02:00
yuri 58733450d1 steam status styles 2015-02-20 17:06:45 +02:00
yuri 0605672c32 cleanup 2015-02-20 16:33:49 +02:00
yuri 0c570b0d83 cleanup 2015-02-20 16:31:17 +02:00
yuri 0833428b71 no subject 2015-02-20 16:10:17 +02:00
yuri 4c4714a846 disabledCountQuery 2015-02-20 14:59:40 +02:00
yuri 155cd428f6 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-20 11:53:04 +02:00
yuri 06bde4f1ce move autoFollow to job 2015-02-20 11:51:31 +02:00
yuri 6112a9d02d job: pending jobs fix 2015-02-20 11:51:11 +02:00
yuri a3f4beac61 autofill executeTime if notset 2015-02-20 11:50:25 +02:00
yuri b116821731 cron: don't fail jobs if pending and expired 2015-02-20 10:46:46 +02:00
Taras Machyshyn 3439267926 merge changes 2015-02-19 17:12:31 +02:00
yuri 1ac55737b4 optimization 2015-02-19 16:07:18 +02:00
yuri c66cfeb297 auto-follow 2015-02-19 15:28:49 +02:00
yuri 85f9fe6f3b fix link autocomplete 2015-02-19 13:44:10 +02:00
yuri fe9154fde7 autocomplete off 2015-02-19 13:21:03 +02:00
yuri bdc7bbada4 fix autocomplete off 2015-02-19 13:19:03 +02:00
yuri 9f4a203abe Merge branch 'hotfix/3.0.1' 2015-02-18 18:07:19 +02:00
yuri a89872b785 3.0.1 2015-02-18 17:13:41 +02:00
yuri b6bc0471b8 Merge branch 'hotfix/3.0.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/3.0.1 2015-02-18 17:05:02 +02:00
yuri c38544e6ad refresh dashlet on header 2015-02-18 15:56:54 +02:00
yuri 6122edb091 cleanup 2015-02-18 15:13:36 +02:00
yuri 684441040c limitQuery 2015-02-18 15:10:30 +02:00
yuri 55c733b13a ability to to execute count query to know about out of range 2015-02-18 15:06:53 +02:00
yuri dc7571d30c fix findMyQuery 2015-02-18 15:05:53 +02:00
yuri 699c1d1f23 ORM: findByQuery 2015-02-18 12:36:11 +02:00
yuri f67fbbd621 calendar distinguish by status 2015-02-18 12:09:42 +02:00
yuri dbcc7e61c1 calendar resize fix 2015-02-18 11:30:50 +02:00
Taras Machyshyn afd0f5a5ef Extensions: don't run afterUninstall script for updating an extension 2015-02-18 09:53:53 +02:00
yuri 859f1f0cd9 ability to refresh calendar 2015-02-17 17:41:32 +02:00
yuri 3f8ccb69fc fix calendar shade color 2015-02-17 17:28:58 +02:00
yuri ba65ccffe4 Merge branch 'hotfix/3.0.1' 2015-02-17 16:49:40 +02:00
yuri 533fff4d30 Merge branch 'hotfix/3.0.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/3.0.1 2015-02-17 16:49:03 +02:00
yuri 7b0b3d05ad fix zend mail 2015-02-17 16:46:13 +02:00
Taras Machyshyn e09c101f82 Upgrades: fixed an error 2015-02-17 16:45:21 +02:00
yuri c87c657b02 calendar shade past activities 2015-02-17 16:45:03 +02:00
Taras Machyshyn 4e6b300477 Upgrades: improved restore functionality 2015-02-17 16:39:51 +02:00
Taras Machyshyn 7453eb583a impoved Uprades code 2015-02-17 15:53:35 +02:00
Taras Machyshyn b5d2eb93aa Upgrades: impoved beforeRunAction(), afterRunAction() 2015-02-17 15:53:27 +02:00
Taras Machyshyn b5b8ab4a8e added initialize(), finalize() methods to upgrade scripts 2015-02-17 15:53:18 +02:00
Taras Machyshyn b6010a7ad7 added a new fileManager test, fixes 2015-02-17 15:53:07 +02:00
Taras Machyshyn ebdb649bd7 Improved upgrade/install extenions feature 2015-02-17 15:52:53 +02:00
Taras Machyshyn ec17306992 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-17 15:50:36 +02:00
Taras Machyshyn 9b6bf4171b impoved Uprades code 2015-02-17 15:43:51 +02:00
yuri 252b5ef729 Merge branch 'hotfix/3.0.1' 2015-02-17 15:39:24 +02:00
yuri 220d4d1b77 improve importer 2015-02-17 15:21:47 +02:00
yuri 2f8e1aeaf2 fix field iframe wysiwyg height 2015-02-17 14:57:17 +02:00
Taras Machyshyn ced41021f0 Upgrades: impoved beforeRunAction(), afterRunAction() 2015-02-17 13:46:37 +02:00
Taras Machyshyn 36e3cc4688 added initialize(), finalize() methods to upgrade scripts 2015-02-17 13:02:02 +02:00
yuri 20db3b0bd2 improve email quick-edit 2015-02-17 12:25:39 +02:00
Taras Machyshyn 0ab702726d added a new fileManager test, fixes 2015-02-17 12:03:55 +02:00
yuri 6d796c0b20 fix stream note header 2015-02-17 11:50:04 +02:00
yuri 100fec9409 increase notifications panel width 2015-02-17 11:15:54 +02:00
yuri 0b5beeba85 play sound when notification comes 2015-02-17 11:10:07 +02:00
Taras Machyshyn dec5ab6a16 Improved upgrade/install extenions feature 2015-02-17 11:02:01 +02:00
yuri 909d31b9fe frontend: improve notification 2015-02-17 10:59:28 +02:00
yuri d9522cf555 fix navbar resize 2015-02-17 10:39:01 +02:00
yuri e42a877bf6 try catch for importing emails 2015-02-17 10:36:44 +02:00
yuri 68cbadda4c improve header menu 2015-02-16 16:00:51 +02:00
yuri 8beeb64cbf log checkemail errors 2015-02-16 14:56:28 +02:00
yuri da3a18e766 Duplicate email check by messageId instead of messageIdInternal 2015-02-16 12:43:57 +02:00
yuri ffb94b960d fix entity manager 2015-02-13 16:24:31 +02:00
yuri f73ac0779b restoreDate and afterSave 2015-02-13 12:30:36 +02:00
yuri 8003af682e email account create fix 2015-02-12 18:32:37 +02:00
yuri cbf7bf18f2 fix preferences saving 2015-02-12 17:54:22 +02:00
yuri ceaa0a8322 refresh email list view after send 2015-02-12 16:49:53 +02:00
yuri 8ca410d994 fix calendar 2015-02-12 16:44:12 +02:00
yuri 5fc7f2509d fix app.js 2015-02-12 16:08:15 +02:00
yuri f2e1ba3780 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-11 15:53:49 +02:00
yuri 93ac871640 change year 2015-02-11 15:53:39 +02:00
Taras Machyshyn 187a8a02a1 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-11 12:44:18 +02:00
Taras Machyshyn bcf5686eec fixed getModuleList() 2015-02-11 12:44:05 +02:00
yuri 027507b61e display task in top bar in calendar 2015-02-11 11:59:15 +02:00
yuri 49b3d17952 change default filters 2015-02-11 11:27:00 +02:00
yuri e0958cfeec improve notifications 2015-02-11 11:00:43 +02:00
Taras Machyshyn 00e12b50b7 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-10 15:02:17 +02:00
Taras Machyshyn 44b8b00106 fixed calendar issue in IE 2015-02-10 15:02:02 +02:00
yuri e0855e3092 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-10 13:24:10 +02:00
yuri cb0d70430a ability to remove stream records for admin 2015-02-10 13:22:58 +02:00
Taras Machyshyn 042575ce6b improved 'fieldManager' 2015-02-10 12:46:19 +02:00
yuri 5cd18b57d2 industry list update 2015-02-10 12:25:14 +02:00
yuri d1e46e3d9a fix field manager 2015-02-10 11:56:13 +02:00
yuri 1a3348f2c2 change user entityDefs links 2015-02-10 11:41:58 +02:00
yuri 75edc5c165 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-10 11:30:17 +02:00
yuri 60184ebbbe ability to disable fields and link for layout manager 2015-02-10 11:30:05 +02:00
yuri ddb6cb7483 Clear link-multiple field input if not selected 2015-02-10 10:32:45 +02:00
Taras Machyshyn 2ddd44a2fe Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-09 17:11:08 +02:00
Taras Machyshyn ce55866445 added check 'php' version for extension/upgrade packages 2015-02-09 17:10:46 +02:00
Taras Machyshyn 2bc7f85a58 added getPhpVersion() 2015-02-09 17:07:06 +02:00
yuri a27df2c41f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-09 13:01:36 +02:00
yuri 170581dd28 fetched values for linkMultiple fields 2015-02-09 13:01:18 +02:00
Taras Machyshyn 00b0c904ae fixed warnings 2015-02-09 12:14:27 +02:00
yuri fdab17265f change version 2015-02-09 12:12:27 +02:00
Taras Machyshyn 96d0a7db00 bug fixes 2015-02-09 11:32:39 +02:00
Taras Machyshyn 2835928ac0 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-06 17:37:32 +02:00
Taras Machyshyn 4c22b42b99 fixed cache bug for Extensions 2015-02-06 17:37:11 +02:00
yuri 64ddaa40a8 add reminder time 2015-02-06 16:17:04 +02:00
yuri bc7006e193 open url field in new pahe 2015-02-06 15:51:45 +02:00
yuri 1ae0a9df28 inline download: add types 2015-02-06 15:05:56 +02:00
yuri a4f9280eba cleanup 2015-02-06 13:23:36 +02:00
yuri 2528fc34c8 Enable User tab 2015-02-06 13:16:41 +02:00
yuri 979f07bf9b Merge improvements 2 2015-02-06 12:19:13 +02:00
yuri 52bff4de1c fix service factory 2015-02-06 12:16:31 +02:00
Taras Machyshyn 4c017361f8 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-06 11:38:41 +02:00
Taras Machyshyn 84aa1339d9 fixed a bug with php reserved names for classes 2015-02-06 11:38:26 +02:00
yuri 987cd4a121 Import Email: fix issue with text and html attachments 2015-02-06 11:38:20 +02:00
yuri e50ad5106f Load user data each time app starts 2015-02-06 10:47:34 +02:00
yuri 071cbcb0fb cleanup 2015-02-06 10:47:18 +02:00
yuri 43f1cb9af9 Field Manager:Reload metadata when field is saved 2015-02-06 10:46:50 +02:00
yuri 220c55e9b4 fix entity manager 2015-02-06 10:02:14 +02:00
yuri 927610efb0 clearnup 2015-02-06 09:55:30 +02:00
yuri 78fcaf1fa3 update handlebars 2015-02-06 09:39:55 +02:00
yuri 3bd9af031d cleanup 2015-02-05 19:05:06 +02:00
yuri 16ee3d68e8 merge changes 1 2015-02-05 18:13:08 +02:00
yuri d49ee3c187 fix select and create 2015-02-05 16:31:39 +02:00
Taras Machyshyn 2e544f1ccf Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-05 15:05:08 +02:00
Taras Machyshyn 1c51125e66 changed 'acceptedVersions' identifier to semantic versioner 2015-02-05 15:04:51 +02:00
yuri 1ed47f5d0d fix navbar update width 2015-02-05 13:35:47 +02:00
yuri 133fa0cb36 note order 2015-02-05 12:53:44 +02:00
yuri 295904bf4c change admin tpl 2015-02-05 11:59:32 +02:00
yuri 951230f7e1 change admin tpl 2015-02-05 11:57:24 +02:00
yuri ee58886206 fix imap encoding issue 2015-02-05 11:56:52 +02:00
yuri 41575f6f13 add industry 2015-02-05 11:22:36 +02:00
yuri 18ae33d417 send password only to active users 2015-02-05 11:16:22 +02:00
yuri 36daf5a762 iframe 2015-02-05 11:01:55 +02:00
yuri 8a41a2cd05 change calls/meetings dashlet order 2015-02-05 10:24:01 +02:00
yuri 61497d2a01 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-04 17:07:00 +02:00
yuri a3045a88f3 Inbound Email improve 2015-02-04 17:06:50 +02:00
Taras Machyshyn fd072520a9 fixed tests 2015-02-04 17:01:01 +02:00
yuri 6ef9d8428f improve js actions 2015-02-03 16:15:39 +02:00
yuri 33a7176165 blockquote 2015-02-03 15:53:52 +02:00
yuri 044de7d744 stream info 2015-02-03 13:15:14 +02:00
yuri 801ba05cd8 afterDelete beforeDelete 2015-02-03 12:45:54 +02:00
yuri 0dc5a4e4f3 after/before Create/Update in Record service 2015-02-03 12:43:56 +02:00
yuri 230ed63e67 getEntityBeforeUpdate 2015-02-03 12:38:10 +02:00
yuri 7316866a1a Merge branch 'hotfix/2.9.3' 2015-02-03 12:36:44 +02:00
yuri c7be54d9c9 fix textcomplete 2 2015-02-03 12:36:26 +02:00
yuri dcc118ec5d Merge branch 'hotfix/2.9.3' 2015-02-03 12:18:14 +02:00
yuri 84e98054b7 fix textcomplete 2015-02-03 12:17:39 +02:00
yuri f37308f5a5 lead source changes 2015-02-03 11:58:54 +02:00
yuri 9688b3be3c clearnup 2015-02-02 18:09:41 +02:00
yuri 6490a1ca97 cleanup 2015-02-02 17:19:55 +02:00
yuri c15fc89f52 refresh panel 2015-02-02 15:35:35 +02:00
yuri 9207030ccb row actions change to avoid user removing 2015-02-02 15:00:27 +02:00
yuri 018eb44de6 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-02 12:49:46 +02:00
yuri bc92b96a6b user isActive 2 2015-02-02 12:49:37 +02:00
yuri ee57c9223c User:isActive 2015-02-02 12:22:37 +02:00
Taras Machyshyn f799ffc61f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-02-02 12:10:21 +02:00
Taras Machyshyn bdb1f2f3b6 improved Util::merge() functionality 2015-02-02 12:10:04 +02:00
yuri fd755df67b Merge branch 'hotfix/2.9.3' 2015-02-02 11:21:14 +02:00
yuri e9edd01d08 modified date and id for remove 2015-02-02 11:21:00 +02:00
yuri dea7e0b33e modified date and id for remove 2015-02-02 11:20:28 +02:00
yuri 25b50baa1a showPanel/hidePanel 2015-01-30 16:09:43 +02:00
yuri 8a53657b9c text search by email address 2015-01-30 15:51:47 +02:00
yuri c6ecbf4942 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-01-30 14:55:51 +02:00
yuri 56d11807a1 access check in select managers change 2015-01-30 14:52:34 +02:00
yuri cf3b4b284a record.base 2015-01-30 14:47:14 +02:00
yuri 953a59cb57 no create for users and teams in subpanels 2015-01-30 13:13:38 +02:00
yuri f60061a387 Merge branch 'hotfix/2.9.3' 2015-01-30 12:54:00 +02:00
yuri c627d84273 cleanup 2015-01-30 12:53:52 +02:00
Taras Machyshyn 5a16ee0493 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-01-29 17:11:28 +02:00
Taras Machyshyn 14252d6e9e FileManager: improved 'remove()' functionality 2015-01-29 17:11:16 +02:00
yuri c0de3e1c4e Merge branch 'stable' 2015-01-29 13:00:11 +02:00
yuri e0c3530ae5 change version 2015-01-29 12:34:13 +02:00
yuri 8b4070f9ae Merge branch 'hotfix/2.9.2' 2015-01-29 12:14:13 +02:00
yuri 0b6c5c2862 Merge branch 'hotfix/2.9.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.9.2 2015-01-29 12:13:54 +02:00
yuri ce9ff10cb0 fix imap 2015-01-29 12:03:43 +02:00
Taras Machyshyn de688bfa12 CronManager minor changes 2015-01-29 11:44:47 +02:00
yuri f4ef5fc36f add tentative event status 2015-01-28 17:04:45 +02:00
yuri b1e184c6d1 link manager dev 2015-01-28 16:38:27 +02:00
yuri fbf665fd76 Merge branch 'hotfix/2.9.2' 2015-01-28 10:39:14 +02:00
yuri 95fd66a7a6 Entity::isSaved 2015-01-28 10:38:57 +02:00
yuri 4b98ea79e0 change link manager edit modal 2015-01-28 10:19:17 +02:00
yuri 2e916a2ba8 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-01-27 17:31:13 +02:00
yuri 26a4d1c6ff link manager dev 2015-01-27 17:31:00 +02:00
Taras Machyshyn 33fef4c90e Merge branch 'hotfix/2.9.2' 2015-01-27 17:19:18 +02:00
yuri 2dc15294fc Merge branch 'hotfix/2.9.2' 2015-01-27 16:30:26 +02:00
yuri 171df33736 move logic to Repository::afterSave 2015-01-27 16:27:05 +02:00
yuri 9b846b45bc link manager dev 2015-01-27 16:21:22 +02:00
yuri bc65975f74 fix in default config 2015-01-27 11:53:55 +02:00
yuri a5308831f2 Merge branch 'hotfix/2.9.2' 2015-01-27 11:42:17 +02:00
yuri ef05e4e9f4 add cryptKey to systemItems 2015-01-27 11:40:51 +02:00
yuri 83f0a81eb7 add global Search Entity List param 2015-01-27 11:21:06 +02:00
yuri 9e28d4a261 change meetings and calls dashlets layouts 2015-01-27 10:30:48 +02:00
yuri a9b3320302 Merge branch 'hotfix/2.9.2' 2015-01-26 17:36:21 +02:00
yuri b67580ee1d Merge branch 'hotfix/2.9.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.9.2 2015-01-26 17:36:06 +02:00
yuri 884ccb5265 Select Managers changes and Email changes 2015-01-26 17:35:43 +02:00
Taras Machyshyn ac56c3f79e added 'Cleanup' job 2015-01-26 15:24:10 +02:00
Taras Machyshyn e218056683 Cron job improvements 2015-01-26 12:28:00 +02:00
yuri 838288a463 Merge branch 'hotfix/2.9.2' 2015-01-26 12:11:30 +02:00
yuri e74b90d048 fix email notFound 2015-01-26 11:12:25 +02:00
yuri b2a653a3dc fix App controller 2015-01-26 11:09:54 +02:00
yuri 48ee7d4cc7 Merge branch 'hotfix/2.9.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.9.2 2015-01-23 18:19:25 +02:00
yuri 1d38f80748 improve email accounts 2015-01-23 18:19:02 +02:00
Taras Machyshyn c712366737 cron jobs improvements and fixes 2015-01-23 17:44:59 +02:00
yuri 71f40fd440 checlemailaccounts job 2015-01-23 17:12:12 +02:00
yuri 9049ebfa8c fix email importer 2015-01-23 17:05:33 +02:00
yuri f4b9356173 em dev 2015-01-22 15:55:11 +02:00
yuri beaa4a29ba Merge branch 'hotfix/2.9.1' 2015-01-22 15:32:36 +02:00
yuri 632ee66155 Merge branch 'hotfix/2.9.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.9.1 2015-01-22 15:14:25 +02:00
yuri 4446bc3167 fix oauth client 2015-01-22 15:14:16 +02:00
Taras Machyshyn 785934c7cc Language: chnaged set(), delete() methods 2015-01-22 14:49:40 +02:00
Taras Machyshyn ac36096d55 Merge branch 'hotfix/2.9.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.9.1 2015-01-22 13:15:15 +02:00
Taras Machyshyn 8ec8cb3c56 Metadata: fixed description 2015-01-22 13:14:55 +02:00
Taras Machyshyn 1f7cb2402d changed Metadata methods set(), get(), added save() 2015-01-22 13:14:06 +02:00
yuri 987ba2faa5 EM dev 2015-01-22 12:10:53 +02:00
yuri a24f697dca Merge branch 'hotfix/2.9.1' 2015-01-22 11:41:42 +02:00
yuri 3825893ec1 integrations changes 2015-01-22 11:28:17 +02:00
yuri a4ed78b953 change version 2015-01-21 17:22:08 +02:00
yuri c7947d0c46 Merge branch 'hotfix/2.9.1' 2015-01-21 17:13:48 +02:00
yuri eed9059913 integration changes 2015-01-21 17:11:12 +02:00
yuri 20a1053413 fix select manager 2015-01-21 15:50:41 +02:00
yuri 16aca57f17 em deb 2015-01-21 15:30:02 +02:00
yuri a225748840 make documents customizable 2015-01-21 15:19:06 +02:00
yuri fff1be9d07 entity manager dev 2015-01-21 15:13:37 +02:00
yuri b73ca3f1bc change accountInfo messages 2015-01-20 18:14:48 +02:00
yuri 93a4f999b6 entity manager 2 2015-01-20 18:01:05 +02:00
yuri 3030643ce4 entity manager 1 2015-01-20 16:40:04 +02:00
Taras Machyshyn e814ea9ec6 added 'save()' method to Layout 2015-01-20 15:34:29 +02:00
Taras Machyshyn de16e9a9ce added '2015' to 'About' page 2015-01-20 12:36:52 +02:00
Taras Machyshyn 62fba991e2 fixed pt_BR translation syntax errors 2015-01-20 12:31:46 +02:00
Taras Machyshyn 832c63e014 added 'getPhpContents()' to FileManager 2015-01-20 12:22:04 +02:00
yuri 46913c3574 cleanup 2015-01-20 10:55:04 +02:00
yuri 0194d364b8 change opportunity list small layout 2015-01-19 15:09:30 +02:00
yuri 1c7785f6ba fix salutation list 2015-01-19 10:41:45 +02:00
yuri 1049ec56eb change version 2015-01-16 17:04:31 +02:00
yuri 734936b605 fix moment 2015-01-16 13:21:18 +02:00
yuri 67e1a088ff Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-01-16 11:06:31 +02:00
yuri af623631d1 change gitignore 2015-01-16 11:06:16 +02:00
Taras Machyshyn 8035bc424e added 2015 to the license 2015-01-15 15:36:20 +02:00
Taras Machyshyn 7e99cd94b3 changed link title 2015-01-15 12:22:47 +02:00
Taras Machyshyn a88218aceb added 'desabled' option for popupNotifications 2015-01-15 12:04:28 +02:00
yuri e5fd4dac4d update fullcalendar and moment 2015-01-15 10:59:06 +02:00
yuri 26d407bd68 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-01-15 10:31:25 +02:00
yuri 80ad96cce6 Merge branch 'hotfix/2.8.2' 2015-01-15 10:31:09 +02:00
yuri 1d85ac3428 fix customLabel 2015-01-14 15:34:37 +02:00
yuri ca5dfd851d customLabels for list 2015-01-14 15:12:37 +02:00
Taras Machyshyn 8c76b88b8d improved notifications 2015-01-14 15:02:45 +02:00
yuri ff5616c399 fix field manager 2015-01-14 14:36:09 +02:00
yuri 2027b5aca9 method name change in app.js 2015-01-14 10:58:04 +02:00
yuri a43e401ce7 fix nl_NL 2015-01-14 09:42:04 +02:00
yuri 396e2c176c fix lang 2015-01-14 09:41:18 +02:00
Taras Machyshyn 4ab40990f5 fixed a test 2015-01-13 16:23:40 +02:00
Taras Machyshyn 35e325d8d0 improving metadata caching 2015-01-13 16:17:59 +02:00
Taras Machyshyn b947d667d6 added 'module.json' - options for modules 2015-01-13 13:48:01 +02:00
yuri b4ab83d2d8 Merge branch 'hotfix/2.8.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.8.2 2015-01-13 10:43:19 +02:00
yuri 74adfb8b3e update nl_NL 2015-01-13 10:43:01 +02:00
Taras Machyshyn 63bea467c3 Merge branch 'hotfix/2.8.2' 2015-01-12 16:53:19 +02:00
Taras Machyshyn cf449bba31 Merge branch 'hotfix/2.8.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.8.2 2015-01-12 15:18:25 +02:00
Taras Machyshyn d247557fa9 Improving pt_BR translation by Bruno Franca 2015-01-12 15:18:01 +02:00
Taras Machyshyn bcd1c9618d fixed error message with permission denied 2015-01-12 15:15:11 +02:00
yuri cb1c87155f Merge branch 'hotfix/2.8.2' 2015-01-12 12:13:32 +02:00
yuri 0b757b94a4 Merge branch 'hotfix/2.8.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.8.2 2015-01-12 12:13:07 +02:00
yuri 4ffcca7978 sanitize 2015-01-12 12:12:47 +02:00
Taras Machyshyn aac68b9624 Fix error when 'data' directory is not writable 2015-01-12 11:21:44 +02:00
yuri 4b0aeea778 Merge branch 'hotfix/2.8.2' 2015-01-12 11:17:58 +02:00
yuri 1b9522f89c Merge branch 'hotfix/2.8.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.8.2 2015-01-12 11:17:34 +02:00
yuri 391f77d6f8 navbar fix 2015-01-12 11:17:17 +02:00
Taras Machyshyn feb8a300d9 remove test code 2015-01-09 17:43:28 +02:00
Taras Machyshyn e2e77d59f9 Merge branch 'hotfix/2.8.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.8.2 2015-01-09 17:39:01 +02:00
Taras Machyshyn 2cb2d2cc2d bug fixing in Util 2015-01-09 17:38:39 +02:00
Taras Machyshyn d62c83d869 'Language' saving improvements 2015-01-09 17:25:43 +02:00
Taras Machyshyn 0639ab8424 Json helper improvements 2015-01-09 17:16:41 +02:00
yuri 9bdc19d3c2 fix mentions 2015-01-09 11:54:27 +02:00
yuri 6e26c093fa remove trailing spaces 2015-01-09 11:42:35 +02:00
yuri ca40c99ac2 improve relationship panels 2015-01-09 11:37:03 +02:00
yuri 6e1cef3d2f Merge branch 'hotfix/2.8.2' 2015-01-09 11:12:48 +02:00
yuri cc6f89366a Import: utf8 message 2015-01-09 11:08:12 +02:00
yuri d0e486a97c Merge branch 'hotfix/2.8.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.8.2 2015-01-09 10:58:45 +02:00
yuri 9c3db209d8 fix export 2015-01-09 10:58:18 +02:00
yuri 3ff6b93ccb Calendar: slotDuration changes 2015-01-08 15:09:12 +02:00
yuri 2bfc86323d remove spaces 2015-01-08 14:57:50 +02:00
Taras Machyshyn ed1a58cd1f cache optimization 2015-01-08 13:10:41 +02:00
Yuri Kuznetsov 3f89bd23af Merge pull request #32 from alasdaircr/ArrayFilters
Allow filtering array field types. fixes #17
2015-01-08 12:18:36 +02:00
Taras Machyshyn e2fa620a81 bug fixes for HookManager 2015-01-08 11:34:41 +02:00
Alasdair Campbell 05b3645321 Allow filtering array field types. fixes #17 2015-01-06 23:46:15 +00:00
yuri 0e71e145bd Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-01-06 13:21:45 +02:00
yuri f13baad163 fix integration data 2015-01-06 13:20:24 +02:00
Taras Machyshyn 2d60fa1edc added custom loaders in metadata 'app' 2015-01-05 17:43:18 +02:00
Taras Machyshyn 2653873ff6 removed support custom loaders 2015-01-05 17:31:01 +02:00
Taras Machyshyn d849cf1115 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2015-01-05 17:23:07 +02:00
Taras Machyshyn 28fcdca977 added custom loaders in metadata 'app' 2015-01-05 17:22:56 +02:00
yuri 3f620ae742 fix navbar resize 2015-01-05 17:14:21 +02:00
yuri 0af8dde821 quick create small fix 2015-01-05 16:41:10 +02:00
yuri 522931c64d meeting/call account field readOnly 2015-01-05 16:23:25 +02:00
yuri 265373bdcb change version 2014-12-30 11:56:16 +02:00
yuri 0dbd649bff Merge remote-tracking branch 'origin/hotfix/2.8.1' into hotfix/2.8.1 2014-12-30 11:55:21 +02:00
yuri 8fa4012267 merge origin 2014-12-30 11:54:37 +02:00
yuri 477a57571b fix preferences smtp password 2014-12-30 11:53:35 +02:00
yuri 1de853ab95 fix test send 2014-12-30 11:48:37 +02:00
yuri 4567d0de78 fix smtp password 2014-12-30 11:29:11 +02:00
Taras Machyshyn b2cc82d7e1 ru_RU translation correction 2014-12-30 11:28:39 +02:00
Taras Machyshyn d3710cd8c0 fix translation 2014-12-29 17:24:19 +02:00
Taras Machyshyn 2a4a9cbaa7 Improved russian traslation 2014-12-29 17:23:58 +02:00
yuri e27d02e782 fix email and phone fields 2014-12-29 16:18:23 +02:00
yuri ea1b7502bb remove $person static prop from Person entity 2014-12-25 16:54:43 +02:00
yuri 69c173bc6c change avatar color 2014-12-25 11:55:42 +02:00
yuri 944fa45e76 change identicon colors 2014-12-25 11:39:45 +02:00
yuri eb2413085c cleanup 2014-12-25 11:32:15 +02:00
yuri 04ecebbfef remove color from identicons 2014-12-24 12:24:57 +02:00
yuri 585ae2a58f fix navbar issue 2014-12-24 12:03:52 +02:00
yuri 9aae12f9ae dont display avatars in activities panels 2014-12-24 11:08:04 +02:00
yuri 73c6cabaa7 fix model:populateFromDefaults 2014-12-23 17:22:49 +02:00
yuri 247075e168 Merge remote-tracking branch 'origin/hotfix/2.8.1' into hotfix/2.8.1 2014-12-23 15:40:01 +02:00
yuri 6791733761 merge origin 2014-12-23 15:39:10 +02:00
yuri f6003088d8 identicons colors 2014-12-23 15:38:19 +02:00
Taras Machyshyn 95f93351ea Integration: fixed array type 2014-12-23 11:56:20 +02:00
yuri b5bd7d043b clearnup 2014-12-22 17:38:32 +02:00
yuri 8095665835 fix dashboard preferences patch 2014-12-22 17:37:48 +02:00
yuri dd3f9d5ff8 fix calendar dashlet 2014-12-22 17:21:52 +02:00
yuri 7c39df74bc fix calendar for mobile 2014-12-22 17:14:49 +02:00
Yuri Kuznetsov 0a1497e3e8 calendar resizr 2014-12-18 16:30:31 +02:00
Yuri Kuznetsov 25b81357c7 de_DE 2014-12-17 11:42:32 +02:00
Yuri Kuznetsov f7f380ff04 Merge remote-tracking branch 'origin/master' 2014-12-17 10:36:20 +02:00
Yuri Kuznetsov a09d99fe53 fix date field 2014-12-17 10:35:20 +02:00
Taras Machyshyn bdd6538984 exclude custom Loaders from .gitignore 2014-12-16 12:34:45 +02:00
Yuri Kuznetsov 2787d3bc72 cleanup 2014-12-15 18:15:58 +02:00
Yuri Kuznetsov 72e53d096f replace tabs 2014-12-15 18:15:35 +02:00
Yuri Kuznetsov acd48513f7 po.js and lang.js 2014-12-15 16:55:42 +02:00
Yuri Kuznetsov 6ffa5654ea fix calendar 2014-12-15 15:38:02 +02:00
Yuri Kuznetsov b2dfdb3446 fix cache 2014-12-15 12:29:41 +02:00
Yuri Kuznetsov dc5934a0ad change reminder interval 2014-12-15 11:41:11 +02:00
Yuri Kuznetsov ec586874a6 change version 2014-12-15 11:39:32 +02:00
Yuri Kuznetsov eb99d643b1 remove outline css 2014-12-12 16:37:56 +02:00
Yuri Kuznetsov f6b37f346f search button 2014-12-12 15:38:11 +02:00
Yuri Kuznetsov 180b31f6fa less changes 2014-12-10 17:11:12 +02:00
Yuri Kuznetsov b16de8591e cleanup 2014-12-10 16:17:35 +02:00
Yuri Kuznetsov f87f418c1b globar search refactor 2014-12-10 16:04:05 +02:00
Yuri Kuznetsov f79fd38478 sendEmailReminders record 2014-12-10 14:59:45 +02:00
Yuri Kuznetsov 2e13f73b34 email reminder 2014-12-10 13:14:26 +02:00
Yuri Kuznetsov 300f442b22 invitation email changes 2014-12-10 11:52:55 +02:00
Yuri Kuznetsov 0f1c31e55a some changes in lang 2014-12-09 18:11:05 +02:00
Yuri Kuznetsov 86633b31d3 change css 2014-12-09 17:20:04 +02:00
Yuri Kuznetsov f60aa78dde popup norifications dev 2014-12-09 17:18:27 +02:00
Yuri Kuznetsov ae77cb1d77 reminder css fix 2014-12-09 15:22:35 +02:00
Yuri Kuznetsov 74d99d8cda upgrade bootstrap 2014-12-09 15:13:20 +02:00
Yuri Kuznetsov a90e0874bd reminders dev 2014-12-09 13:09:11 +02:00
Yuri Kuznetsov 141d20b472 reminders 2 2014-12-08 17:44:25 +02:00
Yuri Kuznetsov 6f08ecc1a7 reminders 1 2014-12-08 15:51:02 +02:00
Yuri Kuznetsov 3e4d6edac8 popup notifications 2 2014-12-05 18:12:18 +02:00
Yuri Kuznetsov 19784fc09c popup notifications 1 2014-12-05 17:46:19 +02:00
Yuri Kuznetsov 554f8cc37c big fix in repository 2014-12-04 17:07:45 +02:00
Yuri Kuznetsov c6153f6af3 calendar fixes 2014-12-04 15:33:54 +02:00
Yuri Kuznetsov 048f5318fc fix calendar 2014-12-04 13:22:14 +02:00
Yuri Kuznetsov 62985c9776 calendar fixes 2014-12-03 18:32:22 +02:00
Yuri Kuznetsov 9b30c02c22 improve export 2014-12-03 16:37:10 +02:00
Yuri Kuznetsov 122f18e8bf remove duration field from mass update 2014-12-03 16:13:46 +02:00
Yuri Kuznetsov 9d316da4e0 fix meeting/call attendees 2014-12-03 15:50:00 +02:00
Yuri Kuznetsov 46439ff394 Merge branch 'hotfix/2.7.3' 2014-12-03 12:25:59 +02:00
Yuri Kuznetsov f73a60ad9f merge hotfix/2.7.3 2014-12-03 12:04:54 +02:00
Yuri Kuznetsov c05a153719 cleanup 2014-12-03 12:04:01 +02:00
Yuri Kuznetsov 094f39e987 fix settings array fields 2014-12-03 12:03:17 +02:00
Yuri Kuznetsov c247def1bc stream changes 2014-12-03 11:20:12 +02:00
Yuri Kuznetsov c7cd372554 clearnup 2014-12-03 11:06:59 +02:00
Yuri Kuznetsov ea951a8738 changes in list and stream list 2014-12-03 11:01:09 +02:00
Yuri Kuznetsov d9973bf353 cleanup 2014-12-03 10:31:51 +02:00
Yuri Kuznetsov 0baaf82909 added disable avatars param 2014-12-03 10:07:30 +02:00
Yuri Kuznetsov e62cb881c9 Merge branch 'hotfix/2.7.3' 2014-12-03 09:57:05 +02:00
Yuri Kuznetsov a965f6037f fix array field sortable 2014-12-03 09:55:50 +02:00
Yuri Kuznetsov d6251f995c stream tab 2014-12-03 09:49:51 +02:00
Yuri Kuznetsov 483c971e3e stream centered 2014-12-02 17:47:28 +02:00
Yuri Kuznetsov 3186dcc65f stream and dashlet scopes 2014-12-02 17:33:22 +02:00
Yuri Kuznetsov e7aeebee8d Merge remote-tracking branch 'origin/master' 2014-12-02 16:32:21 +02:00
Taras Machyshyn 14c3287131 changed indexes name 2014-12-02 16:32:00 +02:00
Yuri Kuznetsov 4754b2db2f Merge remote-tracking branch 'origin/master' 2014-12-02 16:13:22 +02:00
Yuri Kuznetsov 8fa0fae265 add indexes 2014-12-02 16:13:00 +02:00
Taras Machyshyn dc4c4bd084 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-12-02 16:12:17 +02:00
Taras Machyshyn 6a5239cedc added camel case for indexes 2014-12-02 16:12:03 +02:00
Taras Machyshyn 9ea9429757 camel case convertation improvements 2014-12-02 16:11:22 +02:00
Yuri Kuznetsov 20f89cf75a layout manager fix 2014-12-02 15:35:30 +02:00
Yuri Kuznetsov e8acf8aaaf layout manager fixes 2014-12-02 15:05:21 +02:00
Yuri Kuznetsov 0fac47e227 Merge remote-tracking branch 'origin/master' 2014-12-02 13:20:08 +02:00
Yuri Kuznetsov fe3cc09623 orm refactor 2014-12-02 13:19:45 +02:00
Taras Machyshyn 91445f2f9c indexes improvements 2014-12-02 12:25:38 +02:00
Yuri Kuznetsov 053d516bc9 user avatars in user list view 2014-12-02 11:21:01 +02:00
Yuri Kuznetsov 63a9f67bd9 fix avatar 2014-12-01 16:58:09 +02:00
Yuri Kuznetsov 344f0227e9 Merge branch 'hotfix/2.7.2' 2014-12-01 14:22:04 +02:00
Yuri Kuznetsov bdeaaa7965 version 2014-12-01 11:00:37 +02:00
Yuri Kuznetsov 2768a975d7 fix crypt 2014-12-01 10:42:56 +02:00
Yuri Kuznetsov 16384b9f72 Merge remote-tracking branch 'origin/master' 2014-11-28 18:14:25 +02:00
Yuri Kuznetsov db9d8e1006 fix css 2014-11-28 18:14:05 +02:00
Taras Machyshyn c7dd503d80 Integration Entity minor fixes 2014-11-28 17:49:30 +02:00
Taras Machyshyn c96265e2a9 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-11-28 17:27:20 +02:00
Taras Machyshyn ff35f7b1ff Integration entity fixes 2014-11-28 17:27:02 +02:00
Yuri Kuznetsov ac1748067b fix crypt 2014-11-28 16:34:20 +02:00
Yuri Kuznetsov a4de09ea36 clenup 2014-11-28 14:22:15 +02:00
Yuri Kuznetsov 0816831fe1 preview attachments in email 2014-11-28 12:57:12 +02:00
Yuri Kuznetsov 2533854745 Merge branch 'hotfix/2.7.1' into stable 2014-11-28 10:50:56 +02:00
Yuri Kuznetsov 0e83325e92 Merge branch 'hotfix/2.7.1' 2014-11-28 10:49:29 +02:00
Yuri Kuznetsov b32f0976ee version 2014-11-28 10:26:21 +02:00
Yuri Kuznetsov 261e52e64d Merge branch 'hotfix/2.7.1' 2014-11-27 17:22:47 +02:00
Yuri Kuznetsov c616baf0a0 fix email sending (hotfix) 2014-11-27 17:21:57 +02:00
Yuri Kuznetsov f1a990e80a fix email sender 2014-11-27 17:14:14 +02:00
Yuri Kuznetsov a3a8110ae6 email archive: accountId from contact 2014-11-27 14:44:12 +02:00
Yuri Kuznetsov 82a213555b cleanup 2014-11-27 14:12:02 +02:00
Yuri Kuznetsov 3590ff2e33 Merge remote-tracking branch 'origin/master' 2014-11-27 14:07:47 +02:00
Yuri Kuznetsov 775cfec744 remove comment 2014-11-27 14:07:22 +02:00
Yuri Kuznetsov 9ca1d6608c archive relate by message id 2014-11-27 12:46:57 +02:00
Yuri Kuznetsov 59140b0814 fix side 2014-11-27 11:14:14 +02:00
Yuri Kuznetsov 90cf300334 cleanup 2014-11-27 11:01:11 +02:00
Taras Machyshyn 7bd3c7cb0d Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-11-27 10:27:09 +02:00
Taras Machyshyn ce75cc90f5 added possibility to define 'view' for intergations 2014-11-27 10:26:52 +02:00
Yuri Kuznetsov 00a911434b change user list layout 2014-11-26 17:44:09 +02:00
Yuri Kuznetsov 69840086c9 Merge branch 'hotfix/2.7.1' 2014-11-26 16:48:12 +02:00
Yuri Kuznetsov 5b2a07310e Merge remote-tracking branch 'origin/hotfix/2.7.1' into hotfix/2.7.1 2014-11-26 16:46:52 +02:00
Yuri Kuznetsov b72f6fa2cc manual merge with hotfix/2.7.1 2014-11-26 16:45:26 +02:00
Yuri Kuznetsov f6ff8e77e4 fix row action translation 2014-11-26 16:44:35 +02:00
Yuri Kuznetsov 9f9d0cb2dc cleanup 2014-11-26 16:43:11 +02:00
Yuri Kuznetsov 6a036595d6 dont notify about mention to current user 2014-11-26 16:29:47 +02:00
Yuri Kuznetsov f4c57046dd cleanup 2014-11-26 15:47:58 +02:00
Taras Machyshyn ff492e2a81 Merge branch 'hotfix/2.7.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.7.1 2014-11-26 15:39:09 +02:00
Taras Machyshyn 1a401381c4 merge improvements 2014-11-26 15:38:46 +02:00
Yuri Kuznetsov 7b507f1bab edit note is wide 2014-11-26 15:35:05 +02:00
Yuri Kuznetsov c0b8c5e7d2 change avatar size 2014-11-26 15:25:49 +02:00
Yuri Kuznetsov 6e49afddf0 Merge branch 'hotfix/2.7.1' 2014-11-26 14:54:50 +02:00
Yuri Kuznetsov 79dfd6177a fix imap folder encoding 2014-11-26 14:53:52 +02:00
Yuri Kuznetsov 4908f281a3 ability to disable avatars 2014-11-26 12:37:59 +02:00
Yuri Kuznetsov 796b51d620 avatar for side field 2014-11-26 12:17:58 +02:00
Yuri Kuznetsov 9cc44cf917 modal backdrop param 2014-11-26 11:16:47 +02:00
Yuri Kuznetsov 9f7eecac73 attachment block fix 2014-11-26 10:47:14 +02:00
Yuri Kuznetsov cba59fe847 EmailReceived Note: dont copy attachments 2014-11-26 10:17:36 +02:00
Yuri Kuznetsov 07df97ab9e ability to use entryPoint w/o build 2014-11-25 18:03:14 +02:00
Yuri Kuznetsov 0a1322843f Fix conflicts on merge with hotfix/2.7.1 2014-11-25 17:48:38 +02:00
Yuri Kuznetsov 6c6a3621e8 avatar 2014-11-25 17:37:16 +02:00
Yuri Kuznetsov 4a075819d1 avatar 3 2014-11-25 17:37:16 +02:00
Yuri Kuznetsov 3aa3914f3a fix notices 2014-11-25 17:37:16 +02:00
Yuri Kuznetsov eef9c3e35c email sending fix 2014-11-25 17:37:16 +02:00
Taras Machyshyn fe61fadc09 fileManager improvements 2014-11-25 17:37:16 +02:00
Taras Machyshyn 4c931514a2 E_STRICT notice fixes 2014-11-25 17:37:16 +02:00
Taras Machyshyn 8ad886d871 addded autoload.json for Resources 2014-11-25 16:44:50 +02:00
Taras Machyshyn 8492916d81 Merge branch 'hotfix/2.7.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.7.1 2014-11-25 12:21:04 +02:00
Taras Machyshyn 917f86a771 fixed merge with empty arrays 2014-11-25 12:20:41 +02:00
Yuri Kuznetsov f3f13a1d96 fix notices 2014-11-25 10:38:08 +02:00
Yuri Kuznetsov f750330171 email sending fix 2014-11-25 10:38:08 +02:00
Taras Machyshyn de19a8274a fileManager improvements 2014-11-24 12:05:49 +02:00
Taras Machyshyn 0d66e4097c E_STRICT notice fixes 2014-11-21 18:23:24 +02:00
Yuri Kuznetsov 93b8745599 Merge branch 'hotfix/2.7.1' 2014-11-21 18:19:39 +02:00
Yuri Kuznetsov 55d54ee2da fix warning 2014-11-21 18:18:29 +02:00
Yuri Kuznetsov fa25dc715f avatar 2 2014-11-21 17:00:30 +02:00
Yuri Kuznetsov c010cf43bf avatar 1 2014-11-21 16:19:47 +02:00
Taras Machyshyn e52177a687 minor improvements 2014-11-21 16:10:25 +02:00
Taras Machyshyn d424e6a282 fixed E_STRICT notice for Orm convertation 2014-11-21 13:08:05 +02:00
Yuri Kuznetsov 51bdd15c9e change password 3 2014-11-20 16:25:43 +02:00
Yuri Kuznetsov b48f10b45f load language on login form 2014-11-20 11:52:10 +02:00
Yuri Kuznetsov 027e928bd3 rename getController for app.js 2014-11-19 16:47:01 +02:00
Yuri Kuznetsov 3cfcfb02de changes in app.js 2014-11-19 16:42:20 +02:00
Yuri Kuznetsov 322df7ff68 Merge branch 'hotfix/2.7.1' 2014-11-19 16:05:45 +02:00
Yuri Kuznetsov d58b9cac40 change password 2 2014-11-19 16:03:33 +02:00
Yuri Kuznetsov cca6567bbd fix query 2014-11-19 16:03:33 +02:00
Yuri Kuznetsov 26eb194ccb small change 2014-11-19 16:03:33 +02:00
Yuri Kuznetsov 9b42ae41e7 change password 1 2014-11-19 16:03:33 +02:00
Yuri Kuznetsov 83916cacd9 cleanup 2014-11-19 16:03:33 +02:00
Yuri Kuznetsov 85b484c04e use jsonObject 2014-11-19 16:03:33 +02:00
Yuri Kuznetsov 0d302e99af clearnup 2014-11-19 16:03:33 +02:00
Yuri Kuznetsov 9e06108d23 fix query 2014-11-19 15:20:17 +02:00
Taras Machyshyn ae4a6fa3d2 EmailTemplate minor improvements 2014-11-18 17:17:26 +02:00
Taras Machyshyn 8f64fdd025 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-11-18 13:36:53 +02:00
Taras Machyshyn 5ee83505af metedata improvements 2014-11-18 13:36:37 +02:00
Yuri Kuznetsov 4527358a53 Merge remote-tracking branch 'origin/master' 2014-11-18 11:58:54 +02:00
Yuri Kuznetsov 51cca50828 some changes in select manager 2014-11-18 11:50:27 +02:00
Taras Machyshyn 8f1752575a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-11-17 17:06:25 +02:00
Taras Machyshyn 29c39fb4fd use MyISAM engine for database 2014-11-17 17:06:04 +02:00
Yuri Kuznetsov 63663ccf6c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-11-17 16:42:48 +02:00
Yuri Kuznetsov 1ba81c3350 Merge branch 'hotfix/2.7.1' 2014-11-17 16:37:15 +02:00
Yuri Kuznetsov e0b9b22ff4 fix check duplicated 2014-11-17 16:34:44 +02:00
Taras Machyshyn f7879f425f added 'indexes' section in entityDefs 2014-11-17 13:11:09 +02:00
Yuri Kuznetsov 93ed5dce6b merge hotfix/2.7.1 2014-11-17 12:07:03 +02:00
Yuri Kuznetsov 17f8f1c291 sort changes 2014-11-17 11:56:04 +02:00
Yuri Kuznetsov bde5ca7b9e fix warning 2014-11-17 10:39:22 +02:00
Yuri Kuznetsov a08adcf6d5 change readme 2014-11-14 16:17:30 +02:00
Yuri Kuznetsov a7bad6aa58 added repository field to package.json 2014-11-14 16:00:07 +02:00
Yuri Kuznetsov 14d83c3a19 Merge branch 'master' into stable 2014-11-12 16:58:35 +02:00
Taras Machyshyn 0ec182727a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-11-12 15:15:28 +02:00
Taras Machyshyn bd4057ed05 improved russian language 2014-11-12 15:15:08 +02:00
Yuri Kuznetsov dcee02aed4 lang 2014-11-12 10:59:03 +02:00
Yuri Kuznetsov 94b59404a7 lang 2014-11-12 10:56:44 +02:00
Taras Machyshyn 77a3b5ee77 ORM converter fixes 2014-11-11 16:35:28 +02:00
Taras Machyshyn 251e100e65 Improve english language 2014-11-11 16:33:53 +02:00
Yuri Kuznetsov e87a69e6a3 clearup 2014-11-11 16:07:13 +02:00
Yuri Kuznetsov e45b98d684 team roles 2014-11-11 13:03:35 +02:00
Yuri Kuznetsov affc40959b decrease list menu-column width 2014-11-11 11:00:20 +02:00
Yuri Kuznetsov e301514ec6 cases changes 2014-11-11 10:57:40 +02:00
Yuri Kuznetsov 0c4c93487d fix acl check 2014-11-10 17:34:46 +02:00
Yuri Kuznetsov 7dc6622dd2 change pie chart 2014-11-10 17:33:51 +02:00
Yuri Kuznetsov d7fea15f59 fix roles 2014-11-10 17:31:40 +02:00
Yuri Kuznetsov e73eb1ccc1 cleanup 2014-11-10 17:26:28 +02:00
Yuri Kuznetsov 3f2cf25ef5 clearnup 2014-11-10 17:25:46 +02:00
Yuri Kuznetsov 76f48900c3 ru_RU lang changes 2014-11-10 10:36:40 +02:00
Yuri Kuznetsov a4d76666ac de_DE language changes 2014-11-10 10:35:31 +02:00
Yuri Kuznetsov 8a4ffb4d58 team layout changes 2014-11-07 16:05:09 +02:00
Yuri Kuznetsov a9abfb41c7 cleanup 2014-11-07 15:46:01 +02:00
Yuri Kuznetsov cee6f58631 ORM: isFetched and isNew changes 2014-11-07 15:21:50 +02:00
Yuri Kuznetsov 4075771a12 remove spare file 2014-11-07 12:42:04 +02:00
Taras Machyshyn 93d596fc95 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-11-07 11:48:47 +02:00
Taras Machyshyn 9559e23e58 Util, tests fixes by elibyy 2014-11-07 11:48:33 +02:00
Yuri Kuznetsov dc6c984b42 remove 0 duration from meeting 2014-11-07 11:38:21 +02:00
Yuri Kuznetsov 143cf3f8a1 fix list record 2014-11-07 11:01:10 +02:00
Yuri Kuznetsov f62436b19c cleanup 2014-11-07 10:55:56 +02:00
Yuri Kuznetsov 7ca524e4ff change in diff.js 2014-11-07 10:52:49 +02:00
Yuri Kuznetsov ed4d5d5083 fix parent field validation 2014-11-07 10:47:05 +02:00
Yuri Kuznetsov 3bea0a130d fix validation 2014-11-06 18:50:01 +02:00
Yuri Kuznetsov 8ac26402a2 cleanup 2014-11-06 18:01:31 +02:00
Yuri Kuznetsov 4ff19c5910 ORM: use complexExporession in getWhere 2014-11-06 17:34:41 +02:00
Yuri Kuznetsov eb08ca638e fix validation 2014-11-06 14:43:35 +02:00
Yuri Kuznetsov c373b97af1 Merge pull request #24 from alasdaircr/reply_to_all
Fix: use semi-colon instead of commas to seperate email addresses in to,...
2014-11-06 10:09:53 +02:00
Alasdair Campbell 6ea461faeb Fix: use semi-colon instead of commas to seperate email addresses in to, cc fields 2014-11-06 01:40:16 +00:00
Yuri Kuznetsov 414576cade Merge pull request #23 from alasdaircr/fix_22_part2
Not showing correct emailaddress
2014-11-05 17:10:27 +02:00
Alasdair Campbell e35655b8a7 Not showing correct emailaddress 2014-11-05 14:58:52 +00:00
Yuri Kuznetsov d8f3b24e31 fix PR 22 2014-11-05 15:10:25 +02:00
Yuri Kuznetsov 771212a9a3 Merge pull request #22 from alasdaircr/emails_and_events
Emails and events
2014-11-05 15:04:30 +02:00
Alasdair Campbell 0d35ba8fe0 Use User SMTP if available to send Event Invitations 2014-11-05 11:59:44 +00:00
Alasdair Campbell fd39508bc5 Rename event invitiation attachments to match the event type 2014-11-05 11:59:44 +00:00
Alasdair Campbell 0299f30055 Generate Message-Id, as this was never returned by SMTP transport 2014-11-05 11:52:09 +00:00
Yuri Kuznetsov 1cdef2245a Merge branch 'master' of https://github.com/espocrm/espocrm 2014-11-05 13:32:48 +02:00
Yuri Kuznetsov 059fdcfd14 Merge pull request #21 from alasdaircr/reply_all
Reply-To-All should include any recipients which are not current user
2014-11-05 13:32:34 +02:00
Yuri Kuznetsov 4d6bb307ba fix link field 2014-11-05 13:30:35 +02:00
Alasdair Campbell c9fb16b8d7 Reply-To-All should include any recipients which are not current user 2014-11-05 11:23:24 +00:00
Yuri Kuznetsov 15b2b3ea8e es_ES language update 2014-11-05 12:30:31 +02:00
Yuri Kuznetsov f442dbd54a b2c support 2014-11-05 11:34:16 +02:00
Yuri Kuznetsov aef3b0acf2 fix dashlet css 2014-11-05 10:49:25 +02:00
Yuri Kuznetsov b0d2d22ab5 calendar acl 2014-11-04 15:08:53 +02:00
Yuri Kuznetsov 44c4ae7d28 ability to edit translated options 2014-11-04 12:24:52 +02:00
Yuri Kuznetsov 426dc4592e change field type 2014-11-04 11:22:52 +02:00
Yuri Kuznetsov db52fb3f0e acl report dashlets 2014-11-04 10:34:38 +02:00
Yuri Kuznetsov 16963fdc58 sort fixes 2014-11-03 16:09:38 +02:00
Yuri Kuznetsov a0b5138216 orders by translated values 2014-11-03 15:45:25 +02:00
Yuri Kuznetsov 515511a0d1 translatedOptions for enum 2014-11-03 12:34:35 +02:00
Yuri Kuznetsov defa668138 fix opporunity dashlet access 2014-11-03 12:08:06 +02:00
Yuri Kuznetsov 526739a798 improve calendar ui 2014-11-03 11:54:36 +02:00
Yuri Kuznetsov 1655153b0a some acl fixes 2014-11-03 11:16:31 +02:00
Yuri Kuznetsov 7cf931897e acl improvements 2014-11-03 11:06:08 +02:00
Yuri Kuznetsov 76f5bcb345 fixes for multi-enum field 2014-10-31 16:24:43 +02:00
Yuri Kuznetsov c112397003 date fields search type order 2014-10-31 15:36:05 +02:00
Yuri Kuznetsov 2edb4d42f9 break long links in text field 2014-10-31 12:30:40 +02:00
Yuri Kuznetsov 3e6ec34c91 email-to-case: attachments to note 2014-10-31 11:39:13 +02:00
Yuri Kuznetsov ec417106cd ability to get container from container 2014-10-31 11:17:07 +02:00
Yuri Kuznetsov d81af3dbed email to case improvements 2014-10-30 17:54:27 +02:00
Yuri Kuznetsov 1d79c0b92b email to case changes 2014-10-30 17:20:20 +02:00
Yuri Kuznetsov 06fa7e99d4 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-30 16:44:26 +02:00
Yuri Kuznetsov 5087adf12a stream css fixes 2014-10-30 16:43:03 +02:00
Yuri Kuznetsov a3e37fc1c0 improve entity getters and settiers 2014-10-30 16:36:37 +02:00
Yuri Kuznetsov 833ef820aa stream service fix 2014-10-30 16:34:59 +02:00
Taras Machyshyn d333d0f3c1 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-30 16:24:57 +02:00
Taras Machyshyn fcead3379b Util impovements 2014-10-30 16:24:43 +02:00
Yuri Kuznetsov 7fa5b30ae9 email to case little change 2014-10-30 16:22:26 +02:00
Yuri Kuznetsov 4f0a1a3fe1 some css for stream 2014-10-30 16:14:48 +02:00
Yuri Kuznetsov d0fd77734c fix sorting 2014-10-30 13:53:19 +02:00
Yuri Kuznetsov e19aca0649 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-30 13:37:44 +02:00
Yuri Kuznetsov 1776972c34 store sort order 2014-10-30 13:31:58 +02:00
Yuri Kuznetsov e3e269cdaa cleanup 2014-10-30 13:29:40 +02:00
Taras Machyshyn c8bfa823e5 Extension Manager improvements 2014-10-30 13:04:49 +02:00
Yuri Kuznetsov 1efc8fe976 dashlet fix 2014-10-30 12:46:15 +02:00
Yuri Kuznetsov d711cbb524 Merge branch 'master' of https://github.com/espocrm/espocrm 2014-10-30 12:26:01 +02:00
Yuri Kuznetsov c485da5b75 Merge pull request #18 from elibyy/master
fixed duplicate keys in JSON
2014-10-30 12:24:57 +02:00
elibyy 32bd385772 fixed duplicate keys in JSON 2014-10-30 11:54:08 +02:00
Yuri Kuznetsov 944e9e5e0b refactor dashlet options 2014-10-29 13:35:06 +02:00
Yuri Kuznetsov 47a9515a15 changed in README 2014-10-29 11:13:10 +02:00
Yuri Kuznetsov fce8bb1acb Update README.md 2014-10-29 09:39:20 +02:00
Yuri Kuznetsov de31441922 populate modifiedAt field on create 2014-10-28 17:25:43 +02:00
Yuri Kuznetsov 706bbf2117 remove compiled css 2014-10-28 17:15:13 +02:00
Yuri Kuznetsov 3d28b46483 add compiled css to gitignore 2014-10-28 17:13:59 +02:00
Yuri Kuznetsov c272f25e07 build bootstrap.css 2014-10-28 17:10:14 +02:00
Yuri Kuznetsov ccbe9e8c31 Merge branch 'master' of https://github.com/espocrm/espocrm 2014-10-28 17:09:16 +02:00
Yuri Kuznetsov bf9f443f86 Merge pull request #15 from alasdaircr/preset_title
Use ellipsis for preset title in dropdown menu fix #14
2014-10-28 17:08:57 +02:00
Alasdair Campbell 532b9cfc7a Use ellipsis for preset title in dropdown menu fix #14 2014-10-28 15:02:02 +00:00
Yuri Kuznetsov b638a22964 space between salutation and name 2014-10-28 15:39:37 +02:00
Yuri Kuznetsov fb5eb60b95 code style fix 2014-10-28 10:28:02 +02:00
Yuri Kuznetsov 9f42fcdc4d disable login button while submitting 2014-10-28 10:19:56 +02:00
Yuri Kuznetsov d48e0a6cfe Merge pull request #12 from alasdaircr/typo
Little typo
2014-10-27 17:38:21 +02:00
Yuri Kuznetsov 8a157729a6 Tasks panel: if no access to tasks then no show error 2014-10-27 17:11:45 +02:00
Yuri Kuznetsov 01fcb13a12 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-27 16:40:44 +02:00
Yuri Kuznetsov 7ddff0b631 login form changes 2014-10-27 16:40:25 +02:00
Yuri Kuznetsov e5e35a872f make multiEnum better sortable 2014-10-27 16:40:02 +02:00
Taras Machyshyn c76b61e65b improved Dutch language 2014-10-27 16:06:32 +02:00
Yuri Kuznetsov 305e9fb74a fix login layout 2014-10-27 16:01:31 +02:00
Yuri Kuznetsov 7d300d1e79 user token field disablef 2014-10-27 15:55:19 +02:00
Yuri Kuznetsov 93f7cbb4e6 fix tpls 2014-10-27 15:52:12 +02:00
Yuri Kuznetsov 70ef83ac54 Merge branch 'master' of https://github.com/espocrm/espocrm 2014-10-27 14:51:09 +02:00
Yuri Kuznetsov 961e709843 fix invitation error 500 if empty email 2014-10-27 11:37:40 +02:00
Yuri Kuznetsov 3bd6e364ca meeting invitation improvements 2014-10-27 11:21:08 +02:00
Yuri Kuznetsov 17cf8da0d3 Update README.md 2014-10-24 22:09:15 +03:00
Yuri Kuznetsov 75c81ccdcf Update README.md 2014-10-24 22:08:09 +03:00
Yuri Kuznetsov df0a958359 fix validate msg 2014-10-24 15:45:45 +03:00
Yuri Kuznetsov 2e69169c9c fix array required 2014-10-24 12:40:16 +03:00
Alasdair Campbell fb7d313393 Little typo 2014-10-23 21:40:09 +01:00
Yuri Kuznetsov 2ab50c2dcc MassRemove and remove fixes 2014-10-23 16:52:51 +03:00
Yuri Kuznetsov 873c683ffb translate links 2014-10-23 15:22:53 +03:00
Yuri Kuznetsov 6e911dcc41 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-23 14:49:58 +03:00
Yuri Kuznetsov d04133ac68 remove outbonud email scope 2014-10-23 12:44:09 +03:00
Yuri Kuznetsov 6ca27cb255 fix Controller.Record 2014-10-23 12:22:22 +03:00
Taras Machyshyn 867aa72038 DataManager improvements 2014-10-23 12:18:17 +03:00
Yuri Kuznetsov ca4c69570d autocomplete off for search filters 2014-10-23 12:16:33 +03:00
Yuri Kuznetsov 66c5d92bc6 navbar resize fix 2014-10-23 11:55:29 +03:00
Yuri Kuznetsov 0f9c32869c Merge branch 'master' of https://github.com/espocrm/espocrm 2014-10-23 11:40:43 +03:00
Yuri Kuznetsov 8cea6559c1 Merge pull request #10 from espocrm/revert-8-dropdown_zindex
Revert "Fix z-index issue with navbar menus on iPads / media query = 768...
2014-10-23 11:40:24 +03:00
Yuri Kuznetsov 3c6d383e08 Revert "Fix z-index issue with navbar menus on iPads / media query = 768px" 2014-10-23 11:39:57 +03:00
Yuri Kuznetsov cdffb85df0 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-23 11:06:33 +03:00
Yuri Kuznetsov 884499ee58 fix ru_RU 2014-10-23 10:46:15 +03:00
Taras Machyshyn 8462632969 'Loaders' improving 2014-10-22 11:11:47 +03:00
Yuri Kuznetsov 84e5fd762d Merge pull request #8 from alasdaircr/dropdown_zindex
Fix z-index issue with navbar menus on iPads / media query = 768px
2014-10-22 09:59:36 +03:00
Alasdair Campbell eecda0d839 Fix z-index issue with navbar menus on iPads / media query = 768px 2014-10-21 21:33:03 +01:00
Yuri Kuznetsov 0829425aa4 Merge pull request #7 from alasdaircr/float_fix
Fix zero floats being treated as false, fixes #6
2014-10-21 15:54:04 +03:00
Alasdair Campbell be6c21e28c Fix zero floats being treated as false, fixes #6 2014-10-21 13:00:42 +01:00
Yuri Kuznetsov 32a2df544f send email test 2014-10-20 16:48:47 +03:00
Yuri Kuznetsov 459b6eccb6 add change label 2014-10-20 12:40:05 +03:00
Yuri Kuznetsov bfd611d6fe no smtp sutup message 2014-10-20 12:38:25 +03:00
Yuri Kuznetsov dadd8c8474 chanve version 2014-10-20 11:15:24 +03:00
Yuri Kuznetsov dc3f6080c9 replace tabs with spaces 2014-10-20 11:13:16 +03:00
Yuri Kuznetsov f062c08b31 import email with empty subjects 2014-10-17 15:12:41 +03:00
Yuri Kuznetsov 90a287af64 Merge branch 'hotfix/2.6.1' 2014-10-17 14:51:36 +03:00
Yuri Kuznetsov fd9d6d2220 email search: fix duplicates 2014-10-17 14:50:08 +03:00
Yuri Kuznetsov 1bb877c9b7 Merge branch 'hotfix/2.6.1' 2014-10-17 11:54:34 +03:00
Yuri Kuznetsov 2199f0d483 fix activities 2014-10-17 11:53:59 +03:00
Yuri Kuznetsov b839c76a1e task and call complete actions 2014-10-15 16:57:51 +03:00
Yuri Kuznetsov 9ced6d7427 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-15 15:28:12 +03:00
Yuri Kuznetsov 260d74882e change layouts 2014-10-15 15:21:12 +03:00
Taras Machyshyn 7835d74efe Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-15 15:13:53 +03:00
Taras Machyshyn 66108324be password hash minor changes 2014-10-15 15:13:38 +03:00
Yuri Kuznetsov b1b9dde29f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-15 15:03:25 +03:00
Yuri Kuznetsov c67f2b20d4 layout manager: ability to make call full width wide 2014-10-15 15:01:17 +03:00
Taras Machyshyn d78dd9cedb Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-15 14:59:53 +03:00
Taras Machyshyn 8330bb12f1 changed hash algorithm of user's password 2014-10-15 14:59:34 +03:00
Yuri Kuznetsov ceef826893 translate bool as boolean 2014-10-15 12:06:03 +03:00
Yuri Kuznetsov 675975f763 reset preferences to defaults 2014-10-15 11:55:40 +03:00
Yuri Kuznetsov 3fd2382741 unlink method 2014-10-15 11:46:44 +03:00
Yuri Kuznetsov c70ab7c127 convert lead layout in manager 2014-10-15 11:17:44 +03:00
Yuri Kuznetsov 3cd9d49b4c crypt passwords 2014-10-14 17:50:33 +03:00
Yuri Kuznetsov 8fafe2c47f add User variable to Email Template 2014-10-14 15:23:39 +03:00
Yuri Kuznetsov b12cf2e21b probabilityMap move to metadata 2014-10-14 15:15:43 +03:00
Yuri Kuznetsov 6f22452cd9 change default dashboard layout 2014-10-14 12:04:31 +03:00
Yuri Kuznetsov 3e0eaf1fa5 avoid 403 for list dashlets 2014-10-14 11:18:09 +03:00
Yuri Kuznetsov 4f7946fe25 notRemovable option for Search.Filter 2014-10-14 10:57:22 +03:00
Yuri Kuznetsov d1fd916be0 fix select2 css 2014-10-14 10:50:59 +03:00
Yuri Kuznetsov b3ccabcde0 fix css 2014-10-13 17:43:11 +03:00
Yuri Kuznetsov c0e6d1191c multiEnum field 2014-10-13 17:30:27 +03:00
Yuri Kuznetsov b561c94ad1 de_DE change 2014-10-13 15:18:38 +03:00
Yuri Kuznetsov ee1f71fff3 Merge branch 'hotfix/2.6.1' 2014-10-13 12:03:17 +03:00
Yuri Kuznetsov b39aa01ac9 add labels to german language 2014-10-13 12:01:36 +03:00
Yuri Kuznetsov b8263295c2 fix readme 2014-10-10 17:23:06 +03:00
Yuri Kuznetsov 56ae7e5d3c change readme 2014-10-10 17:08:49 +03:00
Yuri Kuznetsov 156e69517f fix send invitations for calls 2014-10-10 16:12:54 +03:00
Yuri Kuznetsov 359a4ecc45 Merge branch 'master' into stable 2014-10-10 15:38:05 +03:00
Yuri Kuznetsov 2538f8befc fix send password to new user 2014-10-10 12:08:17 +03:00
Yuri Kuznetsov 3bb0fdbf91 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-10 11:40:46 +03:00
Taras Machyshyn caec038c2c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-10 11:19:24 +03:00
Taras Machyshyn 331602e32b fixed notices 2014-10-10 11:19:08 +03:00
Yuri Kuznetsov cdbc91afcd phone number to export 2014-10-10 11:08:02 +03:00
Yuri Kuznetsov b2fb451620 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-10 10:50:23 +03:00
Yuri Kuznetsov a548245fca import improvements 2014-10-10 10:50:07 +03:00
Taras Machyshyn d12ae68bf4 array merge fixes 2014-10-10 10:33:04 +03:00
Yuri Kuznetsov bfb0fcba0c leading zero for dates 2014-10-09 19:11:11 +03:00
Yuri Kuznetsov 40e639f4ba change diff.js 2014-10-09 17:29:50 +03:00
Yuri Kuznetsov 831b240f99 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-09 17:25:10 +03:00
Taras Machyshyn 363aea4c96 fileManager fixes 2014-10-09 17:24:48 +03:00
Yuri Kuznetsov 8bbd918c51 remove isOverdue from task dashlet 2014-10-09 16:03:30 +03:00
Yuri Kuznetsov 304078420c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-09 15:45:03 +03:00
Yuri Kuznetsov 6a7a7d9f04 userfriendly date and datetime 2014-10-09 15:43:35 +03:00
Taras Machyshyn fbeb19e69f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-09 13:11:46 +03:00
Taras Machyshyn 7cfc539ce9 installer: security improvements 2014-10-09 13:11:25 +03:00
Yuri Kuznetsov b65e23edfe change main.html 2014-10-09 12:12:57 +03:00
Yuri Kuznetsov 3ba308e513 weighted amount 2014-10-09 11:33:26 +03:00
Yuri Kuznetsov 6379198019 export delimited ; 2014-10-09 11:32:22 +03:00
Yuri Kuznetsov 016992573f change version 2014-10-08 17:55:12 +03:00
Yuri Kuznetsov 96e827d64d Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-08 16:45:13 +03:00
Yuri Kuznetsov cae40465f5 query aggregation and distrinct 2014-10-08 16:44:58 +03:00
Taras Machyshyn d2669dba5e installer: added possibility to install EspoCRM for unbuilt version 2014-10-08 12:58:00 +03:00
Taras Machyshyn e3aa0a40fe tests improvements 2014-10-08 12:12:53 +03:00
Taras Machyshyn 8dd9fb089a tests: remove unnecessary cache files 2014-10-08 11:38:39 +03:00
Taras Machyshyn e2e384dd76 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-08 11:11:35 +03:00
Taras Machyshyn 8a4e36a02d merge: fixed 'null' values 2014-10-08 11:11:21 +03:00
Yuri Kuznetsov c4037c0333 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-08 11:04:39 +03:00
Yuri Kuznetsov cb3200f5dd fix logo issue 2014-10-08 10:47:42 +03:00
Taras Machyshyn e6def8bd4b Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-07 17:45:39 +03:00
Taras Machyshyn 218ce00930 Extension Manager improvements 2014-10-07 17:45:20 +03:00
Yuri Kuznetsov ad12f78668 change date ranges order 2014-10-07 10:42:51 +03:00
Yuri Kuznetsov ea07895f02 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-06 17:51:38 +03:00
Yuri Kuznetsov 023ab86684 added new date ranges 2014-10-06 17:51:24 +03:00
Taras Machyshyn dc6ba1128d tests corrections 2014-10-06 16:04:24 +03:00
Taras Machyshyn 40e6c6a648 fix get server type 2014-10-06 13:27:48 +03:00
Taras Machyshyn 982e3bd9b7 .gitignore changes 2014-10-06 13:19:28 +03:00
Taras Machyshyn efefd8864c installer improvements 2014-10-06 10:25:07 +03:00
Taras Machyshyn ca40ed79ee added a new item to .gitignore 2014-10-06 10:20:26 +03:00
Taras Machyshyn 07866a266f added metadata merge with '__APPEND__' 2014-10-03 17:16:47 +03:00
Yuri Kuznetsov 5007b090fd fix typo 2014-10-03 10:26:17 +03:00
Yuri Kuznetsov 95f6b8cd5c dashlet 2x height 2014-10-02 19:17:29 +03:00
Yuri Kuznetsov 93f5da1a62 cleanup 2014-10-02 12:30:15 +03:00
Yuri Kuznetsov 8632064bf7 mardown support 2014-10-02 12:25:22 +03:00
Yuri Kuznetsov 544ad898a3 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-01 16:22:43 +03:00
Yuri Kuznetsov ea17b967c2 fix query 2014-10-01 16:22:32 +03:00
Taras Machyshyn 8db78f61d6 IIS: added unknown file extensions 2014-10-01 13:02:02 +03:00
Yuri Kuznetsov 161673b88a fix typo 2014-10-01 12:00:53 +03:00
Yuri Kuznetsov 6d81d9f6b2 Merge branch 'hotfix/2.5.3' 2014-10-01 11:58:30 +03:00
Yuri Kuznetsov f3ed8a67bc fix typo 2014-10-01 11:04:05 +03:00
Yuri Kuznetsov 06702345da fix readme 2014-10-01 11:02:47 +03:00
Yuri Kuznetsov a5cb57dcfd update readme 2014-10-01 11:00:09 +03:00
Yuri Kuznetsov 36a4e48a2b Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-10-01 10:38:04 +03:00
Yuri Kuznetsov 074bd5a724 remove vendors 2014-10-01 10:36:23 +03:00
Taras Machyshyn 36b1fbff36 merge: Extension Manager improvements and fixes 2014-09-30 18:04:34 +03:00
Taras Machyshyn 620e695d7e Extension Manager improvements and fixes 2014-09-30 17:59:17 +03:00
Yuri Kuznetsov 74dc2c07ea remove extension 2014-09-30 17:44:03 +03:00
Yuri Kuznetsov 3b17d0ade3 show uninstall error 2014-09-30 15:22:29 +03:00
Yuri Kuznetsov 07cf316c9c fix readme 2014-09-30 12:40:58 +03:00
Yuri Kuznetsov fa17104d13 readme changes 2014-09-30 12:39:41 +03:00
Yuri Kuznetsov 274663e426 readmy 2014-09-30 12:33:39 +03:00
Yuri Kuznetsov ec338fb0fd extension client 3 2014-09-30 11:37:31 +03:00
Yuri Kuznetsov 0093fb6670 fix json 2014-09-30 11:21:14 +03:00
Yuri Kuznetsov 8d36142ad1 extension uninstall 2014-09-30 11:20:37 +03:00
Yuri Kuznetsov 8bcbec1e11 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-09-30 11:15:03 +03:00
Yuri Kuznetsov a1a8c157a0 extension clientside 2014-09-30 11:14:49 +03:00
Taras Machyshyn 7349edcb0c Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-09-30 10:26:10 +03:00
Taras Machyshyn 594eec29ce Extension: remove required acceptableVersions option 2014-09-30 10:25:47 +03:00
Yuri Kuznetsov ff9db53f4f Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-09-29 18:13:54 +03:00
Yuri Kuznetsov 2f3fe50aff remove spare query object 2014-09-29 18:13:37 +03:00
Yuri Kuznetsov 1e1a8c0ad0 Merge pull request #3 from alasdaircr/log_spew
Fix log pollution
2014-09-29 18:12:42 +03:00
Alasdair Campbell 03196e5728 Fix log spew 2014-09-29 16:03:00 +01:00
Taras Machyshyn c3bbdb2722 added deletePackage action for Extension controller 2014-09-29 17:19:43 +03:00
Taras Machyshyn 9e0e743dc5 Added Extension Manager 2014-09-29 17:14:55 +03:00
Yuri Kuznetsov a565b9c981 fix pt_PR language 2014-09-29 16:04:51 +03:00
Yuri Kuznetsov d85135dd69 ru_RU lang fixes 2014-09-29 16:04:06 +03:00
Yuri Kuznetsov 380304dca1 Merge branch 'master' of https://github.com/espocrm/espocrm 2014-09-29 16:02:09 +03:00
Yuri Kuznetsov c95c564961 Merge pull request #1 from paladin80/master
Russian localization
2014-09-29 16:00:45 +03:00
Serghei Burtsev 9022aebc7e Russian localization 2014-09-29 16:34:37 +04:00
Yuri Kuznetsov b91d6dc2cf favicon 2014-09-29 15:04:00 +03:00
Yuri Kuznetsov 1a2a8e6b9e query functions 2014-09-29 12:51:39 +03:00
Yuri Kuznetsov 6bf1de18e7 multiple order by 2014-09-29 12:25:43 +03:00
Yuri Kuznetsov 77fba6eb88 query builder: foreign fields 2014-09-29 12:11:03 +03:00
Yuri Kuznetsov 2e5cef2abb change currency converted 2014-09-26 17:54:39 +03:00
Yuri Kuznetsov 2dbb44eb16 currency type improvement 2014-09-26 17:17:35 +03:00
Yuri Kuznetsov 6dc23517cc fix date format in email template 2014-09-26 13:13:38 +03:00
Yuri Kuznetsov 6c74281190 add headers 2014-09-25 18:16:41 +03:00
Yuri Kuznetsov fa993957a1 remove spaces 2014-09-25 18:13:59 +03:00
Yuri Kuznetsov bfa16ecabe add readme 2014-09-25 16:18:48 +03:00
Yuri Kuznetsov c359b450f8 revert prev 2014-09-25 15:04:10 +03:00
Yuri Kuznetsov a638713e80 dashlet chart color 2014-09-25 15:03:18 +03:00
Yuri Kuznetsov 86715684e1 query 3 2014-09-24 17:25:43 +03:00
Yuri Kuznetsov b79ea12b44 query 2 2014-09-24 16:18:36 +03:00
Yuri Kuznetsov 9f24998184 query 1 2014-09-24 13:55:39 +03:00
Yuri Kuznetsov 88018bf500 foreign field metadata 2014-09-24 09:41:59 +03:00
Yuri Kuznetsov f95436f513 footer link title 2014-09-23 17:56:31 +03:00
Yuri Kuznetsov fa8c5adc25 calendar task w/o date end 2014-09-23 16:10:01 +03:00
Taras Machyshyn 0ee966eddd installer: added recommended settings, other impovements 2014-09-23 16:06:29 +03:00
Yuri Kuznetsov f723882f60 ORM change alias logic 2014-09-23 16:00:07 +03:00
Yuri Kuznetsov 8333c51e42 actual tasks 2014-09-23 10:41:34 +03:00
Yuri Kuznetsov 6abc64fcb2 fix mapper json type 2014-09-19 18:45:03 +03:00
Yuri Kuznetsov 837b324fe8 oauth fix 2014-09-19 18:12:44 +03:00
Yuri Kuznetsov 6c56269f18 remove contract 2014-09-19 11:25:11 +03:00
Yuri Kuznetsov 1101d717f2 extensions 2 2014-09-18 15:10:39 +03:00
Yuri Kuznetsov 8e177749ef extensions 1 2014-09-18 12:22:42 +03:00
Yuri Kuznetsov ce30c759a3 layout change 2014-09-18 10:46:28 +03:00
Yuri Kuznetsov 56abf49301 layout change 2014-09-18 10:44:44 +03:00
Yuri Kuznetsov f726881f48 contracts 2014-09-17 17:43:17 +03:00
Taras Machyshyn d908da46cb add helper about RewriteBase into .htaccess 2014-09-17 17:31:49 +03:00
Yuri Kuznetsov 230428456a documents 2014-09-17 15:14:00 +03:00
Yuri Kuznetsov fda8de500c sales pipeline tick position 2014-09-16 18:47:19 +03:00
Yuri Kuznetsov 583f3d33e8 sales pipeline impove 2014-09-16 18:45:24 +03:00
Yuri Kuznetsov d0abed98d1 jsonObject more 2014-09-16 16:09:20 +03:00
Yuri Kuznetsov 38b820739d cron data jsonObject 2014-09-16 15:56:33 +03:00
Taras Machyshyn 0ccda10de8 installer: fixed issues on os windows 2014-09-16 15:52:46 +03:00
Yuri Kuznetsov 5358984b2d do not notify if mentioned 2014-09-16 15:34:17 +03:00
Yuri Kuznetsov e972276487 mention users 3 2014-09-16 15:15:00 +03:00
Taras Machyshyn 91d4d9bcf9 installer improvements 2014-09-16 12:53:10 +03:00
Yuri Kuznetsov 7f3b489832 mention users 2 2014-09-16 12:38:11 +03:00
Taras Machyshyn 107584e0f9 DBAL: column length can be increased only 2014-09-16 11:35:38 +03:00
Yuri Kuznetsov 0bf33e6110 cleanup 2014-09-16 10:36:21 +03:00
Yuri Kuznetsov 9aaedea764 fix dashlet 2014-09-15 17:53:32 +03:00
Yuri Kuznetsov 33c3594273 jsonObject 2014-09-15 17:47:22 +03:00
Yuri Kuznetsov 72824c2796 textcomplete cursor 2014-09-15 16:34:44 +03:00
Yuri Kuznetsov bf56c5fe60 fix textcomplete 2014-09-15 16:27:44 +03:00
Yuri Kuznetsov 5c93b49f6a userName restrictions 2014-09-15 16:18:17 +03:00
Yuri Kuznetsov f60fd168e6 mention user 1 2014-09-15 15:59:46 +03:00
Taras Machyshyn 1399913606 fixed htaccess RedirectMatch 403 rule 2014-09-15 12:35:32 +03:00
Yuri Kuznetsov b233ab506d merge with 2.5.3 2014-09-15 11:52:50 +03:00
Yuri Kuznetsov 053793be9c upgrade message 2014-09-15 10:58:15 +03:00
Yuri Kuznetsov 53503fa615 -21px margin 2014-09-15 10:48:08 +03:00
Yuri Kuznetsov ed4081596b q search by testFilter fields 2014-09-15 10:45:32 +03:00
Yuri Kuznetsov 6bdfb30c33 fix invitation email 2014-09-15 10:33:44 +03:00
Yuri Kuznetsov 322d4cffcf fix graphs colors 2014-09-12 17:26:19 +03:00
Yuri Kuznetsov 1a9e03d540 Merge branch 'hotfix/2.5.3' 2014-09-12 17:07:13 +03:00
Yuri Kuznetsov cff5e0f688 Merge branch 'hotfix/2.5.3' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.5.3 2014-09-12 17:04:56 +03:00
Yuri Kuznetsov 85fb55c999 load team for entity in checkTeam 2014-09-12 17:04:44 +03:00
Taras Machyshyn b944a98cf6 FieldManager: no rebuild when changing a label 2014-09-12 16:44:42 +03:00
Yuri Kuznetsov 9c73f83353 fix post note acl 2014-09-12 16:10:12 +03:00
Yuri Kuznetsov 5caa29b948 css 2014-09-12 16:06:17 +03:00
Yuri Kuznetsov 71efbe8eea dashlet colors 2014-09-12 14:32:36 +03:00
Yuri Kuznetsov 81077a1c38 dashlet colors 2014-09-12 12:53:22 +03:00
Yuri Kuznetsov 32e882780e oauth 2014-09-12 12:46:18 +03:00
Yuri Kuznetsov 23a373f2cf Merge branch 'stable' 2014-09-11 18:26:46 +03:00
Yuri Kuznetsov 0a2c79ba81 version 2014-09-11 18:17:15 +03:00
Yuri Kuznetsov 5360ba0147 fix dutch 2014-09-11 18:14:30 +03:00
Yuri Kuznetsov 6620254d00 fix lang 2014-09-11 18:12:27 +03:00
Yuri Kuznetsov f6eb0bcce8 Merge branch 'hotfix/2.5.2' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.5.2 2014-09-11 18:06:10 +03:00
Yuri Kuznetsov c1116ff5dc fix email account 2014-09-11 18:05:58 +03:00
Yuri Kuznetsov 330fef673a oauth d 2014-09-11 17:36:58 +03:00
Taras Machyshyn 7dcdfcd231 DBAL fixed changing column length 2014-09-11 15:20:18 +03:00
Taras Machyshyn 0eadb9af69 log filename if invalid json file 2014-09-11 14:07:12 +03:00
Yuri Kuznetsov a269c0c96c oauth dev 2014-09-11 10:20:46 +03:00
Yuri Kuznetsov ed37380d8e oauth 2014-09-10 18:27:15 +03:00
Yuri Kuznetsov fdef9838d1 Merge branch 'hotfix/2.5.2' 2014-09-10 11:20:06 +03:00
Yuri Kuznetsov 3c3518b857 fix global search panel 2014-09-10 11:19:14 +03:00
Yuri Kuznetsov e85f21da92 oauth c 2014-09-10 10:55:23 +03:00
Yuri Kuznetsov f3ab0a734c css 2014-09-09 15:11:01 +03:00
Yuri Kuznetsov 33adc67dee version 2014-09-09 15:06:12 +03:00
Yuri Kuznetsov 18e475e1b6 fix clear cache 2014-09-09 15:05:18 +03:00
Yuri Kuznetsov 438c0f7edd upgrade full calendar 2014-09-09 12:20:56 +03:00
Yuri Kuznetsov 3159c9d288 libs to metadata 2014-09-09 11:50:11 +03:00
Yuri Kuznetsov fe0f93784b fix lib loader 2014-09-09 11:21:54 +03:00
Yuri Kuznetsov 2d237eae29 remove isHtml dependency 2014-09-09 11:14:29 +03:00
Yuri Kuznetsov 747aa2d882 dashlet ch 2014-09-09 11:07:24 +03:00
Yuri Kuznetsov 46a7119ce1 month names in sales by month dashlet 2014-09-09 11:00:19 +03:00
Yuri Kuznetsov c18342694f change max resolution 2014-09-09 10:54:02 +03:00
Yuri Kuznetsov bb47b70f31 fix tooltip 2014-09-09 10:48:02 +03:00
Yuri Kuznetsov 07767b2dae fix ref 2014-09-05 17:26:21 +03:00
Yuri Kuznetsov 88037c8291 Merge branch 'release/2.5' into stable 2014-09-05 17:05:40 +03:00
Taras Machyshyn ee03c686ca cron job chnages: remove duplicate jobs, check if ruuning 2014-09-05 15:27:17 +03:00
Yuri Kuznetsov 78140f7d5e change default dashlet layout 2014-09-05 14:59:33 +03:00
Yuri Kuznetsov 549acfd032 copy billing address 2014-09-05 14:52:43 +03:00
Yuri Kuznetsov e4dab33792 acceptance status 2014-09-05 12:41:28 +03:00
Yuri Kuznetsov 287f95a8ac sort entity list in field/layout manager 2014-09-05 11:30:20 +03:00
Yuri Kuznetsov 4951f8464e role acl table 2014-09-05 11:27:28 +03:00
Yuri Kuznetsov 8ed9b9ebd2 fix get user Acl 2014-09-05 11:20:12 +03:00
Yuri Kuznetsov 96ed9612d4 email address lookup minChar 1 2014-09-05 11:11:35 +03:00
Yuri Kuznetsov 1fd77a4c13 link field can be w/o link 2014-09-05 10:58:04 +03:00
Yuri Kuznetsov 2390ac10a8 dont rerender if edit inline edit 2014-09-05 10:46:58 +03:00
Yuri Kuznetsov 03572ecaad footer padding 2014-09-05 10:28:43 +03:00
Yuri Kuznetsov c1ac692304 version 2014-09-05 10:21:23 +03:00
Yuri Kuznetsov f371090bde Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-09-05 10:20:45 +03:00
Yuri Kuznetsov e28341f154 pl_PL 2014-09-05 10:20:27 +03:00
Taras Machyshyn 870f871ceb changed allowed params of 'link' metadata 2014-09-04 15:55:54 +03:00
Yuri Kuznetsov c18d892a4e bottom panel label 2014-09-04 13:05:27 +03:00
Yuri Kuznetsov c8bfd1c6dd fix side field label 2014-09-04 13:01:49 +03:00
Yuri Kuznetsov c582860d5c fix notification about link appears twice 2014-09-04 13:00:11 +03:00
Yuri Kuznetsov 1796db30fa external account 1 2014-09-02 18:26:48 +03:00
Yuri Kuznetsov 25aa0ec564 show/hide integration fields 2014-09-01 18:17:35 +03:00
Yuri Kuznetsov f3dc904c65 helpText 2014-09-01 17:36:54 +03:00
Yuri Kuznetsov 343d33e741 integrations 1 2014-09-01 16:59:59 +03:00
Yuri Kuznetsov 276480dcfa opp reports 2014-08-29 11:40:28 +03:00
Yuri Kuznetsov b00b725af5 text earch 2014-08-29 11:26:50 +03:00
Yuri Kuznetsov ab71ced531 full form keeps attributes 2014-08-29 11:06:09 +03:00
Yuri Kuznetsov ba7988a842 ssl-port dependance 2014-08-29 10:51:46 +03:00
Yuri Kuznetsov e1355acda1 email account 5 2014-08-28 17:15:44 +03:00
Yuri Kuznetsov 1853f4f113 fix 2014-08-27 18:00:14 +03:00
Yuri Kuznetsov da677cfae8 fix 2014-08-27 17:56:37 +03:00
Yuri Kuznetsov 272bccc2fd fix 2014-08-27 17:41:29 +03:00
Yuri Kuznetsov 5372155773 email account 3 2014-08-27 17:34:32 +03:00
Yuri Kuznetsov e1579295da email account 2014-08-27 17:01:31 +03:00
Yuri Kuznetsov cc708e03d1 email account 1 2014-08-27 12:07:59 +03:00
Yuri Kuznetsov 34e91958d6 hide preferences password 2014-08-27 10:55:08 +03:00
Yuri Kuznetsov 928e4c2fb5 allowQuickEdit 2014-08-26 17:19:14 +03:00
Yuri Kuznetsov cf86fcda85 email resrict fields 2014-08-26 15:39:56 +03:00
Yuri Kuznetsov db3b36a639 fix email fields view 2014-08-26 13:35:33 +03:00
Yuri Kuznetsov a4a731437e fix email fields 2014-08-26 13:19:35 +03:00
Yuri Kuznetsov 51f4c7fa09 fix field re-render 2014-08-26 13:19:25 +03:00
Yuri Kuznetsov cbce4fc327 fix datetime short 2014-08-26 12:06:02 +03:00
Yuri Kuznetsov 4e953f6fa8 add user to address seek 2014-08-26 11:26:56 +03:00
Yuri Kuznetsov 0ed0420a4b fix email 2014-08-26 11:20:49 +03:00
Yuri Kuznetsov 16961795af email address field 2014-08-25 17:00:55 +03:00
Yuri Kuznetsov c52c7fed59 acl check 2014-08-22 18:23:57 +03:00
Yuri Kuznetsov 95c00fc49d reply action 2014-08-22 18:22:52 +03:00
Yuri Kuznetsov 9f8606dd06 fix datetime 2014-08-22 18:05:03 +03:00
Yuri Kuznetsov b33dc9baae link multiple select 2014-08-22 17:38:04 +03:00
Yuri Kuznetsov 8cb95f1b0e user filter by teams 2014-08-22 17:32:59 +03:00
Yuri Kuznetsov 86cd1ab864 blockquote size 2014-08-22 17:14:29 +03:00
Yuri Kuznetsov df842f3e3e forward attachments 2014-08-22 17:10:04 +03:00
Yuri Kuznetsov 572455ecf6 attachment roles 2014-08-22 16:45:01 +03:00
Yuri Kuznetsov 7692f9e3ad align list 2014-08-22 16:16:00 +03:00
Yuri Kuznetsov be0c1d8ab1 stream date 2014-08-22 15:53:00 +03:00
Yuri Kuznetsov 4a6c3d9e18 date time short fix and side 2014-08-22 15:50:11 +03:00
Yuri Kuznetsov e0fdbd90fd datetime short 2014-08-22 15:37:22 +03:00
Yuri Kuznetsov 18a3f2658a email improve 2014-08-22 14:45:49 +03:00
Yuri Kuznetsov 80ee06ec1d email reply 2014-08-22 12:34:26 +03:00
Yuri Kuznetsov f16adeed99 fornawesome 2014-08-22 11:33:08 +03:00
Yuri Kuznetsov 9ca39f3559 email create in menu 2014-08-22 11:06:00 +03:00
Yuri Kuznetsov 19285372d6 default search data 2014-08-22 11:02:21 +03:00
Yuri Kuznetsov 61df6bec45 cleanup 2014-08-22 10:41:34 +03:00
Yuri Kuznetsov 8904d4ddaf acl solid in metadata 2014-08-22 10:20:24 +03:00
Yuri Kuznetsov ca5fba97df Merge branch 'hotfix/2.4.1' 2014-08-21 18:14:30 +03:00
Yuri Kuznetsov fa755efefb email layouts 2014-08-21 18:14:21 +03:00
Yuri Kuznetsov d6085f4985 plain text email 2014-08-21 16:02:57 +03:00
Yuri Kuznetsov 4c01e9329d timeout 0 2014-08-21 12:37:28 +03:00
Yuri Kuznetsov 9813eeb5bc nl lang 2014-08-21 11:32:11 +03:00
Yuri Kuznetsov 09d571a639 de lang 2014-08-21 11:30:09 +03:00
Yuri Kuznetsov fffd44316e Merge branch 'hotfix/2.4.1' 2014-08-20 16:55:24 +03:00
Yuri Kuznetsov a704830b86 fix inline edit for hidden fields 2014-08-20 16:55:05 +03:00
Yuri Kuznetsov 7910f71428 Merge branch 'hotfix/2.4.1' 2014-08-20 15:51:37 +03:00
Yuri Kuznetsov 52dcc51f4f version 2014-08-20 14:20:44 +03:00
Yuri Kuznetsov f870ded9e0 rename default and class properties 2014-08-20 11:45:02 +03:00
Yuri Kuznetsov 224c72c875 remove upload timeout 2014-08-20 10:51:51 +03:00
Yuri Kuznetsov ed50802073 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-19 17:34:10 +03:00
Yuri Kuznetsov 1f5036eb5f small refactor utils/database 2014-08-19 16:19:54 +03:00
Yuri Kuznetsov 701a60a07f autocomlate off 2014-08-19 12:38:24 +03:00
Yuri Kuznetsov c760f7364c some refactor 2014-08-19 12:25:41 +03:00
Yuri Kuznetsov 4c28409a36 showNewRecords for stream 2014-08-19 11:59:30 +03:00
Taras Machyshyn e932681166 install improvements (fix 'pdo_mysql' checking, turkish lang file) 2014-08-18 16:09:35 +03:00
Taras Machyshyn a8209488ee install improvements (fix 'pdo_mysql' checking, turkish lang file) 2014-08-18 16:07:46 +03:00
Taras Machyshyn d48642ca81 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-18 16:03:14 +03:00
Taras Machyshyn 6561c4b6c2 fix PATCH method 2014-08-18 16:02:58 +03:00
Yuri Kuznetsov 4f5f84c8f7 add phone/email button manage 2014-08-18 15:42:06 +03:00
Yuri Kuznetsov 56a04336fe Merge branch 'master' into stable 2014-08-15 17:43:02 +03:00
Yuri Kuznetsov 1814529d3e Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-15 17:13:52 +03:00
Taras Machyshyn 1dbe2d9eac installer: missing files 2014-08-15 17:12:26 +03:00
Taras Machyshyn 4ca099afc4 fix installation problem 2014-08-15 16:57:13 +03:00
Yuri Kuznetsov 7ca09bc893 grunt change 2014-08-15 16:22:44 +03:00
Yuri Kuznetsov 0a4a8c956a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-15 16:17:28 +03:00
Yuri Kuznetsov 6f2a7ae08f fix Show More 2014-08-15 16:17:23 +03:00
Taras Machyshyn 45a9dd1226 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-15 16:10:52 +03:00
Taras Machyshyn 9d904171c9 added block rules for IIS 2014-08-15 16:10:23 +03:00
Yuri Kuznetsov 53abea7cdd fix reports 2014-08-15 16:01:35 +03:00
Yuri Kuznetsov 6427604724 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-15 15:33:07 +03:00
Taras Machyshyn 0d72dc7c2f changes rules for nginx server 2014-08-15 15:32:33 +03:00
Yuri Kuznetsov 9ee5a98ff4 fix label 2014-08-15 15:06:01 +03:00
Taras Machyshyn 3f0c92744c install improvements 2014-08-15 13:27:19 +03:00
Taras Machyshyn 7a87749c4c fix problem with MySQL 'int' 2014-08-15 13:18:44 +03:00
Yuri Kuznetsov 0eaab6b7ee userName unique fix 2014-08-15 11:22:57 +03:00
Yuri Kuznetsov b52722565a Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-14 17:13:12 +03:00
Yuri Kuznetsov 80fd2a2006 fix tooltips 2014-08-14 17:13:08 +03:00
Yuri Kuznetsov 1c1fdffb7d some padding 2014-08-14 16:29:50 +03:00
Yuri Kuznetsov 53481890db pdf shown 2014-08-14 16:25:54 +03:00
Yuri Kuznetsov b82a3d0f31 stream post padding 2014-08-14 16:17:39 +03:00
Yuri Kuznetsov 1700b27501 fix revert 2014-08-14 15:30:14 +03:00
Yuri Kuznetsov 635064e116 revert import imporve 2014-08-14 14:46:54 +03:00
Yuri Kuznetsov f6e45d8a68 fix import id 2014-08-14 13:40:41 +03:00
Yuri Kuznetsov ee0cf4bca5 fix see more 2014-08-14 13:31:04 +03:00
Taras Machyshyn ae98290721 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-14 13:20:40 +03:00
Taras Machyshyn 24bbcf0e0a installer minor fixes 2014-08-14 13:20:06 +03:00
Yuri Kuznetsov 23b1945a3e change label 2014-08-14 13:19:42 +03:00
Yuri Kuznetsov e1fe3c03dd Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-14 13:17:05 +03:00
Yuri Kuznetsov 7e0034f674 see more 2014-08-14 13:13:05 +03:00
Yuri Kuznetsov d73cfbca53 strem post 2014-08-14 12:40:53 +03:00
Taras Machyshyn 3eec2b2a33 fixed wrong default TLS port 2014-08-14 11:58:43 +03:00
Yuri Kuznetsov d60dc744e6 no clean js 2014-08-14 11:29:54 +03:00
Yuri Kuznetsov bd66211c3c grunt fix 2014-08-14 11:27:58 +03:00
Yuri Kuznetsov 2f341c8967 fix grunt 2014-08-14 11:21:01 +03:00
Yuri Kuznetsov 5c7612c9cf version and grunt 2014-08-14 11:19:46 +03:00
Taras Machyshyn b41c0f34aa Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-14 11:17:26 +03:00
Taras Machyshyn 14eebc7392 added indexes for EmailAddress.lower and PhoneNumber.name 2014-08-14 11:17:09 +03:00
Yuri Kuznetsov 5a86d0e396 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-13 17:08:44 +03:00
Yuri Kuznetsov a4e0c8107d fix modals 2014-08-13 17:08:26 +03:00
Yuri Kuznetsov 1652de16a7 muted tooltip text 2014-08-13 15:36:29 +03:00
Yuri Kuznetsov ad539e19a2 fix lang 2014-08-13 15:34:31 +03:00
Yuri Kuznetsov 592f073bf9 tooltips 2014-08-13 15:32:11 +03:00
Taras Machyshyn d5c1d1b86e added no-suPHP support 2014-08-13 15:27:37 +03:00
Yuri Kuznetsov bd70e2424c isRequired fix 2014-08-13 14:21:03 +03:00
Taras Machyshyn 06d6299d7f fixed language merge issue 2014-08-13 12:52:38 +03:00
Yuri Kuznetsov d00d2bdb0f login css 2014-08-13 12:20:22 +03:00
Yuri Kuznetsov 9f481f6887 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-13 11:37:55 +03:00
Yuri Kuznetsov 47d0501828 rowactions 2014-08-13 11:37:31 +03:00
Yuri Kuznetsov a4cd8dccfe fix dutch 2014-08-12 18:28:39 +03:00
Taras Machyshyn eee0f0eb13 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-12 18:23:45 +03:00
Taras Machyshyn 67b9600341 added getRequestMethod() method for Controller 2014-08-12 18:22:14 +03:00
Yuri Kuznetsov 4c0329e6be Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-12 17:14:58 +03:00
Yuri Kuznetsov ff6cd18411 nl_NL lang 2014-08-12 17:10:27 +03:00
Taras Machyshyn 8d4219802b added rebuild for Currency Settings 2014-08-12 13:44:23 +03:00
Taras Machyshyn 07e7374a18 added 'remove' possibility to config 2014-08-12 13:04:08 +03:00
Taras Machyshyn 060f517591 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-12 12:56:36 +03:00
Taras Machyshyn 1af5e93bd3 added test file to ignore list 2014-08-12 12:56:17 +03:00
Yuri Kuznetsov 38df3162b3 fix xss 2014-08-12 12:12:27 +03:00
Yuri Kuznetsov e03298b041 opportunity currency converted 2014-08-12 11:54:09 +03:00
Yuri Kuznetsov 80278b7213 quote {value} and lead currency converted 2014-08-12 11:47:37 +03:00
Yuri Kuznetsov a701905e9c required inbound \email template 2014-08-11 18:06:34 +03:00
Yuri Kuznetsov 59b896e594 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-08-11 17:36:16 +03:00
Taras Machyshyn ba4c8e0afd config: possibility to save StdClass 2014-08-11 17:35:49 +03:00
Yuri Kuznetsov 9175d8c7ce change layout 2014-08-11 17:26:00 +03:00
Yuri Kuznetsov 052fee6ba2 fix css input group 2014-08-11 17:24:17 +03:00
Yuri Kuznetsov aae3afc895 currency 1 2014-08-11 17:11:30 +03:00
Yuri Kuznetsov 1892ff6cae Merge branch 'hotfix/2.3.1' 2014-08-11 15:49:34 +03:00
Yuri Kuznetsov aa3e9fd8b0 Merge branch 'hotfix/2.3.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/2.3.1 2014-08-11 14:14:33 +03:00
Yuri Kuznetsov 2863092911 compose email from case 2014-08-11 14:13:52 +03:00
Taras Machyshyn 1c36421157 chnaged currencyRate in config 2014-08-11 13:58:33 +03:00
Yuri Kuznetsov 77f7da0ba5 case and email improvoments 2014-08-11 12:45:04 +03:00
Yuri Kuznetsov a5f858dda2 fix detail view false field 2014-08-11 11:44:04 +03:00
Taras Machyshyn a5b7bfc00e fixed access LOGs issue 2014-08-11 11:30:28 +03:00
Yuri Kuznetsov 4d2cb6c38e varchar search 2014-08-11 10:53:40 +03:00
Yuri Kuznetsov b6bd70d47c currency symbol 2014-08-11 10:49:34 +03:00
Yuri Kuznetsov ef3ed38b97 Merge branch 'master' into stable 2014-08-08 16:58:08 +03:00
Yuri Kuznetsov a38b86b2c6 dashlet sorting 2014-08-08 14:13:24 +03:00
Yuri Kuznetsov a87044623c diff fix 2014-08-08 11:45:13 +03:00
Yuri Kuznetsov 44a96ddece isFieldChanged 2014-08-07 18:30:52 +03:00
Yuri Kuznetsov b0e911870b git fix lang 2014-08-07 16:19:55 +03:00
Yuri Kuznetsov 96bb421b0a Delete label 2014-08-07 15:24:32 +03:00
Yuri Kuznetsov c281d7b2d9 fix lang 2014-08-07 12:08:51 +03:00
Yuri Kuznetsov dc5766088f confirm messages 2014-08-07 12:03:54 +03:00
Yuri Kuznetsov fe69f97b1e fix acl issue and mappen IN issue 2014-08-07 11:28:52 +03:00
Yuri Kuznetsov b7bc1e3622 services changes 2014-08-06 16:07:04 +03:00
Yuri Kuznetsov b3c4123669 email notifications 2014-08-06 15:57:30 +03:00
Yuri Kuznetsov 0795f6f6f2 clear cache messag in role 2014-08-06 10:50:26 +03:00
Yuri Kuznetsov c3cd909063 version 2014-08-05 17:34:39 +03:00
Yuri Kuznetsov 0e37c26b9f fix issue with this 2014-08-05 17:12:15 +03:00
Yuri Kuznetsov 80937f8d09 convert lead fix 2014-08-05 15:57:37 +03:00
Yuri Kuznetsov 380cdeba35 use cache false 2014-08-05 15:27:47 +03:00
Yuri Kuznetsov 1eabce0d2e change record detail #build 2014-08-05 15:27:34 +03:00
Yuri Kuznetsov 3cd5f801a5 use cache false 2014-08-05 14:42:01 +03:00
Yuri Kuznetsov c1cfd75bd6 fix notice 2014-08-05 14:38:47 +03:00
Yuri Kuznetsov dd5fabdfa4 contacts select in meetings 2014-08-05 11:44:10 +03:00
Yuri Kuznetsov 3e9c7056b0 improve mark all read 2014-08-05 10:54:19 +03:00
Yuri Kuznetsov 26188879b6 fix client acl 2014-08-05 10:49:29 +03:00
Yuri Kuznetsov 488717c6a1 dashlet changes 2014-08-04 17:05:24 +03:00
Yuri Kuznetsov b8476d7335 fix import 2014-08-04 15:23:41 +03:00
Yuri Kuznetsov 1cfad615c0 not team restricion for admin 2014-08-04 13:35:35 +03:00
Yuri Kuznetsov e3a3547a54 prevent error if field name is empty in layout 2014-08-04 12:36:51 +03:00
Yuri Kuznetsov e6948aba2e mark all read 2014-08-04 12:19:09 +03:00
Yuri Kuznetsov d4943e4d1c Merge branch 'stable' 2014-08-01 11:06:01 +03:00
Yuri Kuznetsov af5e7d99b2 Merge branch 'release/2.2' into stable 2014-08-01 11:05:46 +03:00
Yuri Kuznetsov 667a46f141 text field search 2014-07-31 17:36:48 +03:00
Yuri Kuznetsov 67f65492de version 2014-07-31 12:21:58 +03:00
Yuri Kuznetsov b6a98e7121 change show more count 2014-07-30 17:33:59 +03:00
Yuri Kuznetsov 9669ff91bb footer fix 2014-07-30 12:20:16 +03:00
Yuri Kuznetsov acb6e245a2 show total 2014-07-30 11:43:14 +03:00
Yuri Kuznetsov b5e015e9c9 vi_VN to config 2014-07-30 10:49:36 +03:00
Yuri Kuznetsov 70d2e311e5 vi_VN lang 2014-07-30 10:46:36 +03:00
Yuri Kuznetsov 6c7e5c0d02 update ro lang 2014-07-30 10:45:12 +03:00
Yuri Kuznetsov d4558d73b3 lang 2014-07-30 10:35:59 +03:00
Yuri Kuznetsov e2257f6cfd footer 2014-07-29 18:06:08 +03:00
Yuri Kuznetsov 149fa41e2b textFilter 2014-07-29 17:19:00 +03:00
Yuri Kuznetsov 71e4c2fca0 Merge branch 'hotfix/2.1.1' 2014-07-29 16:37:15 +03:00
Yuri Kuznetsov 5a4613617c fix diff 2014-07-29 16:07:25 +03:00
Yuri Kuznetsov cbf9dd458e diff change 2014-07-29 13:06:15 +03:00
Yuri Kuznetsov 08553bdf9d diff changes 2014-07-28 15:37:46 +03:00
Yuri Kuznetsov d0b61b42e0 fix diff 2014-07-28 12:54:33 +03:00
Yuri Kuznetsov 3e3348c4a7 version 2014-07-28 12:51:17 +03:00
Yuri Kuznetsov c32b0f365b diff.js 2014-07-28 12:50:25 +03:00
Yuri Kuznetsov 8fd0554714 fix null filter issue 2014-07-28 11:17:21 +03:00
Yuri Kuznetsov 982f0e1f62 change filter defs 2014-07-28 10:54:01 +03:00
Yuri Kuznetsov c87f5dfab3 bool filter change 2014-07-28 10:34:39 +03:00
Yuri Kuznetsov b335462aa4 Merge branch 'release/2.1' into stable 2014-07-25 15:21:50 +03:00
Yuri Kuznetsov 97c951484d fix add dashlet 2014-07-25 15:18:37 +03:00
Yuri Kuznetsov 2215f15aaf lang 2014-07-25 12:58:26 +03:00
Yuri Kuznetsov 65f38a4906 Merge branch 'release/2.1' into stable 2014-07-25 12:27:30 +03:00
Yuri Kuznetsov 6429823cc3 version 2014-07-25 11:28:50 +03:00
Yuri Kuznetsov 2a71bb2ea1 duplicate 2014-07-25 11:24:20 +03:00
Yuri Kuznetsov 1674c2221e disableExport 2014-07-24 18:48:03 +03:00
Yuri Kuznetsov e3b448f520 style preset 2014-07-24 17:48:49 +03:00
Yuri Kuznetsov a04c973817 css 2014-07-24 16:21:17 +03:00
Yuri Kuznetsov 01c9939215 fix css 2014-07-24 16:08:32 +03:00
Yuri Kuznetsov 2d57824cb0 fix css 2014-07-24 15:33:23 +03:00
Yuri Kuznetsov 878385f14b fix import UI 2014-07-24 15:27:27 +03:00
Yuri Kuznetsov 8b82058d06 fix import 2014-07-24 15:20:17 +03:00
Yuri Kuznetsov 68e05f0935 datetime edit more nice 2014-07-24 15:00:49 +03:00
Yuri Kuznetsov cb7492c042 email to case: dont copy email body 2014-07-24 14:41:05 +03:00
Yuri Kuznetsov beb811755f improve bool filters ui 2014-07-24 11:21:21 +03:00
Yuri Kuznetsov 7c7fc4ee0f impreove preset search 2014-07-24 11:01:47 +03:00
Yuri Kuznetsov aeef25f7ec fix preset ok 2014-07-23 17:19:35 +03:00
Yuri Kuznetsov 6856ff97b1 fix previous commit 2014-07-23 17:11:09 +03:00
Yuri Kuznetsov 10f6f7600c create notifications via cron 2014-07-23 17:04:03 +03:00
Yuri Kuznetsov a0b678a3d9 remove some files from grunt uglify 2014-07-23 16:17:30 +03:00
Yuri Kuznetsov f78e558a33 fix search 2014-07-23 15:56:06 +03:00
Yuri Kuznetsov e205ef3370 improve fields tpls 2014-07-23 15:38:38 +03:00
Yuri Kuznetsov 8b6e4d469e onlyMy for meetings and calls 2014-07-23 12:49:10 +03:00
Yuri Kuznetsov a63ec2710b fix filter 2014-07-23 12:20:16 +03:00
Yuri Kuznetsov 6895fac58c date filters 2014-07-23 11:57:48 +03:00
Yuri Kuznetsov ea3c8f2d35 fix preset 2014-07-23 09:56:42 +03:00
Yuri Kuznetsov 0f2c050537 lang 2014-07-22 18:22:38 +03:00
Yuri Kuznetsov 2cd8866c73 Merge branch 'stable' 2014-07-22 18:07:44 +03:00
Yuri Kuznetsov 86a5e19b55 version 2014-07-22 17:46:38 +03:00
Yuri Kuznetsov 61f435812d fix timezones 2014-07-22 17:42:55 +03:00
Yuri Kuznetsov 217d0f6540 preset filters 4 2014-07-22 17:37:21 +03:00
Yuri Kuznetsov f0e7a8f029 preset filters 2 2014-07-22 16:25:56 +03:00
Yuri Kuznetsov d2954483d9 preset filters 2014-07-21 16:45:18 +03:00
Yuri Kuznetsov 999b88cba1 Merge branch 'stable' 2014-07-18 17:04:59 +03:00
Yuri Kuznetsov 717df30063 Merge branch 'release/2.0' into stable 2014-07-18 17:04:35 +03:00
Yuri Kuznetsov d889c78f0c fix query 2014-07-18 10:31:01 +03:00
Yuri Kuznetsov 4737c506f2 do not pass phone to new contact 2014-07-17 15:50:45 +03:00
Yuri Kuznetsov 78cb1a8052 label css 2014-07-15 14:46:38 +03:00
Yuri Kuznetsov dac8ca5a6d search by email and phone fix 2014-07-15 12:55:22 +03:00
Yuri Kuznetsov e04ac6778a fix email phone fields 2014-07-15 12:34:12 +03:00
Yuri Kuznetsov 5f34d4f2fd change duplication where clause 2014-07-15 12:24:30 +03:00
Yuri Kuznetsov ca7c0f07e9 fix fields 2014-07-15 12:20:26 +03:00
Yuri Kuznetsov af26f29bec status 2014-07-15 11:11:09 +03:00
Taras Machyshyn 0c44f78ea1 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-07-15 11:01:00 +03:00
Taras Machyshyn bed62e2e71 orm convertation chnages 2014-07-15 11:00:38 +03:00
Yuri Kuznetsov 6d61db86df fix url field 2014-07-14 14:59:40 +03:00
Yuri Kuznetsov 4feb055256 fr_FR lang 2014-07-14 11:29:31 +03:00
Yuri Kuznetsov 10a44239ed fix tpls 2014-07-14 11:18:17 +03:00
Yuri Kuznetsov 8a78eda520 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-07-11 14:36:48 +03:00
Yuri Kuznetsov 891b159b30 view parameter for fields 2014-07-11 14:36:34 +03:00
Taras Machyshyn 0d06770e80 LDAP changes 2014-07-11 13:57:03 +03:00
Yuri Kuznetsov f8675bd45c languages 2014-07-11 12:24:10 +03:00
Yuri Kuznetsov c35136b524 pt_BR lang 2014-07-11 12:21:31 +03:00
Yuri Kuznetsov a0384deb00 ro_RO lang 2014-07-11 12:19:37 +03:00
Yuri Kuznetsov e35fb15a31 de_DE lang 2014-07-11 12:13:43 +03:00
Yuri Kuznetsov fe86807091 fix email template 2014-07-10 18:08:14 +03:00
Yuri Kuznetsov e12a15ecdb fix notice 2014-07-10 17:53:40 +03:00
Yuri Kuznetsov 24dcd46d6f change currency field look 2014-07-10 17:22:51 +03:00
Yuri Kuznetsov 15196f2062 fix linkMultiple fields 2014-07-10 17:00:09 +03:00
Yuri Kuznetsov 1ae1b20111 phone and email fields change 2014-07-10 16:35:31 +03:00
Yuri Kuznetsov 84de477be0 ldap password 2014-07-10 14:49:42 +03:00
Yuri Kuznetsov 97407de17d remove SAML 2014-07-10 13:22:49 +03:00
Yuri Kuznetsov 84bc5beed2 preferences dynamic form 2014-07-10 13:20:22 +03:00
Yuri Kuznetsov 6974b1637d ldap form 2014-07-10 13:08:16 +03:00
Yuri Kuznetsov dc89aff7b1 dynamic forms 2014-07-10 13:08:10 +03:00
Yuri Kuznetsov 2bfea69fe3 calendar remove event 2014-07-09 14:52:30 +03:00
Yuri Kuznetsov 0e1e481546 calendar timezone 2014-07-09 14:42:16 +03:00
Yuri Kuznetsov 52e938888d Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-07-09 14:30:08 +03:00
Yuri Kuznetsov a2ef1656fb fix email template 2014-07-09 14:27:52 +03:00
Yuri Kuznetsov c168c3ff9b fix field-manager 2014-07-09 14:27:45 +03:00
Yuri Kuznetsov 56af0baea2 entityFactory changhe 2014-07-09 14:15:27 +03:00
Taras Machyshyn 35ecf2e144 update tests 2014-07-09 13:33:42 +03:00
Taras Machyshyn d25692b15e added manifest.json checking for upgrade process 2014-07-09 12:13:34 +03:00
Taras Machyshyn 59a66cb8fa LDAP authorization 2014-07-09 11:53:30 +03:00
Yuri Kuznetsov 75ce454b2a tr_TR language 2014-07-09 11:39:03 +03:00
Yuri Kuznetsov b94134a35a data-panel-name 2014-07-08 16:59:41 +03:00
Yuri Kuznetsov 4b09f055e4 snap duration 2014-07-08 15:40:04 +03:00
Yuri Kuznetsov d743eca6a3 calendar 2014-07-08 15:33:07 +03:00
Yuri Kuznetsov 0e3c872310 calendar 2 2014-07-08 15:30:17 +03:00
Yuri Kuznetsov f8b56cba24 get rid of form on edit view 2014-07-08 11:45:15 +03:00
Yuri Kuznetsov b506cd726c fix modal close 2014-07-08 11:31:47 +03:00
Yuri Kuznetsov 998aaec170 upgrade bootstrap to 3.2 2014-07-08 11:20:53 +03:00
Yuri Kuznetsov 4c30507a85 link role css 2014-07-08 11:05:57 +03:00
Yuri Kuznetsov a55f1aca58 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-07-07 17:49:57 +03:00
Yuri Kuznetsov 868cf4e22c fix inline edit 2014-07-07 17:47:45 +03:00
Taras Machyshyn 2decd9016e fixed rebuild.php issue 2014-07-07 17:45:31 +03:00
Yuri Kuznetsov 9cba465473 fix prev commit 2014-07-07 17:24:12 +03:00
Yuri Kuznetsov b9344afb27 linkMultipleWithRole css fix 2014-07-07 17:11:06 +03:00
Yuri Kuznetsov 7074991771 email and phone fields remove button 2014-07-07 16:30:36 +03:00
Yuri Kuznetsov b43d37ac79 change layout 2014-07-07 16:21:11 +03:00
Yuri Kuznetsov 18b393b286 activities new logic 2014-07-07 16:17:44 +03:00
Yuri Kuznetsov 728fce75d7 fix linkMultiple css 2014-07-07 14:09:52 +03:00
Yuri Kuznetsov 50d441aea0 account - contact - 5 2014-07-07 11:32:01 +03:00
Yuri Kuznetsov d75f9e5acd fix handleSelectParams 2014-07-04 18:26:52 +03:00
Yuri Kuznetsov 3c96cf240e account - contact 4 2014-07-04 18:13:54 +03:00
Yuri Kuznetsov 2583c77108 accoun - contact 3 2014-07-04 17:37:01 +03:00
Yuri Kuznetsov a3ad210ec2 account - contact 2 2014-07-04 14:55:02 +03:00
Yuri Kuznetsov 6bd7d2398d account - contact 1 2014-07-03 19:12:34 +03:00
Yuri Kuznetsov 017cd3d978 fix rerender fields 2014-07-03 19:12:22 +03:00
Yuri Kuznetsov a3af86d248 fix primary button 2014-07-03 11:19:16 +03:00
Yuri Kuznetsov 99e9cbde84 email and phone fields: hide primary button 2014-07-03 10:44:47 +03:00
Yuri Kuznetsov 85d60d2555 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-07-02 17:31:31 +03:00
Yuri Kuznetsov 1fe4555209 phone number 3 2014-07-02 17:19:14 +03:00
Yuri Kuznetsov 8b80df2f91 phone number 2 2014-07-02 16:33:02 +03:00
Yuri Kuznetsov 3d7d4eb7db clone deep in model 2014-07-02 15:53:31 +03:00
Taras Machyshyn 4215621eb7 FieldManager fixes 2014-07-02 13:01:16 +03:00
Yuri Kuznetsov d138a5d0b7 phone number 1 2014-07-02 12:24:42 +03:00
Yuri Kuznetsov b3023192d0 fix search field view and lead source 2014-07-01 18:18:16 +03:00
Yuri Kuznetsov 7cc0c527e0 merge manual with stable 2014-07-01 18:09:52 +03:00
Yuri Kuznetsov f3f36e87a4 Merge branch 'hotfix/1.2.1' into stable 2014-07-01 18:06:29 +03:00
Yuri Kuznetsov b55b133ddf lead source 2 2014-07-01 18:05:38 +03:00
Yuri Kuznetsov 28eafdbc6c version 2014-07-01 17:43:33 +03:00
Yuri Kuznetsov 0036ab1ed2 Merge branch 'hotfix/1.2.1' of ssh://172.20.0.1/var/git/espo/backend into hotfix/1.2.1 2014-07-01 17:42:49 +03:00
Yuri Kuznetsov a60378a9bd lead source 1 2014-07-01 17:42:25 +03:00
Taras Machyshyn 30b246f67c fixed issue with Basic Authorization for cgi/fastcgi 2014-07-01 17:41:26 +03:00
Yuri Kuznetsov 3a23b28657 convert layout 2014-07-01 16:29:34 +03:00
Yuri Kuznetsov 42e21d585f bug with follow button and lead convert 2014-07-01 16:18:27 +03:00
Yuri Kuznetsov a30ab9a1a0 fix notification in admin panel 2014-07-01 15:33:40 +03:00
Yuri Kuznetsov 4510295792 change opp layout 2014-07-01 15:09:22 +03:00
Yuri Kuznetsov ed5de64cd3 roles dev 2014-07-01 15:04:59 +03:00
Yuri Kuznetsov 1c89187c49 update Role 2014-07-01 12:55:43 +03:00
Yuri Kuznetsov 169a3f6e6d -20px for panel 2014-07-01 11:36:27 +03:00
Yuri Kuznetsov 7e2ead7949 clonedeep role 2014-07-01 11:24:58 +03:00
Yuri Kuznetsov 8413067194 role field dev 2014-07-01 10:45:42 +03:00
Yuri Kuznetsov 81c7dcaa63 roles dev 2014-06-30 18:10:13 +03:00
Yuri Kuznetsov 3b12c7f1cf role field dev 2014-06-30 17:17:06 +03:00
Yuri Kuznetsov cdab200898 fix linkMultiple 2014-06-30 16:46:21 +03:00
Yuri Kuznetsov 0f9c3e1c1c getSelectFilters 2014-06-30 16:42:47 +03:00
Yuri Kuznetsov fe5a5b76ca fix linkMultiple fields 2014-06-30 16:23:03 +03:00
Yuri Kuznetsov 0e3720c038 columns for linkMultiple 2014-06-30 16:01:57 +03:00
Yuri Kuznetsov 99f1ba8987 fix layout manager 2014-06-30 12:06:49 +03:00
Yuri Kuznetsov 8ff5d79788 fix array fiel tpl 2014-06-30 11:52:28 +03:00
Yuri Kuznetsov 9d6485194f table header font weight 2014-06-30 11:28:11 +03:00
Yuri Kuznetsov 21e306774e link multiple li padding 2014-06-30 11:25:45 +03:00
Yuri Kuznetsov ffa340f255 contacts field in opportunity 2014-06-30 11:21:31 +03:00
Yuri Kuznetsov d6b65edfb1 fix select related 2014-06-30 11:12:08 +03:00
Yuri Kuznetsov a3ed33a443 filters for select related 2014-06-30 11:09:21 +03:00
Yuri Kuznetsov 38ff477cef stick stream panel 2014-06-27 18:21:40 +03:00
Yuri Kuznetsov c5c638b007 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-06-27 18:06:12 +03:00
Yuri Kuznetsov 181fd8dc73 record panel margin 2014-06-27 17:59:46 +03:00
Taras Machyshyn e57f58bec3 fixed label string for .po file 2014-06-27 16:47:10 +03:00
Taras Machyshyn 5c2067f61a chnaged 'php version' label 2014-06-27 16:36:55 +03:00
Yuri Kuznetsov 3ec5cf259b refactor auth 2014-06-27 12:15:54 +03:00
Yuri Kuznetsov e5e898222b Authentification refactor 2014-06-27 12:01:30 +03:00
Yuri Kuznetsov 18b2876853 ability to remove entity in calendar 2014-06-26 17:51:50 +03:00
Yuri Kuznetsov cec4ffcb6c Merge branch 'hotfix/1.2.1' 2014-06-26 17:13:14 +03:00
Yuri Kuznetsov 1063aa74dd fix create related 2014-06-26 17:12:54 +03:00
Yuri Kuznetsov b59dba0e6d fix lang 2014-06-26 16:47:36 +03:00
Yuri Kuznetsov 0d9a182833 change version 2014-06-26 16:45:50 +03:00
Yuri Kuznetsov 8674f66b4d Merge branch 'hotfix/1.2.1' 2014-06-26 16:44:35 +03:00
Yuri Kuznetsov 605a720694 auth tokens page title 2014-06-26 16:44:21 +03:00
Yuri Kuznetsov aa761d5ef7 auth tokens in admin 2014-06-26 16:32:18 +03:00
Yuri Kuznetsov 3d4d8aa7d3 prepareEntityForOutput 2014-06-26 15:19:43 +03:00
Yuri Kuznetsov 556b72edb2 fix install lang 2014-06-24 18:31:10 +03:00
Yuri Kuznetsov be372b90f9 Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend 2014-06-24 18:19:41 +03:00
Yuri Kuznetsov 846e93741f disable targets 2014-06-24 18:15:40 +03:00
Yuri Kuznetsov b82af3a0c6 prospects to targets 2014-06-24 18:13:35 +03:00
Taras Machyshyn 02b429cb32 installer: design changes 2014-06-24 11:43:37 +03:00
Taras Machyshyn 3332469c35 chnaged Config.php . Now use ->save() to save the configuration 2014-06-19 12:42:57 +03:00
Taras Machyshyn 0a2469aaa4 fixed labels 2014-06-17 12:33:02 +03:00
Yuri Kuznetsov e7e15a32bf fix lang 2014-06-16 18:04:03 +03:00
Yuri Kuznetsov fc3fa53dba fix label 2014-06-16 17:59:41 +03:00
Yuri Kuznetsov 4604f27176 fix double metadata load 2014-06-16 11:12:04 +03:00
Yuri Kuznetsov b7b118c122 update timepicker 2014-06-13 16:42:11 +03:00
Yuri Kuznetsov 371f243a6d Merge branch 'stable' 2014-06-13 12:35:28 +03:00
Yuri Kuznetsov ea2934129a Merge branch 'release/1.2' into stable 2014-06-13 12:34:42 +03:00
Yuri Kuznetsov ba2d72dff9 grunt chmod 2014-06-13 11:10:41 +03:00
Yuri Kuznetsov 7312988057 Merge branch 'release/1.2' of ssh://172.20.0.1/var/git/espo/backend into release/1.2 2014-06-12 17:02:23 +03:00
Taras Machyshyn de12418a8f fixed installation language issue 2014-06-12 17:01:21 +03:00
Yuri Kuznetsov b4c7075331 fix image resize 2014-06-12 16:23:16 +03:00
Yuri Kuznetsov 355ec4398f Merge branch 'release/1.2' of ssh://172.20.0.1/var/git/espo/backend into release/1.2 2014-06-12 16:09:40 +03:00
Taras Machyshyn 2c681ede52 fixed upgrade 2014-06-12 15:46:01 +03:00
Yuri Kuznetsov cb2df7b6a2 fix image resize 2014-06-12 14:28:05 +03:00
Yuri Kuznetsov f2a5474b4a version 2014-06-12 11:20:39 +03:00
Taras Machyshyn 1fc8921a18 fixed MySQL port 2014-06-12 11:14:14 +03:00
Yuri Kuznetsov 0458544bbb fix auto logout if auth error 2014-06-11 16:57:10 +03:00
Yuri Kuznetsov c09c4b2035 add translateOption and fix firstName lastName concat in Person Entity 2014-06-11 15:06:41 +03:00
Yuri Kuznetsov 176c77ec96 company logo 2014-06-11 12:47:28 +03:00
Yuri Kuznetsov 7b032802e9 image transparent 2014-06-11 12:22:14 +03:00
Yuri Kuznetsov 8a7a317252 remove password from user edit small 2014-06-11 11:57:18 +03:00
Yuri Kuznetsov 3ef01a4639 remove createDefaultUserPreferences method 2014-06-11 11:55:27 +03:00
Yuri Kuznetsov e27edf5b0d fix change password 2014-06-11 11:53:10 +03:00
Yuri Kuznetsov fe0f5b3886 change own password 2014-06-11 11:48:09 +03:00
Yuri Kuznetsov 9836517c6c options.el for modal view 2014-06-11 10:49:10 +03:00
Yuri Kuznetsov c143ba47d2 generate password 2014-06-10 16:59:19 +03:00
Yuri Kuznetsov 64a8ccf787 spanish language 2014-06-10 15:33:48 +03:00
Yuri Kuznetsov 31eafca88f fix warning 2014-06-10 15:13:22 +03:00
Yuri Kuznetsov 80e440c875 export delimiter 2014-06-10 14:27:41 +03:00
Yuri Kuznetsov 92451934af fix pref 2014-06-10 14:12:05 +03:00
Yuri Kuznetsov 7e2ad2ae94 default preferences from config 2014-06-10 12:22:59 +03:00
Yuri Kuznetsov c410e47d6b restrict posting in stream 2014-06-10 12:03:44 +03:00
Yuri Kuznetsov 7bb3780277 maxLength for text field 2014-06-10 11:31:22 +03:00
Yuri Kuznetsov d734b8b3d2 improve address field 2014-06-10 11:25:47 +03:00
Yuri Kuznetsov 2acc245100 Merge branch 'stable' 2014-06-10 10:43:04 +03:00
Yuri Kuznetsov d326925e06 fix relationship panel option.el 2014-06-09 12:29:27 +03:00
Yuri Kuznetsov 13d65c7535 Merge branch 'stable' 2014-06-09 10:42:00 +03:00
Yuri Kuznetsov 6f76efee36 Merge branch 'stable' 2014-06-06 17:00:28 +03:00
6486 changed files with 344035 additions and 289325 deletions
+11
View File
@@ -0,0 +1,11 @@
# editorconfig.org
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
+8 -8
View File
@@ -2,16 +2,16 @@
/data/cache/*
/data/upload/*
/data/preferences/*
/data/.backup/*
/data/config.php
/custom
/application/Espo/Resources/metadata/scopes/CustomTest.json
/application/Espo/Modules/Crm/Resources/metadata/scopes/CustomTest.json
/application/Espo/Resources/layouts/CustomTest/*
/application/Espo/Modules/Crm/Resources/layouts/CustomTest/*
/application/Espo/Resources/metadata/customTest/*
/application/Espo/Modules/Crm/Resources/metadata/customTest/*
/build
/node_modules
/client
/test.php
/main.html
/tests/unit/testData/cache/*
!/tests/unit/testData/cache/.data
/tests/integration/config.php
composer.phar
vendor/
/custom/Espo/Custom/*
Executable → Regular
+23 -4
View File
@@ -1,8 +1,27 @@
<ifModule mod_headers.c>
Header always set Access-Control-Allow-Methods "POST, GET, PUT, PATCH, DELETE"
</ifModule>
DirectoryIndex index.php index.html
RedirectMatch 403 \.config$
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule reset/?$ reset.html [QSA,L]
RewriteEngine On
# PROTECTED DIRECTORIES
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^/?(data|api)/ - [F]
RewriteRule ^/?data/config\.php$ - [F]
RewriteRule ^/?data/logs/ - [F]
RewriteRule ^/?data/cache/ - [F]
RewriteRule ^/?data/upload/ - [F]
RewriteRule ^/?data/\.backup/ - [F]
RewriteRule ^/?application/ - [F]
RewriteRule ^/?custom/ - [F]
RewriteRule ^/?vendor/ - [F]
#END PROTECTED DIRECTORIES
RewriteRule .* - [E=HTTP_ESPO_CGI_AUTH:%{HTTP:Authorization}]
RewriteRule reset/?$ reset.html [QSA,L]
</IfModule>
+9
View File
@@ -0,0 +1,9 @@
## 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).
## Issues
We don't provide developer help or any kind of support on github. Please use our [forum](https://forum.espocrm.com) for this.
+296 -219
View File
@@ -1,225 +1,302 @@
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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/.
************************************************************************/
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
mkdir: {
tmp: {
options: {
mode: 0775,
create: [
'build/tmp',
]
},
}
},
clean: {
start: ['build/*'],
final: ['build/tmp'],
},
less: {
bootstrap: {
options: {
yuicompress: true,
},
files: {
'frontend/client/css/bootstrap.css': 'frontend/less/espo/main.less',
},
},
},
cssmin: {
minify: {
files: {
'build/tmp/client/css/espo.min.css': [
'frontend/client/css/bootstrap.css',
'frontend/client/css/datepicker.css',
'frontend/client/css/jquery.timepicker.css',
]
}
},
},
uglify: {
options: {
mangle: false,
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
},
'build/tmp/client/espo.min.js': [
'frontend/client/lib/jquery-2.0.2.min.js',
'frontend/client/lib/underscore-min.js',
'frontend/client/lib/backbone-min.js',
'frontend/client/lib/handlebars.js',
'frontend/client/lib/base64.js',
'frontend/client/lib/jquery-ui.min.js',
'frontend/client/lib/moment.min.js',
'frontend/client/lib/moment-timezone.min.js',
'frontend/client/lib/moment-timezone-data.js',
'frontend/client/lib/jquery.timepicker.min.js',
'frontend/client/lib/jquery.autocomplete.js',
'frontend/client/lib/bootstrap.min.js',
'frontend/client/lib/bootstrap-datepicker.js',
'frontend/client/lib/bull.min.js',
'frontend/client/src/namespace.js',
'frontend/client/src/exceptions.js',
'frontend/client/src/app.js',
'frontend/client/src/utils.js',
'frontend/client/src/storage.js',
'frontend/client/src/loader.js',
'frontend/client/src/pre-loader.js',
'frontend/client/src/ui.js',
'frontend/client/src/acl.js',
'frontend/client/src/model.js',
'frontend/client/src/model-offline.js',
'frontend/client/src/metadata.js',
'frontend/client/src/language.js',
'frontend/client/src/cache.js',
'frontend/client/src/controller.js',
'frontend/client/src/router.js',
'frontend/client/src/date-time.js',
'frontend/client/src/field-manager.js',
'frontend/client/src/search-manager.js',
'frontend/client/src/collection.js',
'frontend/client/src/multi-collection.js',
'frontend/client/src/view-helper.js',
'frontend/client/src/layout-manager.js',
'frontend/client/src/model-factory.js',
'frontend/client/src/collection-factory.js',
'frontend/client/src/models/settings.js',
'frontend/client/src/models/user.js',
'frontend/client/src/models/preferences.js',
'frontend/client/src/controllers/base.js',
'frontend/client/src/controllers/record.js',
'frontend/client/src/controllers/role.js',
'frontend/client/src/controllers/admin.js',
'frontend/client/src/view.js',
'frontend/client/src/views/base.js',
'frontend/client/src/views/login.js',
]
},
copy: {
frontendFolders: {
expand: true,
cwd: 'frontend/client',
src: [
'src/**',
'res/**',
'fonts/**',
'cfg/**',
'modules/**',
'img/**',
'css/**',
],
dest: 'build/tmp/client',
},
frontendHtml: {
src: 'frontend/html/reset.html',
dest: 'build/tmp/reset.html'
},
frontendLib: {
expand: true,
dot: true,
cwd: 'frontend/client/lib',
src: '**',
dest: 'build/tmp/client/lib/',
},
backend: {
expand: true,
dot: true,
src: [
'api/**',
'application/**',
'custom/**',
'data/.data',
'install/**',
'vendor/**',
'bootstrap.php',
'cron.php',
'rebuild.php',
'index.php',
'LICENSE.txt',
'.htaccess',
'Web.config',
],
dest: 'build/tmp/',
},
final: {
expand: true,
dot: true,
src: '**',
cwd: 'build/tmp',
dest: 'build/EspoCRM-<%= pkg.version %>/',
},
},
replace: {
timestamp: {
options: {
patterns: [
{
match: 'timestamp',
replacement: '<%= new Date().getTime() %>'
}
]
},
files: [
{
src: 'frontend/html/main.html',
dest: 'build/tmp/main.html'
}
]
},
version: {
options: {
patterns: [
{
match: 'version',
replacement: '<%= pkg.version %>'
}
]
},
files: [
{
src: 'build/tmp/application/Espo/Core/defaults/config.php',
dest: 'build/tmp/application/Espo/Core/defaults/config.php'
}
]
}
},
compress: {
final: {
options: {
archive: 'build/EspoCRM-<%= pkg.version %>.zip',
mode: 'zip'
},
src: ['**'],
cwd: 'build/EspoCRM-<%= pkg.version %>',
dest: 'EspoCRM-<%= pkg.version %>'
}
}
});
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/moment.min.js',
'client/lib/moment-timezone-with-data.min.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',
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-mkdir');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-replace');
grunt.loadNpmTasks('grunt-contrib-compress');
'client/src/namespace.js',
'client/src/exceptions.js',
'client/src/loader.js',
'client/src/utils.js',
grunt.registerTask('default', [
'clean:start',
'mkdir:tmp',
'less',
'cssmin',
'uglify',
'copy:frontendFolders',
'copy:frontendHtml',
'copy:frontendLib',
'copy:backend',
'replace',
'copy:final',
'clean:final',
//'compress',
]);
'client/src/acl.js',
'client/src/model.js',
'client/src/model-offline.js',
'client/src/ajax.js',
'client/src/controller.js',
'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/app.js'
];
function camelCaseToHyphen (string){
if (string == null) {
return string;
}
return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}
var fs = require('fs');
var themeList = [];
fs.readdirSync('application/Espo/Resources/metadata/themes').forEach(function (file) {
themeList.push(file.substr(0, file.length - 5));
});
var lessData = {};
themeList.forEach(function (theme) {
var name = camelCaseToHyphen(theme);
var 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';
var o = {
options: {
yuicompress: true,
},
files: files
};
lessData[theme] = o;
});
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
mkdir: {
tmp: {
options: {
mode: 0755,
create: [
'build/tmp',
]
},
}
},
clean: {
start: ['build/*'],
final: ['build/tmp'],
beforeFinal: {
src: ['build/tmp/custom/Espo/Custom/*', '!build/tmp/custom/Espo/Custom/.htaccess']
}
},
less: lessData,
uglify: {
options: {
mangle: false,
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
},
'build/tmp/client/espo.min.js': jsFilesToMinify.map(function (item) {
return '' + item;
})
},
copy: {
frontendFolders: {
expand: true,
cwd: 'client',
src: [
'src/**',
'res/**',
'fonts/**',
'cfg/**',
'modules/**',
'img/**',
'css/**',
'sounds/**',
'custom/**'
],
dest: 'build/tmp/client',
},
frontendLib: {
expand: true,
dot: true,
cwd: 'client/lib',
src: '**',
dest: 'build/tmp/client/lib/',
},
backend: {
expand: true,
dot: true,
src: [
'api/**',
'application/**',
'custom/**',
'data/.data',
'install/**',
'portal/**',
'vendor/**',
'html/**',
'bootstrap.php',
'cron.php',
'rebuild.php',
'clear_cache.php',
'upgrade.php',
'extension.php',
'index.php',
'LICENSE.txt',
'.htaccess',
'web.config',
],
dest: 'build/tmp/',
},
final: {
expand: true,
dot: true,
src: '**',
cwd: 'build/tmp',
dest: 'build/EspoCRM-<%= pkg.version %>/',
},
},
chmod: {
options: {
mode: '755'
},
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 %>',
]
}
},
replace: {
timestamp: {
options: {
patterns: [
{
match: 'timestamp',
replacement: '<%= new Date().getTime() %>'
}
]
},
files: [
{
src: 'build/tmp/html/main.html',
dest: 'build/tmp/html/main.html'
},
{
src: 'build/tmp/html/portal.html',
dest: 'build/tmp/html/portal.html'
}
]
},
version: {
options: {
patterns: [
{
match: 'version',
replacement: '<%= pkg.version %>'
}
]
},
files: [
{
src: 'build/tmp/application/Espo/Core/defaults/config.php',
dest: 'build/tmp/application/Espo/Core/defaults/config.php'
}
]
}
},
compress: {
final: {
options: {
archive: 'build/EspoCRM-<%= pkg.version %>.zip',
mode: 'zip'
},
src: ['**'],
cwd: 'build/EspoCRM-<%= pkg.version %>',
dest: 'EspoCRM-<%= pkg.version %>'
}
}
});
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-mkdir');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-replace');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.loadNpmTasks('grunt-chmod');
grunt.registerTask('default', [
'clean:start',
'mkdir:tmp',
'less',
'uglify',
'copy:frontendFolders',
'copy:frontendLib',
'copy:backend',
'replace',
'clean:beforeFinal',
'copy:final',
'chmod',
'clean:final'
]);
};
+7 -7
View File
@@ -631,29 +631,29 @@ to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
EspoCRM - Open Source CRM
Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
EspoCRM is free software: you can redistribute it and/or modify
This program 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,
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU 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/>.
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
EspoCRM Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
EspoCRM comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
+69
View File
@@ -0,0 +1,69 @@
## EspoCRM
<a href='http://www.espocrm.com'>EspoCRM is an Open Source CRM</a> (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 based on backbone.js and a REST API backend written in PHP.
Download the latest release from our [website](http://www.espocrm.com).
### Requirements
* PHP 5.6 or above (with pdo, json, gd, openssl, zip, imap, mbstring, curl extensions);
* MySQL 5.5.3 or above.
For more information about server configuration see [this article](https://www.espocrm.com/documentation/administration/server-configuration/).
### Documentation
Documentation for administrators, users and developers is available [here](https://www.espocrm.com/documentation/).
### How to report bug
Create an issue [here](https://github.com/espocrm/espocrm/issues) or post on our [forum](http://forum.espocrm.com/forum/bug-reports).
### How to get started (for developers)
1. Clone repository to your local computer.
2. Change to the project's root directory.
3. Install [composer](https://getcomposer.org/doc/00-intro.md).
4. Run `composer install` if composer is installed globally or `php composer.phar install` if locally.
Never update composer dependencies if you are going to contribute code back.
Now you can build. Build will create compiled css files.
To compose a proper config.php and populate database you can run install by opening `http(s)://{YOUR_CRM_URL}/install` location in a browser. Then open `data/config.php` file and add `isDeveloperMode => true`.
### How to build
You need to have nodejs and Grunt CLI installed.
1. Change to the project's root directory.
2. Install project dependencies with `npm install`.
3. Run Grunt with `grunt`.
The build will be created in the `build` directory.
### How to contribute
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.
### How to make a translation
Build po file with command:
`node po.js en_EN`
(specify needed language instead of en_EN)
After that translate the generated po file.
Build json files from the translated po file:
1. Put your po file espocrm-en_EN.po into `build` directory
2. Run `node lang.js en_EN`
Json files will be created in build directory grouped by folders.
### License
EspoCRM is published under the GNU GPLv3 [license](https://raw.githubusercontent.com/espocrm/espocrm/master/LICENSE.txt).
-22
View File
@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 1X" stopProcessing="true">
<match url="reset/?$" />
<action type="Rewrite" url="reset.html" appendQueryString="true" />
</rule>
</rules>
</rewrite>
<defaultDocument>
<files>
<clear />
<add value="index.php" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
Executable → Regular
+2
View File
@@ -6,5 +6,7 @@ RewriteEngine On
#
# RewriteBase /
RewriteRule .* - [E=HTTP_ESPO_CGI_AUTH:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
+28 -1
View File
@@ -1,4 +1,31 @@
<?php
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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.
************************************************************************/
require_once('../../bootstrap.php');
+12
View File
@@ -0,0 +1,12 @@
RewriteEngine On
# Some hosts may require you to use the `RewriteBase` directive.
# If you need to use the `RewriteBase` directive, it should be the
# absolute physical path to the directory that contains this htaccess file.
#
# RewriteBase /
RewriteRule .* - [E=HTTP_ESPO_CGI_AUTH:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
+39
View File
@@ -0,0 +1,39 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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.
************************************************************************/
require_once('../../../bootstrap.php');
if (!empty($_GET['portalId'])) {
$portalId = $_GET['portalId'];
} else {
$portalId = explode('/', $_SERVER['REQUEST_URI'])[count(explode('/', $_SERVER['SCRIPT_NAME'])) - 1];
}
$app = new \Espo\Core\Portal\Application($portalId);
$app->run();
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 1G" stopProcessing="true">
<match url="^" />
<action type="Rewrite" url="index.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
View File
-2
View File
@@ -1,2 +0,0 @@
Order Deny,Allow
Deny from all
@@ -0,0 +1,42 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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 ActionHistoryRecord extends \Espo\Core\Acl\Base
{
public function checkIsOwner(EntityUser $user, Entity $entity)
{
return $entity->get('userId') === $user->id;
}
}
+93
View File
@@ -0,0 +1,93 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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
@@ -0,0 +1,121 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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
{
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;
}
}
+63
View File
@@ -0,0 +1,63 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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->get('isPortalUser') && $excludeEntity->getEntityType() === 'Contact' &&
$e->get('contactId') === $excludeEntity->id
) {
$isFobidden = false;
}
if ($isFobidden) break;
}
}
}
return !$isFobidden;
}
}
+56
View File
@@ -0,0 +1,56 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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 EmailFilter extends \Espo\Core\Acl\Base
{
public function checkIsOwner(EntityUser $user, Entity $entity)
{
if ($entity->has('parentId') && $entity->has('parentType')) {
$parentType = $entity->get('parentType');
$parentId = $entity->get('parentId');
if (!$parentType || !$parentId) return;
$parent = $this->getEntityManager()->getEntity($parentType, $parentId);
if ($parent->getEntityType() === 'User') {
return $parent->id === $user->id;
}
if ($parent && $parent->has('assignedUserId') && $parent->get('assignedUserId') === $user->id) {
return true;
}
}
return;
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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
{
public function checkIsOwner(EntityUser $user, Entity $entity)
{
if ($entity->get('type') === 'Post' && $user->id === $entity->get('createdById')) {
return true;
}
return false;
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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 Notification extends \Espo\Core\Acl\Base
{
public function checkIsOwner(EntityUser $user, Entity $entity)
{
if ($user->id === $entity->get('userId')) {
return true;
}
return false;
}
}
+63
View File
@@ -0,0 +1,63 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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->get('isPortalUser') && $excludeEntity->getEntityType() === 'Contact' &&
$e->get('contactId') === $excludeEntity->id
) {
$isFobidden = false;
}
if ($isFobidden) break;
}
}
}
return !$isFobidden;
}
}
+61
View File
@@ -0,0 +1,61 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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 ScheduledJob extends \Espo\Core\Acl\Base
{
public function checkEntityRead(EntityUser $user, Entity $entity, $data)
{
if ($entity->get('isInternal')) return false;
return $this->checkEntity($user, $entity, $data, 'read');
}
public function checkEntityEdit(EntityUser $user, Entity $entity, $data)
{
if ($entity->get('isInternal')) return false;
return $this->checkEntity($user, $entity, $data, 'edit');
}
public function checkEntityDelete(EntityUser $user, Entity $entity, $data)
{
if ($entity->get('isInternal')) return false;
return $this->checkEntity($user, $entity, $data, 'delete');
}
public function checkEntityCreate(EntityUser $user, Entity $entity, $data)
{
if ($entity->get('isInternal')) return false;
return $this->checkEntity($user, $entity, $data, 'create');
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\ORM\Entity;
class Team extends \Espo\Core\Acl\Base
{
public function checkInTeam(\Espo\Entities\User $user, Entity $entity)
{
$userTeamIdList = $user->getLinkMultipleIdList('teams');
return in_array($entity->id, $userTeamIdList);
}
}
+73
View File
@@ -0,0 +1,73 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\ORM\Entity;
use \Espo\Entities\User as EntityUser;
class User extends \Espo\Core\Acl\Base
{
public function checkIsOwner(\Espo\Entities\User $user, Entity $entity)
{
return $user->id === $entity->id;
}
public function checkEntityCreate(EntityUser $user, Entity $entity, $data)
{
if (!$user->isAdmin()) {
return false;
}
return $this->checkEntity($user, $entity, $data, 'create');
}
public function checkEntityDelete(EntityUser $user, Entity $entity, $data)
{
if ($entity->id === 'system') {
return false;
}
if (!$user->isAdmin()) {
return false;
}
return parent::checkEntityDelete($user, $entity, $data);
}
public function checkEntityEdit(EntityUser $user, Entity $entity, $data)
{
if ($entity->id === 'system') {
return false;
}
if (!$user->isAdmin()) {
if ($user->id !== $entity->id) {
return false;
}
}
return $this->checkEntity($user, $entity, $data, 'edit');
}
}
+93
View File
@@ -0,0 +1,93 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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;
}
}
+71
View File
@@ -0,0 +1,71 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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 Email extends \Espo\Core\AclPortal\Base
{
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('createdById')) {
return true;
}
return false;
}
}
@@ -0,0 +1,56 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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 EmailAddress extends \Espo\Core\AclPortal\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;
break;
}
}
}
return !$isFobidden;
}
}
+45
View File
@@ -0,0 +1,45 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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 Note extends \Espo\Core\AclPortal\Base
{
public function checkIsOwner(EntityUser $user, Entity $entity)
{
if ($entity->get('type') === 'Post' && $user->id === $entity->get('createdById')) {
return true;
}
return false;
}
}
@@ -0,0 +1,45 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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 Notification extends \Espo\Core\AclPortal\Base
{
public function checkIsOwner(EntityUser $user, Entity $entity)
{
if ($user->id === $entity->get('userId')) {
return true;
}
return false;
}
}
@@ -0,0 +1,57 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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 PhoneNumber extends \Espo\Core\AclPortal\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;
break;
}
}
}
return !$isFobidden;
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\ORM\Entity;
class User extends \Espo\Core\AclPortal\Base
{
public function checkIsOwner(\Espo\Entities\User $user, Entity $entity)
{
return $user->id === $entity->id;
}
}
@@ -0,0 +1,71 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
class ActionHistoryRecord extends \Espo\Core\Controllers\Record
{
public function actionUpdate($params, $data, $request)
{
throw new Forbidden();
}
public function actionCreate($params, $data, $request)
{
throw new Forbidden();
}
public function actionListLinked($params, $data, $request)
{
throw new Forbidden();
}
public function actionMassUpdate($params, $data, $request)
{
throw new Forbidden();
}
public function actionCreateLink($params, $data, $request)
{
throw new Forbidden();
}
public function actionRemoveLink($params, $data, $request)
{
throw new Forbidden();
}
public function actionMassDelete($params, $data, $request)
{
throw new Forbidden();
}
}
+71 -46
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,69 +18,94 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Error,
\Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\NotFound;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class Admin extends \Espo\Core\Controllers\Base
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function actionRebuild($params, $data)
{
$result = $this->getContainer()->get('dataManager')->rebuild();
public function postActionRebuild($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
$result = $this->getContainer()->get('dataManager')->rebuild();
return $result;
}
return $result;
}
public function actionClearCache($params, $data)
{
$result = $this->getContainer()->get('dataManager')->clearCache();
public function postActionClearCache($params)
{
$result = $this->getContainer()->get('dataManager')->clearCache();
return $result;
}
return $result;
}
public function actionJobs()
{
$scheduledJob = $this->getContainer()->get('scheduledJob');
public function actionJobs()
{
$scheduledJob = $this->getContainer()->get('scheduledJob');
return $scheduledJob->getAvailableList();
}
return $scheduledJob->getAllNamesOnly();
}
public function postActionUploadUpgradePackage($params, $data)
{
if ($this->getConfig()->get('restrictedMode')) {
if (!$this->getUser()->get('isSuperAdmin')) {
throw new Forbidden();
}
}
$upgradeManager = new \Espo\Core\UpgradeManager($this->getContainer());
public function actionUploadUpgradePackage($params, $data)
{
$upgradeManager = new \Espo\Core\UpgradeManager($this->getContainer());
$upgradeId = $upgradeManager->upload($data);
$manifest = $upgradeManager->getManifest();
$upgradeId = $upgradeManager->upload($data);
$manifest = $upgradeManager->getManifest();
return array(
'id' => $upgradeId,
'version' => $manifest['version'],
);
}
return array(
'id' => $upgradeId,
'version' => $manifest['version'],
);
}
public function postActionRunUpgrade($params, $data)
{
if ($this->getConfig()->get('restrictedMode')) {
if (!$this->getUser()->get('isSuperAdmin')) {
throw new Forbidden();
}
}
public function actionRunUpgrade($params, $data)
{
$upgradeManager = new \Espo\Core\UpgradeManager($this->getContainer());
$upgradeManager = new \Espo\Core\UpgradeManager($this->getContainer());
$upgradeManager->install(get_object_vars($data));
$upgradeManager->run($data['id']);
return true;
}
return true;
}
public function actionCronMessage($params, $data)
{
return $this->getContainer()->get('scheduledJob')->getSetupMessage();
}
public function actionCronMessage($params)
{
return $this->getContainer()->get('scheduledJob')->getSetupMessage();
}
public function actionAdminNotificationList($params)
{
$adminNotificationManager = new \Espo\Core\Utils\AdminNotificationManager($this->getContainer());
return $adminNotificationManager->getNotificationList();
}
}
+23 -23
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,33 +18,33 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\BadRequest;
class App extends \Espo\Core\Controllers\Record
class App extends \Espo\Core\Controllers\Base
{
public function actionUser()
{
return array(
'user' => $this->getUser()->toArray(),
'acl' => $this->getAcl()->toArray(),
'preferences' => $this->getPreferences()->toArray(),
'token' => $this->getUser()->get('token')
);
}
public function actionDestroyAuthToken($params, $data)
{
$token = $data['token'];
if (empty($token)) {
throw new BadRequest();
}
public function actionUser()
{
return $this->getServiceFactory()->create('App')->getUserData();
}
$auth = new \Espo\Core\Utils\Auth($this->getContainer());
return $auth->destroyAuthToken($token);
}
public function postActionDestroyAuthToken($params, $data)
{
if (empty($data->token)) {
throw new BadRequest();
}
$auth = new \Espo\Core\Utils\Auth($this->getContainer());
return $auth->destroyAuthToken($data->token);
}
}
+12 -17
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,26 +18,21 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class Attachment extends \Espo\Core\Controllers\Record
{
public function actionUpload($params, $data)
{
list($prefix, $contents) = explode(',', $data);
$contents = base64_decode($contents);
$attachment = $this->getEntityManager()->getEntity('Attachment');
$this->getEntityManager()->saveEntity($attachment);
$this->getContainer()->get('fileManager')->putContents('data/upload/' . $attachment->id, $contents);
return array(
'attachmentId' => $attachment->id
);
}
}
@@ -0,0 +1,67 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
class AuthLogRecord extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function actionUpdate($params, $data, $request)
{
throw new Forbidden();
}
public function actionMassUpdate($params, $data, $request)
{
throw new Forbidden();
}
public function actionCreate($params, $data, $request)
{
throw new Forbidden();
}
public function actionCreateLink($params, $data, $request)
{
throw new Forbidden();
}
public function actionRemoveLink($params, $data, $request)
{
throw new Forbidden();
}
}
@@ -0,0 +1,97 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
class AuthToken extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function actionUpdate($params, $data, $request)
{
$dataAr = get_object_vars($data);
if (
is_object($data)
&&
isset($data->isActive)
&&
$data->isActive === false
&&
count(array_keys($dataAr)) === 1
) {
return parent::actionUpdate($params, $data, $request);
}
throw new Forbidden();
}
public function actionMassUpdate($params, $data, $request)
{
if (empty($data->attributes)) {
throw new BadRequest();
}
$attributes = $data->attributes;
if (
is_object($attributes)
&&
isset($attributes->isActive)
&&
$attributes->isActive === false
&&
count(array_keys(get_object_vars($attributes))) === 1
) {
return parent::actionMassUpdate($params, $data, $request);
}
throw new Forbidden();
}
public function actionCreate($params, $data, $request)
{
throw new Forbidden();
}
public function actionCreateLink($params, $data, $request)
{
throw new Forbidden();
}
public function actionRemoveLink($params, $data, $request)
{
throw new Forbidden();
}
}
@@ -0,0 +1,55 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use Espo\Core\Exceptions\Error;
use Espo\Core\Exceptions\Forbidden;
use Espo\Core\Exceptions\NotFound;
use Espo\Core\Exceptions\BadRequest;
class DataPrivacy extends \Espo\Core\Controllers\Base
{
protected function checkControllerAccess()
{
if ($this->getAcl()->get('dataPrivacyPermission') === 'no') {
throw new Forbidden();
}
}
public function postActionErase($params, $data)
{
if (empty($data->entityType) || empty($data->id) || empty($data->fieldList) || !is_array($data->fieldList)) {
throw new BadRequest();
}
return $this->getServiceFactory()->create('DataPrivacy')->erase($data->entityType, $data->id, $data->fieldList);
}
}
+211 -2
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,11 +18,220 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\BadRequest;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\NotFound;
class Email extends \Espo\Core\Controllers\Record
{
public function postActionGetCopiedAttachments($params, $data, $request)
{
if (empty($data->id)) {
throw new BadRequest();
}
$id = $data->id;
return $this->getRecordService()->getCopiedAttachments($id);
}
public function actionSendTestEmail($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
if (!$this->getAcl()->checkScope('Email')) {
throw new Forbidden();
}
if (is_null($data->password)) {
if ($data->type == 'preferences') {
if (!$this->getUser()->isAdmin() && $data->id !== $this->getUser()->id) {
throw new Forbidden();
}
$preferences = $this->getEntityManager()->getEntity('Preferences', $data->id);
if (!$preferences) {
throw new NotFound();
}
if (is_null($data->password)) {
$data->password = $this->getContainer()->get('crypt')->decrypt($preferences->get('smtpPassword'));
}
} else if ($data->type == 'emailAccount') {
if (!$this->getAcl()->checkScope('EmailAccount')) {
throw new Forbidden();
}
if (!empty($data->id)) {
$emailAccount = $this->getEntityManager()->getEntity('EmailAccount', $data->id);
if (!$emailAccount) {
throw new NotFound();
}
if (!$this->getUser()->isAdmin()) {
if ($emailAccount->get('assigniedUserId') !== $this->getUser()->id) {
throw new Forbidden();
}
}
if (is_null($data->password)) {
$data->password = $this->getContainer()->get('crypt')->decrypt($emailAccount->get('smtpPassword'));
}
}
} else if ($data->type == 'inboundEmail') {
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
if (!empty($data->id)) {
$emailAccount = $this->getEntityManager()->getEntity('InboundEmail', $data->id);
if (!$emailAccount) {
throw new NotFound();
}
if (is_null($data->password)) {
$data->password = $this->getContainer()->get('crypt')->decrypt($emailAccount->get('smtpPassword'));
}
}
} else {
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
if (is_null($data->password)) {
$data->password = $this->getConfig()->get('smtpPassword');
}
}
}
return $this->getRecordService()->sendTestEmail(get_object_vars($data));
}
public function postActionMarkAsRead($params, $data, $request)
{
if (!empty($data->ids)) {
$idList = $data->ids;
} else {
if (!empty($data->id)) {
$idList = [$data->id];
} else {
throw new BadRequest();
}
}
return $this->getRecordService()->markAsReadByIdList($idList);
}
public function postActionMarkAsNotRead($params, $data, $request)
{
if (!empty($data->ids)) {
$idList = $data->ids;
} else {
if (!empty($data->id)) {
$idList = [$data->id];
} else {
throw new BadRequest();
}
}
return $this->getRecordService()->markAsNotReadByIdList($idList);
}
public function postActionMarkAllAsRead($params, $data, $request)
{
return $this->getRecordService()->markAllAsRead();
}
public function postActionMarkAsImportant($params, $data, $request)
{
if (!empty($data->ids)) {
$idList = $data->ids;
} else {
if (!empty($data->id)) {
$idList = [$data->id];
} else {
throw new BadRequest();
}
}
return $this->getRecordService()->markAsImportantByIdList($idList);
}
public function postActionMarkAsNotImportant($params, $data, $request)
{
if (!empty($data->ids)) {
$idList = $data->ids;
} else {
if (!empty($data->id)) {
$idList = [$data->id];
} else {
throw new BadRequest();
}
}
return $this->getRecordService()->markAsNotImportantByIdList($idList);
}
public function postActionMoveToTrash($params, $data)
{
if (!empty($data->ids)) {
$idList = $data->ids;
} else {
if (!empty($data->id)) {
$idList = [$data->id];
} else {
throw new BadRequest();
}
}
return $this->getRecordService()->moveToTrashByIdList($idList);
}
public function postActionRetrieveFromTrash($params, $data)
{
if (!empty($data->ids)) {
$idList = $data->ids;
} else {
if (!empty($data->id)) {
$idList = [$data->id];
} else {
throw new BadRequest();
}
}
return $this->getRecordService()->retrieveFromTrashByIdList($idList);
}
public function getActionGetFoldersNotReadCounts(&$params, $request, $data)
{
return $this->getRecordService()->getFoldersNotReadCounts();
}
protected function fetchListParamsFromRequest(&$params, $request, $data)
{
parent::fetchListParamsFromRequest($params, $request, $data);
$folderId = $request->get('folderId');
if ($folderId) {
$params['folderId'] = $request->get('folderId');
}
}
public function postActionMoveToFolder($params, $data)
{
if (!empty($data->ids)) {
$idList = $data->ids;
} else {
if (!empty($data->id)) {
$idList = [$data->id];
} else {
throw new BadRequest();
}
}
if (empty($data->folderId)) {
throw new BadRequest();
}
return $this->getRecordService()->moveToFolderByIdList($idList, $data->folderId);
}
}
@@ -0,0 +1,78 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class EmailAccount extends \Espo\Core\Controllers\Record
{
public function actionGetFolders($params, $data, $request)
{
return $this->getRecordService()->getFolders(array(
'host' => $request->get('host'),
'port' => $request->get('port'),
'ssl' => $request->get('ssl') === 'true',
'username' => $request->get('username'),
'password' => $request->get('password'),
'id' => $request->get('id')
));
}
protected function checkControllerAccess()
{
if (!$this->getAcl()->check('EmailAccountScope')) {
throw new Forbidden();
}
}
public function actionTestConnection($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
if (is_null($data->password)) {
$emailAccount = $this->getEntityManager()->getEntity('EmailAccount', $data->id);
if (!$emailAccount || !$emailAccount->id) {
throw new Error();
}
if ($emailAccount->get('assignedUserId') != $this->getUser()->id && !$this->getUser()->isAdmin()) {
throw new Forbidden();
}
$data->password = $this->getContainer()->get('crypt')->decrypt($emailAccount->get('password'));
}
return $this->getRecordService()->testConnection(get_object_vars($data));
}
}
+27 -3
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,11 +18,35 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
class EmailAddress extends \Espo\Core\Controllers\Record
{
public function actionSearchInAddressBook($params, $data, $request)
{
if (!$this->getAcl()->checkScope('Email')) {
throw new Forbidden();
}
if (!$this->getAcl()->checkScope('Email', 'create')) {
throw new Forbidden();
}
$q = $request->get('q');
$limit = intval($request->get('limit'));
if (empty($limit) || $limit > 30) {
$limit = 5;
}
return $this->getRecordService()->searchInAddressBook($q, $limit);
}
}
@@ -0,0 +1,36 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
class EmailFilter extends \Espo\Core\Controllers\Record
{
}
@@ -0,0 +1,62 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\BadRequest;
class EmailFolder extends \Espo\Core\Controllers\Record
{
public function postActionMoveUp($params, $data, $request)
{
if (empty($data->id)) {
throw new BadRequest();
}
$this->getRecordService()->moveUp($data->id);
return true;
}
public function postActionMoveDown($params, $data, $request)
{
if (empty($data->id)) {
throw new BadRequest();
}
$this->getRecordService()->moveDown($data->id);
return true;
}
public function getActionListAll()
{
return $this->getRecordService()->listAll();
}
}
+25 -16
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,7 +18,14 @@
*
* 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\Controllers;
@@ -26,20 +33,22 @@ use \Espo\Core\Exceptions\Error;
class EmailTemplate extends \Espo\Core\Controllers\Record
{
public function actionParse($params, $data, $request)
{
$id = $request->get('id');
$emailAddress = $request->get('emailAddress');
if (empty($id)) {
throw new Error();
}
return $this->getRecordService()->parse($id, array(
'emailAddress' => $request->get('emailAddress'),
'parentType' => $request->get('parentType'),
'parentId' => $request->get('parentId'),
), true);
}
public function actionParse($params, $data, $request)
{
$id = $request->get('id');
$emailAddress = $request->get('emailAddress');
if (empty($id)) {
throw new Error();
}
return $this->getRecordService()->parse($id, array(
'emailAddress' => $request->get('emailAddress'),
'parentType' => $request->get('parentType'),
'parentId' => $request->get('parentId'),
'relatedType' => $request->get('relatedType'),
'relatedId' => $request->get('relatedId')
), true);
}
}
@@ -0,0 +1,35 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
class EmailTemplateCategory extends \Espo\Core\Templates\Controllers\CategoryTree
{
}
@@ -0,0 +1,353 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\BadRequest;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\Error;
class EntityManager extends \Espo\Core\Controllers\Base
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function actionCreateEntity($params, $data, $request)
{
$data = get_object_vars($data);
if (!$request->isPost()) {
throw new BadRequest();
}
if (empty($data['name']) || empty($data['type'])) {
throw new BadRequest();
}
$name = $data['name'];
$type = $data['type'];
$name = filter_var($name, \FILTER_SANITIZE_STRING);
$type = filter_var($type, \FILTER_SANITIZE_STRING);
$params = array();
if (!empty($data['labelSingular'])) {
$params['labelSingular'] = $data['labelSingular'];
}
if (!empty($data['labelPlural'])) {
$params['labelPlural'] = $data['labelPlural'];
}
if (!empty($data['stream'])) {
$params['stream'] = $data['stream'];
}
if (!empty($data['disabled'])) {
$params['disabled'] = $data['disabled'];
}
if (!empty($data['sortBy'])) {
$params['sortBy'] = $data['sortBy'];
}
if (!empty($data['sortDirection'])) {
$params['asc'] = $data['sortDirection'] === 'asc';
}
if (isset($data['textFilterFields']) && is_array($data['textFilterFields'])) {
$params['textFilterFields'] = $data['textFilterFields'];
}
if (!empty($data['color'])) {
$params['color'] = $data['color'];
}
if (!empty($data['iconClass'])) {
$params['iconClass'] = $data['iconClass'];
}
if (isset($data['fullTextSearch'])) {
$params['fullTestSearch'] = $data['fullTextSearch'];
}
$params['kanbanViewMode'] = !empty($data['kanbanViewMode']);
if (!empty($data['kanbanStatusIgnoreList'])) {
$params['kanbanStatusIgnoreList'] = $data['kanbanStatusIgnoreList'];
}
$result = $this->getContainer()->get('entityManagerUtil')->create($name, $type, $params);
if ($result) {
$tabList = $this->getConfig()->get('tabList', []);
if (!in_array($name, $tabList)) {
$tabList[] = $name;
$this->getConfig()->set('tabList', $tabList);
$this->getConfig()->save();
}
$this->getContainer()->get('dataManager')->rebuild();
} else {
throw new Error();
}
return true;
}
public function actionUpdateEntity($params, $data, $request)
{
$data = get_object_vars($data);
if (!$request->isPost()) {
throw new BadRequest();
}
if (empty($data['name'])) {
throw new BadRequest();
}
$name = $data['name'];
$name = filter_var($name, \FILTER_SANITIZE_STRING);
if (!empty($data['sortDirection'])) {
$data['asc'] = $data['sortDirection'] === 'asc';
}
$result = $this->getContainer()->get('entityManagerUtil')->update($name, $data);
if ($result) {
$this->getContainer()->get('dataManager')->clearCache();
} else {
throw new Error();
}
return true;
}
public function actionRemoveEntity($params, $data, $request)
{
$data = get_object_vars($data);
if (!$request->isPost()) {
throw new BadRequest();
}
if (empty($data['name'])) {
throw new BadRequest();
}
$name = $data['name'];
$name = filter_var($name, \FILTER_SANITIZE_STRING);
$result = $this->getContainer()->get('entityManagerUtil')->delete($name);
if ($result) {
$tabList = $this->getConfig()->get('tabList', []);
if (($key = array_search($name, $tabList)) !== false) {
unset($tabList[$key]);
$tabList = array_values($tabList);
}
$this->getConfig()->set('tabList', $tabList);
$this->getConfig()->save();
$this->getContainer()->get('dataManager')->clearCache();
} else {
throw new Error();
}
return true;
}
public function actionCreateLink($params, $data, $request)
{
$data = get_object_vars($data);
if (!$request->isPost()) {
throw new BadRequest();
}
$paramList = [
'entity',
'entityForeign',
'link',
'linkForeign',
'label',
'labelForeign',
'linkType'
];
$additionalParamList = [
'relationName',
];
$params = array();
foreach ($paramList as $item) {
if (empty($data[$item])) {
throw new BadRequest();
}
$params[$item] = filter_var($data[$item], \FILTER_SANITIZE_STRING);
}
foreach ($additionalParamList as $item) {
$params[$item] = filter_var($data[$item], \FILTER_SANITIZE_STRING);
}
if (array_key_exists('linkMultipleField', $data)) {
$params['linkMultipleField'] = $data['linkMultipleField'];
}
if (array_key_exists('linkMultipleFieldForeign', $data)) {
$params['linkMultipleFieldForeign'] = $data['linkMultipleFieldForeign'];
}
if (array_key_exists('audited', $data)) {
$params['audited'] = $data['audited'];
}
if (array_key_exists('auditedForeign', $data)) {
$params['auditedForeign'] = $data['auditedForeign'];
}
$result = $this->getContainer()->get('entityManagerUtil')->createLink($params);
if ($result) {
$this->getContainer()->get('dataManager')->rebuild();
} else {
throw new Error();
}
return true;
}
public function actionUpdateLink($params, $data, $request)
{
$data = get_object_vars($data);
if (!$request->isPost()) {
throw new BadRequest();
}
$paramList = [
'entity',
'entityForeign',
'link',
'linkForeign',
'label',
'labelForeign'
];
$additionalParamList = [];
$params = array();
foreach ($paramList as $item) {
if (array_key_exists($item, $data)) {
$params[$item] = filter_var($data[$item], \FILTER_SANITIZE_STRING);
}
}
foreach ($additionalParamList as $item) {
$params[$item] = filter_var($data[$item], \FILTER_SANITIZE_STRING);
}
if (array_key_exists('linkMultipleField', $data)) {
$params['linkMultipleField'] = $data['linkMultipleField'];
}
if (array_key_exists('linkMultipleFieldForeign', $data)) {
$params['linkMultipleFieldForeign'] = $data['linkMultipleFieldForeign'];
}
if (array_key_exists('audited', $data)) {
$params['audited'] = $data['audited'];
}
if (array_key_exists('auditedForeign', $data)) {
$params['auditedForeign'] = $data['auditedForeign'];
}
$result = $this->getContainer()->get('entityManagerUtil')->updateLink($params);
if ($result) {
$this->getContainer()->get('dataManager')->clearCache();
} else {
throw new Error();
}
return true;
}
public function actionRemoveLink($params, $data, $request)
{
$data = get_object_vars($data);
if (!$request->isPost()) {
throw new BadRequest();
}
$paramList = [
'entity',
'link',
];
$d = array();
foreach ($paramList as $item) {
$d[$item] = filter_var($data[$item], \FILTER_SANITIZE_STRING);
}
$result = $this->getContainer()->get('entityManagerUtil')->deleteLink($d);
if ($result) {
$this->getContainer()->get('dataManager')->clearCache();
} else {
throw new Error();
}
return true;
}
public function postActionFormula($params, $data, $request)
{
if (empty($data->scope)) {
throw new BadRequest();
}
if (!property_exists($data, 'data')) {
throw new BadRequest();
}
$formulaData = get_object_vars($data->data);
$this->getContainer()->get('entityManagerUtil')->setFormulaData($data->scope, $formulaData);
$this->getContainer()->get('dataManager')->clearCache();
return true;
}
public function postActionResetToDefault($params, $data, $request)
{
if (empty($data->scope)) {
throw new BadRequest();
}
$this->getContainer()->get('entityManagerUtil')->resetToDefaults($data->scope);
$this->getContainer()->get('dataManager')->clearCache();
return true;
}
}
+151
View File
@@ -0,0 +1,151 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
class Extension extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function actionUpload($params, $data, $request)
{
if (!$request->isPost()) {
throw new Forbidden();
}
$manager = new \Espo\Core\ExtensionManager($this->getContainer());
$id = $manager->upload($data);
$manifest = $manager->getManifest();
return array(
'id' => $id,
'version' => $manifest['version'],
'name' => $manifest['name'],
'description' => $manifest['description'],
);
}
public function actionInstall($params, $data, $request)
{
if (!$request->isPost()) {
throw new Forbidden();
}
if ($this->getConfig()->get('restrictedMode')) {
if (!$this->getUser()->get('isSuperAdmin')) {
throw new Forbidden();
}
}
$manager = new \Espo\Core\ExtensionManager($this->getContainer());
$manager->install(get_object_vars($data));
return true;
}
public function actionUninstall($params, $data, $request)
{
if (!$request->isPost()) {
throw new Forbidden();
}
if ($this->getConfig()->get('restrictedMode')) {
if (!$this->getUser()->get('isSuperAdmin')) {
throw new Forbidden();
}
}
$manager = new \Espo\Core\ExtensionManager($this->getContainer());
$manager->uninstall(get_object_vars($data));
return true;
}
public function actionCreate($params, $data, $request)
{
throw new Forbidden();
}
public function actionUpdate($params, $data, $request)
{
throw new Forbidden();
}
public function actionPatch($params, $data, $request)
{
throw new Forbidden();
}
public function actionListLinked($params, $data, $request)
{
throw new Forbidden();
}
public function actionDelete($params, $data, $request)
{
if (!$request->isDelete()) {
throw BadRequest();
}
if ($this->getConfig()->get('restrictedMode')) {
if (!$this->getUser()->get('isSuperAdmin')) {
throw new Forbidden();
}
}
$manager = new \Espo\Core\ExtensionManager($this->getContainer());
$manager->delete($params);
return true;
}
public function actionMassUpdate($params, $data, $request)
{
throw new Forbidden();
}
public function actionMassDelete($params, $data, $request)
{
throw new Forbidden();
}
public function actionCreateLink($params, $data, $request)
{
throw new Forbidden();
}
public function actionRemoveLink($params, $data, $request)
{
throw new Forbidden();
}
}
@@ -0,0 +1,140 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class ExternalAccount extends \Espo\Core\Controllers\Record
{
public static $defaultAction = 'list';
protected function checkControllerAccess()
{
if (!$this->getAcl()->checkScope('ExternalAccount')) {
throw new Forbidden();
}
}
public function actionList($params, $data, $request)
{
$integrations = $this->getEntityManager()->getRepository('Integration')->find();
$arr = array();
foreach ($integrations as $entity) {
if ($entity->get('enabled') && $this->getMetadata()->get('integrations.' . $entity->id .'.allowUserAccounts')) {
$arr[] = array(
'id' => $entity->id
);
}
}
return array(
'list' => $arr
);
}
public function actionGetOAuth2Info($params, $data, $request)
{
$id = $request->get('id');
list($integration, $userId) = explode('__', $id);
if ($this->getUser()->id != $userId) {
throw new Forbidden();
}
$entity = $this->getEntityManager()->getEntity('Integration', $integration);
if ($entity) {
return array(
'clientId' => $entity->get('clientId'),
'redirectUri' => $this->getConfig()->get('siteUrl') . '?entryPoint=oauthCallback',
'isConnected' => $this->getRecordService()->ping($integration, $userId)
);
}
}
public function actionRead($params, $data, $request)
{
list($integration, $userId) = explode('__', $params['id']);
if ($this->getUser()->id != $userId) {
throw new Forbidden();
}
$entity = $this->getEntityManager()->getEntity('ExternalAccount', $params['id']);
return $entity->toArray();
}
public function actionUpdate($params, $data, $request)
{
return $this->actionPatch($params, $data, $request);
}
public function actionPatch($params, $data, $request)
{
if (!$request->isPut() && !$request->isPost() && !$request->isPatch()) {
throw new BadRequest();
}
list($integration, $userId) = explode('__', $params['id']);
if ($this->getUser()->id != $userId) {
throw new Forbidden();
}
if (isset($data->enabled) && !$data->enabled) {
$data->data = null;
}
$entity = $this->getEntityManager()->getEntity('ExternalAccount', $params['id']);
$entity->set($data);
$this->getEntityManager()->saveEntity($entity);
return $entity->toArray();
}
public function actionAuthorizationCode($params, $data, $request)
{
if (!$request->isPost()) {
throw new Error('Bad HTTP method type.');
}
$id = $data->id;
$code = $data->code;
list($integration, $userId) = explode('__', $id);
if ($this->getUser()->id != $userId) {
throw new Forbidden();
}
$service = $this->getRecordService();
return $service->authorizationCode($integration, $userId, $code);
}
}
+87 -47
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,71 +18,111 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Error,
\Espo\Core\Exceptions\Forbidden,
\Espo\Core\Exceptions\NotFound;
use Espo\Core\Exceptions\Error;
use Espo\Core\Exceptions\Forbidden;
use Espo\Core\Exceptions\NotFound;
use Espo\Core\Exceptions\BadRequest;
class FieldManager extends \Espo\Core\Controllers\Base
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function actionRead($params, $data)
{
$data = $this->getContainer()->get('fieldManager')->read($params['name'], $params['scope']);
public function actionRead($params, $data)
{
if (empty($params['scope']) || empty($params['name'])) {
throw new BadRequest();
}
if (!isset($data)) {
throw new NotFound();
}
$data = $this->getContainer()->get('fieldManager')->read($params['scope'], $params['name']);
return $data;
}
if (!isset($data)) {
throw new BadRequest();
}
public function actionCreate($params, $data)
{
if (empty($data['name'])) {
throw new Error("Field 'name' cannnot be empty");
}
return $data;
}
$fieldManager = $this->getContainer()->get('fieldManager');
$fieldManager->create($data['name'], $data, $params['scope']);
public function postActionCreate($params, $data)
{
if (empty($params['scope']) || empty($data->name)) {
throw new BadRequest();
}
try {
$this->getContainer()->get('dataManager')->rebuild($params['scope']);
} catch (Error $e) {
$fieldManager->delete($data['name'], $params['scope']);
throw new Error($e->getMessage());
}
$fieldManager = $this->getContainer()->get('fieldManager');
$fieldManager->create($params['scope'], $data->name, get_object_vars($data));
return $fieldManager->read($data['name'], $params['scope']);
}
try {
$this->getContainer()->get('dataManager')->rebuild($params['scope']);
} catch (Error $e) {
$fieldManager->delete($params['scope'], $data->name);
throw new Error($e->getMessage());
}
public function actionUpdate($params, $data)
{
$fieldManager = $this->getContainer()->get('fieldManager');
$fieldManager->update($params['name'], $data, $params['scope']);
return $fieldManager->read($params['scope'], $data->name);
}
$this->getContainer()->get('dataManager')->rebuild($params['scope']);
public function patchActionUpdate($params, $data)
{
return $this->putActionUpdate($params, $data);
}
return $fieldManager->read($params['name'], $params['scope']);
}
public function putActionUpdate($params, $data)
{
if (empty($params['scope']) || empty($params['name'])) {
throw new BadRequest();
}
public function actionDelete($params, $data)
{
$res = $this->getContainer()->get('fieldManager')->delete($params['name'], $params['scope']);
$fieldManager = $this->getContainer()->get('fieldManager');
$fieldManager->update($params['scope'], $params['name'], get_object_vars($data));
$this->getContainer()->get('dataManager')->rebuildMetadata();
if ($fieldManager->isChanged()) {
$this->getContainer()->get('dataManager')->rebuild($params['scope']);
} else {
$this->getContainer()->get('dataManager')->clearCache();
}
return $res;
}
return $fieldManager->read($params['scope'], $params['name']);
}
public function deleteActionDelete($params, $data)
{
if (empty($params['scope']) || empty($params['name'])) {
throw new BadRequest();
}
$result = $this->getContainer()->get('fieldManager')->delete($params['scope'], $params['name']);
$this->getContainer()->get('dataManager')->rebuildMetadata();
return $result;
}
public function postActionResetToDefault($params, $data)
{
if (empty($data->scope) || empty($data->name)) {
throw new BadRequest();
}
$this->getContainer()->get('fieldManager')->resetToDefault($data->scope, $data->name);
$this->getContainer()->get('dataManager')->rebuildMetadata();
return true;
}
}
+18 -11
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,23 +18,30 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Error,
\Espo\Core\Exceptions\Forbidden;
\Espo\Core\Exceptions\Forbidden;
class GlobalSearch extends \Espo\Core\Controllers\Base
{
public function actionSearch($params, $data, $request)
{
$query = $params['query'];
$offset = $request->get('offset');
$maxSize = $request->get('maxSize');
return $this->getService('GlobalSearch')->find($query, $offset);
}
{
$query = $request->get('q');
$offset = intval($request->get('offset'));
$maxSize = intval($request->get('maxSize'));
return $this->getService('GlobalSearch')->find($query, $offset, $maxSize);
}
}
+15 -6
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,15 +18,24 @@
*
* 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\Controllers;
class I18n extends \Espo\Core\Controllers\Base
{
public function actionRead($params, $data)
{
return $this->getContainer()->get('language')->getAll();
}
public function actionRead($params, $data, $request)
{
if ($request->get('default')) {
return $this->getContainer()->get('defaultLanguage')->getAll();
}
return $this->getContainer()->get('language')->getAll();
}
}
+188 -58
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,69 +18,199 @@
*
* 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\Controllers;
use Espo\Core\Utils as Utils;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class Import extends \Espo\Core\Controllers\Base
{
protected function getFileManager()
{
return $this->getContainer()->get('fileManager');
}
protected function getEntityManager()
{
return $this->getContainer()->get('entityManager');
}
public function actionUploadFile($params, $data)
{
$contents = $data;
$attachment = $this->getEntityManager()->getEntity('Attachment');
$attachment->set('type', 'text/csv');
$this->getEntityManager()->saveEntity($attachment);
$this->getFileManager()->putContents('data/upload/' . $attachment->id, $contents);
return array(
'attachmentId' => $attachment->id
);
}
public function actionRevert($params, $data)
{
return $this->getService('Import')->revert($data['entityType'], $data['idsToRemove']);
}
public function actionCreate($params, $data)
{
$importParams = array(
'headerRow' => $data['headerRow'],
'fieldDelimiter' => $data['fieldDelimiter'],
'textQualifier' => $data['textQualifier'],
'dateFormat' => $data['dateFormat'],
'timeFormat' => $data['timeFormat'],
'personNameFormat' => $data['personNameFormat'],
'decimalMark' => $data['decimalMark'],
'currency' => $data['currency'],
'defaultValues' => $data['defaultValues'],
'action' => $data['action'],
);
$attachmentId = $data['attachmentId'];
if (!$this->getAcl()->check($data['entityType'], 'edit')) {
throw new Forbidden();
class Import extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
return $this->getService('Import')->import($data['entityType'], $data['fields'], $attachmentId, $importParams);
}
}
}
public function actionPatch($params, $data, $request)
{
throw new BadRequest();
}
public function actionUpdate($params, $data, $request)
{
throw new BadRequest();
}
public function actionMassUpdate($params, $data, $request)
{
throw new BadRequest();
}
public function actionCreateLink($params, $data, $request)
{
throw new BadRequest();
}
public function actionRemoveLink($params, $data, $request)
{
throw new BadRequest();
}
protected function getFileStorageManager()
{
return $this->getContainer()->get('fileStorageManager');
}
protected function getEntityManager()
{
return $this->getContainer()->get('entityManager');
}
public function actionUploadFile($params, $data, $request)
{
$contents = $data;
if (!$request->isPost()) {
throw new BadRequest();
}
$attachment = $this->getEntityManager()->getEntity('Attachment');
$attachment->set('type', 'text/csv');
$attachment->set('role', 'Import File');
$attachment->set('name', 'import-file.csv');
$this->getEntityManager()->saveEntity($attachment);
$this->getFileStorageManager()->putContents($attachment, $contents);
return array(
'attachmentId' => $attachment->id
);
}
public function actionRevert($params, $data, $request)
{
if (empty($data->id)) {
throw new BadRequest();
}
if (!$request->isPost()) {
throw new BadRequest();
}
return $this->getService('Import')->revert($data->id);
}
public function actionRemoveDuplicates($params, $data, $request)
{
if (empty($data->id)) {
throw new BadRequest();
}
if (!$request->isPost()) {
throw new BadRequest();
}
return $this->getService('Import')->removeDuplicates($data->id);
}
public function actionCreate($params, $data, $request)
{
if (!$request->isPost() && !$request->isPut()) {
throw new BadRequest();
}
if (!isset($data->fieldDelimiter)) {
throw new BadRequest();
}
if (!isset($data->textQualifier)) {
throw new BadRequest();
}
if (!isset($data->dateFormat)) {
throw new BadRequest();
}
if (!isset($data->timeFormat)) {
throw new BadRequest();
}
if (!isset($data->personNameFormat)) {
throw new BadRequest();
}
if (!isset($data->decimalMark)) {
throw new BadRequest();
}
if (!isset($data->defaultValues)) {
throw new BadRequest();
}
if (!isset($data->action)) {
throw new BadRequest();
}
if (!isset($data->attachmentId)) {
throw new BadRequest();
}
if (!isset($data->entityType)) {
throw new BadRequest();
}
if (!isset($data->fields)) {
throw new BadRequest();
}
$timezone = 'UTC';
if (isset($data->timezone)) {
$timezone = $data->timezone;
}
$importParams = array(
'headerRow' => !empty($data->headerRow),
'fieldDelimiter' => $data->fieldDelimiter,
'textQualifier' => $data->textQualifier,
'dateFormat' => $data->dateFormat,
'timeFormat' => $data->timeFormat,
'timezone' => $timezone,
'personNameFormat' => $data->personNameFormat,
'decimalMark' => $data->decimalMark,
'currency' => $data->currency,
'defaultValues' => $data->defaultValues,
'action' => $data->action,
'skipDuplicateChecking' => !empty($data->skipDuplicateChecking),
'idleMode' => !empty($data->idleMode)
);
if (property_exists($data, 'updateBy')) {
$importParams['updateBy'] = $data->updateBy;
}
$attachmentId = $data->attachmentId;
if (!$this->getAcl()->check($data->entityType, 'edit')) {
throw new Forbidden();
}
return $this->getService('Import')->import($data->entityType, $data->fields, $attachmentId, $importParams);
}
public function postActionUnmarkAsDuplicate($params, $data)
{
if (empty($data->id) || empty($data->entityType) || empty($data->entityId)) {
throw new BadRequest();
}
$this->getService('Import')->unmarkAsDuplicate($data->id, $data->entityType, $data->entityId);
return true;
}
}
@@ -0,0 +1,73 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class InboundEmail extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function actionGetFolders($params, $data, $request)
{
return $this->getRecordService()->getFolders(array(
'host' => $request->get('host'),
'port' => $request->get('port'),
'ssl' => $request->get('ssl') === 'true',
'username' => $request->get('username'),
'password' => $request->get('password'),
'id' => $request->get('id')
));
}
public function actionTestConnection($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
if (is_null($data->password)) {
$inboundEmail = $this->getEntityManager()->getEntity('InboundEmail', $data->id);
if (!$inboundEmail || !$inboundEmail->id) {
throw new Error();
}
$data->password = $this->getContainer()->get('crypt')->decrypt($inboundEmail->get('password'));
}
return $this->getRecordService()->testConnection(get_object_vars($data));
}
}
@@ -0,0 +1,85 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class Integration extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function actionIndex($params, $data, $request)
{
return false;
}
public function actionRead($params, $data, $request)
{
$entity = $this->getEntityManager()->getEntity('Integration', $params['id']);
return $entity->toArray();
}
public function actionUpdate($params, $data, $request)
{
return $this->actionPatch($params, $data, $request);
}
public function actionPatch($params, $data, $request)
{
if (!$request->isPut() && !$request->isPatch()) {
throw new BadRequest();
}
$entity = $this->getEntityManager()->getEntity('Integration', $params['id']);
$entity->set($data);
$this->getEntityManager()->saveEntity($entity);
$integrationsConfigData = $this->getConfig()->get('integrations');
if (!$integrationsConfigData || !($integrationsConfigData instanceof \StdClass)) {
$integrationsConfigData = (object)[];
}
$integrationName = $params['id'];
$integrationsConfigData->$integrationName = $entity->get('enabled');
$this->getConfig()->set('integrations', $integrationsConfigData);
$this->getConfig()->save();
return $entity->toArray();
}
}
+78
View File
@@ -0,0 +1,78 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
class Job extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function actionCreate($params, $data, $request)
{
throw new Forbidden();
}
public function actionUpdate($params, $data, $request)
{
throw new Forbidden();
}
public function actionPatch($params, $data, $request)
{
throw new Forbidden();
}
public function actionListLinked($params, $data, $request)
{
throw new Forbidden();
}
public function actionMassUpdate($params, $data, $request)
{
throw new Forbidden();
}
public function actionCreateLink($params, $data, $request)
{
throw new Forbidden();
}
public function actionRemoveLink($params, $data, $request)
{
throw new Forbidden();
}
}
@@ -0,0 +1,78 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use Espo\Core\Utils as Utils;
use \Espo\Core\Exceptions\NotFound;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class LabelManager extends \Espo\Core\Controllers\Base
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
public function postActionGetScopeList($params)
{
$labelManager = $this->getContainer()->get('injectableFactory')->createByClassName('\\Espo\\Core\\Utils\\LabelManager');
return $labelManager->getScopeList();
}
public function postActionGetScopeData($params, $data, $request)
{
if (empty($data->scope) || empty($data->language)) {
throw new BadRequest();
}
$labelManager = $this->getContainer()->get('injectableFactory')->createByClassName('\\Espo\\Core\\Utils\\LabelManager');
return $labelManager->getScopeData($data->language, $data->scope);
}
public function postActionSaveLabels($params, $data)
{
if (empty($data->scope) || empty($data->language) || !isset($data->labels)) {
throw new BadRequest();
}
$labels = get_object_vars($data->labels);
$labelManager = $this->getContainer()->get('injectableFactory')->createByClassName('\\Espo\\Core\\Utils\\LabelManager');
$returnData = $labelManager->saveLabels($data->language, $data->scope, $labels);
$this->getContainer()->get('dataManager')->clearCache();
return $returnData;
}
}
@@ -0,0 +1,46 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
class LastViewed extends \Espo\Core\Controllers\Base
{
public function getActionIndex($params, $data, $request)
{
$result = $this->getServiceFactory()->create('LastViewed')->get();
return [
'total' => $result['total'],
'list' => isset($result['collection']) ? $result['collection']->toArray() : $result['list']
];
}
}
+56 -21
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,6 +18,13 @@
*
* 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\Controllers;
@@ -25,33 +32,61 @@ namespace Espo\Controllers;
use Espo\Core\Utils as Utils;
use \Espo\Core\Exceptions\NotFound;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class Layout extends \Espo\Core\Controllers\Base
{
public function actionRead($params, $data)
{
$data = $this->getContainer()->get('layout')->get($params['scope'], $params['name']);
if (empty($data)) {
throw new NotFound("Layout " . $params['scope'] . ":" . $params['name'] . ' is not found');
}
return $data;
}
{
$data = $this->getContainer()->get('layout')->get($params['scope'], $params['name']);
if (empty($data)) {
throw new NotFound("Layout " . $params['scope'] . ":" . $params['name'] . ' is not found.');
}
return $data;
}
public function actionUpdate($params, $data)
{
$result = $this->getContainer()->get('layout')->set($data, $params['scope'], $params['name']);
public function actionUpdate($params, $data, $request)
{
if (is_object($data)) {
$data = get_object_vars($data);
}
if ($result === false) {
throw new Error("Error while saving layout");
}
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
$this->getContainer()->get('dataManager')->updateCacheTimestamp();
if (!$request->isPut() && !$request->isPatch()) {
throw new BadRequest();
}
return $this->getContainer()->get('layout')->get($params['scope'], $params['name']);
}
$layoutManager = $this->getContainer()->get('layout');
$layoutManager->set($data, $params['scope'], $params['name']);
$result = $layoutManager->save();
public function actionPatch($params, $data)
{
return $this->actionUpdate($params, $data);
}
if ($result === false) {
throw new Error("Error while saving layout.");
}
$this->getContainer()->get('dataManager')->updateCacheTimestamp();
return $layoutManager->get($params['scope'], $params['name']);
}
public function actionPatch($params, $data, $request)
{
return $this->actionUpdate($params, $data, $request);
}
public function actionResetToDefault($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
if (empty($data->scope) || empty($data->name)) {
throw new BadRequest();
}
return $this->getContainer()->get('layout')->resetToDefault($data->scope, $data->name);
}
}
+24 -5
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,15 +18,34 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
class Metadata extends \Espo\Core\Controllers\Base
{
public function actionRead($params, $data)
{
return $this->getMetadata()->getAll(true);
}
{
return $this->getMetadata()->getAllForFrontend();
}
public function getActionGet($params, $data, $request)
{
if (!$this->getUser()->isAdmin()) {
throw new \Forbidden();
}
$key = $request->get('key');
return $this->getMetadata()->get($key, false);
}
}
+9 -2
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,7 +18,14 @@
*
* 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\Controllers;
+73 -32
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,43 +18,84 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Error;
class Notification extends \Espo\Core\Controllers\Base
class Notification extends \Espo\Core\Controllers\Record
{
public static $defaultAction = 'list';
public static $defaultAction = 'list';
public function actionList($params, $data, $request)
{
$scope = $params['scope'];
$id = $params['id'];
$userId = $this->getUser()->id;
$offset = intval($request->get('offset'));
$maxSize = intval($request->get('maxSize'));
$params = array(
'offset' => $offset,
'maxSize' => $maxSize,
);
$result = $this->getService('Notification')->getList($userId, $params);
return array(
'total' => $result['total'],
'list' => $result['collection']->toArray()
);
}
public function actionNotReadCount()
{
$userId = $this->getUser()->id;
return $this->getService('Notification')->getNotReadCount($userId);
}
public function actionList($params, $data, $request)
{
$userId = $this->getUser()->id;
$offset = intval($request->get('offset'));
$maxSize = intval($request->get('maxSize'));
$after = $request->get('after');
if (empty($maxSize)) {
$maxSize = self::MAX_SIZE_LIMIT;
}
$params = array(
'offset' => $offset,
'maxSize' => $maxSize,
'after' => $after
);
$result = $this->getService('Notification')->getList($userId, $params);
return array(
'total' => $result['total'],
'list' => $result['collection']->toArray()
);
}
public function actionNotReadCount()
{
$userId = $this->getUser()->id;
return $this->getService('Notification')->getNotReadCount($userId);
}
public function postActionMarkAllRead($params, $data, $request)
{
$userId = $this->getUser()->id;
return $this->getService('Notification')->markAllRead($userId);
}
public function actionExport($params, $data, $request)
{
throw new Error();
}
public function actionMassUpdate($params, $data, $request)
{
throw new Error();
}
public function actionCreateLink($params, $data, $request)
{
throw new Error();
}
public function actionRemoveLink($params, $data, $request)
{
throw new Error();
}
public function actionMerge($params, $data, $request)
{
throw new Error();
}
}
+60
View File
@@ -0,0 +1,60 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
use \Espo\Core\Exceptions\Error;
class Pdf extends \Espo\Core\Controllers\Base
{
public function postActionMassPrint($params, $data)
{
if (empty($data->idList) || !is_array($data->idList)) {
throw new BadRequest();
}
if (empty($data->entityType)) {
throw new BadRequest();
}
if (empty($data->templateId)) {
throw new BadRequest();
}
if (!$this->getAcl()->checkScope('Template')) {
throw new Forbidden();
}
if (!$this->getAcl()->checkScope($data->entityType)) {
throw new Forbidden();
}
return [
'id' => $this->getServiceFactory()->create('Pdf')->massGenerate($data->entityType, $data->idList, $data->templateId, true)
];
}
}
+43
View File
@@ -0,0 +1,43 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Forbidden;
class Portal extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
$portalPermission = $this->getAcl()->get('portalPermission');
if (!$portalPermission || $portalPermission === 'no') {
throw new Forbidden();
}
}
}
@@ -0,0 +1,34 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
class PortalRole extends \Espo\Core\Controllers\Record
{
}
+112 -58
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,75 +18,129 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
use \Espo\Core\Exceptions\NotFound;
class Preferences extends \Espo\Core\Controllers\Base
{
protected function getPreferences()
{
return $this->getContainer()->get('preferences');
}
protected function getEntityManager()
{
return $this->getContainer()->get('entityManager');
}
protected function handleUserAccess($userId)
{
if (!$this->getUser()->isAdmin()) {
if ($this->getUser()->id != $userId) {
throw new Forbidden();
}
}
}
public function actionPatch($params, $data)
{
return $this->actionUpdate($params, $data);
}
{
protected function getPreferences()
{
return $this->getContainer()->get('preferences');
}
public function actionUpdate($params, $data)
{
$userId = $params['id'];
$this->handleUserAccess($userId);
$user = $this->getEntityManager()->getEntity('User', $userId);
protected function getEntityManager()
{
return $this->getContainer()->get('entityManager');
}
$entity = $this->getEntityManager()->getEntity('Preferences', $userId);
if ($entity) {
$entity->set($data);
$this->getEntityManager()->saveEntity($entity);
$entity->set('smtpEmailAddress', $user->get('emailAddress'));
$entity->set('name', $user->get('name'));
return $entity->toArray();
}
throw new Error();
}
protected function getCrypt()
{
return $this->getContainer()->get('crypt');
}
protected function handleUserAccess($userId)
{
if (!$this->getUser()->isAdmin()) {
if ($this->getUser()->id != $userId) {
throw new Forbidden();
}
}
}
public function actionDelete($params, $data, $request)
{
$userId = $params['id'];
if (empty($userId)) {
throw new BadRequest();
}
if (!$request->isDelete()) {
throw new BadRequest();
}
$this->handleUserAccess($userId);
return $this->getEntityManager()->getRepository('Preferences')->resetToDefaults($userId);
}
public function actionPatch($params, $data, $request)
{
return $this->actionUpdate($params, $data, $request);
}
public function actionUpdate($params, $data, $request)
{
$userId = $params['id'];
$this->handleUserAccess($userId);
if (!$request->isPost() && !$request->isPatch() && !$request->isPut()) {
throw new BadRequest();
}
if ($this->getAcl()->getLevel('Preferences', 'read') === 'no') {
throw new Forbidden();
}
foreach ($this->getAcl()->getScopeForbiddenAttributeList('Preferences', 'edit') as $attribute) {
unset($data->$attribute);
}
if (property_exists($data, 'smtpPassword')) {
$data->smtpPassword = $this->getCrypt()->encrypt($data->smtpPassword);
}
$user = $this->getEntityManager()->getEntity('User', $userId);
$entity = $this->getEntityManager()->getEntity('Preferences', $userId);
if ($entity && $user) {
$entity->set($data);
$this->getEntityManager()->saveEntity($entity);
$entity->set('smtpEmailAddress', $user->get('emailAddress'));
$entity->set('name', $user->get('name'));
$entity->clear('smtpPassword');
return $entity->getValueMap();
}
throw new Error();
}
public function actionRead($params)
{
$userId = $params['id'];
$this->handleUserAccess($userId);
{
$userId = $params['id'];
$this->handleUserAccess($userId);
$entity = $this->getEntityManager()->getEntity('Preferences', $userId);
$user = $this->getEntityManager()->getEntity('User', $userId);
$entity->set('smtpEmailAddress', $user->get('emailAddress'));
$entity->set('name', $user->get('name'));
if ($entity) {
return $entity->toArray();
}
throw new NotFound();
}
$entity = $this->getEntityManager()->getEntity('Preferences', $userId);
$user = $this->getEntityManager()->getEntity('User', $userId);
if (!$entity || !$user) {
throw new NotFound();
}
$entity->set('smtpEmailAddress', $user->get('emailAddress'));
$entity->set('name', $user->get('name'));
$entity->set('isPortalUser', $user->get('isPortalUser'));
$entity->clear('smtpPassword');
foreach ($this->getAcl()->getScopeForbiddenAttributeList('Preferences', 'read') as $attribute) {
$entity->clear($attribute);
}
return $entity->getValueMap();
}
}
+9 -4
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,12 +18,17 @@
*
* 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\Controllers;
class Role extends \Espo\Core\Controllers\Record
{
}
+14 -8
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,17 +18,23 @@
*
* 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\Controllers;
class ScheduledJob extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,17 +18,24 @@
*
* 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\Controllers;
class ScheduledJobLogRecord extends \Espo\Core\Controllers\Record
{
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
protected function checkControllerAccess()
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
}
}
+88 -35
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,50 +18,103 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class Settings extends \Espo\Core\Controllers\Base
{
protected function getConfigData()
{
$data = $this->getConfig()->getData($this->getUser()->isAdmin());
$fieldDefs = $this->getMetadata()->get('entityDefs.Settings.fields');
foreach ($fieldDefs as $field => $d) {
if ($d['type'] == 'password') {
unset($data[$field]);
}
}
return $data;
}
public function actionRead($params, $data)
{
return $this->getConfigData();
}
protected function getConfigData()
{
if ($this->getUser()->id == 'system') {
$data = $this->getConfig()->getData();
} else {
$data = $this->getConfig()->getData($this->getUser()->isAdmin());
}
public function actionUpdate($params, $data)
{
return $this->actionPatch($params, $data);
}
$fieldDefs = $this->getMetadata()->get('entityDefs.Settings.fields');
public function actionPatch($params, $data)
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
$result = $this->getConfig()->setData($data, $this->getUser()->isAdmin());
if ($result === false) {
throw new Error('Cannot save settings');
}
foreach ($fieldDefs as $field => $d) {
if ($d['type'] === 'password') {
unset($data[$field]);
}
}
return $this->getConfigData();
}
$data['jsLibs'] = $this->getMetadata()->get('app.jsLibs');
return $data;
}
public function actionRead($params, $data)
{
return $this->getConfigData();
}
public function actionUpdate($params, $data, $request)
{
return $this->actionPatch($params, $data, $request);
}
public function actionPatch($params, $data, $request)
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
if (!$request->isPut() && !$request->isPatch()) {
throw new BadRequest();
}
if (
(isset($data->useCache) && $data->useCache !== $this->getConfig()->get('useCache'))
||
(isset($data->aclStrictMode) && $data->aclStrictMode !== $this->getConfig()->get('aclStrictMode'))
) {
$this->getContainer()->get('dataManager')->clearCache();
}
$this->getConfig()->setData($data, $this->getUser()->isAdmin());
$result = $this->getConfig()->save();
if ($result === false) {
throw new Error('Cannot save settings');
}
if (isset($data->defaultCurrency) || isset($data->baseCurrency) || isset($data->currencyRates)) {
$this->getContainer()->get('dataManager')->rebuildDatabase([]);
}
return $this->getConfigData();
}
public function postActionTestLdapConnection($params, $data)
{
if (!$this->getUser()->isAdmin()) {
throw new Forbidden();
}
if (!isset($data->password)) {
$data->password = $this->getConfig()->get('ldapPassword');
}
$data = get_object_vars($data);
$ldapUtils = new \Espo\Core\Utils\Authentication\LDAP\Utils();
$options = $ldapUtils->normalizeOptions($data);
$ldapClient = new \Espo\Core\Utils\Authentication\LDAP\Client($options);
$ldapClient->bind(); //an exception if no connection
return true;
}
}
+42 -33
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,7 +18,14 @@
*
* 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\Controllers;
@@ -26,38 +33,40 @@ use \Espo\Core\Exceptions\Error;
class Stream extends \Espo\Core\Controllers\Base
{
const MAX_SIZE_LIMIT = 400;
public static $defaultAction = 'list';
const MAX_SIZE_LIMIT = 200;
public static $defaultAction = 'list';
public function actionList($params, $data, $request)
{
$scope = $params['scope'];
$id = $params['id'];
$offset = intval($request->get('offset'));
$maxSize = intval($request->get('maxSize'));
$after = $request->get('after');
$service = $this->getService('Stream');
if (empty($maxSize)) {
$maxSize = self::MAX_SIZE_LIMIT;
}
if (!empty($maxSize) && $maxSize > self::MAX_SIZE_LIMIT) {
throw new Forbidden();
}
$result = $service->find($scope, $id, array(
'offset' => $offset,
'maxSize' => $maxSize,
'after' => $after,
));
return array(
'total' => $result['total'],
'list' => $result['collection']->toArray()
);
}
{
$scope = $params['scope'];
$id = isset($params['id']) ? $params['id'] : null;
$offset = intval($request->get('offset'));
$maxSize = intval($request->get('maxSize'));
$after = $request->get('after');
$filter = $request->get('filter');
$service = $this->getService('Stream');
if (empty($maxSize)) {
$maxSize = self::MAX_SIZE_LIMIT;
}
if (!empty($maxSize) && $maxSize > self::MAX_SIZE_LIMIT) {
throw new Forbidden();
}
$result = $service->find($scope, $id, array(
'offset' => $offset,
'maxSize' => $maxSize,
'after' => $after,
'filter' => $filter
));
return array(
'total' => $result['total'],
'list' => $result['collection']->toArray()
);
}
}
+9 -4
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,12 +18,17 @@
*
* 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\Controllers;
class Team extends \Espo\Core\Controllers\Record
{
}
+37
View File
@@ -0,0 +1,37 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Controllers;
use \Espo\Core\Exceptions\Error;
class Template extends \Espo\Core\Controllers\Record
{
}
+81 -23
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,34 +18,92 @@
*
* 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\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\NotFound;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
class User extends \Espo\Core\Controllers\Record
{
public function actionAcl($params, $data, $request)
{
$userId = $request->get('id');
if (empty($userId)) {
throw new Error();
}
if (!$this->getUser()->isAdmin() && $this->getUser()->id != $userId) {
throw new Forbidden();
}
$user = $this->getEntityManager()->getEntity('User', $userId);
if (empty($user)) {
throw new NotFound();
}
$acl = new \Espo\Core\Acl($user);
return $acl->toArray();
}
{
public function actionAcl($params, $data, $request)
{
$userId = $request->get('id');
if (empty($userId)) {
throw new Error();
}
if (!$this->getUser()->isAdmin() && $this->getUser()->id != $userId) {
throw new Forbidden();
}
$user = $this->getEntityManager()->getEntity('User', $userId);
if (empty($user)) {
throw new NotFound();
}
return $this->getAclManager()->getMap($user);
}
public function postActionChangeOwnPassword($params, $data, $request)
{
if (!property_exists($data, 'password') || !property_exists($data, 'currentPassword')) {
throw new BadRequest();
}
return $this->getService('User')->changePassword($this->getUser()->id, $data->password, true, $data->currentPassword);
}
public function postActionChangePasswordByRequest($params, $data, $request)
{
if (empty($data->requestId) || empty($data->password)) {
throw new BadRequest();
}
$p = $this->getEntityManager()->getRepository('PasswordChangeRequest')->where(array(
'requestId' => $data->requestId
))->findOne();
if (!$p) {
throw new Forbidden();
}
$userId = $p->get('userId');
if (!$userId) {
throw new Error();
}
$this->getEntityManager()->removeEntity($p);
if ($this->getService('User')->changePassword($userId, $data->password)) {
return array(
'url' => $p->get('url')
);
}
}
public function postActionPasswordChangeRequest($params, $data, $request)
{
if (empty($data->userName) || empty($data->emailAddress)) {
throw new BadRequest();
}
$userName = $data->userName;
$emailAddress = $data->emailAddress;
$url = null;
if (!empty($data->url)) {
$url = $data->url;
}
return $this->getService('User')->passwordChangeRequest($userName, $emailAddress, $url);
}
}
+98 -221
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,243 +18,120 @@
*
* 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\Core;
use \Espo\Core\Exceptions\Error;
use \Espo\ORM\Entity;
use \Espo\Entities\User;
class Acl
{
private $data = array();
private $user;
private $cacheFile;
private $aclManager;
private $actionList = array('read', 'edit', 'delete');
public function __construct(AclManager $aclManager, User $user)
{
$this->aclManager = $aclManager;
$this->user = $user;
}
private $levelList = array('all', 'team', 'own', 'no');
private $fileManager;
protected function getAclManager()
{
return $this->aclManager;
}
public function __construct(\Espo\Entities\User $user, $config = null, $fileManager = null)
{
$this->user = $user;
if (!$this->user->isFetched()) {
throw new Error();
}
$this->user->loadLinkMultipleField('teams');
if ($fileManager) {
$this->fileManager = $fileManager;
}
$this->cacheFile = 'data/cache/application/acl/' . $user->id . '.php';
if ($config && $config->get('useCache') && file_exists($this->cacheFile)) {
$cached = include $this->cacheFile;
$this->data = $cached;
$this->initSolid();
} else {
$this->load();
$this->initSolid();
if ($config && $fileManager && $config->get('useCache')) {
$this->buildCache();
}
}
protected function getUser()
{
return $this->user;
}
}
public function checkScope($scope, $action = null, $isOwner = null, $inTeam = null)
{
if (array_key_exists($scope, $this->data)) {
if ($this->data[$scope] === false) {
return false;
}
if ($this->data[$scope] === true) {
return true;
}
if (!is_null($action)) {
if (array_key_exists($action, $this->data[$scope])) {
$value = $this->data[$scope][$action];
if ($value === 'all' || $value === true) {
return true;
}
if (!$value || $value === 'no') {
return false;
}
if (is_null($isOwner)) {
return true;
}
if ($isOwner) {
if ($value === 'own' || $value === 'team') {
return true;
}
}
if ($inTeam) {
if ($value === 'team') {
return true;
}
}
return false;
}
}
return true;
}
return true;
}
public function toArray()
{
return $this->data;
}
public function getMap()
{
return $this->getAclManager()->getMap($this->getUser());
}
public function check($subject, $action = null, $isOwner = null, $inTeam = null)
{
if ($this->user->isAdmin()) {
return true;
}
if (is_string($subject)) {
return $this->checkScope($subject, $action, $isOwner, $inTeam);
} else {
$entity = $subject;
$entityName = $entity->getEntityName();
return $this->checkScope($entityName, $action, $this->checkIsOwner($entity), $this->checkInTeam($entity));
}
}
public function checkReadOnlyTeam($scope)
{
if (isset($this->data[$scope]) && isset($this->data[$scope]['read'])) {
return $this->data[$scope]['read'] === 'team';
}
return false;
}
public function checkReadOnlyOwn($scope)
{
if ($this->user->isAdmin()) {
return false;
}
if (isset($this->data[$scope]) && isset($this->data[$scope]['read'])) {
return $this->data[$scope]['read'] === 'own';
}
return false;
}
public function checkIsOwner($entity)
{
if ($this->user->isAdmin()) {
return false;
}
$userId = $this->user->id;
if ($userId === $entity->get('assignedUserId') || $userId === $entity->get('createdById')) {
return true;
}
return false;
}
public function checkInTeam($entity)
{
$userTeamIds = $this->user->get('teamsIds');
$teamIds = $entity->get('teamsIds');
foreach ($userTeamIds as $id) {
if (in_array($id, $teamIds)) {
return true;
}
}
return false;
}
public function getLevel($scope, $action)
{
return $this->getAclManager()->getLevel($this->getUser(), $scope, $action);
}
private function load()
{
$aclTables = array();
public function get($permission)
{
return $this->getAclManager()->get($this->getUser(), $permission);
}
$userRoles = $this->user->get('roles');
foreach ($userRoles as $role) {
$aclTables[] = json_decode($role->get('data'));
}
public function checkReadNo($scope)
{
return $this->getAclManager()->checkReadNo($this->getUser(), $scope);
}
$teams = $this->user->get('teams');
foreach ($teams as $team) {
$teamRoles = $team->get('roles');
foreach ($teamRoles as $role) {
$aclTables[] = json_decode($role->get('data'));
}
}
public function checkReadOnlyTeam($scope)
{
return $this->getAclManager()->checkReadOnlyTeam($this->getUser(), $scope);
}
$this->data = $this->merge($aclTables);
}
private function initSolid()
{
$this->data['User'] = array(
'read' => 'all',
'edit' => 'no',
'delete' => 'no',
);
$this->data['Team'] = array(
'read' => 'all',
'edit' => 'no',
'delete' => 'no',
);
$this->data['Role'] = false;
$this->data['Note'] = array(
'read' => 'own',
'edit' => 'own',
'delete' => 'own',
);
$this->data['EmailAddress'] = array(
'read' => 'no',
'edit' => 'no',
'delete' => 'no',
);
}
public function checkReadOnlyOwn($scope)
{
return $this->getAclManager()->checkReadOnlyOwn($this->getUser(), $scope);
}
private function merge($tables)
{
$data = array();
foreach ($tables as $table) {
foreach ($table as $scope => $row) {
if ($row == false) {
if (!isset($data[$scope])) {
$data[$scope] = false;
}
} else {
if (!isset($data[$scope])) {
$data[$scope] = array();
}
if ($data[$scope] == false) {
$data[$scope] = array();
}
foreach ($row as $action => $level) {
if (!isset($data[$scope][$action])) {
$data[$scope][$action] = $level;
} else {
if (array_search($data[$scope][$action], $this->levelList) > array_search($level, $this->levelList)) {
$data[$scope][$action] = $level;
}
}
}
}
}
}
return $data;
}
public function check($subject, $action = null)
{
return $this->getAclManager()->check($this->getUser(), $subject, $action);
}
private function buildCache()
{
$contents = '<' . '?'. 'php return ' . var_export($this->data, true) . ';';
$this->fileManager->putContents($this->cacheFile, $contents);
}
public function checkScope($scope, $action = null)
{
return $this->getAclManager()->checkScope($this->getUser(), $scope, $action);
}
public function checkEntity(Entity $entity, $action = 'read')
{
return $this->getAclManager()->checkEntity($this->getUser(), $entity, $action);
}
public function checkUser($permission, User $entity)
{
return $this->getAclManager()->checkUser($this->getUser(), $permission, $entity);
}
public function checkIsOwner(Entity $entity)
{
return $this->getAclManager()->checkIsOwner($this->getUser(), $entity);
}
public function checkInTeam(Entity $entity)
{
return $this->getAclManager()->checkInTeam($this->getUser(), $entity);
}
public function getScopeForbiddenAttributeList($scope, $action = 'read', $thresholdLevel = 'no')
{
return $this->getAclManager()->getScopeForbiddenAttributeList($this->getUser(), $scope, $action, $thresholdLevel);
}
public function getScopeForbiddenFieldList($scope, $action = 'read', $thresholdLevel = 'no')
{
return $this->getAclManager()->getScopeForbiddenFieldList($this->getUser(), $scope, $action, $thresholdLevel);
}
public function checkUserPermission($target, $permissionType = 'userPermission')
{
return $this->getAclManager()->checkUserPermission($this->getUser(), $target, $permissionType);
}
public function checkAssignmentPermission($target)
{
return $this->getAclManager()->checkAssignmentPermission($this->getUser(), $target);
}
}
+285
View File
@@ -0,0 +1,285 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Core\Acl;
use \Espo\Core\Interfaces\Injectable;
use \Espo\Entities\User;
use \Espo\ORM\Entity;
class Base implements Injectable
{
protected $dependencies = array(
'config',
'entityManager',
'aclManager'
);
protected $scope;
protected $injections = array();
public function inject($name, $object)
{
$this->injections[$name] = $object;
}
public function __construct($scope)
{
$this->init();
$this->scope = $scope;
}
protected function init()
{
}
protected function getInjection($name)
{
return $this->injections[$name];
}
protected function addDependencyList(array $list)
{
foreach ($list as $item) {
$this->addDependency($item);
}
}
protected function addDependency($name)
{
$this->dependencies[] = $name;
}
public function getDependencyList()
{
return $this->dependencies;
}
protected function getConfig()
{
return $this->getInjection('config');
}
protected function getEntityManager()
{
return $this->getInjection('entityManager');
}
protected function getAclManager()
{
return $this->getInjection('aclManager');
}
public function checkReadOnlyTeam(User $user, $data)
{
if (empty($data) || !is_object($data) || !isset($data->read)) {
return false;
}
return $data->read === 'team';
}
public function checkReadNo(User $user, $data)
{
if (empty($data) || !is_object($data) || !isset($data->read)) {
return false;
}
return $data->read === 'no';
}
public function checkReadOnlyOwn(User $user, $data)
{
if (empty($data) || !is_object($data) || !isset($data->read)) {
return false;
}
return $data->read === 'own';
}
public function checkEntity(User $user, Entity $entity, $data, $action)
{
if ($user->isAdmin()) {
return true;
}
return $this->checkScope($user, $data, $action, $entity);
}
public function checkScope(User $user, $data, $action = null, Entity $entity = null, $entityAccessData = array())
{
if ($user->isAdmin()) {
return true;
}
if (is_null($data)) {
return false;
}
if ($data === false) {
return false;
}
if ($data === true) {
return true;
}
if (is_string($data)) {
return true;
}
$isOwner = null;
if (isset($entityAccessData['isOwner'])) {
$isOwner = $entityAccessData['isOwner'];
}
$inTeam = null;
if (isset($entityAccessData['inTeam'])) {
$inTeam = $entityAccessData['inTeam'];
}
if (is_null($action)) {
return true;
}
if (!isset($data->$action)) {
return false;
}
$value = $data->$action;
if ($value === 'all' || $value === 'yes' || $value === true) {
return true;
}
if (!$value || $value === 'no') {
return false;
}
if (is_null($isOwner)) {
if ($entity) {
$isOwner = $this->checkIsOwner($user, $entity);
} else {
return true;
}
}
if ($isOwner) {
if ($value === 'own' || $value === 'team') {
return true;
}
}
if (is_null($inTeam) && $entity) {
$inTeam = $this->checkInTeam($user, $entity);
}
if ($inTeam) {
if ($value === 'team') {
return true;
}
}
return false;
}
public function checkIsOwner(User $user, Entity $entity)
{
if ($entity->hasAttribute('assignedUserId')) {
if ($entity->has('assignedUserId')) {
if ($user->id === $entity->get('assignedUserId')) {
return true;
}
}
} else if ($entity->hasAttribute('createdById')) {
if ($entity->has('createdById')) {
if ($user->id === $entity->get('createdById')) {
return true;
}
}
}
if ($entity->hasLinkMultipleField('assignedUsers')) {
if ($entity->hasLinkMultipleId('assignedUsers', $user->id)) {
return true;
}
}
return false;
}
public function checkInTeam(User $user, Entity $entity)
{
$userTeamIdList = $user->getLinkMultipleIdList('teams');
if (!$entity->hasRelation('teams') || !$entity->hasAttribute('teamsIds')) {
return false;
}
$entityTeamIdList = $entity->getLinkMultipleIdList('teams');
if (empty($entityTeamIdList)) {
return false;
}
foreach ($userTeamIdList as $id) {
if (in_array($id, $entityTeamIdList)) {
return true;
}
}
return false;
}
public function checkEntityDelete(User $user, Entity $entity, $data)
{
if ($user->isAdmin()) {
return true;
}
if ($this->checkEntity($user, $entity, $data, 'delete')) {
return true;
}
if (is_object($data)) {
if ($data->edit !== 'no' || $data->create !== 'no') {
if (
$this->getConfig()->get('aclAllowDeleteCreated')
&&
$entity->has('createdById') && $entity->get('createdById') == $user->id
) {
if (!$entity->has('assignedUserId')) {
return true;
} else {
if (!$entity->get('assignedUserId')) {
return true;
}
if ($entity->get('assignedUserId') == $entity->get('createdById')) {
return true;
}
}
}
}
}
return false;
}
}
+742
View File
@@ -0,0 +1,742 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Core\Acl;
use \Espo\Core\Exceptions\Error;
use \Espo\ORM\Entity;
use \Espo\Entities\User;
use \Espo\Core\Utils\Config;
use \Espo\Core\Utils\Metadata;
use \Espo\Core\Utils\FieldManagerUtil;
use \Espo\Core\Utils\File\Manager as FileManager;
class Table
{
protected $type = 'acl';
protected $defaultAclType = 'recordAllTeamOwnNo';
private $data = null;
protected $cacheFilePath;
protected $actionList = ['read', 'stream', 'edit', 'delete', 'create'];
protected $booleanActionList = ['create'];
protected $levelList = ['yes', 'all', 'team', 'own', 'no'];
protected $fieldActionList = ['read', 'edit'];
protected $fieldLevelList = ['yes', 'no'];
protected $valuePermissionHighestLevels = array();
protected $valuePermissionList = [];
private $fileManager;
private $metadata;
private $fieldManager;
protected $forbiddenAttributesCache = array();
protected $forbiddenFieldsCache = array();
protected $isStrictModeForced = false;
protected $isStrictMode = false;
public function __construct(User $user, Config $config = null, FileManager $fileManager = null, Metadata $metadata = null, FieldManagerUtil $fieldManager = null)
{
$this->data = (object) [
'table' => (object) [],
'fieldTable' => (object) [],
'fieldTableQuickAccess' => (object) [],
];
if ($this->isStrictModeForced) {
$this->isStrictMode = true;
} else {
$this->isStrictMode = $config->get('aclStrictMode', false);
}
$this->user = $user;
$this->metadata = $metadata;
if ($fieldManager) {
$this->fieldManager = $fieldManager;
}
if (!$this->user->isFetched()) {
throw new Error('User must be fetched before ACL check.');
}
if ($fileManager) {
$this->fileManager = $fileManager;
}
$this->valuePermissionList = $this->metadata->get(['app', $this->type, 'valuePermissionList'], []);
$this->valuePermissionHighestLevels = $this->metadata->get(['app', $this->type, 'valuePermissionHighestLevels'], array());
$this->initCacheFilePath();
if ($config && $config->get('useCache') && file_exists($this->cacheFilePath)) {
$cached = include $this->cacheFilePath;
$this->data = $cached;
} else {
$this->load();
if ($config && $fileManager && $config->get('useCache')) {
$this->buildCache();
}
}
}
protected function initCacheFilePath()
{
$this->cacheFilePath = 'data/cache/application/acl/' . $this->getUser()->id . '.php';
}
protected function getUser()
{
return $this->user;
}
protected function getMetadata()
{
return $this->metadata;
}
protected function getFieldManager()
{
return $this->fieldManager;
}
public function getMap()
{
return $this->data;
}
public function getScopeData($scope)
{
if (isset($this->data->table->$scope)) {
$data = $this->data->table->$scope;
if (is_string($data)) {
$data = $this->getScopeData($data);
return $data;
}
return $data;
}
return null;
}
public function get($permission)
{
if ($permission == 'table') {
return null;
}
if (isset($this->data->$permission)) {
return $this->data->$permission;
}
return 'no';
}
public function getLevel($scope, $action)
{
if (isset($this->data->table->$scope)) {
if (isset($this->data->table->$scope->$action)) {
return $this->data->table->$scope->$action;
}
}
return 'no';
}
private function load()
{
$valuePermissionLists = (object)[];
foreach ($this->valuePermissionList as $permission) {
$valuePermissionLists->$permission = [];
}
$aclTableList = [];
$fieldTableList = [];
if (!$this->getUser()->isAdmin()) {
$roleList = $this->getRoleList();
foreach ($roleList as $role) {
$aclTableList[] = $role->get('data');
$fieldTableList[] = $role->get('fieldData');
foreach ($this->valuePermissionList as $permission) {
$valuePermissionLists->{$permission}[] = $role->get($permission);
}
}
$aclTable = $this->mergeTableList($aclTableList);
$fieldTable = $this->mergeFieldTableList($fieldTableList);
$this->applyDefault($aclTable, $fieldTable);
$this->applyDisabled($aclTable, $fieldTable);
$this->applyMandatory($aclTable, $fieldTable);
$this->applyAdditional($aclTable, $fieldTable, $valuePermissionLists);
$this->applyReadOnlyFields($fieldTable);
} else {
$aclTable = (object) [];
foreach ($this->getScopeList() as $scope) {
if ($this->metadata->get("scopes.{$scope}.{$this->type}") === 'boolean') {
$aclTable->$scope = true;
} else {
if ($this->metadata->get("scopes.{$scope}.entity")) {
$aclTable->$scope = (object) [];
foreach ($this->actionList as $action) {
$aclTable->$scope->$action = 'all';
if (in_array($action, $this->booleanActionList)) {
$aclTable->$scope->$action = 'yes';
}
}
}
}
}
$fieldTable = (object) [];
}
foreach ($aclTable as $scope => $data) {
if (is_string($data)) {
if (isset($aclTable->$data)) {
$aclTable->$scope = $aclTable->$data;
}
}
}
$this->data->table = $aclTable;
$this->data->fieldTable = $fieldTable;
$this->fillFieldTableQuickAccess();
if (!$this->getUser()->isAdmin()) {
$permissionsDefaultsGroupName = 'permissionsDefaults';
if ($this->isStrictMode) {
$permissionsDefaultsGroupName = 'permissionsStrictDefaults';
}
foreach ($this->valuePermissionList as $permission) {
$this->data->$permission = $this->mergeValueList($valuePermissionLists->$permission, $this->metadata->get(['app', $this->type, $permissionsDefaultsGroupName, $permission, 'yes']));
if ($this->metadata->get('app.'.$this->type.'.mandatory.' . $permission)) {
$this->data->$permission = $this->metadata->get('app.'.$this->type.'.mandatory.' . $permission);
}
}
} else {
foreach ($this->valuePermissionList as $permission) {
if (isset($this->valuePermissionHighestLevels[$permission])) {
$this->data->$permission = $this->valuePermissionHighestLevels[$permission];
continue;
}
$this->data->$permission = 'all';
}
}
}
protected function getRoleList()
{
$roleList = [];
$userRoleList = $this->getUser()->get('roles');
if (!(is_array($userRoleList) || $userRoleList instanceof \Traversable)) {
throw new Error();
}
foreach ($userRoleList as $role) {
$roleList[] = $role;
}
$teamList = $this->getUser()->get('teams');
if (!(is_array($teamList) || $teamList instanceof \Traversable)) {
throw new Error();
}
foreach ($teamList as $team) {
$teamRoleList = $team->get('roles');
foreach ($teamRoleList as $role) {
$roleList[] = $role;
}
}
return $roleList;
}
public function getScopeForbiddenAttributeList($scope, $action = 'read', $thresholdLevel = 'no')
{
$key = $scope . '_'. $action . '_' . $thresholdLevel;
if (isset($this->forbiddenAttributesCache[$key])) {
return $this->forbiddenAttributesCache[$key];
}
$fieldTableQuickAccess = $this->data->fieldTableQuickAccess;
if (!isset($fieldTableQuickAccess->$scope) || !isset($fieldTableQuickAccess->$scope->attributes) || !isset($fieldTableQuickAccess->$scope->attributes->$action)) {
$this->forbiddenAttributesCache[$key] = [];
return [];
}
$levelList = [];
foreach ($this->fieldLevelList as $level) {
if (array_search($level, $this->fieldLevelList) >= array_search($thresholdLevel, $this->fieldLevelList)) {
$levelList[] = $level;
}
}
$attributeList = [];
foreach ($levelList as $level) {
if (!isset($fieldTableQuickAccess->$scope->attributes->$action->$level)) continue;
foreach ($fieldTableQuickAccess->$scope->attributes->$action->$level as $attribute) {
if (in_array($attribute, $attributeList)) continue;
$attributeList[] = $attribute;
}
}
$this->forbiddenAttributesCache[$key] = $attributeList;
return $attributeList;
}
public function getScopeForbiddenFieldList($scope, $action = 'read', $thresholdLevel = 'no')
{
$key = $scope . '_'. $action . '_' . $thresholdLevel;
if (isset($this->forbiddenFieldsCache[$key])) {
return $this->forbiddenFieldsCache[$key];
}
$fieldTableQuickAccess = $this->data->fieldTableQuickAccess;
if (!isset($fieldTableQuickAccess->$scope) || !isset($fieldTableQuickAccess->$scope->fields) || !isset($fieldTableQuickAccess->$scope->fields->$action)) {
$this->forbiddenFieldsCache[$key] = [];
return [];
}
$levelList = [];
foreach ($this->fieldLevelList as $level) {
if (array_search($level, $this->fieldLevelList) >= array_search($thresholdLevel, $this->fieldLevelList)) {
$levelList[] = $level;
}
}
$fieldList = [];
foreach ($levelList as $level) {
if (!isset($fieldTableQuickAccess->$scope->fields->$action->$level)) continue;
foreach ($fieldTableQuickAccess->$scope->fields->$action->$level as $field) {
if (in_array($field, $fieldList)) continue;
$fieldList[] = $field;
}
}
$this->forbiddenFieldsCache[$key] = $fieldList;
return $fieldList;
}
protected function fillFieldTableQuickAccess()
{
$fieldTable = $this->data->fieldTable;
$fieldTableQuickAccess = (object) [];
foreach (get_object_vars($fieldTable) as $scope => $scopeData) {
$fieldTableQuickAccess->$scope = (object) [
'attributes' => (object) [],
'fields' => (object) []
];
foreach ($this->fieldActionList as $action) {
$fieldTableQuickAccess->$scope->attributes->$action = (object) [];
$fieldTableQuickAccess->$scope->fields->$action = (object) [];
foreach ($this->fieldLevelList as $level) {
$fieldTableQuickAccess->$scope->attributes->$action->$level = [];
$fieldTableQuickAccess->$scope->fields->$action->$level = [];
}
}
foreach (get_object_vars($scopeData) as $field => $fieldData) {
$attributeList = $this->getFieldManager()->getAttributeList($scope, $field);
foreach ($this->fieldActionList as $action) {
if (!isset($fieldData->$action)) continue;
foreach ($this->fieldLevelList as $level) {
if ($fieldData->$action === $level) {
$fieldTableQuickAccess->$scope->fields->$action->{$level}[] = $field;
foreach ($attributeList as $attribute) {
$fieldTableQuickAccess->$scope->attributes->$action->{$level}[] = $attribute;
}
}
}
}
}
}
$this->data->fieldTableQuickAccess = $fieldTableQuickAccess;
}
protected function applyDefault(&$table, &$fieldTable)
{
if ($this->getUser()->isAdmin()) {
return;
}
$defaultsGroupName = 'default';
if ($this->isStrictMode) {
$defaultsGroupName = 'strictDefault';
}
$data = $this->metadata->get(['app', $this->type, $defaultsGroupName, 'scopeLevel'], []);
foreach ($data as $scope => $item) {
if (isset($table->$scope)) continue;
$value = $item;
if (is_array($item)) {
$value = (object) $item;
}
$table->$scope = $value;
}
$defaultFieldData = $this->metadata->get(['app', $this->type, $defaultsGroupName, 'fieldLevel'], []);
foreach ($this->getScopeList() as $scope) {
if (isset($table->$scope) && $table->$scope === false) continue;
if (!$this->getMetadata()->get('scopes.' . $scope . '.entity')) continue;
$fieldList = array_keys($this->getMetadata()->get("entityDefs.{$scope}.fields", []));
$defaultScopeFieldData = $this->metadata->get('app.'.$this->type.'.'.$defaultsGroupName.'.scopeFieldLevel.' . $scope, []);
foreach (array_merge($defaultFieldData, $defaultScopeFieldData) as $field => $f) {
if (!in_array($field, $fieldList)) continue;
if (!isset($fieldTable->$scope)) {
$fieldTable->$scope = (object) [];
}
if (isset($fieldTable->$scope->$field)) continue;
$fieldTable->$scope->$field = (object) [];
foreach ($this->fieldActionList as $action) {
$level = 'no';
if ($f === true) {
$level = 'yes';
} else {
if (is_array($f) && isset($f[$action])) {
$level = $f[$action];
}
}
$fieldTable->$scope->$field->$action = $level;
}
}
}
foreach ($this->getScopeWithAclList() as $scope) {
if (!isset($table->$scope)) {
$aclType = $this->metadata->get('scopes.' . $scope . '.' . $this->type);
if ($aclType === true) {
$aclType = $this->defaultAclType;
}
if (!empty($aclType)) {
$paramDefaultsName = 'scopeLevelTypesDefaults';
if ($this->isStrictMode) {
$paramDefaultsName = 'scopeLevelTypesStrictDefaults';
}
$defaultValue = $this->metadata->get(['app', $this->type, $paramDefaultsName, $aclType], $this->metadata->get(['app', $this->type, $paramDefaultsName, 'record']));
if (is_array($defaultValue)) {
$defaultValue = (object) $defaultValue;
}
$table->$scope = $defaultValue;
if (is_object($table->$scope)) {
$actionList = $this->getMetadata()->get(['scopes', $scope, $this->type . 'ActionList']);
if ($actionList) {
foreach (get_object_vars($table->$scope) as $action => $level) {
if (!in_array($action, $actionList)) {
unset($table->$scope->$action);
}
}
}
}
}
}
}
}
protected function applyMandatory(&$table, &$fieldTable)
{
if ($this->getUser()->isAdmin()) {
return;
}
$data = $this->metadata->get('app.'.$this->type.'.mandatory.scopeLevel', array());
foreach ($data as $scope => $item) {
$value = $item;
if (is_array($item)) {
$value = (object) $item;
}
$table->$scope = $value;
}
$mandatoryFieldData = $this->metadata->get('app.'.$this->type.'.mandatory.fieldLevel', array());
foreach ($this->getScopeList() as $scope) {
if (isset($table->$scope) && $table->$scope === false) continue;
if (!$this->getMetadata()->get('scopes.' . $scope . '.entity')) continue;
$fieldList = array_keys($this->getMetadata()->get("entityDefs.{$scope}.fields", []));
$mandatoryScopeFieldData = $this->metadata->get('app.'.$this->type.'.mandatory.scopeFieldLevel.' . $scope, array());
foreach (array_merge($mandatoryFieldData, $mandatoryScopeFieldData) as $field => $f) {
if (!in_array($field, $fieldList)) continue;
if (!isset($fieldTable->$scope)) {
$fieldTable->$scope = (object) [];
}
$fieldTable->$scope->$field = (object) [];
foreach ($this->fieldActionList as $action) {
$level = 'no';
if ($f === true) {
$level = 'yes';
} else {
if (is_array($f) && isset($f[$action])) {
$level = $f[$action];
}
}
$fieldTable->$scope->$field->$action = $level;
}
}
}
}
protected function applyDisabled(&$table, &$fieldTable)
{
if ($this->getUser()->isAdmin()) {
return;
}
foreach ($this->getScopeList() as $scope) {
if ($this->getMetadata()->get('scopes.' . $scope . '.disabled')) {
$table->$scope = false;
unset($fieldTable->$scope);
}
}
}
protected function applyAdditional(&$table, &$fieldTable, &$valuePermissionLists)
{
if ($this->getUser()->get('isPortalUser')) {
foreach ($this->getScopeList() as $scope) {
$table->$scope = false;
unset($fieldTable->$scope);
}
foreach ($this->valuePermissionList as $permission) {
$valuePermissionLists->{$permission}[] = 'no';
}
}
}
private function mergeValueList(array $list, $defaultValue)
{
$result = null;
foreach ($list as $level) {
if ($level != 'not-set') {
if (is_null($result)) {
$result = $level;
continue;
}
if (array_search($result, $this->levelList) > array_search($level, $this->levelList)) {
$result = $level;
}
}
}
if (is_null($result)) {
$result = $defaultValue;
}
return $result;
}
protected function getScopeWithAclList()
{
$scopeList = [];
$scopes = $this->metadata->get('scopes');
foreach ($scopes as $scope => $d) {
if (empty($d['acl'])) continue;
$scopeList[] = $scope;
}
return $scopeList;
}
protected function getScopeList()
{
$scopeList = [];
$scopes = $this->metadata->get('scopes');
foreach ($scopes as $scope => $d) {
$scopeList[] = $scope;
}
return $scopeList;
}
private function mergeTableList(array $tableList)
{
$data = (object) [];
$scopeList = $this->getScopeWithAclList();
foreach ($tableList as $table) {
foreach ($scopeList as $scope) {
if (!isset($table->$scope)) continue;
$row = $table->$scope;
if ($row == false) {
if (!isset($data->$scope)) {
$data->$scope = false;
}
} else if ($row === true) {
$data->$scope = true;
} else {
if (!isset($data->$scope)) {
$data->$scope = (object) [];
}
if ($data->$scope === false) {
$data->$scope = (object) [];
}
if (!is_object($row)) continue;
$actionList = $this->getMetadata()->get(['scopes', $scope, $this->type . 'ActionList'], $this->actionList);
foreach ($actionList as $i => $action) {
if (isset($row->$action)) {
$level = $row->$action;
if (!isset($data->$scope->$action)) {
$data->$scope->$action = $level;
} else {
if (array_search($data->$scope->$action, $this->levelList) > array_search($level, $this->levelList)) {
$data->$scope->$action = $level;
}
}
} else {
if ($i > 0) {
// TODO remove it
$previousAction = $this->actionList[$i - 1];
if (in_array($action, $this->booleanActionList)) {
$data->$scope->$action = 'yes';
} else {
if ($action === 'stream' && isset($data->$scope->$previousAction)) {
$data->$scope->$action = $data->$scope->$previousAction;
}
}
}
}
}
}
}
}
return $data;
}
private function mergeFieldTableList(array $tableList)
{
$data = (object) [];
$scopeList = $this->getScopeWithAclList();
foreach ($tableList as $table) {
foreach ($scopeList as $scope) {
if (!isset($table->$scope)) continue;
if (!isset($data->$scope)) {
$data->$scope = (object) [];
}
if (!is_object($table->$scope)) continue;
$fieldList = array_keys($this->getMetadata()->get("entityDefs.{$scope}.fields", []));
foreach (get_object_vars($table->$scope) as $field => $row) {
if (!is_object($row)) continue;
if (!in_array($field, $fieldList)) continue;
if (!isset($data->$scope->$field)) {
$data->$scope->$field = (object) [];
}
foreach ($this->fieldActionList as $i => $action) {
if (!isset($row->$action)) continue;
$level = $row->$action;
if (!isset($data->$scope->$field->$action)) {
$data->$scope->$field->$action = $level;
} else {
if (array_search($data->$scope->$field->$action, $this->fieldLevelList) > array_search($level, $this->fieldLevelList)) {
$data->$scope->$field->$action = $level;
}
}
}
}
}
}
return $data;
}
private function buildCache()
{
$this->fileManager->putPhpContents($this->cacheFilePath, $this->data, true);
}
protected function applyReadOnlyFields(&$fieldTable)
{
// TODO Enable in 5.4.0
return;
$scopeList = $this->getScopeWithAclList();
foreach ($scopeList as $scope) {
if (!property_exists($fieldTable, $scope)) continue;
$fieldList = array_keys($this->getMetadata()->get(['entityDefs', $scope, 'fields'], []));
foreach ($fieldList as $field) {
if ($this->getMetadata()->get(['entityDefs', $scope, 'fields', $field, 'readOnly'])) {
if (property_exists($fieldTable->$scope, $field)) {
$fieldTable->$scope->$field->edit = 'no';
} else {
$fieldTable->$scope->$field = (object) [];
foreach ($this->fieldActionList as $action) {
$fieldTable->$scope->$field->$action = 'yes';
}
$fieldTable->$scope->$field->edit = 'no';
}
}
}
}
}
}
+297
View File
@@ -0,0 +1,297 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Core;
use \Espo\Core\Exceptions\Error;
use \Espo\ORM\Entity;
use \Espo\Entities\User;
use \Espo\Core\Utils\Util;
class AclManager
{
private $container;
private $metadata;
private $implementationHashMap = array();
private $tableHashMap = array();
protected $tableClassName = '\\Espo\\Core\\Acl\\Table';
protected $userAclClassName = '\\Espo\\Core\\Acl';
public function __construct(Container $container)
{
$this->container = $container;
$this->metadata = $container->get('metadata');
}
protected function getContainer()
{
return $this->container;
}
protected function getMetadata()
{
return $this->metadata;
}
public function getImplementation($scope)
{
if (empty($this->implementationHashMap[$scope])) {
$normalizedName = Util::normilizeClassName($scope);
$className = '\\Espo\\Custom\\Acl\\' . $normalizedName;
if (!class_exists($className)) {
$moduleName = $this->metadata->getScopeModuleName($scope);
if ($moduleName) {
$className = '\\Espo\\Modules\\' . $moduleName . '\\Acl\\' . $normalizedName;
} else {
$className = '\\Espo\\Acl\\' . $normalizedName;
}
if (!class_exists($className)) {
$className = '\\Espo\\Core\\Acl\\Base';
}
}
if (class_exists($className)) {
$acl = new $className($scope);
$dependencies = $acl->getDependencyList();
foreach ($dependencies as $name) {
$acl->inject($name, $this->getContainer()->get($name));
}
$this->implementationHashMap[$scope] = $acl;
} else {
throw new Error();
}
}
return $this->implementationHashMap[$scope];
}
protected function getTable(User $user)
{
$key = $user->id;
if (empty($key)) {
$key = spl_object_hash($user);
}
if (empty($this->tableHashMap[$key])) {
$config = $this->getContainer()->get('config');
$fileManager = $this->getContainer()->get('fileManager');
$metadata = $this->getContainer()->get('metadata');
$fieldManager = $this->getContainer()->get('fieldManagerUtil');
$this->tableHashMap[$key] = new $this->tableClassName($user, $config, $fileManager, $metadata, $fieldManager);
}
return $this->tableHashMap[$key];
}
public function getMap(User $user)
{
return $this->getTable($user)->getMap();
}
public function getLevel(User $user, $scope, $action)
{
if ($user->isAdmin()) {
return 'all';
}
return $this->getTable($user)->getLevel($scope, $action);
}
public function get(User $user, $permission)
{
return $this->getTable($user)->get($permission);
}
public function checkReadNo(User $user, $scope)
{
if ($user->isAdmin()) {
return false;
}
$data = $this->getTable($user)->getScopeData($scope);
return $this->getImplementation($scope)->checkReadNo($user, $data);
}
public function checkReadOnlyTeam(User $user, $scope)
{
if ($user->isAdmin()) {
return false;
}
$data = $this->getTable($user)->getScopeData($scope);
return $this->getImplementation($scope)->checkReadOnlyTeam($user, $data);
}
public function checkReadOnlyOwn(User $user, $scope)
{
if ($user->isAdmin()) {
return false;
}
$data = $this->getTable($user)->getScopeData($scope);
return $this->getImplementation($scope)->checkReadOnlyOwn($user, $data);
}
public function check(User $user, $subject, $action = null)
{
if (is_string($subject)) {
return $this->checkScope($user, $subject, $action);
} else {
$entity = $subject;
if ($entity instanceof Entity) {
return $this->checkEntity($user, $entity, $action);
}
}
}
public function checkEntity(User $user, Entity $entity, $action = 'read')
{
$scope = $entity->getEntityType();
$data = $this->getTable($user)->getScopeData($scope);
$impl = $this->getImplementation($scope);
if (!$action) {
$action = 'read';
}
if ($action) {
$methodName = 'checkEntity' . ucfirst($action);
if (method_exists($impl, $methodName)) {
return $impl->$methodName($user, $entity, $data);
}
}
return $impl->checkEntity($user, $entity, $data, $action);
}
public function checkIsOwner(User $user, Entity $entity)
{
return $this->getImplementation($entity->getEntityType())->checkIsOwner($user, $entity);
}
public function checkInTeam(User $user, Entity $entity)
{
return $this->getImplementation($entity->getEntityType())->checkInTeam($user, $entity);
}
public function checkScope(User $user, $scope, $action = null)
{
$data = $this->getTable($user)->getScopeData($scope);
return $this->getImplementation($scope)->checkScope($user, $data, $action);
}
public function checkUser(User $user, $permission, User $entity)
{
if ($user->isAdmin()) {
return true;
}
if ($this->get($user, $permission) === 'no') {
if ($entity->id !== $user->id) {
return false;
}
} else if ($this->get($user, $permission) === 'team') {
if ($entity->id != $user->id) {
$teamIdList1 = $user->getTeamIdList();
$teamIdList2 = $entity->getTeamIdList();
$inTeam = false;
foreach ($teamIdList1 as $id) {
if (in_array($id, $teamIdList2)) {
$inTeam = true;
break;
}
}
if (!$inTeam) {
return false;
}
}
}
return true;
}
public function getScopeForbiddenAttributeList(User $user, $scope, $action = 'read', $thresholdLevel = 'no')
{
if ($user->isAdmin()) return [];
return $this->getTable($user)->getScopeForbiddenAttributeList($scope, $action, $thresholdLevel);
}
public function getScopeForbiddenFieldList(User $user, $scope, $action = 'read', $thresholdLevel = 'no')
{
if ($user->isAdmin()) return [];
return $this->getTable($user)->getScopeForbiddenFieldList($scope, $action, $thresholdLevel);
}
public function checkUserPermission(User $user, $target, $permissionType = 'userPermission')
{
$permission = $this->get($user, $permissionType);
if (is_object($target)) {
$userId = $target->id;
} else {
$userId = $target;
}
if ($user->id === $userId) return true;
if ($permission === 'no') {
return false;
}
if ($permission === 'yes') {
return true;
}
if ($permission === 'team') {
$teamIdList = $user->getLinkMultipleIdList('teams');
if (!$this->getContainer()->get('entityManager')->getRepository('User')->checkBelongsToAnyOfTeams($userId, $teamIdList)) {
return false;
}
}
return true;
}
public function checkAssignmentPermission(User $user, $target)
{
return $this->checkUserPermission($user, $target, 'assignmentPermission');
}
public function createUserAcl(User $user)
{
$className = $this->userAclClassName;
$acl = new $className($this, $user);
return $acl;
}
}
+212
View File
@@ -0,0 +1,212 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Core\AclPortal;
use \Espo\Entities\User;
use \Espo\ORM\Entity;
class Base extends \Espo\Core\Acl\Base
{
public function checkScope(User $user, $data, $action = null, Entity $entity = null, $entityAccessData = array())
{
if ($user->isAdmin()) {
return true;
}
if (is_null($data)) {
return false;
}
if ($data === false) {
return false;
}
if ($data === true) {
return true;
}
if (is_string($data)) {
return true;
}
$isOwner = null;
if (isset($entityAccessData['isOwner'])) {
$isOwner = $entityAccessData['isOwner'];
}
$inAccount = null;
if (isset($entityAccessData['inAccount'])) {
$inAccount = $entityAccessData['inAccount'];
}
$isOwnContact = null;
if (isset($entityAccessData['isOwnContact'])) {
$isOwnContact = $entityAccessData['isOwnContact'];
}
if (is_null($action)) {
return true;
}
if (!isset($data->$action)) {
return false;
}
$value = $data->$action;
if ($value === 'all' || $value === 'yes' || $value === true) {
return true;
}
if (!$value || $value === 'no') {
return false;
}
if (is_null($isOwner)) {
if ($entity) {
$isOwner = $this->checkIsOwner($user, $entity);
} else {
return true;
}
}
if ($isOwner) {
if ($value === 'own' || $value === 'account' || $value === 'contact') {
return true;
}
}
if ($value === 'account') {
if (is_null($inAccount) && $entity) {
$inAccount = $this->checkInAccount($user, $entity);
}
if ($inAccount) {
return true;
}
}
if ($value === 'contact') {
if (is_null($isOwnContact) && $entity) {
$isOwnContact = $this->checkIsOwnContact($user, $entity);
}
if ($isOwnContact) {
return true;
}
}
return false;
}
public function checkReadOnlyAccount(User $user, $data)
{
if (empty($data) || !is_object($data) || !isset($data->read)) {
return false;
}
return $data->read === 'account';
}
public function checkReadOnlyContact(User $user, $data)
{
if (empty($data) || !is_object($data) || !isset($data->read)) {
return false;
}
return $data->read === 'contact';
}
public function checkIsOwner(User $user, Entity $entity)
{
if ($entity->hasAttribute('createdById')) {
if ($entity->has('createdById')) {
if ($user->id === $entity->get('createdById')) {
return true;
}
}
}
return false;
}
public function checkInAccount(User $user, Entity $entity)
{
$accountIdList = $user->getLinkMultipleIdList('accounts');
if (count($accountIdList)) {
if ($entity->hasAttribute('accountId')) {
if (in_array($entity->get('accountId'), $accountIdList)) {
return true;
}
}
if ($entity->hasRelation('accounts')) {
$repository = $this->getEntityManager()->getRepository($entity->getEntityType());
foreach ($accountIdList as $accountId) {
if ($repository->isRelated($entity, 'accounts', $accountId)) {
return true;
}
}
}
if ($entity->hasAttribute('parentId') && $entity->hasRelation('parent')) {
if ($entity->get('parentType') === 'Account') {
if (in_array($entity->get('parentId'), $accountIdList)) {
return true;
}
}
}
}
return false;
}
public function checkIsOwnContact(User $user, Entity $entity)
{
$contactId = $user->get('contactId');
if ($contactId) {
if ($entity->hasAttribute('contactId')) {
if ($entity->get('contactId') === $contactId) {
return true;
}
}
if ($entity->hasRelation('contacts')) {
$repository = $this->getEntityManager()->getRepository($entity->getEntityType());
if ($repository->isRelated($entity, 'contacts', $contactId)) {
return true;
}
}
if ($entity->hasAttribute('parentId') && $entity->hasRelation('parent')) {
if ($entity->get('parentType') === 'Contact') {
if ($entity->get('parentId') === $contactId) {
return true;
}
}
}
}
return false;
}
}
+135
View File
@@ -0,0 +1,135 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Core\AclPortal;
use \Espo\Core\Exceptions\Error;
use \Espo\ORM\Entity;
use \Espo\Entities\User;
use \Espo\Entities\Portal;
use \Espo\Core\Utils\Config;
use \Espo\Core\Utils\Metadata;
use \Espo\Core\Utils\FieldManagerUtil;
use \Espo\Core\Utils\File\Manager as FileManager;
class Table extends \Espo\Core\Acl\Table
{
protected $type = 'aclPortal';
protected $portal;
protected $defaultAclType = 'recordAllOwnNo';
protected $levelList = ['yes', 'all', 'account', 'contact', 'own', 'no'];
protected $isStrictModeForced = true;
public function __construct(User $user, Portal $portal, Config $config = null, FileManager $fileManager = null, Metadata $metadata = null, FieldManagerUtil $fieldManager = null)
{
if (empty($portal)) {
throw new Error("No portal was passed to AclPortal\\Table constructor.");
}
$this->portal = $portal;
parent::__construct($user, $config, $fileManager, $metadata, $fieldManager);
}
protected function getPortal()
{
return $this->portal;
}
protected function initCacheFilePath()
{
$this->cacheFilePath = 'data/cache/application/acl-portal/'.$this->getPortal()->id.'/' . $this->getUser()->id . '.php';
}
protected function getRoleList()
{
$roleList = [];
$userRoleList = $this->getUser()->get('portalRoles');
if (!(is_array($userRoleList) || $userRoleList instanceof \Traversable)) {
throw new Error();
}
foreach ($userRoleList as $role) {
$roleList[] = $role;
}
$portalRoleList = $this->getPortal()->get('portalRoles');
if (!(is_array($portalRoleList) || $portalRoleList instanceof \Traversable)) {
throw new Error();
}
foreach ($portalRoleList as $role) {
$roleList[] = $role;
}
return $roleList;
}
protected function getScopeWithAclList()
{
$scopeList = [];
$scopes = $this->getMetadata()->get('scopes');
foreach ($scopes as $scope => $d) {
if (empty($d['acl'])) continue;
if (empty($d['aclPortal'])) continue;
$scopeList[] = $scope;
}
return $scopeList;
}
protected function applyDefault(&$table, &$fieldTable)
{
parent::applyDefault($table, $fieldTable);
foreach ($this->getScopeList() as $scope) {
if (!isset($table->$scope)) {
$table->$scope = false;
}
}
}
protected function applyDisabled(&$table, &$fieldTable)
{
foreach ($this->getScopeList() as $scope) {
$d = $this->getMetadata()->get('scopes.' . $scope);
if (!empty($d['disabled']) || !empty($d['portalDisabled'])) {
$table->$scope = false;
unset($fieldTable->$scope);
}
}
}
protected function applyAdditional(&$table, &$fieldTable, &$valuePermissionLists)
{
}
}
+238 -147
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,61 +18,68 @@
*
* 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\Core;
class Application
{
private $metadata;
private $metadata;
private $container;
protected $container;
private $slim;
private $slim;
private $auth;
private $auth;
/**
* Constructor
*/
public function __construct()
{
$this->container = new Container();
date_default_timezone_set('UTC');
date_default_timezone_set('UTC');
$this->initContainer();
$GLOBALS['log'] = $this->container->get('log');
$GLOBALS['log'] = $this->getContainer()->get('log');
$this->initAutoloads();
}
public function getSlim()
{
if (empty($this->slim)) {
$this->slim = $this->container->get('slim');
}
return $this->slim;
}
public function getMetadata()
{
if (empty($this->metadata)) {
$this->metadata = $this->container->get('metadata');
}
return $this->metadata;
}
protected function getAuth()
protected function initContainer()
{
if (empty($this->auth)) {
$this->auth = new \Espo\Core\Utils\Auth($this->container);
}
return $this->auth;
$this->container = new Container();
}
public function getContainer()
{
return $this->container;
}
public function getSlim()
{
if (empty($this->slim)) {
$this->slim = $this->container->get('slim');
}
return $this->slim;
}
public function getMetadata()
{
if (empty($this->metadata)) {
$this->metadata = $this->container->get('metadata');
}
return $this->metadata;
}
protected function createAuth()
{
return new \Espo\Core\Utils\Auth($this->container);
}
public function getContainer()
{
return $this->container;
}
public function run($name = 'default')
{
@@ -83,163 +90,247 @@ class Application
public function runClient()
{
$config = $this->getContainer()->get('config');
$html = file_get_contents('main.html');
$html = str_replace('{{cacheTimestamp}}', $config->get('cacheTimestamp', 0), $html);
$html = str_replace('{{useCache}}', $config->get('useCache') ? 'true' : 'false' , $html);
echo $html;
exit;
$this->getContainer()->get('clientManager')->display();
exit;
}
public function runEntryPoint($entryPoint)
public function runEntryPoint($entryPoint, $data = array(), $final = false)
{
if (empty($entryPoint)) {
throw new \Error();
}
if (empty($entryPoint)) {
throw new \Error();
}
$slim = $this->getSlim();
$container = $this->getContainer();
$slim = $this->getSlim();
$container = $this->getContainer();
$slim->get('/', function() {});
$slim->any('.*', function() {});
$entryPointManager = new \Espo\Core\EntryPointManager($container);
$entryPointManager = new \Espo\Core\EntryPointManager($container);
$auth = $this->getAuth();
$apiAuth = new \Espo\Core\Utils\Api\Auth($auth, $entryPointManager->checkAuthRequired($entryPoint), true);
$slim->add($apiAuth);
try {
$authRequired = $entryPointManager->checkAuthRequired($entryPoint);
$authNotStrict = $entryPointManager->checkNotStrictAuth($entryPoint);
if ($authRequired && !$authNotStrict) {
if (!$final && $portalId = $this->detectedPortalId()) {
$app = new \Espo\Core\Portal\Application($portalId);
$app->setBasePath($this->getBasePath());
$app->runEntryPoint($entryPoint, $data, true);
exit;
}
}
$auth = new \Espo\Core\Utils\Auth($this->container, $authNotStrict);
$apiAuth = new \Espo\Core\Utils\Api\Auth($auth, $authRequired, true);
$slim->add($apiAuth);
$slim->hook('slim.before.dispatch', function () use ($entryPoint, $entryPointManager, $container) {
try {
$entryPointManager->run($entryPoint);
} catch (\Exception $e) {
$container->get('output')->processError($e->getMessage(), $e->getCode(), true);
}
});
$slim->hook('slim.before.dispatch', function () use ($entryPoint, $entryPointManager, $container, $data) {
$entryPointManager->run($entryPoint, $data);
});
$slim->run();
$slim->run();
} catch (\Exception $e) {
$container->get('output')->processError($e->getMessage(), $e->getCode(), true, $e);
}
}
public function runCron()
{
$auth = $this->getAuth();
$auth->useNoAuth(true);
$auth = $this->createAuth();
$auth->useNoAuth();
$cronManager = new \Espo\Core\CronManager($this->container);
$cronManager->run();
$cronManager = new \Espo\Core\CronManager($this->container);
$cronManager->run();
}
public function runRebuild()
{
$auth = $this->getAuth();
$auth->useNoAuth(true);
$dataManager = $this->getContainer()->get('dataManager');
$dataManager->rebuild();
}
$dataManager = $this->getContainer()->get('dataManager');
$dataManager->rebuild();
public function runClearCache()
{
$dataManager = $this->getContainer()->get('dataManager');
$dataManager->clearCache();
}
public function isInstalled()
{
$config = $this->getContainer()->get('config');
$config = $this->getContainer()->get('config');
if (file_exists($config->getConfigPath()) && $config->get('isInstalled')) {
return true;
}
if (file_exists($config->getConfigPath()) && $config->get('isInstalled')) {
return true;
}
return false;
return false;
}
protected function routeHooks()
{
$container = $this->getContainer();
$slim = $this->getSlim();
protected function createApiAuth($auth)
{
return new \Espo\Core\Utils\Api\Auth($auth);
}
$auth = $this->getAuth();
protected function routeHooks()
{
$container = $this->getContainer();
$slim = $this->getSlim();
$apiAuth = new \Espo\Core\Utils\Api\Auth($auth);
$this->getSlim()->add($apiAuth);
try {
$auth = $this->createAuth();
} catch (\Exception $e) {
$container->get('output')->processError($e->getMessage(), $e->getCode(), false, $e);
}
$this->getSlim()->hook('slim.before.dispatch', function () use ($slim, $container) {
$apiAuth = $this->createApiAuth($auth);
$route = $slim->router()->getCurrentRoute();
$conditions = $route->getConditions();
$this->getSlim()->add($apiAuth);
$this->getSlim()->hook('slim.before.dispatch', function () use ($slim, $container) {
if (isset($conditions['useController']) && $conditions['useController'] == false) {
return;
}
$route = $slim->router()->getCurrentRoute();
$conditions = $route->getConditions();
$routeOptions = call_user_func($route->getCallable());
$routeKeys = is_array($routeOptions) ? array_keys($routeOptions) : array();
if (isset($conditions['useController']) && $conditions['useController'] == false) {
return;
}
if (!in_array('controller', $routeKeys, true)) {
return $container->get('output')->render($routeOptions);
}
$routeOptions = call_user_func($route->getCallable());
$routeKeys = is_array($routeOptions) ? array_keys($routeOptions) : array();
$params = $route->getParams();
$data = $slim->request()->getBody();
if (!in_array('controller', $routeKeys, true)) {
return $container->get('output')->render($routeOptions);
}
foreach ($routeOptions as $key => $value) {
if (strstr($value, ':')) {
$paramName = str_replace(':', '', $value);
$value = $params[$paramName];
}
$controllerParams[$key] = $value;
}
$params = $route->getParams();
$data = $slim->request()->getBody();
$params = array_merge($params, $controllerParams);
foreach ($routeOptions as $key => $value) {
if (strstr($value, ':')) {
$paramName = str_replace(':', '', $value);
$value = $params[$paramName];
}
$controllerParams[$key] = $value;
}
$controllerName = ucfirst($controllerParams['controller']);
$params = array_merge($params, $controllerParams);
if (!empty($controllerParams['action'])) {
$actionName = $controllerParams['action'];
} else {
$httpMethod = strtolower($slim->request()->getMethod());
$crudList = $container->get('config')->get('crud');
$actionName = $crudList[$httpMethod];
}
$controllerName = ucfirst($controllerParams['controller']);
try {
$controllerManager = new \Espo\Core\ControllerManager($container);
$result = $controllerManager->process($controllerName, $actionName, $params, $data, $slim->request());
$container->get('output')->render($result);
} catch (\Exception $e) {
$container->get('output')->processError($e->getMessage(), $e->getCode());
}
});
if (!empty($controllerParams['action'])) {
$actionName = $controllerParams['action'];
} else {
$httpMethod = strtolower($slim->request()->getMethod());
$crudList = $container->get('config')->get('crud');
$actionName = $crudList[$httpMethod];
}
$this->getSlim()->hook('slim.after.router', function () use (&$slim) {
$slim->contentType('application/json');
try {
$controllerManager = $this->getContainer()->get('controllerManager');
$result = $controllerManager->process($controllerName, $actionName, $params, $data, $slim->request());
$container->get('output')->render($result);
} catch (\Exception $e) {
$container->get('output')->processError($e->getMessage(), $e->getCode(), false, $e);
}
});
$res = $slim->response();
$res->header('Expires', '0');
$res->header('Last-Modified', gmdate("D, d M Y H:i:s") . " GMT");
$res->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
$res->header('Pragma', 'no-cache');
});
}
$this->getSlim()->hook('slim.after.router', function () use (&$slim) {
$slim->contentType('application/json');
$res = $slim->response();
$res->header('Expires', '0');
$res->header('Last-Modified', gmdate("D, d M Y H:i:s") . " GMT");
$res->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
$res->header('Pragma', 'no-cache');
});
}
protected function getRouteList()
{
$routes = new \Espo\Core\Utils\Route($this->getContainer()->get('config'), $this->getMetadata(), $this->getContainer()->get('fileManager'));
protected function initRoutes()
{
$routes = new \Espo\Core\Utils\Route($this->getContainer()->get('config'), $this->getMetadata(), $this->getContainer()->get('fileManager'));
$crudList = array_keys( $this->getContainer()->get('config')->get('crud') );
return $routes->getAll();
}
foreach ($routes->getAll() as $route) {
protected function initRoutes()
{
$crudList = array_keys($this->getContainer()->get('config')->get('crud'));
$method = strtolower($route['method']);
if (!in_array($method, $crudList)) {
$GLOBALS['log']->error('Route: Method ['.$method.'] does not exist. Please check your route ['.$route['route'].']');
continue;
}
foreach ($this->getRouteList() as $route) {
$method = strtolower($route['method']);
if (!in_array($method, $crudList)) {
$GLOBALS['log']->error('Route: Method ['.$method.'] does not exist. Please check your route ['.$route['route'].']');
continue;
}
$currentRoute = $this->getSlim()->$method($route['route'], function() use ($route) { //todo change "use" for php 5.4
return $route['params'];
});
return $route['params'];
});
if (isset($route['conditions'])) {
$currentRoute->conditions($route['conditions']);
}
}
}
if (isset($route['conditions'])) {
$currentRoute->conditions($route['conditions']);
}
}
}
protected function initAutoloads()
{
$autoload = new \Espo\Core\Utils\Autoload($this->getContainer()->get('config'), $this->getMetadata(), $this->getContainer()->get('fileManager'));
try {
$autoloadList = $autoload->getAll();
} catch (\Exception $e) {} //bad permissions
if (empty($autoloadList)) {
return;
}
$namespacesPath = 'vendor/composer/autoload_namespaces.php';
$existingNamespaces = file_exists($namespacesPath) ? include($namespacesPath) : array();
if (!empty($existingNamespaces) && is_array($existingNamespaces)) {
$existingNamespaces = array_keys($existingNamespaces);
}
$classLoader = new \Composer\Autoload\ClassLoader();
foreach ($autoloadList as $prefix => $path) {
if (!in_array($prefix, $existingNamespaces)) {
$classLoader->add($prefix, $path);
}
}
$classLoader->register(true);
}
public function setBasePath($basePath)
{
$this->getContainer()->get('clientManager')->setBasePath($basePath);
}
public function getBasePath()
{
return $this->getContainer()->get('clientManager')->getBasePath();
}
public function detectedPortalId()
{
if (!empty($_GET['portalId'])) {
return $_GET['portalId'];
}
if (!empty($_COOKIE['auth-token'])) {
$token = $this->getContainer()->get('entityManager')->getRepository('AuthToken')->where(array('token' => $_COOKIE['auth-token']))->findOne();
if ($token && $token->get('portalId')) {
return $token->get('portalId');
}
}
return null;
}
public function setupSystemUser()
{
$user = $this->getContainer()->get('entityManager')->getEntity('User', 'system');
$user->set('isAdmin', true);
$this->getContainer()->setUser($user);
$this->getContainer()->get('entityManager')->setUser($user);
}
}
+291 -132
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,6 +18,13 @@
*
* 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\Core;
@@ -25,199 +32,351 @@ namespace Espo\Core;
class Container
{
private $data = array();
private $data = array();
/**
/**
* Constructor
*/
public function __construct()
{
}
public function get($name)
{
if (empty($this->data[$name])) {
$this->load($name);
}
return $this->data[$name];
if (empty($this->data[$name])) {
$this->load($name);
}
if (isset($this->data[$name])) {
return $this->data[$name];
}
return null;
}
protected function set($name, $obj)
{
$this->data[$name] = $obj;
}
private function load($name)
{
$loadMethod = 'load' . ucfirst($name);
if (method_exists($this, $loadMethod)) {
$obj = $this->$loadMethod();
$this->data[$name] = $obj;
} else {
//external loader class \Espo\Core\Loaders\<className> or \Espo\Custom\Core\Loaders\<className> with load() method
$className = '\Espo\Custom\Core\Loaders\\'.ucfirst($name);
if (!class_exists($className)) {
$className = '\Espo\Core\Loaders\\'.ucfirst($name);
$loadMethod = 'load' . ucfirst($name);
if (method_exists($this, $loadMethod)) {
$obj = $this->$loadMethod();
$this->data[$name] = $obj;
} else {
try {
$className = $this->get('metadata')->get('app.loaders.' . ucfirst($name));
} catch (\Exception $e) {}
if (!isset($className) || !class_exists($className)) {
$className = '\Espo\Custom\Core\Loaders\\'.ucfirst($name);
if (!class_exists($className)) {
$className = '\Espo\Core\Loaders\\'.ucfirst($name);
}
}
if (class_exists($className)) {
$loadClass = new $className($this);
$this->data[$name] = $loadClass->load();
}
}
if (class_exists($className)) {
$loadClass = new $className($this);
$this->data[$name] = $loadClass->load();
}
}
// TODO throw an exception
return null;
return null;
}
private function loadSlim()
protected function getServiceClassName($name, $default)
{
$metadata = $this->get('metadata');
$className = $metadata->get('app.serviceContainer.classNames.' . $name, $default);
return $className;
}
protected function loadContainer()
{
return $this;
}
protected function loadSlim()
{
//return new \Slim\Slim();
return new \Espo\Core\Utils\Api\Slim();
}
private function loadFileManager()
protected function loadFileStorageManager()
{
return new \Espo\Core\Utils\File\Manager(
$this->get('config')
);
return new \Espo\Core\FileStorage\Manager(
$this->get('metadata')->get(['app', 'fileStorage', 'implementationClassNameMap']),
$this
);
}
private function loadPreferences()
protected function loadLog()
{
return $this->get('entityManager')->getEntity('Preferences', $this->get('user')->id);
$config = $this->get('config');
$path = $config->get('logger.path', 'data/logs/espo.log');
$rotation = $config->get('logger.rotation', true);
$log = new \Espo\Core\Utils\Log('Espo');
$levelCode = $log->getLevelCode($config->get('logger.level', 'WARNING'));
if ($rotation) {
$maxFileNumber = $config->get('logger.maxFileNumber', 30);
$handler = new \Espo\Core\Utils\Log\Monolog\Handler\RotatingFileHandler($path, $maxFileNumber, $levelCode);
} else {
$handler = new \Espo\Core\Utils\Log\Monolog\Handler\StreamHandler($path, $levelCode);
}
$log->pushHandler($handler);
$errorHandler = new \Monolog\ErrorHandler($log);
$errorHandler->registerExceptionHandler(null, false);
$errorHandler->registerErrorHandler(array(), false);
return $log;
}
private function loadConfig()
protected function loadFileManager()
{
return new \Espo\Core\Utils\Config(
new \Espo\Core\Utils\File\Manager()
);
return new \Espo\Core\Utils\File\Manager(
$this->get('config')
);
}
private function loadHookManager()
protected function loadControllerManager()
{
return new \Espo\Core\HookManager(
$this
);
return new \Espo\Core\ControllerManager(
$this
);
}
private function loadOutput()
protected function loadPreferences()
{
return new \Espo\Core\Utils\Api\Output(
$this->get('slim')
);
return $this->get('entityManager')->getEntity('Preferences', $this->get('user')->id);
}
private function loadMailSender()
protected function loadConfig()
{
return new \Espo\Core\Mail\Sender(
$this->get('config')
);
return new \Espo\Core\Utils\Config(
new \Espo\Core\Utils\File\Manager()
);
}
private function loadDateTime()
protected function loadHookManager()
{
return new \Espo\Core\Utils\DateTime(
$this->get('config')->get('dateFormat'),
$this->get('config')->get('timeFormat'),
$this->get('config')->get('timeZone')
);
return new \Espo\Core\HookManager(
$this
);
}
private function loadServiceFactory()
protected function loadOutput()
{
return new \Espo\Core\ServiceFactory(
$this
);
return new \Espo\Core\Utils\Api\Output(
$this->get('slim')
);
}
private function loadSelectManagerFactory()
protected function loadMailSender()
{
return new \Espo\Core\SelectManagerFactory(
$this->get('entityManager'),
$this->get('user'),
$this->get('acl'),
$this->get('metadata')
);
$className = $this->getServiceClassName('mailSernder', '\\Espo\\Core\\Mail\\Sender');
return new $className(
$this->get('config'),
$this->get('entityManager')
);
}
private function loadMetadata()
protected function loadDateTime()
{
return new \Espo\Core\Utils\Metadata(
$this->get('config'),
$this->get('fileManager')
);
return new \Espo\Core\Utils\DateTime(
$this->get('config')->get('dateFormat'),
$this->get('config')->get('timeFormat'),
$this->get('config')->get('timeZone')
);
}
private function loadLayout()
protected function loadNumber()
{
return new \Espo\Core\Utils\Layout(
$this->get('fileManager'),
$this->get('metadata')
);
return new \Espo\Core\Utils\NumberUtil(
$this->get('config')->get('decimalMark'),
$this->get('config')->get('thousandSeparator')
);
}
private function loadAcl()
{
return new \Espo\Core\Acl(
$this->get('user'),
$this->get('config'),
$this->get('fileManager')
);
}
protected function loadServiceFactory()
{
return new \Espo\Core\ServiceFactory(
$this
);
}
private function loadSchema()
{
return new \Espo\Core\Utils\Database\Schema\Schema(
$this->get('config'),
$this->get('metadata'),
$this->get('fileManager'),
$this->get('entityManager'),
$this->get('classParser')
);
}
protected function loadSelectManagerFactory()
{
return new \Espo\Core\SelectManagerFactory(
$this->get('entityManager'),
$this->get('user'),
$this->get('acl'),
$this->get('aclManager'),
$this->get('metadata'),
$this->get('config'),
$this->get('injectableFactory')
);
}
private function loadClassParser()
{
return new \Espo\Core\Utils\File\ClassParser(
$this->get('fileManager'),
$this->get('config'),
$this->get('metadata')
);
}
protected function loadMetadata()
{
return new \Espo\Core\Utils\Metadata(
$this->get('fileManager'),
$this->get('config')->get('useCache')
);
}
private function loadLanguage()
{
return new \Espo\Core\Utils\Language(
$this->get('fileManager'),
$this->get('config'),
$this->get('preferences')
);
}
protected function loadLayout()
{
return new \Espo\Core\Utils\Layout(
$this->get('fileManager'),
$this->get('metadata'),
$this->get('user')
);
}
private function loadScheduledJob()
{
return new \Espo\Core\Cron\ScheduledJob(
$this
);
}
protected function loadAclManager()
{
$className = $this->getServiceClassName('acl', '\\Espo\\Core\\AclManager');
return new $className(
$this->get('container')
);
}
private function loadDataManager()
{
return new \Espo\Core\DataManager(
$this
);
}
protected function loadAcl()
{
$className = $this->getServiceClassName('acl', '\\Espo\\Core\\Acl');
return new $className(
$this->get('aclManager'),
$this->get('user')
);
}
private function loadFieldManager()
{
return new \Espo\Core\Utils\FieldManager(
$this->get('metadata'),
$this->get('language')
);
}
protected function loadSchema()
{
return new \Espo\Core\Utils\Database\Schema\Schema(
$this->get('config'),
$this->get('metadata'),
$this->get('fileManager'),
$this->get('entityManager'),
$this->get('classParser'),
$this->get('ormMetadata')
);
}
public function setUser($user)
{
$this->data['user'] = $user;
}
protected function loadOrmMetadata()
{
return new \Espo\Core\Utils\Metadata\OrmMetadata(
$this->get('metadata'),
$this->get('fileManager'),
$this->get('config')
);
}
protected function loadClassParser()
{
return new \Espo\Core\Utils\File\ClassParser(
$this->get('fileManager'),
$this->get('config'),
$this->get('metadata')
);
}
protected function loadLanguage()
{
return new \Espo\Core\Utils\Language(
\Espo\Core\Utils\Language::detectLanguage($this->get('config'), $this->get('preferences')),
$this->get('fileManager'),
$this->get('metadata'),
$this->get('config')->get('useCache')
);
}
protected function loadBaseLanguage()
{
return new \Espo\Core\Utils\Language(
'en_US',
$this->get('fileManager'),
$this->get('metadata'),
$this->get('useCache')
);
}
protected function loadDefaultLanguage()
{
return new \Espo\Core\Utils\Language(
\Espo\Core\Utils\Language::detectLanguage($this->get('config')),
$this->get('fileManager'),
$this->get('metadata'),
$this->get('useCache')
);
}
protected function loadCrypt()
{
return new \Espo\Core\Utils\Crypt(
$this->get('config')
);
}
protected function loadScheduledJob()
{
return new \Espo\Core\Utils\ScheduledJob(
$this
);
}
protected function loadDataManager()
{
return new \Espo\Core\DataManager(
$this
);
}
protected function loadFieldManager()
{
return new \Espo\Core\Utils\FieldManager(
$this
);
}
protected function loadFieldManagerUtil()
{
return new \Espo\Core\Utils\FieldManagerUtil(
$this->get('metadata')
);
}
protected function loadThemeManager()
{
return new \Espo\Core\Utils\ThemeManager(
$this->get('config'),
$this->get('metadata')
);
}
protected function loadClientManager()
{
return new \Espo\Core\Utils\ClientManager(
$this->get('config'),
$this->get('themeManager')
);
}
protected function loadInjectableFactory()
{
return new \Espo\Core\InjectableFactory(
$this
);
}
public function setUser(\Espo\Entities\User $user)
{
$this->set('user', $user);
}
}
+79 -63
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,6 +18,13 @@
*
* 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\Core;
@@ -27,88 +34,97 @@ use \Espo\Core\Exceptions\NotFound;
class ControllerManager
{
private $config;
private $config;
private $metadata;
private $metadata;
private $container;
private $container;
public function __construct(\Espo\Core\Container $container)
{
$this->container = $container;
public function __construct(\Espo\Core\Container $container)
{
$this->container = $container;
$this->config = $this->container->get('config');
$this->metadata = $this->container->get('metadata');
}
$this->config = $this->container->get('config');
$this->metadata = $this->container->get('metadata');
}
protected function getConfig()
{
return $this->config;
}
{
return $this->config;
}
protected function getMetadata()
{
return $this->metadata;
}
protected function getMetadata()
{
return $this->metadata;
}
public function process($controllerName, $actionName, $params, $data, $request)
{
$customeClassName = '\\Espo\\Custom\\Controllers\\' . Util::normilizeClassName($controllerName);
if (class_exists($customeClassName)) {
$controllerClassName = $customeClassName;
} else {
$moduleName = $this->metadata->getScopeModuleName($controllerName);
if ($moduleName) {
$controllerClassName = '\\Espo\\Modules\\' . $moduleName . '\\Controllers\\' . Util::normilizeClassName($controllerName);
} else {
$controllerClassName = '\\Espo\\Controllers\\' . Util::normilizeClassName($controllerName);
}
}
public function process($controllerName, $actionName, $params, $data, $request)
{
$customClassName = '\\Espo\\Custom\\Controllers\\' . Util::normilizeClassName($controllerName);
if (class_exists($customClassName)) {
$controllerClassName = $customClassName;
} else {
$moduleName = $this->metadata->getScopeModuleName($controllerName);
if ($moduleName) {
$controllerClassName = '\\Espo\\Modules\\' . $moduleName . '\\Controllers\\' . Util::normilizeClassName($controllerName);
} else {
$controllerClassName = '\\Espo\\Controllers\\' . Util::normilizeClassName($controllerName);
}
}
if ($data && stristr($request->getContentType(), 'application/json')) {
$data = json_decode($data);
}
if ($data && stristr($request->getContentType(), 'application/json')) {
$data = json_decode($data);
}
if (!class_exists($controllerClassName)) {
throw new NotFound("Controller '$controllerName' is not found");
}
if ($data instanceof \stdClass) {
$data = get_object_vars($data);
}
$controller = new $controllerClassName($this->container, $request->getMethod());
if (!class_exists($controllerClassName)) {
throw new NotFound("Controller '$controllerName' is not found");
}
if ($actionName == 'index') {
$actionName = $controllerClassName::$defaultAction;
}
$controller = new $controllerClassName($this->container);
$actionNameUcfirst = ucfirst($actionName);
if ($actionName == 'index') {
$actionName = $controllerClassName::$defaultAction;
}
$beforeMethodName = 'before' . $actionNameUcfirst;
$actionMethodName = 'action' . $actionNameUcfirst;
$afterMethodName = 'after' . $actionNameUcfirst;
$actionNameUcfirst = ucfirst($actionName);
$fullActionMethodName = strtolower($request->getMethod()) . ucfirst($actionMethodName);
$beforeMethodName = 'before' . $actionNameUcfirst;
if (method_exists($controller, $beforeMethodName)) {
$controller->$beforeMethodName($params, $data, $request);
}
$actionMethodName = 'action' . $actionNameUcfirst;
if (method_exists($controller, $fullActionMethodName)) {
$primaryActionMethodName = $fullActionMethodName;
} else {
$primaryActionMethodName = $actionMethodName;
}
if (!method_exists($controller, $actionMethodName)) {
throw new NotFound("Action '$actionMethodName' does not exist in controller '$controller'");
}
if (!method_exists($controller, $primaryActionMethodName)) {
throw new NotFound("Action '$actionName' (".$request->getMethod().") does not exist in controller '$controllerName'");
}
$result = $controller->$actionMethodName($params, $data, $request);
// TODO Remove in 5.1.0
if ($data instanceof \stdClass) {
if ($this->getMetadata()->get(['app', 'deprecatedControllerActions', $controllerName, $primaryActionMethodName])) {
$data = get_object_vars($data);
}
}
$afterMethodName = 'after' . $actionNameUcfirst;
if (method_exists($controller, $afterMethodName)) {
$controller->$afterMethodName($params, $data, $request);
}
if (method_exists($controller, $beforeMethodName)) {
$controller->$beforeMethodName($params, $data, $request);
}
if (is_array($result) || is_bool($result)) {
return \Espo\Core\Utils\Json::encode($result);
}
$result = $controller->$primaryActionMethodName($params, $data, $request);
return $result;
}
if (method_exists($controller, $afterMethodName)) {
$controller->$afterMethodName($params, $data, $request);
}
if (is_array($result) || is_bool($result) || $result instanceof \StdClass) {
return \Espo\Core\Utils\Json::encode($result);
}
return $result;
}
}
+98 -66
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,80 +18,112 @@
*
* 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\Core\Controllers;
use \Espo\Core\Container;
use \Espo\Core\ServiceFactory;
use \Espo\Core\Utils\Util;
abstract class Base
{
protected $name;
private $container;
public static $defaultAction = 'index';
protected $name;
public function __construct(Container $container)
{
$this->container = $container;
if (empty($this->name)) {
$name = get_class($this);
if (preg_match('@\\\\([\w]+)$@', $name, $matches)) {
$name = $matches[1];
}
$this->name = $name;
}
$this->checkControllerAccess();
}
protected function checkControllerAccess()
{
return;
}
protected function getContainer()
{
return $this->container;
}
protected function getUser()
{
return $this->container->get('user');
}
protected function getAcl()
{
return $this->container->get('acl');
}
protected function getConfig()
{
return $this->container->get('config');
}
protected function getPreferences()
{
return $this->container->get('preferences');
}
protected function getMetadata()
{
return $this->container->get('metadata');
}
private $container;
protected function getServiceFactory()
{
return $this->container->get('serviceFactory');
}
protected function getService($name)
{
return $this->getServiceFactory()->create($name);
}
private $requestMethod;
public static $defaultAction = 'index';
public function __construct(Container $container, $requestMethod = null)
{
$this->container = $container;
if (isset($requestMethod)) {
$this->setRequestMethod($requestMethod);
}
if (empty($this->name)) {
$name = get_class($this);
if (preg_match('@\\\\([\w]+)$@', $name, $matches)) {
$name = $matches[1];
}
$this->name = $name;
}
$this->checkControllerAccess();
}
protected function checkControllerAccess()
{
return;
}
protected function getContainer()
{
return $this->container;
}
/**
* Get request method name (Uppercase)
*
* @return string
*/
protected function getRequestMethod()
{
return $this->requestMethod;
}
protected function setRequestMethod($requestMethod)
{
$this->requestMethod = strtoupper($requestMethod);
}
protected function getUser()
{
return $this->container->get('user');
}
protected function getAcl()
{
return $this->container->get('acl');
}
protected function getAclManager()
{
return $this->container->get('aclManager');
}
protected function getConfig()
{
return $this->container->get('config');
}
protected function getPreferences()
{
return $this->container->get('preferences');
}
protected function getMetadata()
{
return $this->container->get('metadata');
}
protected function getServiceFactory()
{
return $this->container->get('serviceFactory');
}
protected function getService($name)
{
return $this->getServiceFactory()->create($name);
}
}
+500 -247
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,282 +18,535 @@
*
* 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\Core\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\NotFound;
use \Espo\Core\Exceptions\BadRequest;
use \Espo\Core\Utils\Util;
class Record extends Base
{
const MAX_SIZE_LIMIT = 200;
public static $defaultAction = 'list';
protected function getEntityManager()
{
return $this->getContainer()->get('entityManager');
}
protected function getRecordService()
{
if ($this->getServiceFactory()->checkExists($this->name)) {
$service = $this->getServiceFactory()->create($this->name);
} else {
$service = $this->getServiceFactory()->create('Record');
$service->setEntityName($this->name);
}
return $service;
}
const MAX_SIZE_LIMIT = 200;
public function actionRead($params)
{
$id = $params['id'];
$entity = $this->getRecordService()->getEntity($id);
if (empty($entity)) {
throw new NotFound();
}
public static $defaultAction = 'list';
return $entity->toArray();
}
public function actionPatch($params, $data)
{
return $this->actionUpdate($params, $data);
}
public function actionCreate($params, $data)
{
if (!$this->getAcl()->check($this->name, 'edit')) {
throw new Forbidden();
}
protected $defaultRecordServiceName = 'Record';
$service = $this->getRecordService();
if ($entity = $service->createEntity($data)) {
return $entity->toArray();
}
protected function getEntityManager()
{
return $this->getContainer()->get('entityManager');
}
throw new Error();
}
protected function getRecordService($name = null)
{
if (empty($name)) {
$name = $this->name;
}
public function actionUpdate($params, $data)
{
if (!$this->getAcl()->check($this->name, 'edit')) {
throw new Forbidden();
}
$id = $params['id'];
if ($entity = $this->getRecordService()->updateEntity($id, $data)) {
return $entity->toArray();
}
if ($this->getServiceFactory()->checkExists($name)) {
$service = $this->getServiceFactory()->create($name);
} else {
$service = $this->getServiceFactory()->create($this->defaultRecordServiceName);
$service->setEntityType($name);
}
throw new Error();
}
return $service;
}
public function actionList($params, $data, $request)
{
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
public function actionRead($params, $data, $request)
{
$id = $params['id'];
$entity = $this->getRecordService()->readEntity($id);
$where = $request->get('where');
$offset = $request->get('offset');
$maxSize = $request->get('maxSize');
$asc = $request->get('asc') === 'true';
$sortBy = $request->get('sortBy');
$q = $request->get('q');
if (empty($maxSize)) {
$maxSize = self::MAX_SIZE_LIMIT;
}
if (!empty($maxSize) && $maxSize > self::MAX_SIZE_LIMIT) {
throw new Forbidden();
}
if (empty($entity)) {
throw new NotFound();
}
$result = $this->getRecordService()->findEntities(array(
'where' => $where,
'offset' => $offset,
'maxSize' => $maxSize,
'asc' => $asc,
'sortBy' => $sortBy,
'q' => $q,
));
return array(
'total' => $result['total'],
'list' => $result['collection']->toArray()
);
}
public function actionListLinked($params, $data, $request)
{
$id = $params['id'];
$link = $params['link'];
return $entity->getValueMap();
}
$where = $request->get('where');
$offset = $request->get('offset');
$maxSize = $request->get('maxSize');
$asc = $request->get('asc') === 'true';
$sortBy = $request->get('sortBy');
$q = $request->get('q');
if (empty($maxSize)) {
$maxSize = self::MAX_SIZE_LIMIT;
}
if (!empty($maxSize) && $maxSize > self::MAX_SIZE_LIMIT) {
throw new Forbidden();
}
public function actionPatch($params, $data, $request)
{
return $this->actionUpdate($params, $data, $request);
}
$result = $this->getRecordService()->findLinkedEntities($id, $link, array(
'where' => $where,
'offset' => $offset,
'maxSize' => $maxSize,
'asc' => $asc,
'sortBy' => $sortBy,
'q' => $q,
));
return array(
'total' => $result['total'],
'list' => $result['collection']->toArray()
);
}
public function actionCreate($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
public function actionDelete($params)
{
$id = $params['id'];
if (!$this->getAcl()->check($this->name, 'create')) {
throw new Forbidden();
}
if ($this->getRecordService()->deleteEntity($id)) {
return true;
}
throw new Error();
}
public function actionExport($params, $data, $request)
{
// TODO move to service
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
$ids = $request->get('ids');
$where = $request->get('where');
return array(
'id' => $this->getRecordService()->export($ids, $where)
);
}
$service = $this->getRecordService();
public function actionMassUpdate($params, $data)
{
if (!$this->getAcl()->check($this->name, 'edit')) {
throw new Forbidden();
}
if ($entity = $service->createEntity($data)) {
return $entity->getValueMap();
}
$ids = $data['ids'];
$where = $data['where'];
$attributes = $data['attributes'];
throw new Error();
}
$idsUpdated = $this->getRecordService()->massUpdate($attributes, $ids, $where);
public function actionUpdate($params, $data, $request)
{
if (!$request->isPut() && !$request->isPatch()) {
throw new BadRequest();
}
return $idsUpdated;
}
if (!$this->getAcl()->check($this->name, 'edit')) {
throw new Forbidden();
}
public function actionMassDelete($params, $data)
{
if (!$this->getAcl()->check($this->name, 'delete')) {
throw new Forbidden();
}
$id = $params['id'];
$ids = $data['ids'];
$where = $data['where'];
if ($entity = $this->getRecordService()->updateEntity($id, $data)) {
return $entity->getValueMap();
}
$idsDeleted = $this->getRecordService()->massDelete($ids, $where);
throw new Error();
}
return $idsDeleted;
}
public function actionList($params, $data, $request)
{
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
public function actionCreateLink($params, $data)
{
$id = $params['id'];
$link = $params['link'];
$foreignIds = array();
if (isset($data['id'])) {
$foreignIds[] = $data['id'];
}
if (isset($data['ids']) && is_array($data['ids'])) {
foreach ($data['ids'] as $foreignId) {
$foreignIds[] = $foreignId;
}
}
$result = false;
foreach ($foreignIds as $foreignId) {
if ($this->getRecordService()->linkEntity($id, $link, $foreignId)) {
$result = $result || true;
}
}
if ($result) {
return true;
}
throw new Error();
}
public function actionRemoveLink($params, $data)
{
$id = $params['id'];
$link = $params['link'];
$foreignIds = array();
if (isset($data['id'])) {
$foreignIds[] = $data['id'];
}
if (isset($data['ids']) && is_array($data['ids'])) {
foreach ($data['ids'] as $foreignId) {
$foreignIds[] = $foreignId;
}
}
$result = false;
foreach ($foreignIds as $foreignId) {
if ($this->getRecordService()->unlinkEntity($id, $link, $foreignId)) {
$result = $result || true;
}
}
if ($result) {
return true;
}
throw new Error();
}
public function actionFollow($params)
{
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
$id = $params['id'];
return $this->getRecordService()->follow($id);
}
public function actionUnfollow($params)
{
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
$id = $params['id'];
return $this->getRecordService()->unfollow($id);
}
$where = $request->get('where');
$offset = $request->get('offset');
$maxSize = $request->get('maxSize');
$asc = $request->get('asc', 'true') === 'true';
$sortBy = $request->get('sortBy');
$q = $request->get('q');
$textFilter = $request->get('textFilter');
$maxSizeLimit = $this->getConfig()->get('recordListMaxSizeLimit', self::MAX_SIZE_LIMIT);
if (empty($maxSize)) {
$maxSize = $maxSizeLimit;
}
if (!empty($maxSize) && $maxSize > $maxSizeLimit) {
throw new Forbidden("Max should should not exceed " . $maxSizeLimit . ". Use offset and limit.");
}
$params = array(
'where' => $where,
'offset' => $offset,
'maxSize' => $maxSize,
'asc' => $asc,
'sortBy' => $sortBy,
'q' => $q,
'textFilter' => $textFilter
);
$this->fetchListParamsFromRequest($params, $request, $data);
$result = $this->getRecordService()->findEntities($params);
return array(
'total' => $result['total'],
'list' => isset($result['collection']) ? $result['collection']->getValueMapList() : $result['list']
);
}
public function getActionListKanban($params, $data, $request)
{
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
$where = $request->get('where');
$offset = $request->get('offset');
$maxSize = $request->get('maxSize');
$asc = $request->get('asc', 'true') === 'true';
$sortBy = $request->get('sortBy');
$q = $request->get('q');
$textFilter = $request->get('textFilter');
$maxSizeLimit = $this->getConfig()->get('recordListMaxSizeLimit', self::MAX_SIZE_LIMIT);
if (empty($maxSize)) {
$maxSize = $maxSizeLimit;
}
if (!empty($maxSize) && $maxSize > $maxSizeLimit) {
throw new Forbidden("Max should should not exceed " . $maxSizeLimit . ". Use offset and limit.");
}
$params = array(
'where' => $where,
'offset' => $offset,
'maxSize' => $maxSize,
'asc' => $asc,
'sortBy' => $sortBy,
'q' => $q,
'textFilter' => $textFilter
);
$this->fetchListParamsFromRequest($params, $request, $data);
$result = $this->getRecordService()->getListKanban($params);
return (object) [
'total' => $result->total,
'list' => $result->collection->getValueMapList(),
'additionalData' => $result->additionalData
];
}
protected function fetchListParamsFromRequest(&$params, $request, $data)
{
if ($request->get('primaryFilter')) {
$params['primaryFilter'] = $request->get('primaryFilter');
}
if ($request->get('boolFilterList')) {
$params['boolFilterList'] = $request->get('boolFilterList');
}
if ($request->get('filterList')) {
$params['filterList'] = $request->get('filterList');
}
if ($request->get('select')) {
$params['select'] = explode(',', $request->get('select'));
}
}
public function actionListLinked($params, $data, $request)
{
$id = $params['id'];
$link = $params['link'];
$where = $request->get('where');
$offset = $request->get('offset');
$maxSize = $request->get('maxSize');
$asc = $request->get('asc', 'true') === 'true';
$sortBy = $request->get('sortBy');
$q = $request->get('q');
$textFilter = $request->get('textFilter');
$maxSizeLimit = $this->getConfig()->get('recordListMaxSizeLimit', self::MAX_SIZE_LIMIT);
if (empty($maxSize)) {
$maxSize = $maxSizeLimit;
}
if (!empty($maxSize) && $maxSize > $maxSizeLimit) {
throw new Forbidden("Max should should not exceed " . $maxSizeLimit . ". Use offset and limit.");
}
$params = array(
'where' => $where,
'offset' => $offset,
'maxSize' => $maxSize,
'asc' => $asc,
'sortBy' => $sortBy,
'q' => $q,
'textFilter' => $textFilter
);
$this->fetchListParamsFromRequest($params, $request, $data);
$result = $this->getRecordService()->findLinkedEntities($id, $link, $params);
return array(
'total' => $result['total'],
'list' => isset($result['collection']) ? $result['collection']->getValueMapList() : $result['list']
);
}
public function actionDelete($params, $data, $request)
{
if (!$request->isDelete()) {
throw new BadRequest();
}
$id = $params['id'];
if ($this->getRecordService()->deleteEntity($id)) {
return true;
}
throw new Error();
}
public function actionExport($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
if ($this->getConfig()->get('exportDisabled') && !$this->getUser()->isAdmin()) {
throw new Forbidden();
}
if ($this->getAcl()->get('exportPermission') !== 'yes' && !$this->getUser()->isAdmin()) {
throw new Forbidden();
}
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
$ids = isset($data->ids) ? $data->ids : null;
$where = isset($data->where) ? json_decode(json_encode($data->where), true) : null;
$byWhere = isset($data->byWhere) ? $data->byWhere : false;
$selectData = isset($data->selectData) ? json_decode(json_encode($data->selectData), true) : null;
$params = array();
if ($byWhere) {
$params['selectData'] = $selectData;
$params['where'] = $where;
} else {
$params['ids'] = $ids;
}
if (isset($data->attributeList)) {
$params['attributeList'] = $data->attributeList;
}
if (isset($data->fieldList)) {
$params['fieldList'] = $data->fieldList;
}
if (isset($data->format)) {
$params['format'] = $data->format;
}
return array(
'id' => $this->getRecordService()->export($params)
);
}
public function actionMassUpdate($params, $data, $request)
{
if (!$request->isPut()) {
throw new BadRequest();
}
if (!$this->getAcl()->check($this->name, 'edit')) {
throw new Forbidden();
}
if (empty($data->attributes)) {
throw new BadRequest();
}
$params = array();
if (property_exists($data, 'where') && !empty($data->byWhere)) {
$params['where'] = json_decode(json_encode($data->where), true);
if (property_exists($data, 'selectData')) {
$params['selectData'] = json_decode(json_encode($data->selectData), true);
}
} else if (property_exists($data, 'ids')) {
$params['ids'] = $data->ids;
}
$attributes = $data->attributes;
$idsUpdated = $this->getRecordService()->massUpdate($attributes, $params);
return $idsUpdated;
}
public function actionMassDelete($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
if (!$this->getAcl()->check($this->name, 'delete')) {
throw new Forbidden();
}
$params = array();
if (property_exists($data, 'where') && !empty($data->byWhere)) {
$where = json_decode(json_encode($data->where), true);
$params['where'] = $where;
if (property_exists($data, 'selectData')) {
$params['selectData'] = json_decode(json_encode($data->selectData), true);
}
}
if (property_exists($data, 'ids')) {
$params['ids'] = $data->ids;
}
return $this->getRecordService()->massRemove($params);
}
public function actionCreateLink($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
if (empty($params['id']) || empty($params['link'])) {
throw new BadRequest();
}
$id = $params['id'];
$link = $params['link'];
if (!empty($data->massRelate)) {
if (!is_array($data->where)) {
throw new BadRequest();
}
$where = json_decode(json_encode($data->where), true);
$selectData = null;
if (isset($data->selectData) && is_array($data->selectData)) {
$selectData = json_decode(json_encode($data->selectData), true);
}
return $this->getRecordService()->linkEntityMass($id, $link, $where, $selectData);
} else {
$foreignIdList = array();
if (isset($data->id)) {
$foreignIdList[] = $data->id;
}
if (isset($data->ids) && is_array($data->ids)) {
foreach ($data->ids as $foreignId) {
$foreignIdList[] = $foreignId;
}
}
$result = false;
foreach ($foreignIdList as $foreignId) {
if ($this->getRecordService()->linkEntity($id, $link, $foreignId)) {
$result = true;
}
}
if ($result) {
return true;
}
}
throw new Error();
}
public function actionRemoveLink($params, $data, $request)
{
if (!$request->isDelete()) {
throw new BadRequest();
}
$id = $params['id'];
$link = $params['link'];
if (empty($params['id']) || empty($params['link'])) {
throw new BadRequest();
}
$foreignIdList = [];
if (isset($data->id)) {
$foreignIdList[] = $data->id;
}
if (isset($data->ids) && is_array($data->ids)) {
foreach ($data->ids as $foreignId) {
$foreignIdList[] = $foreignId;
}
}
$result = false;
foreach ($foreignIdList as $foreignId) {
if ($this->getRecordService()->unlinkEntity($id, $link, $foreignId)) {
$result = $result || true;
}
}
if ($result) {
return true;
}
throw new Error();
}
public function actionFollow($params, $data, $request)
{
if (!$request->isPut()) {
throw new BadRequest();
}
if (!$this->getAcl()->check($this->name, 'stream')) {
throw new Forbidden();
}
$id = $params['id'];
return $this->getRecordService()->follow($id);
}
public function actionUnfollow($params, $data, $request)
{
if (!$request->isDelete()) {
throw new BadRequest();
}
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
$id = $params['id'];
return $this->getRecordService()->unfollow($id);
}
public function actionMerge($params, $data, $request)
{
if (!$request->isPost()) {
throw new BadRequest();
}
if (empty($data->targetId) || empty($data->sourceIds) || !is_array($data->sourceIds) || !($data->attributes instanceof \StdClass)) {
throw new BadRequest();
}
$targetId = $data->targetId;
$sourceIds = $data->sourceIds;
$attributes = $data->attributes;
if (!$this->getAcl()->check($this->name, 'edit')) {
throw new Forbidden();
}
return $this->getRecordService()->merge($targetId, $sourceIds, $attributes);
}
public function postActionGetDuplicateAttributes($params, $data, $request)
{
if (empty($data->id)) {
throw new BadRequest();
}
if (!$this->getAcl()->check($this->name, 'create')) {
throw new Forbidden();
}
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
return $this->getRecordService()->getDuplicateAttributes($data->id);
}
public function postActionMassFollow($params, $data, $request)
{
if (!$this->getAcl()->check($this->name, 'stream')) {
throw new Forbidden();
}
if (property_exists($data, 'ids')) {
$params['ids'] = $data->ids;
}
return $this->getRecordService()->massFollow($params);
}
public function postActionMassUnfollow($params, $data, $request)
{
if (!$this->getAcl()->check($this->name, 'stream')) {
throw new Forbidden();
}
if (property_exists($data, 'ids')) {
$params['ids'] = $data->ids;
}
return $this->getRecordService()->massUnfollow($params);
}
}
@@ -0,0 +1,75 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Core\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\NotFound;
use \Espo\Core\Exceptions\BadRequest;
use \Espo\Core\Utils\Util;
class RecordTree extends Record
{
public static $defaultAction = 'list';
protected $defaultRecordServiceName = 'RecordTree';
public function actionListTree($params, $data, $request)
{
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
$where = $request->get('where');
$parentId = $request->get('parentId');
$maxDepth = $request->get('maxDepth');
$onlyNotEmpty = $request->get('onlyNotEmpty');
$collection = $this->getRecordService()->getTree($parentId, array(
'where' => $where,
'onlyNotEmpty' => $onlyNotEmpty
), 0, $maxDepth);
return array(
'list' => $collection->toArray(),
'path' => $this->getRecordService()->getTreeItemPath($parentId)
);
}
public function getActionLastChildrenIdList($params, $data, $request)
{
if (!$this->getAcl()->check($this->name, 'read')) {
throw new Forbidden();
}
$parentId = $request->get('parentId');
return $this->getRecordService()->getLastChildrenIdList($parentId);
}
}
-185
View File
@@ -1,185 +0,0 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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/.
************************************************************************/
namespace Espo\Core\Cron;
use Espo\Core\Exceptions\NotFound,
Espo\Core\Utils\Util;
class ScheduledJob
{
private $container;
private $systemUtil;
protected $data = null;
protected $cacheFile = 'data/cache/application/jobs.php';
protected $cronFile = 'cron.php';
protected $allowedMethod = 'run';
/**
* @var array - path to cron job files
*/
private $paths = array(
'corePath' => 'application/Espo/Jobs',
'modulePath' => 'application/Espo/Modules/{*}/Jobs',
'customPath' => 'custom/Espo/Custom/Jobs',
);
protected $cronSetup = array(
'linux' => '* * * * * {PHP-BIN-DIR} -f {CRON-FILE} > /dev/null 2>&1',
'windows' => '{PHP-BIN-DIR}.exe -f {CRON-FILE}',
'mac' => '* * * * * {PHP-BIN-DIR} -f {CRON-FILE} > /dev/null 2>&1',
'default' => '* * * * * {PHP-BIN-DIR} -f {CRON-FILE}',
);
public function __construct(\Espo\Core\Container $container)
{
$this->container = $container;
$this->systemUtil = new \Espo\Core\Utils\System();
}
protected function getContainer()
{
return $this->container;
}
protected function getEntityManager()
{
return $this->container->get('entityManager');
}
protected function getSystemUtil()
{
return $this->systemUtil;
}
public function run(array $job)
{
$jobName = $job['method'];
$className = $this->getClassName($jobName);
if ($className === false) {
throw new NotFound();
}
$jobClass = new $className($this->container);
$method = $this->allowedMethod;
$jobClass->$method();
}
/**
* Get list of all jobs
*
* @return array
*/
public function getAll()
{
if (!isset($this->data)) {
$this->init();
}
return $this->data;
}
/**
* Get class name of a job by name
*
* @param string $name
* @return string
*/
public function get($name)
{
return $this->getClassName($name);
}
/**
* Get list of all job names
*
* @return array
*/
public function getAllNamesOnly()
{
$data = $this->getAll();
$namesOnly = array_keys($data);
return $namesOnly;
}
/**
* Get class name of a job
*
* @param string $name
* @return string
*/
protected function getClassName($name)
{
$name = Util::normilizeClassName($name);
$data = $this->getAll();
$name = ucfirst($name);
if (isset($data[$name])) {
return $data[$name];
}
return false;
}
/**
* Load scheduler classes. It loads from ...Jobs, ex. \Espo\Jobs
* @return null
*/
protected function init()
{
$classParser = $this->getContainer()->get('classParser');
$classParser->setAllowedMethods( array($this->allowedMethod) );
$this->data = $classParser->getData($this->paths, $this->cacheFile);
}
public function getSetupMessage()
{
$language = $this->getContainer()->get('language');
$OS = $this->getSystemUtil()->getOS();
$phpBin = $this->getSystemUtil()->getPhpBin();
$cronFile = Util::concatPath($this->getSystemUtil()->getRootDir(), $this->cronFile);
$desc = $language->translate('cronSetup', 'options', 'ScheduledJob');
$message = isset($desc[$OS]) ? $desc[$OS] : $desc['default'];
$command = isset($this->cronSetup[$OS]) ? $this->cronSetup[$OS] : $this->cronSetup['default'];
$command = str_replace(array('{PHP-BIN-DIR}', '{CRON-FILE}'), array($phpBin, $cronFile), $command);
return array(
'message' => $message,
'command' => $command,
);
}
}
-67
View File
@@ -1,67 +0,0 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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/.
************************************************************************/
namespace Espo\Core\Cron;
use Espo\Core\Utils\Json,
Espo\Core\Exceptions\NotFound;
class Service
{
private $serviceFactory;
public function __construct(\Espo\Core\ServiceFactory $serviceFactory)
{
$this->serviceFactory = $serviceFactory;
}
protected function getServiceFactory()
{
return $this->serviceFactory;
}
public function run($job)
{
$serviceName = $job['service_name'];
if (!$this->getServiceFactory()->checkExists($serviceName)) {
throw new NotFound();
}
$service = $this->getServiceFactory()->create($serviceName);
$serviceMethod = $job['method'];
if (!method_exists($service, $serviceMethod)) {
throw new NotFound();
}
$data = $job['data'];
if (Json::isJSON($data)) {
$data = Json::decode($data, true);
}
$service->$serviceMethod($data);
}
}
+273 -141
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,195 +18,327 @@
*
* 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\Core;
use \PDO;
use Espo\Core\Utils\Json;
use Espo\Core\Exceptions\NotFound;
class CronManager
{
private $container;
private $config;
private $fileManager;
private $container;
private $scheduledJobCron;
private $serviceCron;
private $config;
private $jobService;
private $scheduledJobService;
private $fileManager;
protected $lastRunTime = 'data/cache/application/cronLastRunTime.php';
private $entityManager;
private $scheduledJobUtil;
public function __construct(\Espo\Core\Container $container)
{
$this->container = $container;
private $cronJobUtil;
$this->config = $this->container->get('config');
$this->fileManager = $this->container->get('fileManager');
private $cronScheduledJobUtil;
$this->scheduledJobCron = $this->container->get('scheduledJob');
$this->serviceCron = new \Espo\Core\Cron\Service( $this->container->get('serviceFactory'));
const PENDING = 'Pending';
$this->jobService = $this->container->get('serviceFactory')->create('job');
$this->scheduledJobService = $this->container->get('serviceFactory')->create('scheduledJob');
}
const RUNNING = 'Running';
protected function getContainer()
{
return $this->container;
}
const SUCCESS = 'Success';
protected function getConfig()
{
return $this->config;
}
const FAILED = 'Failed';
protected function getFileManager()
{
return $this->fileManager;
}
protected $lastRunTime = 'data/cache/application/cronLastRunTime.php';
protected function getJobService()
{
return $this->jobService;
}
public function __construct(\Espo\Core\Container $container)
{
$this->container = $container;
protected function getScheduledJobService()
{
return $this->scheduledJobService;
}
$this->config = $this->container->get('config');
$this->fileManager = $this->container->get('fileManager');
$this->entityManager = $this->container->get('entityManager');
$this->serviceFactory = $this->container->get('serviceFactory');
protected function getScheduledJobCron()
{
return $this->scheduledJobCron;
}
$this->scheduledJobUtil = $this->container->get('scheduledJob');
$this->cronJobUtil = new \Espo\Core\Utils\Cron\Job($this->config, $this->entityManager);
$this->cronScheduledJobUtil = new \Espo\Core\Utils\Cron\ScheduledJob($this->config, $this->entityManager);
}
protected function getServiceCron()
{
return $this->serviceCron;
}
protected function getContainer()
{
return $this->container;
}
protected function getConfig()
{
return $this->config;
}
protected function getLastRunTime()
{
$lastRunTime = $this->getFileManager()->getContents($this->lastRunTime);
if (!is_int($lastRunTime)) {
$lastRunTime = time() - (intval($this->getConfig()->get('cron.minExecutionTime')) + 60);
}
protected function getFileManager()
{
return $this->fileManager;
}
return $lastRunTime;
}
protected function getEntityManager()
{
return $this->entityManager;
}
protected function setLastRunTime($time)
{
return $this->getFileManager()->putContentsPHP($this->lastRunTime, $time);
}
protected function getServiceFactory()
{
return $this->serviceFactory;
}
protected function checkLastRunTime()
{
$currentTime = time();
$lastRunTime = $this->getLastRunTime();
$minTime = $this->getConfig()->get('cron.minExecutionTime');
protected function getScheduledJobUtil()
{
return $this->scheduledJobUtil;
}
if ($currentTime > ($lastRunTime + $minTime) ) {
return true;
}
protected function getCronJobUtil()
{
return $this->cronJobUtil;
}
return false;
}
protected function getCronScheduledJobUtil()
{
return $this->cronScheduledJobUtil;
}
protected function getLastRunTime()
{
$lastRunData = $this->getFileManager()->getPhpContents($this->lastRunTime);
public function run()
{
if (!$this->checkLastRunTime()) {
$GLOBALS['log']->info('Cron Manager: Stop cron running, too frequency execution');
return; //stop cron running, too frequency execution
}
if (is_array($lastRunData) && !empty($lastRunData['time'])) {
$lastRunTime = $lastRunData['time'];
} else {
$lastRunTime = time() - intval($this->getConfig()->get('cronMinInterval', 0)) - 1;
}
$this->setLastRunTime(time());
return $lastRunTime;
}
//Check scheduled jobs and create related jobs
$this->createJobsFromScheduledJobs();
protected function setLastRunTime($time)
{
$data = array(
'time' => $time,
);
return $this->getFileManager()->putPhpContents($this->lastRunTime, $data);
}
protected function checkLastRunTime()
{
$currentTime = time();
$lastRunTime = $this->getLastRunTime();
$cronMinInterval = $this->getConfig()->get('cronMinInterval', 0);
$pendingJobs = $this->getJobService()->getPendingJobs();
if ($currentTime > ($lastRunTime + $cronMinInterval)) {
return true;
}
foreach ($pendingJobs as $job) {
return false;
}
$this->getJobService()->updateEntity($job['id'], array(
'status' => 'Running',
));
/**
* Run Cron
*
* @return void
*/
public function run()
{
if (!$this->checkLastRunTime()) {
$GLOBALS['log']->info('CronManager: Stop cron running, too frequent execution.');
return;
}
$isSuccess = true;
$this->setLastRunTime(time());
try {
if (!empty($job['scheduled_job_id'])) {
$this->getScheduledJobCron()->run($job);
} else {
$this->getServiceCron()->run($job);
}
} catch (\Exception $e) {
$isSuccess = false;
$GLOBALS['log']->error('Failed job running, job ['.$job['id'].']. Error Details: '.$e->getMessage());
}
$this->getCronJobUtil()->markFailedJobs();
$this->getCronJobUtil()->updateFailedJobAttempts();
$this->createJobsFromScheduledJobs();
$this->getCronJobUtil()->removePendingJobDuplicates();
$status = $isSuccess ? 'Success' : 'Failed';
$pendingJobList = $this->getCronJobUtil()->getPendingJobList();
$this->getJobService()->updateEntity($job['id'], array(
'status' => $status,
));
foreach ($pendingJobList as $job) {
$skip = false;
$this->getEntityManager()->getPdo()->query('LOCK TABLES `job` WRITE');
if ($this->getCronJobUtil()->isJobPending($job->id)) {
if ($job->get('scheduledJobId')) {
if ($this->getCronJobUtil()->isScheduledJobRunning($job->get('scheduledJobId'), $job->get('targetId'), $job->get('targetType'))) {
$skip = true;
}
}
} else {
$skip = true;
}
//set status in the schedulerJobLog
if (!empty($job['scheduled_job_id'])) {
$this->getScheduledJobService()->addLogRecord($job['scheduled_job_id'], $status);
}
}
if ($skip) {
$this->getEntityManager()->getPdo()->query('UNLOCK TABLES');
continue;
}
}
$job->set('status', self::RUNNING);
$job->set('pid', $this->getCronJobUtil()->getPid());
$this->getEntityManager()->saveEntity($job);
$this->getEntityManager()->getPdo()->query('UNLOCK TABLES');
/**
* Check scheduled jobs and create related jobs
* @return array List of created Jobs
*/
protected function createJobsFromScheduledJobs()
{
$activeScheduledJobs = $this->getScheduledJobService()->getActiveJobs();
$isSuccess = true;
$skipLog = false;
$createdJobs = array();
foreach ($activeScheduledJobs as $scheduledJob) {
try {
if ($job->get('scheduledJobId')) {
$this->runScheduledJob($job);
} else {
$this->runService($job);
}
} catch (\Exception $e) {
$isSuccess = false;
if ($e->getCode() === -1) {
$job->set('attempts', 0);
$skipLog = true;
} else {
$GLOBALS['log']->error('CronManager: Failed job running, job ['.$job->id.']. Error Details: '.$e->getMessage());
}
}
$scheduling = $scheduledJob['scheduling'];
$status = $isSuccess ? self::SUCCESS : self::FAILED;
$cronExpression = \Cron\CronExpression::factory($scheduling);
$job->set('status', $status);
$this->getEntityManager()->saveEntity($job);
try {
//$nextDate = $cronExpression->getNextRunDate()->format('Y-m-d H:i:s');
$prevDate = $cronExpression->getPreviousRunDate()->format('Y-m-d H:i:s');
} catch (\Exception $e) {
$GLOBALS['log']->error('ScheduledJob ['.$scheduledJob['id'].']: CronExpression - Impossible CRON expression ['.$scheduling.']');
continue;
}
if ($job->get('scheduledJobId') && !$skipLog) {
$this->getCronScheduledJobUtil()->addLogRecord($job->get('scheduledJobId'), $status, null, $job->get('targetId'), $job->get('targetType'));
}
}
}
if ($cronExpression->isDue()) {
$prevDate = date('Y-m-d H:i:00');
}
protected function runScheduledJob($job)
{
$jobName = $job->get('scheduledJobJob');
$existsJob = $this->getJobService()->getJobByScheduledJob($scheduledJob['id'], $prevDate);
$className = $this->getScheduledJobUtil()->get($jobName);
if ($className === false) {
throw new NotFound();
}
if (!isset($existsJob) || empty($existsJob)) {
//create a job
$data = array(
'name' => $scheduledJob['name'],
'status' => 'Pending',
'scheduledJobId' => $scheduledJob['id'],
'executeTime' => $prevDate,
'method' => $scheduledJob['job'],
);
$createdJobs[] = $this->getJobService()->createEntity($data);
}
}
$jobClass = new $className($this->container);
$method = 'run';
if (!method_exists($jobClass, $method)) {
throw new NotFound();
}
return $createdJobs;
}
$data = null;
if ($job->get('data')) {
$data = $job->get('data');
}
$jobClass->$method($data, $job->get('targetId'), $job->get('targetType'));
}
/**
* Run Service
*
* @param array $job
*
* @return void
*/
protected function runService($job)
{
$serviceName = $job->get('serviceName');
if (!$serviceName) {
throw new Error('Job with empty serviceName.');
}
if (!$this->getServiceFactory()->checkExists($serviceName)) {
throw new NotFound();
}
$service = $this->getServiceFactory()->create($serviceName);
$methodNameDeprecated = $job->get('method');
$methodName = $job->get('methodName');
$isDeprecated = false;
if (!$methodName) {
$isDeprecated = true;
$methodName = $methodNameDeprecated;
}
if (!$methodName) {
throw new Error('Job with empty methodName.');
}
if (!method_exists($service, $methodName)) {
throw new NotFound();
}
$data = $job->get('data');
if ($isDeprecated) {
$data = Json::decode(Json::encode($data), true);
}
$service->$methodName($data, $job->get('targetId'), $job->get('targetType'));
}
protected function createJobsFromScheduledJobs()
{
$activeScheduledJobList = $this->getCronScheduledJobUtil()->getActiveScheduledJobList();
$runningScheduledJobIdList = $this->getCronJobUtil()->getRunningScheduledJobIdList();
$createdJobIdList = array();
foreach ($activeScheduledJobList as $scheduledJob) {
$scheduling = $scheduledJob->get('scheduling');
try {
$cronExpression = \Cron\CronExpression::factory($scheduling);
} catch (\Exception $e) {
$GLOBALS['log']->error('CronManager (ScheduledJob ['.$scheduledJob->id.']): Scheduling string error - '. $e->getMessage() . '.');
continue;
}
try {
$nextDate = $cronExpression->getNextRunDate()->format('Y-m-d H:i:s');
} catch (\Exception $e) {
$GLOBALS['log']->error('CronManager (ScheduledJob ['.$scheduledJob->id.']): Unsupported CRON expression ['.$scheduling.']');
continue;
}
$existingJob = $this->getCronJobUtil()->getJobByScheduledJob($scheduledJob->id, $nextDate);
if ($existingJob) continue;
$className = $this->getScheduledJobUtil()->get($scheduledJob->get('job'));
if ($className) {
if (method_exists($className, 'prepare')) {
$implementation = new $className($this->container);
$implementation->prepare($scheduledJob, $nextDate);
continue;
}
}
if (in_array($scheduledJob->id, $runningScheduledJobIdList)) {
continue;
}
$jobEntity = $this->getEntityManager()->getEntity('Job');
$jobEntity->set(array(
'name' => $scheduledJob->get('name'),
'status' => self::PENDING,
'scheduledJobId' => $scheduledJob->id,
'executeTime' => $nextDate
));
$this->getEntityManager()->saveEntity($jobEntity);
}
}
}
+149 -79
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,111 +18,181 @@
*
* 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\Core;
class DataManager
{
private $container;
private $container;
private $cachePath = 'data/cache';
private $cachePath = 'data/cache';
public function __construct(Container $container)
{
$this->container = $container;
}
public function __construct(Container $container)
{
$this->container = $container;
}
protected function getContainer()
{
return $this->container;
}
protected function getContainer()
{
return $this->container;
}
/**
* Rebuild the system with metadata, database and cache clearing
*
* @return bool
*/
public function rebuild($entityList = null)
{
$result = $this->clearCache();
/**
* Rebuild the system with metadata, database and cache clearing
*
* @return bool
*/
public function rebuild($entityList = null)
{
$this->populateConfigParameters();
$result &= $this->rebuildMetadata();
$result = $this->clearCache();
$result &= $this->rebuildDatabase($entityList);
$result &= $this->rebuildMetadata();
return $result;
}
$result &= $this->rebuildDatabase($entityList);
/**
* Clear a cache
*
* @return bool
*/
public function clearCache()
{
$result = $this->getContainer()->get('fileManager')->removeInDir($this->cachePath);
$this->rebuildScheduledJobs();
if ($result === false) {
throw new Exceptions\Error("Error while clearing cache");
}
return $result;
}
$this->updateCacheTimestamp();
/**
* Clear a cache
*
* @return bool
*/
public function clearCache()
{
$result = $this->getContainer()->get('fileManager')->removeInDir($this->cachePath);
return $result;
}
if ($result != true) {
throw new Exceptions\Error("Error while clearing cache");
}
/**
* Rebuild database
*
* @return bool
*/
public function rebuildDatabase($entityList = null)
{
try {
$result = $this->getContainer()->get('schema')->rebuild($entityList);
} catch (\Exception $e) {
$result = false;
$GLOBALS['log']->error('Fault to rebuild database schema'.'. Details: '.$e->getMessage());
}
$this->updateCacheTimestamp();
if ($result === false) {
throw new Exceptions\Error("Error while rebuilding database. See log file for details.");
}
return $result;
}
$this->updateCacheTimestamp();
/**
* Rebuild database
*
* @return bool
*/
public function rebuildDatabase($entityList = null)
{
try {
$result = $this->getContainer()->get('schema')->rebuild($entityList);
} catch (\Exception $e) {
$result = false;
$GLOBALS['log']->error('Fault to rebuild database schema'.'. Details: '.$e->getMessage());
}
return $result;
}
if ($result != true) {
throw new Exceptions\Error("Error while rebuilding database. See log file for details.");
}
/**
* Rebuild metadata
*
* @return bool
*/
public function rebuildMetadata()
{
$metadata = $this->getContainer()->get('metadata');
$this->updateCacheTimestamp();
$metadata->init(true);
return $result;
}
$ormMeta = $metadata->getOrmMetadata(true);
/**
* Rebuild metadata
*
* @return bool
*/
public function rebuildMetadata()
{
$metadata = $this->getContainer()->get('metadata');
$this->updateCacheTimestamp();
$metadata->init(true);
return empty($ormMeta) ? false : true;
}
$ormData = $this->getContainer()->get('ormMetadata')->getData(true);
/**
* Update cache timestamp
*
* @return bool
*/
public function updateCacheTimestamp()
{
return $this->getContainer()->get('config')->updateCacheTimestamp();
}
$this->updateCacheTimestamp();
return empty($ormData) ? false : true;
}
}
public function rebuildScheduledJobs()
{
$metadata = $this->getContainer()->get('metadata');
$entityManager = $this->getContainer()->get('entityManager');
$jobs = $metadata->get(['entityDefs', 'ScheduledJob', 'jobs'], array());
foreach ($jobs as $jobName => $defs) {
if ($jobName && !empty($defs['isSystem']) && !empty($defs['scheduling'])) {
if (!$entityManager->getRepository('ScheduledJob')->where(array(
'job' => $jobName,
'status' => 'Active',
'scheduling' => $defs['scheduling']
))->findOne()) {
$job = $entityManager->getRepository('ScheduledJob')->where(array(
'job' => $jobName
))->findOne();
if ($job) {
$entityManager->removeEntity($job);
}
$name = $jobName;
if (!empty($defs['name'])) {
$name = $defs['name'];
}
$job = $entityManager->getEntity('ScheduledJob');
$job->set(array(
'job' => $jobName,
'status' => 'Active',
'scheduling' => $defs['scheduling'],
'isInternal' => true,
'name' => $name
));
$entityManager->saveEntity($job);
}
}
}
}
/**
* Update cache timestamp
*
* @return bool
*/
public function updateCacheTimestamp()
{
$this->getContainer()->get('config')->updateCacheTimestamp();
$this->getContainer()->get('config')->save();
return true;
}
protected function populateConfigParameters()
{
$config = $this->getContainer()->get('config');
$pdo = $this->getContainer()->get('entityManager')->getPDO();
$query = "SHOW VARIABLES LIKE 'ft_min_word_len'";
$sth = $pdo->prepare($query);
$sth->execute();
$fullTextSearchMinLength = null;
if ($row = $sth->fetch(\PDO::FETCH_ASSOC)) {
if (isset($row['Value'])) {
$fullTextSearchMinLength = intval($row['Value']);
}
}
$config->set('fullTextSearchMinLength', $fullTextSearchMinLength);
$config->save();
}
}
@@ -0,0 +1,50 @@
<?php
/************************************************************************
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://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\Core\Entities;
class CategoryTreeItem extends \Espo\Core\ORM\Entity
{
public function toArray()
{
$data = parent::toArray();
$childList = $this->get('childList');
if (is_null($childList)) {
$data['childList'] = null;
} else {
$arr = [];
foreach ($childList as $entity) {
$arr[] = $entity->toArray();
}
$data['childList'] = $arr;
}
return $data;
}
}
+32 -23
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,32 +18,41 @@
*
* 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\Core\Entities;
class Person extends \Espo\Core\ORM\Entity
{
public static $person = true;
public function setLastName($value)
{
$this->setValue('lastName', $value);
$firstName = $this->get('firstName');
if (!empty($firstName)) {
$this->setValue('name', $firstName . ' ' . $value);
}
}
public function setFirstName($value)
{
$this->setValue('firstName', $value);
$lastName = $this->get('lastName');
if (!empty($lastName)) {
$this->setValue('name', $value . ' ' . $lastName);
}
}
public function _setLastName($value)
{
$this->setValue('lastName', $value);
$firstName = $this->get('firstName');
if (empty($firstName)) {
$this->setValue('name', $value);
} else {
$this->setValue('name', $firstName . ' ' . $value);
}
}
public function _setFirstName($value)
{
$this->setValue('firstName', $value);
$lastName = $this->get('lastName');
if (empty($lastName)) {
$this->setValue('name', $value);
} else {
$this->setValue('name', $value . ' ' . $lastName);
}
}
}
+82 -68
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,98 +18,112 @@
*
* 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\Core;
use \Espo\Core\Exceptions\NotFound,
\Espo\Core\Utils\Util;
\Espo\Core\Utils\Util;
class EntryPointManager
{
private $container;
private $fileManager;
private $container;
protected $data = null;
private $fileManager;
protected $cacheFile = 'data/cache/application/entryPoints.php';
protected $data = null;
protected $allowedMethods = array(
'run',
);
protected $cacheFile = 'data/cache/application/entryPoints.php';
/**
protected $allowedMethods = array(
'run',
);
/**
* @var array - path to entryPoint files
*/
private $paths = array(
'corePath' => 'application/Espo/EntryPoints',
'modulePath' => 'application/Espo/Modules/{*}/EntryPoints',
'customPath' => 'custom/Espo/Custom/EntryPoints',
);
private $paths = array(
'corePath' => 'application/Espo/EntryPoints',
'modulePath' => 'application/Espo/Modules/{*}/EntryPoints',
'customPath' => 'custom/Espo/Custom/EntryPoints',
);
public function __construct(\Espo\Core\Container $container)
{
$this->container = $container;
$this->fileManager = $container->get('fileManager');
}
public function __construct(\Espo\Core\Container $container)
{
$this->container = $container;
$this->fileManager = $container->get('fileManager');
}
protected function getContainer()
{
return $this->container;
}
protected function getContainer()
{
return $this->container;
}
protected function getFileManager()
{
return $this->fileManager;
}
protected function getFileManager()
{
return $this->fileManager;
}
public function checkAuthRequired($name)
{
$className = $this->getClassName($name);
if ($className === false) {
throw new NotFound();
}
return $className::$authRequired;
}
public function checkAuthRequired($name)
{
$className = $this->getClassName($name);
if (!$className) {
throw new NotFound();
}
return $className::$authRequired;
}
public function run($name)
{
$className = $this->getClassName($name);
if ($className === false) {
throw new NotFound();
}
$entryPoint = new $className($this->container);
public function checkNotStrictAuth($name)
{
$className = $this->getClassName($name);
if (!$className) {
throw new NotFound();
}
return $className::$notStrictAuth;
}
$entryPoint->run();
}
public function run($name, $data = array())
{
$className = $this->getClassName($name);
if (!$className) {
throw new NotFound();
}
$entryPoint = new $className($this->container);
protected function getClassName($name)
{
$name = Util::normilizeClassName($name);
if (!isset($this->data)) {
$this->init();
}
$entryPoint->run($data);
}
$name = ucfirst($name);
if (isset($this->data[$name])) {
return $this->data[$name];
}
return false;
}
protected function getClassName($name)
{
$name = Util::normilizeClassName($name);
if (!isset($this->data)) {
$this->init();
}
$name = ucfirst($name);
if (isset($this->data[$name])) {
return $this->data[$name];
}
return false;
}
protected function init()
{
$classParser = $this->getContainer()->get('classParser');
$classParser->setAllowedMethods($this->allowedMethods);
$this->data = $classParser->getData($this->paths, $this->cacheFile);
}
protected function init()
{
$classParser = $this->getContainer()->get('classParser');
$classParser->setAllowedMethods($this->allowedMethods);
$this->data = $classParser->getData($this->paths, $this->cacheFile);
}
}
+79 -47
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,7 +18,14 @@
*
* 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\Core\EntryPoints;
@@ -28,51 +35,76 @@ use \Espo\Core\Exceptions\Forbidden;
abstract class Base
{
private $container;
public static $authRequired = true;
protected function getContainer()
{
return $this->container;
}
protected function getUser()
{
return $this->getContainer()->get('user');
}
protected function getAcl()
{
return $this->getContainer()->get('acl');
}
protected function getEntityManager()
{
return $this->getContainer()->get('entityManager');
}
protected function getServiceFactory()
{
return $this->getContainer()->get('serviceFactory');
}
protected function getConfig()
{
return $this->getContainer()->get('config');
}
protected function getMetadata()
{
return $this->getContainer()->get('metadata');
}
public function __construct(Container $container)
{
$this->container = $container;
}
abstract public function run();
private $container;
public static $authRequired = true;
public static $notStrictAuth = false;
protected function getContainer()
{
return $this->container;
}
protected function getUser()
{
return $this->getContainer()->get('user');
}
protected function getAcl()
{
return $this->getContainer()->get('acl');
}
protected function getEntityManager()
{
return $this->getContainer()->get('entityManager');
}
protected function getServiceFactory()
{
return $this->getContainer()->get('serviceFactory');
}
protected function getConfig()
{
return $this->getContainer()->get('config');
}
protected function getMetadata()
{
return $this->getContainer()->get('metadata');
}
protected function getDateTime()
{
return $this->getContainer()->get('dateTime');
}
protected function getNumber()
{
return $this->getContainer()->get('number');
}
protected function getFileManager()
{
return $this->getContainer()->get('fileManager');
}
protected function getLanguage()
{
return $this->getContainer()->get('language');
}
protected function getClientManager()
{
return $this->getContainer()->get('clientManager');
}
public function __construct(Container $container)
{
$this->container = $container;
}
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,13 +18,20 @@
*
* 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\Core\Exceptions;
class BadRequest extends \Exception
{
protected $code = 400;
protected $code = 400;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,13 +18,20 @@
*
* 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\Core\Exceptions;
class Conflict extends \Exception
{
protected $code = 409;
protected $code = 409;
}
+8 -1
View File
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,6 +18,13 @@
*
* 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\Core\Exceptions;
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,13 +18,20 @@
*
* 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\Core\Exceptions;
class Forbidden extends \Exception
{
protected $code = 403;
protected $code = 403;
}
@@ -3,7 +3,7 @@
* This file is part of EspoCRM.
*
* EspoCRM - Open Source CRM application.
* Copyright (C) 2014 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
* Website: http://www.espocrm.com
*
* EspoCRM is free software: you can redistribute it and/or modify
@@ -18,12 +18,19 @@
*
* 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\Core\Exceptions;
class InternalServerError extends \Exception
{
protected $code = 500;
protected $code = 500;
}

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