Skip to content

Commit 7ea83a4

Browse files
authored
Merge branch 'develop' into filip/alternative-lock
2 parents 38698a9 + 858d8b9 commit 7ea83a4

11 files changed

Lines changed: 110 additions & 15 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
21
= 1.8.0 =
32

4-
Added these recommendations from Ravi:
5-
6-
* Set date format.
7-
83
Enhancements:
94

105
* Redesign of the admin pages.
6+
* Improved capability checks.
7+
* a11y improvements.
8+
9+
Added these recommendations from Ravi:
10+
11+
* Set date format.
1112

1213
Bugs we fixed:
14+
1315
* Fix redirecting to Progress Planner Dashboard after login.
1416

1517
= 1.7.2 =

assets/css/page-widgets/todo.css

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,51 @@
121121
\*------------------------------------*/
122122
#progress_planner_dashboard_widget_todo {
123123

124+
/* Silver task */
125+
&:not(:has(#todo-list li[data-task-points="1"])) {
126+
127+
#todo-list > .prpl-suggested-task:first-child {
128+
129+
border: 1px solid #796da2;
130+
background-color: #f6f7f9;
131+
132+
.prpl-suggested-task-points-wrapper {
133+
134+
&::after {
135+
content: "";
136+
display: inline-block;
137+
width: 24px;
138+
height: 24px;
139+
background-image: url("../../images/icon_progress_planner.svg");
140+
background-size: contain;
141+
background-repeat: no-repeat;
142+
}
143+
}
144+
}
145+
}
146+
147+
/* Golden task */
148+
&:has(#todo-list li[data-task-points="1"]) {
149+
150+
#todo-list {
151+
152+
.prpl-suggested-task[data-task-points="1"] {
153+
border: 1px solid var(--prpl-color-accent-orange);
154+
background-color: var(--prpl-background-orange);
155+
}
156+
}
157+
}
158+
124159
.prpl-suggested-task {
125160

126161
h3 {
127162
margin-bottom: 0;
128163
}
164+
165+
/* Override the default position of the move buttons. */
166+
.prpl-move-buttons-wrapper {
167+
left: calc(-5px - 0.5rem);
168+
}
129169
}
130170

131171
#create-todo-item {

assets/css/suggested-task.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
display: flex;
8181
gap: 0.5rem;
8282
align-items: center;
83+
justify-content: flex-end;
8384
grid-row-end: span 2;
8485
}
8586

assets/js/web-components/prpl-badge-progress-bar.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,8 @@ const prplUpdatePreviousMonthBadgeProgressBar = ( pointsDiff ) => {
113113
);
114114

