diff --git a/admin/themes/default/template/user_activity.tpl b/admin/themes/default/template/user_activity.tpl index 2a235813f..f2ce4cdce 100644 --- a/admin/themes/default/template/user_activity.tpl +++ b/admin/themes/default/template/user_activity.tpl @@ -18,6 +18,7 @@ const color_icons = ["icon-red", "icon-blue", "icon-yellow", "icon-purple", "ico var activity_page = 1; let actual_page = 1; let max_page = 1; +let uid_filter; const page_ellipsis = '...' const page_item = '%d'; var create_selecter = true; @@ -101,15 +102,16 @@ var actionInfos_tags_moved = "{'%d tags moved'|translate}"; {*<-- Getting and Displaying Activities -->*} -get_user_activity(activity_page); +get_user_activity(activity_page, uid_filter); -function get_user_activity(page) { +function get_user_activity(page, uid) { $.ajax({ url: "ws.php?format=json&method=pwg.activity.getList", type: "POST", dataType: "json", data: { page: page - 1, + uid: uid, }, beforeSend: () => { $('.tab').contents(':not(#-1):not(.loading)').remove(); @@ -118,11 +120,11 @@ function get_user_activity(page) { $('.pagination-arrow.left').addClass('unavailable'); $(".pagination-item-container").hide(); $(".user-update-spinner").addClass("icon-spin6"); - $(".cancel-icon").trigger("click"); }, success: (data) => { /* console log to help debug */ console.log(data); + uid_filter = uid; setCreationDate(data.result['result_lines'][data.result['result_lines'].length-1].date, data.result['result_lines'][0].date); $(".loading").hide(); @@ -625,7 +627,7 @@ function move_to_page(page) { return; actual_page = page; update_pagination_menu(); - get_user_activity(page); + get_user_activity(page, uid_filter); } $('.pagination-arrow.rigth').on('click', () => { @@ -698,9 +700,8 @@ function append_pagination_item(page = null) { $(document).ready(function () { $('select').on('change', function (user) { if ($(".selectize-input").hasClass("full")) { - $(".line").hide(); - $(".uid-" + $(".selectize-input .item").data("value")).show(); {* call ajax sur activity list avec uid en param *} + get_user_activity(1, $(".selectize-input .item").data("value")); } }); diff --git a/include/ws_functions/pwg.php b/include/ws_functions/pwg.php index 1d72c3b06..de62c7884 100644 --- a/include/ws_functions/pwg.php +++ b/include/ws_functions/pwg.php @@ -434,7 +434,26 @@ function ws_getActivityList($param, &$service) $user_ids = array(); - $query = ' + if (isset($param['uid'])) { + $query = ' +SELECT + activity_id, + performed_by, + object, + object_id, + action, + session_idx, + ip_address, + occured_on, + details + FROM '.ACTIVITY_TABLE.' + WHERE performed_by = '.$param['uid'].' + ORDER BY activity_id DESC LIMIT '.$page_size.' OFFSET '.$page_offset.'; +;'; + } + else + { + $query = ' SELECT activity_id, performed_by, @@ -448,6 +467,9 @@ SELECT FROM '.ACTIVITY_TABLE.' ORDER BY activity_id DESC LIMIT '.$page_size.' OFFSET '.$page_offset.'; ;'; + } + + $line_id = 0; $result = pwg_query($query); @@ -534,18 +556,28 @@ SELECT } } +if (isset($param['uid'])) { $query = ' - SELECT - count(*) - FROM '.ACTIVITY_TABLE.' - ;'; - +SELECT + count(*) + FROM '.ACTIVITY_TABLE.' + WHERE performed_by = '.$param['uid'].' +;'; +} else { + $query = ' +SELECT + count(*) + FROM '.ACTIVITY_TABLE.' +;'; +} + $result = (pwg_db_fetch_row(pwg_query($query))[0])/$page_size; // return $output_lines; return array( 'result_lines' => $output_lines, 'max_page' => floor($result), + 'params' => $param, ); } diff --git a/ws.php b/ws.php index 61862d44c..0a346b0c9 100644 --- a/ws.php +++ b/ws.php @@ -86,6 +86,8 @@ function ws_addDefaultMethods( $arr ) array( 'page' => array('default'=>null, 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'uid' => array('default'=>NULL, + 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), ), 'Returns general informations.', $ws_functions_root . 'pwg.php',