From a79b5ae7d84b495c266b74f7ca2ebc8ed595630f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Sun, 29 Jul 2018 11:52:29 +0200 Subject: [PATCH] public dash and view counting --- app/Http/Controllers/Auth/LoginController.php | 2 +- .../Controllers/Auth/RegisterController.php | 2 +- app/Http/Controllers/DashController.php | 24 + app/Http/Controllers/ProfileController.php | 5 +- app/Http/Controllers/TableController.php | 13 +- app/Models/Proposal.php | 2 + app/Models/Table.php | 32 +- app/Models/TableComment.php | 2 + app/Models/TableFavouritePivot.php | 16 + app/View/WidgetFactory.php | 5 + config/app.php | 2 +- ...8_07_29_091631_add_table_visits_column.php | 32 ++ public/fonts/fa-dtbl-1-preview.html | 471 ++---------------- public/fonts/fa-dtbl-1.css | 74 +-- public/fonts/fa-dtbl-1.eot | Bin 13356 -> 8868 bytes public/fonts/fa-dtbl-1.svg | 140 ++---- public/fonts/fa-dtbl-1.ttf | Bin 13176 -> 8688 bytes public/fonts/fa-dtbl-1.woff2 | Bin 6452 -> 4412 bytes resources/assets/sass/_fa-utils.scss | 2 +- .../_help.scss => _form-help.scss} | 3 + resources/assets/sass/_helpers.scss | 41 -- resources/assets/sass/app.scss | 7 +- .../bootstrap-customizations/_border.scss | 13 + .../bootstrap-customizations/_button.scss | 3 + .../sass/bootstrap-customizations/_card.scss | 8 + .../sass/bootstrap-customizations/_link.scss | 3 + .../bootstrap-customizations/_responsive.scss | 9 + .../bootstrap-customizations/_typography.scss | 8 + resources/views/form/_help-inner.blade.php | 9 + resources/views/form/_help.blade.php | 12 +- resources/views/layouts/main-nav.blade.php | 2 +- resources/views/layouts/nav-buttons.blade.php | 2 +- resources/views/profile/_table-list.blade.php | 9 +- resources/views/profile/view.blade.php | 1 + resources/views/table/view.blade.php | 31 +- resources/views/welcome.blade.php | 74 ++- routes/web.php | 15 +- 37 files changed, 413 insertions(+), 661 deletions(-) create mode 100644 app/Http/Controllers/DashController.php create mode 100644 app/Models/TableFavouritePivot.php create mode 100644 database/migrations/2018_07_29_091631_add_table_visits_column.php rename resources/assets/sass/{bootstrap-customizations/_help.scss => _form-help.scss} (73%) create mode 100644 resources/assets/sass/bootstrap-customizations/_border.scss create mode 100644 resources/assets/sass/bootstrap-customizations/_button.scss create mode 100644 resources/assets/sass/bootstrap-customizations/_link.scss create mode 100644 resources/assets/sass/bootstrap-customizations/_responsive.scss create mode 100644 resources/assets/sass/bootstrap-customizations/_typography.scss create mode 100644 resources/views/form/_help-inner.blade.php diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 958045b..43508ab 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -27,7 +27,7 @@ class LoginController extends Controller * * @var string */ - protected $redirectTo = '/'; + protected $redirectTo = '/home'; /** * Create a new controller instance. diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index bc71626..0b877d8 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -29,7 +29,7 @@ class RegisterController extends Controller * * @var string */ - protected $redirectTo = '/'; + protected $redirectTo = '/home'; /** * Create a new controller instance. diff --git a/app/Http/Controllers/DashController.php b/app/Http/Controllers/DashController.php new file mode 100644 index 0000000..2d8e854 --- /dev/null +++ b/app/Http/Controllers/DashController.php @@ -0,0 +1,24 @@ +paginate(15, ['id', 'title', 'name'], 'pageu'); + + // TODO visit counting + $tables = Table::forList() + ->orderBy('visits', 'desc') + ->paginate(10, ['*'], 'paget'); + + return view('welcome', compact('users', 'tables')); + } +} diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 8df2afd..6149be5 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -18,10 +18,7 @@ class ProfileController extends Controller */ public function view(User $user) { - $tables = $user->tables() - ->with('revision:id,row_count') - ->orderByDesc('updated_at') - ->paginate(10); + $tables = $user->tables()->forList()->orderByDesc('updated_at')->paginate(10); return view('profile.view')->with(compact('tables', 'user')); } diff --git a/app/Http/Controllers/TableController.php b/app/Http/Controllers/TableController.php index b1629fe..64c3ece 100644 --- a/app/Http/Controllers/TableController.php +++ b/app/Http/Controllers/TableController.php @@ -20,7 +20,10 @@ class TableController extends Controller ]); /** @var Table $tableModel */ - $tableModel = $user->tables()->where('name', $table)->first(); + $tableModel = $user->tables()->withCount(['favourites', 'forks', 'revisions', 'comments']) + ->where('name', $table)->first(); + + if ($tableModel === null) abort(404, "No such table."); // make it possible to show other revisions if ($input->has('rev')) { @@ -31,6 +34,14 @@ class TableController extends Controller $revision = $tableModel->revision; } + $cookieName = "view!$user->name!$table"; + if (!$request->cookie($cookieName, false)) { + + $tableModel->countVisit(); + + \Cookie::queue($cookieName, true, 86400); + } + return view('table.view', [ 'table' => $tableModel, 'revision' => $revision, diff --git a/app/Models/Proposal.php b/app/Models/Proposal.php index ef9973c..df99813 100644 --- a/app/Models/Proposal.php +++ b/app/Models/Proposal.php @@ -25,6 +25,8 @@ class Proposal extends Model use Reportable; protected $guarded = []; + protected $touches = ['author', 'table']; + /** Authoring user */ public function author() { diff --git a/app/Models/Table.php b/app/Models/Table.php index 58b21c5..4fac554 100644 --- a/app/Models/Table.php +++ b/app/Models/Table.php @@ -2,11 +2,10 @@ namespace App\Models; -use App\Models\Concerns\ManyManyThrough; use App\Models\Concerns\Reportable; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; -use Riesjart\Relaquent\Model\Concerns\HasRelaquentRelationships; /** * A data table object (referencing revisions) @@ -22,6 +21,7 @@ use Riesjart\Relaquent\Model\Concerns\HasRelaquentRelationships; * @property string $description * @property string $license * @property string $origin + * @property int $visits * @property-read string $viewPage * @property-read User $owner * @property-read Table $parentTable @@ -38,6 +38,21 @@ class Table extends Model use Reportable; protected $guarded = []; + protected $touches = ['owner']; + + public function countVisit() + { + // Temporarily disable timestamps to avoid touching updated_at + $oldt = $this->touches; + $this->touches = []; + $this->timestamps = false; + + $this->increment('visits'); + + $this->timestamps = true; + $this->touches = $oldt; + } + /** Get owner from the instance cache (use when building table lists) */ public function cachedOwner() { @@ -92,6 +107,14 @@ class Table extends Model return $this->belongsToMany(User::class, 'table_favourites'); } + /** + * Relation to the pivot table, for favourite counting + */ + public function favourites() + { + return $this->hasMany(TableFavouritePivot::class); + } + /** Users to notify about comments */ public function discussionFollowers() { @@ -106,4 +129,9 @@ class Table extends Model return parent::__get($name); } + + public function scopeForList(Builder $query) + { + return $query->with('revision:id,row_count')->withCount(['favourites', 'forks', 'revisions']); + } } diff --git a/app/Models/TableComment.php b/app/Models/TableComment.php index fb25afb..86cfce8 100644 --- a/app/Models/TableComment.php +++ b/app/Models/TableComment.php @@ -26,6 +26,8 @@ class TableComment extends Model use Reportable; protected $guarded = []; + protected $touches = ['table']; + protected static function boot() { parent::boot(); diff --git a/app/Models/TableFavouritePivot.php b/app/Models/TableFavouritePivot.php new file mode 100644 index 0000000..6d8c1b6 --- /dev/null +++ b/app/Models/TableFavouritePivot.php @@ -0,0 +1,16 @@ +fieldCols = $fieldCols; } + public function help($text) + { + return view('form._help-inner', ['help' => $text]); + } + public function header($hx, $text) { return "
". diff --git a/config/app.php b/config/app.php index d154da3..087f230 100644 --- a/config/app.php +++ b/config/app.php @@ -65,7 +65,7 @@ return [ | */ - 'timezone' => 'UTC', + 'timezone' => 'Europe/Prague', // UTC /* |-------------------------------------------------------------------------- diff --git a/database/migrations/2018_07_29_091631_add_table_visits_column.php b/database/migrations/2018_07_29_091631_add_table_visits_column.php new file mode 100644 index 0000000..33c94ba --- /dev/null +++ b/database/migrations/2018_07_29_091631_add_table_visits_column.php @@ -0,0 +1,32 @@ +unsignedInteger('visits')->default(0); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('tables', function (Blueprint $table) { + $table->dropColumn('visits'); + }); + } +} diff --git a/public/fonts/fa-dtbl-1-preview.html b/public/fonts/fa-dtbl-1-preview.html index 6353ee4..4f18048 100644 --- a/public/fonts/fa-dtbl-1-preview.html +++ b/public/fonts/fa-dtbl-1-preview.html @@ -162,23 +162,12 @@ [data-icon]:before, .fa-address-card-o:before, -.fa-at:before, -.fa-bell:before, -.fa-bell-o:before, .fa-calendar:before, -.fa-check:before, -.fa-clock-o:before, -.fa-cloud-upload:before, .fa-code-fork:before, .fa-comment:before, -.fa-download:before, .fa-eye:before, -.fa-eye-slash:before, .fa-facebook-square:before, -.fa-filter:before, -.fa-flag:before, .fa-floppy-o:before, -.fa-gavel:before, .fa-github:before, .fa-globe:before, .fa-google:before, @@ -188,29 +177,16 @@ .fa-key-modern:before, .fa-link:before, .fa-pencil:before, -.fa-pencil-square-o:before, .fa-question-circle:before, -.fa-quote-left:before, -.fa-reply:before, -.fa-rss:before, -.fa-search:before, -.fa-share-alt:before, .fa-sign-in:before, .fa-sign-out:before, -.fa-sliders:before, -.fa-sort:before, -.fa-sort-asc:before, -.fa-sort-desc:before, .fa-star:before, .fa-star-o:before, .fa-table:before, .fa-th-list:before, -.fa-times:before, -.fa-trash:before, -.fa-trash-o:before, .fa-user-circle-o:before, .fa-user-plus:before, -.fa-wrench:before { +.fa-users:before { display: inline-block; font-family: "fa-dtbl-1"; font-style: normal; @@ -226,55 +202,31 @@ } .fa-address-card-o:before { content: "\f100"; } -.fa-at:before { content: "\f101"; } -.fa-bell:before { content: "\f102"; } -.fa-bell-o:before { content: "\f103"; } -.fa-calendar:before { content: "\f104"; } -.fa-check:before { content: "\f105"; } -.fa-clock-o:before { content: "\f106"; } -.fa-cloud-upload:before { content: "\f107"; } -.fa-code-fork:before { content: "\f108"; } -.fa-comment:before { content: "\f109"; } -.fa-download:before { content: "\f10a"; } -.fa-eye:before { content: "\f10b"; } -.fa-eye-slash:before { content: "\f10c"; } -.fa-facebook-square:before { content: "\f10d"; } -.fa-filter:before { content: "\f10e"; } -.fa-flag:before { content: "\f10f"; } -.fa-floppy-o:before { content: "\f110"; } -.fa-gavel:before { content: "\f111"; } -.fa-github:before { content: "\f112"; } -.fa-globe:before { content: "\f113"; } -.fa-google:before { content: "\f114"; } -.fa-history:before { content: "\f115"; } -.fa-home:before { content: "\f116"; } -.fa-inbox:before { content: "\f117"; } -.fa-key-modern:before { content: "\f118"; } -.fa-link:before { content: "\f119"; } -.fa-pencil:before { content: "\f11a"; } -.fa-pencil-square-o:before { content: "\f11b"; } -.fa-question-circle:before { content: "\f11c"; } -.fa-quote-left:before { content: "\f11d"; } -.fa-reply:before { content: "\f11e"; } -.fa-rss:before { content: "\f11f"; } -.fa-search:before { content: "\f120"; } -.fa-share-alt:before { content: "\f121"; } -.fa-sign-in:before { content: "\f122"; } -.fa-sign-out:before { content: "\f123"; } -.fa-sliders:before { content: "\f124"; } -.fa-sort:before { content: "\f125"; } -.fa-sort-asc:before { content: "\f126"; } -.fa-sort-desc:before { content: "\f127"; } -.fa-star:before { content: "\f128"; } -.fa-star-o:before { content: "\f129"; } -.fa-table:before { content: "\f12a"; } -.fa-th-list:before { content: "\f12b"; } -.fa-times:before { content: "\f12c"; } -.fa-trash:before { content: "\f12d"; } -.fa-trash-o:before { content: "\f12e"; } -.fa-user-circle-o:before { content: "\f12f"; } -.fa-user-plus:before { content: "\f130"; } -.fa-wrench:before { content: "\f131"; } +.fa-calendar:before { content: "\f101"; } +.fa-code-fork:before { content: "\f102"; } +.fa-comment:before { content: "\f103"; } +.fa-eye:before { content: "\f104"; } +.fa-facebook-square:before { content: "\f105"; } +.fa-floppy-o:before { content: "\f106"; } +.fa-github:before { content: "\f107"; } +.fa-globe:before { content: "\f108"; } +.fa-google:before { content: "\f109"; } +.fa-history:before { content: "\f10a"; } +.fa-home:before { content: "\f10b"; } +.fa-inbox:before { content: "\f10c"; } +.fa-key-modern:before { content: "\f10d"; } +.fa-link:before { content: "\f10e"; } +.fa-pencil:before { content: "\f10f"; } +.fa-question-circle:before { content: "\f110"; } +.fa-sign-in:before { content: "\f111"; } +.fa-sign-out:before { content: "\f112"; } +.fa-star:before { content: "\f113"; } +.fa-star-o:before { content: "\f114"; } +.fa-table:before { content: "\f115"; } +.fa-th-list:before { content: "\f116"; } +.fa-user-circle-o:before { content: "\f117"; } +.fa-user-plus:before { content: "\f118"; } +.fa-users:before { content: "\f119"; } @@ -290,7 +242,7 @@
-

