Better Form Stats (#567)

* Better Form Stats

* fix lint

* submission timer store in localstorage

* Update test case for stats

* remove extra code

* fix form stats

* on restart remove timer

* fix resetTimer function name

* Improve form timer

* Fix timer after form validation error + polish UI

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
This commit is contained in:
Chirag Chhatrala
2024-09-18 22:50:52 +05:30
committed by GitHub
parent a057045ef6
commit ceb0648262
14 changed files with 381 additions and 62 deletions

View File

@@ -33,7 +33,7 @@ class StoreFormSubmissionJob implements ShouldQueue
*
* @return void
*/
public function __construct(public Form $form, public array $submissionData)
public function __construct(public Form $form, public array $submissionData, public ?int $completionTime = null)
{
}
@@ -70,11 +70,13 @@ class StoreFormSubmissionJob implements ShouldQueue
// Create or update record
if ($previousSubmission = $this->submissionToUpdate()) {
$previousSubmission->data = $formData;
$previousSubmission->completion_time = $this->completionTime;
$previousSubmission->save();
$this->submissionId = $previousSubmission->id;
} else {
$response = $this->form->submissions()->create([
'data' => $formData,
'completion_time' => $this->completionTime,
]);
$this->submissionId = $response->id;
}