Form analytics now paid feature (#547)
Co-authored-by: Julien Nahum <julien@nahum.net>
This commit is contained in:
parent
8e777ecca6
commit
89513e3b4a
|
|
@ -3,8 +3,8 @@
|
|||
namespace App\Http\Controllers\Forms;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Forms\Form;
|
||||
use Carbon\CarbonPeriod;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class FormStatsController extends Controller
|
||||
{
|
||||
|
|
@ -13,10 +13,9 @@ class FormStatsController extends Controller
|
|||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
public function getFormStats(string $workspaceId, string $formId)
|
||||
public function getFormStats(Request $request)
|
||||
{
|
||||
$form = Form::findOrFail($formId);
|
||||
|
||||
$form = $request->form; // Added by ProForm middleware
|
||||
$this->authorize('view', $form);
|
||||
|
||||
$formStats = $form->statistics()->where('date', '>', now()->subDays(29)->startOfDay())->get();
|
||||
|
|
|
|||
|
|
@ -144,7 +144,9 @@ Route::group(['middleware' => 'auth:api'], function () {
|
|||
Route::put('/custom-domains', [WorkspaceController::class, 'saveCustomDomain'])->name('save-custom-domains');
|
||||
Route::delete('/', [WorkspaceController::class, 'delete'])->name('delete');
|
||||
|
||||
Route::get('form-stats/{formId}', [FormStatsController::class, 'getFormStats'])->name('form.stats');
|
||||
Route::middleware('pro-form')->group(function () {
|
||||
Route::get('form-stats/{formId}', [FormStatsController::class, 'getFormStats'])->name('form.stats');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
it('check formstat chart data', function () {
|
||||
$user = $this->actingAsUser();
|
||||
$user = $this->actingAsProUser();
|
||||
$workspace = $this->createUserWorkspace($user);
|
||||
$form = $this->createForm($user, $workspace, []);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
class="border border-nt-blue-light bg-blue-50 dark:bg-notion-dark-light rounded-md p-4 mb-5 w-full mx-auto mt-4 select-all"
|
||||
>
|
||||
<div
|
||||
v-if="false"
|
||||
v-if="!form.is_pro"
|
||||
class="relative"
|
||||
>
|
||||
<div class="absolute inset-0 z-10">
|
||||
|
|
@ -16,7 +16,10 @@
|
|||
analytics.
|
||||
</p>
|
||||
<p class="mt-5 text-center">
|
||||
<v-button :to="{ name: 'pricing' }">
|
||||
<v-button
|
||||
class="w-full"
|
||||
@click.prevent="subscriptionModalStore.openModal()"
|
||||
>
|
||||
Subscribe
|
||||
</v-button>
|
||||
</p>
|
||||
|
|
@ -76,6 +79,12 @@ export default {
|
|||
required: true,
|
||||
},
|
||||
},
|
||||
setup() {
|
||||
const subscriptionModalStore = useSubscriptionModalStore()
|
||||
return {
|
||||
subscriptionModalStore
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isLoading: true,
|
||||
|
|
@ -115,9 +124,7 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
getChartData() {
|
||||
if (!this.form) {
|
||||
return null
|
||||
}
|
||||
if (!this.form || !this.form.is_pro) { return null }
|
||||
this.isLoading = true
|
||||
opnFetch(
|
||||
"/open/workspaces/" +
|
||||
|
|
|
|||
Loading…
Reference in New Issue