Current File : /home/escuelai/public_html/wp-content/plugins/learnpress/inc/admin/views/tools/course/html-user.php |
<?php
/**
* @author ThimPress
* @package LearnPress/Admin/Views
* @version 3.0.0
*/
defined( 'ABSPATH' ) or die();
?>
<div id="learn-press-reset-user-courses" class="card">
<h2><?php _e( 'Reset User Progress', 'learnpress' ); ?></h2>
<div class="description">
<p><?php _e( 'This action will reset all course progresses of users.', 'learnpress' ); ?></p>
<p><?php _e( 'Search results only show if users have course data.', 'learnpress' ); ?></p>
</div>
<p>
<input class="wide-fat" type="text" name="s" @keyup="updateSearch($event)"
placeholder="<?php esc_attr_e( 'Search user by login name or email', 'learnpress' ); ?>">
<button class="button" @click="search($event)"
:disabled="s.length < 3"><?php _e( 'Search', 'learnpress' ); ?></button>
</p>
<template v-if="users.length > 0">
<table class="wp-list-table widefat fixed striped">
<thead>
<tr>
<th width="50"><?php _e( 'ID', 'learnpress' ); ?></th>
<th width="200"><?php _e( 'Name', 'learnpress' ); ?></th>
<th><?php _e( 'Courses', 'learnpress' ); ?></th>
<th width="80"><?php _e( 'Actions', 'learnpress' ); ?></th>
</tr>
</thead>
<tbody>
<tr v-for="user in users">
<td>#{{user.id}}</td>
<td>{{user.username}} ({{user.email}})</td>
<td>
<ul class="courses-list">
<li v-for="course in user.courses">
<a :href="course.url" target="_blank">{{course.title}} (#{{course.id}})</a>
<a href=""
class="action-reset dashicons"
data-reset="single"
@click="reset($event, user, course.id);"
:class="resetActionClass(user, course)"></a>
</li>
</ul>
</td>
<td>
<a href=""
class="action-reset dashicons"
data-reset="all"
:class="resetActionClass(user)"
@click="reset($event, user);"></a>
<span style="font-size: 12px"><?php echo esc_html__( 'Delete All', 'learnpress' ); ?></span>
</td>
</tr>
</tbody>
</table>
</template>
<template v-else>
<p v-if="s.length < 3"><?php _e( 'Please enter at least 3 characters.', 'learnpress' ); ?></p>
<p v-else-if="status=='result'"><?php _e( 'No user found.', 'learnpress' ); ?></p>
<p v-else-if="status=='searching'"><?php _e( 'Searching user...', 'learnpress' ); ?></p>
</template>
</div>
<?php
// Translation
$localize = array(
'reset_course_users' => __( 'Are you sure to reset course progress of all users enrolled this course?', 'learnpress' ),
);
?>
<script>
window.$Vue = window.$Vue || Vue;
jQuery(function ($) {
var js_localize = <?php echo wp_json_encode( $localize ); ?>
new $Vue({
el: '#learn-press-reset-user-courses',
data: {
s: '',
status: false,
users: []
},
methods: {
resetActionClass: function (user, course) {
var status = course ? course.status : user.status;
return {
'dashicons-trash': !status,
'dashicons-yes': status === 'done',
'dashicons-update': status === 'resetting'
}
},
updateSearch: function (e) {
this.s = e.target.value;
this.status = false;
e.preventDefault();
},
search: function (e) {
e.preventDefault();
var that = this;
this.s = $(this.$el).find('input[name="s"]').val();
if (this.s.length < 3) {
return;
}
this.status = 'searching';
this.courses = [];
$.ajax({
url: '',
data: {
'lp-ajax': 'rs-search-users',
s: this.s,
nonce: lpGlobalSettings.nonce
},
success: function (response) {
var users = LP.parseJSON(response);
for(var i = 0; i < users.length; i++) {
for (var j in users[i].courses) {
users[i].courses[j].status = ''
}
}
that.users = users;
that.status = 'result';
}
})
},
reset: function (e, user, course_id) {
e.preventDefault();
if (!confirm(js_localize.reset_course_users)) {
return;
}
var that = this;
if(course_id){
user.courses[course_id].status = 'resetting'
}else{
for(var j in user.courses ){
user.courses[j].status = 'resetting'
}
user.status = 'resetting';
}
var object_reset = $(e.target).data('reset');
$.ajax({
url: '',
data: {
'lp-ajax': 'rs-reset-user-courses',
user_id: user.id,
course_id: course_id,
object_reset: object_reset,
nonce: lpGlobalSettings.nonce
},
success: function (response) {
response = LP.parseJSON(response);
//if (response.id == user.id) {
for (var i = 0, n = that.users.length; i < n; i++) {
if (that.users[i].id === user.id) {
if(course_id){
that.users[i].courses[course_id].status = 'done'
}else{
for(var j in that.users[i].courses ){
that.users[i].courses[j].status = 'done'
}
user.status = 'done';
}
break;
}
}
// }
}
})
}
}
});
});
</script>