Compare commits

...

185 Commits

Author SHA1 Message Date
Vlad
d2b41a5b90 - Bumps up release version to 3.0.0-beta.10
- Updates changelog
2016-12-27 17:29:42 -05:00
mrcasual
71db3e569d Merge pull request #759 from mailpoet/deleted_lists_fix
Show deleted lists in newsletter listings [MAILPOET-489]
2016-12-27 11:26:59 -05:00
Alexey Stoletniy
9a8f028a01 Fix code style [MAILPOET-489] 2016-12-27 19:16:18 +03:00
Alexey Stoletniy
2c5e73305a Show deleted lists in newsletter listings [MAILPOET-489] 2016-12-27 13:13:05 +03:00
stoletniy
90e7026355 Merge pull request #739 from mailpoet/archives_shortcode_fix
Fixes archives shortcode and ability to manage subscription/unsubscribe [MAILPOET-737]
2016-12-27 09:39:15 +03:00
Vlad
d63ab6a927 - Uses newsletter hash over id when looking for a newsletter 2016-12-26 19:42:00 -05:00
mrcasual
e5cf57e4f8 Merge pull request #756 from mailpoet/save_before_send_preview
Save newsletter before sending preview [MAILPOET-702]
2016-12-25 16:17:41 -05:00
Vlad
6beada63de - Allows administrators to preview all newsletters
- Allows non-administrators to preview newsletters only when newsletter
hash is specified
2016-12-25 16:07:33 -05:00
stoletniy
6699b52184 Merge pull request #758 from mailpoet/return_path_implementation
Implements return path for SMTP/PHPMail/AmazonSES [MAILPOET-761]
2016-12-23 19:32:08 +03:00
Vlad
c651a8bbe8 - Implements return path for SMTP/PHPMail/AmazonSES 2016-12-23 11:09:10 -05:00
stoletniy
4a171dca2d Merge pull request #757 from mailpoet/date_fix
Fixes date formatting [MAILPOET-759]
2016-12-23 15:20:10 +03:00
Vlad
f821a60a2c - Removes open tracking code URL when newsletter is previewed 2016-12-22 22:58:43 -05:00
mrcasual
24a3866e2a Merge pull request #755 from mailpoet/svn_publish_improve
Improve SVN publish command [MAILPOET-758]
2016-12-22 21:14:34 -05:00
Vlad
fc54f31d3d - Prevents viewing newsletters if subscriber does not exist and token
does not match
2016-12-22 21:13:21 -05:00
Vlad
616883ed63 - Fixes date formatting 2016-12-22 15:29:00 -05:00
Alexey Stoletniy
b6ce513927 Save newsletter before sending preview [MAILPOET-702] 2016-12-22 21:56:34 +03:00
mrcasual
456152b5cb Merge pull request #753 from mailpoet/bounced_option_on_subscription_page
Display 'bounced' option on subscription page only if the user is bounced…
2016-12-22 09:34:00 -05:00
stoletniy
0be790971a Merge pull request #754 from mailpoet/utf8_fix
Removes setting DB character set to utf8 [MAILPOET-757]
2016-12-22 10:27:03 +03:00
Alexey Stoletniy
e255484bc8 Quote path in awk command for Windows compatibility [MAILPOET-758] 2016-12-22 10:16:15 +03:00
Alexey Stoletniy
fc53aca31d Remove database dependency for SVN publish task [MAILPOET-758] 2016-12-22 10:04:28 +03:00
Vlad
31116a7cf6 - Removes setting DB character set to utf8 2016-12-21 18:21:36 -05:00
Alexey Stoletniy
ee0c824126 Add form select block unit test 2016-12-21 21:22:52 +03:00
Alexey Stoletniy
9ee66160ec Display 'bounced' option on subscription page only if user is bounced and make it disabled [MAILPOET-754] 2016-12-21 21:04:28 +03:00
Alexey Stoletniy
bc91b12cf3 Bump up release version to 3.0.0-beta.9 2016-12-20 19:39:15 +03:00
stoletniy
457c43cd77 Merge pull request #752 from mailpoet/mysql_fix
MySQL configuration fix [MAILPOET-755]
2016-12-20 19:14:52 +03:00
Vlad
949d6033d7 - Fixes DB configuration being partially set 2016-12-20 10:14:04 -05:00
Vlad
cad6391fc6 - Updates the format of db timezone offset to two-digit hours and minutes 2016-12-20 10:13:11 -05:00
Vlad
e5e5e7b426 - Fixes preview of unsent post notifications 2016-12-19 19:19:51 -05:00
Vlad
9095482af2 - Updates unit tests 2016-12-18 23:24:58 -05:00
Vlad
9698cf2d2e - Optimizes ViewInBrowser router endpoint
- Optimizes ViewInBrowser class
- Optimizes and updates shortcode link category to use the refactored
  getViewInBrowserUrl() method
