Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/cydrobolt/polr.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChaoyi Zha <summermontreal@gmail.com>2016-12-28 23:21:04 +0300
committerChaoyi Zha <summermontreal@gmail.com>2016-12-28 23:21:04 +0300
commitb73048cdc093998b9463bb151f92833aaddb286f (patch)
treec417fd3a1ac3753f3756139680343907af49e5af
parenta3c697a865bd8f8ec1bc3174eca6711ac9e30eb2 (diff)
Add shortcut to stats in link tables
-rw-r--r--app/Http/Controllers/AdminPaginationController.php22
-rw-r--r--app/Http/Controllers/StatsController.php3
-rw-r--r--public/css/admin.css4
-rw-r--r--public/css/stats.css4
-rw-r--r--resources/views/link_stats.blade.php10
5 files changed, 39 insertions, 4 deletions
diff --git a/app/Http/Controllers/AdminPaginationController.php b/app/Http/Controllers/AdminPaginationController.php
index 9add38d..f7d7a79 100644
--- a/app/Http/Controllers/AdminPaginationController.php
+++ b/app/Http/Controllers/AdminPaginationController.php
@@ -113,6 +113,16 @@ class AdminPaginationController extends Controller {
Delete
</a>';
})
+ ->editColumn('clicks', function ($link) {
+ if (env('SETTING_ADV_ANALYTICS')) {
+ return $link->clicks . ' <a target="_blank" class="stats-icon" href="/admin/stats/' . e($link->short_url) . '">
+ <i class="fa fa-area-chart" aria-hidden="true"></i>
+ </a>';
+ }
+ else {
+ return $link->clicks;
+ }
+ })
->escapeColumns(['short_url', 'long_url', 'creator'])
->make(true);
}
@@ -125,7 +135,17 @@ class AdminPaginationController extends Controller {
->select(['short_url', 'long_url', 'clicks', 'created_at']);
return Datatables::of($user_links)
- ->escapeColumns()
+ ->editColumn('clicks', function ($link) {
+ if (env('SETTING_ADV_ANALYTICS')) {
+ return $link->clicks . ' <a target="_blank" class="stats-icon" href="/admin/stats/' . e($link->short_url) . '">
+ <i class="fa fa-area-chart" aria-hidden="true"></i>
+ </a>';
+ }
+ else {
+ return $link->clicks;
+ }
+ })
+ ->escapeColumns(['short_url', 'long_url'])
->make(true);
}
}
diff --git a/app/Http/Controllers/StatsController.php b/app/Http/Controllers/StatsController.php
index edf2d44..456f917 100644
--- a/app/Http/Controllers/StatsController.php
+++ b/app/Http/Controllers/StatsController.php
@@ -56,6 +56,9 @@ class StatsController extends Controller {
if ($link == null) {
return redirect(route('admin'))->with('error', 'Cannot show stats for nonexistent link.');
}
+ if (!env('SETTING_ADV_ANALYTICS')) {
+ return redirect(route('login'))->with('error', 'Please enable advanced analytics to view this page.');
+ }
$link_id = $link->id;
diff --git a/public/css/admin.css b/public/css/admin.css
index b3e4d1e..f33a96d 100644
--- a/public/css/admin.css
+++ b/public/css/admin.css
@@ -2,6 +2,10 @@
margin-bottom: 5px;
}
+.stats-icon {
+ margin-left: 0.3em;
+}
+
.change-password {
width: 150px;
}
diff --git a/public/css/stats.css b/public/css/stats.css
index d012685..918ae6f 100644
--- a/public/css/stats.css
+++ b/public/css/stats.css
@@ -14,3 +14,7 @@
.ng-root {
margin-bottom: 4em;
}
+
+h4 {
+ display: inline-block;
+}
diff --git a/resources/views/link_stats.blade.php b/resources/views/link_stats.blade.php
index df3e59b..14963d0 100644
--- a/resources/views/link_stats.blade.php
+++ b/resources/views/link_stats.blade.php
@@ -12,16 +12,20 @@
<div class="stats-header">
<h3>Stats</h3>
<p>
- <b>Short Link: </b> {{ env('APP_ADDRESS') }}/{{ $link->short_url }}
+ <b>Short Link: </b>
+ <a target="_blank" href="{{ env('APP_PROTOCOL') }}/{{ env('APP_ADDRESS') }}/{{ $link->short_url }}">
+ {{ env('APP_ADDRESS') }}/{{ $link->short_url }}
+ </a>
</p>
<p>
- <b>Long Link: </b> {{ $link->long_url }}
+ <b>Long Link: </b>
+ <a target="_blank" href="{{ $link->long_url }}">{{ $link->long_url }}</a>
</p>
</div>
<div class="row bottom-padding">
<div class="col-md-8">
- <h4>Traffic over Time</h4>
+ <h4>Traffic over Time</h4> (total: {{ $link->clicks }})
<canvas id="dayChart"></canvas>
</div>
<div class="col-md-4">