1var check_ajax_status = 0; 2var request_unread_message; 3var ajaxLoading = false; 4var chat_get_response = false; 5jQuery(document).ready(function(){ 6 7 if (jQuery('#user-chat-popup').length){ 8 dap_live_chat_html_content_ajax(); 9 } 10 11 jQuery(window).on('storage', dap_message_receive); 12 13 if (jQuery("#user-chat-popup").length && jQuery("#user-chat-popup").html().length > 0) { 14 jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight")}, 10); 15 16 jQuery('.dap-chat-visitor-body-expanding-widget-textarea').on('input', function() { 17 if (jQuery.trim(jQuery(this).val()) != '') { 18 jQuery('button.dap-chat-visitor-body-chat-send-button').addClass('dap-active'); 19 }else{ 20 jQuery('button.dap-chat-visitor-body-chat-send-button').removeClass('dap-active'); 21 } 22 }); 23 24 25 } 26 27 28 29}); 30 31jQuery(document).on('click','button.dap-chat-visitor-body-chat-send-button', function(){ 32 dap_message_ajax_send_message(); 33}); 34 35jQuery(document).on('click','.dap-chat-button-wrapper', function(){ 36 jQuery('.dap-chat-application-wrapper').toggleClass('dap-chatbox-open'); 37 38 jQuery('.dap-chat-visitor-chat-widget').addClass('chat-message-loading'); 39 40 if (jQuery('.dap-chat-application-wrapper').hasClass('dap-chatbox-open')) { 41 jQuery('a.dap-chat-button-wrapper').removeClass('have-chat-msg'); 42 // request_unread_message.abort(); 43 ajaxLoading = false; 44 dap_get_unread_message_ajax(1, 1); 45 } 46}); 47jQuery(document).on('click','.dap-chat-close-icon', function(){ 48 jQuery('.dap-chat-application-wrapper').removeClass('dap-chatbox-open'); 49}); 50 51function dap_chat_keypress_event(){ 52 jQuery(".dap-chat-visitor-body-expanding-widget-textarea").keypress(function(event) { 53 if (event.which == 13) { 54 event.preventDefault(); 55 dap_message_ajax_send_message(); 56 } 57 }); 58 59 jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').on('scroll', function() { 60 if(jQuery(this).scrollTop() <= 1000){ 61 var msg_count = jQuery('#message-total-count').val(); 62 var start_from_count = jQuery('#message-start-from').val(); 63 if (check_ajax_status == 0 && parseInt(msg_count) >= parseInt(start_from_count)) { 64 request_unread_message.abort(); 65 ajaxLoading = false; 66 dap_message_ajax_get_message(); 67 } 68 } 69 }); 70 71 var ajax_request_time = 20000; 72 if (jQuery('#message-ajax-request').val() != '') { 73 ajax_request_time = parseInt(jQuery('#message-ajax-request').val())*1000; 74 } 75 76 setInterval(function() { 77 if (chat_get_response) { 78 dap_get_unread_message_ajax(); 79 } 80 }, ajax_request_time); 81} 82 83function dap_live_chat_html_content_ajax(){ 84 var ajaxurl = dap_livelink_common_ajax_object.ajax_url; 85 var course_id_define = jQuery('#course_id_hidden').val(); 86 var course_id = 0; 87 if (typeof course_id_define !== "undefined") { 88 course_id = course_id_define; 89 } 90 var pageurl = jQuery('#user-chat-popup').attr('data-pageurl'); 91 jQuery.ajax({ 92 url: ajaxurl, 93 type:'POST', 94 data:{ 95 action : 'dap_live_chat_html_content', 96 course_id : course_id, 97 permalink : pageurl 98 } , 99 success: function(response){ 100 if (response != '') { 101 jQuery('#user-chat-popup').html(response); 102 dap_message_ajax_get_message(1); 103 dap_get_unread_message_ajax(); 104 chat_get_response = true; 105 dap_chat_keypress_event(); 106 } 107 108 109 } 110 }); 111} 112 113 114function dap_message_ajax_send_message(){ 115 var chat_message = jQuery('.dap-chat-visitor-body-expanding-widget-textarea').val(); 116 if (jQuery.trim(chat_message) != '') { 117 118 var dap_chat_today = new Date(); 119 var dap_chat_time = dap_chat_today.getHours() + ":" + dap_chat_today.getMinutes(); 120 121 jQuery('.dap-chat-hidden-html-for-user .dap-chat-update-user-written-msg').text(chat_message); 122 jQuery('.dap-chat-hidden-html-for-user .dap-chat-message-send-time').text(dap_chat_time); 123 124 var user_msg = jQuery('.dap-chat-hidden-html-for-user').html(); 125 jQuery('.dap-chat-visitor-body-primary-message').append(user_msg); 126 127 dap_message_broadcast({'command':'setsendmsg', 'user_msg': user_msg}); 128 129 jQuery('.dap-chat-visitor-body-expanding-widget-textarea').val(''); 130 jQuery('button.dap-chat-visitor-body-chat-send-button').removeClass('dap-active'); 131 jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight")}, 10); 132 133 const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; 134 135 136 137 138 var form_chat_data = new FormData(); 139 form_chat_data.append("action", 'dap_add_user_chat_message' ); 140 form_chat_data.append("user_msg", chat_message); 141 form_chat_data.append("timezone", timezone); 142 143 var course_name = jQuery('#course_name_hidden').val(); 144 if (typeof course_name !== "undefined") { 145 form_chat_data.append("course_name", course_name); 146 } 147 148 var lesson_name = jQuery('#lesson_name_hidden').val(); 149 if (typeof lesson_name !== "undefined") { 150 form_chat_data.append("lesson_name", lesson_name); 151 } 152 form_chat_data.append("page_url", window.location.href); 153 154 155 var ajaxurl = dap_livelink_common_ajax_object.ajax_url; 156 jQuery.ajax({ 157 url: ajaxurl, 158 method:"POST", 159 data: form_chat_data, 160 contentType: false, 161 cache: false, 162 processData: false, 163 beforeSend:function(){ 164 165 }, 166 success:function(output){ 167 }, 168 error: function (xhr, ajaxOptions, thrownError) { 169 // ajaxLoading = false;
170 } 171 }); 172 } 173 174} 175 176 177function dap_message_ajax_get_message(stopscroll = 0){ 178 179 if(!ajaxLoading) { 180 ajaxLoading = true; 181 jQuery('.chat-dot-typing-wrapper').show(); 182 check_ajax_status = 1; 183 var start_from = jQuery('#message-start-from').val(); 184 var chat_per_request = jQuery('#message-chat-per-request').val(); 185 186 const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; 187 var form_chat_data = new FormData(); 188 form_chat_data.append("action", 'dap_get_user_chat_message' ); 189 form_chat_data.append("timezone", timezone ); 190 form_chat_data.append("start_from", start_from ); 191 form_chat_data.append("chat_per_request", chat_per_request ); 192 var ajaxurl = dap_livelink_common_ajax_object.ajax_url; 193 jQuery.ajax({ 194 url: ajaxurl, 195 method:"POST", 196 data: form_chat_data, 197 contentType: false, 198 cache: false, 199 processData: false, 200 beforeSend:function(){ 201 202 }, 203 success:function(response){ 204 check_ajax_status = 0; 205 var response = JSON.parse(response); 206 jQuery('.chat-dot-typing-wrapper').hide(); 207 208 jQuery('#message-total-count').val(response.user_msg_count); 209 var update_start_from = parseInt(start_from) + parseInt(chat_per_request); 210 jQuery('#message-start-from').val(update_start_from); 211 212 var older_screen_height = jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight"); 213 jQuery('.dap-chat-visitor-body-primary-message').prepend(response.user_msg); 214 var new_screen_height = jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight"); 215 var final_scroll_height = new_screen_height - older_screen_height; 216 217 218 if (start_from == 0 || stopscroll == 1) { 219 jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight")}, 0); 220 }else{ 221 jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: final_scroll_height }, 0); 222 } 223 ajaxLoading = false; 224 }, 225 error: function (xhr, ajaxOptions, thrownError) { 226 ajaxLoading = false; 227 } 228 }); 229 } 230} 231 232function dap_get_unread_message_ajax(update_unread_message_status = 0, scrolltobottom = 0){ 233 234 if (jQuery('.dap-chat-application-wrapper').hasClass('dap-chatbox-open')) { 235 update_unread_message_status = 1; 236 } 237 if(!ajaxLoading) { 238 ajaxLoading = true; 239 //jQuery('.chat-dot-typing-wrapper').show(); 240 check_ajax_status = 1; 241 const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; 242 var form_chat_data = new FormData(); 243 form_chat_data.append("action", 'dap_get_user_chat_message' ); 244 form_chat_data.append("timezone", timezone ); 245 form_chat_data.append("msg_read_type", 'unread' ); 246 form_chat_data.append("update_unread_message_status", update_unread_message_status ); 247 var ajaxurl = dap_livelink_common_ajax_object.ajax_url; 248 request_unread_message = jQuery.ajax({ 249 url: ajaxurl, 250 method:"POST", 251 data: form_chat_data, 252 contentType: false, 253 cache: false, 254 processData: false, 255 beforeSend:function(){ 256 257 }, 258 success:function(response){ 259 check_ajax_status = 0; 260 var response = JSON.parse(response); 261 //jQuery('.chat-dot-typing-wrapper').hide(); 262 263 264 265 var message_ids = response.message_ids; 266 jQuery.each(message_ids, function(i, object) { 267 jQuery('.dap-chat-visitor-body-primary-message #dap-chat-msg-'+object).remove(); 268 }); 269 270 if (update_unread_message_status == 1 ) { 271 if (response.user_msg != '') { 272 jQuery('.dap-chat-visitor-body-primary-message').append(response.user_msg); 273 dap_message_broadcast({'command':'setunreadmsg', 'user_msg': response.user_msg}); 274 } 275 276 } 277 278 279 280 var total_record_found = response.total_record_found; 281 if (parseInt(total_record_found) != 0) { 282 var total_record_found_org = parseInt(jQuery('#message-total-count').val()); 283 var record_start_from = parseInt(jQuery('#message-start-from').val()); 284 285 total_record_found_org = total_record_found_org + total_record_found; 286 record_start_from = record_start_from + total_record_found; 287 288 jQuery('#message-total-count').val(total_record_found_org); 289 jQuery('#message-start-from').val(record_start_from); 290 291 var scroll_area_height = jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight"); 292 jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: scroll_area_height }, 0); 293 294 } 295 if (parseInt(response.total_record_found) >= 1 && !jQuery('.dap-chat-application-wrapper').hasClass('dap-chatbox-open')) { 296 jQuery('a.dap-chat-button-wrapper').attr('data-chatmsg', response.total_record_found); 297 jQuery('a.dap-chat-button-wrapper').addClass('have-chat-msg'); 298 } 299 jQuery('.dap-chat-visitor-chat-widget').removeClass('chat-message-loading'); 300 301 if (scrolltobottom == 1) { 302 var scroll_area_height = jQuery('.dap-chat-visitor-body-div-messages-scroll-container-utv').prop("scrollHeight"); 303 jQuery(".dap-chat-visitor-body-div-messages-scroll-container-utv").animate({ scrollTop: scroll_area_height }, 0); 304 } 305 306 ajaxLoading = false;
307 }, 308 error: function (xhr, ajaxOptions, thrownError) { 309 ajaxLoading = false; 310 jQuery('.dap-chat-visitor-chat-widget').removeClass('chat-message-loading'); 311 312 313 } 314 }); 315 } 316} 317 318 319function dap_message_broadcast(message) 320{ 321 localStorage.setItem('user_msg',JSON.stringify(message)); 322 localStorage.removeItem('user_msg'); 323} 324 325 326// receive message 327// 328function dap_message_receive(ev) 329{ 330 if (ev.originalEvent.key!='user_msg') return; // ignore other keys 331 var message=JSON.parse(ev.originalEvent.newValue); 332 if (!message) return; // ignore empty msg or msg reset 333 334 // here you act on messages. 335 // you can send objects like { 'command': 'doit', 'data': 'abcd' } 336 if (message.command == 'setunreadmsg'){ 337 jQuery('.dap-chat-visitor-body-primary-message').append(message.user_msg); 338 } 339 340 if (message.command == 'setsendmsg'){ 341 jQuery('.dap-chat-visitor-body-primary-message').append(message.user_msg); 342 } 343 344 // etc. 345}
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.