- Updates Shortcodes to use the refactored getViewInBrowserUrl() method
2016-12-18 23:24:57 -05:00
Vlad
707afc2ae0 - Adds a new method to create a URL data object as a numeric array instead
of associative, thus reducing the size of the object
- Adds a new method to convert numeric URL data object array into associative array
- Preserves backward compatibility with previous MP3 Beta versions by checking if the
  URL data object is already an associative array
- Adds different types of newsletter display
2016-12-18 23:24:50 -05:00
Vlad
3b795a3e58 - Prevents deleted newsletters from showing up in archives
- Adds a relationship to the sending queue table
- Resets hash on newsletter duplication and notification history creation
- Updates hash generation to use random string instead of newsletter id
2016-12-18 23:08:08 -05:00
Vlad
062f849fc8 - Isolates shortcodes regex into a class method
- Adds a new method to create a URL data object as a numeric array instead
  of associative, thus reducing the size of the object
- Adds a new method to convert numeric URL data object array into associative
  array
- Preserves backward compatibility with previous MP3 Beta versions
  by checking if the URL data object is already an associative array
2016-12-18 23:08:08 -05:00
Vlad
98c6c29716 - Limits the length of subscriber token to allow for smaller URL data
objects
2016-12-18 23:08:07 -05:00
Vlad
b4da3ecfb3 - Updates post processing filter naming convention
- Allows returning of text or html rendered body from the renderer
2016-12-18 23:08:07 -05:00
Vlad
709f45941a - Allows returning of text or html rendered body from the sending queue
model
2016-12-18 23:08:07 -05:00
Vlad
9ac4c3de72 - Adds new "hash" column to the newsletters table
- Updates newsletter model to automatically generate hash when saving
  newsletter
- Adds new getByHash method to the newsletter model
2016-12-18 23:08:07 -05:00
Vlad
eee22227b3 - Removes unused class import
- Fixes newsletter URL generation in archive shortcode
- Disables generation of subscription management/unsubscribe/view in
  browser shortcodes when newsletter is previewed
