Dan Brown

Added activity history to to all entities. Fixes #12

...@@ -9,4 +9,5 @@ Homestead.yaml ...@@ -9,4 +9,5 @@ Homestead.yaml
9 /public/js 9 /public/js
10 /public/uploads 10 /public/uploads
11 /public/bower 11 /public/bower
12 -/storage/images
...\ No newline at end of file ...\ No newline at end of file
12 +/storage/images
13 +_ide_helper.php
...\ No newline at end of file ...\ No newline at end of file
......
1 +<?php
2 +
3 +namespace Oxbow;
4 +
5 +use Illuminate\Database\Eloquent\Model;
6 +
7 +/**
8 + * @property string key
9 + * @property \User user
10 + * @property \Entity entity
11 + * @property string extra
12 + */
13 +class Activity extends Model
14 +{
15 + public function entity()
16 + {
17 + if($this->entity_id) {
18 + return $this->morphTo('entity')->first();
19 + } else {
20 + return false;
21 + }
22 + }
23 +
24 + public function user()
25 + {
26 + return $this->belongsTo('Oxbow\User');
27 + }
28 +
29 + /**
30 + * Returns text from the language files, Looks up by using the
31 + * activity key.
32 + */
33 + public function getText()
34 + {
35 + return trans('activities.' . $this->key);
36 + }
37 +
38 +}
...@@ -37,4 +37,15 @@ class Book extends Entity ...@@ -37,4 +37,15 @@ class Book extends Entity
37 return $pages->sortBy('priority'); 37 return $pages->sortBy('priority');
38 } 38 }
39 39
40 + /**
41 + * Gets only the most recent activity for this book
42 + * @param int $limit
43 + * @param int $page
44 + * @return mixed
45 + */
46 + public function recentActivity($limit = 20, $page=0)
47 + {
48 + return $this->hasMany('Oxbow\Activity')->orderBy('created_at', 'desc')->skip($limit*$page)->take($limit)->get();
49 + }
50 +
40 } 51 }
......
...@@ -34,4 +34,25 @@ class Entity extends Model ...@@ -34,4 +34,25 @@ class Entity extends Model
34 { 34 {
35 return [get_class($this), $this->id] === [get_class($entity), $entity->id]; 35 return [get_class($this), $this->id] === [get_class($entity), $entity->id];
36 } 36 }
37 +
38 + /**
39 + * Gets the activity for this entity.
40 + * @return \Illuminate\Database\Eloquent\Relations\MorphMany
41 + */
42 + public function activity()
43 + {
44 + return $this->morphMany('Oxbow\Activity', 'entity')->orderBy('created_at', 'desc');
45 + }
46 +
47 + /**
48 + * Gets only the most recent activity
49 + * @param int $limit
50 + * @param int $page
51 + * @return mixed
52 + */
53 + public function recentActivity($limit = 20, $page=0)
54 + {
55 + return $this->activity()->skip($limit*$page)->take($limit)->get();
56 + }
57 +
37 } 58 }
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
2 2
3 namespace Oxbow\Http\Controllers; 3 namespace Oxbow\Http\Controllers;
4 4
5 +use Activity;
5 use Illuminate\Http\Request; 6 use Illuminate\Http\Request;
6 7
7 use Illuminate\Support\Facades\Auth; 8 use Illuminate\Support\Facades\Auth;
...@@ -65,6 +66,7 @@ class BookController extends Controller ...@@ -65,6 +66,7 @@ class BookController extends Controller
65 $book->created_by = Auth::user()->id; 66 $book->created_by = Auth::user()->id;
66 $book->updated_by = Auth::user()->id; 67 $book->updated_by = Auth::user()->id;
67 $book->save(); 68 $book->save();
69 + Activity::add($book, 'book_create', $book->id);
68 return redirect('/books'); 70 return redirect('/books');
69 } 71 }
70 72
...@@ -110,6 +112,7 @@ class BookController extends Controller ...@@ -110,6 +112,7 @@ class BookController extends Controller
110 $book->slug = $this->bookRepo->findSuitableSlug($book->name, $book->id); 112 $book->slug = $this->bookRepo->findSuitableSlug($book->name, $book->id);
111 $book->updated_by = Auth::user()->id; 113 $book->updated_by = Auth::user()->id;
112 $book->save(); 114 $book->save();
115 + Activity::add($book, 'book_update', $book->id);
113 return redirect($book->getUrl()); 116 return redirect($book->getUrl());
114 } 117 }
115 118
...@@ -132,7 +135,9 @@ class BookController extends Controller ...@@ -132,7 +135,9 @@ class BookController extends Controller
132 */ 135 */
133 public function destroy($bookSlug) 136 public function destroy($bookSlug)
134 { 137 {
138 + $bookName = $this->bookRepo->getBySlug($bookSlug)->name;
135 $this->bookRepo->destroyBySlug($bookSlug); 139 $this->bookRepo->destroyBySlug($bookSlug);
140 + Activity::addMessage('book_delete', 0, $bookName);
136 return redirect('/books'); 141 return redirect('/books');
137 } 142 }
138 } 143 }
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
2 2
3 namespace Oxbow\Http\Controllers; 3 namespace Oxbow\Http\Controllers;
4 4
5 +use Activity;
5 use Illuminate\Http\Request; 6 use Illuminate\Http\Request;
6 7
7 use Illuminate\Support\Facades\Auth; 8 use Illuminate\Support\Facades\Auth;
...@@ -60,6 +61,7 @@ class ChapterController extends Controller ...@@ -60,6 +61,7 @@ class ChapterController extends Controller
60 $chapter->created_by = Auth::user()->id; 61 $chapter->created_by = Auth::user()->id;
61 $chapter->updated_by = Auth::user()->id; 62 $chapter->updated_by = Auth::user()->id;
62 $book->chapters()->save($chapter); 63 $book->chapters()->save($chapter);
64 + Activity::add($chapter, 'chapter_create', $book->id);
63 return redirect($book->getUrl()); 65 return redirect($book->getUrl());
64 } 66 }
65 67
...@@ -107,6 +109,7 @@ class ChapterController extends Controller ...@@ -107,6 +109,7 @@ class ChapterController extends Controller
107 $chapter->slug = $this->chapterRepo->findSuitableSlug($chapter->name, $book->id, $chapter->id); 109 $chapter->slug = $this->chapterRepo->findSuitableSlug($chapter->name, $book->id, $chapter->id);
108 $chapter->updated_by = Auth::user()->id; 110 $chapter->updated_by = Auth::user()->id;
109 $chapter->save(); 111 $chapter->save();
112 + Activity::add($chapter, 'chapter_update', $book->id);
110 return redirect($chapter->getUrl()); 113 return redirect($chapter->getUrl());
111 } 114 }
112 115
...@@ -134,6 +137,7 @@ class ChapterController extends Controller ...@@ -134,6 +137,7 @@ class ChapterController extends Controller
134 { 137 {
135 $book = $this->bookRepo->getBySlug($bookSlug); 138 $book = $this->bookRepo->getBySlug($bookSlug);
136 $chapter = $this->chapterRepo->getBySlug($chapterSlug, $book->id); 139 $chapter = $this->chapterRepo->getBySlug($chapterSlug, $book->id);
140 + $chapterName = $chapter->name;
137 if(count($chapter->pages) > 0) { 141 if(count($chapter->pages) > 0) {
138 foreach($chapter->pages as $page) { 142 foreach($chapter->pages as $page) {
139 $page->chapter_id = 0; 143 $page->chapter_id = 0;
...@@ -141,6 +145,7 @@ class ChapterController extends Controller ...@@ -141,6 +145,7 @@ class ChapterController extends Controller
141 } 145 }
142 } 146 }
143 $chapter->delete(); 147 $chapter->delete();
148 + Activity::addMessage('chapter_delete', $book->id, $chapterName);
144 return redirect($book->getUrl()); 149 return redirect($book->getUrl());
145 } 150 }
146 } 151 }
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
2 2
3 namespace Oxbow\Http\Controllers; 3 namespace Oxbow\Http\Controllers;
4 4
5 +use Activity;
5 use Illuminate\Http\Request; 6 use Illuminate\Http\Request;
6 7
7 use Illuminate\Support\Facades\Auth; 8 use Illuminate\Support\Facades\Auth;
8 -use Illuminate\Support\Str;
9 use Oxbow\Http\Requests; 9 use Oxbow\Http\Requests;
10 use Oxbow\Repos\BookRepo; 10 use Oxbow\Repos\BookRepo;
11 use Oxbow\Repos\ChapterRepo; 11 use Oxbow\Repos\ChapterRepo;
...@@ -76,6 +76,7 @@ class PageController extends Controller ...@@ -76,6 +76,7 @@ class PageController extends Controller
76 $page->updated_by = Auth::user()->id; 76 $page->updated_by = Auth::user()->id;
77 $page->save(); 77 $page->save();
78 $this->pageRepo->saveRevision($page); 78 $this->pageRepo->saveRevision($page);
79 + Activity::add($page, 'page_create', $book->id);
79 return redirect($page->getUrl()); 80 return redirect($page->getUrl());
80 } 81 }
81 82
...@@ -120,6 +121,7 @@ class PageController extends Controller ...@@ -120,6 +121,7 @@ class PageController extends Controller
120 $book = $this->bookRepo->getBySlug($bookSlug); 121 $book = $this->bookRepo->getBySlug($bookSlug);
121 $page = $this->pageRepo->getBySlug($pageSlug, $book->id); 122 $page = $this->pageRepo->getBySlug($pageSlug, $book->id);
122 $this->pageRepo->updatePage($page, $book->id, $request->all()); 123 $this->pageRepo->updatePage($page, $book->id, $request->all());
124 + Activity::add($page, 'page_update', $book->id);
123 return redirect($page->getUrl()); 125 return redirect($page->getUrl());
124 } 126 }
125 127
...@@ -187,6 +189,7 @@ class PageController extends Controller ...@@ -187,6 +189,7 @@ class PageController extends Controller
187 } 189 }
188 $model->save(); 190 $model->save();
189 } 191 }
192 + Activity::add($book, 'book_sort', $book->id);
190 return redirect($book->getUrl()); 193 return redirect($book->getUrl());
191 } 194 }
192 195
...@@ -215,6 +218,7 @@ class PageController extends Controller ...@@ -215,6 +218,7 @@ class PageController extends Controller
215 { 218 {
216 $book = $this->bookRepo->getBySlug($bookSlug); 219 $book = $this->bookRepo->getBySlug($bookSlug);
217 $page = $this->pageRepo->getBySlug($pageSlug, $book->id); 220 $page = $this->pageRepo->getBySlug($pageSlug, $book->id);
221 + Activity::addMessage('page_delete', $book->id, $page->name);
218 $page->delete(); 222 $page->delete();
219 return redirect($book->getUrl()); 223 return redirect($book->getUrl());
220 } 224 }
...@@ -254,6 +258,7 @@ class PageController extends Controller ...@@ -254,6 +258,7 @@ class PageController extends Controller
254 $page = $this->pageRepo->getBySlug($pageSlug, $book->id); 258 $page = $this->pageRepo->getBySlug($pageSlug, $book->id);
255 $revision = $this->pageRepo->getRevisionById($revisionId); 259 $revision = $this->pageRepo->getRevisionById($revisionId);
256 $page = $this->pageRepo->updatePage($page, $book->id, $revision->toArray()); 260 $page = $this->pageRepo->updatePage($page, $book->id, $revision->toArray());
261 + Activity::add($page, 'page_restore', $book->id);
257 return redirect($page->getUrl()); 262 return redirect($page->getUrl());
258 } 263 }
259 } 264 }
......
1 +<?php
2 +
3 +namespace Oxbow\Providers;
4 +
5 +use Illuminate\Support\ServiceProvider;
6 +use Oxbow\Services\ActivityService;
7 +
8 +class CustomFacadeProvider extends ServiceProvider
9 +{
10 + /**
11 + * Bootstrap the application services.
12 + *
13 + * @return void
14 + */
15 + public function boot()
16 + {
17 + //
18 + }
19 +
20 + /**
21 + * Register the application services.
22 + *
23 + * @return void
24 + */
25 + public function register()
26 + {
27 + $this->app->bind('activity', function() {
28 + return new ActivityService($this->app->make('Oxbow\Activity'));
29 + });
30 + }
31 +}
1 +<?php namespace Oxbow\Services;
2 +
3 +use Illuminate\Support\Facades\Auth;
4 +use Oxbow\Activity;
5 +use Oxbow\Entity;
6 +
7 +class ActivityService
8 +{
9 + protected $activity;
10 + protected $user;
11 +
12 + /**
13 + * ActivityService constructor.
14 + * @param $activity
15 + */
16 + public function __construct(Activity $activity)
17 + {
18 + $this->activity = $activity;
19 + $this->user = Auth::user();
20 + }
21 +
22 +
23 + /**
24 + * Add activity data to database.
25 + * @para Entity $entity
26 + * @param $activityKey
27 + * @param int $bookId
28 + */
29 + public function add(Entity $entity, $activityKey, $bookId = 0, $extra = false)
30 + {
31 + $this->activity->user_id = $this->user->id;
32 + $this->activity->book_id = $bookId;
33 + $this->activity->key = strtolower($activityKey);
34 + if($extra !== false) {
35 + $this->activity->extra = $extra;
36 + }
37 + $entity->activity()->save($this->activity);
38 + }
39 +
40 + /**
41 + * Adds a activity history with a message & without binding to a entitiy.
42 + * @param $activityKey
43 + * @param int $bookId
44 + * @param bool|false $extra
45 + */
46 + public function addMessage($activityKey, $bookId = 0, $extra = false)
47 + {
48 + $this->activity->user_id = $this->user->id;
49 + $this->activity->book_id = $bookId;
50 + $this->activity->key = strtolower($activityKey);
51 + if($extra !== false) {
52 + $this->activity->extra = $extra;
53 + }
54 + $this->activity->save();
55 + }
56 +
57 +}
...\ No newline at end of file ...\ No newline at end of file
1 +<?php namespace Oxbow\Services\Facades;
2 +
3 +
4 +use Illuminate\Support\Facades\Facade;
5 +
6 +class Activity extends Facade
7 +{
8 + /**
9 + * Get the registered name of the component.
10 + *
11 + * @return string
12 + */
13 + protected static function getFacadeAccessor() { return 'activity'; }
14 +}
...\ No newline at end of file ...\ No newline at end of file
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
7 "require": { 7 "require": {
8 "php": ">=5.5.9", 8 "php": ">=5.5.9",
9 "laravel/framework": "5.1.*", 9 "laravel/framework": "5.1.*",
10 - "intervention/image": "^2.3" 10 + "intervention/image": "^2.3",
11 + "barryvdh/laravel-ide-helper": "^2.1"
11 }, 12 },
12 "require-dev": { 13 "require-dev": {
13 "fzaninotto/faker": "~1.4", 14 "fzaninotto/faker": "~1.4",
......
...@@ -4,9 +4,72 @@ ...@@ -4,9 +4,72 @@
4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 "This file is @generated automatically" 5 "This file is @generated automatically"
6 ], 6 ],
7 - "hash": "f1c04613ce972bfab5c142cb0b588385", 7 + "hash": "16de3a44150d9425a501c9873cb28eaf",
8 "packages": [ 8 "packages": [
9 { 9 {
10 + "name": "barryvdh/laravel-ide-helper",
11 + "version": "v2.1.0",
12 + "source": {
13 + "type": "git",
14 + "url": "https://github.com/barryvdh/laravel-ide-helper.git",
15 + "reference": "83999f8467374adcb8893f566c9171c9d9691f50"
16 + },
17 + "dist": {
18 + "type": "zip",
19 + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/83999f8467374adcb8893f566c9171c9d9691f50",
20 + "reference": "83999f8467374adcb8893f566c9171c9d9691f50",
21 + "shasum": ""
22 + },
23 + "require": {
24 + "illuminate/console": "5.0.x|5.1.x",
25 + "illuminate/filesystem": "5.0.x|5.1.x",
26 + "illuminate/support": "5.0.x|5.1.x",
27 + "php": ">=5.4.0",
28 + "phpdocumentor/reflection-docblock": "2.0.4",
29 + "symfony/class-loader": "~2.3"
30 + },
31 + "require-dev": {
32 + "doctrine/dbal": "~2.3"
33 + },
34 + "suggest": {
35 + "doctrine/dbal": "Load information from the database about models for phpdocs (~2.3)"
36 + },
37 + "type": "library",
38 + "extra": {
39 + "branch-alias": {
40 + "dev-master": "2.1-dev"
41 + }
42 + },
43 + "autoload": {
44 + "psr-4": {
45 + "Barryvdh\\LaravelIdeHelper\\": "src"
46 + }
47 + },
48 + "notification-url": "https://packagist.org/downloads/",
49 + "license": [
50 + "MIT"
51 + ],
52 + "authors": [
53 + {
54 + "name": "Barry vd. Heuvel",
55 + "email": "barryvdh@gmail.com"
56 + }
57 + ],
58 + "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.",
59 + "keywords": [
60 + "autocomplete",
61 + "codeintel",
62 + "helper",
63 + "ide",
64 + "laravel",
65 + "netbeans",
66 + "phpdoc",
67 + "phpstorm",
68 + "sublime"
69 + ],
70 + "time": "2015-08-13 11:40:00"
71 + },
72 + {
10 "name": "classpreloader/classpreloader", 73 "name": "classpreloader/classpreloader",
11 "version": "2.0.0", 74 "version": "2.0.0",
12 "source": { 75 "source": {
...@@ -62,16 +125,16 @@ ...@@ -62,16 +125,16 @@
62 }, 125 },
63 { 126 {
64 "name": "danielstjules/stringy", 127 "name": "danielstjules/stringy",
65 - "version": "1.9.0", 128 + "version": "1.10.0",
66 "source": { 129 "source": {
67 "type": "git", 130 "type": "git",
68 "url": "https://github.com/danielstjules/Stringy.git", 131 "url": "https://github.com/danielstjules/Stringy.git",
69 - "reference": "3cf18e9e424a6dedc38b7eb7ef580edb0929461b" 132 + "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b"
70 }, 133 },
71 "dist": { 134 "dist": {
72 "type": "zip", 135 "type": "zip",
73 - "url": "https://api.github.com/repos/danielstjules/Stringy/zipball/3cf18e9e424a6dedc38b7eb7ef580edb0929461b", 136 + "url": "https://api.github.com/repos/danielstjules/Stringy/zipball/4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
74 - "reference": "3cf18e9e424a6dedc38b7eb7ef580edb0929461b", 137 + "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
75 "shasum": "" 138 "shasum": ""
76 }, 139 },
77 "require": { 140 "require": {
...@@ -114,7 +177,7 @@ ...@@ -114,7 +177,7 @@
114 "utility", 177 "utility",
115 "utils" 178 "utils"
116 ], 179 ],
117 - "time": "2015-02-10 06:19:18" 180 + "time": "2015-07-23 00:54:12"
118 }, 181 },
119 { 182 {
120 "name": "dnoegel/php-xdg-base-dir", 183 "name": "dnoegel/php-xdg-base-dir",
...@@ -218,16 +281,16 @@ ...@@ -218,16 +281,16 @@
218 }, 281 },
219 { 282 {
220 "name": "guzzlehttp/psr7", 283 "name": "guzzlehttp/psr7",
221 - "version": "1.1.0", 284 + "version": "1.2.0",
222 "source": { 285 "source": {
223 "type": "git", 286 "type": "git",
224 "url": "https://github.com/guzzle/psr7.git", 287 "url": "https://github.com/guzzle/psr7.git",
225 - "reference": "af0e1758de355eb113917ad79c3c0e3604bce4bd" 288 + "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e"
226 }, 289 },
227 "dist": { 290 "dist": {
228 "type": "zip", 291 "type": "zip",
229 - "url": "https://api.github.com/repos/guzzle/psr7/zipball/af0e1758de355eb113917ad79c3c0e3604bce4bd", 292 + "url": "https://api.github.com/repos/guzzle/psr7/zipball/4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
230 - "reference": "af0e1758de355eb113917ad79c3c0e3604bce4bd", 293 + "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
231 "shasum": "" 294 "shasum": ""
232 }, 295 },
233 "require": { 296 "require": {
...@@ -251,7 +314,7 @@ ...@@ -251,7 +314,7 @@
251 "GuzzleHttp\\Psr7\\": "src/" 314 "GuzzleHttp\\Psr7\\": "src/"
252 }, 315 },
253 "files": [ 316 "files": [
254 - "src/functions.php" 317 + "src/functions_include.php"
255 ] 318 ]
256 }, 319 },
257 "notification-url": "https://packagist.org/downloads/", 320 "notification-url": "https://packagist.org/downloads/",
...@@ -272,7 +335,7 @@ ...@@ -272,7 +335,7 @@
272 "stream", 335 "stream",
273 "uri" 336 "uri"
274 ], 337 ],
275 - "time": "2015-06-24 19:55:15" 338 + "time": "2015-08-15 19:32:36"
276 }, 339 },
277 { 340 {
278 "name": "intervention/image", 341 "name": "intervention/image",
...@@ -483,16 +546,16 @@ ...@@ -483,16 +546,16 @@
483 }, 546 },
484 { 547 {
485 "name": "laravel/framework", 548 "name": "laravel/framework",
486 - "version": "v5.1.7", 549 + "version": "v5.1.10",
487 "source": { 550 "source": {
488 "type": "git", 551 "type": "git",
489 "url": "https://github.com/laravel/framework.git", 552 "url": "https://github.com/laravel/framework.git",
490 - "reference": "5e942882319845f71c681ce6e85831129bf66426" 553 + "reference": "d47ccc8de10ccb6f328cc90f901ca5e47e077c93"
491 }, 554 },
492 "dist": { 555 "dist": {
493 "type": "zip", 556 "type": "zip",
494 - "url": "https://api.github.com/repos/laravel/framework/zipball/5e942882319845f71c681ce6e85831129bf66426", 557 + "url": "https://api.github.com/repos/laravel/framework/zipball/d47ccc8de10ccb6f328cc90f901ca5e47e077c93",
495 - "reference": "5e942882319845f71c681ce6e85831129bf66426", 558 + "reference": "d47ccc8de10ccb6f328cc90f901ca5e47e077c93",
496 "shasum": "" 559 "shasum": ""
497 }, 560 },
498 "require": { 561 "require": {
...@@ -607,20 +670,20 @@ ...@@ -607,20 +670,20 @@
607 "framework", 670 "framework",
608 "laravel" 671 "laravel"
609 ], 672 ],
610 - "time": "2015-07-12 02:27:36" 673 + "time": "2015-08-12 18:16:08"
611 }, 674 },
612 { 675 {
613 "name": "league/flysystem", 676 "name": "league/flysystem",
614 - "version": "1.0.7", 677 + "version": "1.0.11",
615 "source": { 678 "source": {
616 "type": "git", 679 "type": "git",
617 "url": "https://github.com/thephpleague/flysystem.git", 680 "url": "https://github.com/thephpleague/flysystem.git",
618 - "reference": "b58431785768abbb4f00c10e66a065095a0693ef" 681 + "reference": "c16222fdc02467eaa12cb6d6d0e65527741f6040"
619 }, 682 },
620 "dist": { 683 "dist": {
621 "type": "zip", 684 "type": "zip",
622 - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b58431785768abbb4f00c10e66a065095a0693ef", 685 + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c16222fdc02467eaa12cb6d6d0e65527741f6040",
623 - "reference": "b58431785768abbb4f00c10e66a065095a0693ef", 686 + "reference": "c16222fdc02467eaa12cb6d6d0e65527741f6040",
624 "shasum": "" 687 "shasum": ""
625 }, 688 },
626 "require": { 689 "require": {
...@@ -688,20 +751,20 @@ ...@@ -688,20 +751,20 @@
688 "sftp", 751 "sftp",
689 "storage" 752 "storage"
690 ], 753 ],
691 - "time": "2015-07-11 14:58:06" 754 + "time": "2015-07-28 20:41:58"
692 }, 755 },
693 { 756 {
694 "name": "monolog/monolog", 757 "name": "monolog/monolog",
695 - "version": "1.14.0", 758 + "version": "1.16.0",
696 "source": { 759 "source": {
697 "type": "git", 760 "type": "git",
698 "url": "https://github.com/Seldaek/monolog.git", 761 "url": "https://github.com/Seldaek/monolog.git",
699 - "reference": "b287fbbe1ca27847064beff2bad7fb6920bf08cc" 762 + "reference": "c0c0b4bee3aabce7182876b0d912ef2595563db7"
700 }, 763 },
701 "dist": { 764 "dist": {
702 "type": "zip", 765 "type": "zip",
703 - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b287fbbe1ca27847064beff2bad7fb6920bf08cc", 766 + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c0c0b4bee3aabce7182876b0d912ef2595563db7",
704 - "reference": "b287fbbe1ca27847064beff2bad7fb6920bf08cc", 767 + "reference": "c0c0b4bee3aabce7182876b0d912ef2595563db7",
705 "shasum": "" 768 "shasum": ""
706 }, 769 },
707 "require": { 770 "require": {
...@@ -738,7 +801,7 @@ ...@@ -738,7 +801,7 @@
738 "type": "library", 801 "type": "library",
739 "extra": { 802 "extra": {
740 "branch-alias": { 803 "branch-alias": {
741 - "dev-master": "1.14.x-dev" 804 + "dev-master": "1.16.x-dev"
742 } 805 }
743 }, 806 },
744 "autoload": { 807 "autoload": {
...@@ -764,7 +827,7 @@ ...@@ -764,7 +827,7 @@
764 "logging", 827 "logging",
765 "psr-3" 828 "psr-3"
766 ], 829 ],
767 - "time": "2015-06-19 13:29:54" 830 + "time": "2015-08-09 17:44:44"
768 }, 831 },
769 { 832 {
770 "name": "mtdowling/cron-expression", 833 "name": "mtdowling/cron-expression",
...@@ -859,16 +922,16 @@ ...@@ -859,16 +922,16 @@
859 }, 922 },
860 { 923 {
861 "name": "nikic/php-parser", 924 "name": "nikic/php-parser",
862 - "version": "v1.3.0", 925 + "version": "v1.4.0",
863 "source": { 926 "source": {
864 "type": "git", 927 "type": "git",
865 "url": "https://github.com/nikic/PHP-Parser.git", 928 "url": "https://github.com/nikic/PHP-Parser.git",
866 - "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca" 929 + "reference": "196f177cfefa0f1f7166c0a05d8255889be12418"
867 }, 930 },
868 "dist": { 931 "dist": {
869 "type": "zip", 932 "type": "zip",
870 - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dff239267fd1befa1cd40430c9ed12591aa720ca", 933 + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/196f177cfefa0f1f7166c0a05d8255889be12418",
871 - "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca", 934 + "reference": "196f177cfefa0f1f7166c0a05d8255889be12418",
872 "shasum": "" 935 "shasum": ""
873 }, 936 },
874 "require": { 937 "require": {
...@@ -878,7 +941,7 @@ ...@@ -878,7 +941,7 @@
878 "type": "library", 941 "type": "library",
879 "extra": { 942 "extra": {
880 "branch-alias": { 943 "branch-alias": {
881 - "dev-master": "1.3-dev" 944 + "dev-master": "1.4-dev"
882 } 945 }
883 }, 946 },
884 "autoload": { 947 "autoload": {
...@@ -900,7 +963,56 @@ ...@@ -900,7 +963,56 @@
900 "parser", 963 "parser",
901 "php" 964 "php"
902 ], 965 ],
903 - "time": "2015-05-02 15:40:40" 966 + "time": "2015-07-14 17:31:05"
967 + },
968 + {
969 + "name": "phpdocumentor/reflection-docblock",
970 + "version": "2.0.4",
971 + "source": {
972 + "type": "git",
973 + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
974 + "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
975 + },
976 + "dist": {
977 + "type": "zip",
978 + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
979 + "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
980 + "shasum": ""
981 + },
982 + "require": {
983 + "php": ">=5.3.3"
984 + },
985 + "require-dev": {
986 + "phpunit/phpunit": "~4.0"
987 + },
988 + "suggest": {
989 + "dflydev/markdown": "~1.0",
990 + "erusev/parsedown": "~1.0"
991 + },
992 + "type": "library",
993 + "extra": {
994 + "branch-alias": {
995 + "dev-master": "2.0.x-dev"
996 + }
997 + },
998 + "autoload": {
999 + "psr-0": {
1000 + "phpDocumentor": [
1001 + "src/"
1002 + ]
1003 + }
1004 + },
1005 + "notification-url": "https://packagist.org/downloads/",
1006 + "license": [
1007 + "MIT"
1008 + ],
1009 + "authors": [
1010 + {
1011 + "name": "Mike van Riel",
1012 + "email": "mike.vanriel@naenius.com"
1013 + }
1014 + ],
1015 + "time": "2015-02-03 12:10:50"
904 }, 1016 },
905 { 1017 {
906 "name": "psr/http-message", 1018 "name": "psr/http-message",
...@@ -991,16 +1103,16 @@ ...@@ -991,16 +1103,16 @@
991 }, 1103 },
992 { 1104 {
993 "name": "psy/psysh", 1105 "name": "psy/psysh",
994 - "version": "v0.5.1", 1106 + "version": "v0.5.2",
995 "source": { 1107 "source": {
996 "type": "git", 1108 "type": "git",
997 "url": "https://github.com/bobthecow/psysh.git", 1109 "url": "https://github.com/bobthecow/psysh.git",
998 - "reference": "e5a46a767928e85f1f47dda654beda8c680ddd94" 1110 + "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975"
999 }, 1111 },
1000 "dist": { 1112 "dist": {
1001 "type": "zip", 1113 "type": "zip",
1002 - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/e5a46a767928e85f1f47dda654beda8c680ddd94", 1114 + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/aaf8772ade08b5f0f6830774a5d5c2f800415975",
1003 - "reference": "e5a46a767928e85f1f47dda654beda8c680ddd94", 1115 + "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975",
1004 "shasum": "" 1116 "shasum": ""
1005 }, 1117 },
1006 "require": { 1118 "require": {
...@@ -1059,7 +1171,7 @@ ...@@ -1059,7 +1171,7 @@
1059 "interactive", 1171 "interactive",
1060 "shell" 1172 "shell"
1061 ], 1173 ],
1062 - "time": "2015-07-03 16:48:00" 1174 + "time": "2015-07-16 15:26:57"
1063 }, 1175 },
1064 { 1176 {
1065 "name": "swiftmailer/swiftmailer", 1177 "name": "swiftmailer/swiftmailer",
...@@ -1115,17 +1227,67 @@ ...@@ -1115,17 +1227,67 @@
1115 "time": "2015-06-06 14:19:39" 1227 "time": "2015-06-06 14:19:39"
1116 }, 1228 },
1117 { 1229 {
1230 + "name": "symfony/class-loader",
1231 + "version": "v2.7.3",
1232 + "source": {
1233 + "type": "git",
1234 + "url": "https://github.com/symfony/ClassLoader.git",
1235 + "reference": "2fccbc544997340808801a7410cdcb96dd12edc4"
1236 + },
1237 + "dist": {
1238 + "type": "zip",
1239 + "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/2fccbc544997340808801a7410cdcb96dd12edc4",
1240 + "reference": "2fccbc544997340808801a7410cdcb96dd12edc4",
1241 + "shasum": ""
1242 + },
1243 + "require": {
1244 + "php": ">=5.3.9"
1245 + },
1246 + "require-dev": {
1247 + "symfony/finder": "~2.0,>=2.0.5",
1248 + "symfony/phpunit-bridge": "~2.7"
1249 + },
1250 + "type": "library",
1251 + "extra": {
1252 + "branch-alias": {
1253 + "dev-master": "2.7-dev"
1254 + }
1255 + },
1256 + "autoload": {
1257 + "psr-4": {
1258 + "Symfony\\Component\\ClassLoader\\": ""
1259 + }
1260 + },
1261 + "notification-url": "https://packagist.org/downloads/",
1262 + "license": [
1263 + "MIT"
1264 + ],
1265 + "authors": [
1266 + {
1267 + "name": "Fabien Potencier",
1268 + "email": "fabien@symfony.com"
1269 + },
1270 + {
1271 + "name": "Symfony Community",
1272 + "homepage": "https://symfony.com/contributors"
1273 + }
1274 + ],
1275 + "description": "Symfony ClassLoader Component",
1276 + "homepage": "https://symfony.com",
1277 + "time": "2015-06-25 12:52:11"
1278 + },
1279 + {
1118 "name": "symfony/console", 1280 "name": "symfony/console",
1119 - "version": "v2.7.1", 1281 + "version": "v2.7.3",
1120 "source": { 1282 "source": {
1121 "type": "git", 1283 "type": "git",
1122 "url": "https://github.com/symfony/Console.git", 1284 "url": "https://github.com/symfony/Console.git",
1123 - "reference": "564398bc1f33faf92fc2ec86859983d30eb81806" 1285 + "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e"
1124 }, 1286 },
1125 "dist": { 1287 "dist": {
1126 "type": "zip", 1288 "type": "zip",
1127 - "url": "https://api.github.com/repos/symfony/Console/zipball/564398bc1f33faf92fc2ec86859983d30eb81806", 1289 + "url": "https://api.github.com/repos/symfony/Console/zipball/d6cf02fe73634c96677e428f840704bfbcaec29e",
1128 - "reference": "564398bc1f33faf92fc2ec86859983d30eb81806", 1290 + "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e",
1129 "shasum": "" 1291 "shasum": ""
1130 }, 1292 },
1131 "require": { 1293 "require": {
...@@ -1169,11 +1331,11 @@ ...@@ -1169,11 +1331,11 @@
1169 ], 1331 ],
1170 "description": "Symfony Console Component", 1332 "description": "Symfony Console Component",
1171 "homepage": "https://symfony.com", 1333 "homepage": "https://symfony.com",
1172 - "time": "2015-06-10 15:30:22" 1334 + "time": "2015-07-28 15:18:12"
1173 }, 1335 },
1174 { 1336 {
1175 "name": "symfony/css-selector", 1337 "name": "symfony/css-selector",
1176 - "version": "v2.7.1", 1338 + "version": "v2.7.3",
1177 "source": { 1339 "source": {
1178 "type": "git", 1340 "type": "git",
1179 "url": "https://github.com/symfony/CssSelector.git", 1341 "url": "https://github.com/symfony/CssSelector.git",
...@@ -1226,16 +1388,16 @@ ...@@ -1226,16 +1388,16 @@
1226 }, 1388 },
1227 { 1389 {
1228 "name": "symfony/debug", 1390 "name": "symfony/debug",
1229 - "version": "v2.7.1", 1391 + "version": "v2.7.3",
1230 "source": { 1392 "source": {
1231 "type": "git", 1393 "type": "git",
1232 "url": "https://github.com/symfony/Debug.git", 1394 "url": "https://github.com/symfony/Debug.git",
1233 - "reference": "075070230c5bbc65abde8241191655bbce0716e2" 1395 + "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3"
1234 }, 1396 },
1235 "dist": { 1397 "dist": {
1236 "type": "zip", 1398 "type": "zip",
1237 - "url": "https://api.github.com/repos/symfony/Debug/zipball/075070230c5bbc65abde8241191655bbce0716e2", 1399 + "url": "https://api.github.com/repos/symfony/Debug/zipball/9daa1bf9f7e615fa2fba30357e479a90141222e3",
1238 - "reference": "075070230c5bbc65abde8241191655bbce0716e2", 1400 + "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3",
1239 "shasum": "" 1401 "shasum": ""
1240 }, 1402 },
1241 "require": { 1403 "require": {
...@@ -1282,20 +1444,20 @@ ...@@ -1282,20 +1444,20 @@
1282 ], 1444 ],
1283 "description": "Symfony Debug Component", 1445 "description": "Symfony Debug Component",
1284 "homepage": "https://symfony.com", 1446 "homepage": "https://symfony.com",
1285 - "time": "2015-06-08 09:37:21" 1447 + "time": "2015-07-09 16:07:40"
1286 }, 1448 },
1287 { 1449 {
1288 "name": "symfony/dom-crawler", 1450 "name": "symfony/dom-crawler",
1289 - "version": "v2.7.1", 1451 + "version": "v2.7.3",
1290 "source": { 1452 "source": {
1291 "type": "git", 1453 "type": "git",
1292 "url": "https://github.com/symfony/DomCrawler.git", 1454 "url": "https://github.com/symfony/DomCrawler.git",
1293 - "reference": "11d8eb8ccc1533f4c2d89a025f674894fda520b3" 1455 + "reference": "9dabece63182e95c42b06967a0d929a5df78bc35"
1294 }, 1456 },
1295 "dist": { 1457 "dist": {
1296 "type": "zip", 1458 "type": "zip",
1297 - "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/11d8eb8ccc1533f4c2d89a025f674894fda520b3", 1459 + "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/9dabece63182e95c42b06967a0d929a5df78bc35",
1298 - "reference": "11d8eb8ccc1533f4c2d89a025f674894fda520b3", 1460 + "reference": "9dabece63182e95c42b06967a0d929a5df78bc35",
1299 "shasum": "" 1461 "shasum": ""
1300 }, 1462 },
1301 "require": { 1463 "require": {
...@@ -1335,20 +1497,20 @@ ...@@ -1335,20 +1497,20 @@
1335 ], 1497 ],
1336 "description": "Symfony DomCrawler Component", 1498 "description": "Symfony DomCrawler Component",
1337 "homepage": "https://symfony.com", 1499 "homepage": "https://symfony.com",
1338 - "time": "2015-05-22 14:54:25" 1500 + "time": "2015-07-09 16:07:40"
1339 }, 1501 },
1340 { 1502 {
1341 "name": "symfony/event-dispatcher", 1503 "name": "symfony/event-dispatcher",
1342 - "version": "v2.7.1", 1504 + "version": "v2.7.3",
1343 "source": { 1505 "source": {
1344 "type": "git", 1506 "type": "git",
1345 "url": "https://github.com/symfony/EventDispatcher.git", 1507 "url": "https://github.com/symfony/EventDispatcher.git",
1346 - "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9" 1508 + "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3"
1347 }, 1509 },
1348 "dist": { 1510 "dist": {
1349 "type": "zip", 1511 "type": "zip",
1350 - "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/be3c5ff8d503c46768aeb78ce6333051aa6f26d9", 1512 + "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
1351 - "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9", 1513 + "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
1352 "shasum": "" 1514 "shasum": ""
1353 }, 1515 },
1354 "require": { 1516 "require": {
...@@ -1393,20 +1555,20 @@ ...@@ -1393,20 +1555,20 @@
1393 ], 1555 ],
1394 "description": "Symfony EventDispatcher Component", 1556 "description": "Symfony EventDispatcher Component",
1395 "homepage": "https://symfony.com", 1557 "homepage": "https://symfony.com",
1396 - "time": "2015-06-08 09:37:21" 1558 + "time": "2015-06-18 19:21:56"
1397 }, 1559 },
1398 { 1560 {
1399 "name": "symfony/finder", 1561 "name": "symfony/finder",
1400 - "version": "v2.7.1", 1562 + "version": "v2.7.3",
1401 "source": { 1563 "source": {
1402 "type": "git", 1564 "type": "git",
1403 "url": "https://github.com/symfony/Finder.git", 1565 "url": "https://github.com/symfony/Finder.git",
1404 - "reference": "c13a40d638aeede1e8400f8c956c7f9246c05f75" 1566 + "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4"
1405 }, 1567 },
1406 "dist": { 1568 "dist": {
1407 "type": "zip", 1569 "type": "zip",
1408 - "url": "https://api.github.com/repos/symfony/Finder/zipball/c13a40d638aeede1e8400f8c956c7f9246c05f75", 1570 + "url": "https://api.github.com/repos/symfony/Finder/zipball/ae0f363277485094edc04c9f3cbe595b183b78e4",
1409 - "reference": "c13a40d638aeede1e8400f8c956c7f9246c05f75", 1571 + "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4",
1410 "shasum": "" 1572 "shasum": ""
1411 }, 1573 },
1412 "require": { 1574 "require": {
...@@ -1442,20 +1604,20 @@ ...@@ -1442,20 +1604,20 @@
1442 ], 1604 ],
1443 "description": "Symfony Finder Component", 1605 "description": "Symfony Finder Component",
1444 "homepage": "https://symfony.com", 1606 "homepage": "https://symfony.com",
1445 - "time": "2015-06-04 20:11:48" 1607 + "time": "2015-07-09 16:07:40"
1446 }, 1608 },
1447 { 1609 {
1448 "name": "symfony/http-foundation", 1610 "name": "symfony/http-foundation",
1449 - "version": "v2.7.1", 1611 + "version": "v2.7.3",
1450 "source": { 1612 "source": {
1451 "type": "git", 1613 "type": "git",
1452 "url": "https://github.com/symfony/HttpFoundation.git", 1614 "url": "https://github.com/symfony/HttpFoundation.git",
1453 - "reference": "4f363c426b0ced57e3d14460022feb63937980ff" 1615 + "reference": "863af6898081b34c65d42100c370b9f3c51b70ca"
1454 }, 1616 },
1455 "dist": { 1617 "dist": {
1456 "type": "zip", 1618 "type": "zip",
1457 - "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/4f363c426b0ced57e3d14460022feb63937980ff", 1619 + "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/863af6898081b34c65d42100c370b9f3c51b70ca",
1458 - "reference": "4f363c426b0ced57e3d14460022feb63937980ff", 1620 + "reference": "863af6898081b34c65d42100c370b9f3c51b70ca",
1459 "shasum": "" 1621 "shasum": ""
1460 }, 1622 },
1461 "require": { 1623 "require": {
...@@ -1495,27 +1657,27 @@ ...@@ -1495,27 +1657,27 @@
1495 ], 1657 ],
1496 "description": "Symfony HttpFoundation Component", 1658 "description": "Symfony HttpFoundation Component",
1497 "homepage": "https://symfony.com", 1659 "homepage": "https://symfony.com",
1498 - "time": "2015-06-10 15:30:22" 1660 + "time": "2015-07-22 10:11:00"
1499 }, 1661 },
1500 { 1662 {
1501 "name": "symfony/http-kernel", 1663 "name": "symfony/http-kernel",
1502 - "version": "v2.7.1", 1664 + "version": "v2.7.3",
1503 "source": { 1665 "source": {
1504 "type": "git", 1666 "type": "git",
1505 "url": "https://github.com/symfony/HttpKernel.git", 1667 "url": "https://github.com/symfony/HttpKernel.git",
1506 - "reference": "208101c7a11e31933183bd2a380486e528c74302" 1668 + "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98"
1507 }, 1669 },
1508 "dist": { 1670 "dist": {
1509 "type": "zip", 1671 "type": "zip",
1510 - "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/208101c7a11e31933183bd2a380486e528c74302", 1672 + "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/405d3e7a59ff7a28ec469441326a0ac79065ea98",
1511 - "reference": "208101c7a11e31933183bd2a380486e528c74302", 1673 + "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98",
1512 "shasum": "" 1674 "shasum": ""
1513 }, 1675 },
1514 "require": { 1676 "require": {
1515 "php": ">=5.3.9", 1677 "php": ">=5.3.9",
1516 "psr/log": "~1.0", 1678 "psr/log": "~1.0",
1517 "symfony/debug": "~2.6,>=2.6.2", 1679 "symfony/debug": "~2.6,>=2.6.2",
1518 - "symfony/event-dispatcher": "~2.5.9|~2.6,>=2.6.2", 1680 + "symfony/event-dispatcher": "~2.6,>=2.6.7",
1519 "symfony/http-foundation": "~2.5,>=2.5.4" 1681 "symfony/http-foundation": "~2.5,>=2.5.4"
1520 }, 1682 },
1521 "conflict": { 1683 "conflict": {
...@@ -1575,20 +1737,20 @@ ...@@ -1575,20 +1737,20 @@
1575 ], 1737 ],
1576 "description": "Symfony HttpKernel Component", 1738 "description": "Symfony HttpKernel Component",
1577 "homepage": "https://symfony.com", 1739 "homepage": "https://symfony.com",
1578 - "time": "2015-06-11 21:15:28" 1740 + "time": "2015-07-31 13:24:45"
1579 }, 1741 },
1580 { 1742 {
1581 "name": "symfony/process", 1743 "name": "symfony/process",
1582 - "version": "v2.7.1", 1744 + "version": "v2.7.3",
1583 "source": { 1745 "source": {
1584 "type": "git", 1746 "type": "git",
1585 "url": "https://github.com/symfony/Process.git", 1747 "url": "https://github.com/symfony/Process.git",
1586 - "reference": "552d8efdc80980cbcca50b28d626ac8e36e3cdd1" 1748 + "reference": "48aeb0e48600321c272955132d7606ab0a49adb3"
1587 }, 1749 },
1588 "dist": { 1750 "dist": {
1589 "type": "zip", 1751 "type": "zip",
1590 - "url": "https://api.github.com/repos/symfony/Process/zipball/552d8efdc80980cbcca50b28d626ac8e36e3cdd1", 1752 + "url": "https://api.github.com/repos/symfony/Process/zipball/48aeb0e48600321c272955132d7606ab0a49adb3",
1591 - "reference": "552d8efdc80980cbcca50b28d626ac8e36e3cdd1", 1753 + "reference": "48aeb0e48600321c272955132d7606ab0a49adb3",
1592 "shasum": "" 1754 "shasum": ""
1593 }, 1755 },
1594 "require": { 1756 "require": {
...@@ -1624,20 +1786,20 @@ ...@@ -1624,20 +1786,20 @@
1624 ], 1786 ],
1625 "description": "Symfony Process Component", 1787 "description": "Symfony Process Component",
1626 "homepage": "https://symfony.com", 1788 "homepage": "https://symfony.com",
1627 - "time": "2015-06-08 09:37:21" 1789 + "time": "2015-07-01 11:25:50"
1628 }, 1790 },
1629 { 1791 {
1630 "name": "symfony/routing", 1792 "name": "symfony/routing",
1631 - "version": "v2.7.1", 1793 + "version": "v2.7.3",
1632 "source": { 1794 "source": {
1633 "type": "git", 1795 "type": "git",
1634 "url": "https://github.com/symfony/Routing.git", 1796 "url": "https://github.com/symfony/Routing.git",
1635 - "reference": "5581be29185b8fb802398904555f70da62f6d50d" 1797 + "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26"
1636 }, 1798 },
1637 "dist": { 1799 "dist": {
1638 "type": "zip", 1800 "type": "zip",
1639 - "url": "https://api.github.com/repos/symfony/Routing/zipball/5581be29185b8fb802398904555f70da62f6d50d", 1801 + "url": "https://api.github.com/repos/symfony/Routing/zipball/ea9134f277162b02e5f80ac058b75a77637b0d26",
1640 - "reference": "5581be29185b8fb802398904555f70da62f6d50d", 1802 + "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26",
1641 "shasum": "" 1803 "shasum": ""
1642 }, 1804 },
1643 "require": { 1805 "require": {
...@@ -1695,20 +1857,20 @@ ...@@ -1695,20 +1857,20 @@
1695 "uri", 1857 "uri",
1696 "url" 1858 "url"
1697 ], 1859 ],
1698 - "time": "2015-06-11 17:20:40" 1860 + "time": "2015-07-09 16:07:40"
1699 }, 1861 },
1700 { 1862 {
1701 "name": "symfony/translation", 1863 "name": "symfony/translation",
1702 - "version": "v2.7.1", 1864 + "version": "v2.7.3",
1703 "source": { 1865 "source": {
1704 "type": "git", 1866 "type": "git",
1705 "url": "https://github.com/symfony/Translation.git", 1867 "url": "https://github.com/symfony/Translation.git",
1706 - "reference": "8349a2b0d11bd0311df9e8914408080912983a0b" 1868 + "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6"
1707 }, 1869 },
1708 "dist": { 1870 "dist": {
1709 "type": "zip", 1871 "type": "zip",
1710 - "url": "https://api.github.com/repos/symfony/Translation/zipball/8349a2b0d11bd0311df9e8914408080912983a0b", 1872 + "url": "https://api.github.com/repos/symfony/Translation/zipball/c8dc34cc936152c609cdd722af317e4239d10dd6",
1711 - "reference": "8349a2b0d11bd0311df9e8914408080912983a0b", 1873 + "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6",
1712 "shasum": "" 1874 "shasum": ""
1713 }, 1875 },
1714 "require": { 1876 "require": {
...@@ -1756,20 +1918,20 @@ ...@@ -1756,20 +1918,20 @@
1756 ], 1918 ],
1757 "description": "Symfony Translation Component", 1919 "description": "Symfony Translation Component",
1758 "homepage": "https://symfony.com", 1920 "homepage": "https://symfony.com",
1759 - "time": "2015-06-11 17:26:34" 1921 + "time": "2015-07-09 16:07:40"
1760 }, 1922 },
1761 { 1923 {
1762 "name": "symfony/var-dumper", 1924 "name": "symfony/var-dumper",
1763 - "version": "v2.7.1", 1925 + "version": "v2.7.3",
1764 "source": { 1926 "source": {
1765 "type": "git", 1927 "type": "git",
1766 "url": "https://github.com/symfony/var-dumper.git", 1928 "url": "https://github.com/symfony/var-dumper.git",
1767 - "reference": "c509921f260353bf07b257f84017777c8b0aa4bc" 1929 + "reference": "e8903ebba5eb019f5886ffce739ea9e3b7519579"
1768 }, 1930 },
1769 "dist": { 1931 "dist": {
1770 "type": "zip", 1932 "type": "zip",
1771 - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c509921f260353bf07b257f84017777c8b0aa4bc", 1933 + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e8903ebba5eb019f5886ffce739ea9e3b7519579",
1772 - "reference": "c509921f260353bf07b257f84017777c8b0aa4bc", 1934 + "reference": "e8903ebba5eb019f5886ffce739ea9e3b7519579",
1773 "shasum": "" 1935 "shasum": ""
1774 }, 1936 },
1775 "require": { 1937 "require": {
...@@ -1815,7 +1977,7 @@ ...@@ -1815,7 +1977,7 @@
1815 "debug", 1977 "debug",
1816 "dump" 1978 "dump"
1817 ], 1979 ],
1818 - "time": "2015-06-08 09:37:21" 1980 + "time": "2015-07-28 15:18:12"
1819 }, 1981 },
1820 { 1982 {
1821 "name": "vlucas/phpdotenv", 1983 "name": "vlucas/phpdotenv",
...@@ -2082,55 +2244,6 @@ ...@@ -2082,55 +2244,6 @@
2082 "time": "2015-04-02 19:54:00" 2244 "time": "2015-04-02 19:54:00"
2083 }, 2245 },
2084 { 2246 {
2085 - "name": "phpdocumentor/reflection-docblock",
2086 - "version": "2.0.4",
2087 - "source": {
2088 - "type": "git",
2089 - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
2090 - "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
2091 - },
2092 - "dist": {
2093 - "type": "zip",
2094 - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
2095 - "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
2096 - "shasum": ""
2097 - },
2098 - "require": {
2099 - "php": ">=5.3.3"
2100 - },
2101 - "require-dev": {
2102 - "phpunit/phpunit": "~4.0"
2103 - },
2104 - "suggest": {
2105 - "dflydev/markdown": "~1.0",
2106 - "erusev/parsedown": "~1.0"
2107 - },
2108 - "type": "library",
2109 - "extra": {
2110 - "branch-alias": {
2111 - "dev-master": "2.0.x-dev"
2112 - }
2113 - },
2114 - "autoload": {
2115 - "psr-0": {
2116 - "phpDocumentor": [
2117 - "src/"
2118 - ]
2119 - }
2120 - },
2121 - "notification-url": "https://packagist.org/downloads/",
2122 - "license": [
2123 - "MIT"
2124 - ],
2125 - "authors": [
2126 - {
2127 - "name": "Mike van Riel",
2128 - "email": "mike.vanriel@naenius.com"
2129 - }
2130 - ],
2131 - "time": "2015-02-03 12:10:50"
2132 - },
2133 - {
2134 "name": "phpspec/php-diff", 2247 "name": "phpspec/php-diff",
2135 "version": "v1.0.2", 2248 "version": "v1.0.2",
2136 "source": { 2249 "source": {
...@@ -2244,16 +2357,16 @@ ...@@ -2244,16 +2357,16 @@
2244 }, 2357 },
2245 { 2358 {
2246 "name": "phpspec/prophecy", 2359 "name": "phpspec/prophecy",
2247 - "version": "v1.4.1", 2360 + "version": "v1.5.0",
2248 "source": { 2361 "source": {
2249 "type": "git", 2362 "type": "git",
2250 "url": "https://github.com/phpspec/prophecy.git", 2363 "url": "https://github.com/phpspec/prophecy.git",
2251 - "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373" 2364 + "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7"
2252 }, 2365 },
2253 "dist": { 2366 "dist": {
2254 "type": "zip", 2367 "type": "zip",
2255 - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", 2368 + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7",
2256 - "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", 2369 + "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7",
2257 "shasum": "" 2370 "shasum": ""
2258 }, 2371 },
2259 "require": { 2372 "require": {
...@@ -2300,20 +2413,20 @@ ...@@ -2300,20 +2413,20 @@
2300 "spy", 2413 "spy",
2301 "stub" 2414 "stub"
2302 ], 2415 ],
2303 - "time": "2015-04-27 22:15:08" 2416 + "time": "2015-08-13 10:07:40"
2304 }, 2417 },
2305 { 2418 {
2306 "name": "phpunit/php-code-coverage", 2419 "name": "phpunit/php-code-coverage",
2307 - "version": "2.1.7", 2420 + "version": "2.2.2",
2308 "source": { 2421 "source": {
2309 "type": "git", 2422 "type": "git",
2310 "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 2423 "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
2311 - "reference": "07e27765596d72c378a6103e80da5d84e802f1e4" 2424 + "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c"
2312 }, 2425 },
2313 "dist": { 2426 "dist": {
2314 "type": "zip", 2427 "type": "zip",
2315 - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/07e27765596d72c378a6103e80da5d84e802f1e4", 2428 + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2d7c03c0e4e080901b8f33b2897b0577be18a13c",
2316 - "reference": "07e27765596d72c378a6103e80da5d84e802f1e4", 2429 + "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c",
2317 "shasum": "" 2430 "shasum": ""
2318 }, 2431 },
2319 "require": { 2432 "require": {
...@@ -2321,7 +2434,7 @@ ...@@ -2321,7 +2434,7 @@
2321 "phpunit/php-file-iterator": "~1.3", 2434 "phpunit/php-file-iterator": "~1.3",
2322 "phpunit/php-text-template": "~1.2", 2435 "phpunit/php-text-template": "~1.2",
2323 "phpunit/php-token-stream": "~1.3", 2436 "phpunit/php-token-stream": "~1.3",
2324 - "sebastian/environment": "~1.0", 2437 + "sebastian/environment": "^1.3.2",
2325 "sebastian/version": "~1.0" 2438 "sebastian/version": "~1.0"
2326 }, 2439 },
2327 "require-dev": { 2440 "require-dev": {
...@@ -2336,7 +2449,7 @@ ...@@ -2336,7 +2449,7 @@
2336 "type": "library", 2449 "type": "library",
2337 "extra": { 2450 "extra": {
2338 "branch-alias": { 2451 "branch-alias": {
2339 - "dev-master": "2.1.x-dev" 2452 + "dev-master": "2.2.x-dev"
2340 } 2453 }
2341 }, 2454 },
2342 "autoload": { 2455 "autoload": {
...@@ -2362,20 +2475,20 @@ ...@@ -2362,20 +2475,20 @@
2362 "testing", 2475 "testing",
2363 "xunit" 2476 "xunit"
2364 ], 2477 ],
2365 - "time": "2015-06-30 06:52:35" 2478 + "time": "2015-08-04 03:42:39"
2366 }, 2479 },
2367 { 2480 {
2368 "name": "phpunit/php-file-iterator", 2481 "name": "phpunit/php-file-iterator",
2369 - "version": "1.4.0", 2482 + "version": "1.4.1",
2370 "source": { 2483 "source": {
2371 "type": "git", 2484 "type": "git",
2372 "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 2485 "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
2373 - "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb" 2486 + "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
2374 }, 2487 },
2375 "dist": { 2488 "dist": {
2376 "type": "zip", 2489 "type": "zip",
2377 - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb", 2490 + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
2378 - "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb", 2491 + "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
2379 "shasum": "" 2492 "shasum": ""
2380 }, 2493 },
2381 "require": { 2494 "require": {
...@@ -2409,7 +2522,7 @@ ...@@ -2409,7 +2522,7 @@
2409 "filesystem", 2522 "filesystem",
2410 "iterator" 2523 "iterator"
2411 ], 2524 ],
2412 - "time": "2015-04-02 05:19:05" 2525 + "time": "2015-06-21 13:08:43"
2413 }, 2526 },
2414 { 2527 {
2415 "name": "phpunit/php-text-template", 2528 "name": "phpunit/php-text-template",
...@@ -2454,16 +2567,16 @@ ...@@ -2454,16 +2567,16 @@
2454 }, 2567 },
2455 { 2568 {
2456 "name": "phpunit/php-timer", 2569 "name": "phpunit/php-timer",
2457 - "version": "1.0.6", 2570 + "version": "1.0.7",
2458 "source": { 2571 "source": {
2459 "type": "git", 2572 "type": "git",
2460 "url": "https://github.com/sebastianbergmann/php-timer.git", 2573 "url": "https://github.com/sebastianbergmann/php-timer.git",
2461 - "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d" 2574 + "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b"
2462 }, 2575 },
2463 "dist": { 2576 "dist": {
2464 "type": "zip", 2577 "type": "zip",
2465 - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/83fe1bdc5d47658b727595c14da140da92b3d66d", 2578 + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
2466 - "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d", 2579 + "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
2467 "shasum": "" 2580 "shasum": ""
2468 }, 2581 },
2469 "require": { 2582 "require": {
...@@ -2491,20 +2604,20 @@ ...@@ -2491,20 +2604,20 @@
2491 "keywords": [ 2604 "keywords": [
2492 "timer" 2605 "timer"
2493 ], 2606 ],
2494 - "time": "2015-06-13 07:35:30" 2607 + "time": "2015-06-21 08:01:12"
2495 }, 2608 },
2496 { 2609 {
2497 "name": "phpunit/php-token-stream", 2610 "name": "phpunit/php-token-stream",
2498 - "version": "1.4.3", 2611 + "version": "1.4.6",
2499 "source": { 2612 "source": {
2500 "type": "git", 2613 "type": "git",
2501 "url": "https://github.com/sebastianbergmann/php-token-stream.git", 2614 "url": "https://github.com/sebastianbergmann/php-token-stream.git",
2502 - "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9" 2615 + "reference": "3ab72c62e550370a6cd5dc873e1a04ab57562f5b"
2503 }, 2616 },
2504 "dist": { 2617 "dist": {
2505 "type": "zip", 2618 "type": "zip",
2506 - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/7a9b0969488c3c54fd62b4d504b3ec758fd005d9", 2619 + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3ab72c62e550370a6cd5dc873e1a04ab57562f5b",
2507 - "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9", 2620 + "reference": "3ab72c62e550370a6cd5dc873e1a04ab57562f5b",
2508 "shasum": "" 2621 "shasum": ""
2509 }, 2622 },
2510 "require": { 2623 "require": {
...@@ -2540,20 +2653,20 @@ ...@@ -2540,20 +2653,20 @@
2540 "keywords": [ 2653 "keywords": [
2541 "tokenizer" 2654 "tokenizer"
2542 ], 2655 ],
2543 - "time": "2015-06-19 03:43:16" 2656 + "time": "2015-08-16 08:51:00"
2544 }, 2657 },
2545 { 2658 {
2546 "name": "phpunit/phpunit", 2659 "name": "phpunit/phpunit",
2547 - "version": "4.7.6", 2660 + "version": "4.8.4",
2548 "source": { 2661 "source": {
2549 "type": "git", 2662 "type": "git",
2550 "url": "https://github.com/sebastianbergmann/phpunit.git", 2663 "url": "https://github.com/sebastianbergmann/phpunit.git",
2551 - "reference": "0ebabb4cda7d066be8391dfdbaf57fe70ac9a99b" 2664 + "reference": "55bf1d6092b0e13a1f26bd5eaffeef3d8ad85ea7"
2552 }, 2665 },
2553 "dist": { 2666 "dist": {
2554 "type": "zip", 2667 "type": "zip",
2555 - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0ebabb4cda7d066be8391dfdbaf57fe70ac9a99b", 2668 + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/55bf1d6092b0e13a1f26bd5eaffeef3d8ad85ea7",
2556 - "reference": "0ebabb4cda7d066be8391dfdbaf57fe70ac9a99b", 2669 + "reference": "55bf1d6092b0e13a1f26bd5eaffeef3d8ad85ea7",
2557 "shasum": "" 2670 "shasum": ""
2558 }, 2671 },
2559 "require": { 2672 "require": {
...@@ -2563,7 +2676,7 @@ ...@@ -2563,7 +2676,7 @@
2563 "ext-reflection": "*", 2676 "ext-reflection": "*",
2564 "ext-spl": "*", 2677 "ext-spl": "*",
2565 "php": ">=5.3.3", 2678 "php": ">=5.3.3",
2566 - "phpspec/prophecy": "~1.3,>=1.3.1", 2679 + "phpspec/prophecy": "^1.3.1",
2567 "phpunit/php-code-coverage": "~2.1", 2680 "phpunit/php-code-coverage": "~2.1",
2568 "phpunit/php-file-iterator": "~1.4", 2681 "phpunit/php-file-iterator": "~1.4",
2569 "phpunit/php-text-template": "~1.2", 2682 "phpunit/php-text-template": "~1.2",
...@@ -2571,7 +2684,7 @@ ...@@ -2571,7 +2684,7 @@
2571 "phpunit/phpunit-mock-objects": "~2.3", 2684 "phpunit/phpunit-mock-objects": "~2.3",
2572 "sebastian/comparator": "~1.1", 2685 "sebastian/comparator": "~1.1",
2573 "sebastian/diff": "~1.2", 2686 "sebastian/diff": "~1.2",
2574 - "sebastian/environment": "~1.2", 2687 + "sebastian/environment": "~1.3",
2575 "sebastian/exporter": "~1.2", 2688 "sebastian/exporter": "~1.2",
2576 "sebastian/global-state": "~1.0", 2689 "sebastian/global-state": "~1.0",
2577 "sebastian/version": "~1.0", 2690 "sebastian/version": "~1.0",
...@@ -2586,7 +2699,7 @@ ...@@ -2586,7 +2699,7 @@
2586 "type": "library", 2699 "type": "library",
2587 "extra": { 2700 "extra": {
2588 "branch-alias": { 2701 "branch-alias": {
2589 - "dev-master": "4.7.x-dev" 2702 + "dev-master": "4.8.x-dev"
2590 } 2703 }
2591 }, 2704 },
2592 "autoload": { 2705 "autoload": {
...@@ -2612,26 +2725,27 @@ ...@@ -2612,26 +2725,27 @@
2612 "testing", 2725 "testing",
2613 "xunit" 2726 "xunit"
2614 ], 2727 ],
2615 - "time": "2015-06-30 06:53:57" 2728 + "time": "2015-08-15 04:21:23"
2616 }, 2729 },
2617 { 2730 {
2618 "name": "phpunit/phpunit-mock-objects", 2731 "name": "phpunit/phpunit-mock-objects",
2619 - "version": "2.3.5", 2732 + "version": "2.3.6",
2620 "source": { 2733 "source": {
2621 "type": "git", 2734 "type": "git",
2622 "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 2735 "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
2623 - "reference": "1c330b1b6e1ea8fd15f2fbea46770576e366855c" 2736 + "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42"
2624 }, 2737 },
2625 "dist": { 2738 "dist": {
2626 "type": "zip", 2739 "type": "zip",
2627 - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/1c330b1b6e1ea8fd15f2fbea46770576e366855c", 2740 + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/18dfbcb81d05e2296c0bcddd4db96cade75e6f42",
2628 - "reference": "1c330b1b6e1ea8fd15f2fbea46770576e366855c", 2741 + "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42",
2629 "shasum": "" 2742 "shasum": ""
2630 }, 2743 },
2631 "require": { 2744 "require": {
2632 "doctrine/instantiator": "~1.0,>=1.0.2", 2745 "doctrine/instantiator": "~1.0,>=1.0.2",
2633 "php": ">=5.3.3", 2746 "php": ">=5.3.3",
2634 - "phpunit/php-text-template": "~1.2" 2747 + "phpunit/php-text-template": "~1.2",
2748 + "sebastian/exporter": "~1.2"
2635 }, 2749 },
2636 "require-dev": { 2750 "require-dev": {
2637 "phpunit/phpunit": "~4.4" 2751 "phpunit/phpunit": "~4.4"
...@@ -2667,20 +2781,20 @@ ...@@ -2667,20 +2781,20 @@
2667 "mock", 2781 "mock",
2668 "xunit" 2782 "xunit"
2669 ], 2783 ],
2670 - "time": "2015-07-04 05:41:32" 2784 + "time": "2015-07-10 06:54:24"
2671 }, 2785 },
2672 { 2786 {
2673 "name": "sebastian/comparator", 2787 "name": "sebastian/comparator",
2674 - "version": "1.1.1", 2788 + "version": "1.2.0",
2675 "source": { 2789 "source": {
2676 "type": "git", 2790 "type": "git",
2677 "url": "https://github.com/sebastianbergmann/comparator.git", 2791 "url": "https://github.com/sebastianbergmann/comparator.git",
2678 - "reference": "1dd8869519a225f7f2b9eb663e225298fade819e" 2792 + "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
2679 }, 2793 },
2680 "dist": { 2794 "dist": {
2681 "type": "zip", 2795 "type": "zip",
2682 - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e", 2796 + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
2683 - "reference": "1dd8869519a225f7f2b9eb663e225298fade819e", 2797 + "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
2684 "shasum": "" 2798 "shasum": ""
2685 }, 2799 },
2686 "require": { 2800 "require": {
...@@ -2694,7 +2808,7 @@ ...@@ -2694,7 +2808,7 @@
2694 "type": "library", 2808 "type": "library",
2695 "extra": { 2809 "extra": {
2696 "branch-alias": { 2810 "branch-alias": {
2697 - "dev-master": "1.1.x-dev" 2811 + "dev-master": "1.2.x-dev"
2698 } 2812 }
2699 }, 2813 },
2700 "autoload": { 2814 "autoload": {
...@@ -2731,7 +2845,7 @@ ...@@ -2731,7 +2845,7 @@
2731 "compare", 2845 "compare",
2732 "equality" 2846 "equality"
2733 ], 2847 ],
2734 - "time": "2015-01-29 16:28:08" 2848 + "time": "2015-07-26 15:48:44"
2735 }, 2849 },
2736 { 2850 {
2737 "name": "sebastian/diff", 2851 "name": "sebastian/diff",
...@@ -2787,16 +2901,16 @@ ...@@ -2787,16 +2901,16 @@
2787 }, 2901 },
2788 { 2902 {
2789 "name": "sebastian/environment", 2903 "name": "sebastian/environment",
2790 - "version": "1.2.2", 2904 + "version": "1.3.2",
2791 "source": { 2905 "source": {
2792 "type": "git", 2906 "type": "git",
2793 "url": "https://github.com/sebastianbergmann/environment.git", 2907 "url": "https://github.com/sebastianbergmann/environment.git",
2794 - "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e" 2908 + "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44"
2795 }, 2909 },
2796 "dist": { 2910 "dist": {
2797 "type": "zip", 2911 "type": "zip",
2798 - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e", 2912 + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6324c907ce7a52478eeeaede764f48733ef5ae44",
2799 - "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e", 2913 + "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44",
2800 "shasum": "" 2914 "shasum": ""
2801 }, 2915 },
2802 "require": { 2916 "require": {
...@@ -2833,20 +2947,20 @@ ...@@ -2833,20 +2947,20 @@
2833 "environment", 2947 "environment",
2834 "hhvm" 2948 "hhvm"
2835 ], 2949 ],
2836 - "time": "2015-01-01 10:01:08" 2950 + "time": "2015-08-03 06:14:51"
2837 }, 2951 },
2838 { 2952 {
2839 "name": "sebastian/exporter", 2953 "name": "sebastian/exporter",
2840 - "version": "1.2.0", 2954 + "version": "1.2.1",
2841 "source": { 2955 "source": {
2842 "type": "git", 2956 "type": "git",
2843 "url": "https://github.com/sebastianbergmann/exporter.git", 2957 "url": "https://github.com/sebastianbergmann/exporter.git",
2844 - "reference": "84839970d05254c73cde183a721c7af13aede943" 2958 + "reference": "7ae5513327cb536431847bcc0c10edba2701064e"
2845 }, 2959 },
2846 "dist": { 2960 "dist": {
2847 "type": "zip", 2961 "type": "zip",
2848 - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943", 2962 + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e",
2849 - "reference": "84839970d05254c73cde183a721c7af13aede943", 2963 + "reference": "7ae5513327cb536431847bcc0c10edba2701064e",
2850 "shasum": "" 2964 "shasum": ""
2851 }, 2965 },
2852 "require": { 2966 "require": {
...@@ -2899,7 +3013,7 @@ ...@@ -2899,7 +3013,7 @@
2899 "export", 3013 "export",
2900 "exporter" 3014 "exporter"
2901 ], 3015 ],
2902 - "time": "2015-01-27 07:23:06" 3016 + "time": "2015-06-21 07:55:53"
2903 }, 3017 },
2904 { 3018 {
2905 "name": "sebastian/global-state", 3019 "name": "sebastian/global-state",
...@@ -2954,16 +3068,16 @@ ...@@ -2954,16 +3068,16 @@
2954 }, 3068 },
2955 { 3069 {
2956 "name": "sebastian/recursion-context", 3070 "name": "sebastian/recursion-context",
2957 - "version": "1.0.0", 3071 + "version": "1.0.1",
2958 "source": { 3072 "source": {
2959 "type": "git", 3073 "type": "git",
2960 "url": "https://github.com/sebastianbergmann/recursion-context.git", 3074 "url": "https://github.com/sebastianbergmann/recursion-context.git",
2961 - "reference": "3989662bbb30a29d20d9faa04a846af79b276252" 3075 + "reference": "994d4a811bafe801fb06dccbee797863ba2792ba"
2962 }, 3076 },
2963 "dist": { 3077 "dist": {
2964 "type": "zip", 3078 "type": "zip",
2965 - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252", 3079 + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/994d4a811bafe801fb06dccbee797863ba2792ba",
2966 - "reference": "3989662bbb30a29d20d9faa04a846af79b276252", 3080 + "reference": "994d4a811bafe801fb06dccbee797863ba2792ba",
2967 "shasum": "" 3081 "shasum": ""
2968 }, 3082 },
2969 "require": { 3083 "require": {
...@@ -3003,7 +3117,7 @@ ...@@ -3003,7 +3117,7 @@
3003 ], 3117 ],
3004 "description": "Provides functionality to recursively process PHP variables", 3118 "description": "Provides functionality to recursively process PHP variables",
3005 "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 3119 "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
3006 - "time": "2015-01-24 09:48:32" 3120 + "time": "2015-06-21 08:04:50"
3007 }, 3121 },
3008 { 3122 {
3009 "name": "sebastian/version", 3123 "name": "sebastian/version",
...@@ -3042,16 +3156,16 @@ ...@@ -3042,16 +3156,16 @@
3042 }, 3156 },
3043 { 3157 {
3044 "name": "symfony/yaml", 3158 "name": "symfony/yaml",
3045 - "version": "v2.7.1", 3159 + "version": "v2.7.3",
3046 "source": { 3160 "source": {
3047 "type": "git", 3161 "type": "git",
3048 "url": "https://github.com/symfony/Yaml.git", 3162 "url": "https://github.com/symfony/Yaml.git",
3049 - "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160" 3163 + "reference": "71340e996171474a53f3d29111d046be4ad8a0ff"
3050 }, 3164 },
3051 "dist": { 3165 "dist": {
3052 "type": "zip", 3166 "type": "zip",
3053 - "url": "https://api.github.com/repos/symfony/Yaml/zipball/9808e75c609a14f6db02f70fccf4ca4aab53c160", 3167 + "url": "https://api.github.com/repos/symfony/Yaml/zipball/71340e996171474a53f3d29111d046be4ad8a0ff",
3054 - "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160", 3168 + "reference": "71340e996171474a53f3d29111d046be4ad8a0ff",
3055 "shasum": "" 3169 "shasum": ""
3056 }, 3170 },
3057 "require": { 3171 "require": {
...@@ -3087,7 +3201,7 @@ ...@@ -3087,7 +3201,7 @@
3087 ], 3201 ],
3088 "description": "Symfony Yaml Component", 3202 "description": "Symfony Yaml Component",
3089 "homepage": "https://symfony.com", 3203 "homepage": "https://symfony.com",
3090 - "time": "2015-06-10 15:30:22" 3204 + "time": "2015-07-28 14:07:07"
3091 } 3205 }
3092 ], 3206 ],
3093 "aliases": [], 3207 "aliases": [],
......
...@@ -141,6 +141,8 @@ return [ ...@@ -141,6 +141,8 @@ return [
141 * Third Party 141 * Third Party
142 */ 142 */
143 Intervention\Image\ImageServiceProvider::class, 143 Intervention\Image\ImageServiceProvider::class,
144 + Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
145 +
144 146
145 /* 147 /*
146 * Application Service Providers... 148 * Application Service Providers...
...@@ -148,6 +150,7 @@ return [ ...@@ -148,6 +150,7 @@ return [
148 Oxbow\Providers\AppServiceProvider::class, 150 Oxbow\Providers\AppServiceProvider::class,
149 Oxbow\Providers\EventServiceProvider::class, 151 Oxbow\Providers\EventServiceProvider::class,
150 Oxbow\Providers\RouteServiceProvider::class, 152 Oxbow\Providers\RouteServiceProvider::class,
153 + Oxbow\Providers\CustomFacadeProvider::class,
151 154
152 ], 155 ],
153 156
...@@ -203,6 +206,12 @@ return [ ...@@ -203,6 +206,12 @@ return [
203 206
204 'ImageTool' => Intervention\Image\Facades\Image::class, 207 'ImageTool' => Intervention\Image\Facades\Image::class,
205 208
209 + /**
210 + * Custom
211 + */
212 +
213 + 'Activity' => Oxbow\Services\Facades\Activity::class,
214 +
206 ], 215 ],
207 216
208 ]; 217 ];
......
1 +<?php
2 +
3 +use Illuminate\Database\Schema\Blueprint;
4 +use Illuminate\Database\Migrations\Migration;
5 +
6 +class CreateActivitiesTable extends Migration
7 +{
8 + /**
9 + * Run the migrations.
10 + *
11 + * @return void
12 + */
13 + public function up()
14 + {
15 + Schema::create('activities', function (Blueprint $table) {
16 + $table->increments('id');
17 + $table->string('key');
18 + $table->text('extra');
19 + $table->integer('book_id')->indexed();
20 + $table->integer('user_id');
21 + $table->integer('entity_id');
22 + $table->string('entity_type');
23 + $table->timestamps();
24 + });
25 + }
26 +
27 + /**
28 + * Reverse the migrations.
29 + *
30 + * @return void
31 + */
32 + public function down()
33 + {
34 + Schema::drop('activities');
35 + }
36 +}
...@@ -423,4 +423,10 @@ body.dragging, body.dragging * { ...@@ -423,4 +423,10 @@ body.dragging, body.dragging * {
423 background-color: transparent; 423 background-color: transparent;
424 color: #EEE; 424 color: #EEE;
425 } 425 }
426 +}
427 +
428 +.activity-list-item {
429 + padding: $-s 0;
430 + color: #888;
431 + border-bottom: 1px solid #EEE;
426 } 432 }
...\ No newline at end of file ...\ No newline at end of file
......
1 +<?php
2 +
3 +return [
4 +
5 + /**
6 + * Activity text strings.
7 + * Is used for all the text within activity logs.
8 + */
9 +
10 + // Pages
11 + 'page_create' => 'created page',
12 + 'page_update' => 'updated page',
13 + 'page_delete' => 'deleted page',
14 + 'page_restore' => 'restored page',
15 +
16 + // Chapters
17 + 'chapter_create' => 'created chapter',
18 + 'chapter_update' => 'updated chapter',
19 + 'chapter_delete' => 'deleted chapter',
20 +
21 + // Books
22 + 'book_create' => 'created book',
23 + 'book_update' => 'updated book',
24 + 'book_delete' => 'deleted book',
25 +
26 +];
...\ No newline at end of file ...\ No newline at end of file
...@@ -15,49 +15,63 @@ ...@@ -15,49 +15,63 @@
15 </div> 15 </div>
16 </div> 16 </div>
17 17
18 - <div class="page-content"> 18 + <div class="row">
19 - <h1>{{$book->name}}</h1> 19 + <div class="col-md-6 col-md-offset-1">
20 - <p class="text-muted">{{$book->description}}</p> 20 +
21 - 21 + <div class="page-content">
22 - <div class="page-list"> 22 + <h1>{{$book->name}}</h1>
23 - <hr> 23 + <p class="text-muted">{{$book->description}}</p>
24 - @foreach($book->children() as $childElement) 24 +
25 - <div class="book-child"> 25 + <div class="page-list">
26 - <h3> 26 + <hr>
27 - <a href="{{ $childElement->getUrl() }}"> 27 + @foreach($book->children() as $childElement)
28 - @if(is_a($childElement, 'Oxbow\Chapter')) 28 + <div class="book-child">
29 - <i class="zmdi zmdi-collection-bookmark chapter-toggle"></i> 29 + <h3>
30 - @else 30 + <a href="{{ $childElement->getUrl() }}">
31 - <i class="zmdi zmdi-file-text"></i> 31 + @if(is_a($childElement, 'Oxbow\Chapter'))
32 + <i class="zmdi zmdi-collection-bookmark chapter-toggle"></i>
33 + @else
34 + <i class="zmdi zmdi-file-text"></i>
35 + @endif
36 + {{ $childElement->name }}
37 + </a>
38 + </h3>
39 + <p class="text-muted">
40 + {{$childElement->getExcerpt()}}
41 + </p>
42 +
43 + @if(is_a($childElement, 'Oxbow\Chapter') && count($childElement->pages) > 0)
44 + <div class="inset-list">
45 + @foreach($childElement->pages as $page)
46 + <h4><a href="{{$page->getUrl()}}"><i class="zmdi zmdi-file-text"></i> {{$page->name}}</a></h4>
47 + @endforeach
48 + </div>
32 @endif 49 @endif
33 - {{ $childElement->name }}
34 - </a>
35 - </h3>
36 - <p class="text-muted">
37 - {{$childElement->getExcerpt()}}
38 - </p>
39 -
40 - @if(is_a($childElement, 'Oxbow\Chapter') && count($childElement->pages) > 0)
41 - <div class="inset-list">
42 - @foreach($childElement->pages as $page)
43 - <h4><a href="{{$page->getUrl()}}"><i class="zmdi zmdi-file-text"></i> {{$page->name}}</a></h4>
44 - @endforeach
45 </div> 50 </div>
46 - @endif 51 + <hr>
52 + @endforeach
47 </div> 53 </div>
48 - <hr>
49 - @endforeach
50 - </div>
51 54
52 - <p class="text-muted small"> 55 + <p class="text-muted small">
53 - Created {{$book->created_at->diffForHumans()}} @if($book->createdBy) by {{$book->createdBy->name}} @endif 56 + Created {{$book->created_at->diffForHumans()}} @if($book->createdBy) by {{$book->createdBy->name}} @endif
54 - <br> 57 + <br>
55 - Last Updated {{$book->updated_at->diffForHumans()}} @if($book->createdBy) by {{$book->updatedBy->name}} @endif 58 + Last Updated {{$book->updated_at->diffForHumans()}} @if($book->createdBy) by {{$book->updatedBy->name}} @endif
56 - </p> 59 + </p>
60 +
61 + </div>
57 62
63 + </div>
64 +
65 + <div class="col-md-3 col-md-offset-1">
66 + <div class="margin-top large"><br></div>
67 + <h3>Recent Activity</h3>
68 + @include('partials/activity-list', ['entity' => $book])
69 + </div>
58 </div> 70 </div>
59 71
60 72
73 +
74 +
61 <script> 75 <script>
62 $(function() { 76 $(function() {
63 77
......
1 +
2 +{{--Requires an Activity item with the name $activity passed in--}}
3 +
4 +@if($activity->user) {{$activity->user->name}} @endif
5 +
6 +{{ $activity->getText() }}
7 +
8 +@if($activity->entity())
9 + <a href="{{ $activity->entity()->getUrl() }}">{{ $activity->entity()->name }}</a>
10 +@endif
11 +
12 +@if($activity->extra) "{{$activity->extra}}" @endif
13 +
14 +<br>
15 +
16 +<span class="text-muted"><small><i class="zmdi zmdi-time"></i>{{ $activity->created_at->diffForHumans() }}</small></span>
...\ No newline at end of file ...\ No newline at end of file
1 +
2 +{{--Requires an entity to be passed with the name $entity--}}
3 +
4 +@if(count($entity->recentActivity()) > 0)
5 + <div class="activity-list">
6 + @foreach($entity->recentActivity() as $activity)
7 + <div class="activity-list-item">
8 + @include('partials/activity-item')
9 + </div>
10 + @endforeach
11 + </div>
12 +@endif
...\ No newline at end of file ...\ No newline at end of file