fa-dtbl-1 contains 50 glyphs:

+

fa-dtbl-1 contains 26 glyphs:

Toggle Preview Characters
@@ -309,45 +261,6 @@
-
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
-
PpPpPpPpPpPpPpPpPpPp @@ -357,46 +270,7 @@
- -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - +
@@ -409,7 +283,7 @@
- +
@@ -422,20 +296,7 @@
- -
- - -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - +
@@ -448,20 +309,7 @@
- -
- - -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - +
@@ -474,33 +322,7 @@
- -
- - -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - +
@@ -514,21 +336,7 @@
- -
- - -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - - +
@@ -541,7 +349,7 @@
- +
@@ -554,7 +362,7 @@
- +
@@ -567,7 +375,7 @@
- +
@@ -580,7 +388,7 @@
- +
@@ -593,7 +401,7 @@
- +
@@ -606,7 +414,7 @@
- +
@@ -619,7 +427,7 @@
- +
@@ -632,7 +440,7 @@
- +
@@ -645,21 +453,7 @@
- -
- - -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - - +
@@ -672,72 +466,7 @@
- -
- - -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - +
@@ -750,7 +479,7 @@
- +
@@ -763,59 +492,7 @@
- -
- - -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - +
@@ -828,7 +505,7 @@
- +
@@ -841,7 +518,7 @@
- +
@@ -854,7 +531,7 @@
- +
@@ -867,47 +544,7 @@
- -
- - -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - -
-
- -
-
- PpPpPpPpPpPpPpPpPpPp -
-
- 12141618212436486072 -
-
- - +
@@ -920,7 +557,7 @@
- +
@@ -933,20 +570,20 @@
- +
- PpPpPpPpPpPpPpPpPpPp + PpPpPpPpPpPpPpPpPpPp
12141618212436486072
- - + +
diff --git a/public/fonts/fa-dtbl-1.css b/public/fonts/fa-dtbl-1.css index 1c1581d..bf5518f 100644 --- a/public/fonts/fa-dtbl-1.css +++ b/public/fonts/fa-dtbl-1.css @@ -39,52 +39,28 @@ } .fa-address-card-o::before, .fa-vcard-o::before { content: "\f100"; } -.fa-at::before { content: "\f101"; } -.fa-bell::before { content: "\f102"; } -.fa-bell-o::before { content: "\f103"; } -.fa-calendar::before { content: "\f104"; } -.fa-check::before { content: "\f105"; } -.fa-clock-o::before { content: "\f106"; } -.fa-cloud-upload::before { content: "\f107"; } -.fa-code-fork::before { content: "\f108"; } -.fa-comment::before { content: "\f109"; } -.fa-download::before { content: "\f10a"; } -.fa-eye::before { content: "\f10b"; } -.fa-eye-slash::before { content: "\f10c"; } -.fa-facebook-square::before { content: "\f10d"; } -.fa-filter::before { content: "\f10e"; } -.fa-flag::before { content: "\f10f"; } -.fa-floppy-o::before, .fa-save::before { content: "\f110"; } -.fa-gavel::before, .fa-legal::before { content: "\f111"; } -.fa-github::before { content: "\f112"; } -.fa-globe::before { content: "\f113"; } -.fa-google::before { content: "\f114"; } -.fa-history::before { content: "\f115"; } -.fa-home::before { content: "\f116"; } -.fa-inbox::before { content: "\f117"; } -.fa-key-modern::before { content: "\f118"; } -.fa-link::before { content: "\f119"; } -.fa-pencil::before { content: "\f11a"; } -.fa-pencil-square-o::before, .fa-edit::before { content: "\f11b"; } -.fa-question-circle::before { content: "\f11c"; } -.fa-quote-left::before { content: "\f11d"; } -.fa-reply::before { content: "\f11e"; } -.fa-rss::before { content: "\f11f"; } -.fa-search::before { content: "\f120"; } -.fa-share-alt::before { content: "\f121"; } -.fa-sign-in::before { content: "\f122"; } -.fa-sign-out::before { content: "\f123"; } -.fa-sliders::before { content: "\f124"; } -.fa-sort::before { content: "\f125"; } -.fa-sort-asc::before { content: "\f126"; } -.fa-sort-desc::before { content: "\f127"; } -.fa-star::before { content: "\f128"; } -.fa-star-o::before { content: "\f129"; } -.fa-table::before { content: "\f12a"; } -.fa-th-list::before { content: "\f12b"; } -.fa-times::before, .fa-close::before { content: "\f12c"; } -.fa-trash::before { content: "\f12d"; } -.fa-trash-o::before { content: "\f12e"; } -.fa-user-circle-o::before { content: "\f12f"; } -.fa-user-plus::before { content: "\f130"; } -.fa-wrench::before { content: "\f131"; } +.fa-calendar::before { content: "\f101"; } +.fa-code-fork::before { content: "\f102"; } +.fa-comment::before { content: "\f103"; } +.fa-eye::before { content: "\f104"; } +.fa-facebook-square::before { content: "\f105"; } +.fa-floppy-o::before, .fa-save::before { content: "\f106"; } +.fa-github::before { content: "\f107"; } +.fa-globe::before { content: "\f108"; } +.fa-google::before { content: "\f109"; } +.fa-history::before { content: "\f10a"; } +.fa-home::before { content: "\f10b"; } +.fa-inbox::before { content: "\f10c"; } +.fa-key-modern::before { content: "\f10d"; } +.fa-link::before { content: "\f10e"; } +.fa-pencil::before { content: "\f10f"; } +.fa-question-circle::before { content: "\f110"; } +.fa-sign-in::before { content: "\f111"; } +.fa-sign-out::before { content: "\f112"; } +.fa-star::before { content: "\f113"; } +.fa-star-o::before { content: "\f114"; } +.fa-table::before { content: "\f115"; } +.fa-th-list::before { content: "\f116"; } +.fa-user-circle-o::before { content: "\f117"; } +.fa-user-plus::before { content: "\f118"; } +.fa-users::before { content: "\f119"; } diff --git a/public/fonts/fa-dtbl-1.eot b/public/fonts/fa-dtbl-1.eot index 177974abd916c1d89326d288fdd5b288d302c167..0db98fc76665c192e4b832fcb25af9ebe7651b43 100644 GIT binary patch delta 987 zcmY*YU1%It6h8OP&d+AsWSeGFD<;mS&5vEiy0gi)CG9rdXbUOCY&VK%AsuILHZi+9 zlbK!FrGYGHLP-#sj%*1ChEnpBmv&x4UzAu-#0QbIg6Ko6Ph!!RzO`A;Y#T(FbI*J~ z_q%tvcQ&SOza`x60{ADqBE)^^&80^xLkshFt#yF#HUPZxcKWz_<;R&j0OUQySML(G) z1uf53?dv@5bsX0pG!460P0wPOd>uWffuIZP(b8smqUH1x2#81k{QSwupZ0qF@$Rk! zg6EWgg7XdO>+Wn!>?8-F#j_#p#dww>c-oGseh zy@zCEtN+!WQ$k&=I!W$0IqX_EM!%pU=-f;s221KaNE!EwLyTgNZ%S7D2| zkB|PrxeJj`$vkebj_YDO08uyv=O7Iq;3o>=k*=PBU`*{KG4+HHY9npJkuXyI2_8wR zCMY%@+Jvs2{6!+nu~2tIwo6PXg@RWGZy`|9(ooo8Q; zrmpg(<&N&ap~x}vQ9}iHUAf7TQ%)kP;Fyc920HOf2p%~{sMD&d7n-$9#$vXu=$e&L z3`y5=tdP+xziwohGHF;dqHg5#tWe}wg|$p-I{VNtW)yq2q*+Xw%o(OxQ4EKVot0-x z%q~tF1x25>^c)lI>1;unE=Y}Tl#0&1*vrZNC7W3<9E#y@ATw98dGF2kc85RN^DBwq M!3Oaz=Kt>WzXm`9f&c&j delta 5532 zcma)AeQ;CPmA~hGTDHF5^K&d@Te7Vu0hSH2EV($gRhp0l7}g1e5aI>Pwv0byOGq+b zX^@76LYuS@oI22Ei_5UE&}=rr{E>u`)ef^CoymIJ9VQ_xv+JfwW;PA%F3V;bu%Gwb zCzC*$Yy*Dx-H&t6J@?#mf9Lmf;=z~tg}NXiI~t!8LfrME!yBH9?90A#yq=K8PC|(D zPu4aBx_&kE7lgnDY>%WwJssnB-gDP9t%wLzvWPHb>>~I)A$?*9Bx0dr*iF?? zkqANW;6F}~#;i;`EFJ4$mVOgEgxp<^8SB_5VjtQ@=%RF-zV$l3`P|%1AzzRaE{=^e z-Y0%P-^vxFczo+x$$Y=7@TMB?Ja?~3HFGDZ=E6hUMfeBdZa?={H?zMH$wS;}$TEb?%w>NP`6wb~T4 zhZ+M)Sv#~r3k1p(krk+H8`oqdZk%YXWEunEkWvMTD2Q}Ut;$&Kq1r|lVc#0s)V`~` zbtu|3v5pC@eCpX%LRJztH#qs=u}wdFb?&C8!A)$zdWO2q3bIh+mId^b8y|E_ z&>lvwg#t>cEGqU=xsqi&tS#$YTOOI+#>-mvlO-FEzHxNp5-z_ws71yvjcbwM>cC?g zTD>2=S=8LoT=eEg-qsC|z2aKeVzoZ91(rY^BR9so+uOV2jk6zXmx8MY$Hxa(2N!jY zow@PM5#XJY>}ziJ$&ypMedL)NXT~Ui&||){fyTSc&r^7F8gaowIcZoE^>s+PKq6E1)umXq&y!p$|C^ zz#wfqo!Yz1b10)9TOqh*;v#hz-eVD~oF&$JaGAkc39b;aGMuXxL$ub#u{pb0%bV?X z^R(R@G23C{@Gb4~t;2_Jf$tWirnF<)ChgeN6hz@TMA>N#WeS2_SeeyO3T5>f%;vjA zr=|)=fM}BAb6E@_3ba8lsMR9S3)BKOS_DE(w#Gn6KagsIVMAkwGzPdbdh0NPDuE{k zZNlI*Xg@1PGbK~rBu$$nCik0TxAU)SpFX>dfx1gC0^9P?=E3oWdrmPEW&?B?P~K=X z+qDUkBvqK8OVX|#`wfV%@3|VTG+lzamk+gJ5VckPnoOP%H$#@9S|MIU1YQqm#hegS zs|8sJ+<8kj8aEi_wqU5yU8V%u!5vWW-h)t$I}2l{K7xkZ+yS1bK~)U`KKOUC*>@{K zqZEF{_HMVzVs*qB?*$R3M8^(mC^g;L`H?Oq_q98UGmD z!U`=SNszBt=!LvPRUKMntjO?JSssIaLL}TYF`&y^$+yTlLOkJmXbOe}(M~AVQSYPM zaSH*DEDFQ|I^3Z|J$Th%I7HlmGTcj`k}XptSr9?tP)-!MnsBH#ta`(hP{u4?^LTgb z2S-jZ-*d`OPda_hUF&7Y?uP-bb8u;~-MGtIcksVA$nsJ6doVrmWT@EAJ8CQ4tkv_= zJ#b$UiHynfezip(!& zjTfG-m{=7Ruy;@`WX+7@~Ar8oE5um55)os68_ zj0ZY)&M=&Xxtnu2{#kTRDFz`PmksxW5D$2gg<}iwPvKEWUXyWweU3<)RE5XElSSOS z=xJ%zvB<_tKqLoz2-nc(h1kX{lE*A!BVp7kix?b>fd)qb{djECRqB~+O*M}d8aCk& zb*xgRV6MTmp#X_Urie+3tQuU!=gSwo^W)a1JD+(Zul<+J>QJjnmwo*D&>OqeKq&jC zYfTQ7Cl9N)%^1)o?uPns)2daYvwZmibEYm>ci5mhm=9fL=87H5TBJq6MJgJJF^xu! zd5fpA2sm@4!bScv*-D68E*v^KAQ-05o&dL?BPIf_w!|uqMd`_+3X)q`y zm29P2Y_%2J1er0Lq4N)9Q524RiRf-1i<=NahCEH4xW@zW+ECMCz{SjrETBGXv5LA& z6oY}z_nC0nk_Bi$5gO85%HTS<*dNNGS@+87qPyqFV%&{)@_&lg8|b}4aQHo*wt%eR z8>EdqjAtJ9ilvREM8*5Bgh4938y%1-lqu+CuZoBvlp@$Qx&xtBpa8G125{RzgfNA9 zMP_$oj%2zR;<9PSZ7v&Zdi3=6nf&(Cr?<0__K<~Tv&N-ndzmtmU%qM6ayGJjlOba9 zb%ATPOPl68JGJRf%mPQ8(1m)MyO{iEie~@$&4QZkr^`jF4b=$3rsV}ayG^LY%KVcy zJ&URsXD7Hiou~!bav}W}@`!~jBV&)tZ)Fk3i5n4x;Ptr!gKZ2#xKe@ejiE2#n?kxm zLw_D8zg&PN$qp^ok$m*~7y2U7aA5|SWhdMs! z@--Lazoeh;f(Cs~Bz#`agfffVPQQr3P!j@RJ-?W4h2nr7=7`#jE=dtdmbDl~qt#;L z`I@%wtw(>-J*@__l13znAyQDCW`23R2_{ZzzZI(;2Aga#)CdoRV-ut6LRH2&1aMu9 z7OG>8Xv5#7X&HI(9`vAyKE%{QC}TpBL`fq>4X;YP^?>0K4z(cOmMM1rvk`{W;#hWm z&3OqtpCpE5{c{u?e@W|liF#|{JH8Bo;CuC zRd7)x^U%Y!Qb6)h40d5Z8pSKJ$cMQ6zVqj`PtG&ik*>(?bBeJrZT&exxet5E+yskEkvzS%F1eWA^xoP=`FrA;t;cBe6g)L>#}VtQI2v##tkZ5Mjk z+~;*BGCe&rk;8v?Ms+%YZHDA>Gx%`#jA%$W=5^x=^J4lD=Q+Yhh>3m;Q+8UoB**BH*a>;Kq7Ug!6*f{vL+dDxdg=9KF-PeO(HlWA z<1@Xg<8DRlJ#*;=!pU=JCDMEow(hajJ1v2n44jsZ%$XHkRQ{1tWf z`lx|n3_n7dnbm7|j;>{2E3ALY6AXGz*)gZy>xCA)M_cfO@d6bXRS-e3kXHV`wq$eL zLNZI1nr#dLyXZUDnZL`vK6`Iia?a1D)MO6w{CNh$q30`XbroCt%Z zWd+(fq<>s6XJ*%XkWme)Ds$TV0&}&j;dej4Pb&OMT9&P|TD5=uTmJc{3>I7AQv}{e zaSyVt$|jWWegU5Ke(SrZD6WI(t}Ll8IXykZKKYP5DO9|`Li5;9U4AUzave3{Z)kX5 z8NvcXYQ~c8Ko);&s6Y#=zy)roh8m~^52)Y;A1s7Luo&vV5B1Q1U;j%XV2<|oref)| zzbBgN^(VOQSUfJ!!k;MWiN<3iz0nlk(;w>@5_|AxyCHwVi0{!}|7bFvi1r$K61_2h zUm}IWiQ(bcNM?CaZ({oh9b;oVV+MTu>3B5VZ|RHn#JUrSA%A-7XfzcQ`Uc{eSc>b5 zN4FI9#S_WoPJe>m65SSykNt3&?mAB|_k^uU%8|G-F*{!WZyM|_|+mP&K!L@HB6 z3x71-W6&$Tv2+iY&O}oJ77wP-noP7i9uqVD{`f#T!)FGDV`)BT`&F?2;x$5$gyMC1XKZH>W>i_@% diff --git a/public/fonts/fa-dtbl-1.svg b/public/fonts/fa-dtbl-1.svg index 858fb1b..46c1270 100644 --- a/public/fonts/fa-dtbl-1.svg +++ b/public/fonts/fa-dtbl-1.svg @@ -1,11 +1,11 @@ -Created by FontForge 20170805 at Sat Jul 28 18:55:50 2018 +Created by FontForge 20170805 at Sun Jul 29 11:26:42 2018 By ondra The Fork Awesome font is licensed under the SIL OFL 1.1 (http://scripts.sil.org/OFL). Fork Awesome is a fork based of off Font Awesome 4.7.0 by Dave Gandy. More info on licenses at https://forkawesome.github.io @@ -22,7 +22,7 @@ The Fork Awesome font is licensed under the SIL OFL 1.1 (http://scripts.sil.org/ bbox="-0.14014 -256.168 2048 1536.01" underline-thickness="89.6" underline-position="-179.2" - unicode-range="U+0020-F131" + unicode-range="U+0020-F119" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/public/fonts/fa-dtbl-1.ttf b/public/fonts/fa-dtbl-1.ttf index d6fb097d778f7ef2f45d9896238384a4a0e2399e..a94926b16bc29468211712bd600fb2f90b480286 100644 GIT binary patch delta 979 zcmYjQU1%It6h3!m=V!Af*@kRt!Hu(Rlhmw3vy)`AA?;SP5+TKyZMGs>OsBJVf6VUA zWPW6qE@Z(PN`g`|vPGyE`p~Dm*m*h6p$PQMYcyZyVa`yJpM*!qy#Amg#YW&n0 z+5=!lur{l`VM{RO(*f8z^1i%k8GC!^1d*>0i}_M5_vKrE{Eqx*0FS>{plY_S=aWt3 ze!z$q3Uo#7dRGXeSuYk27s_^Z>n02#zJa(}(lzy!wbOlQ&_J9lt5pMZ@*MIB#8O2q z)Ay}Q9L}1-{ih7wvKtG_=p|i3&9U~w;RF7>c4J|&``F(Q5U>s4+cy*24>FV3-XIe~ ze_Pq_CP|n~xM#=-a=^VpVxb1QqOjG~3cej~7c(^Q2uWCN{1=auBJx7ReTO+p4tSs9 z8oR=DFtf}i^9}oquZO$H-QpE~jsHUE5v~cpi5c;_Kj@$HZ+6rJOdu1u_1LU8=lh&^ zZ;LkZJ_wv4?#G>5uG3v|zYFeozxHJO?o;9Ky+Fhy-sIt5Sntm81+szz?%}?e_CX9L z;aOOKSMg2o!l8qMiGyDL;NVzXfgmpp2ICT{ zqGWI=K0Y?oH>xDDmwBjQ(pU4Vr;Iv(vO1NT=6sEf+TCVtWkU!_@fmu&V|sq|;_Cc# z$8kCnmqNl_XznzdJM2rl_iyg*k|Y~3POavzrn%|VRP`iZZ?tKq!JSXf5p_7ae;~Ym zudBMgULB`Sb}@A%Iv&OANNO?bP)=!iHSa(9z-#y3hjZ!koU8 znI)6%+K4Pp$`i6O5=*$jnB@LAVg~y0^AKQwC5-!8OnJUb&1Ow%S+b^@Sy>k~wL~jf z)%0t6mdZKZToN?BT&5M9r8U}}Q#E={*Oz2#*-=d@=1RI@)MVXFD<|s94z=u}UXit; zsg delta 5469 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 syf2;MGkpWGG@nV~W<wyyVVj#kR5k13uyYZ~y=R diff --git a/public/fonts/fa-dtbl-1.woff2 b/public/fonts/fa-dtbl-1.woff2 index f95ba30eae6bf7cda52fab95e9f332d724b7936f..c492287f678b09538a160a6928e49ef3b5b069aa 100644 GIT binary patch literal 4412 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 +@endif diff --git a/resources/views/form/_help.blade.php b/resources/views/form/_help.blade.php index 134c443..3844d45 100644 --- a/resources/views/form/_help.blade.php +++ b/resources/views/form/_help.blade.php @@ -1,11 +1,3 @@ -
- @if($w->help) - help, '<')) - data-html="true" - @endif - title="{{ $w->help }}"> - @endif +
+ @include('form._help-inner', ['help' => $w->help])
diff --git a/resources/views/layouts/main-nav.blade.php b/resources/views/layouts/main-nav.blade.php index f68837a..373908f 100644 --- a/resources/views/layouts/main-nav.blade.php +++ b/resources/views/layouts/main-nav.blade.php @@ -2,7 +2,7 @@ @@ -91,7 +91,7 @@ @endif @if($table->origin) -