2016-12-18 23:08:07 -05:00
Tautvidas Sipavičius
edcce542c3 Merge pull request #747 from mailpoet/svn_push_command
Add a command to push new release to WP SVN [MAILPOET-673]
2016-12-16 14:50:37 +02:00
mrcasual
a354a380ba Merge pull request #749 from mailpoet/change_dup_import_msg
Change no subscribers added/updated string [MAILPOET-741]
2016-12-16 07:46:49 -05:00
stoletniy
54eb667654 Merge pull request #751 from mailpoet/makepot
Makepot task fix [MAILPOET-742]
2016-12-16 15:24:58 +03:00
Tautvidas Sipavičius
10207112bc Fix regex matching __() function 2016-12-16 12:23:06 +02:00
mrcasual
892eea238f Merge pull request #750 from mailpoet/fix_bounce_api_response_code
Change bounce API OK response code from 201 to 200 [MAILPOET-747]
2016-12-15 17:24:09 -05:00
Tautvidas Sipavičius
e6bb1666ee Remove obsolete wysija-newsletters gettext domain 2016-12-15 20:24:04 +02:00
Tautvidas Sipavičius
2be9985d20 Fix finding __() and _n() i18n function calls 2016-12-15 20:24:04 +02:00
Tautvidas Sipavičius
f4b7acca1e Fix parsing function call arguments when arg strings contain commas 2016-12-15 20:24:04 +02:00
Alexey Stoletniy
de9d3655f0 Change bounce API OK response code from 201 to 200 [MAILPOET-747] 2016-12-15 19:49:39 +03:00
Alexey Stoletniy
dfa13726e7 Add force mode to svn:publish command, add svn:checkout command 2016-12-15 16:20:12 +03:00
Tautvidas Sipavičius
61ab583030 Merge pull request #748 from mailpoet/bump_wp_tested_to_4.7
Bump 'Tested up to' and 'Requires at least' versions [MAILPOET-744]
2016-12-15 12:20:19 +02:00
Alexey Stoletniy
6954501915 Change no subscribers added/updated string [MAILPOET-741] 2016-12-15 12:02:06 +03:00
Alexey Stoletniy
45a8103322 Bump 'Tested up to' and 'Requires at least' versions [MAILPOET-744] 2016-12-15 11:52:21 +03:00
stoletniy
c4896f4662 Merge pull request #746 from mailpoet/ALC_title_alignment
Fixes alignment not working for ALC titles [MAILPOET-734]
2016-12-15 10:59:23 +03:00
Alexey Stoletniy
71711b4a0d Add a command to push new release to WP SVN 2016-12-14 18:24:41 +03:00
Vlad
2634b606f6 - Fixes ALC transformer class to append style tags with semicolon 2016-12-13 19:32:50 -05:00
Tautvidas Sipavičius
0aa48b9121 Bump up release version to 3.0.0-beta.8 2016-12-13 14:28:36 +02:00
stoletniy
1157cc8b9a Merge pull request #741 from mailpoet/ci_email_tests
Enables email sending tests in CI [MAILPOET-681]
2016-12-13 14:53:47 +03:00
mrcasual
88599963e0 Merge pull request #743 from mailpoet/vendor_conflict
Add dependency checking requirement [MAILPOET-690]
2016-12-12 15:24:56 -05:00
Tautvidas Sipavičius
57706dc1b3 Merge pull request #745 from mailpoet/premium_plugin
Add action to notify 3rd party plugins that MP is initialized
2016-12-12 15:59:28 +02:00
Tautvidas Sipavičius
694402e9f2 Merge pull request #744 from mailpoet/changelog_from_readme_on_update_page
Display changelog from readme.txt on Update page [MAILPOET-708]
2016-12-12 14:39:24 +02:00
Alexey Stoletniy
891239bf4e Check readme file is readable before trying to parse it 2016-12-12 15:31:10 +03:00
Jonathan Labreuille
232494e1a2 added 'mailpoet_initialized' action so that 3rd party plugin can check if mp is loaded 2016-12-12 11:28:38 +01:00
Alexey Stoletniy
4ae55230da Display changelog from readme.txt on Update page [MAILPOET-708] 2016-12-12 10:04:36 +03:00
Tautvidas Sipavičius
eda4a9edcc Fix regex to work on windows and match only mailpoet folder as valid 2016-12-09 23:20:48 +02:00
Tautvidas Sipavičius
5fb699fd5b Remove trailing slash to support searches in Windows 2016-12-09 23:07:55 +02:00
Tautvidas Sipavičius
7c5e0212ad Fix calling a method on an undefined variable 2016-12-09 22:44:43 +02:00
Tautvidas Sipavičius
44a77e097b Escaped path when used in regex pattern 2016-12-09 22:41:44 +02:00
Tautvidas Sipavičius
22fd9e31f7 Fix variable name typo 2016-12-09 18:12:22 +02:00
Tautvidas Sipavičius
bbe3d48ec1 Add dependency checking to prevent conflicts with other plugins
MAILPOET-690
2016-12-09 18:05:19 +02:00
mrcasual
449978d7c1 Merge pull request #742 from mailpoet/mysql_group_fix
fix sql errors with mysql 5.6 & ONLY_FULL_GROUP_BY mode [MAILPOET-739]
2016-12-09 09:14:22 -05:00
mrcasual
0535e1eaeb Merge pull request #737 from mailpoet/sending_service_bounce_sync
Add bounce synchronization with MailPoet Sending Service [MAILPOET-696]
2016-12-08 21:47:55 -05:00
Jonathan Labreuille
4dfe4e4997 fix sql errors with mysql 5.6 & ONLY_FULL_GROUP_BY mode 2016-12-08 18:38:03 +01:00
Tautvidas Sipavičius
33a184fc4a Store emails sent during tests in test reports as an artifact 2016-12-08 18:19:50 +02:00
Tautvidas Sipavičius
19b34ed838 Add a fake sendmail mailer to enable sending tests in CI 2016-12-08 17:57:21 +02:00
Tautvidas Sipavičius
ca17e0c4da Merge pull request #740 from mailpoet/blockquote_rendering_fix
Fixes rendering of non-paragraph elements inside blockquote [MAILPOET-736]
2016-12-08 13:07:57 +02:00
Jonathan Labreuille
347e491865 Merge pull request #738 from mailpoet/asset_cache_breaker
Add cache breaker query string to plugin static asset URLs [MAILPOET-713]
2016-12-08 10:51:02 +01:00
Vlad
59b6877675 - Fixes non-paragraph elements inside blockquotes note being rendered
- Updates blockquote table width to 100% and allows text alignment
- Updates unit tests
2016-12-07 20:50:07 -05:00
Tautvidas Sipavičius
6728203672 Add cache breaker query string to plugin static asset URLs
MAILPOET-713
2016-12-07 16:22:53 +02:00
Tautvidas Sipavičius
058ba53622 Bump up release version 2016-12-07 12:26:29 +02:00
Alexey Stoletniy
8a1450d7d6 Add Mock API class to unit tests 2016-12-07 10:51:38 +03:00
Alexey Stoletniy
49f2b147be Add fixes for MySQL strict mode 2016-12-07 10:31:38 +03:00
Alexey Stoletniy
8f3b2e6c0b Fix code style 2016-12-06 23:06:45 +03:00
Alexey Stoletniy
baf0d374ae Add bounce synchronization with MailPoet Sending Service [MAILPOET-696] 2016-12-06 22:48:36 +03:00
Jonathan Labreuille
465665271d Merge pull request #736 from mailpoet/post_notification_history_fix
Fixes post notification history listing [MAILPOET-729]
2016-12-06 12:59:54 +01:00
mrcasual
663f39d749 Merge pull request #735 from mailpoet/alc_boolean_fix
Fix displaying dividers in ALC blocks MAILPOET-721
2016-12-05 22:37:42 -05:00
Vlad
62349900b9 - Fixes post notification listing not displaying because of
undefined value passed to the `renderQueueStatus` method
2016-12-05 22:02:01 -05:00
stoletniy
9ccf2a9294 Merge pull request #733 from mailpoet/newsletter_preview_send_fix
Render subscriber shortcodes when sending a newsletter preview [MAILPOET-725]
2016-12-05 21:02:38 +03:00
Tautvidas Sipavičius
b2f662c1d5 Fix displaying dividers in ALC blocks MAILPOET-721 2016-12-05 19:45:46 +02:00
Vlad
43b23994a9 - Updates function arguments 2016-12-05 12:15:24 -05:00
Vlad
9708019ab6 - Returns false when subscriber is defined but not an object
- Updates unit tests
2016-12-05 11:48:20 -05:00
Tautvidas Sipavičius
8819d9154a Merge pull request #734 from mailpoet/db_update_check
handle db update [MAILPOET-720]
2016-12-05 18:27:29 +02:00
Tautvidas Sipavičius
5e23aacdca Merge pull request #730 from mailpoet/sending_queue_worker_update
Stop sending when newsletter is trashed [MAILPOET-716]
2016-12-05 17:27:42 +02:00
Vlad
398109dcf7 - Runs mailer and cron execution limit checks at the same and in 3
locations: before processing, after each send operations and after queue
  processing