115115
if ( remainingPointsEl ) {
116-
remainingPointsEl.textContent = remainingPointsEl.textContent.replace(
117-
remainingPointsEl.getAttribute( 'data-remaining' ),
118-
badgeMaxPoints - badgeNewPoints
119-
);
116+
// The points in the remaining points element are updated in the prplUpdatePreviousMonthBadgeCounters function.
117+
120118
remainingPointsEl.setAttribute(
121119
'data-remaining',
122120
badgeMaxPoints - badgeNewPoints

classes/class-suggested-tasks.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,14 @@ public function rest_prepare_recommendation( $response, $post ) {
439439

440440
// This has to be the last item to be added because actions use data from previous items.
441441
$response->data['prpl_task_actions'] = $provider->get_task_actions( $response->data );
442+
443+
/*
444+
Check if task was completed before - for example, comments were disabled and then re-enabled, and remove points if so.
445+
* Those are tasks which are completed by toggling an option, so non repetitive & not user tasks.
446+
*/
447+
if ( ! $provider->is_repetitive() && $provider->task_has_activity( $response->data['meta']['prpl_task_id'] ) ) {
448+
$response->data['meta']['prpl_points'] = 0;
449+
}
442450
}
443451

444452
$category_term = \wp_get_object_terms( $post->ID, 'prpl_recommendations_category' );

classes/suggested-tasks/class-tasks-interface.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,4 +120,13 @@ public function get_popover_id();
120120
* @return array
121121
*/
122122
public function add_task_actions( $data = [], $actions = [] );
123+
124+
/**
125+
* Check if the task has activity.
126+
*
127+
* @param string $task_id The task ID.
128+
*
129+
* @return bool
130+
*/
131+
public function task_has_activity( $task_id = '' );
123132
}

classes/suggested-tasks/providers/class-email-sending.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@ protected function get_description( $task_data = [] ) {
188188
* @return void
189189
*/
190190
public function enqueue_scripts( $hook ) {
191+
// Enqueue the script only on Progress Planner and WP dashboard pages.
192+
if ( 'toplevel_page_progress-planner' !== $hook && 'index.php' !== $hook ) {
193+
return;
194+
}
195+
191196
// Don't enqueue the script if the task is already completed.
192197
if ( true === \progress_planner()->get_suggested_tasks()->was_task_completed( $this->get_task_id() ) ) {
193198
return;

classes/suggested-tasks/providers/class-select-locale.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,14 @@ function ( $locale ) {
173173
* @return bool
174174
*/
175175
public function is_task_completed( $task_id = '' ) {
176-
$locale_activity = \progress_planner()->get_activities__query()->query_activities(
176+
$activity = \progress_planner()->get_activities__query()->query_activities(
177177
[
178178
'category' => 'suggested_task',
179179
'data_id' => static::PROVIDER_ID,
180180
]
181181
);
182182

183-
return ! empty( $locale_activity );
183+
return ! empty( $activity );
184184
}
185185

186186
/**

classes/suggested-tasks/providers/class-select-timezone.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,14 @@ protected function get_title() {
8585
* @return bool
8686
*/
8787
public function should_add_task() {
88-
$timezone_activity = \progress_planner()->get_activities__query()->query_activities(
88+
$activity = \progress_planner()->get_activities__query()->query_activities(
8989
[
9090
'category' => 'suggested_task',
9191
'data_id' => static::PROVIDER_ID,
9292
]
9393
);
9494

95-
return ! $timezone_activity;
95+
return ! $activity;
9696
}
9797

9898
/**

classes/suggested-tasks/providers/class-tasks.php

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -626,14 +626,14 @@ public function get_task_actions( $data = [] ) {
626626
return $actions;
627627
}
628628

629-
if ( $this->is_dismissable() && 'user' !== static::PROVIDER_ID ) {
629+
if ( $this->capability_required() && $this->is_dismissable() && 'user' !== static::PROVIDER_ID ) {
630630
$actions[] = [
631631
'priority' => 20,
632632
'html' => '<button type="button" class="prpl-suggested-task-button" data-task-id="' . \esc_attr( $data['meta']['prpl_task_id'] ) . '" data-task-title="' . \esc_attr( $data['title']['rendered'] ) . '" data-action="complete" data-target="complete" title="' . \esc_html__( 'Mark as complete', 'progress-planner' ) . '" onclick="prplSuggestedTask.maybeComplete(' . (int) $data['id'] . ');"><span class="prpl-tooltip-action-text">' . \esc_html__( 'Mark as complete', 'progress-planner' ) . '</span><span class="screen-reader-text">' . \esc_html__( 'Mark as complete', 'progress-planner' ) . '</span></button>',
633633
];
634634
}
635635

636-
if ( $this->is_snoozable() ) {
636+
if ( $this->capability_required() && $this->is_snoozable() ) {
637637
$snooze_html = '<prpl-tooltip class="prpl-suggested-task-snooze"><slot name="open"><button type="button" class="prpl-suggested-task-button" data-task-id="' . \esc_attr( $data['meta']['prpl_task_id'] ) . '" data-task-title="' . \esc_attr( $data['title']['rendered'] ) . '" data-action="snooze" data-target="snooze" title="' . \esc_attr__( 'Snooze', 'progress-planner' ) . '"><span class="prpl-tooltip-action-text">' . \esc_html__( 'Snooze', 'progress-planner' ) . '</span><span class="screen-reader-text">' . \esc_html__( 'Snooze', 'progress-planner' ) . '</span></button></slot><slot name="content">';
638638
$snooze_html .= '<fieldset><legend><span>' . \esc_html__( 'Snooze this task?', 'progress-planner' ) . '</span><button type="button" class="prpl-toggle-radio-group" onclick="this.closest(\'.prpl-suggested-task-snooze\').classList.toggle(\'prpl-toggle-radio-group-open\');"><span class="prpl-toggle-radio-group-text">' . \esc_html__( 'How long?', 'progress-planner' ) . '</span><span class="prpl-toggle-radio-group-arrow">&rsaquo;</span></button></legend><div class="prpl-snooze-duration-radio-group">';
639639
foreach (
@@ -704,4 +704,26 @@ function ( $a, $b ) {
704704
public function add_task_actions( $data = [], $actions = [] ) {
705705
return $actions;
706706
}
707+
708+
/**
709+
* Check if the task has activity.
710+
*
711+
* @param string $task_id The task ID.
712+
*
713+
* @return bool
714+
*/
715+
public function task_has_activity( $task_id = '' ) {
716+
if ( empty( $task_id ) ) {
717+
$task_id = $this->get_task_id();
718+
}
719+
720+
$activity = \progress_planner()->get_activities__query()->query_activities(
721+
[
722+
'category' => 'suggested_task',
723+
'data_id' => $task_id,
724+
]
725+
);
726+
727+
return ! empty( $activity );
728+
}
707729
}

0 commit comments

Comments
 (0)