+

Adapted From
{!! Widget::tryLink($table->origin) !!}

@@ -118,17 +118,30 @@ Created - {{ $table->created_at->format("M j, Y") }} + + + {{ $table->created_at->format("M j, Y") }} + + Updated - {{ $table->updated_at->format("M j, Y") }} + + + {{ $table->updated_at->format("M j, Y") }} + + Revisions - {{ $table->revisions()->count() }} + {{ $table->revisions_count }} + + + + Visits + {{ $table->visits }}  {!! Widget::help('Visitors counted once per day') !!} diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php index fa58d6c..8b284af 100644 --- a/resources/views/welcome.blade.php +++ b/resources/views/welcome.blade.php @@ -3,15 +3,81 @@ @extends('layouts.app') @section('content') + @guest +
+
+
+
+ + @sr(Close) + + +

Welcome to datatable.directory!

+ +

+ This website is a place for sharing useful tables of structured data. + These can be cipher tables, character maps, lists of electronic components, + paper grades, page formats, or scientific datasets, such as lists of countries, + geographic features, celestial bodies, elements, nutrition values, etc. + Anything you can put in a table can be shared here, as long as it conforms to our + Terms of Service. You can search, filter, and export + data from our tables to many different formats, such as JSON, XML, C structs, or CSV. +

