Skip to content

Commit 8a219fa

Browse files
authored
Merge pull request #744 from ProgressPlanner/filip/fix-interactive-resubmission
Fix interactive task form resubmission after error and improve task completion check
2 parents f0e845f + 6abe3ce commit 8a219fa

2 files changed

Lines changed: 26 additions & 17 deletions

File tree

assets/js/recommendations/interactive-task.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,17 +118,25 @@ const prplInteractiveTaskFormListener = {
118118
.finally( () => {
119119
// Hide loading state.
120120
prplInteractiveTaskFormListener.hideLoading( formElement );
121-
122-
// Remove the form listener once the callback is executed.
123-
formElement.removeEventListener(
124-
'submit',
125-
formSubmitHandler
126-
);
127121
} );
128122
};
129123

130124
// Add a form listener to the form.
131125
formElement.addEventListener( 'submit', formSubmitHandler );
126+
127+
// Remove the form listener when the popover is closed.
128+
document.getElementById( popoverId ).addEventListener(
129+
'toggle',
130+
( toggleEvent ) => {
131+
if ( toggleEvent.newState === 'closed' ) {
132+
formElement.removeEventListener(
133+
'submit',
134+
formSubmitHandler
135+
);
136+
}
137+
},
138+
{ once: true }
139+
);
132140
},
133141

134142
settings: ( {

classes/suggested-tasks/providers/class-set-valuable-post-types.php

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<?php
22
/**
3-
* Add tasks for settings saved.
3+
* Add tasks for set valuable post types.
44
*
55
* @package Progress_Planner
66
*/
77

88
namespace Progress_Planner\Suggested_Tasks\Providers;
99

1010
/**
11-
* Add tasks for settings saved.
11+
* Add tasks for set valuable post types.
1212
*/
1313
class Set_Valuable_Post_Types extends Tasks_Interactive {
1414

@@ -119,30 +119,31 @@ protected function get_title() {
119119

120120
/**
121121
* Check if the task should be added.
122-
* We add tasks only to users who have have completed "Fill the settings page" task
123-
* and have upgraded from v1.2 or have 'include_post_types' option empty.
122+
* We add tasks only to users who have upgraded from v1.2 or have 'include_post_types' option empty.
124123
* Reason being that this option was migrated,
125124
* but it could be missed, and post type selection should be revisited.
126125
*
127126
* @return bool
128127
*/
129128
public function should_add_task() {
130-
$saved_posts = \progress_planner()->get_suggested_tasks_db()->get_tasks_by( [ 'provider_id' => 'settings-saved' ] );
131-
if ( empty( $saved_posts ) ) {
129+
$activity = \progress_planner()->get_activities__query()->query_activities(
130+
[
131+
'category' => 'suggested_task',
132+
'data_id' => static::PROVIDER_ID,
133+
]
134+
);
135+
if ( ! empty( $activity ) ) {
132136
return false;
133137
}
134138

135-
// Is the task trashed?
136-
$post_trashed = 'trash' === $saved_posts[0]->post_status;
137-
138139
// Upgraded from <= 1.2?
139140
$upgraded = (bool) \get_option( 'progress_planner_set_valuable_post_types', false );
140141

141142
// Include post types option empty?
142143
$include_post_types = \progress_planner()->get_settings()->get( 'include_post_types', [] );
143144

144-
// Add the task only to users who have completed the "Settings saved" task and have upgraded from v1.2 or have 'include_post_types' option empty.
145-
return $post_trashed && ( true === $upgraded || empty( $include_post_types ) );
145+
// Add the task only to users who have upgraded from v1.2 or have 'include_post_types' option empty.
146+
return ( true === $upgraded || empty( $include_post_types ) );
146147
}
147148

148149
/**

0 commit comments

Comments
 (0)