1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-18 09:04:35 +01:00

bug fixes

This commit is contained in:
Hillel Coren 2014-02-18 23:56:18 +02:00
parent 6f9001733f
commit ad17952031
17 changed files with 177 additions and 190 deletions

View File

@ -58,6 +58,12 @@ class AccountController extends \BaseController {
return Redirect::to('invoices/create');
}
public function setTrashVisible($entityType, $visible)
{
Session::put("trash_{$entityType}", $visible == 'true');
return Redirect::to("{$entityType}s");
}
public function getSearchData()
{
$data = $this->accountRepo->getSearchData();
@ -73,7 +79,7 @@ class AccountController extends \BaseController {
'account' => Account::with('users')->findOrFail(Auth::user()->account_id),
'countries' => Country::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
'sizes' => Size::remember(DEFAULT_QUERY_CACHE)->orderBy('id')->get(),
'industries' => Industry::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
'industries' => Industry::remember(DEFAULT_QUERY_CACHE)->orderBy('id')->get(),
'timezones' => Timezone::remember(DEFAULT_QUERY_CACHE)->orderBy('location')->get(),
'dateFormats' => DateFormat::remember(DEFAULT_QUERY_CACHE)->get(),
'datetimeFormats' => DatetimeFormat::remember(DEFAULT_QUERY_CACHE)->get(),

View File

@ -11,6 +11,7 @@ class ActivityController extends \BaseController {
->select('activities.message', 'activities.created_at', 'clients.currency_id', 'activities.balance', 'activities.adjustment');
return Datatable::query($query)
//->addColumn('blank', function($model) { return ''; })
->addColumn('created_at', function($model) { return Utils::timestampToDateTimeString(strtotime($model->created_at)); })
->addColumn('message', function($model) { return Utils::decodeActivity($model->message); })
->addColumn('balance', function($model) { return Utils::formatMoney($model->balance, $model->currency_id); })

View File

@ -78,7 +78,7 @@ class ClientController extends \BaseController {
'url' => 'clients',
'title' => '- New Client',
'sizes' => Size::remember(DEFAULT_QUERY_CACHE)->orderBy('id')->get(),
'industries' => Industry::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
'industries' => Industry::remember(DEFAULT_QUERY_CACHE)->orderBy('id')->get(),
'paymentTerms' => PaymentTerm::remember(DEFAULT_QUERY_CACHE)->orderBy('num_days')->get(['name', 'num_days']),
'currencies' => Currency::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
'countries' => Country::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get());
@ -104,7 +104,7 @@ class ClientController extends \BaseController {
*/
public function show($publicId)
{
$client = Client::scope($publicId)->with('contacts', 'size', 'industry')->firstOrFail();
$client = Client::withTrashed()->scope($publicId)->with('contacts', 'size', 'industry')->firstOrFail();
Utils::trackViewed($client->getDisplayName(), ENTITY_CLIENT);
$data = array(
@ -134,7 +134,7 @@ class ClientController extends \BaseController {
'title' => '- ' . $client->name,
'sizes' => Size::remember(DEFAULT_QUERY_CACHE)->orderBy('id')->get(),
'paymentTerms' => PaymentTerm::remember(DEFAULT_QUERY_CACHE)->orderBy('num_days')->get(['name', 'num_days']),
'industries' => Industry::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
'industries' => Industry::remember(DEFAULT_QUERY_CACHE)->orderBy('id')->get(),
'currencies' => Currency::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
'countries' => Country::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get());
return View::make('clients.edit', $data);

View File

@ -115,7 +115,7 @@ class InvoiceController extends \BaseController {
public function view($invitationKey)
{
$invitation = Invitation::with('user', 'invoice.invoice_items', 'invoice.account.country', 'invoice.client.contacts', 'invoice.client.country')
$invitation = Invitation::withTrashed()->with('user', 'invoice.invoice_items', 'invoice.account.country', 'invoice.client.contacts', 'invoice.client.country')
->where('invitation_key', '=', $invitationKey)->firstOrFail();
$invoice = $invitation->invoice;
@ -151,7 +151,7 @@ class InvoiceController extends \BaseController {
public function edit($publicId)
{
$invoice = Invoice::scope($publicId)->with('account.country', 'client.contacts', 'client.country', 'invoice_items')->firstOrFail();
$invoice = Invoice::scope($publicId)->withTrashed()->with('account.country', 'client.contacts', 'client.country', 'invoice_items')->firstOrFail();
Utils::trackViewed($invoice->invoice_number . ' - ' . $invoice->client->getDisplayName(), ENTITY_INVOICE);
$invoice->invoice_date = Utils::fromSqlDate($invoice->invoice_date);
@ -215,7 +215,7 @@ class InvoiceController extends \BaseController {
'currencies' => Currency::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
'sizes' => Size::remember(DEFAULT_QUERY_CACHE)->orderBy('id')->get(),
'paymentTerms' => PaymentTerm::remember(DEFAULT_QUERY_CACHE)->orderBy('num_days')->get(['name', 'num_days']),
'industries' => Industry::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
'industries' => Industry::remember(DEFAULT_QUERY_CACHE)->orderBy('id')->get(),
'frequencies' => array(
1 => 'Weekly',
2 => 'Two weeks',

View File

@ -103,6 +103,7 @@ class ConstantsSeeder extends Seeder
Industry::create(array('name' => 'Sports'));
Industry::create(array('name' => 'Transportation'));
Industry::create(array('name' => 'Travel & Luxury'));
Industry::create(array('name' => 'Other'));
Size::create(array('name' => '1 = 3'));
Size::create(array('name' => '4 - 10'));

View File

@ -10,10 +10,14 @@ class ClientRepository
$query = \DB::table('clients')
->join('contacts', 'contacts.client_id', '=', 'clients.id')
->where('clients.account_id', '=', \Auth::user()->account_id)
->where('clients.deleted_at', '=', null)
->where('contacts.is_primary', '=', true)
->select('clients.public_id','clients.name','contacts.first_name','contacts.last_name','clients.balance','clients.last_login','clients.created_at','clients.work_phone','contacts.email','clients.currency_id');
if (!\Session::get('trash_client'))
{
$query->where('clients.deleted_at', '=', null);
}
if ($filter)
{
$query->where(function($query) use ($filter)

View File

@ -14,7 +14,6 @@ class CreditRepository
->join('contacts', 'contacts.client_id', '=', 'clients.id')
->where('clients.account_id', '=', \Auth::user()->account_id)
->where('clients.deleted_at', '=', null)
->where('credits.deleted_at', '=', null)
->where('contacts.is_primary', '=', true)
->select('credits.public_id', 'clients.name as client_name', 'clients.public_id as client_public_id', 'credits.amount', 'credits.balance', 'credits.credit_date', 'clients.currency_id', 'contacts.first_name', 'contacts.last_name', 'contacts.email', 'credits.private_notes');
@ -23,6 +22,11 @@ class CreditRepository
$query->where('clients.public_id', '=', $clientPublicId);
}
if (!\Session::get('trash_credit'))
{
$query->where('credits.deleted_at', '=', null);
}
if ($filter)
{
$query->where(function($query) use ($filter)

View File

@ -15,12 +15,16 @@ class InvoiceRepository
->join('invoice_statuses', 'invoice_statuses.id', '=', 'invoices.invoice_status_id')
->join('contacts', 'contacts.client_id', '=', 'clients.id')
->where('invoices.account_id', '=', $accountId)
->where('invoices.deleted_at', '=', null)
->where('clients.deleted_at', '=', null)
->where('invoices.is_recurring', '=', false)
->where('contacts.is_primary', '=', true)
->select('clients.public_id as client_public_id', 'invoice_number', 'clients.name as client_name', 'invoices.public_id', 'amount', 'invoices.balance', 'invoice_date', 'due_date', 'invoice_statuses.name as invoice_status_name', 'clients.currency_id', 'contacts.first_name', 'contacts.last_name', 'contacts.email');
if (!\Session::get('trash_invoice'))
{
$query->where('invoices.deleted_at', '=', null);
}
if ($clientPublicId)
{
$query->where('clients.public_id', '=', $clientPublicId);
@ -46,7 +50,7 @@ class InvoiceRepository
->join('frequencies', 'frequencies.id', '=', 'invoices.frequency_id')
->join('contacts', 'contacts.client_id', '=', 'clients.id')
->where('invoices.account_id', '=', $accountId)
->where('invoices.deleted_at', '=', null)
->where('clients.deleted_at', '=', null)
->where('invoices.is_recurring', '=', true)
->where('contacts.is_primary', '=', true)
->select('clients.public_id as client_public_id', 'clients.name as client_name', 'invoices.public_id', 'amount', 'frequencies.name as frequency', 'start_date', 'end_date', 'clients.currency_id', 'contacts.first_name', 'contacts.last_name', 'contacts.email');
@ -56,6 +60,11 @@ class InvoiceRepository
$query->where('clients.public_id', '=', $clientPublicId);
}
if (!\Session::get('trash_invoice'))
{
$query->where('invoices.deleted_at', '=', null);
}
if ($filter)
{
$query->where(function($query) use ($filter)

View File

@ -16,11 +16,15 @@ class PaymentRepository
->join('contacts', 'contacts.client_id', '=', 'clients.id')
->leftJoin('payment_types', 'payment_types.id', '=', 'payments.payment_type_id')
->where('payments.account_id', '=', \Auth::user()->account_id)
->where('payments.deleted_at', '=', null)
->where('clients.deleted_at', '=', null)
->where('contacts.is_primary', '=', true)
->select('payments.public_id', 'payments.transaction_reference', 'clients.name as client_name', 'clients.public_id as client_public_id', 'payments.amount', 'payments.payment_date', 'invoices.public_id as invoice_public_id', 'invoices.invoice_number', 'clients.currency_id', 'contacts.first_name', 'contacts.last_name', 'contacts.email', 'payment_types.name as payment_type');
if (!\Session::get('trash_payment'))
{
$query->where('payments.deleted_at', '=', null);
}
if ($clientPublicId)
{
$query->where('clients.public_id', '=', $clientPublicId);

View File

@ -85,6 +85,8 @@ Route::get('logout', 'UserController@logout');
Route::group(array('before' => 'auth'), function()
{
Route::get('dashboard', 'DashboardController@index');
Route::get('view_archive/{entity_type}/{visible}', 'AccountController@setTrashVisible');
Route::get('account/getSearchData', array('as' => 'getSearchData', 'uses' => 'AccountController@getSearchData'));
Route::get('company/{section?}', 'AccountController@showSection');
Route::post('company/{section?}', 'AccountController@doSection');

View File

@ -25,20 +25,21 @@
<div class="row">
<div class="col-md-5">
{{ Former::legend('Account') }}
{{ Former::legend('Details') }}
{{ Former::text('name') }}
{{ Former::file('logo')->max(2, 'MB')->accept('image')->wrap('test')->inlineHelp('Recommnded size: 120px width, 80px height') }}
{{ Former::select('size_id')->addOption('','')->label('Size')
->fromQuery($sizes, 'name', 'id') }}
{{ Former::select('industry_id')->addOption('','')->label('Industry')
->fromQuery($industries, 'name', 'id') }}
{{ Former::file('logo')->max(2, 'MB')->accept('image')->inlineHelp('Supported: JPEG, GIF and PNG. Recommnded size: 120px width, 80px height') }}
@if (file_exists($account->getLogoPath()))
<center>
{{ HTML::image($account->getLogoPath(), "Logo") }}
</center>
</center><br/>
@endif
{{ Former::select('size_id')->addOption('','')->label('Size')
->fromQuery($sizes, 'name', 'id') }}
{{ Former::select('industry_id')->addOption('','')->label('Industry')
->fromQuery($industries, 'name', 'id') }}
{{ Former::legend('Address') }}
{{ Former::text('address1')->label('Street') }}
{{ Former::text('address2')->label('Apt/Suite') }}

View File

@ -3,6 +3,7 @@
@section('content')
@if (!$client->trashed())
<div class="pull-right">
{{ Former::open('clients/bulk')->addClass('mainForm') }}
<div style="display:none">
@ -32,8 +33,8 @@
, ['id'=>'primaryDropDown'])->split(); }}
{{ Former::close() }}
</div>
@endif
<h2>{{ $client->getDisplayName() }}</h2>
@if ($client->last_login > 0)
@ -102,6 +103,7 @@
->setUrl(url('api/activities/'. $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
->setOptions('aaSorting', [['0', 'desc']])
->render('datatable') }}
</div>
@ -114,6 +116,7 @@
->setUrl(url('api/recurring_invoices/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
->setOptions('aaSorting', [['0', 'asc']])
->render('datatable') }}
@endif
@ -122,6 +125,7 @@
->setUrl(url('api/invoices/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
->setOptions('aaSorting', [['0', 'asc']])
->render('datatable') }}
</div>
@ -132,6 +136,7 @@
->setUrl(url('api/payments/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
->setOptions('aaSorting', [['0', 'asc']])
->render('datatable') }}
</div>
@ -142,6 +147,7 @@
->setUrl(url('api/credits/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
->setOptions('aaSorting', [['0', 'asc']])
->render('datatable') }}
</div>

View File

@ -35,13 +35,13 @@
jQuery(document).ready(function(){
// dynamic table
jQuery('.{{ $class }}').dataTable({
// Disable sorting on the first column
"aaSorting": [],
"bAutoWidth": false,
@if (isset($hasCheckboxes) && $hasCheckboxes)
"aoColumnDefs" : [ {
'bSortable' : false,
'aTargets' : [ 0, {{ count($columns) - 1 }} ]
'aaSorting': [['1', 'asc']],
// Disable sorting on the first column
"aoColumnDefs": [ {
'bSortable': false,
'aTargets': [ 0, {{ count($columns) - 1 }} ]
} ],
@endif
@foreach ($options as $k => $o)

View File

@ -209,9 +209,9 @@
{{ Button::normal('Download PDF', array('onclick' => 'onDownloadClick()')) }}
@if (!$invoice || !$invoice->trashed())
@if ($invoice)
<div id="primaryActions" style="text-align:left" data-bind="css: $root.enable.save" class="btn-group">
<button class="btn-primary btn" type="button" data-bind="css: $root.enable.save">Save Invoice</button>
<button class="btn-primary btn dropdown-toggle" type="button" data-toggle="dropdown" data-bind="css: $root.enable.save">
@ -256,31 +256,16 @@
{{ Button::primary('Email Invoice', array('id' => 'email_button', 'onclick' => 'onEmailClick()', 'data-bind' => 'css: $root.enable.email')) }}
@if ($invoice)
{{ Button::success('Enter Payment', array('onclick' => 'onPaymentClick()')) }}
<!--
<div id="relatedActions" style="text-align:left" class="btn-group">
<button class="btn-success btn" type="button">Enter Payment</button>
<button class="btn-success btn dropdown-toggle" type="button" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="javascript:onPaymentClick()">Enter Payment</a></li>
<li><a href="javascript:onCreditClick()">Enter Credit</a></li>
</ul>
</div>
-->
@endif
@endif
</div>
<p>&nbsp;</p>
<!-- <textarea rows="20" cols="120" id="pdfText" onkeyup="runCode()"></textarea> -->
<!-- <iframe frameborder="1" width="100%" height="600" style="display:block;margin: 0 auto"></iframe> -->
<iframe id="theFrame" style="display:none" frameborder="1" width="100%" height="1150"></iframe>
<iframe id="theFrame" style="display:none" frameborder="1" width="100%" height="1180"></iframe>
<canvas id="theCanvas" style="display:none;width:100%;border:solid 1px #CCCCCC;"></canvas>
@ -946,7 +931,7 @@
self.discount = ko.observable('');
self.frequency_id = ko.observable('');
//self.currency_id = ko.observable({{ $client && $client->currency_id ? $client->currency_id : Session::get(SESSION_CURRENCY) }});
self.terms = ko.observable(wordWrapText('{{ str_replace("\n", '\n', $account->invoice_terms) }}', 340));
self.terms = ko.observable(wordWrapText('{{ str_replace(["\r\n","\r","\n"], '\n', $account->invoice_terms) }}', 340));
self.set_default_terms = ko.observable(false);
self.public_notes = ko.observable('');
self.po_number = ko.observable('');

View File

@ -22,7 +22,7 @@
<div class="clearfix"></div><p>&nbsp;</p>
<iframe id="theFrame" frameborder="1" width="100%" height="650" style="display:none;margin: 0 auto"></iframe>
<iframe id="theFrame" frameborder="1" width="100%" height="1180" style="display:none;margin: 0 auto"></iframe>
<canvas id="theCanvas" style="display:none;width:100%;border:solid 1px #CCCCCC;"></canvas>
<script type="text/javascript">

View File

@ -17,6 +17,10 @@
)
, array('id'=>'archive'))->split(); }}
&nbsp;<label for="trashed" style="font-weight:normal">
<input id="trashed" type="checkbox" onclick="setTrashVisible()"
{{ Session::get("trash_{$entityType}") ? 'checked' : ''}}/> Show archived/deleted
</label>
<div id="top_right_buttons" class="pull-right">
<input id="tableFilter" type="text" style="width:140px;margin-right:4px" class="form-control pull-left" placeholder="Filter"/>
@ -62,6 +66,11 @@
submitForm('archive');
}
function setTrashVisible() {
var checked = $('#trashed').is(':checked');
window.location = '{{ URL::to('view_archive/' . $entityType) }}' + (checked ? '/true' : '/false');
}
</script>
@stop

155
composer.lock generated
View File

@ -3,7 +3,7 @@
"This file locks the dependencies of your project to a known state",
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
],
"hash": "1b9f34e84a1dce659a722df43f8f019b",
"hash": "3630c03bc1f8da2e4855eb259f430c71",
"packages": [
{
"name": "anahkiasen/former",
@ -107,12 +107,12 @@
"source": {
"type": "git",
"url": "https://github.com/Anahkiasen/rocketeer.git",
"reference": "5ff1b953f001d9767eb48ec60ca7721459259bcb"
"reference": "3cd90ab14b9bfd0b9afe619e3bbb1f0c4e2bf833"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Anahkiasen/rocketeer/zipball/5ff1b953f001d9767eb48ec60ca7721459259bcb",
"reference": "5ff1b953f001d9767eb48ec60ca7721459259bcb",
"url": "https://api.github.com/repos/Anahkiasen/rocketeer/zipball/3cd90ab14b9bfd0b9afe619e3bbb1f0c4e2bf833",
"reference": "3cd90ab14b9bfd0b9afe619e3bbb1f0c4e2bf833",
"shasum": ""
},
"require": {
@ -170,7 +170,7 @@
"laravel",
"ssh"
],
"time": "2014-02-14 10:51:26"
"time": "2014-02-18 10:51:35"
},
{
"name": "anahkiasen/underscore-php",
@ -221,12 +221,12 @@
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git",
"reference": "179c5a78845f497e491c4dce06c615a7ee1cd4bf"
"reference": "3392e3e18f207538c315c5a435502d286c58a07b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/179c5a78845f497e491c4dce06c615a7ee1cd4bf",
"reference": "179c5a78845f497e491c4dce06c615a7ee1cd4bf",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/3392e3e18f207538c315c5a435502d286c58a07b",
"reference": "3392e3e18f207538c315c5a435502d286c58a07b",
"shasum": ""
},
"require": {
@ -260,7 +260,7 @@
"profiler",
"webprofiler"
],
"time": "2014-02-13 16:38:13"
"time": "2014-02-18 09:06:53"
},
{
"name": "chumper/datatable",
@ -367,12 +367,12 @@
"source": {
"type": "git",
"url": "https://github.com/Codeception/Codeception.git",
"reference": "cba7e00b2fd134d383806d174f0b3d08592eafb2"
"reference": "83ab8207c78f802a1bc46f401f1db27d8b2e9961"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Codeception/Codeception/zipball/cba7e00b2fd134d383806d174f0b3d08592eafb2",
"reference": "cba7e00b2fd134d383806d174f0b3d08592eafb2",
"url": "https://api.github.com/repos/Codeception/Codeception/zipball/83ab8207c78f802a1bc46f401f1db27d8b2e9961",
"reference": "83ab8207c78f802a1bc46f401f1db27d8b2e9961",
"shasum": ""
},
"require": {
@ -422,7 +422,7 @@
"functional testing",
"unit testing"
],
"time": "2014-02-16 05:07:12"
"time": "2014-02-18 03:27:40"
},
{
"name": "d11wtq/boris",
@ -458,65 +458,18 @@
"notification-url": "https://packagist.org/downloads/",
"time": "2014-01-17 12:21:18"
},
{
"name": "davejamesmiller/laravel-breadcrumbs",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/davejamesmiller/laravel-breadcrumbs.git",
"reference": "828994d02cf1cb9dcfa946f04042dd0d0fb30357"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/davejamesmiller/laravel-breadcrumbs/zipball/828994d02cf1cb9dcfa946f04042dd0d0fb30357",
"reference": "828994d02cf1cb9dcfa946f04042dd0d0fb30357",
"shasum": ""
},
"require": {
"illuminate/support": ">=4.0",
"illuminate/view": ">=4.0",
"php": ">=5.3.0"
},
"require-dev": {
"mockery/mockery": "~0.8.0",
"satooshi/php-coveralls": "~0.6.0"
},
"type": "library",
"autoload": {
"psr-0": {
"DaveJamesMiller\\Breadcrumbs": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT License"
],
"authors": [
{
"name": "Dave James Miller",
"email": "dave@davejamesmiller.com",
"homepage": "http://davejamesmiller.com/"
}
],
"description": "A simple Laravel-style way to create breadcrumbs in Laravel 4.",
"homepage": "https://github.com/davejamesmiller/laravel-breadcrumbs",
"keywords": [
"laravel"
],
"time": "2014-01-26 23:27:42"
},
{
"name": "fabpot/goutte",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/fabpot/Goutte.git",
"reference": "a30e84e28fbaf14909d2d007249c24cd0ecd425e"
"reference": "33c03fbdeaf5f8a7a5cf0ad88b33c95eba43e7a3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fabpot/Goutte/zipball/a30e84e28fbaf14909d2d007249c24cd0ecd425e",
"reference": "a30e84e28fbaf14909d2d007249c24cd0ecd425e",
"url": "https://api.github.com/repos/fabpot/Goutte/zipball/33c03fbdeaf5f8a7a5cf0ad88b33c95eba43e7a3",
"reference": "33c03fbdeaf5f8a7a5cf0ad88b33c95eba43e7a3",
"shasum": ""
},
"require": {
@ -551,7 +504,9 @@
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
"email": "fabien@symfony.com",
"homepage": "http://fabien.potencier.org",
"role": "Lead Developer"
}
],
"description": "A simple PHP Web Scraper",
@ -559,7 +514,7 @@
"keywords": [
"scraper"
],
"time": "2014-01-31 18:02:50"
"time": "2014-02-17 17:11:08"
},
{
"name": "facebook/webdriver",
@ -1179,12 +1134,12 @@
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "3b2f77e3c65c02c0245dd359f9d5ea1fbc6da6a2"
"reference": "1faf4c8508378b0b102d148c53c322a8048b16dd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/3b2f77e3c65c02c0245dd359f9d5ea1fbc6da6a2",
"reference": "3b2f77e3c65c02c0245dd359f9d5ea1fbc6da6a2",
"url": "https://api.github.com/repos/laravel/framework/zipball/1faf4c8508378b0b102d148c53c322a8048b16dd",
"reference": "1faf4c8508378b0b102d148c53c322a8048b16dd",
"shasum": ""
},
"require": {
@ -1288,7 +1243,7 @@
"framework",
"laravel"
],
"time": "2014-02-15 18:07:56"
"time": "2014-02-18 17:05:05"
},
{
"name": "laravelbook/ardent",
@ -1405,12 +1360,12 @@
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "6cabe95f23322735f446b00ca8582b6c875dcbfe"
"reference": "4c74b127eb5f1475157bb54c2b7cb3d529fe18f7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/6cabe95f23322735f446b00ca8582b6c875dcbfe",
"reference": "6cabe95f23322735f446b00ca8582b6c875dcbfe",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/4c74b127eb5f1475157bb54c2b7cb3d529fe18f7",
"reference": "4c74b127eb5f1475157bb54c2b7cb3d529fe18f7",
"shasum": ""
},
"require": {
@ -1441,8 +1396,8 @@
}
},
"autoload": {
"psr-0": {
"Monolog": "src/"
"psr-4": {
"Monolog\\": "src/Monolog"
}
},
"notification-url": "https://packagist.org/downloads/",
@ -1464,7 +1419,7 @@
"logging",
"psr-3"
],
"time": "2014-02-06 20:35:10"
"time": "2014-02-18 14:12:15"
},
{
"name": "nesbot/carbon",
@ -2750,16 +2705,16 @@
},
{
"name": "omnipay/paypal",
"version": "dev-master",
"version": "v2.1.0",
"source": {
"type": "git",
"url": "https://github.com/omnipay/paypal.git",
"reference": "8a590482327daa6fc21397722fad2aee9940cf59"
"reference": "f2d5aaa9a4cc3bf73c701aae4b17e66ebccfecf5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/omnipay/paypal/zipball/8a590482327daa6fc21397722fad2aee9940cf59",
"reference": "8a590482327daa6fc21397722fad2aee9940cf59",
"url": "https://api.github.com/repos/omnipay/paypal/zipball/f2d5aaa9a4cc3bf73c701aae4b17e66ebccfecf5",
"reference": "f2d5aaa9a4cc3bf73c701aae4b17e66ebccfecf5",
"shasum": ""
},
"require": {
@ -2804,7 +2759,7 @@
"paypal",
"purchase"
],
"time": "2014-01-28 10:02:40"
"time": "2014-02-17 03:16:12"
},
{
"name": "omnipay/pin",
@ -3254,12 +3209,12 @@
"source": {
"type": "git",
"url": "https://github.com/patricktalmadge/bootstrapper.git",
"reference": "38f17694ad6dfb95743a367f2b1f18956c619730"
"reference": "28f928133ce7f0aedb1ba16c40533b613cfd8dc7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/patricktalmadge/bootstrapper/zipball/38f17694ad6dfb95743a367f2b1f18956c619730",
"reference": "38f17694ad6dfb95743a367f2b1f18956c619730",
"url": "https://api.github.com/repos/patricktalmadge/bootstrapper/zipball/28f928133ce7f0aedb1ba16c40533b613cfd8dc7",
"reference": "28f928133ce7f0aedb1ba16c40533b613cfd8dc7",
"shasum": ""
},
"require": {
@ -3301,7 +3256,7 @@
"bootstrap",
"laravel"
],
"time": "2014-02-14 10:32:33"
"time": "2014-02-18 17:27:51"
},
{
"name": "phpseclib/phpseclib",
@ -3309,12 +3264,12 @@
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "b03100601bbe739d5a0aa63c72e25b56c0132f3a"
"reference": "8dc659d694d3e0af68688600908ff1cac9d079dc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/b03100601bbe739d5a0aa63c72e25b56c0132f3a",
"reference": "b03100601bbe739d5a0aa63c72e25b56c0132f3a",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/8dc659d694d3e0af68688600908ff1cac9d079dc",
"reference": "8dc659d694d3e0af68688600908ff1cac9d079dc",
"shasum": ""
},
"require": {
@ -3395,7 +3350,7 @@
"x.509",
"x509"
],
"time": "2014-02-13 22:34:10"
"time": "2014-02-17 17:53:54"
},
{
"name": "phpunit/php-code-coverage",
@ -4023,12 +3978,12 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/Console.git",
"reference": "940f217cbc3c8a33e5403e7c595495c4884400fe"
"reference": "43717a2ba9a8695dac525b928134d1b6d620f13a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Console/zipball/940f217cbc3c8a33e5403e7c595495c4884400fe",
"reference": "940f217cbc3c8a33e5403e7c595495c4884400fe",
"url": "https://api.github.com/repos/symfony/Console/zipball/43717a2ba9a8695dac525b928134d1b6d620f13a",
"reference": "43717a2ba9a8695dac525b928134d1b6d620f13a",
"shasum": ""
},
"require": {
@ -4069,7 +4024,7 @@
],
"description": "Symfony Console Component",
"homepage": "http://symfony.com",
"time": "2014-02-11 13:52:09"
"time": "2014-02-18 15:41:06"
},
{
"name": "symfony/css-selector",
@ -4188,12 +4143,12 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/DomCrawler.git",
"reference": "5962504de9b36d955d88b08c1434d420627c8c01"
"reference": "f0b3d9f4b4bb8ec4b5fa57e8cb6bd8ff4e972b19"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/5962504de9b36d955d88b08c1434d420627c8c01",
"reference": "5962504de9b36d955d88b08c1434d420627c8c01",
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/f0b3d9f4b4bb8ec4b5fa57e8cb6bd8ff4e972b19",
"reference": "f0b3d9f4b4bb8ec4b5fa57e8cb6bd8ff4e972b19",
"shasum": ""
},
"require": {
@ -4234,7 +4189,7 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "http://symfony.com",
"time": "2014-02-11 13:52:09"
"time": "2014-02-18 15:41:06"
},
{
"name": "symfony/event-dispatcher",
@ -4520,12 +4475,12 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/Process.git",
"reference": "c175448bac997556f8ab972908a4e14c7291fb03"
"reference": "bfa6a176e9c680cf87bbd65096826ef000c46f51"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Process/zipball/c175448bac997556f8ab972908a4e14c7291fb03",
"reference": "c175448bac997556f8ab972908a4e14c7291fb03",
"url": "https://api.github.com/repos/symfony/Process/zipball/bfa6a176e9c680cf87bbd65096826ef000c46f51",
"reference": "bfa6a176e9c680cf87bbd65096826ef000c46f51",
"shasum": ""
},
"require": {
@ -4560,7 +4515,7 @@
],
"description": "Symfony Process Component",
"homepage": "http://symfony.com",
"time": "2014-02-11 13:52:09"
"time": "2014-02-18 16:29:54"
},
{
"name": "symfony/routing",