+

+ The table directory is open to anyone, and can be used without login. However, + you will miss out on some features, like the ability to create or edit tables, + post comments, or save export presets. You can register using + your e-mail and a password, or through Google, + GitHub, + or Facebook. +

+
+
+
+
+ @endif +
-
+
-
Dashboard
+
+ @icon(fa-users fa-pr fa-large) +

Users

+ + +
-
-

Welcome to the public landing page.

+
+ @if(count($users) == 0) + No users yet. + @else + @foreach($users as $user) + + @icon(fa-user-circle-o fa-pr){{ $user->title }}
+ {{ $user->handle }} +
+ @endforeach + @endif
+ +
+
+
+ @icon(fa-table fa-pr fa-large) +

Popular Tables

+ + +
+ + @include('profile._table-list') +
+
@endsection diff --git a/routes/web.php b/routes/web.php index 6fae8d1..899826d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -5,15 +5,20 @@ require "login.php"; Route::get('/about/terms', function () { return view('about.terms'); -}); +})->name('terms'); Route::get('/about/privacy', function () { return view('about.privacy'); -}); +})->name('privacy'); -Route::get('/', function () { - return view('welcome'); -}); +Route::get('/', 'DashController@view')->name('dash'); + +// redirect home to user home +Route::get('/home', function () { + if (guest()) return redirect('/'); + + return redirect(route('profile.view', user()->name)); +})->name('home'); Route::group(['middleware' => 'auth'], function () { // Table resource