05444 save content of form in browser storage if not submitted (#26)
* Save content of form in browser storage if not submitted * Rename key form + fix tests
This commit is contained in:
parent
0c0a9f1349
commit
310df29e73
|
@ -58,7 +58,8 @@ class FormResource extends JsonResource
|
|||
'is_closed' => $this->is_closed,
|
||||
'is_password_protected' => false,
|
||||
'has_password' => $this->has_password,
|
||||
'max_number_of_submissions_reached' => $this->max_number_of_submissions_reached
|
||||
'max_number_of_submissions_reached' => $this->max_number_of_submissions_reached,
|
||||
'form_pending_submission_key' => $this->form_pending_submission_key
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
@ -166,6 +166,14 @@ class Form extends Model
|
|||
return ($this->closes_at && now()->gt($this->closes_at));
|
||||
}
|
||||
|
||||
public function getFormPendingSubmissionKeyAttribute()
|
||||
{
|
||||
if ($this->updated_at?->timestamp) {
|
||||
return "openform-" . $this->id . "-pending-submission-" . substr($this->updated_at?->timestamp, -6);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getMaxNumberOfSubmissionsReachedAttribute()
|
||||
{
|
||||
return ($this->max_submissions_count && $this->max_submissions_count <= $this->submissions_count);
|
||||
|
|
|
@ -191,6 +191,9 @@ export default {
|
|||
workspace_id: this.form.workspace_id,
|
||||
form_id: this.form.id
|
||||
})
|
||||
|
||||
window.localStorage.removeItem(this.form.form_pending_submission_Key)
|
||||
|
||||
if (response.data.redirect && response.data.redirect_url) {
|
||||
window.location.href = response.data.redirect_url
|
||||
}
|
||||
|
|
|
@ -217,7 +217,15 @@ export default {
|
|||
handler () {
|
||||
this.formVersionId++
|
||||
}
|
||||
}
|
||||
},
|
||||
dataForm: {
|
||||
deep: true,
|
||||
handler () {
|
||||
if(this.isPublicFormPage && this.form && this.dataFormValue){
|
||||
window.localStorage.setItem(this.form.form_pending_submission_Key, JSON.stringify(this.dataFormValue))
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
mounted () {
|
||||
|
@ -266,6 +274,14 @@ export default {
|
|||
}
|
||||
},
|
||||
initForm () {
|
||||
if (this.isPublicFormPage) {
|
||||
const pendingData = window.localStorage.getItem(this.form.form_pending_submission_Key)
|
||||
if(pendingData !== null && pendingData){
|
||||
this.dataForm = new Form(JSON.parse(pendingData))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
const formData = clonedeep(this.dataForm ? this.dataForm.data() : {})
|
||||
let urlPrefill = null
|
||||
if (this.isPublicFormPage && this.form.is_pro) {
|
||||
|
|
Loading…
Reference in New Issue