diff --git a/.gitignore b/.gitignore
index 26d89655c..694193b4d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,5 @@ Homestead.yaml
/public/js
/public/uploads
/public/bower
-/storage/images
\ No newline at end of file
+/storage/images
+_ide_helper.php
\ No newline at end of file
diff --git a/app/Activity.php b/app/Activity.php
new file mode 100644
index 000000000..64dd23518
--- /dev/null
+++ b/app/Activity.php
@@ -0,0 +1,38 @@
+entity_id) {
+ return $this->morphTo('entity')->first();
+ } else {
+ return false;
+ }
+ }
+
+ public function user()
+ {
+ return $this->belongsTo('Oxbow\User');
+ }
+
+ /**
+ * Returns text from the language files, Looks up by using the
+ * activity key.
+ */
+ public function getText()
+ {
+ return trans('activities.' . $this->key);
+ }
+
+}
diff --git a/app/Book.php b/app/Book.php
index 8a4be213f..c4e691431 100644
--- a/app/Book.php
+++ b/app/Book.php
@@ -37,4 +37,15 @@ class Book extends Entity
return $pages->sortBy('priority');
}
+ /**
+ * Gets only the most recent activity for this book
+ * @param int $limit
+ * @param int $page
+ * @return mixed
+ */
+ public function recentActivity($limit = 20, $page=0)
+ {
+ return $this->hasMany('Oxbow\Activity')->orderBy('created_at', 'desc')->skip($limit*$page)->take($limit)->get();
+ }
+
}
diff --git a/app/Entity.php b/app/Entity.php
index 2d81ccd48..a09ba2e45 100644
--- a/app/Entity.php
+++ b/app/Entity.php
@@ -34,4 +34,25 @@ class Entity extends Model
{
return [get_class($this), $this->id] === [get_class($entity), $entity->id];
}
+
+ /**
+ * Gets the activity for this entity.
+ * @return \Illuminate\Database\Eloquent\Relations\MorphMany
+ */
+ public function activity()
+ {
+ return $this->morphMany('Oxbow\Activity', 'entity')->orderBy('created_at', 'desc');
+ }
+
+ /**
+ * Gets only the most recent activity
+ * @param int $limit
+ * @param int $page
+ * @return mixed
+ */
+ public function recentActivity($limit = 20, $page=0)
+ {
+ return $this->activity()->skip($limit*$page)->take($limit)->get();
+ }
+
}
diff --git a/app/Http/Controllers/BookController.php b/app/Http/Controllers/BookController.php
index 97c401028..69052b748 100644
--- a/app/Http/Controllers/BookController.php
+++ b/app/Http/Controllers/BookController.php
@@ -2,6 +2,7 @@
namespace Oxbow\Http\Controllers;
+use Activity;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@@ -65,6 +66,7 @@ class BookController extends Controller
$book->created_by = Auth::user()->id;
$book->updated_by = Auth::user()->id;
$book->save();
+ Activity::add($book, 'book_create', $book->id);
return redirect('/books');
}
@@ -110,6 +112,7 @@ class BookController extends Controller
$book->slug = $this->bookRepo->findSuitableSlug($book->name, $book->id);
$book->updated_by = Auth::user()->id;
$book->save();
+ Activity::add($book, 'book_update', $book->id);
return redirect($book->getUrl());
}
@@ -132,7 +135,9 @@ class BookController extends Controller
*/
public function destroy($bookSlug)
{
+ $bookName = $this->bookRepo->getBySlug($bookSlug)->name;
$this->bookRepo->destroyBySlug($bookSlug);
+ Activity::addMessage('book_delete', 0, $bookName);
return redirect('/books');
}
}
diff --git a/app/Http/Controllers/ChapterController.php b/app/Http/Controllers/ChapterController.php
index eec5971a9..0d7d09c64 100644
--- a/app/Http/Controllers/ChapterController.php
+++ b/app/Http/Controllers/ChapterController.php
@@ -2,6 +2,7 @@
namespace Oxbow\Http\Controllers;
+use Activity;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@@ -60,6 +61,7 @@ class ChapterController extends Controller
$chapter->created_by = Auth::user()->id;
$chapter->updated_by = Auth::user()->id;
$book->chapters()->save($chapter);
+ Activity::add($chapter, 'chapter_create', $book->id);
return redirect($book->getUrl());
}
@@ -107,6 +109,7 @@ class ChapterController extends Controller
$chapter->slug = $this->chapterRepo->findSuitableSlug($chapter->name, $book->id, $chapter->id);
$chapter->updated_by = Auth::user()->id;
$chapter->save();
+ Activity::add($chapter, 'chapter_update', $book->id);
return redirect($chapter->getUrl());
}
@@ -134,6 +137,7 @@ class ChapterController extends Controller
{
$book = $this->bookRepo->getBySlug($bookSlug);
$chapter = $this->chapterRepo->getBySlug($chapterSlug, $book->id);
+ $chapterName = $chapter->name;
if(count($chapter->pages) > 0) {
foreach($chapter->pages as $page) {
$page->chapter_id = 0;
@@ -141,6 +145,7 @@ class ChapterController extends Controller
}
}
$chapter->delete();
+ Activity::addMessage('chapter_delete', $book->id, $chapterName);
return redirect($book->getUrl());
}
}
diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php
index a41db39ef..e26af8d4a 100644
--- a/app/Http/Controllers/PageController.php
+++ b/app/Http/Controllers/PageController.php
@@ -2,10 +2,10 @@
namespace Oxbow\Http\Controllers;
+use Activity;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Str;
use Oxbow\Http\Requests;
use Oxbow\Repos\BookRepo;
use Oxbow\Repos\ChapterRepo;
@@ -76,6 +76,7 @@ class PageController extends Controller
$page->updated_by = Auth::user()->id;
$page->save();
$this->pageRepo->saveRevision($page);
+ Activity::add($page, 'page_create', $book->id);
return redirect($page->getUrl());
}
@@ -120,6 +121,7 @@ class PageController extends Controller
$book = $this->bookRepo->getBySlug($bookSlug);
$page = $this->pageRepo->getBySlug($pageSlug, $book->id);
$this->pageRepo->updatePage($page, $book->id, $request->all());
+ Activity::add($page, 'page_update', $book->id);
return redirect($page->getUrl());
}
@@ -187,6 +189,7 @@ class PageController extends Controller
}
$model->save();
}
+ Activity::add($book, 'book_sort', $book->id);
return redirect($book->getUrl());
}
@@ -215,6 +218,7 @@ class PageController extends Controller
{
$book = $this->bookRepo->getBySlug($bookSlug);
$page = $this->pageRepo->getBySlug($pageSlug, $book->id);
+ Activity::addMessage('page_delete', $book->id, $page->name);
$page->delete();
return redirect($book->getUrl());
}
@@ -254,6 +258,7 @@ class PageController extends Controller
$page = $this->pageRepo->getBySlug($pageSlug, $book->id);
$revision = $this->pageRepo->getRevisionById($revisionId);
$page = $this->pageRepo->updatePage($page, $book->id, $revision->toArray());
+ Activity::add($page, 'page_restore', $book->id);
return redirect($page->getUrl());
}
}
diff --git a/app/Providers/CustomFacadeProvider.php b/app/Providers/CustomFacadeProvider.php
new file mode 100644
index 000000000..bb4520c18
--- /dev/null
+++ b/app/Providers/CustomFacadeProvider.php
@@ -0,0 +1,31 @@
+app->bind('activity', function() {
+ return new ActivityService($this->app->make('Oxbow\Activity'));
+ });
+ }
+}
diff --git a/app/Services/ActivityService.php b/app/Services/ActivityService.php
new file mode 100644
index 000000000..651723018
--- /dev/null
+++ b/app/Services/ActivityService.php
@@ -0,0 +1,57 @@
+activity = $activity;
+ $this->user = Auth::user();
+ }
+
+
+ /**
+ * Add activity data to database.
+ * @para Entity $entity
+ * @param $activityKey
+ * @param int $bookId
+ */
+ public function add(Entity $entity, $activityKey, $bookId = 0, $extra = false)
+ {
+ $this->activity->user_id = $this->user->id;
+ $this->activity->book_id = $bookId;
+ $this->activity->key = strtolower($activityKey);
+ if($extra !== false) {
+ $this->activity->extra = $extra;
+ }
+ $entity->activity()->save($this->activity);
+ }
+
+ /**
+ * Adds a activity history with a message & without binding to a entitiy.
+ * @param $activityKey
+ * @param int $bookId
+ * @param bool|false $extra
+ */
+ public function addMessage($activityKey, $bookId = 0, $extra = false)
+ {
+ $this->activity->user_id = $this->user->id;
+ $this->activity->book_id = $bookId;
+ $this->activity->key = strtolower($activityKey);
+ if($extra !== false) {
+ $this->activity->extra = $extra;
+ }
+ $this->activity->save();
+ }
+
+}
\ No newline at end of file
diff --git a/app/Services/Facades/Activity.php b/app/Services/Facades/Activity.php
new file mode 100644
index 000000000..0a52a76e2
--- /dev/null
+++ b/app/Services/Facades/Activity.php
@@ -0,0 +1,14 @@
+=5.5.9",
"laravel/framework": "5.1.*",
- "intervention/image": "^2.3"
+ "intervention/image": "^2.3",
+ "barryvdh/laravel-ide-helper": "^2.1"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
diff --git a/composer.lock b/composer.lock
index 79eb195ed..ec5ebc543 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,71 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "f1c04613ce972bfab5c142cb0b588385",
+ "hash": "16de3a44150d9425a501c9873cb28eaf",
"packages": [
+ {
+ "name": "barryvdh/laravel-ide-helper",
+ "version": "v2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/barryvdh/laravel-ide-helper.git",
+ "reference": "83999f8467374adcb8893f566c9171c9d9691f50"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/83999f8467374adcb8893f566c9171c9d9691f50",
+ "reference": "83999f8467374adcb8893f566c9171c9d9691f50",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "5.0.x|5.1.x",
+ "illuminate/filesystem": "5.0.x|5.1.x",
+ "illuminate/support": "5.0.x|5.1.x",
+ "php": ">=5.4.0",
+ "phpdocumentor/reflection-docblock": "2.0.4",
+ "symfony/class-loader": "~2.3"
+ },
+ "require-dev": {
+ "doctrine/dbal": "~2.3"
+ },
+ "suggest": {
+ "doctrine/dbal": "Load information from the database about models for phpdocs (~2.3)"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Barryvdh\\LaravelIdeHelper\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Barry vd. Heuvel",
+ "email": "barryvdh@gmail.com"
+ }
+ ],
+ "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.",
+ "keywords": [
+ "autocomplete",
+ "codeintel",
+ "helper",
+ "ide",
+ "laravel",
+ "netbeans",
+ "phpdoc",
+ "phpstorm",
+ "sublime"
+ ],
+ "time": "2015-08-13 11:40:00"
+ },
{
"name": "classpreloader/classpreloader",
"version": "2.0.0",
@@ -62,16 +125,16 @@
},
{
"name": "danielstjules/stringy",
- "version": "1.9.0",
+ "version": "1.10.0",
"source": {
"type": "git",
"url": "https://github.com/danielstjules/Stringy.git",
- "reference": "3cf18e9e424a6dedc38b7eb7ef580edb0929461b"
+ "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/danielstjules/Stringy/zipball/3cf18e9e424a6dedc38b7eb7ef580edb0929461b",
- "reference": "3cf18e9e424a6dedc38b7eb7ef580edb0929461b",
+ "url": "https://api.github.com/repos/danielstjules/Stringy/zipball/4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
+ "reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
"shasum": ""
},
"require": {
@@ -114,7 +177,7 @@
"utility",
"utils"
],
- "time": "2015-02-10 06:19:18"
+ "time": "2015-07-23 00:54:12"
},
{
"name": "dnoegel/php-xdg-base-dir",
@@ -218,16 +281,16 @@
},
{
"name": "guzzlehttp/psr7",
- "version": "1.1.0",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "af0e1758de355eb113917ad79c3c0e3604bce4bd"
+ "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/af0e1758de355eb113917ad79c3c0e3604bce4bd",
- "reference": "af0e1758de355eb113917ad79c3c0e3604bce4bd",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
+ "reference": "4ef919b0cf3b1989523138b60163bbcb7ba1ff7e",
"shasum": ""
},
"require": {
@@ -251,7 +314,7 @@
"GuzzleHttp\\Psr7\\": "src/"
},
"files": [
- "src/functions.php"
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -272,7 +335,7 @@
"stream",
"uri"
],
- "time": "2015-06-24 19:55:15"
+ "time": "2015-08-15 19:32:36"
},
{
"name": "intervention/image",
@@ -483,16 +546,16 @@
},
{
"name": "laravel/framework",
- "version": "v5.1.7",
+ "version": "v5.1.10",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "5e942882319845f71c681ce6e85831129bf66426"
+ "reference": "d47ccc8de10ccb6f328cc90f901ca5e47e077c93"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/5e942882319845f71c681ce6e85831129bf66426",
- "reference": "5e942882319845f71c681ce6e85831129bf66426",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/d47ccc8de10ccb6f328cc90f901ca5e47e077c93",
+ "reference": "d47ccc8de10ccb6f328cc90f901ca5e47e077c93",
"shasum": ""
},
"require": {
@@ -607,20 +670,20 @@
"framework",
"laravel"
],
- "time": "2015-07-12 02:27:36"
+ "time": "2015-08-12 18:16:08"
},
{
"name": "league/flysystem",
- "version": "1.0.7",
+ "version": "1.0.11",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "b58431785768abbb4f00c10e66a065095a0693ef"
+ "reference": "c16222fdc02467eaa12cb6d6d0e65527741f6040"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b58431785768abbb4f00c10e66a065095a0693ef",
- "reference": "b58431785768abbb4f00c10e66a065095a0693ef",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c16222fdc02467eaa12cb6d6d0e65527741f6040",
+ "reference": "c16222fdc02467eaa12cb6d6d0e65527741f6040",
"shasum": ""
},
"require": {
@@ -688,20 +751,20 @@
"sftp",
"storage"
],
- "time": "2015-07-11 14:58:06"
+ "time": "2015-07-28 20:41:58"
},
{
"name": "monolog/monolog",
- "version": "1.14.0",
+ "version": "1.16.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "b287fbbe1ca27847064beff2bad7fb6920bf08cc"
+ "reference": "c0c0b4bee3aabce7182876b0d912ef2595563db7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b287fbbe1ca27847064beff2bad7fb6920bf08cc",
- "reference": "b287fbbe1ca27847064beff2bad7fb6920bf08cc",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c0c0b4bee3aabce7182876b0d912ef2595563db7",
+ "reference": "c0c0b4bee3aabce7182876b0d912ef2595563db7",
"shasum": ""
},
"require": {
@@ -738,7 +801,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.14.x-dev"
+ "dev-master": "1.16.x-dev"
}
},
"autoload": {
@@ -764,7 +827,7 @@
"logging",
"psr-3"
],
- "time": "2015-06-19 13:29:54"
+ "time": "2015-08-09 17:44:44"
},
{
"name": "mtdowling/cron-expression",
@@ -859,16 +922,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v1.3.0",
+ "version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca"
+ "reference": "196f177cfefa0f1f7166c0a05d8255889be12418"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dff239267fd1befa1cd40430c9ed12591aa720ca",
- "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/196f177cfefa0f1f7166c0a05d8255889be12418",
+ "reference": "196f177cfefa0f1f7166c0a05d8255889be12418",
"shasum": ""
},
"require": {
@@ -878,7 +941,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "1.4-dev"
}
},
"autoload": {
@@ -900,7 +963,56 @@
"parser",
"php"
],
- "time": "2015-05-02 15:40:40"
+ "time": "2015-07-14 17:31:05"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
+ "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0"
+ },
+ "suggest": {
+ "dflydev/markdown": "~1.0",
+ "erusev/parsedown": "~1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "phpDocumentor": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "mike.vanriel@naenius.com"
+ }
+ ],
+ "time": "2015-02-03 12:10:50"
},
{
"name": "psr/http-message",
@@ -991,16 +1103,16 @@
},
{
"name": "psy/psysh",
- "version": "v0.5.1",
+ "version": "v0.5.2",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "e5a46a767928e85f1f47dda654beda8c680ddd94"
+ "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/e5a46a767928e85f1f47dda654beda8c680ddd94",
- "reference": "e5a46a767928e85f1f47dda654beda8c680ddd94",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/aaf8772ade08b5f0f6830774a5d5c2f800415975",
+ "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975",
"shasum": ""
},
"require": {
@@ -1059,7 +1171,7 @@
"interactive",
"shell"
],
- "time": "2015-07-03 16:48:00"
+ "time": "2015-07-16 15:26:57"
},
{
"name": "swiftmailer/swiftmailer",
@@ -1115,17 +1227,67 @@
"time": "2015-06-06 14:19:39"
},
{
- "name": "symfony/console",
- "version": "v2.7.1",
+ "name": "symfony/class-loader",
+ "version": "v2.7.3",
"source": {
"type": "git",
- "url": "https://github.com/symfony/Console.git",
- "reference": "564398bc1f33faf92fc2ec86859983d30eb81806"
+ "url": "https://github.com/symfony/ClassLoader.git",
+ "reference": "2fccbc544997340808801a7410cdcb96dd12edc4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Console/zipball/564398bc1f33faf92fc2ec86859983d30eb81806",
- "reference": "564398bc1f33faf92fc2ec86859983d30eb81806",
+ "url": "https://api.github.com/repos/symfony/ClassLoader/zipball/2fccbc544997340808801a7410cdcb96dd12edc4",
+ "reference": "2fccbc544997340808801a7410cdcb96dd12edc4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "symfony/finder": "~2.0,>=2.0.5",
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ClassLoader\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony ClassLoader Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-06-25 12:52:11"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v2.7.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Console.git",
+ "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Console/zipball/d6cf02fe73634c96677e428f840704bfbcaec29e",
+ "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e",
"shasum": ""
},
"require": {
@@ -1169,11 +1331,11 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2015-06-10 15:30:22"
+ "time": "2015-07-28 15:18:12"
},
{
"name": "symfony/css-selector",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/CssSelector.git",
@@ -1226,16 +1388,16 @@
},
{
"name": "symfony/debug",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Debug.git",
- "reference": "075070230c5bbc65abde8241191655bbce0716e2"
+ "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Debug/zipball/075070230c5bbc65abde8241191655bbce0716e2",
- "reference": "075070230c5bbc65abde8241191655bbce0716e2",
+ "url": "https://api.github.com/repos/symfony/Debug/zipball/9daa1bf9f7e615fa2fba30357e479a90141222e3",
+ "reference": "9daa1bf9f7e615fa2fba30357e479a90141222e3",
"shasum": ""
},
"require": {
@@ -1282,20 +1444,20 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
- "time": "2015-06-08 09:37:21"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/dom-crawler",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/DomCrawler.git",
- "reference": "11d8eb8ccc1533f4c2d89a025f674894fda520b3"
+ "reference": "9dabece63182e95c42b06967a0d929a5df78bc35"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/11d8eb8ccc1533f4c2d89a025f674894fda520b3",
- "reference": "11d8eb8ccc1533f4c2d89a025f674894fda520b3",
+ "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/9dabece63182e95c42b06967a0d929a5df78bc35",
+ "reference": "9dabece63182e95c42b06967a0d929a5df78bc35",
"shasum": ""
},
"require": {
@@ -1335,20 +1497,20 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
- "time": "2015-05-22 14:54:25"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/event-dispatcher",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/EventDispatcher.git",
- "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9"
+ "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/be3c5ff8d503c46768aeb78ce6333051aa6f26d9",
- "reference": "be3c5ff8d503c46768aeb78ce6333051aa6f26d9",
+ "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
+ "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
"shasum": ""
},
"require": {
@@ -1393,20 +1555,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
- "time": "2015-06-08 09:37:21"
+ "time": "2015-06-18 19:21:56"
},
{
"name": "symfony/finder",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Finder.git",
- "reference": "c13a40d638aeede1e8400f8c956c7f9246c05f75"
+ "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Finder/zipball/c13a40d638aeede1e8400f8c956c7f9246c05f75",
- "reference": "c13a40d638aeede1e8400f8c956c7f9246c05f75",
+ "url": "https://api.github.com/repos/symfony/Finder/zipball/ae0f363277485094edc04c9f3cbe595b183b78e4",
+ "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4",
"shasum": ""
},
"require": {
@@ -1442,20 +1604,20 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
- "time": "2015-06-04 20:11:48"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/http-foundation",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpFoundation.git",
- "reference": "4f363c426b0ced57e3d14460022feb63937980ff"
+ "reference": "863af6898081b34c65d42100c370b9f3c51b70ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/4f363c426b0ced57e3d14460022feb63937980ff",
- "reference": "4f363c426b0ced57e3d14460022feb63937980ff",
+ "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/863af6898081b34c65d42100c370b9f3c51b70ca",
+ "reference": "863af6898081b34c65d42100c370b9f3c51b70ca",
"shasum": ""
},
"require": {
@@ -1495,27 +1657,27 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com",
- "time": "2015-06-10 15:30:22"
+ "time": "2015-07-22 10:11:00"
},
{
"name": "symfony/http-kernel",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpKernel.git",
- "reference": "208101c7a11e31933183bd2a380486e528c74302"
+ "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/208101c7a11e31933183bd2a380486e528c74302",
- "reference": "208101c7a11e31933183bd2a380486e528c74302",
+ "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/405d3e7a59ff7a28ec469441326a0ac79065ea98",
+ "reference": "405d3e7a59ff7a28ec469441326a0ac79065ea98",
"shasum": ""
},
"require": {
"php": ">=5.3.9",
"psr/log": "~1.0",
"symfony/debug": "~2.6,>=2.6.2",
- "symfony/event-dispatcher": "~2.5.9|~2.6,>=2.6.2",
+ "symfony/event-dispatcher": "~2.6,>=2.6.7",
"symfony/http-foundation": "~2.5,>=2.5.4"
},
"conflict": {
@@ -1575,20 +1737,20 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com",
- "time": "2015-06-11 21:15:28"
+ "time": "2015-07-31 13:24:45"
},
{
"name": "symfony/process",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Process.git",
- "reference": "552d8efdc80980cbcca50b28d626ac8e36e3cdd1"
+ "reference": "48aeb0e48600321c272955132d7606ab0a49adb3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Process/zipball/552d8efdc80980cbcca50b28d626ac8e36e3cdd1",
- "reference": "552d8efdc80980cbcca50b28d626ac8e36e3cdd1",
+ "url": "https://api.github.com/repos/symfony/Process/zipball/48aeb0e48600321c272955132d7606ab0a49adb3",
+ "reference": "48aeb0e48600321c272955132d7606ab0a49adb3",
"shasum": ""
},
"require": {
@@ -1624,20 +1786,20 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
- "time": "2015-06-08 09:37:21"
+ "time": "2015-07-01 11:25:50"
},
{
"name": "symfony/routing",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Routing.git",
- "reference": "5581be29185b8fb802398904555f70da62f6d50d"
+ "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Routing/zipball/5581be29185b8fb802398904555f70da62f6d50d",
- "reference": "5581be29185b8fb802398904555f70da62f6d50d",
+ "url": "https://api.github.com/repos/symfony/Routing/zipball/ea9134f277162b02e5f80ac058b75a77637b0d26",
+ "reference": "ea9134f277162b02e5f80ac058b75a77637b0d26",
"shasum": ""
},
"require": {
@@ -1695,20 +1857,20 @@
"uri",
"url"
],
- "time": "2015-06-11 17:20:40"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/translation",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Translation.git",
- "reference": "8349a2b0d11bd0311df9e8914408080912983a0b"
+ "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Translation/zipball/8349a2b0d11bd0311df9e8914408080912983a0b",
- "reference": "8349a2b0d11bd0311df9e8914408080912983a0b",
+ "url": "https://api.github.com/repos/symfony/Translation/zipball/c8dc34cc936152c609cdd722af317e4239d10dd6",
+ "reference": "c8dc34cc936152c609cdd722af317e4239d10dd6",
"shasum": ""
},
"require": {
@@ -1756,20 +1918,20 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
- "time": "2015-06-11 17:26:34"
+ "time": "2015-07-09 16:07:40"
},
{
"name": "symfony/var-dumper",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "c509921f260353bf07b257f84017777c8b0aa4bc"
+ "reference": "e8903ebba5eb019f5886ffce739ea9e3b7519579"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c509921f260353bf07b257f84017777c8b0aa4bc",
- "reference": "c509921f260353bf07b257f84017777c8b0aa4bc",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e8903ebba5eb019f5886ffce739ea9e3b7519579",
+ "reference": "e8903ebba5eb019f5886ffce739ea9e3b7519579",
"shasum": ""
},
"require": {
@@ -1815,7 +1977,7 @@
"debug",
"dump"
],
- "time": "2015-06-08 09:37:21"
+ "time": "2015-07-28 15:18:12"
},
{
"name": "vlucas/phpdotenv",
@@ -2081,55 +2243,6 @@
],
"time": "2015-04-02 19:54:00"
},
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "2.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
- "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "suggest": {
- "dflydev/markdown": "~1.0",
- "erusev/parsedown": "~1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "phpDocumentor": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
- }
- ],
- "time": "2015-02-03 12:10:50"
- },
{
"name": "phpspec/php-diff",
"version": "v1.0.2",
@@ -2244,16 +2357,16 @@
},
{
"name": "phpspec/prophecy",
- "version": "v1.4.1",
+ "version": "v1.5.0",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373"
+ "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
- "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7",
+ "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7",
"shasum": ""
},
"require": {
@@ -2300,20 +2413,20 @@
"spy",
"stub"
],
- "time": "2015-04-27 22:15:08"
+ "time": "2015-08-13 10:07:40"
},
{
"name": "phpunit/php-code-coverage",
- "version": "2.1.7",
+ "version": "2.2.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "07e27765596d72c378a6103e80da5d84e802f1e4"
+ "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/07e27765596d72c378a6103e80da5d84e802f1e4",
- "reference": "07e27765596d72c378a6103e80da5d84e802f1e4",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2d7c03c0e4e080901b8f33b2897b0577be18a13c",
+ "reference": "2d7c03c0e4e080901b8f33b2897b0577be18a13c",
"shasum": ""
},
"require": {
@@ -2321,7 +2434,7 @@
"phpunit/php-file-iterator": "~1.3",
"phpunit/php-text-template": "~1.2",
"phpunit/php-token-stream": "~1.3",
- "sebastian/environment": "~1.0",
+ "sebastian/environment": "^1.3.2",
"sebastian/version": "~1.0"
},
"require-dev": {
@@ -2336,7 +2449,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1.x-dev"
+ "dev-master": "2.2.x-dev"
}
},
"autoload": {
@@ -2362,20 +2475,20 @@
"testing",
"xunit"
],
- "time": "2015-06-30 06:52:35"
+ "time": "2015-08-04 03:42:39"
},
{
"name": "phpunit/php-file-iterator",
- "version": "1.4.0",
+ "version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb"
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb",
- "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
"shasum": ""
},
"require": {
@@ -2409,7 +2522,7 @@
"filesystem",
"iterator"
],
- "time": "2015-04-02 05:19:05"
+ "time": "2015-06-21 13:08:43"
},
{
"name": "phpunit/php-text-template",
@@ -2454,16 +2567,16 @@
},
{
"name": "phpunit/php-timer",
- "version": "1.0.6",
+ "version": "1.0.7",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d"
+ "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/83fe1bdc5d47658b727595c14da140da92b3d66d",
- "reference": "83fe1bdc5d47658b727595c14da140da92b3d66d",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
+ "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
"shasum": ""
},
"require": {
@@ -2491,20 +2604,20 @@
"keywords": [
"timer"
],
- "time": "2015-06-13 07:35:30"
+ "time": "2015-06-21 08:01:12"
},
{
"name": "phpunit/php-token-stream",
- "version": "1.4.3",
+ "version": "1.4.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9"
+ "reference": "3ab72c62e550370a6cd5dc873e1a04ab57562f5b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
- "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3ab72c62e550370a6cd5dc873e1a04ab57562f5b",
+ "reference": "3ab72c62e550370a6cd5dc873e1a04ab57562f5b",
"shasum": ""
},
"require": {
@@ -2540,20 +2653,20 @@
"keywords": [
"tokenizer"
],
- "time": "2015-06-19 03:43:16"
+ "time": "2015-08-16 08:51:00"
},
{
"name": "phpunit/phpunit",
- "version": "4.7.6",
+ "version": "4.8.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "0ebabb4cda7d066be8391dfdbaf57fe70ac9a99b"
+ "reference": "55bf1d6092b0e13a1f26bd5eaffeef3d8ad85ea7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0ebabb4cda7d066be8391dfdbaf57fe70ac9a99b",
- "reference": "0ebabb4cda7d066be8391dfdbaf57fe70ac9a99b",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/55bf1d6092b0e13a1f26bd5eaffeef3d8ad85ea7",
+ "reference": "55bf1d6092b0e13a1f26bd5eaffeef3d8ad85ea7",
"shasum": ""
},
"require": {
@@ -2563,7 +2676,7 @@
"ext-reflection": "*",
"ext-spl": "*",
"php": ">=5.3.3",
- "phpspec/prophecy": "~1.3,>=1.3.1",
+ "phpspec/prophecy": "^1.3.1",
"phpunit/php-code-coverage": "~2.1",
"phpunit/php-file-iterator": "~1.4",
"phpunit/php-text-template": "~1.2",
@@ -2571,7 +2684,7 @@
"phpunit/phpunit-mock-objects": "~2.3",
"sebastian/comparator": "~1.1",
"sebastian/diff": "~1.2",
- "sebastian/environment": "~1.2",
+ "sebastian/environment": "~1.3",
"sebastian/exporter": "~1.2",
"sebastian/global-state": "~1.0",
"sebastian/version": "~1.0",
@@ -2586,7 +2699,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.7.x-dev"
+ "dev-master": "4.8.x-dev"
}
},
"autoload": {
@@ -2612,26 +2725,27 @@
"testing",
"xunit"
],
- "time": "2015-06-30 06:53:57"
+ "time": "2015-08-15 04:21:23"
},
{
"name": "phpunit/phpunit-mock-objects",
- "version": "2.3.5",
+ "version": "2.3.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "1c330b1b6e1ea8fd15f2fbea46770576e366855c"
+ "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/1c330b1b6e1ea8fd15f2fbea46770576e366855c",
- "reference": "1c330b1b6e1ea8fd15f2fbea46770576e366855c",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/18dfbcb81d05e2296c0bcddd4db96cade75e6f42",
+ "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42",
"shasum": ""
},
"require": {
"doctrine/instantiator": "~1.0,>=1.0.2",
"php": ">=5.3.3",
- "phpunit/php-text-template": "~1.2"
+ "phpunit/php-text-template": "~1.2",
+ "sebastian/exporter": "~1.2"
},
"require-dev": {
"phpunit/phpunit": "~4.4"
@@ -2667,20 +2781,20 @@
"mock",
"xunit"
],
- "time": "2015-07-04 05:41:32"
+ "time": "2015-07-10 06:54:24"
},
{
"name": "sebastian/comparator",
- "version": "1.1.1",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "1dd8869519a225f7f2b9eb663e225298fade819e"
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e",
- "reference": "1dd8869519a225f7f2b9eb663e225298fade819e",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
"shasum": ""
},
"require": {
@@ -2694,7 +2808,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "1.2.x-dev"
}
},
"autoload": {
@@ -2731,7 +2845,7 @@
"compare",
"equality"
],
- "time": "2015-01-29 16:28:08"
+ "time": "2015-07-26 15:48:44"
},
{
"name": "sebastian/diff",
@@ -2787,16 +2901,16 @@
},
{
"name": "sebastian/environment",
- "version": "1.2.2",
+ "version": "1.3.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e"
+ "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e",
- "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6324c907ce7a52478eeeaede764f48733ef5ae44",
+ "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44",
"shasum": ""
},
"require": {
@@ -2833,20 +2947,20 @@
"environment",
"hhvm"
],
- "time": "2015-01-01 10:01:08"
+ "time": "2015-08-03 06:14:51"
},
{
"name": "sebastian/exporter",
- "version": "1.2.0",
+ "version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "84839970d05254c73cde183a721c7af13aede943"
+ "reference": "7ae5513327cb536431847bcc0c10edba2701064e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943",
- "reference": "84839970d05254c73cde183a721c7af13aede943",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e",
+ "reference": "7ae5513327cb536431847bcc0c10edba2701064e",
"shasum": ""
},
"require": {
@@ -2899,7 +3013,7 @@
"export",
"exporter"
],
- "time": "2015-01-27 07:23:06"
+ "time": "2015-06-21 07:55:53"
},
{
"name": "sebastian/global-state",
@@ -2954,16 +3068,16 @@
},
{
"name": "sebastian/recursion-context",
- "version": "1.0.0",
+ "version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "3989662bbb30a29d20d9faa04a846af79b276252"
+ "reference": "994d4a811bafe801fb06dccbee797863ba2792ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252",
- "reference": "3989662bbb30a29d20d9faa04a846af79b276252",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/994d4a811bafe801fb06dccbee797863ba2792ba",
+ "reference": "994d4a811bafe801fb06dccbee797863ba2792ba",
"shasum": ""
},
"require": {
@@ -3003,7 +3117,7 @@
],
"description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2015-01-24 09:48:32"
+ "time": "2015-06-21 08:04:50"
},
{
"name": "sebastian/version",
@@ -3042,16 +3156,16 @@
},
{
"name": "symfony/yaml",
- "version": "v2.7.1",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
- "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160"
+ "reference": "71340e996171474a53f3d29111d046be4ad8a0ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Yaml/zipball/9808e75c609a14f6db02f70fccf4ca4aab53c160",
- "reference": "9808e75c609a14f6db02f70fccf4ca4aab53c160",
+ "url": "https://api.github.com/repos/symfony/Yaml/zipball/71340e996171474a53f3d29111d046be4ad8a0ff",
+ "reference": "71340e996171474a53f3d29111d046be4ad8a0ff",
"shasum": ""
},
"require": {
@@ -3087,7 +3201,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2015-06-10 15:30:22"
+ "time": "2015-07-28 14:07:07"
}
],
"aliases": [],
diff --git a/config/app.php b/config/app.php
index 4667c23f3..5c76c5958 100644
--- a/config/app.php
+++ b/config/app.php
@@ -141,6 +141,8 @@ return [
* Third Party
*/
Intervention\Image\ImageServiceProvider::class,
+ Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
+
/*
* Application Service Providers...
@@ -148,6 +150,7 @@ return [
Oxbow\Providers\AppServiceProvider::class,
Oxbow\Providers\EventServiceProvider::class,
Oxbow\Providers\RouteServiceProvider::class,
+ Oxbow\Providers\CustomFacadeProvider::class,
],
@@ -203,6 +206,12 @@ return [
'ImageTool' => Intervention\Image\Facades\Image::class,
+ /**
+ * Custom
+ */
+
+ 'Activity' => Oxbow\Services\Facades\Activity::class,
+
],
];
diff --git a/database/migrations/2015_08_16_142133_create_activities_table.php b/database/migrations/2015_08_16_142133_create_activities_table.php
new file mode 100644
index 000000000..a0e177ddb
--- /dev/null
+++ b/database/migrations/2015_08_16_142133_create_activities_table.php
@@ -0,0 +1,36 @@
+increments('id');
+ $table->string('key');
+ $table->text('extra');
+ $table->integer('book_id')->indexed();
+ $table->integer('user_id');
+ $table->integer('entity_id');
+ $table->string('entity_type');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::drop('activities');
+ }
+}
diff --git a/resources/assets/sass/styles.scss b/resources/assets/sass/styles.scss
index c3ebc450b..b967ed94c 100644
--- a/resources/assets/sass/styles.scss
+++ b/resources/assets/sass/styles.scss
@@ -423,4 +423,10 @@ body.dragging, body.dragging * {
background-color: transparent;
color: #EEE;
}
+}
+
+.activity-list-item {
+ padding: $-s 0;
+ color: #888;
+ border-bottom: 1px solid #EEE;
}
\ No newline at end of file
diff --git a/resources/lang/en/activities.php b/resources/lang/en/activities.php
new file mode 100644
index 000000000..b733eb11b
--- /dev/null
+++ b/resources/lang/en/activities.php
@@ -0,0 +1,26 @@
+ 'created page',
+ 'page_update' => 'updated page',
+ 'page_delete' => 'deleted page',
+ 'page_restore' => 'restored page',
+
+ // Chapters
+ 'chapter_create' => 'created chapter',
+ 'chapter_update' => 'updated chapter',
+ 'chapter_delete' => 'deleted chapter',
+
+ // Books
+ 'book_create' => 'created book',
+ 'book_update' => 'updated book',
+ 'book_delete' => 'deleted book',
+
+];
\ No newline at end of file
diff --git a/resources/views/books/show.blade.php b/resources/views/books/show.blade.php
index 8c03d74ce..06aa37ce9 100644
--- a/resources/views/books/show.blade.php
+++ b/resources/views/books/show.blade.php
@@ -15,49 +15,63 @@
-
-
{{$book->name}}
-
{{$book->description}}
+