Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2.15.0 #7028

Merged
merged 713 commits into from Dec 19, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
713 commits
Select commit Hold shift + click to select a range
de4bfa9
Merge pull request #5962 from escopecz/pr5858
Woeler Nov 8, 2018
26e5337
Support for PHP 7.2
StudioMaX Sep 18, 2018
e1fded0
Revert "Fix frequency rule"
Woeler Nov 8, 2018
4d54cc0
Merge pull request #6849 from mautic/revert-6760-fix-sms-identify-con…
Woeler Nov 8, 2018
dab1168
Fix timezone conversion in DateHelper::toText() method
hluchas Oct 16, 2018
00893ee
Use exact UTC format if provided to DateHelper::toText(), otherwise u…
hluchas Oct 26, 2018
ed4c6d0
Ensure the entity is not null before requesting a property on it
escopecz Nov 8, 2018
89475a9
test fixes
escopecz Nov 8, 2018
c445e8c
Merge pull request #6848 from StudioMaX/php-72
Woeler Nov 8, 2018
8bae8bb
Force Travis rebuild with harmless commit
alanhartless Nov 8, 2018
b87420a
Revert "Support for PHP 7.2"
Woeler Nov 9, 2018
f5a92fc
change button order and add a comment
npracht Nov 9, 2018
990d178
Merge remote-tracking branch 'upstream/staging' into enh-internationa…
kuzmany Nov 9, 2018
f3a0239
Fix translation
kuzmany Nov 9, 2018
3e38acd
Merge remote-tracking branch 'upstream/staging' into pipedrive-full-s…
kuzmany Nov 9, 2018
5ccbf6f
Merge pull request #6854 from mautic/revert-6848-php-72
Woeler Nov 9, 2018
35644ba
Merge pull request #6568 from mautic-inc/password-reset-error-text-ch…
Woeler Nov 9, 2018
02f42e7
Merge pull request #6319 from mautic-inc/download-latest-asset
Woeler Nov 9, 2018
83c51c8
Try to insert only new contact-IP reference
escopecz Nov 9, 2018
9af7aac
Remove unspuported event test
kuzmany Nov 10, 2018
541f111
Merge remote-tracking branch 'upstream/staging' into pipedrive-full-s…
kuzmany Nov 10, 2018
f548f27
Revert tests
kuzmany Nov 10, 2018
1ff9ef6
Merge pull request #6388 from kuzmany/points-each-page
Woeler Nov 10, 2018
389f992
Merge pull request #6245 from kuzmany/export-contact-info
Woeler Nov 10, 2018
5dd351c
Merge pull request #6719 from mautic-inc/staging.add-segment-log
Woeler Nov 10, 2018
2afffce
Merge pull request #6721 from mautic-inc/staging.add-login-log
Woeler Nov 10, 2018
11d5bfc
Merge pull request #6720 from mautic-inc/staging.add-config-change-log
Woeler Nov 10, 2018
0749e1b
Merge pull request #6194 from MauldinEconomics/ui-email-details-rebased
Woeler Nov 10, 2018
25f2717
Merge pull request #6850 from mautic-inc/staging.fix-datetime-totext-…
Woeler Nov 10, 2018
3a0cfd5
Correct English in email not read message
Woeler Nov 10, 2018
1e34435
Merge pull request #6436 from kuzmany/import-theme-settings-extensions
Woeler Nov 10, 2018
8ae5196
Merge pull request #6242 from Webmecanik/maintenance_cleanup_with_rgp…
Woeler Nov 10, 2018
e1225a4
Merge pull request #6785 from Webmecanik/support-old-libxml
Woeler Nov 11, 2018
a125abc
Merge pull request #6161 from Webmecanik/form-noindex
Woeler Nov 11, 2018
7971371
Fix cs for Travis
Woeler Nov 11, 2018
eb9a42e
Resolve conflicts
Woeler Nov 11, 2018
5f79662
Merge branch 'staging' into api_rate_limiter
Woeler Nov 11, 2018
e2a59ae
Add proper query builder
Woeler Nov 11, 2018
41dfc64
Merge pull request #6859 from Woeler/english
Woeler Nov 11, 2018
fd01e40
Merge pull request #6841 from mautic-inc/report-api-pagination
Woeler Nov 12, 2018
dd6c0ca
Merge pull request #6186 from MauldinEconomics/ui_form_details
Woeler Nov 12, 2018
7d2f686
Add SSL recommendation during install
Woeler Nov 12, 2018
1439e50
Cache email pending & queued stats. Update list layout to use cached …
dongilbert Aug 6, 2018
03512d5
Use getReadPercentage for read percentage
dongilbert Aug 6, 2018
793ac53
Fix unit tests
dongilbert Aug 16, 2018
782e64b
Fix object instantation (no trailing comma in new)
dongilbert Aug 16, 2018
0603ea2
Fix remaining tests
dongilbert Aug 16, 2018
1de9669
Cache the correct result for pending
dongilbert Aug 22, 2018
8ffcfd3
Return email entity from setQueuedCount and setPendingCount
dongilbert Nov 12, 2018
421d4b6
Merge pull request #6444 from mautic-inc/beta.cache-email-stats
Woeler Nov 12, 2018
efd9a2b
Delete expired user tokens with maintenance cleanup command
hluchas Oct 2, 2018
cbe752a
Merge pull request #6798 from scottshipman/dashboard-widget-set-cache
Woeler Nov 13, 2018
5c1146b
Link leads to form results in demo data
Woeler Nov 14, 2018
3e5fc3a
Merge pull request #6743 from maltonite/EmailSentDate
Woeler Nov 14, 2018
9aa19cc
Merge remote-tracking branch 'upstream/staging' into segment-new-opti…
kuzmany Nov 14, 2018
a17353d
Add MaintenanceSubscriberTest and update UserTokenRepositoryInterface
hluchas Nov 13, 2018
0eecd99
Revert 'preference_center_only' => false,
kuzmany Nov 14, 2018
f8116d7
Merge pull request #6878 from Woeler/fixdemodataforms
Woeler Nov 14, 2018
6f676b6
Fix rendering of timeline details being off by one when device os empty
isleshocky77 Nov 14, 2018
3d9dc53
Merge pull request #5970 from heathdutton/bug/master-slave-support
Woeler Nov 14, 2018
9b0c3e8
Merge pull request #6637 from kuzmany/fix-marketing-message-error--na…
Woeler Nov 14, 2018
0c9f0e5
Merge pull request #6881 from isleshocky77/fix-timeline-render-withou…
Woeler Nov 15, 2018
96a43a4
Add check to prevent event to be fired if parent taken path is not th…
Enc3phale Nov 15, 2018
c132e95
Merge pull request #6591 from mautic-inc/sms-token-bitly-fix
Woeler Nov 15, 2018
d50d3d0
Entity changes that aren't string will cause trouble for audit log. U…
escopecz Nov 15, 2018
c483a4e
Fixing bad changes array key
escopecz Nov 15, 2018
4a4bfae
Merge pull request #6410 from kuzmany/segment-new-option-prefs-center
Woeler Nov 15, 2018
f2a8c32
Prevent interval from doubling the expected scheduled time
alanhartless Oct 29, 2018
d83f848
Add extendable getEvents method
alanhartless Jul 26, 2018
9190182
Prevent mautic.lead.import.contact.action.identified_contact entry in…
alanhartless Jul 26, 2018
0822d60
Log segment and campaign changes so they show up in the timeline
alanhartless Jul 26, 2018
4191cb5
Segment batch events doesn't send contacts as entities
alanhartless Jul 26, 2018
16df0cb
Recursively create path if it doesn't exist
alanhartless Jul 30, 2018
4612b88
Fixed bad variable name for export and used is_readable instead if is…
alanhartless Jul 30, 2018
58ee3aa
Fixed user path variable
alanhartless Jul 27, 2018
dfb892e
Store a tracking hash for each SMS stat to identify the contact with
alanhartless Jul 30, 2018
e441f45
New event to identify the contact from a clickthrough array
alanhartless Jul 30, 2018
4731267
Dispatch event to let plugins/listeners identify the contact from the…
alanhartless Jul 30, 2018
d01a37b
WIP - event listeners to identify contact from clickthrough array for…
alanhartless Jul 30, 2018
158e144
Keep BC with old channel format
alanhartless Jul 31, 2018
224a154
Add who identified the contact mainly for debug log
alanhartless Jul 31, 2018
7e98eaa
Register tracking service subscribers
alanhartless Jul 31, 2018
bb21782
Added/updated tests
alanhartless Jul 31, 2018
c76d1b5
Use hit source and ID for incrementing trackable click counts
alanhartless Aug 3, 2018
d0661ee
Do first pass of search/replace of tokens before setting the subject …
alanhartless Oct 1, 2018
c1e130c
Prevent SF from choking due to unsupported states
alanhartless Oct 26, 2018
33982fb
Change use of getFields() to getProfileFields() to ensure that the la…
alanhartless Oct 24, 2018
06668e9
Removed unnecessary if statement
alanhartless Oct 24, 2018
e19b00c
Fixed zoho tests
alanhartless Oct 24, 2018
3f02f04
If a lead is not tracked, getCurrentLead will return an empty Lead ob…
alanhartless Oct 2, 2018
ebe7051
If a lead is not tracked yet, fields set to only show after X submiss…
alanhartless Oct 2, 2018
85565fc
Updated some code formats
alanhartless Oct 2, 2018
cdbdf46
Removing CalendarReference.php and its reference from the config.php …
mitresh95 Sep 6, 2018
150df36
Removed properties as they are defined in the trait which caused 5.6 …
alanhartless Nov 15, 2018
fe6d172
Removed properties as they are defined in the trait which caused 5.6 …
alanhartless Nov 15, 2018
141a751
Merge pull request #6600 from mautic-inc/feature/segment-rebuild-limi…
Woeler Nov 15, 2018
c3909ba
Add support for LIMIT when removing from segments to prevent issues w…
alanhartless Oct 10, 2018
f87943c
CS and type hints
alanhartless Oct 10, 2018
5fa9962
Prefer a slave connection for segment counts.
Nov 15, 2018
cd72125
Merge branch 'staging' into prevent-deadlock-on-email-hit
escopecz Nov 16, 2018
8c13585
Merge pull request #6823 from mautic-inc/staging.sf-state-fix
Woeler Nov 16, 2018
9622633
Merge pull request #6824 from mautic-inc/staging.sf-form-push-bug
Woeler Nov 16, 2018
534e655
Merge pull request #6592 from mautic-inc/email-pending-count
Woeler Nov 16, 2018
033f398
Prevent exception to transport
kuzmany Nov 16, 2018
73722df
Revert "Prevent exception to transport"
kuzmany Nov 16, 2018
8a89222
Merge remote-tracking branch 'upstream/staging' into pipedrive-full-s…
kuzmany Nov 16, 2018
4a82fa4
Merge remote-tracking branch 'upstream/staging' into fix-campaign-clo…
kuzmany Nov 16, 2018
534e814
Merge pull request #6845 from mautic-inc/imageoutputsize-added-to-ema…
Woeler Nov 16, 2018
068e7c6
Add support update contact with pushLead If contact already exist
kuzmany Nov 16, 2018
00af99d
Rename tests due duplicate with LeadBundle
kuzmany Nov 16, 2018
1a47e6d
Merge pull request #6570 from Webmecanik/multi_contacts_add_to_segmen…
Woeler Nov 16, 2018
59b84dc
Merge to staging
kuzmany Nov 16, 2018
fbb77af
Merge remote-tracking branch 'upstream/staging' into campaign-conditi…
kuzmany Nov 16, 2018
03b3497
addCompanyLeftJoin as private
kuzmany Nov 16, 2018
ebe7ffa
Merge pull request #6842 from mautic-inc/list-sync-for-campaign-condi…
Woeler Nov 16, 2018
d3a0306
Merge pull request #6839 from mautic-inc/staging.tooptip-help-segment…
Woeler Nov 16, 2018
dce88e0
Merge pull request #6786 from mautic-inc/hotfix.414-request-uri-too-long
Woeler Nov 16, 2018
fa5e951
Revert test from branch before merge to outdated PHP 7.2
kuzmany Nov 16, 2018
d6fb4dd
Merge remote-tracking branch 'upstream/staging' into new-emails-setti…
kuzmany Nov 16, 2018
e74216d
Fix alias reset after form name change via api
Woeler Nov 16, 2018
cf71243
Check for existing alias in form api controller on edit
Woeler Nov 16, 2018
602b7b9
Merge pull request #5628 from kuzmany/campaign-condition-support-comp…
Woeler Nov 16, 2018
0abf1e1
Merge pull request #6070 from kuzmany/preferences-page-add-actions-me…
Woeler Nov 16, 2018
6bcf4cd
Minor to test
kuzmany Nov 16, 2018
ab8473b
Fix frequency rules
kuzmany Nov 16, 2018
374f1ef
Removed properties as they are defined in the trait which caused 5.6 …
alanhartless Nov 16, 2018
ce8eac6
Merge pull request #6844 from mautic-inc/do-not-hide-buttons-for-plugins
Woeler Nov 16, 2018
22bbb8a
Merge pull request #6605 from mautic-inc/campaign-segment-history
Woeler Nov 17, 2018
a108164
change namespace for daterange form to be more generic and check sess…
scottshipman Nov 19, 2018
f6f7d34
save session for date options on form draw
scottshipman Nov 19, 2018
95f3edc
resolve conflicts in config.php
scottshipman Nov 19, 2018
05607a3
resolve second conflict in config.php
scottshipman Nov 19, 2018
f14bb90
resolve second conflict as different way
scottshipman Nov 19, 2018
5f264a8
Merge remote-tracking branch 'upstream/staging' into enh-internationa…
kuzmany Nov 19, 2018
e1389e3
Merge pull request #6829 from mautic-inc/staging.sms-click-tracking
Woeler Nov 20, 2018
d22cc2e
Merge pull request #6889 from heathdutton/improvment/segment-replica-…
Woeler Nov 20, 2018
281fb72
Fixed illegal offset warning
alanhartless Nov 19, 2018
6535c8c
Fixed issue with finding existing mapped records
alanhartless Nov 19, 2018
2642e21
Merge pull request #6894 from Woeler/fixformaliaschange
Woeler Nov 21, 2018
d8d9329
Fix translation message after focus item removal.
Nov 22, 2018
d16cc2d
Merge pull request #6716 from Woeler/extremeipsupport
Woeler Nov 22, 2018
a2e4c2d
Merge pull request #6851 from mautic-inc/staging.delete-expired-user-…
Woeler Nov 22, 2018
a8e1b15
Merge pull request #6717 from Webmecanik/add-ispublished-check-msu
Woeler Nov 22, 2018
0dc71f3
Merge pull request #6862 from Woeler/ssl_install
Woeler Nov 23, 2018
a24767e
Merge pull request #6886 from mautic-inc/staging.campaign-doubled-sch…
Woeler Nov 23, 2018
9c211ee
Merge pull request #6914 from srdecny/fix-focus-remove-translation
Woeler Nov 24, 2018
6556987
Merge pull request #6539 from mautic-inc/feature-ip-address-in-campai…
Woeler Nov 24, 2018
05915e6
Merge pull request #6377 from mautic-inc/dev.redirect-enhancement
Woeler Nov 24, 2018
36f621b
Merge pull request #6827 from mautic-inc/staging.momentum-subject-tokens
Woeler Nov 24, 2018
1bd4b6b
Merge pull request #6853 from mautic-inc/calendar-email-event-removal
Woeler Nov 24, 2018
61f3737
Merge pull request #6818 from kuzmany/fix-campaign-cloned-segments
Woeler Nov 25, 2018
078f65e
Merge pull request #6825 from mautic-inc/staging.segment-batch-removal
Woeler Nov 25, 2018
8378b93
Merge pull request #6826 from mautic-inc/staging.progressive-profilin…
Woeler Nov 25, 2018
50614d7
Merge pull request #6828 from mautic-inc/staging.default-dashboard-fi…
Woeler Nov 25, 2018
0992ef9
Merge pull request #6598 from mautic-inc/feature/ajaxify-email-detal-…
Woeler Nov 26, 2018
74f4187
Merge pull request #6378 from mautic-inc/enhancement.transport-webhoo…
Woeler Nov 26, 2018
92cacef
Merge pull request #6383 from mautic-inc/enhancement.redirect-speed-i…
Woeler Nov 26, 2018
c3eead3
Merge pull request #6594 from mautic-inc/webhook-deadlock
Woeler Nov 26, 2018
4878595
Merge pull request #6771 from rohanvakharia/staging
Woeler Nov 26, 2018
0bf7544
Changes requested by Woeler -> done
Nov 26, 2018
8b49286
Merge pull request #6843 from mautic-inc/prevent-deadlock-on-email-hit
Woeler Nov 26, 2018
d5f13e6
Merge pull request #6125 from scottshipman/clone-api
Woeler Nov 26, 2018
ab724dd
pluralization and remove 2 & 3 day options for date range
scottshipman Nov 26, 2018
075d29d
Merge branch 'staging' into campaign-limit
cykonetic Nov 26, 2018
075c718
Merge pull request #5401 from kuzmany/pipedrive-full-sync-2
Woeler Nov 27, 2018
2fff9f6
Merge remote-tracking branch 'upstream/staging' into enh-internationa…
kuzmany Nov 27, 2018
aa5f5c1
Show custom validation just for type
kuzmany Nov 27, 2018
d03dd3b
Fix phone validation
kuzmany Nov 27, 2018
c1e93a4
Merge branch 'staging' into core-daterange-cfg
scottshipman Nov 27, 2018
aba187c
upstream changes - dataTransformers and migrations mostly
scottshipman Nov 27, 2018
af00d37
Fix typo
kuzmany Nov 27, 2018
94b2e72
Merge branch 'staging' of github.com:mautic/mautic into campaign-limit
cykonetic Nov 27, 2018
156d994
[campaign-limits] fixing style issue
cykonetic Nov 27, 2018
6181f46
remove theme_import_allowed_extensions from coreBundle config.php
scottshipman Nov 27, 2018
3b2637a
Merge branch 'staging' into core-daterange-cfg
heathdutton Nov 27, 2018
fa827a6
Merge pull request #6753 from cykonetic/campaign-limit
Woeler Nov 28, 2018
cfda321
Add verification for scheduled events
Enc3phale Nov 28, 2018
1cf9079
Merge branch 'staging' of https://github.com/mautic/mautic into featu…
Nov 28, 2018
7d76192
Suggest using mautibox to test the PR.
Nov 29, 2018
814def4
Merge pull request #6220 from Webmecanik/report_date_range
Woeler Nov 29, 2018
2513e0a
Merge pull request #6937 from mautic/suggest-test-with-mautibox
Woeler Nov 29, 2018
d71c5da
Merge pull request #6187 from heathdutton/feature/chained-actions
Woeler Nov 29, 2018
a99fd1f
Negative condition support
kuzmany Nov 29, 2018
745d7c9
Merge remote-tracking branch 'upstream/staging' into enh-internationa…
kuzmany Nov 29, 2018
bce0c35
Minor
kuzmany Nov 29, 2018
63d582e
Add empty line
kuzmany Nov 29, 2018
a842203
Fix
Enc3phale Nov 29, 2018
84d687f
Move some logic
Enc3phale Nov 29, 2018
fdb8d71
Fix php-cs-fixer error
Enc3phale Nov 30, 2018
7fffcef
Merge pull request #6896 from kuzmany/Fix-frequency-rule
Woeler Nov 30, 2018
9b0407c
Revert "Fix frequency rules"
Woeler Nov 30, 2018
1ca04c9
Merge pull request #6944 from mautic/revert-6896-Fix-frequency-rule
Woeler Nov 30, 2018
4d5d838
Merge pull request #6836 from mautic-inc/save-ip-safelly
Woeler Nov 30, 2018
3e85b25
Merge pull request #6908 from mautic-inc/staging.broken-zoho-sync
Woeler Nov 30, 2018
3a30631
$translator to $this->translator
scottshipman Nov 30, 2018
bc805e1
fix pluralization count %
scottshipman Nov 30, 2018
7a58391
Update ConfigType.php
heathdutton Nov 30, 2018
73d41bb
Fixed JS error with Dropzone when opening the remote file modal
alanhartless Nov 14, 2018
b02aeb1
Updated to latest AWS SDK
alanhartless Nov 14, 2018
f028ff2
Added latest amazon aws sdk
alanhartless Nov 30, 2018
df36a1d
Merge pull request #6945 from mautic-inc/staging.amazon-s3-fix
Woeler Dec 1, 2018
f2e48c3
Merge pull request #6091 from scottshipman/core-daterange-cfg
Woeler Dec 1, 2018
2a5f786
Remove die statement
Woeler Dec 3, 2018
5372ab9
Merge pull request #6950 from mautic/remove-die-statement
Woeler Dec 3, 2018
8d98556
Remove empty whitespace
Woeler Dec 3, 2018
5e9972e
Merge pull request #6951 from mautic/remove-whitespace
Woeler Dec 3, 2018
08a705f
Merge pull request #6726 from ChrisRAoW/staging
Woeler Dec 3, 2018
0b1aa85
Merge pull request #6940 from Webmecanik/fix-campaign-realtime-events
Woeler Dec 3, 2018
ec8d6a2
Merge remote-tracking branch 'upstream/staging' into fix-ie-comments
kuzmany Dec 3, 2018
15d6da2
Merge branch 'staging' into api_rate_limiter
npracht Dec 3, 2018
5b9d14c
Support for PHP 7.2
StudioMaX Sep 18, 2018
8287495
Merge pull request #6732 from mautic-inc/staging.fix-imap-mail-attach…
Woeler Dec 3, 2018
d215815
Merge pull request #6728 from mautic-inc/staging.fix-aliases-collisio…
Woeler Dec 3, 2018
4639dab
Merge pull request #6700 from mautic-inc/set-import-start-date-once
Woeler Dec 3, 2018
6083daf
Merge pull request #5911 from heathdutton/feauture/segment-by-campaig…
Woeler Dec 3, 2018
e9a560b
Merge pull request #6893 from StudioMaX/php-72
Woeler Dec 3, 2018
1e2d618
Remove sudo
Woeler Dec 3, 2018
63bfe4b
Merge pull request #6953 from mautic/remove-sudo-travis
Woeler Dec 3, 2018
e2e2d30
Merge pull request #6240 from Webmecanik/set-role-permissions-for-cam…
Woeler Dec 4, 2018
b0a4293
Merge remote-tracking branch 'upstream/staging' into new-emails-setti…
kuzmany Dec 4, 2018
fe385d6
typo
npracht Dec 4, 2018
c3b1ffa
typo
npracht Dec 4, 2018
ace2717
typo
npracht Dec 4, 2018
afe2ffd
Make tooltip more clear
Woeler Dec 4, 2018
d113b2c
Merge pull request #6840 from kuzmany/new-emails-settings-inject-html
Woeler Dec 4, 2018
37a421a
Merge pull request #6793 from Webmecanik/api_rate_limiter
Woeler Dec 4, 2018
b64f473
Fixed issue where query parameters were not included in plaintext URLs
alanhartless Dec 4, 2018
b13c075
Merge pull request #6938 from kuzmany/fix-ie-comments
Woeler Dec 5, 2018
9b46a66
Merge pull request #6965 from mautic-inc/staging.plaintext-urls-with-…
Woeler Dec 5, 2018
3f6a62f
Merge pull request #6810 from kuzmany/builder-add-placeholder-for-slot
Woeler Dec 5, 2018
dfaed96
Merge pull request #6650 from kuzmany/enh-international-phone-number-…
Woeler Dec 5, 2018
de15024
Revert "Added the ability to give permissions on the campaigns."
Woeler Dec 5, 2018
f6aa213
Merge pull request #6966 from mautic/revert-6240-set-role-permissions…
Woeler Dec 5, 2018
37285ff
Fix #6986 - Immediate Webhooks broken on 2.15
pjeby Dec 9, 2018
e224e85
Don't touch any doctrine-controlled webhook props
pjeby Dec 10, 2018
64bb4f1
Update tests for new parameter
pjeby Dec 10, 2018
386e6a5
Remove dead code found byt scrutinizer
pjeby Dec 10, 2018
0056fbb
Custom validation
kuzmany Dec 14, 2018
813f998
Remove old validation and fix translation
kuzmany Dec 14, 2018
8ff97ae
Revert default validation message
kuzmany Dec 14, 2018
8248231
remove . on .lp.lead_id
npracht Dec 14, 2018
5b6af7a
Merge pull request #7013 from Webmecanik/fix-join
Woeler Dec 14, 2018
c8b879d
Remove required flag from validation message
kuzmany Dec 14, 2018
8be7bea
Merge pull request #7010 from kuzmany/fix-validation-custom-text
Woeler Dec 14, 2018
23a0b3a
Merge pull request #6987 from pjeby/fix-6986-and-6594
Woeler Dec 17, 2018
76cd90a
Support removal from Campaign Membership segment.
Dec 17, 2018
866c307
Merge branch 'mautic/staging' into bug/campaign-membership-removal
Dec 17, 2018
12093d1
Merge pull request #7018 from heathdutton/bug/campaign-membership-rem…
Woeler Dec 18, 2018
c60ef11
Update version to 2.15.0
Woeler Dec 19, 2018
1abdfbd
Regenerate production assets
Woeler Dec 19, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Expand Up @@ -24,7 +24,7 @@
2.

