Skip to content

Commit

Permalink
fix(roles): make validation with role work
Browse files Browse the repository at this point in the history
  • Loading branch information
elzinko committed Nov 2, 2023
1 parent cd2cc81 commit 4b4cf3f
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 77 deletions.
38 changes: 18 additions & 20 deletions admin/logger.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,6 @@

define('ACTION_LOG_TABLE_NAME', 'action_log');

// Menu
function add_logger_page()
{
if (current_user_can('manage_options') || current_user_can('emvp_access_logger')) {
add_submenu_page(
'media-validator',
'Logger',
'Logger',
'emvp_access_logger',
'logger',
'render_logger_page'
);
}
}
add_action('admin_menu', 'add_logger_page');



if (!class_exists('WP_List_Table')) {
require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
}
Expand Down Expand Up @@ -164,7 +146,7 @@ protected function column_default($item, $column_name) {
}

// Then in your render_history_page function you would use this class
function render_history_page() {
function render_logger_page() {
$actionLogListTable = new Action_Log_List_Table();
$actionLogListTable->prepare_items();
?>
Expand Down Expand Up @@ -235,4 +217,20 @@ function log_media_action($media_id, $key, $value)
'log_value' => $value,
)
);
}
}


function add_logger_page()
{
if (current_user_can('manage_options') || current_user_can('emvp_access_logger')) {
add_submenu_page(
'media-validator',
'Logger',
'Logger',
'emvp_access_logger',
'logger',
'render_logger_page'
);
}
}
add_action('admin_menu', 'add_logger_page');
74 changes: 28 additions & 46 deletions assets/js/custom.js
Original file line number Diff line number Diff line change
@@ -1,56 +1,39 @@
jQuery(document).ready(function($) {

$('.validation input[type="checkbox"]').change(function(e) {
e.preventDefault(); // Empêche la case à cocher de changer d'état immédiatement
var postId = $(this).data('id'); // Get the post ID from a data attribute
var isChecked = $(this).is(':checked') ? 1 : 0; // Determine if checkbox is checke
$('.validation input[type="checkbox"]').click(function(event) {
var checkbox = $(this); // L'élément case à cocher sur lequel l'utilisateur a cliqué
var isChecked = checkbox.is(':checked'); // L'état de la case à cocher avant le clic

// Si la case est déjà cochée (et donc cliquée pour être décochée par l'agence)
// Nous devons empêcher le changement de l'état si la case est déjà cochée.
if (isChecked) {
prompt("Impossible de valider de nouveau");
// Ici, vous pouvez ajouter la logique pour afficher une popup de confirmation pour l'agence.
// ...
} else {
// Popup pour le commentaire client
// Demander un commentaire avant de cocher la case
var comment = prompt("Veuillez entrer votre commentaire pour la validation:");
if (comment) {
// Envoyer la requête AJAX avec le commentaire
$.post(
ajaxurl,
{
action: 'update_media_validation',
post_id: postId,
is_checked: 1, // On suppose la validation ici
comment: comment, // Commentaire à envoyer
security: MyAjax.security // La nonce de sécurité
},
function(response) {
console.log('The server responded: ', response);
// Mettre à jour l'interface utilisateur ici, par exemple griser la case à cocher
checkbox.prop('disabled', true);
}
);
}
}

// // Make the AJAX request
// $.post(
// ajaxurl, // This variable is automatically defined by WordPress and points to /wp-admin/admin-ajax.php
// {
// action: 'update_media_validation', // The action hook name
// post_id: postId, // The post ID
// is_checked: isChecked, // The checkbox state
// security: MyAjax.security // A nonce for security. Replace 'MyAjax.security' with the localized object and property where you've stored the nonce.
// },
// function(response) {
// console.log('The server responded: ', response);
// }
// );
var postId = checkbox.data('id'); // Récupérer l'ID du post

// Envoyer la requête AJAX avec le commentaire
$.post(
ajaxurl,
{
action: 'update_media_validation',
post_id: postId,
is_checked: isChecked, // On suppose la validation ici
comment: comment, // Commentaire à envoyer
security: MyAjax.security // La nonce de sécurité
},
function(response) {
console.log('The server responded: ', response);
// Si la réponse du serveur est positive, cocher la case et la désactiver
if (response.success) {
checkbox.prop('checked', true).prop('disabled', true);
} else {
// Gérer les erreurs ici
console.error('Error: ', response);
}
}
);
});

});

jQuery(document).ready(function($) {
$('#send_email_checkbox').change(function() {
if(this.checked) {
$('#email_field_container').show();
Expand All @@ -59,4 +42,3 @@ jQuery(document).ready(function($) {
}
});
});

7 changes: 0 additions & 7 deletions includes/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,6 @@ function update_media_validation()
$comment = $_POST['comment'];
$key = 'media_validation';

// // add comment
// $result = update_post_meta($media_id, 'validation_comment', $comment);
// if ($result) {
// log_media_action($media_id, $key, $isChecked);
// echo 'Success';
// }

// Update the post meta
$result = update_post_meta($media_id, $key, $isChecked);
// Enregistrez l'action dans le log
Expand Down
11 changes: 7 additions & 4 deletions includes/media-functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -156,12 +156,15 @@ function column_alt_text($image): string
function column_validation($image_id): string
{
$media_validation = get_post_meta($image_id, 'media_validation', true);
$checked = $media_validation == "1" ? "checked" : "";
$checked = $media_validation=="true"? "checked" : "";
$disabled = ($media_validation && in_array( 'emvp_client', (array) wp_get_current_user()->roles ))? "disabled" : "";

return sprintf(
'<input type="checkbox" name="validation" %s data-id="%s" />',
'<input type="checkbox" name="validation" data-id="%s" %s %s />',
$image_id,
$checked,
$image_id
);
$disabled
);
}

function column_description($image): string
Expand Down

0 comments on commit 4b4cf3f

Please sign in to comment.