PageSourceSearch

https://sensitivityresearch.com/wp-content/plugins/grassblade/addons/user_report/js/script.js?ver=7.0.0

js sensitivityresearch.com collected 2026-09-24 19:49:49 UTC 4,755 bytes, 136 lines download raw bytes

1jQuery('#gb_report_table').ready(function() {
2	gb_user_report_loaded();
3});
4function gb_user_report_loaded() {
5
6	if (jQuery('#gb_report_table').length) {
7
8		var Paginate = false;
9		if(parseInt(total_xapi_contents) > 50){
10			Paginate = true;
11		}
12	    var table = jQuery('#gb_report_table').DataTable({
13			responsive: true,
14			bFilter: true,
15			bInfo: false,
16			pageLength: 50,
17			bAutoWidth: false,
18			bPaginate: Paginate,
19			bLengthChange: Paginate,
20			language: gb_profile.datatables_language
21	    });
22
23	    jQuery('#gb_report_table').closest("input").addClass('search-input');
24
25		var default_filter = jQuery("#gb_result_filter").data("default");
26		if(default_filter != "all") {
27			default_filter = (typeof gb_profile[default_filter] == "string")? gb_profile[default_filter]:gb_profile.attempted;
28			jQuery("#gb_result_filter").val(default_filter);
29			setTimeout(function() {
30				jQuery("#gb_result_filter").trigger("change");
31			}, 10);
32		}
33	}
34
35	jQuery('#gb_result_filter').on('change', function() {
36
37		var table = jQuery('#gb_report_table').DataTable();
38
39		var filter_text = jQuery("#gb_result_filter option:selected").text();
40		var filter_val = jQuery("#gb_result_filter option:selected").val();
41		if (filter_val == 'all')
42			filter_val = '';
43		if (filter_val == gb_profile.attempted)
44			filter_val = '\s?[^-|^\u2011|^\u2012|^\u2013|^\u2014]\s?';
45		table
46            .column(3)
47            .search( filter_val, true, true )
48            .draw();
49	});
50}
51function gb_get_score(content_id,user_id,expandall) {
52
53	if (typeof(expandall)==='undefined')
54		expandall = false;
55
56	var key = 'attempts_'+content_id+'_'+user_id;
57
58	var attempts = JSON.parse(gb_content_attempts[key]);
59
60	if (attempts != '') {
61		if (jQuery("#score_row"+content_id).length == 0) {
62
63			var scoreTD = '';
64			var headTD =   '<th>'+gb_profile.date+'</th>\
65							<th>'+gb_profile.score+'</th>\
66							<th>'+gb_profile.status+'</th>\
67							<th>'+gb_profile.timespent+'</th>';
68
69			if (gb_content_quiz_enable[content_id]) {
70				headTD += '<th>'+gb_profile.quiz_report+'</th>';
71			}
72
73			jQuery.each(attempts, function (index, value) {
74				var tr_class = (index % 2 == 1)? 'tr_odd':'tr_even';
75
76				var content_td =   '<td scope="row" data-label="'+gb_profile.date+'">'+value.timestamp+'</td>\
77									<td data-label="'+gb_profile.score+'">'+value.percentage+'</td>\
78									<td data-label="'+gb_profile.status+'">'+value.status+'</td>\
79									<td data-label="'+gb_profile.timespent+'">'+value.timespent+'</td>';
80
81				var statement = JSON.parse(value.statement);
82				var registration = statement.context.registration;
83				if (gb_content_quiz_enable[content_id]) {
84					content_td += '<td data-label="'+gb_profile.quiz_report+'">\
85									<a onclick="return get_gb_quiz_report('+content_id+','+user_id+',\''+registration+'\');">\
86										<img class="gb-icon-img" src="'+gb_profile.plugin_dir_url+'/img/stats.png" width="20px">\
87									</a>\
88								  </td>';
89				}
90				scoreTD += '<tr class='+tr_class+'>'+content_td+'</tr>';
91			});
92
93			var HTML =	'<tr id="score_row'+content_id+'" style="display: none;">\
94							<td colspan="6">\
95								<div class="grassblade_table" id="attempts'+content_id+'" style="display: none;">\
96									<table id="sub_report_tbl" style="margin-bottom: 0px !important;">\
97										<thead>\
98											<tr>\
99												'+headTD+'\
100											</tr>\
101										</thead>\
102										<tbody>\
103											'+scoreTD+'\
104										</tbody>\
105									</table>\
106								</div>\
107							</td>\
108						</tr>';
109		}
110
111		if(jQuery(".row-details-open"+content_id).length > 0 && expandall == false){
112			jQuery("#attempts"+content_id).slideUp(1000,'swing', function(){jQuery("#score_row"+content_id).hide();});
113			jQuery('#score_row'+content_id).addClass("row-details-close"+content_id).removeClass("row-details-open"+content_id);
114		} else {
115			jQuery("#gb_row_"+content_id).after(HTML);
116			jQuery('#score_row'+content_id).addClass("row-details-open"+content_id).removeClass("row-details-close"+content_id);
117            jQuery("#score_row"+content_id).show();
118            jQuery("#attempts"+content_id).slideDown(1000);
119		}
120	}
121}
122
123function gb_expand_attempts(user_id){
124	if (jQuery('#gb_expand_btn.gb-collapsed').length > 0) {
125		jQuery('#gb_expand_btn').addClass("gb-expanded").removeClass('gb-collapsed');
126		jQuery.each(gb_content_quiz_enable,function (index, value) {
127			gb_get_score(index,user_id,true);
128		});
129	} else {
130		jQuery('#gb_expand_btn').addClass("gb-collapsed").removeClass('gb-expanded');
131		jQuery.each(gb_content_quiz_enable,function (index, value) {
132			jQuery("#attempts"+index).slideUp(1000,'swing', function(){jQuery("#score_row"+index).hide();});
133			jQuery('#score_row'+index).addClass("row-details-close"+index).removeClass("row-details-open"+index);
134		});
135	}
136}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.