From 0e2bf3bb888a4cf998ea22a3430d269f712a7b64 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 11:49:20 +0200 Subject: [PATCH 01/46] Focus the search input if the user clicks forward slash --- resources/views/header.blade.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/resources/views/header.blade.php b/resources/views/header.blade.php index a007d34328df..5f4f1d1ceaa6 100644 --- a/resources/views/header.blade.php +++ b/resources/views/header.blade.php @@ -351,6 +351,13 @@ }); @endif + // Focus the search input if the user clicks forward slash + $('body').keypress(function(event) { + if (event.which == 47) { + showSearch(); + } + }); + }); From ee516cb327abfba220cc4f9f54f761885ef21929 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 12:12:39 +0200 Subject: [PATCH 02/46] Combined search and history in navbar --- resources/views/header.blade.php | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/resources/views/header.blade.php b/resources/views/header.blade.php index 5f4f1d1ceaa6..e2c6b92c38e4 100644 --- a/resources/views/header.blade.php +++ b/resources/views/header.blade.php @@ -259,6 +259,7 @@ } function showSearch() { + $('#search').typeahead('setQuery', ''); $('#search-form').show(); $('#navbar-options').hide(); if (window.hasOwnProperty('searchData')) { @@ -289,7 +290,6 @@ } function hideSearch() { - $('#search').typeahead('setQuery', ''); $('#search-form').hide(); $('#navbar-options').show(); } @@ -331,7 +331,7 @@ showSignUp(); @endif - $('ul.navbar-settings, ul.navbar-history').hover(function () { + $('ul.navbar-settings, ul.navbar-search').hover(function () { if ($('.user-accounts').css('display') == 'block') { $('.user-accounts').dropdown('toggle'); } @@ -403,7 +403,7 @@
@@ -194,6 +204,7 @@ self.amount = ko.observable(); self.exchange_rate = ko.observable(1); self.should_be_invoiced = ko.observable(); + self.convert_currency = ko.observable(false); if (data) { ko.mapping.fromJS(data, {}, this); @@ -230,9 +241,14 @@ }); self.enableExchangeRate = ko.computed(function() { + if (self.convert_currency()) { + return true; + } var expenseCurrencyId = self.expense_currency_id() || self.account_currency_id(); var invoiceCurrencyId = self.invoice_currency_id() || self.account_currency_id(); - return expenseCurrencyId != invoiceCurrencyId; + return expenseCurrencyId != invoiceCurrencyId + || invoiceCurrencyId != self.account_currency_id() + || expenseCurrencyId != self.account_currency_id(); }) }; From a489c2cab84da92cdf83d9216a34ad0e286792a8 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 15:52:16 +0200 Subject: [PATCH 04/46] Made expense currency conversion hidden by default --- resources/views/expenses/edit.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/expenses/edit.blade.php b/resources/views/expenses/edit.blade.php index 13a718919ab6..c2e00ab6af79 100644 --- a/resources/views/expenses/edit.blade.php +++ b/resources/views/expenses/edit.blade.php @@ -59,7 +59,7 @@ ->data_bind('combobox: client_id') ->addGroupClass('client-select') !!} - @if (!$expense || ($expense && !$expense->invoice_id)) + @if (!$expense || ($expense && !$expense->invoice_id && !$expense->client_id)) {!! Former::checkbox('should_be_invoiced') ->text(trans('texts.should_be_invoiced')) ->data_bind('checked: should_be_invoiced() || client_id(), enable: !client_id()') From 611d90811217ef581095155587d1d051e24b5ba8 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 15:55:31 +0200 Subject: [PATCH 05/46] Fixed sorting expenses by status --- app/Ninja/Repositories/ExpenseRepository.php | 1 + app/Services/ExpenseService.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Ninja/Repositories/ExpenseRepository.php b/app/Ninja/Repositories/ExpenseRepository.php index 442df6ef2979..cfd312622ad3 100644 --- a/app/Ninja/Repositories/ExpenseRepository.php +++ b/app/Ninja/Repositories/ExpenseRepository.php @@ -64,6 +64,7 @@ class ExpenseRepository extends BaseRepository ->orWhere('contacts.is_primary', '=', null); }) ->select( + DB::raw('COALESCE(expenses.invoice_id, expenses.should_be_invoiced) expense_status_id'), 'expenses.account_id', 'expenses.amount', 'expenses.deleted_at', diff --git a/app/Services/ExpenseService.php b/app/Services/ExpenseService.php index 491c0e7957d8..e8f4d591d75d 100644 --- a/app/Services/ExpenseService.php +++ b/app/Services/ExpenseService.php @@ -106,7 +106,7 @@ class ExpenseService extends BaseService } ], [ - 'invoice_id', + 'expense_status_id', function ($model) { return self::getStatusLabel($model->invoice_id, $model->should_be_invoiced); } From 34b350184257b64c3fcdf430287c4e517abf0277 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 17:47:46 +0200 Subject: [PATCH 06/46] Working on Travis, merging from #671 --- .travis.yml | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000000..5c303f42917a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,61 @@ +language: php + +sudo: false + +php: + - 5.5 + - 5.6 + - 7.0 + - hhvm + +addons: + hosts: + - ninja.dev + +cache: + directories: + - vendor + - $HOME/.composer/cache + +env: + global: + - COMPOSER_DISCARD_CHANGES=true + - COMPOSER_NO_INTERACTION=1 + - COMPOSER_DISABLE_XDEBUG_WARN=1 + +before_install: + # set GitHub token and update composer + - if [ -n "$GH_TOKEN" ]; then composer config github-oauth.github.com ${GH_TOKEN}; fi; + - composer self-update && composer -V + +install: + # install Composer dependencies + - travis_retry composer update --prefer-dist; + +before_script: + # copy configuration files + - cp tests/_bootstrap.php.default tests/_bootstrap.php + - cp tests/.env.circleci .env + # create the database and user + - mysql -u root -e "create database IF NOT EXISTS ninja;" + - mysql -u root -e "GRANT ALL PRIVILEGES ON ninja.* To 'ninja'@'localhost' IDENTIFIED BY 'ninja'; FLUSH PRIVILEGES;" + # migrate and seed the database + - php artisan migrate --no-interaction + - php artisan db:seed --no-interaction # default seed + - php artisan db:seed --no-interaction --class=UserTableSeeder # development seed + # Start webserver on ninja.dev:8000 + - php artisan serve --host=ninja.dev --port=8000 & # '&' allows to run in background + # Start PhantomJS + - phantomjs --webdriver=4444 & # '&' allows to run in background + # Give it some time to start + - sleep 5 + # Make sure the app is up-to-date + - curl -L http://ninja.dev:8000/update + +script: + - php ./vendor/codeception/codeception/codecept run --html --debug + +notifications: + email: + on_success: never + on_failure: change \ No newline at end of file From 25d2af48919a5dacca2489e6aca3f1850f0e9624 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 17:50:01 +0200 Subject: [PATCH 07/46] Working on download PDF route --- app/Http/Controllers/AccountController.php | 8 +++++++- app/Http/Controllers/PublicClientController.php | 15 +++++++++++++++ app/Http/routes.php | 1 + app/Models/Invoice.php | 10 +++++++--- app/Models/User.php | 5 +++++ app/Ninja/Mailers/ContactMailer.php | 4 ++-- 6 files changed, 37 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 56a7d1a82b43..4b12b6802e90 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -958,7 +958,13 @@ class AccountController extends BaseController 'text' => $reason, ]; - $this->userMailer->sendTo(CONTACT_EMAIL, $email, $name, 'Invoice Ninja Feedback [Canceled Account]', 'contact', $data); + $subject = 'Invoice Ninja - Canceled Account'; + + if (Auth::user()->isPaidPro()) { + $subject .= ' [PRO]'; + } + + $this->userMailer->sendTo(CONTACT_EMAIL, $email, $name, $subject, 'contact', $data); } $user = Auth::user(); diff --git a/app/Http/Controllers/PublicClientController.php b/app/Http/Controllers/PublicClientController.php index 834a89beac59..f52e850e5826 100644 --- a/app/Http/Controllers/PublicClientController.php +++ b/app/Http/Controllers/PublicClientController.php @@ -162,6 +162,21 @@ class PublicClientController extends BaseController return $paymentTypes; } + public function download($invitationKey) + { + if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) { + return response()->view('error', [ + 'error' => trans('texts.invoice_not_found'), + 'hideHeader' => true, + ]); + } + + $invoice = $invitation->invoice; + $pdfString = $invoice->getPDFString(); + + dd($pdfString); + } + public function dashboard() { if (!$invitation = $this->getInvitation()) { diff --git a/app/Http/routes.php b/app/Http/routes.php index 848d22bcdd05..347060fcb728 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -37,6 +37,7 @@ Route::post('/get_started', 'AccountController@getStarted'); // Client visible pages Route::get('view/{invitation_key}', 'PublicClientController@view'); +Route::get('download/{invitation_key}', 'PublicClientController@download'); Route::get('view', 'HomeController@viewLogo'); Route::get('approve/{invitation_key}', 'QuoteController@approve'); Route::get('payment/{invitation_key}/{payment_type?}', 'PaymentController@show_payment'); diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 626f4db6475d..8c34b40deed1 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -735,6 +735,10 @@ class Invoice extends EntityModel implements BalanceAffecting $link = $invitation->getLink(); $curl = curl_init(); + if (Utils::isNinjaDev()) { + $link = env('TEST_LINK'); + } + $jsonEncodedData = json_encode([ 'url' => "{$link}?phantomjs=true", 'renderType' => 'html', @@ -761,11 +765,11 @@ class Invoice extends EntityModel implements BalanceAffecting $response = curl_exec($curl); curl_close($curl); - $encodedString = strip_tags($response); - $pdfString = Utils::decodePDF($encodedString); + $pdfString = strip_tags($response); if ( ! $pdfString || strlen($pdfString) < 200) { - Utils::logError("PhantomJSCloud - failed to create pdf: {$encodedString}"); + Utils::logError("PhantomJSCloud - failed to create pdf: {$pdfString}"); + return false; } return $pdfString; diff --git a/app/Models/User.php b/app/Models/User.php index f62e4a5846c6..9f66f0d2af8f 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -107,6 +107,11 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon return $this->account->isPro(); } + public function isPaidPro() + { + return $this->isPro() && ! $this->isTrial(); + } + public function isTrial() { return $this->account->isTrial(); diff --git a/app/Ninja/Mailers/ContactMailer.php b/app/Ninja/Mailers/ContactMailer.php index dc513c3e8822..6d588de3439e 100644 --- a/app/Ninja/Mailers/ContactMailer.php +++ b/app/Ninja/Mailers/ContactMailer.php @@ -56,7 +56,7 @@ class ContactMailer extends Mailer $sent = false; if ($account->attatchPDF() && !$pdfString) { - $pdfString = $invoice->getPDFString(); + $pdfString = Utils::decodePDF($invoice->getPDFString()); } foreach ($invoice->invitations as $invitation) { @@ -184,7 +184,7 @@ class ContactMailer extends Mailer ]; if ($account->attatchPDF()) { - $data['pdfString'] = $invoice->getPDFString(); + $data['pdfString'] = Utils::decodePDF($invoice->getPDFString()); $data['pdfFileName'] = $invoice->getFileName(); } From 94ecfbb5a3581f3783510b452a4603e1643b6a4f Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 17:54:17 +0200 Subject: [PATCH 08/46] Updated travis to run composer install --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5c303f42917a..491963400cd9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,7 +30,7 @@ before_install: install: # install Composer dependencies - - travis_retry composer update --prefer-dist; + - travis_retry composer install --prefer-dist; before_script: # copy configuration files From 1ebea445a9f8e035ff4b5426f3101c9002b39763 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 17:57:49 +0200 Subject: [PATCH 09/46] Updated travis to remove prefer-dist --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 491963400cd9..7656b2a2bc87 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,7 +30,7 @@ before_install: install: # install Composer dependencies - - travis_retry composer install --prefer-dist; + - travis_retry composer install; before_script: # copy configuration files From e19e888a177273b7149057173bcd8837c7e4d8f9 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 17:59:32 +0200 Subject: [PATCH 10/46] Working on TravisCI --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 7656b2a2bc87..4dad1c9c7848 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,9 @@ addons: hosts: - ninja.dev +git: + depth: 200 + cache: directories: - vendor From 8ddd281e83040df400d8ec2319f2e4c724c0b489 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 18:00:07 +0200 Subject: [PATCH 11/46] Working on TravisCI --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4dad1c9c7848..b25531ac63d4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,9 +4,9 @@ sudo: false php: - 5.5 - - 5.6 - - 7.0 - - hhvm +# - 5.6 +# - 7.0 +# - hhvm addons: hosts: From e4b8b85839afdddcf8d438c8325dba90640231c4 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 18:05:14 +0200 Subject: [PATCH 12/46] Working on TravisCI --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b25531ac63d4..f366d863a0aa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ addons: - ninja.dev git: - depth: 200 + depth: 300 cache: directories: From 66f2df132d4217bd317b3d91c720e91b1f2fdd53 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 18:07:39 +0200 Subject: [PATCH 13/46] Working on TravisCI --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index a338165ea034..76efb8192895 100644 --- a/composer.json +++ b/composer.json @@ -10,8 +10,8 @@ } ], "require": { - "omnipay/mollie": "dev-master#22956c1a62a9662afa5f5d119723b413770ac525", - "omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", + //"omnipay/mollie": "dev-master#22956c1a62a9662afa5f5d119723b413770ac525", + //"omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", "omnipay/gocardless": "dev-master", "omnipay/stripe": "2.3.0", "laravel/framework": "5.0.*", From b5bb8d50118cead006cfd0b427e10b1fd4c7dd16 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 18:10:50 +0200 Subject: [PATCH 14/46] Working on TravisCI - updated composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 76efb8192895..2afad9b0ab7a 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ ], "require": { //"omnipay/mollie": "dev-master#22956c1a62a9662afa5f5d119723b413770ac525", - //"omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", + //"omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", "omnipay/gocardless": "dev-master", "omnipay/stripe": "2.3.0", "laravel/framework": "5.0.*", From 922353107ab6abc2de228be9894e9f422a0df484 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 18:32:43 +0200 Subject: [PATCH 15/46] Working on TravisCI - updated composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 2afad9b0ab7a..76efb8192895 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ ], "require": { //"omnipay/mollie": "dev-master#22956c1a62a9662afa5f5d119723b413770ac525", - //"omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", + //"omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", "omnipay/gocardless": "dev-master", "omnipay/stripe": "2.3.0", "laravel/framework": "5.0.*", From 8b81a40e06cafd23db2e7290d74f741db6f0c68f Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 18:33:22 +0200 Subject: [PATCH 16/46] Working on TravisCI - updated composer.json --- composer.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/composer.json b/composer.json index 76efb8192895..08244551a1af 100644 --- a/composer.json +++ b/composer.json @@ -10,8 +10,6 @@ } ], "require": { - //"omnipay/mollie": "dev-master#22956c1a62a9662afa5f5d119723b413770ac525", - //"omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", "omnipay/gocardless": "dev-master", "omnipay/stripe": "2.3.0", "laravel/framework": "5.0.*", From 7e906798de21d0027b820c3a01e6b9555ad194fb Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 18:49:40 +0200 Subject: [PATCH 17/46] Working on TravisCI --- .travis.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index f366d863a0aa..37487b271cdb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,9 +12,6 @@ addons: hosts: - ninja.dev -git: - depth: 300 - cache: directories: - vendor @@ -33,7 +30,7 @@ before_install: install: # install Composer dependencies - - travis_retry composer install; + - travis_retry composer install --prefer-dist; before_script: # copy configuration files From 96479871bc29299800426fb46bc3ffd2963f18c2 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 19:14:06 +0200 Subject: [PATCH 18/46] Working on TravisCI --- .travis.yml | 1 + app/Http/routes.php | 1 - composer.json | 2 ++ 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 37487b271cdb..8cc170fae2cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,6 +30,7 @@ before_install: install: # install Composer dependencies + - cat composer.json - travis_retry composer install --prefer-dist; before_script: diff --git a/app/Http/routes.php b/app/Http/routes.php index 347060fcb728..566f4aa15ae6 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -1,6 +1,5 @@ Date: Wed, 17 Feb 2016 19:16:29 +0200 Subject: [PATCH 19/46] Working on TravisCI --- composer.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/composer.json b/composer.json index a338165ea034..08244551a1af 100644 --- a/composer.json +++ b/composer.json @@ -10,8 +10,6 @@ } ], "require": { - "omnipay/mollie": "dev-master#22956c1a62a9662afa5f5d119723b413770ac525", - "omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", "omnipay/gocardless": "dev-master", "omnipay/stripe": "2.3.0", "laravel/framework": "5.0.*", From e8394574e60d1f31e9e869d8004e6cf394a14b35 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 19:22:42 +0200 Subject: [PATCH 20/46] Working on TravisCI --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 8cc170fae2cd..498d692d7b51 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,9 @@ cache: - vendor - $HOME/.composer/cache +git: + depth: 150 + env: global: - COMPOSER_DISCARD_CHANGES=true From e11934a3b98679b34d5bdf9ea7fd3cc41f94009b Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 19:42:16 +0200 Subject: [PATCH 21/46] Working on TravisCI --- .travis.yml | 7 ++++--- composer.json | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 498d692d7b51..78c245ed700f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,9 +17,6 @@ cache: - vendor - $HOME/.composer/cache -git: - depth: 150 - env: global: - COMPOSER_DISCARD_CHANGES=true @@ -33,6 +30,10 @@ before_install: install: # install Composer dependencies + - rm composer.lock + - cat composer.json + - sed '/omnipay/mollie/d' filename.txt + - sed '/omnipay/2checkout/d' filename.txt - cat composer.json - travis_retry composer install --prefer-dist; diff --git a/composer.json b/composer.json index 08244551a1af..a338165ea034 100644 --- a/composer.json +++ b/composer.json @@ -10,6 +10,8 @@ } ], "require": { + "omnipay/mollie": "dev-master#22956c1a62a9662afa5f5d119723b413770ac525", + "omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", "omnipay/gocardless": "dev-master", "omnipay/stripe": "2.3.0", "laravel/framework": "5.0.*", From 908df7f63fdaca0bec13977217af6051ef53719a Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 19:46:10 +0200 Subject: [PATCH 22/46] Working on TravisCI --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 78c245ed700f..40249bd75a30 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,8 +32,8 @@ install: # install Composer dependencies - rm composer.lock - cat composer.json - - sed '/omnipay/mollie/d' filename.txt - - sed '/omnipay/2checkout/d' filename.txt + - sed -i '/mollie/d' composer.json + - sed -i '/2checkout/d' composer.json - cat composer.json - travis_retry composer install --prefer-dist; From 0380b951a5c0cd8c1bde09b393347bb80b9ce832 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 20:25:20 +0200 Subject: [PATCH 23/46] Working on TravisCI --- composer.json | 2 +- composer.lock | 184 ++++++++++++++++++++++++++------------------------ 2 files changed, 96 insertions(+), 90 deletions(-) diff --git a/composer.json b/composer.json index a338165ea034..740e501771d0 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "omnipay/bitpay": "dev-master", "guzzlehttp/guzzle": "~6.0", "laravelcollective/html": "~5.0", - "wildbit/laravel-postmark-provider": "dev-master", + "wildbit/laravel-postmark-provider": "2.0", "Dwolla/omnipay-dwolla": "dev-master", "laravel/socialite": "~2.0", "simshaun/recurr": "dev-master", diff --git a/composer.lock b/composer.lock index 28ae475dee18..7157dd51188c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "6e219bb4f5ffaf8423177bd6fccc89f8", - "content-hash": "4778ab164bfb93c4af1bb51c4320ea4c", + "hash": "cfae9eb02e70e68bef3b7a573b771cd1", + "content-hash": "9725ebe501b47a2dd80af2554009e32a", "packages": [ { "name": "agmscode/omnipay-agms", @@ -435,12 +435,12 @@ "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "aa8f772a46c35ecdcb7119f38772ac2ec952a941" + "reference": "4b8ba85b346fc9962521661aa639911535b2bb3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/aa8f772a46c35ecdcb7119f38772ac2ec952a941", - "reference": "aa8f772a46c35ecdcb7119f38772ac2ec952a941", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/4b8ba85b346fc9962521661aa639911535b2bb3f", + "reference": "4b8ba85b346fc9962521661aa639911535b2bb3f", "shasum": "" }, "require": { @@ -490,7 +490,7 @@ "phpstorm", "sublime" ], - "time": "2016-01-22 13:33:15" + "time": "2016-01-28 08:19:58" }, { "name": "cardgate/omnipay-cardgate", @@ -2555,12 +2555,12 @@ "source": { "type": "git", "url": "https://github.com/slampenny/Swaggervel.git", - "reference": "ea47fafde4984278e27a8044a1b1b0bcfd79130c" + "reference": "e026d72cacec8b2db8b2510179d73042f5e87bb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slampenny/Swaggervel/zipball/ea47fafde4984278e27a8044a1b1b0bcfd79130c", - "reference": "ea47fafde4984278e27a8044a1b1b0bcfd79130c", + "url": "https://api.github.com/repos/slampenny/Swaggervel/zipball/e026d72cacec8b2db8b2510179d73042f5e87bb9", + "reference": "e026d72cacec8b2db8b2510179d73042f5e87bb9", "shasum": "" }, "require": { @@ -2592,7 +2592,7 @@ "laravel", "swagger" ], - "time": "2015-08-18 15:33:39" + "time": "2016-01-25 15:38:17" }, { "name": "jsanc623/phpbenchtime", @@ -2786,16 +2786,16 @@ }, { "name": "laravel/framework", - "version": "v5.0.34", + "version": "v5.0.35", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "98dbaafe8e2781f86b1b858f8610be0d7318b153" + "reference": "37151cf533f468e2227605e4b9ac596154f6b92b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/98dbaafe8e2781f86b1b858f8610be0d7318b153", - "reference": "98dbaafe8e2781f86b1b858f8610be0d7318b153", + "url": "https://api.github.com/repos/laravel/framework/zipball/37151cf533f468e2227605e4b9ac596154f6b92b", + "reference": "37151cf533f468e2227605e4b9ac596154f6b92b", "shasum": "" }, "require": { @@ -2908,7 +2908,7 @@ "framework", "laravel" ], - "time": "2015-12-04 23:20:49" + "time": "2016-02-02 14:55:52" }, { "name": "laravel/socialite", @@ -3284,12 +3284,12 @@ "source": { "type": "git", "url": "https://github.com/lokielse/omnipay-alipay.git", - "reference": "f39ce21a5cbfe5c7cd4108d264b398dbd42be05b" + "reference": "0b091a199f1ffce95582f5e11efcf4a8ffd90ec8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lokielse/omnipay-alipay/zipball/f39ce21a5cbfe5c7cd4108d264b398dbd42be05b", - "reference": "f39ce21a5cbfe5c7cd4108d264b398dbd42be05b", + "url": "https://api.github.com/repos/lokielse/omnipay-alipay/zipball/0b091a199f1ffce95582f5e11efcf4a8ffd90ec8", + "reference": "0b091a199f1ffce95582f5e11efcf4a8ffd90ec8", "shasum": "" }, "require": { @@ -3325,7 +3325,7 @@ "payment", "purchase" ], - "time": "2016-01-19 15:08:12" + "time": "2016-01-27 17:06:44" }, { "name": "maatwebsite/excel", @@ -3701,23 +3701,23 @@ }, { "name": "mtdowling/cron-expression", - "version": "v1.0.4", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/mtdowling/cron-expression.git", - "reference": "fd92e883195e5dfa77720b1868cf084b08be4412" + "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/fd92e883195e5dfa77720b1868cf084b08be4412", - "reference": "fd92e883195e5dfa77720b1868cf084b08be4412", + "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", + "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", "shasum": "" }, "require": { "php": ">=5.3.2" }, "require-dev": { - "phpunit/phpunit": "4.*" + "phpunit/phpunit": "~4.0|~5.0" }, "type": "library", "autoload": { @@ -3741,7 +3741,7 @@ "cron", "schedule" ], - "time": "2015-01-11 23:07:46" + "time": "2016-01-26 21:23:30" }, { "name": "nesbot/carbon", @@ -5279,16 +5279,16 @@ }, { "name": "omnipay/sagepay", - "version": "2.3.0", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/thephpleague/omnipay-sagepay.git", - "reference": "4208d23b33b2f8a59176e44ad22d304c461ecb62" + "reference": "ca992b28a0d7ec7dbf218852dab36ec309dee07e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-sagepay/zipball/4208d23b33b2f8a59176e44ad22d304c461ecb62", - "reference": "4208d23b33b2f8a59176e44ad22d304c461ecb62", + "url": "https://api.github.com/repos/thephpleague/omnipay-sagepay/zipball/ca992b28a0d7ec7dbf218852dab36ec309dee07e", + "reference": "ca992b28a0d7ec7dbf218852dab36ec309dee07e", "shasum": "" }, "require": { @@ -5334,7 +5334,7 @@ "sage pay", "sagepay" ], - "time": "2016-01-12 12:43:31" + "time": "2016-02-07 13:25:23" }, { "name": "omnipay/securepay", @@ -5509,16 +5509,16 @@ }, { "name": "omnipay/worldpay", - "version": "v2.1.1", + "version": "v2.2", "source": { "type": "git", "url": "https://github.com/thephpleague/omnipay-worldpay.git", - "reference": "5353f02b7f800b93d8aeae606d6df09afa538457" + "reference": "26ead4ca2c6ec45c9a3b3dad0be8880e0b1df083" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-worldpay/zipball/5353f02b7f800b93d8aeae606d6df09afa538457", - "reference": "5353f02b7f800b93d8aeae606d6df09afa538457", + "url": "https://api.github.com/repos/thephpleague/omnipay-worldpay/zipball/26ead4ca2c6ec45c9a3b3dad0be8880e0b1df083", + "reference": "26ead4ca2c6ec45c9a3b3dad0be8880e0b1df083", "shasum": "" }, "require": { @@ -5562,20 +5562,20 @@ "payment", "worldpay" ], - "time": "2014-09-17 00:37:18" + "time": "2016-01-28 12:55:58" }, { "name": "paragonie/random_compat", - "version": "1.1.5", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/paragonie/random_compat.git", - "reference": "dd8998b7c846f6909f4e7a5f67fabebfc412a4f7" + "reference": "b0e69d10852716b2ccbdff69c75c477637220790" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/dd8998b7c846f6909f4e7a5f67fabebfc412a4f7", - "reference": "dd8998b7c846f6909f4e7a5f67fabebfc412a4f7", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/b0e69d10852716b2ccbdff69c75c477637220790", + "reference": "b0e69d10852716b2ccbdff69c75c477637220790", "shasum": "" }, "require": { @@ -5610,7 +5610,7 @@ "pseudorandom", "random" ], - "time": "2016-01-06 13:31:20" + "time": "2016-02-06 03:52:05" }, { "name": "patricktalmadge/bootstrapper", @@ -6158,23 +6158,27 @@ }, { "name": "symfony/class-loader", - "version": "v3.0.1", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", - "reference": "6294f616bb9888ba2e13c8bfdcc4d306c1c95da7" + "reference": "92e7cf1af2bc1695daabb4ac972db169606e9030" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/6294f616bb9888ba2e13c8bfdcc4d306c1c95da7", - "reference": "6294f616bb9888ba2e13c8bfdcc4d306c1c95da7", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/92e7cf1af2bc1695daabb4ac972db169606e9030", + "reference": "92e7cf1af2bc1695daabb4ac972db169606e9030", "shasum": "" }, "require": { "php": ">=5.5.9" }, "require-dev": { - "symfony/finder": "~2.8|~3.0" + "symfony/finder": "~2.8|~3.0", + "symfony/polyfill-apcu": "~1.1" + }, + "suggest": { + "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" }, "type": "library", "extra": { @@ -6206,7 +6210,7 @@ ], "description": "Symfony ClassLoader Component", "homepage": "https://symfony.com", - "time": "2015-12-05 17:45:07" + "time": "2016-02-03 09:33:23" }, { "name": "symfony/console", @@ -6673,16 +6677,16 @@ }, { "name": "symfony/polyfill-php56", - "version": "v1.0.1", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "e2e77609a9e2328eb370fbb0e0d8b2000ebb488f" + "reference": "4d891fff050101a53a4caabb03277284942d1ad9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/e2e77609a9e2328eb370fbb0e0d8b2000ebb488f", - "reference": "e2e77609a9e2328eb370fbb0e0d8b2000ebb488f", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/4d891fff050101a53a4caabb03277284942d1ad9", + "reference": "4d891fff050101a53a4caabb03277284942d1ad9", "shasum": "" }, "require": { @@ -6692,7 +6696,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -6725,20 +6729,20 @@ "portable", "shim" ], - "time": "2015-12-18 15:10:25" + "time": "2016-01-20 09:13:37" }, { "name": "symfony/polyfill-util", - "version": "v1.0.1", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-util.git", - "reference": "4271c55cbc0a77b2641f861b978123e46b3da969" + "reference": "8de62801aa12bc4dfcf85eef5d21981ae7bb3cc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4271c55cbc0a77b2641f861b978123e46b3da969", - "reference": "4271c55cbc0a77b2641f861b978123e46b3da969", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/8de62801aa12bc4dfcf85eef5d21981ae7bb3cc4", + "reference": "8de62801aa12bc4dfcf85eef5d21981ae7bb3cc4", "shasum": "" }, "require": { @@ -6747,7 +6751,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -6777,7 +6781,7 @@ "polyfill", "shim" ], - "time": "2015-11-04 20:28:58" + "time": "2016-01-20 09:13:37" }, { "name": "symfony/process", @@ -7374,7 +7378,7 @@ }, { "name": "wildbit/laravel-postmark-provider", - "version": "dev-master", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/wildbit/laravel-postmark-provider.git", @@ -7448,16 +7452,16 @@ }, { "name": "zircote/swagger-php", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/zircote/swagger-php.git", - "reference": "c19af4edcc13c00e82fabeee926335b1fe1d92e9" + "reference": "0dfc289d53bad4a2bd193adc8d4bd058029ab417" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zircote/swagger-php/zipball/c19af4edcc13c00e82fabeee926335b1fe1d92e9", - "reference": "c19af4edcc13c00e82fabeee926335b1fe1d92e9", + "url": "https://api.github.com/repos/zircote/swagger-php/zipball/0dfc289d53bad4a2bd193adc8d4bd058029ab417", + "reference": "0dfc289d53bad4a2bd193adc8d4bd058029ab417", "shasum": "" }, "require": { @@ -7466,6 +7470,7 @@ "symfony/finder": "*" }, "require-dev": { + "squizlabs/php_codesniffer": "2.*", "zendframework/zend-form": "*" }, "bin": [ @@ -7504,26 +7509,26 @@ "rest", "service discovery" ], - "time": "2016-01-15 09:39:28" + "time": "2016-02-13 15:39:11" } ], "packages-dev": [ { "name": "codeception/c3", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/Codeception/c3.git", - "reference": "b866ca528474ddcf74147531cc4e50b80257a5f8" + "reference": "dc4d39b36d585c2eda58129407e78855ea67b1ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/c3/zipball/b866ca528474ddcf74147531cc4e50b80257a5f8", - "reference": "b866ca528474ddcf74147531cc4e50b80257a5f8", + "url": "https://api.github.com/repos/Codeception/c3/zipball/dc4d39b36d585c2eda58129407e78855ea67b1ca", + "reference": "dc4d39b36d585c2eda58129407e78855ea67b1ca", "shasum": "" }, "require": { - "composer-plugin-api": "1.0.0", + "composer-plugin-api": "^1.0", "php": ">=5.4.0" }, "type": "composer-plugin", @@ -7556,7 +7561,7 @@ "code coverage", "codecoverage" ], - "time": "2015-11-28 10:17:10" + "time": "2016-02-09 23:31:08" }, { "name": "codeception/codeception", @@ -7901,22 +7906,24 @@ }, { "name": "phpspec/prophecy", - "version": "v1.5.0", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7" + "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7", - "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3c91bdf81797d725b14cb62906f9a4ce44235972", + "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "~2.0", - "sebastian/comparator": "~1.1" + "sebastian/comparator": "~1.1", + "sebastian/recursion-context": "~1.0" }, "require-dev": { "phpspec/phpspec": "~2.0" @@ -7924,7 +7931,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.5.x-dev" } }, "autoload": { @@ -7957,7 +7964,7 @@ "spy", "stub" ], - "time": "2015-08-13 10:07:40" + "time": "2016-02-15 07:46:21" }, { "name": "phpunit/php-code-coverage", @@ -8201,16 +8208,16 @@ }, { "name": "phpunit/phpunit", - "version": "4.8.21", + "version": "4.8.23", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "ea76b17bced0500a28098626b84eda12dbcf119c" + "reference": "6e351261f9cd33daf205a131a1ba61c6d33bd483" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ea76b17bced0500a28098626b84eda12dbcf119c", - "reference": "ea76b17bced0500a28098626b84eda12dbcf119c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6e351261f9cd33daf205a131a1ba61c6d33bd483", + "reference": "6e351261f9cd33daf205a131a1ba61c6d33bd483", "shasum": "" }, "require": { @@ -8269,7 +8276,7 @@ "testing", "xunit" ], - "time": "2015-12-12 07:45:58" + "time": "2016-02-11 14:56:33" }, { "name": "phpunit/phpunit-mock-objects", @@ -8813,16 +8820,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.0.1", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25" + "reference": "1289d16209491b584839022f29257ad859b8532d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/49ff736bd5d41f45240cec77b44967d76e0c3d25", - "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d", + "reference": "1289d16209491b584839022f29257ad859b8532d", "shasum": "" }, "require": { @@ -8834,7 +8841,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -8868,7 +8875,7 @@ "portable", "shim" ], - "time": "2015-11-20 09:19:13" + "time": "2016-01-20 09:13:37" }, { "name": "symfony/yaml", @@ -8935,7 +8942,6 @@ "alfaproject/omnipay-neteller": 20, "alfaproject/omnipay-skrill": 20, "omnipay/bitpay": 20, - "wildbit/laravel-postmark-provider": 20, "dwolla/omnipay-dwolla": 20, "simshaun/recurr": 20, "meebio/omnipay-creditcall": 20, From f5bb3d3f1b1416952ecb8e4eeaaf185e85745be0 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 20:37:00 +0200 Subject: [PATCH 24/46] Working on TravisCI --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 40249bd75a30..1cd1811007d4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,7 +40,7 @@ install: before_script: # copy configuration files - cp tests/_bootstrap.php.default tests/_bootstrap.php - - cp tests/.env.circleci .env + - cp tests/.env.example .env # create the database and user - mysql -u root -e "create database IF NOT EXISTS ninja;" - mysql -u root -e "GRANT ALL PRIVILEGES ON ninja.* To 'ninja'@'localhost' IDENTIFIED BY 'ninja'; FLUSH PRIVILEGES;" From 331b117189a99902dd283a3153d5f476296cad68 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 20:59:24 +0200 Subject: [PATCH 25/46] Fix for #713 --- app/Models/Invoice.php | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 8c34b40deed1..b8d31b97e7dd 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -733,40 +733,18 @@ class Invoice extends EntityModel implements BalanceAffecting $invitation = $this->invitations[0]; $link = $invitation->getLink(); + $key = env('PHANTOMJS_CLOUD_KEY'); $curl = curl_init(); if (Utils::isNinjaDev()) { $link = env('TEST_LINK'); } - $jsonEncodedData = json_encode([ - 'url' => "{$link}?phantomjs=true", - 'renderType' => 'html', - 'outputAsJson' => false, - 'renderSettings' => [ - 'passThroughHeaders' => true, - ], - // 'delayTime' => 1000, - ]); - - $opts = [ - CURLOPT_URL => PHANTOMJS_CLOUD . env('PHANTOMJS_CLOUD_KEY') . '/', - CURLOPT_RETURNTRANSFER => true, - CURLOPT_CUSTOMREQUEST => 'POST', - CURLOPT_POST => 1, - CURLOPT_POSTFIELDS => $jsonEncodedData, - CURLOPT_HTTPHEADER => [ - 'Content-Type: application/json', - 'Content-Length: '.strlen($jsonEncodedData) - ], - ]; - - curl_setopt_array($curl, $opts); - $response = curl_exec($curl); - curl_close($curl); - - $pdfString = strip_tags($response); - + $url = "http://api.phantomjscloud.com/api/browser/v2/{$key}/?request=%7Burl:%22{$link}?phantomjs=true%22,renderType:%22html%22%7D"; + + $pdfString = file_get_contents($url); + $pdfString = strip_tags($pdfString); + if ( ! $pdfString || strlen($pdfString) < 200) { Utils::logError("PhantomJSCloud - failed to create pdf: {$pdfString}"); return false; From cc27e5278ff848176af64da768aab1b1acb716c5 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:01:38 +0200 Subject: [PATCH 26/46] Working on TravisCI --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1cd1811007d4..cbb5d85cac24 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,7 +40,6 @@ install: before_script: # copy configuration files - cp tests/_bootstrap.php.default tests/_bootstrap.php - - cp tests/.env.example .env # create the database and user - mysql -u root -e "create database IF NOT EXISTS ninja;" - mysql -u root -e "GRANT ALL PRIVILEGES ON ninja.* To 'ninja'@'localhost' IDENTIFIED BY 'ninja'; FLUSH PRIVILEGES;" From ed941fef8983bde4b2cfd04eb0a87de81584c895 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:13:55 +0200 Subject: [PATCH 27/46] Enabled downloading PDF through route --- app/Http/Controllers/PublicClientController.php | 8 +++++++- app/Models/Invoice.php | 2 +- app/Ninja/Mailers/ContactMailer.php | 4 ++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/PublicClientController.php b/app/Http/Controllers/PublicClientController.php index f52e850e5826..9d806061d88c 100644 --- a/app/Http/Controllers/PublicClientController.php +++ b/app/Http/Controllers/PublicClientController.php @@ -174,7 +174,13 @@ class PublicClientController extends BaseController $invoice = $invitation->invoice; $pdfString = $invoice->getPDFString(); - dd($pdfString); + header('Content-Type: application/pdf'); + header('Content-Length: ' . strlen($pdfString)); + header('Content-disposition: attachment; filename="' . $invoice->getFileName() . '"'); + header('Cache-Control: public, must-revalidate, max-age=0'); + header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); + + return $pdfString; } public function dashboard() diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index b8d31b97e7dd..4e15934efeb3 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -750,7 +750,7 @@ class Invoice extends EntityModel implements BalanceAffecting return false; } - return $pdfString; + return Utils::decodePDF($pdfString); } } diff --git a/app/Ninja/Mailers/ContactMailer.php b/app/Ninja/Mailers/ContactMailer.php index 6d588de3439e..dc513c3e8822 100644 --- a/app/Ninja/Mailers/ContactMailer.php +++ b/app/Ninja/Mailers/ContactMailer.php @@ -56,7 +56,7 @@ class ContactMailer extends Mailer $sent = false; if ($account->attatchPDF() && !$pdfString) { - $pdfString = Utils::decodePDF($invoice->getPDFString()); + $pdfString = $invoice->getPDFString(); } foreach ($invoice->invitations as $invitation) { @@ -184,7 +184,7 @@ class ContactMailer extends Mailer ]; if ($account->attatchPDF()) { - $data['pdfString'] = Utils::decodePDF($invoice->getPDFString()); + $data['pdfString'] = $invoice->getPDFString(); $data['pdfFileName'] = $invoice->getFileName(); } From f633e311c5325d405a270a235a85d48a2e17d07b Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:17:06 +0200 Subject: [PATCH 28/46] Working on TravisCI --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index cbb5d85cac24..da6d5df9b65c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,6 +39,7 @@ install: before_script: # copy configuration files + - cp .env.example .env - cp tests/_bootstrap.php.default tests/_bootstrap.php # create the database and user - mysql -u root -e "create database IF NOT EXISTS ninja;" From 4defbaaf6486dfa4810e34b7f49b6b407713d19b Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:18:06 +0200 Subject: [PATCH 29/46] Working on TravisCI --- .env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 1dc6d99bd419..f1c0d2860057 100644 --- a/.env.example +++ b/.env.example @@ -8,8 +8,8 @@ DB_TYPE=mysql DB_STRICT=false DB_HOST=localhost DB_DATABASE=ninja -DB_USERNAME -DB_PASSWORD +DB_USERNAME=ninja +DB_PASSWORD=ninja MAIL_DRIVER=smtp MAIL_PORT=587 From aaf4005b877acb40259cc48e621304fe58681ea8 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:22:53 +0200 Subject: [PATCH 30/46] Working on TravisCI --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index da6d5df9b65c..d28d8f4437a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,13 +49,13 @@ before_script: - php artisan db:seed --no-interaction # default seed - php artisan db:seed --no-interaction --class=UserTableSeeder # development seed # Start webserver on ninja.dev:8000 - - php artisan serve --host=ninja.dev --port=8000 & # '&' allows to run in background + - php artisan serve --host=ninja.dev & # '&' allows to run in background # Start PhantomJS - phantomjs --webdriver=4444 & # '&' allows to run in background # Give it some time to start - sleep 5 # Make sure the app is up-to-date - - curl -L http://ninja.dev:8000/update + - curl -L http://ninja.dev/update script: - php ./vendor/codeception/codeception/codecept run --html --debug From 4e855e5caa5750a4f63926b158899f79fbb69659 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:26:52 +0200 Subject: [PATCH 31/46] Working on TravisCI --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index d28d8f4437a7..f991cbc26492 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,11 +30,11 @@ before_install: install: # install Composer dependencies - - rm composer.lock - - cat composer.json + #- rm composer.lock + #- cat composer.json - sed -i '/mollie/d' composer.json - sed -i '/2checkout/d' composer.json - - cat composer.json + #- cat composer.json - travis_retry composer install --prefer-dist; before_script: @@ -49,7 +49,7 @@ before_script: - php artisan db:seed --no-interaction # default seed - php artisan db:seed --no-interaction --class=UserTableSeeder # development seed # Start webserver on ninja.dev:8000 - - php artisan serve --host=ninja.dev & # '&' allows to run in background + - php artisan serve --host=ninja.dev --port=80 & # '&' allows to run in background # Start PhantomJS - phantomjs --webdriver=4444 & # '&' allows to run in background # Give it some time to start From 62805989104d7bde6075e7285a28b8cba958609d Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:28:36 +0200 Subject: [PATCH 32/46] Working on TravisCI --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f991cbc26492..3254aa01cc60 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,7 +30,7 @@ before_install: install: # install Composer dependencies - #- rm composer.lock + - rm composer.lock #- cat composer.json - sed -i '/mollie/d' composer.json - sed -i '/2checkout/d' composer.json From 7b735b9798b47f0de94645adfee0436464dda96d Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:33:15 +0200 Subject: [PATCH 33/46] Hide action for main user in datatable --- app/Services/DatatableService.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Services/DatatableService.php b/app/Services/DatatableService.php index 5a1fd279aebb..63fe47005bab 100644 --- a/app/Services/DatatableService.php +++ b/app/Services/DatatableService.php @@ -41,6 +41,7 @@ class DatatableService private function createDropdown($entityType, $table, $actions) { $table->addColumn('dropdown', function ($model) use ($entityType, $actions) { + $hasAction = false; $str = '
'; if (property_exists($model, 'is_deleted') && $model->is_deleted) { @@ -70,6 +71,7 @@ class DatatableService if ($visible($model)) { $str .= "
  • {$value}
  • "; $lastIsDivider = false; + $hasAction = true; } } elseif ( ! $lastIsDivider) { $str .= "
  • "; @@ -77,6 +79,10 @@ class DatatableService } } + if ( ! $hasAction) { + return ''; + } + if ( ! $lastIsDivider) { $str .= "
  • "; } From d651006ca13793e62258f960f06f2c3f73615bd3 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:34:29 +0200 Subject: [PATCH 34/46] Working on TravisCI --- .travis.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3254aa01cc60..267f904747ab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,10 +31,9 @@ before_install: install: # install Composer dependencies - rm composer.lock - #- cat composer.json + # these providers require referencing git commit's which cause Travis to fail - sed -i '/mollie/d' composer.json - sed -i '/2checkout/d' composer.json - #- cat composer.json - travis_retry composer install --prefer-dist; before_script: @@ -49,13 +48,13 @@ before_script: - php artisan db:seed --no-interaction # default seed - php artisan db:seed --no-interaction --class=UserTableSeeder # development seed # Start webserver on ninja.dev:8000 - - php artisan serve --host=ninja.dev --port=80 & # '&' allows to run in background + - php artisan serve --host=ninja.dev --port=8000 & # '&' allows to run in background # Start PhantomJS - phantomjs --webdriver=4444 & # '&' allows to run in background # Give it some time to start - sleep 5 # Make sure the app is up-to-date - - curl -L http://ninja.dev/update + - curl -L http://ninja.dev:8000/update script: - php ./vendor/codeception/codeception/codecept run --html --debug From 21e178477c18ac4f7f39b1ffd397641b5a01ef75 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:41:14 +0200 Subject: [PATCH 35/46] Working on TravisCI --- codeception.yml | 2 +- tests/acceptance.suite.yml | 4 ++-- tests/functional.suite.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/codeception.yml b/codeception.yml index dfbb0d47bbb3..87ecbd1fc806 100644 --- a/codeception.yml +++ b/codeception.yml @@ -19,7 +19,7 @@ extensions: modules: config: Db: - dsn: 'mysql:dbname=ninja;host=localhost;' + dsn: 'mysql:dbname=ninja;host=127.0.0.1;' user: 'ninja' password: 'ninja' dump: tests/_data/dump.sql diff --git a/tests/acceptance.suite.yml b/tests/acceptance.suite.yml index 55d30947381d..0f5d2c3cdcd8 100644 --- a/tests/acceptance.suite.yml +++ b/tests/acceptance.suite.yml @@ -8,7 +8,7 @@ class_name: AcceptanceTester modules: enabled: - WebDriver: - url: 'http://ninja.dev/' + url: 'http://ninja.dev:8000/' host: 127.0.0.1 window_size: 1024x768 wait: 5 @@ -17,7 +17,7 @@ modules: unexpectedAlertBehaviour: 'accept' webStorageEnabled: true - Db: - dsn: 'mysql:dbname=ninja;host=localhost;' + dsn: 'mysql:dbname=ninja;host=127.0.0.1;' user: 'ninja' password: 'ninja' dump: tests/_data/dump.sql diff --git a/tests/functional.suite.yml b/tests/functional.suite.yml index 7c84b1000840..b89e2023daba 100644 --- a/tests/functional.suite.yml +++ b/tests/functional.suite.yml @@ -9,7 +9,7 @@ modules: enabled: - \Helper\Functional - PhpBrowser: - url: 'http://ninja.dev' + url: 'http://ninja.dev:8000' curl: CURLOPT_RETURNTRANSFER: true - Laravel5: From 92532c3a636ce2de2636a346a0bf2b9d1c9fd3a2 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:47:46 +0200 Subject: [PATCH 36/46] Working on TravisCI --- tests/_bootstrap.php.default | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/_bootstrap.php.default b/tests/_bootstrap.php.default index 193f2f90f10c..cf7248e7f5f2 100644 --- a/tests/_bootstrap.php.default +++ b/tests/_bootstrap.php.default @@ -5,4 +5,5 @@ use Codeception\Util\Fixtures; Fixtures::add('username', 'user@example.com'); Fixtures::add('password', 'password'); -Fixtures::add('gateway_key', ''); \ No newline at end of file +Fixtures::add('gateway_key', ''); +Fixtures::add('api_secret', 'password'); \ No newline at end of file From 168e318a79709882ca8f6603d4f469c9a0be5cf8 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 21:58:50 +0200 Subject: [PATCH 37/46] Working on TravisCI --- tests/_bootstrap.php.default | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/_bootstrap.php.default b/tests/_bootstrap.php.default index cf7248e7f5f2..907d22bf6eb9 100644 --- a/tests/_bootstrap.php.default +++ b/tests/_bootstrap.php.default @@ -2,6 +2,7 @@ // This is global bootstrap for autoloading use Codeception\Util\Fixtures; +Fixtures::add('url', 'http://ninja.dev:8000'); Fixtures::add('username', 'user@example.com'); Fixtures::add('password', 'password'); From 9f6aa99e860408176d3c1fd92b1094cfc3394deb Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 22:02:14 +0200 Subject: [PATCH 38/46] Working on TravisCI --- tests/_bootstrap.php.default | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/_bootstrap.php.default b/tests/_bootstrap.php.default index 907d22bf6eb9..19fc7eba0df7 100644 --- a/tests/_bootstrap.php.default +++ b/tests/_bootstrap.php.default @@ -6,5 +6,6 @@ Fixtures::add('url', 'http://ninja.dev:8000'); Fixtures::add('username', 'user@example.com'); Fixtures::add('password', 'password'); -Fixtures::add('gateway_key', ''); -Fixtures::add('api_secret', 'password'); \ No newline at end of file +Fixtures::add('api_secret', 'password'); +Fixtures::add('secret_key', ''); +Fixtures::add('publishable_key', ''); \ No newline at end of file From f5d008a607a872d80a7249e396ff7053392abdd3 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 22:08:57 +0200 Subject: [PATCH 39/46] Working on TravisCI --- tests/acceptance/APICest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/acceptance/APICest.php b/tests/acceptance/APICest.php index 0260ac75056f..fcd3cc4fb442 100644 --- a/tests/acceptance/APICest.php +++ b/tests/acceptance/APICest.php @@ -117,6 +117,8 @@ class APICest $response = curl_exec($curl); curl_close($curl); + Debug::debug('Response: ' . $response); + return json_decode($response); } } \ No newline at end of file From 19fb2b1c77f3db9061f0c96ca74d255517cf781f Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 22:11:18 +0200 Subject: [PATCH 40/46] Working on TravisCI --- .env.example | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.example b/.env.example index f1c0d2860057..20c977c663e9 100644 --- a/.env.example +++ b/.env.example @@ -23,6 +23,7 @@ MAIL_PASSWORD PHANTOMJS_CLOUD_KEY='a-demo-key-with-low-quota-per-ip-address' LOG=single REQUIRE_HTTPS=false +API_SECRET=password GOOGLE_CLIENT_ID GOOGLE_CLIENT_SECRET From 203090820cda4e430b3a96125ad216a4ec3e2e18 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 22:17:55 +0200 Subject: [PATCH 41/46] Working on TravisCI --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 267f904747ab..82b5ee71a360 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,6 +40,7 @@ before_script: # copy configuration files - cp .env.example .env - cp tests/_bootstrap.php.default tests/_bootstrap.php + - php artisan key:generate --no-interaction # create the database and user - mysql -u root -e "create database IF NOT EXISTS ninja;" - mysql -u root -e "GRANT ALL PRIVILEGES ON ninja.* To 'ninja'@'localhost' IDENTIFIED BY 'ninja'; FLUSH PRIVILEGES;" From 5876f41934a53fe3cdeef8ce0cf28d1ad4f649c0 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 22:23:01 +0200 Subject: [PATCH 42/46] Working on TravisCI --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 82b5ee71a360..5b783ffaa443 100644 --- a/.travis.yml +++ b/.travis.yml @@ -48,6 +48,7 @@ before_script: - php artisan migrate --no-interaction - php artisan db:seed --no-interaction # default seed - php artisan db:seed --no-interaction --class=UserTableSeeder # development seed + - mysql -u root -e "use ninja;select email from users;" # Start webserver on ninja.dev:8000 - php artisan serve --host=ninja.dev --port=8000 & # '&' allows to run in background # Start PhantomJS From c69b9d3be0033c35dd7b44dab1b444037282677e Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 22:32:26 +0200 Subject: [PATCH 43/46] Working on TravisCI --- .travis.yml | 2 +- resources/views/reports/d3.blade.php | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5b783ffaa443..0eaf689b5085 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,6 +41,7 @@ before_script: - cp .env.example .env - cp tests/_bootstrap.php.default tests/_bootstrap.php - php artisan key:generate --no-interaction + - sed -i 's/APP_ENV=production/APP_ENV=development/g' .env # create the database and user - mysql -u root -e "create database IF NOT EXISTS ninja;" - mysql -u root -e "GRANT ALL PRIVILEGES ON ninja.* To 'ninja'@'localhost' IDENTIFIED BY 'ninja'; FLUSH PRIVILEGES;" @@ -48,7 +49,6 @@ before_script: - php artisan migrate --no-interaction - php artisan db:seed --no-interaction # default seed - php artisan db:seed --no-interaction --class=UserTableSeeder # development seed - - mysql -u root -e "use ninja;select email from users;" # Start webserver on ninja.dev:8000 - php artisan serve --host=ninja.dev --port=8000 & # '&' allows to run in background # Start PhantomJS diff --git a/resources/views/reports/d3.blade.php b/resources/views/reports/d3.blade.php index 6685441321ce..db3f05788c10 100644 --- a/resources/views/reports/d3.blade.php +++ b/resources/views/reports/d3.blade.php @@ -233,7 +233,7 @@ .attr("class", "no-pointer-events") .attr("class", "animate-grow") .attr("d", arc) - .style("fill", function(d, i) { return 'grey'; }); + .style("fill", function(d, i) { return '#2e9e49'; }); d3.selectAll("path.animate-grow") .transition() @@ -245,7 +245,8 @@ .transition() .duration(1000) .style("fill", function(d, i) { - return d.displayAge == -1 ? 'grey' : color(d.displayAge); + //return d.displayAge == -1 ? 'grey' : color(d.displayAge); + return d.displayAge == -1 ? 'grey' : '#FF0000'; }); selection.exit().remove(); From 47b7a00f50561a74dc00a07258c3b64dfc38de19 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 22:42:31 +0200 Subject: [PATCH 44/46] Working on TravisCI --- .travis.yml | 4 ++++ resources/views/reports/d3.blade.php | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0eaf689b5085..d5a8ebc32f1f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -61,6 +61,10 @@ before_script: script: - php ./vendor/codeception/codeception/codecept run --html --debug +after_script: + - cat storage/logs/laravel.log + + notifications: email: on_success: never diff --git a/resources/views/reports/d3.blade.php b/resources/views/reports/d3.blade.php index db3f05788c10..e4e9af2c2495 100644 --- a/resources/views/reports/d3.blade.php +++ b/resources/views/reports/d3.blade.php @@ -126,6 +126,7 @@ //console.log(JSON.stringify(invoices)); //console.log(JSON.stringify(products)); + /* var arc = d3.svg.arc() .innerRadius(function(d) { return d.r - 2 }) .outerRadius(function(d) { return d.r - 8 }) @@ -136,7 +137,18 @@ .outerRadius(function(d) { return d.r - 7 }) .startAngle(0) .endAngle(2 * Math.PI); + */ + var arc = d3.svg.arc() + .innerRadius(function(d) { return d.r }) + .outerRadius(function(d) { return d.r - 6 }) + .startAngle(0); + + var fullArc = d3.svg.arc() + .innerRadius(function(d) { return d.r }) + .outerRadius(function(d) { return d.r - 6 }) + .startAngle(0) + .endAngle(2 * Math.PI); var diameter = 800, format = d3.format(",d"); @@ -245,8 +257,7 @@ .transition() .duration(1000) .style("fill", function(d, i) { - //return d.displayAge == -1 ? 'grey' : color(d.displayAge); - return d.displayAge == -1 ? 'grey' : '#FF0000'; + return d.displayAge == -1 ? 'white' : 'red'; }); selection.exit().remove(); From 4800c18eb166990c96a27261f09724e59a5e33c5 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 22:46:02 +0200 Subject: [PATCH 45/46] Changed dataviz to red/green --- resources/views/reports/d3.blade.php | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/resources/views/reports/d3.blade.php b/resources/views/reports/d3.blade.php index e4e9af2c2495..b9548fee7c3a 100644 --- a/resources/views/reports/d3.blade.php +++ b/resources/views/reports/d3.blade.php @@ -126,27 +126,14 @@ //console.log(JSON.stringify(invoices)); //console.log(JSON.stringify(products)); - /* - var arc = d3.svg.arc() - .innerRadius(function(d) { return d.r - 2 }) - .outerRadius(function(d) { return d.r - 8 }) - .startAngle(0); - - var fullArc = d3.svg.arc() - .innerRadius(function(d) { return d.r - 3 }) - .outerRadius(function(d) { return d.r - 7 }) - .startAngle(0) - .endAngle(2 * Math.PI); - */ - var arc = d3.svg.arc() .innerRadius(function(d) { return d.r }) - .outerRadius(function(d) { return d.r - 6 }) + .outerRadius(function(d) { return d.r - 5 }) .startAngle(0); var fullArc = d3.svg.arc() .innerRadius(function(d) { return d.r }) - .outerRadius(function(d) { return d.r - 6 }) + .outerRadius(function(d) { return d.r - 5 }) .startAngle(0) .endAngle(2 * Math.PI); From b63f26f10bfc56d16df997fa91bfe097c1d070c5 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 17 Feb 2016 22:49:34 +0200 Subject: [PATCH 46/46] Working on TravisCI --- .travis.yml | 1 + app/Http/Controllers/InvoiceApiController.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d5a8ebc32f1f..4bdcc265fb53 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,6 +42,7 @@ before_script: - cp tests/_bootstrap.php.default tests/_bootstrap.php - php artisan key:generate --no-interaction - sed -i 's/APP_ENV=production/APP_ENV=development/g' .env + - sed -i 's/APP_DEBUG=false/APP_DEBUG=true/g' .env # create the database and user - mysql -u root -e "create database IF NOT EXISTS ninja;" - mysql -u root -e "GRANT ALL PRIVILEGES ON ninja.* To 'ninja'@'localhost' IDENTIFIED BY 'ninja'; FLUSH PRIVILEGES;" diff --git a/app/Http/Controllers/InvoiceApiController.php b/app/Http/Controllers/InvoiceApiController.php index 8c4344f608b6..2ba39cd77651 100644 --- a/app/Http/Controllers/InvoiceApiController.php +++ b/app/Http/Controllers/InvoiceApiController.php @@ -280,7 +280,7 @@ class InvoiceApiController extends BaseAPIController private function prepareItem($item) { // if only the product key is set we'll load the cost and notes - if ($item['product_key'] && empty($item['cost']) && empty($item['notes'])) { + if (!empty($item['product_key']) && empty($item['cost']) && empty($item['notes'])) { $product = Product::findProductByKey($item['product_key']); if ($product) { if (empty($item['cost'])) {