#### Steps to test this PR:
1.
1. Load up [this PR](https://mautibox.com)
2.

#### List deprecations along with the new alternative:
Expand All @@ -33,4 +33,4 @@

#### List backwards compatibility breaks:
1.
2.
2.
18 changes: 12 additions & 6 deletions .travis.yml
@@ -1,19 +1,25 @@
dist: precise

language: php

services:
- mysql

php:
- 5.6.19
- 5.6
- 7.0
- 7.1
- 7.2

cache:
directories:
- $HOME/.composer/cache

before_install:
# Create mautictest database
- mysql -e 'CREATE DATABASE mautictest;'

# increase memory limit for all PHP processes
- echo "memory_limit=4G" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini

# turn off XDebug
- phpenv config-rm xdebug.ini || return

Expand All @@ -32,11 +38,11 @@ install:
script:

# Run PHPUnit
- bin/phpunit -d memory_limit=2048M --bootstrap vendor/autoload.php --configuration app/phpunit.xml.dist --fail-on-warning
- bin/phpunit --bootstrap vendor/autoload.php --configuration app/phpunit.xml.dist --fail-on-warning

# Run PHPSTAN analysis for PHP 7+
- if [[ ${TRAVIS_PHP_VERSION:0:3} != "5.6" ]]; then ~/.composer/vendor/phpstan/phpstan-shim/phpstan.phar analyse app/bundles/DashboardBundle app/bundles/ConfigBundle app/bundles/CampaignBundle app/bundles/WebhookBundle app/bundles/LeadBundle app/bundles/FormBundle; fi

# Check if the code standards weren't broken.
# Run it only on PHP 7.1 which should be the fastest. No need to run it for all PHP versions
- if [[ ${TRAVIS_PHP_VERSION:0:3} == "7.1" ]]; then bin/php-cs-fixer fix -v --dry-run --diff; fi
# Run it only on PHP 7.2 which should be the fastest. No need to run it for all PHP versions
- if [[ ${TRAVIS_PHP_VERSION:0:3} == "7.2" ]]; then bin/php-cs-fixer fix -v --dry-run --diff; fi
19 changes: 14 additions & 5 deletions app/AppKernel.php
Expand Up @@ -34,14 +34,14 @@ class AppKernel extends Kernel
*
* @const integer
*/
const MINOR_VERSION = 14;
const MINOR_VERSION = 15;

/**
* Patch version number.
*
* @const integer
*/
const PATCH_VERSION = 2;
const PATCH_VERSION = 0;

/**
* Extra version identifier.
Expand Down Expand Up @@ -92,12 +92,12 @@ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQ
$base = $request->getBaseUrl();
$prefix = '';
//check to see if the .htaccess file exists or if not running under apache
if ((strpos(strtolower($_SERVER['SERVER_SOFTWARE']), 'apache') === false
if (stripos($request->server->get('SERVER_SOFTWARE', ''), 'apache') === false
|| !file_exists(__DIR__.'../.htaccess')
&& strpos(
$base,
'index'
) === false)
) === false
) {
$prefix .= '/index.php';
}
Expand All @@ -110,6 +110,14 @@ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQ
$this->boot();
}

/*
* If we've already sent the response headers, and we have a session
* set in the request, set that as the session in the container.
*/
if (headers_sent() && $request->getSession()) {
$this->getContainer()->set('session', $request->getSession());
}

// Check for an an active db connection and die with error if unable to connect
if (!defined('MAUTIC_INSTALLER')) {
$db = $this->getContainer()->get('database_connection');
Expand Down Expand Up @@ -184,6 +192,7 @@ public function registerBundles()
new LightSaml\SymfonyBridgeBundle\LightSamlSymfonyBridgeBundle(),
new LightSaml\SpBundle\LightSamlSpBundle(),
new Ivory\OrderedFormBundle\IvoryOrderedFormBundle(),
new Noxlogic\RateLimitBundle\NoxlogicRateLimitBundle(),
// These two bundles do DI based on config, so they need to be loaded after config is declared in MauticQueueBundle
new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
new Leezy\PheanstalkBundle\LeezyPheanstalkBundle(),
Expand Down Expand Up @@ -374,7 +383,7 @@ public function getCacheDir()
{
$parameters = $this->getLocalParams();
if (isset($parameters['cache_path'])) {
$envFolder = (strpos($parameters['cache_path'], -1) != '/') ? '/'.$this->environment : $this->environment;
$envFolder = (substr($parameters['cache_path'], -1) != '/') ? '/'.$this->environment : $this->environment;

return str_replace('%kernel.root_dir%', $this->getRootDir(), $parameters['cache_path'].$envFolder);
} else {
Expand Down
9 changes: 9 additions & 0 deletions app/AppTestKernel.php
@@ -1,5 +1,14 @@
<?php

/*
* @copyright 2017 Mautic Contributors. All rights reserved
* @author Mautic
*
* @link http://mautic.org
*
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/

class AppTestKernel extends AppKernel
{
/**
Expand Down
10 changes: 10 additions & 0 deletions app/bundles/ApiBundle/Config/config.php
Expand Up @@ -115,6 +115,12 @@
'mautic.api.model.client',
],
],
'mautic.api.rate_limit_generate_key.subscriber' => [
'class' => 'Mautic\ApiBundle\EventListener\RateLimitGenerateKeySubscriber',
'arguments' => [
'mautic.helper.core_parameters',
],
],
],
'forms' => [
'mautic.form.type.apiclients' => [
Expand Down Expand Up @@ -183,5 +189,9 @@
'api_oauth2_access_token_lifetime' => 60,
'api_oauth2_refresh_token_lifetime' => 14,
'api_batch_max_limit' => 200,
'api_rate_limiter_limit' => 0,
'api_rate_limiter_cache' => [
'type' => 'file_system',
],
],
];
2 changes: 1 addition & 1 deletion app/bundles/ApiBundle/Controller/CommonApiController.php
Expand Up @@ -1220,7 +1220,7 @@ protected function processForm($entity, $parameters = null, $method = 'PUT')
*
* @return Response|array
*/
protected function returnError($msg, $code = Codes::HTTP_OK, $details = [])
protected function returnError($msg, $code = Codes::HTTP_INTERNAL_SERVER_ERROR, $details = [])
{
if ($this->get('translator')->hasId($msg, 'flashes')) {
$msg = $this->get('translator')->trans($msg, [], 'flashes');
Expand Down
@@ -0,0 +1,57 @@
<?php

/*
* @copyright 2014 Mautic Contributors. All rights reserved
* @author Mautic
*
* @link http://mautic.org
*
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/

namespace Mautic\ApiBundle\EventListener;

use Mautic\CoreBundle\EventListener\CommonSubscriber;
use Mautic\CoreBundle\Helper\CoreParametersHelper;
use Noxlogic\RateLimitBundle\Events\GenerateKeyEvent;
use Noxlogic\RateLimitBundle\Events\RateLimitEvents;

/**
* Class RateLimitGenerateKeySubscriber.
*/
class RateLimitGenerateKeySubscriber extends CommonSubscriber
{
/**
* @var CoreParametersHelper
*/
protected $coreParametersHelper;

/**
* RateLimitGenerateKeySubscriber constructor.
*
* @param \Mautic\CoreBundle\Helper\CoreParametersHelper $coreParametersHelper
*/
public function __construct(CoreParametersHelper $coreParametersHelper)
{
$this->coreParametersHelper = $coreParametersHelper;
}

/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
RateLimitEvents::GENERATE_KEY => ['onGenerateKey', 0],
];
}

/**
* @param \Noxlogic\RateLimitBundle\Events\GenerateKeyEvent $event
*/
public function onGenerateKey(GenerateKeyEvent $event)
{
$suffix = $this->coreParametersHelper->getParameter('site_url');
$event->addToKey($suffix);
}
}
20 changes: 20 additions & 0 deletions app/bundles/ApiBundle/Form/Type/ConfigType.php
Expand Up @@ -89,6 +89,26 @@ public function buildForm(FormBuilderInterface $builder, array $options)
],
]
);

$builder->add(
'api_rate_limiter_limit',
'number',
[
'label' => 'mautic.api.config.form.api.rate_limiter_limit',
'attr' => [
'tooltip' => 'mautic.api.config.form.api.rate_limiter_limit.tooltip',
'class' => 'form-control',
'data-show-on' => '{"config_apiconfig_api_enabled_1":"checked"}',
],
'constraints' => [
new NotBlank(
[
'message' => 'mautic.core.value.required',
]
),
],
]
);
}