- Fixes an issue with sending continuing when newsletter is trashed
- Updates unit tests
2016-12-05 09:37:18 -05:00
Tautvidas Sipavičius
b7c1594cf6 Merge pull request #732 from mailpoet/import_export_select2_fix
Import/export dependency injection of Select2 [MAILPOET-723]
2016-12-05 16:25:29 +02:00
Jonathan Labreuille
3d24f0c77b handle db update 2016-12-05 13:14:12 +01:00
stoletniy
13001008c4 Merge pull request #731 from mailpoet/sending_restart_update
Prevents sent newsletters from being paused/updates error messages [MAILPOET-718] [MAILPOET-719]
2016-12-05 13:54:34 +03:00
Vlad
4b8caccb46 - Fixes subscriber shortcodes not being rendered when sending a preview
newsletter
2016-12-04 19:48:25 -05:00
Vlad
04ae6efaf6 - Updates connection/mailer error messages 2016-12-04 17:22:20 -05:00
Vlad
98812834f6 - Uses dependency injection for Select2 library 2016-12-03 19:18:17 -05:00
mrcasual
732ea59e34 Merge pull request #727 from mailpoet/import_step2_subs_count_fix
Fix import step 2 list selection box tallying unconfirmed subscribers… [MAILPOET-709]
2016-12-02 11:20:18 -05:00
Vlad
9b9e31fcc8 - Prevents sent newsletters' status from changing to "paused" when
sending error is displayed
2016-12-02 10:39:29 -05:00
stoletniy
9b44becc7d Merge pull request #729 from mailpoet/mailer_endpoint_update
Fixes mailer's error message not being displayed in Settngs [MAILPOET-715]
2016-12-01 10:49:36 +03:00
Vlad
82e153a2e8 - Fixes mailer's error message not being displayed 2016-11-30 13:31:02 -05:00
stoletniy
dc981b23e4 Merge pull request #728 from mailpoet/mailer_tests_update
Updates mailer methods unit tests [MAILPOET-714]
2016-11-30 21:28:45 +03:00
Vlad
eb3f872dc6 - Updates mailer unit test 2016-11-30 12:39:27 -05:00
stoletniy
3f9b41f042 Merge pull request #725 from mailpoet/import_fix
Fixes subscribers not being added to list(s) upon import [MAILPOET-712]
2016-11-30 19:15:59 +03:00
Vlad
9e4762cbd7 - Updates mailer methods unit tests 2016-11-30 10:59:34 -05:00
Vlad
249824b83c - Updates unit test 2016-11-30 10:54:07 -05:00
Tautvidas Sipavičius
0b89a6d2ff Merge pull request #726 from mailpoet/cron_blocking_requests
Fixes Cron on hosts that don't support non-blocking HTTP requests [MAILPOET-692]
2016-11-30 14:17:13 +02:00
Alexey Stoletniy
b074b01b9f Fix import step 2 list selection box tallying unconfirmed subscribers (item B from #476)
Segments::getSegmentsForImport() was aliased to Segments::getSegmentsWithSubscriberCount()
2016-11-30 12:21:08 +03:00
Vlad
9a0bb52860 - Fixes subscribers not being added to list(s) upon import 2016-11-29 15:28:56 -05:00
Vlad
bf36deccb2 - Enables blocking requests for Cron and fixes an issue on hosts that
don't support non-blocking requests
2016-11-29 15:03:51 -05:00
Jonathan Labreuille
f77e24105d Merge pull request #709 from mailpoet/sending_restart
Sending retry/pause/restart [MAILPOET-653]
2016-11-29 13:51:53 +01:00
Tautvidas Sipavičius
f90ba712ee Bump up release version to 3.0.0-beta.6 2016-11-29 14:18:40 +02:00
Tautvidas Sipavičius
c658778476 Merge pull request #723 from mailpoet/bounced_subscribers
Add 'Bounced' status to subscribers [MAILPOET-684]
2016-11-29 12:47:41 +02:00
Alexey Stoletniy
c221e52cc4 Remove a temp file [MAILPOET-684] 2016-11-29 13:39:11 +03:00
stoletniy
556803af5d Merge pull request #724 from mailpoet/scheduler_and_queue_priority_update
Scheduler and queue priority update [MAILPOET-706] [MAILPOET-707]
2016-11-29 13:12:52 +03:00
Vlad
5bc17f5e76 - Saves welcome emails with high priority
- Fixes welcome emails not being sent to WP users
- Updates unit tests
2016-11-28 18:49:35 -05:00
Vlad
fe537a0445 - Adds a missing class import 2016-11-28 12:20:22 -05:00
Vlad
08ec4e83c8 - Adds method to clear previous errors
- Updates unit tests
- Rebases master
2016-11-28 12:20:13 -05:00
Vlad
e72a8efbd4 - Sorts queues to process according to their priority in ascending manner 2016-11-28 12:04:21 -05:00
Vlad
c49d96d63a - Adds piority constants
- Sets medmium priority as default when none is specified
2016-11-28 12:03:09 -05:00
Alexey Stoletniy
36b935b9ae Add 'Bounced' status to subscribers [MAILPOET-684]
Fix SubscriberTest->testItHasGroupFilter() making only one of four assertions due to lack of data.
Fix a small issue with Import. Unexpected values for the status field were converted to 'unconfirmed' rather than 'subscribed' due to non-strict comparison in in_array(). This hindered 'bounced' status import as well.
2016-11-28 19:37:47 +03:00
Jonathan Labreuille
f1985f7e81 refresh listing after resuming mailer sending 2016-11-28 09:50:32 -05:00
Vlad
8c14df6c1f - Rebases master and updates method names 2016-11-28 09:50:32 -05:00
Vlad
181c0cab36 - Displays notice only when sending has been paused 2016-11-28 09:50:32 -05:00
Jonathan Labreuille
2a04c3c054 refactored mailer mixin - removed notices.jsx 2016-11-28 09:50:32 -05:00
Jonathan Labreuille
80efc3c12d Added callback afterGetItems on Listings
Updated MP Notice to allow reuse of notices (by id)
Updated newsletters endpoint's listing method to include mta_log & mta_method in response
Updated all newsletter listings in order to dynamically display mailer error
2016-11-28 09:50:32 -05:00
Vlad
8b96806b11 - Updates variable names 2016-11-28 09:50:32 -05:00
Vlad
a2f7fbac33 - Checks window parameters
- Defines constants in main components and passes them to
  subcomponents/mixins
2016-11-28 09:50:32 -05:00
Vlad
981cb91a13 - Adds space 2016-11-28 09:50:32 -05:00
Vlad
89545ba104 - Adds unit tests 2016-11-28 09:50:32 -05:00
Vlad
709b76d01e - Updates/adds translations 2016-11-28 09:50:32 -05:00
Vlad
da2d6dd405 - Updates newsletter listings components to render notices 2016-11-28 09:50:32 -05:00
Vlad
28f5375609 - Adds new component to display notices in newsletter listings
- Displays sending error notice if sending has been globally paused
2016-11-28 09:50:32 -05:00
Vlad
37a259f73b - Displays "paused" status for all newsletters if sending is paused
globally
- Adds new mixin to globally restart sending
2016-11-28 09:50:32 -05:00
Vlad
cdb3b94cbd - Updates mailer endpoint to handle sending restart 2016-11-28 09:50:32 -05:00
Vlad
72f696e834 - Removes unused logic to deal with "failed" subscribers
- Updates sending queue worker to handle new mailer response format
2016-11-28 09:50:32 -05:00
Vlad
57dff5ff00 - Corrects code comments
- Resets mailer log on each run
2016-11-28 09:50:32 -05:00
Vlad
90a0061233 - Updates mailer log to record error messages, track retry attempts and
pause sending
2016-11-28 09:50:32 -05:00
Vlad
2955b6d5a0 - Clarifies const values 2016-11-28 09:50:32 -05:00
Vlad
1d03482463 - Updates API endpoint with to handle the new mailer response format 2016-11-28 09:50:32 -05:00
Vlad
d1def923f8 - Enables error response in newsletter preview if sending fails 2016-11-28 09:50:32 -05:00
Vlad
8a278360f4 - Adds methods to format mailer send/connection succes & error results
- Updates all mailing methods to return true on success and error message
  on failure
2016-11-28 09:50:32 -05:00
Vlad
5d12de8ec0 - Removes unused mailing methods 2016-11-28 09:47:07 -05:00
Tautvidas Sipavičius
daa36c833f Merge pull request #722 from mailpoet/mailer_sender_and_subscriber_unicode_support
Fix for unicode characters in to/reply-to/from fields [MAILPOET-705]
2016-11-28 16:02:02 +02:00
Vlad
a9e02f745f - Encodes non-ASCII from/reply-to/to addresses as per RFC 2047 2016-11-28 08:56:14 -05:00
Tautvidas Sipavičius
a04f5a2d25 Merge pull request #717 from mailpoet/import_fix
Fixes import of duplicate subscribers and whose column data is incomplete [MAILPOET-694]
2016-11-28 15:05:35 +02:00
Vlad
71fbc1a7b0 - Simplifies code that prepares subscriber custom field data for
creation/update
- Updates tests
2016-11-27 20:53:20 -05:00
Vlad
677060491d - Fixes an issue with unicode characters not rendering in from/reply-to/to
fields.
2016-11-25 15:34:55 -05:00
Tautvidas Sipavičius
03fec11947 Merge pull request #720 from mailpoet/renderer_update
Newsletter text version rendering warning [MAILPOET-704]
2016-11-25 16:26:02 +02:00
Tautvidas Sipavičius
a0817a1e97 Merge pull request #721 from mailpoet/amazon_ses_fix
Amazon SES sending fix [MAILPOET-698]
2016-11-25 16:00:49 +02:00
Vlad
1926b7ba29 - urlencodes POST data and fixes the "unable to determine service/operation
name to be authorized" error
2016-11-24 17:20:54 -05:00
Vlad
aec6d241e8 - Highlights chosen SES region in settings 2016-11-24 13:10:32 -05:00
Vlad
75602be304 - Converts special chars to HTML entities in subject
- Silences warnings from HTML->text renderer
2016-11-24 11:15:06 -05:00
mrcasual
299c922cef Merge pull request #719 from mailpoet/exporttest_windows_fix
Escape paths for regexes in ExportTest->testItCanConstruct() to make …
2016-11-24 09:01:26 -05:00
Alexey Stoletniy
29673d0799 Escape paths for regexes in ExportTest->testItCanConstruct() to make it pass on Windows 2016-11-24 16:23:11 +03:00
Tautvidas Sipavičius
7c236e6209 Merge pull request #718 from mailpoet/sending_worker_execution_enforcement
Enforces worker execution limit between each send operation [MAILPOET-697]
2016-11-24 12:22:04 +02:00
Vlad
8e438e1819 - Enforces worker execution limit between each send operation 2016-11-23 12:02:48 -05:00
Vlad
0c8cc27ea2 - Updates MailChimp API key regex 2016-11-22 12:44:58 -05:00
Vlad
6f49201393 - Extends save() method to convert emails to lowercase format 2016-11-22 12:13:13 -05:00
Vlad
7bf9e8b06e - Removes unused method 2016-11-22 12:12:51 -05:00
Tautvidas Sipavičius
96eaafe012 Bump up release version to 3.0.0-beta.5 2016-11-22 14:21:16 +02:00
Tautvidas Sipavičius
9a82e718ce Merge pull request #715 from mailpoet/queue_delete_update
Sending queue deletes parent newsletter [MAILPOET-683]
2016-11-22 13:49:08 +02:00
Tautvidas Sipavičius
f9e4f3f584 Merge pull request #716 from mailpoet/autoload_fix
Checks for existence of autoload.php [MAILPOET-693]
2016-11-22 12:17:25 +02:00
Vlad
d8b1be9ccc - Deletes related custom fields when deleting subscriber
- Updates unit tests
2016-11-21 22:38:43 -05:00
Vlad
7c61fa2c81 - Fixes an issue where a subscriber with the same email but different case
variant is not considered unique
- Fixes an issue where an object of existing subscribers would not have
  the same number of data in each child array due to null values being
  removed
- Updates unit tests
2016-11-21 21:53:43 -05:00
Vlad
0af99c771e - Fixes 'get_userdata() function not found' error
- Tidies up format
2016-11-21 20:26:08 -05:00
Vlad
c5488571be - Removes unused class imports 2016-11-21 20:25:23 -05:00
Vlad
e0aeeb29d9 - Deletes post notification history record when no posts are found and
when sending queue record is deleted
- Reverts back changes to the model's delete() method
- Updates unit tests
2016-11-21 19:27:08 -05:00
Vlad
d5a9b84ca3 - Updates "tested up to" WP version
- Includes a check for missing autoloader and displays an error notice
2016-11-21 18:54:04 -05:00
Tautvidas Sipavičius
fd417d8d95 Merge pull request #712 from mailpoet/access_to_temp_folder
Restricts access to plugin's temp/cache folder [MAILPOET-643]
2016-11-21 20:10:39 +02:00
Vlad
0291c3a9a0 - Updates models' delete() method to delete parent newsletter
- Updates unit tests
2016-11-20 12:31:04 -05:00
mrcasual
fd6e6de547 Merge pull request #714 from mailpoet/ui_fixes
Admin UI fixes
2016-11-20 12:19:12 -05:00
Vlad
bf54eeb345 - Updates error messages and links to KB articles
- Adds polyfills for mb_string functions
- Aborts initialization if PDO extension is not found (critical
  requirement)
2016-11-20 12:14:27 -05:00
Tautvidas Sipavičius
697afcbeba Add wysija to the list of contributors in readme.txt 2016-11-18 14:00:22 +02:00
Tautvidas Sipavičius
5773fa7994 Losslessly optimize image assets with kraken.io MAILPOET-669 2016-11-18 13:48:52 +02:00
Tautvidas Sipavičius
b59785c4b6 Updated KB link text in MailChimp import MAILPOET-677 2016-11-18 13:09:20 +02:00
Tautvidas Sipavičius
fbf9f6f902 - Removed "beta" in superscript on welcome and update pages;
- Added "Get back to MailPoet" button on update page;
MAILPOET-678
2016-11-18 13:06:22 +02:00
Tautvidas Sipavičius
adc232fc3f Prevent MailPoet Page post type from showing up in menu MAILPOET-674 2016-11-18 12:56:06 +02:00
Jonathan Labreuille
e3c1ff6c8c Merge pull request #713 from mailpoet/editor_fixes
ALC block tool fixes [MAILPOET-676]
2016-11-18 11:39:53 +01:00
Tautvidas Sipavičius
77edd93965 - Prevent tools of ALC inner blocks from showing on hover MAILPOET-676;
- Fix overlay of ALC blocks to appear even if mouse hovers over its
  block tools;
2016-11-17 15:59:51 +02:00
Vlad
7d15c391ea - Adds new Requirements Checker class
- Updates Initializer to check requirements
2016-11-16 21:46:21 -05:00
Vlad
8fb29e2418 - Moves Env class's error handling to the Initializer class 2016-11-15 12:13:01 -05:00
Vlad
b348c350c0 - Adds expection handle to the main mailpoet script
- Throws exception when a temporary/cache folder can't be created
2016-11-15 11:41:09 -05:00
Vlad
54f6ab0c79 - Abstracts path creation logic
- Adds blank index.php to cache and temp folders
- Updates unit tests
- Extracts cache folder location from Renderer to Env class
- Implements #643
2016-11-14 21:03:26 -05:00
237 changed files with 3488 additions and 1254 deletions

8
.circle_ci/fake-sendmail.rb Executable file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/ruby
path = "/tmp"
Dir.mkdir(path) if !File.exists?(path)
File.open("#{path}/mailpoet-#{Time.now.to_f}.txt", "w") do |f|
sleep 5
f.puts ARGV.inspect
$stdin.each_line { |line| f.puts line }
end

View File

@@ -0,0 +1,3 @@
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = /home/ubuntu/mailpoet/.circle_ci/fake-sendmail.rb

View File

@@ -13,4 +13,6 @@ WP_TEST_MAILER_MAILPOET_API=""
WP_TEST_MAILER_SENDGRID_API=""
WP_TEST_MAILER_SMTP_HOST=""
WP_TEST_MAILER_SMTP_LOGIN=""
WP_TEST_MAILER_SMTP_PASSWORD=""
WP_TEST_MAILER_SMTP_PASSWORD=""
WP_SVN_USERNAME=""
WP_SVN_PASSWORD=""

3
.gitignore vendored
View File

@@ -17,4 +17,5 @@ tests/javascript/testBundles
assets/css/*.css
assets/js/*.js
.vagrant
lang
lang
.mp_svn

View File

@@ -128,3 +128,20 @@ _n()
- Handlebars.
You can use Twig i18n functions in Handlebars, just load your template from a Twig view.
# Publish
Before you run a publishing command, you need to:
1. Ensure there is an up-to-date local copy of MailPoet SVN repository in `.mp_svn` directory by running `./do svn:checkout`.
2. Have all your features merged in Git `master`, your `mailpoet.php` and `readme.txt` tagged with a new version.
3. Run `./build.sh` to produce a `mailpoet.zip` distributable archive.
Everything's ready? Then run `./do svn:publish`.
If the job goes fine, you'll get a message like this:
```
Go to '.mp_svn' and run 'svn ci -m "Release 3.0.0-beta.9"' to publish the
release
```
It's quite literal: you can review the changes to be pushed and if you're satisfied, run the suggested command to finish the release publishing process.
If you're confident, execute `./do svn:publish --force` and your release will be published to the remote SVN repository without manual intervention (automatically). For easier authentication you might want to set `WP_SVN_USERNAME` and `WP_SVN_PASSWORD` environment variables.

View File

@@ -99,15 +99,8 @@ class RoboFile extends \Robo\Tasks {
function makepot() {
return $this->_exec('./node_modules/.bin/grunt makepot'.
' --gruntfile '.__DIR__.'/tasks/makepot/makepot.js'.
' --base_path '.__DIR__
);
}
function pushpot() {
return $this->_exec('./node_modules/.bin/grunt pushpot'.
' --gruntfile '.__DIR__.'/tasks/makepot/makepot.js'.
' --base_path '.__DIR__
' --gruntfile='.__DIR__.'/tasks/makepot/makepot.js'.
' --base_path='.__DIR__
);
}
@@ -199,8 +192,120 @@ class RoboFile extends \Robo\Tasks {
);
}
function svnCheckout() {
return $this->_exec('svn co https://plugins.svn.wordpress.org/mailpoet/ .mp_svn');
}
function svnPublish($opts = ['force' => false]) {
$this->loadWPFunctions();
$svn_dir = ".mp_svn";
$plugin_data = get_plugin_data('mailpoet.php', false, false);
$plugin_version = $plugin_data['Version'];
$plugin_dist_name = sanitize_title_with_dashes($plugin_data['Name']);
$plugin_dist_file = $plugin_dist_name . '.zip';
$this->say('Publishing version: ' . $plugin_version);
// Sanity checks
if(!is_readable($plugin_dist_file)) {
$this->say("Failed to access " . $plugin_dist_file);
return;
} elseif(!file_exists($svn_dir . "/.svn/")) {
$this->say("$svn_dir/.svn/ dir not found, is it a SVN repository?");
return;
} elseif(file_exists($svn_dir . "/tags/" . $plugin_version)) {
$this->say("A SVN tag already exists: " . $plugin_version);
return;
}
$collection = $this->collection();
// Clean up tmp dirs if the previous run was halted
if(file_exists("$svn_dir/trunk_new") || file_exists("$svn_dir/trunk_old")) {
$this->taskFileSystemStack()
->stopOnFail()
->remove(array("$svn_dir/trunk_new", "$svn_dir/trunk_old"))
->addToCollection($collection);
}
// Extract the distributable zip to tmp trunk dir
$this->taskExtract($plugin_dist_file)
->to("$svn_dir/trunk_new")
->preserveTopDirectory(false)
->addToCollection($collection);
// Rename current trunk
if(file_exists("$svn_dir/trunk")) {
$this->taskFileSystemStack()
->rename("$svn_dir/trunk", "$svn_dir/trunk_old")
->addToCollection($collection);
}
// Replace old trunk with a new one
$this->taskFileSystemStack()
->stopOnFail()
->rename("$svn_dir/trunk_new", "$svn_dir/trunk")
->remove("$svn_dir/trunk_old")
->addToCollection($collection);
// Windows compatibility
$awkCmd = '{print " --force \""$2"\""}';
// Mac OS X compatibility
$xargsFlag = (stripos(PHP_OS, 'Darwin') !== false) ? '' : '-r';
$this->taskExecStack()
->stopOnFail()
// Set SVN repo as working directory
->dir($svn_dir)
// Remove files from SVN repo that have already been removed locally
->exec("svn st | grep ^! | awk '$awkCmd' | xargs $xargsFlag svn rm")
// Recursively add files to SVN that haven't been added yet
->exec("svn add --force * --auto-props --parents --depth infinity -q")
// Tag the release
->exec("svn cp trunk tags/$plugin_version")
->addToCollection($collection);
$result = $collection->run();
if($result->wasSuccessful()) {
// Run or suggest release command depending on a flag
$release_cmd = "svn ci -m \"Release $plugin_version\"";
if(!empty($opts['force'])) {
$svn_login = getenv('WP_SVN_USERNAME');
$svn_password = getenv('WP_SVN_PASSWORD');
if ($svn_login && $svn_password) {
$release_cmd .= " --username $svn_login --password $svn_password";
} else {
$release_cmd .= ' --force-interactive';
}
$result = $this->taskExecStack()
->stopOnFail()
->dir($svn_dir)
->exec($release_cmd)
->run();
} else {
$this->yell(
"Go to '$svn_dir' and run '$release_cmd' to publish the release"
);
}
}
return $result;
}
protected function loadEnv() {
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
}
protected function loadWPFunctions() {
$this->loadEnv();
define('ABSPATH', getenv('WP_TEST_PATH') . '/');
define('WPINC', 'wp-includes');
require_once(ABSPATH . WPINC . '/functions.php');
require_once(ABSPATH . WPINC . '/formatting.php');
require_once(ABSPATH . WPINC . '/plugin.php');
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
}
}

View File

@@ -9,12 +9,13 @@
background: rgba(255, 255, 255, 0)
transition: background .15s ease-out
&:hover
.mailpoet_automated_latest_content_block:hover &
background: rgba(255, 255, 255, 0.7)
cursor: pointer
.mailpoet_automated_latest_content_block_posts
overflow: auto
pointer-events: none
& > .mailpoet_block
width: 100%

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 779 B

BIN
assets/img/datepicker/animated-overlay.gif Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 985 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 B

After

Width:  |  Height:  |  Size: 140 B

BIN
assets/img/datepicker/ui-bg_flat_10_000000_40x100.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 B

After

Width:  |  Height:  |  Size: 83 B

BIN
assets/img/datepicker/ui-bg_glass_100_f6f6f6_1x400.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 85 B

BIN
assets/img/datepicker/ui-bg_glass_100_fdf5ce_1x400.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 139 B

BIN
assets/img/datepicker/ui-bg_glass_65_ffffff_1x400.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 74 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

After

Width:  |  Height:  |  Size: 161 B

BIN
assets/img/datepicker/ui-icons_222222_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/img/datepicker/ui-icons_228ef1_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/img/datepicker/ui-icons_454545_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
assets/img/datepicker/ui-icons_ef8c08_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/img/datepicker/ui-icons_ffd27a_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/img/datepicker/ui-icons_ffffff_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 925 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1016 B

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 767 B

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 634 B

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 835 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 B

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 909 B

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 KiB

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 KiB

After

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 79 KiB

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