diff --git a/Modules/Front/Http/Controllers/DashboardController.php b/Modules/Front/Http/Controllers/DashboardController.php
index 595144e..0fb5fa2 100644
--- a/Modules/Front/Http/Controllers/DashboardController.php
+++ b/Modules/Front/Http/Controllers/DashboardController.php
@@ -26,14 +26,22 @@ public function docs()
return response()->redirectTo('https://docs.abrouter.com')->send();
}
- public function stats()
+ public function stats(Request $request)
{
+ if ($request->hasValidSignature()){
+ return view('front::dashboard/stats');
+ }
+
$this->enforceAuth();
return view('front::dashboard/stats');
}
- public function experimentStats()
+ public function experimentStats(Request $request)
{
+ if ($request->hasValidSignature()) {
+ return view('front::dashboard/experiment-stats');
+ }
+
$this->enforceAuth();
return view('front::dashboard/experiment-stats');
}
diff --git a/Modules/Front/Resources/views/customization-event/customization-event.blade.php b/Modules/Front/Resources/views/customization-event/customization-event.blade.php
index f47cbcf..0e04fe6 100644
--- a/Modules/Front/Resources/views/customization-event/customization-event.blade.php
+++ b/Modules/Front/Resources/views/customization-event/customization-event.blade.php
@@ -68,7 +68,7 @@
$(document).ready(function () {
$.ajax({
'method': "GET",
- 'url': "/api/v1/user-events",
+ 'url': "/api/v1/display-user-events",
'headers': {
'Content-Type': 'application/json',
'Accept': 'application/json',
@@ -140,7 +140,7 @@
$.ajax({
'method': 'POST',
- 'url': "/api/v1/user-events",
+ 'url': "/api/v1/display-user-events",
'headers': {
'Content-Type': 'application/json',
'Accept': 'application/json',
@@ -230,7 +230,7 @@
$.ajax({
'method': 'PATCH',
- 'url': "/api/v1/user-events/" + dataId,
+ 'url': "/api/v1/display-user-events/" + dataId,
'headers': {
'Content-Type': 'application/json',
'Accept': 'application/json',
@@ -290,7 +290,7 @@
$.ajax({
'method': "DELETE",
- 'url': "/api/v1/user-events/" + id,
+ 'url': "/api/v1/display-user-events/" + id,
'headers': {
'Authorization': window.token,
},
diff --git a/Modules/Front/Resources/views/dashboard/experiment-stats.blade.php b/Modules/Front/Resources/views/dashboard/experiment-stats.blade.php
index 71a4779..758d4df 100644
--- a/Modules/Front/Resources/views/dashboard/experiment-stats.blade.php
+++ b/Modules/Front/Resources/views/dashboard/experiment-stats.blade.php
@@ -1,6 +1,6 @@
@extends('front::layouts.settings')
@@ -105,12 +105,17 @@ class="date__input date-range"
Add a tag
-
- Add events
-
-
+ @if(\Modules\Front\Internal\User::isAuthorized())
+
+
+ Add events
+
+
+ @endif
@@ -218,6 +223,21 @@ class="date__input date-range"
window.token='Bearer =request()->cookie('token')?>';
window.onload = $('.loader').show();
window.mode = 'experiment_stats';
+
+ window.url = getShareUrl();
+
+ function getShareUrl() {
+ return '=URL::temporarySignedRoute(
+ 'experiment-stats', now()->addMinutes(30),
+ [
+ 'userId' => User::me()['data']['id'],
+ 'experimentId' => request()->get('experimentId'),
+ 'dateFrom' => request()->get('dateFrom'),
+ 'dateTo' => request()->get('dateTo')
+ ])
+ ?>';
+ }
+
@endsection
diff --git a/Modules/Front/Resources/views/dashboard/stats.blade.php b/Modules/Front/Resources/views/dashboard/stats.blade.php
index 73c90ac..fb9c1cb 100644
--- a/Modules/Front/Resources/views/dashboard/stats.blade.php
+++ b/Modules/Front/Resources/views/dashboard/stats.blade.php
@@ -1,3 +1,7 @@
+
@extends('front::layouts.settings')
@section('settings')
@@ -31,11 +35,16 @@ class="date__input date-range"
>
-
- Add events
-
+ @if(\Modules\Front\Internal\User::isAuthorized())
+
+
+ Add events
+
+ @endif
@@ -116,6 +125,20 @@ class="date__input date-range"
window.token='Bearer =request()->cookie('token')?>';
window.onload = $('.loader').show();
window.mode = 'stats';
+
+ window.url = getShareUrl();
+
+ function getShareUrl() {
+ return '=URL::temporarySignedRoute(
+ 'stats', now()->addMinutes(30),
+ [
+ 'userId' => User::me()['data']['id'],
+ 'dateFrom' => request()->get('dateFrom'),
+ 'dateTo' => request()->get('dateTo')
+ ])
+ ?>';
+ }
+
@endsection
diff --git a/Modules/Front/Resources/views/layouts/settings.blade.php b/Modules/Front/Resources/views/layouts/settings.blade.php
index db54f4f..0c2884c 100644
--- a/Modules/Front/Resources/views/layouts/settings.blade.php
+++ b/Modules/Front/Resources/views/layouts/settings.blade.php
@@ -9,6 +9,7 @@
+ @if(\Modules\Front\Internal\User::isAuthorized())
+ @endif
@endsection
diff --git a/Modules/Front/Routes/web.php b/Modules/Front/Routes/web.php
index 9168435..9ab50b3 100644
--- a/Modules/Front/Routes/web.php
+++ b/Modules/Front/Routes/web.php
@@ -1,5 +1,6 @@
get('/en/feature-toggle', 'DashboardController@featureToggle');
$router->get('/en/feature-toggle/run-feature-flag', 'DashboardController@runFeatureFlag');
$router->get('/en/docs', 'DashboardController@docs');
- $router->get('/en/stats', 'DashboardController@stats');
+ $router->get('/en/stats', 'DashboardController@stats')->name('stats');
$router->get('/en/stats/customization-event', 'CustomizationEventController@index');
- $router->get('/en/board/experiment-stats', 'DashboardController@experimentStats');
+ $router->get('/en/board/experiment-stats', 'DashboardController@experimentStats')
+ ->name('experiment-stats');
$router->get('/en/board/run-experiment', 'DashboardController@runExperiment');
$router->get('/en/user-page', 'DashboardController@userPage');
diff --git a/public/js/Stats.js b/public/js/Stats.js
index c2a2337..40cb205 100644
--- a/public/js/Stats.js
+++ b/public/js/Stats.js
@@ -37,7 +37,8 @@ function getEvents (counters, percentage = []) {
function getFunnelStats (
dateFrom,
dateTo,
- dateIntervals
+ dateIntervals,
+ userId
) {
$.ajax({
'method': "POST",
@@ -45,6 +46,9 @@ function getFunnelStats (
'headers': {
'Authorization': window.token,
},
+ 'data': {
+ 'userId': userId
+ },
'success': function (response) {
$('.loader').hide();
$('.table__thead').show();
@@ -130,7 +134,8 @@ function getExperimentStats (
dateFrom,
dateTo,
backgroundBranchColors,
- tag = ''
+ userId,
+ tag = '',
) {
$.ajax({
'method': "GET",
@@ -141,6 +146,9 @@ function getExperimentStats (
'headers': {
'Authorization': window.token
},
+ 'data': {
+ 'userId': userId
+ },
'success': function (response) {
$('.loader').hide();
$('.dashboard__labels').children().remove();
@@ -625,18 +633,42 @@ function getDateIntervals(id, startDate, endDate) {
}
$(document).ready(function () {
+ let url = new URL(window.location.href),
+ dateFrom = url.searchParams.get('dateFrom'),
+ dateTo = url.searchParams.get('dateTo'),
+ dateInterval,
+ dateSplit,
+ userId = new URL(window.location.href).searchParams.get('userId');
+
+ const shareData = {
+ url: window.url
+ }
+
+ $(document).on('click', '#share_page', function () {
+ navigator.share(shareData);
+ })
+
getDateIntervals(
'.date-range[name="dates"]',
- moment().subtract(6, "days").format('MMM DD, YYYY'),
- moment().format('MMM DD, YYYY')
+ dateFrom ?? moment().subtract(6, "days").format('MMM DD, YYYY'),
+ dateTo ?? moment().format('MMM DD, YYYY')
)
- let dateInterval = $('#date_filter_experiment').val() ?? $('#date_stats').val(),
+ if (
+ dateFrom === null &&
+ dateTo === null
+ ) {
+ dateInterval = $('#date_filter_experiment').val() ?? $('#date_stats').val(),
dateSplit = dateInterval.split('-'),
dateFrom = convertDate(dateSplit[0]),
- dateTo = convertDate(dateSplit[1]),
- dateIntervals = getDateInterval(dateFrom, dateTo),
- url = new URL(window.location.href),
+ dateTo = convertDate(dateSplit[1]);
+
+ url.searchParams.set('dateFrom', dateFrom);
+ url.searchParams.set('dateTo', dateTo);
+ window.history.replaceState({}, '', url);
+ }
+
+ let dateIntervals = getDateInterval(dateFrom, dateTo),
experimentId = url.searchParams.get("experimentId"),
backgroundBranchColors = [
'#F07D5F',
@@ -653,7 +685,8 @@ $(document).ready(function () {
? getFunnelStats(
dateFrom,
dateTo,
- dateIntervals
+ dateIntervals,
+ userId
)
: (
getTags(),
@@ -662,7 +695,8 @@ $(document).ready(function () {
dateIntervals,
dateFrom,
dateTo,
- backgroundBranchColors
+ backgroundBranchColors,
+ userId
)
)
@@ -683,10 +717,15 @@ $(document).ready(function () {
dateTo = convertDate(dateSplit[1]),
dateIntervals = getDateInterval(dateFrom, dateTo);
+ url.searchParams.set('dateFrom', dateFrom);
+ url.searchParams.set('dateTo', dateTo);
+ window.history.replaceState({}, '', url);
+
getFunnelStats(
dateFrom,
dateTo,
- dateIntervals
+ dateIntervals,
+ userId
)
load = 0;
@@ -711,10 +750,15 @@ $(document).ready(function () {
dateTo = convertDate(dateSplit[1]),
dateIntervals = getDateInterval(dateFrom, dateTo);
+ url.searchParams.set('dateFrom', dateFrom);
+ url.searchParams.set('dateTo', dateTo);
+ window.history.replaceState({}, '', url);
+
getFunnelStats(
dateFrom,
dateTo,
- dateIntervals
+ dateIntervals,
+ userId
)
load = 0;
@@ -739,6 +783,10 @@ $(document).ready(function () {
dateTo = convertDate(dateSplit[1]),
dateIntervals = getDateInterval(dateFrom, dateTo);
+ url.searchParams.set('dateFrom', dateFrom);
+ url.searchParams.set('dateTo', dateTo);
+ window.history.replaceState({}, '', url);
+
$('.table.table_ap').remove();
getExperimentStats(
@@ -746,7 +794,8 @@ $(document).ready(function () {
dateIntervals,
dateFrom,
dateTo,
- backgroundBranchColors
+ backgroundBranchColors,
+ userId
)
load = 0;
@@ -771,6 +820,10 @@ $(document).ready(function () {
dateTo = convertDate(dateSplit[1]),
dateIntervals = getDateInterval(dateFrom, dateTo);
+ url.searchParams.set('dateFrom', dateFrom);
+ url.searchParams.set('dateTo', dateTo);
+ window.history.replaceState({}, '', url);
+
$('.table.table_ap').remove();
getExperimentStats(
@@ -778,7 +831,8 @@ $(document).ready(function () {
dateIntervals,
dateFrom,
dateTo,
- backgroundBranchColors
+ backgroundBranchColors,
+ userId
)
load = 0;
@@ -796,6 +850,10 @@ $(document).ready(function () {
dateIntervals = getDateInterval(dateFrom, dateTo),
tag = event.currentTarget.innerText;
+ url.searchParams.set('dateFrom', dateFrom);
+ url.searchParams.set('dateTo', dateTo);
+ window.history.replaceState({}, '', url);
+
$('.table.table_ap').remove();
getExperimentStats(
@@ -804,6 +862,7 @@ $(document).ready(function () {
dateFrom,
dateTo,
backgroundBranchColors,
+ userId,
tag
)
})