/**
Expand Down
2 changes: 2 additions & 0 deletions app/bundles/ApiBundle/Translations/en_US/messages.ini
Expand Up @@ -60,3 +60,5 @@ mautic.core.error.badrequest="Bad request."
mautic.api.error.api.disabled="API disabled. You need to enable the API in the API settings page of your Mautic account."
mautic.api.error.basic.auth.disabled="Basic Auth disabled. You need to enable HTTP basic auth in the API settings page of your Mautic account."
mautic.api.error.basic.auth.invalid.credentials="Authorization denied, invalid credentials."
mautic.api.config.form.api.rate_limiter_limit="API request limit (requests per hours)"
mautic.api.config.form.api.rate_limiter_limit.tooltip="The number of allowed API calls per hour for the whole instance (sum of all API keys). Set it to 0 to remove the limit."
2 changes: 1 addition & 1 deletion app/bundles/AssetBundle/Assets/js/asset.js
@@ -1,6 +1,6 @@
//AssetBundle
Mautic.assetOnLoad = function (container) {
if (typeof mauticAssetUploadEndpoint !== 'undefined' && mQuery('div#dropzone').length) {
if (typeof mauticAssetUploadEndpoint !== 'undefined' && typeof Mautic.assetDropzone == 'undefined' && mQuery('div#dropzone').length) {
Mautic.initializeDropzone();
}
};
Expand Down
20 changes: 20 additions & 0 deletions app/bundles/AssetBundle/Entity/AssetRepository.php
Expand Up @@ -11,6 +11,7 @@

namespace Mautic\AssetBundle\Entity;

use Doctrine\ORM\NoResultException;
use Doctrine\ORM\Tools\Pagination\Paginator;
use Mautic\CoreBundle\Entity\CommonRepository;

Expand Down Expand Up @@ -211,4 +212,23 @@ public function upDownloadCount($id, $increaseBy = 1, $unique = false)

$q->execute();
}

/**
* @param int $categoryId
*
* @return Asset
*
* @throws NoResultException
*/
public function getLatestAssetForCategory($categoryId)
{
$q = $this->createQueryBuilder($this->getTableAlias());
$q->where($this->getTableAlias().'.category = :categoryId');
$q->andWhere($this->getTableAlias().'.isPublished = TRUE');
$q->setParameter('categoryId', $categoryId);
$q->orderBy($this->getTableAlias().'.dateAdded', 'DESC');
$q->setMaxResults(1);

return $q->getQuery()->getSingleResult();
}
}
Expand Up @@ -11,6 +11,7 @@

