Skip to content

Commit

Permalink
Merge pull request #873 from Codeinwp/feat/force-reoffload
Browse files Browse the repository at this point in the history
- feat: force reoffload
  • Loading branch information
abaicus authored Feb 19, 2025
2 parents 1eb28b3 + 1712feb commit 365d9e8
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 8 deletions.
13 changes: 7 additions & 6 deletions assets/src/dashboard/parts/components/Modal.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export default function Modal({ icon, labels = {}, onRequestClose = () => {}, on
'bg-stale-yellow': 'warning' === variant,
'bg-light-blue': 'default' === variant
},
'p-3 rounded-full'
'p-2 rounded-full flex items-center justify-center'
);

const actionButtonClasses = classnames(
Expand All @@ -37,11 +37,12 @@ export default function Modal({ icon, labels = {}, onRequestClose = () => {}, on
/>

<div className="flex flex-col items-center">
<Icon
icon={ icon }
size={ 24 }
className={iconClasses}
/>
<span className={iconClasses}>
<Icon
icon={ icon }
size={ 24 }
/>
</span>

<h2
className="mb-0"
Expand Down
6 changes: 4 additions & 2 deletions assets/src/dashboard/parts/connected/settings/OffloadMedia.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { useDispatch, useSelect } from '@wordpress/data';
import { Icon } from '@wordpress/icons';

import { warning, rollback as rollbackIcon, offload, warningAlt, sync } from '../../../utils/icons';
import { callSync, checkOffloadConflicts, saveSettings } from '../../../utils/api';
import { callSync, clearOffloadErrors, checkOffloadConflicts, saveSettings } from '../../../utils/api';
import Notice from '../../components/Notice';
import RadioBoxes from '../../components/RadioBoxes';
import ProgressTile from '../../components/ProgressTile';
Expand Down Expand Up @@ -113,7 +113,9 @@ const OffloadMedia = ({ settings, canSave, setSettings, setCanSave }) => {
}, []);


const onOffloadMedia = ( imageIds = []) => {
const onOffloadMedia = async( imageIds = []) => {
await clearOffloadErrors();

const nextSettings = { ...settings };
nextSettings['show_offload_finish_notice'] = '';
nextSettings['offloading_status'] = 'enabled';
Expand Down
11 changes: 11 additions & 0 deletions assets/src/dashboard/utils/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,17 @@ export const callSync = ( data ) => {
});
};

export const clearOffloadErrors = async() => {
try {
return await apiFetch({
path: optimoleDashboardApp.routes['clear_offload_errors'],
method: 'GET'
});
} catch ( error ) {
console.log( error );
}
};

export const addNotice = ( text ) => {
createNotice(
'info',
Expand Down
14 changes: 14 additions & 0 deletions inc/media_offload.php
Original file line number Diff line number Diff line change
Expand Up @@ -2754,4 +2754,18 @@ private function get_offloaded_attachment_url( $attachment_id, $url ) {

return $url;
}

/**
* Cleanup the offload errors meta.
*/
public static function clear_offload_errors_meta() {
global $wpdb;

return $wpdb->query(
$wpdb->prepare(
"DELETE FROM {$wpdb->postmeta} WHERE meta_key = %s",
self::META_KEYS['offload_error']
)
);
}
}
14 changes: 14 additions & 0 deletions inc/rest.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ class Optml_Rest {
],
'media_cloud_routes' => [
'number_of_images_and_pages' => 'POST',
'clear_offload_errors' => 'GET',
'get_offload_conflicts' => 'GET',
],
'watermark_routes' => [
Expand Down Expand Up @@ -867,6 +868,19 @@ public function number_of_images_and_pages( WP_REST_Request $request ) {
return $this->response( Optml_Media_Offload::get_image_count( $action, $refresh, $images ) );
}

/**
* Clear the offload errors from previous offload attempts.
*
* @param WP_REST_Request $request Rest request object.
*
* @return WP_REST_Response
*/
public function clear_offload_errors( WP_REST_Request $request ) {
$delete_count = Optml_Media_Offload::clear_offload_errors_meta();

return $this->response( [ 'success' => $delete_count ] );
}

/**
* Get conflicts list.
*
Expand Down

0 comments on commit 365d9e8

Please sign in to comment.