namespace Mautic\AssetBundle\Form\Type;

use Mautic\CategoryBundle\Form\Type\CategoryListType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

Expand All @@ -25,18 +26,31 @@ class FormSubmitActionDownloadFileType extends AbstractType
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('asset', 'asset_list', [
$builder->add('asset', AssetListType::class, [
'expanded' => false,
'multiple' => false,
'label' => 'mautic.asset.form.submit.assets',
'label_attr' => ['class' => 'control-label'],
'empty_value' => false,
'empty_value' => 'mautic.asset.form.submit.latest.category',
'required' => false,
'attr' => [
'class' => 'form-control',
'tooltip' => 'mautic.asset.form.submit.assets_descr',
],
]);

$builder->add('category', CategoryListType::class, [
'label' => 'mautic.asset.form.submit.latest.category',
'label_attr' => ['class' => 'control-label'],
'empty_value' => false,
'required' => false,
'bundle' => 'asset',
'return_entity' => false,
'attr' => [
'class' => 'form-control',
'tooltip' => 'mautic.asset.form.submit.latest.category_descr',
],
]);
}

/**
Expand Down
24 changes: 16 additions & 8 deletions app/bundles/AssetBundle/Helper/FormSubmitHelper.php
Expand Up @@ -11,6 +11,7 @@

namespace Mautic\AssetBundle\Helper;

use Doctrine\ORM\NoResultException;
use Mautic\AssetBundle\Entity\Asset;
use Mautic\CoreBundle\Factory\MauticFactory;
use Mautic\FormBundle\Entity\Action;
Expand All @@ -32,20 +33,27 @@ class FormSubmitHelper
public static function onFormSubmit(Action $action, MauticFactory $factory)
{
$properties = $action->getProperties();
$assetId = $properties['asset'];
$categoryId = isset($properties['category']) ? $properties['category'] : null;
$model = $factory->getModel('asset');
$asset = null;

$assetId = $properties['asset'];

/** @var \Mautic\AssetBundle\Model\AssetModel $model */
$model = $factory->getModel('asset');
$asset = $model->getEntity($assetId);
$form = $action->getForm();
if (null !== $assetId) {
$asset = $model->getEntity($assetId);
} elseif (null !== $categoryId) {
try {
$asset = $model->getRepository()->getLatestAssetForCategory($categoryId);
} catch (NoResultException $e) {
$asset = null;
}
}

//make sure the asset still exists and is published
if ($asset != null && $asset->isPublished()) {
if ($asset !== null && $asset->isPublished()) {
//register a callback after the other actions have been fired
return [
'callback' => '\Mautic\AssetBundle\Helper\FormSubmitHelper::downloadFile',
'form' => $form,
'form' => $action->getForm(),
'asset' => $asset,
'message' => (isset($properties['message'])) ? $properties['message'] : '',
];
Expand Down
2 changes: 2 additions & 0 deletions app/bundles/AssetBundle/Translations/en_US/messages.ini
Expand Up @@ -50,6 +50,8 @@ mautic.asset.filename.original="Original filename"
mautic.asset.filename.remote="Remote filename"
mautic.asset.form.submit.assets="Asset"
mautic.asset.form.submit.assets_descr="Choose the asset to be downloaded."
mautic.asset.form.submit.latest.category="Use the latest asset from the category"
mautic.asset.form.submit.latest.category_descr="If 'Use latest file from the category' Asset option is selected then the action will download the latest asset from the selected category."
mautic.asset.graph.line.downloads="Downloads"
mautic.asset.graph.pie.statuses="Download HTTP statuses"
mautic.asset.no_audio_support="Your browser does not support audio."
Expand Down