PageSourceSearch

https://understandquran.com/wp-content/plugins/learndash-propanel/…/assets/js/admin-settings.js?ver=3.0.2

js understandquran.com collected 2026-10-01 11:37:27 UTC 56,097 bytes, 1,075 lines download raw bytes

1// cspell:disable dont
2
3jQuery(function() {
4    jQuery(document).ready(function(){
5        const preloadparams = new URLSearchParams(window.location.search);
6        // Check if we have the param
7        if (preloadparams.has('preload_activity')) {
8            wp.data.dispatch( 'core/editor' ).editPost( { meta: { _my_meta_data: 1 } });
9            var blocks = wp.data.select('core/editor').getBlocks();
10            var target_block = blocks[ blocks.length - 1 ].clientId;
11            var source = document.querySelector( '[data-block="' + target_block + '"]' );
12            // var container = wp.dom.getScrollContainer( source );
13            source.scrollIntoView({ behavior: 'smooth', block: 'center' });
14        }
15        if (preloadparams.has('preload_progress')) {
16            wp.data.dispatch( 'core/editor' ).editPost( { meta: { _my_meta_data: 1 } });
17            var blocks = wp.data.select('core/editor').getBlocks();
18            var target_block = blocks[ blocks.length - 1 ].clientId;
19            var source = document.querySelector( '[data-block="' + target_block + '"]' );
20            // var container = wp.dom.getScrollContainer( source );
21            source.scrollIntoView({ behavior: 'smooth', block: 'center' });
22        }
23        if ( preloadparams.has('updated_pattern') ) {
24            var source = document.querySelector( '.wp-block-wisdm-learndash-reports-course-progress-rate' );
25            // var container = wp.dom.getScrollContainer( source );
26            jQuery( 'body' ).append( '<div id="wrld-success">' + wrld_admin_settings_data.success_text + '</div>' );
27            var x = document.getElementById( "wrld-success" );
28            setTimeout( function() {
29                source.scrollIntoView({ behavior: 'smooth', block: 'center' });
30            }, 2000 );
31            setTimeout( function() {
32                x.className = "show";
33            }, 2500 );
34            setTimeout( function() {
35                x.className = x.className.replace("show", "");
36            }, 8500 );
37        }
38    });
39    var users, user_roles, courses, load_more = true, userMultiSelect;
40    var courseMultiSelect;
41    var change_users = [], change_ur = [], change_courses = [];
42    var currentXhr, search_string, lag;
43    jQuery('.wrld-la-auto-button').on('click', function ( event ) {
44        //ajax query to skip licensing;
45        //action:
46        event.preventDefault();
47        let $this = jQuery(this);
48        $this.text(wrld_admin_settings_data.wait_text);
49        $this.css('cursor', 'progress');
50        jQuery.ajax({
51            url: wrld_admin_settings_data.wp_ajax_url,
52            type: 'post',
53            data: {
54				// cspell:disable-next-line
55                'action': 'wrld_autoupdate_dashboard',
56                'nonce':wrld_admin_settings_data.nonce,
57            },
58            timeout: 60000, // sets timeout to 1 minute
59            success: function(response){
60                window.location.href=response.data.url;
61            },
62            error: function(eventData){
63            },
64        });
65    });
66
67    jQuery('.wrld-license-page-skip-now-button').on('click', function ( event ) {
68        //ajax query to skip licensing;
69        //action:
70        event.preventDefault();
71        let $this = jQuery(this);
72        $this.text(wrld_admin_settings_data.wait_text);
73        $this.css('cursor', 'progress');
74        jQuery.ajax({
75            url: wrld_admin_settings_data.wp_ajax_url,
76            type: 'post',
77            data: {
78                'action': 'wrld_skip_license_activation',
79                'nonce':wrld_admin_settings_data.nonce,
80                'skip-licence':true
81            },
82            timeout: 60000, // sets timeout to 1 minute
83            success: function(response){
84                window.location.href=jQuery('.wrld-license-page-skip-now-button').data('link');
85            },
86            error: function(eventData){
87            },
88        });
89    });
90
91    jQuery('.wrld-license-action.action_activate').on('click', function( event ) {
92        let license_key = jQuery('#wrld-pro-license-key').val();
93        if (license_key.length<1) {
94            alert('Please enter the valid license key');
95            return;
96        }
97
98        event.preventDefault();
99        let $this = jQuery(this);
100        $this.text(wrld_admin_settings_data.wait_text);
101        $this.css('cursor', 'progress');
102		// cspell:disable-next-line
103        let edd_nonce = jQuery(this).closest('.wrld-dashboard-licence-tool-container').data('nonce');
104        jQuery.ajax({
105            url: wrld_admin_settings_data.wp_ajax_url,
106            type: 'post',
107            data: {
108                'action': 'wrld_license_activate',
109                'nonce':wrld_admin_settings_data.nonce,
110                'license_key':license_key,
111                'edd_learndash-reports-pro_nonce':edd_nonce,
112            },
113            timeout: 60000, // sets timeout to 1 minute
114            success: function(response){
115                window.location.href = jQuery('#wrld-license-activation').attr('href');
116            },
117            error: function(eventData){
118                window.location.href = jQuery('#wrld-license-activation').attr('href');
119            },
120        });
121    });
122
123    jQuery('.wrld-license-action.action_deactivate').on('click', function(event) {
124        event.preventDefault();
125        let $this = jQuery(this);
126        $this.text(wrld_admin_settings_data.wait_text);
127        $this.css('cursor', 'progress');
128		// cspell:disable-next-line
129        let edd_nonce = jQuery(this).closest('.wrld-dashboard-licence-tool-container').data('nonce');
130        jQuery.ajax({
131            url: wrld_admin_settings_data.wp_ajax_url,
132            type: 'post',
133            data: {
134                'action': 'wrld_license_deactivate',
135                'nonce':wrld_admin_settings_data.nonce,
136                'edd_learndash-reports-pro_nonce':edd_nonce,
137            },
138            timeout: 60000, // sets timeout to 1 minute
139            success: function(response){
140                window.location.href = jQuery('#wrld-license-activation').attr('href');
141            },
142            error: function(eventData){
143                window.location.href = jQuery('#wrld-license-activation').attr('href');
144            },
145        });
146    });
147
148    jQuery('.wrld-dashboard-button-action.set-config').on('click', function(event) {
149        event.preventDefault();
150        let $this = jQuery(this);
151        $this.text(wrld_admin_settings_data.wait_text);
152        $this.css('cursor', 'progress');
153        let data = {
154            'action': 'wrld_set_configuration',
155            'nonce':wrld_admin_settings_data.nonce,
156        };
157        if ( jQuery('#wrld-menu-config-setting').length > 0 ) {
158            let add_in_menu = jQuery('#wrld-menu-config-setting').is(':checked')?true:false;
159            data.add_in_menu = add_in_menu;
160        }
161        if ( jQuery('#wrld-menu-student-setting').length > 0 ) {
162            let add_student_in_menu = jQuery('#wrld-menu-student-setting').is(':checked')?true:false;
163            data.add_student_in_menu = add_student_in_menu;
164        }
165        jQuery.ajax({
166            url: wrld_admin_settings_data.wp_ajax_url,
167            type: 'post',
168            data: data,
169            timeout: 60000, // sets timeout to 1 minute
170            success: function(response){
171                window.location.href = $this.closest('a').attr('href');
172            },
173            error: function(eventData){
174            },
175        });
176    });
177
178
179    jQuery('#wrld-action-update-settings').on('click', function( event ){
180        event.preventDefault();
181        jQuery('.wrld-access-status.wrld-access-status-enabled, .wrld-access-status.wrld-access-status-disabled').css('display', 'none');
182        let $this = jQuery(this);
183        $this.text(wrld_admin_settings_data.wait_text);
184        $this.css('cursor', 'progress');
185        // let add_in_menu = jQuery('#wrld-menu-config-setting').is(':checked')?true:false;
186        // let add_student_in_menu = jQuery('#wrld-menu-student-setting').is(':checked')?true:false;
187        let access_to_group_leader= jQuery('#wrld-menu-access-setting-group-leader').is(':checked')?true:false;
188        let access_to_wdm_instructor= jQuery('#wrld-menu-access-setting-wdm-instructor').is(':checked')?true:false;
189        jQuery.ajax({
190            url: wrld_admin_settings_data.wp_ajax_url,
191            type: 'post',
192            data: {
193                'action': 'wrld_update_settings',
194                'nonce':wrld_admin_settings_data.nonce,
195                // 'add_in_menu':add_in_menu,
196                // 'add_student_in_menu':add_student_in_menu,
197                'access_to_group_leader':access_to_group_leader,
198                'access_to_wdm_instructor':access_to_wdm_instructor
199            },
200            timeout: 60000, // sets timeout to 1 minute
201            success: function(response){
202                if(response.success){
203                    jQuery('#wrld-action-update-settings').text('Apply');
204                    if ( response.data.settings_data['dashboard-access-roles'].group_leader ){
205                        jQuery('.wrld-access-status.wrld-group-leader-enabled').css('display', 'inline-block');
206                    } else {
207                        jQuery('.wrld-access-status.wrld-group-leader-disabled').css('display', 'inline-block');
208                    }
209                    let ir_active = ! jQuery('#wrld-menu-access-setting-wdm-instructor').is(':disabled');
210                    if (ir_active) {
211                        if ( response.data.settings_data['dashboard-access-roles'].wdm_instructor ){
212                            jQuery('.wrld-access-status.wrld-wisdm-instructor-enabled').css('display', 'inline-block');
213                        } else {
214                            jQuery('.wrld-access-status.wrld-wisdm-instructor-disabled').css('display', 'inline-block');
215                        }
216                    }
217                    jQuery('#wrld-action-update-settings').css('cursor', 'not-allowed');
218                    jQuery('#wrld-action-update-settings').attr('disabled', true);
219                    $this.after('<div class="temp-message">Applied Successfully!</div>');
220                    setTimeout(function(){
221                        jQuery('.temp-message').remove();
222                    }, 3000);
223                }
224            },
225            error: function(eventData){
226
227            },
228        });
229    });
230    jQuery('#wrld-action-update-menu-settings').on('click', function( event ){
231        event.preventDefault();
232        // jQuery('.wrld-access-status.wrld-access-status-enabled, .wrld-access-status.wrld-access-status-disabled').css('display', 'none');
233        let $this = jQuery(this);
234        $this.text(wrld_admin_settings_data.wait_text);
235        $this.css('cursor', 'progress');
236        let add_in_menu = jQuery('#wrld-menu-config-setting').is(':checked')?true:false;
237        let add_student_in_menu = jQuery('#wrld-menu-student-setting').is(':checked')?true:false;
238        // let access_to_group_leader= jQuery('#wrld-menu-access-setting-group-leader').is(':checked')?true:false;
239        // let access_to_wdm_instructor= jQuery('#wrld-menu-access-setting-wdm-instructor').is(':checked')?true:false;
240        jQuery.ajax({
241            url: wrld_admin_settings_data.wp_ajax_url,
242            type: 'post',
243            data: {
244                'action': 'wrld_update_settings',
245                'nonce':wrld_admin_settings_data.nonce,
246                'add_in_menu':add_in_menu,
247                'add_student_in_menu':add_student_in_menu,
248                // 'access_to_group_leader':access_to_group_leader,
249                // 'access_to_wdm_instructor':access_to_wdm_instructor
250            },
251            timeout: 60000, // sets timeout to 1 minute
252            success: function(response){
253                if(response.success){
254                    jQuery('#wrld-action-update-menu-settings').text('Apply');
255                    // if ( response.data.settings_data['dashboard-access-roles'].group_leader ){
256                    //     jQuery('.wrld-access-status.wrld-group-leader-enabled').css('display', 'inline-block');
257                    // } else {
258                    //     jQuery('.wrld-access-status.wrld-group-leader-disabled').css('display', 'inline-block');
259                    // }
260                    // let ir_active = ! jQuery('#wrld-menu-access-setting-wdm-instructor').is(':disabled');
261                    // if (ir_active) {
262                    //     if ( response.data.settings_data['dashboard-access-roles'].wdm_instructor ){
263                    //         jQuery('.wrld-access-status.wrld-wisdm-instructor-enabled').css('display', 'inline-block');
264                    //     } else {
265                    //         jQuery('.wrld-access-status.wrld-wisdm-instructor-disabled').css('display', 'inline-block');
266                    //     }
267                    // }
268                    jQuery('#wrld-action-update-menu-settings').css('cursor', 'not-allowed');
269                    jQuery('#wrld-action-update-menu-settings').attr('disabled', true);
270                    $this.after('<div class="temp-message">Applied Successfully!</div>');
271                    setTimeout(function(){
272                        jQuery('.temp-message').remove();
273                    }, 3000);
274                }
275            },
276            error: function(eventData){
277
278            },
279        });
280    });
281
282    jQuery('#wrld-menu-access-setting-group-leader, #wrld-menu-access-setting-wdm-instructor').on('click', function (event) {
283        jQuery('#wrld-action-update-settings').removeAttr('disabled');
284        jQuery('#wrld-action-update-settings').css('cursor', 'pointer');
285        if (this.checked) {
286            jQuery(this).closest('label.checkbox-label').removeClass('no-access');
287        } else {
288            jQuery(this).closest('label.checkbox-label').addClass('no-access');
289        }
290    });
291    jQuery('#wrld-menu-config-setting, #wrld-menu-student-setting').on('click', function (event) {
292        jQuery('#wrld-action-update-menu-settings').removeAttr('disabled');
293        jQuery('#wrld-action-update-menu-settings').css('cursor', 'pointer');
294        if (this.checked) {
295            jQuery(this).closest('label.checkbox-label').removeClass('no-access');
296        } else {
297            jQuery(this).closest('label.checkbox-label').addClass('no-access');
298        }
299    });
300
301    jQuery('.wrld-license-page-config-button').on('click', function(){
302        window.location.href=jQuery(this).data('link');
303    });
304
305    var showBorderIfNeeded = function() {
306        if ( jQuery( 'select.exclude_users + .multiselect__container .multiselect__selected' ).length > 0 ) {
307            jQuery( 'select.exclude_users + .multiselect__container' ).addClass( 'wrld-no-shadow' );
308        } else {
309            jQuery( 'select.exclude_users + .multiselect__container' ).removeClass( 'wrld-no-shadow' );
310        }
311        if ( jQuery( 'select.exclude_ur + .multiselect__container .multiselect__selected' ).length > 0 ) {
312            jQuery( 'select.exclude_ur + .multiselect__container' ).addClass( 'wrld-no-shadow' );
313        } else {
314            jQuery( 'select.exclude_ur + .multiselect__container' ).removeClass( 'wrld-no-shadow' );
315        }
316        if ( jQuery( 'select.exclude_courses + .multiselect__container .multiselect__selected' ).length > 0 ) {
317            jQuery( 'select.exclude_courses + .multiselect__container' ).addClass( 'wrld-no-shadow' );
318        } else {
319            jQuery( 'select.exclude_courses + .multiselect__container' ).removeClass( 'wrld-no-shadow' );
320        }
321    }
322
323    /* Function used to save the exclusion setting in the database. */
324    var save_exclude_values = function( type, value, button_obj ) {
325        jQuery.ajax({
326            url: wrld_admin_settings_data.wp_ajax_url,
327            type: 'post',
328            data: {
329                'action': 'wrld_exclude_settings_save',
330                'nonce':wrld_admin_settings_data.nonce,
331                'type':type,
332                'value':value,
333            },
334            timeout: 60000, // sets timeout to 1 minute
335            success: function( response ){
336                if( response.success ){
337                    button_obj.hide();
338                    if ( button_obj.parents('.users-field') ) {
339                        jQuery('.users-field select.exclude_users').html( window.users_dropdown_bu );
340                    }
341
342                    var parent = button_obj.parents('.right-fields');
343                    var dropdown = parent.find('select');
344                    var custom_dropdown = parent.find('.multiselect__container .multiselect__options li');
345                    custom_dropdown.each(function(ind, el) {
346                        if ( jQuery(el).hasClass('multiselect__options--selected') ) {
347                            if ( dropdown.find('option[value="' + jQuery(el).attr('data-value') + '"]').length > 0 ) {
348                                dropdown.find('option[value="' + jQuery(el).attr('data-value') + '"]').attr('selected', 'selected');
349                            } else {
350                                dropdown.append('<option value="' + jQuery(el).attr('data-value') + '" selected="selected">' + jQuery(el).text() + '</option>');
351                            }
352                        } else {
353                            dropdown.find('option[value="' + jQuery(el).attr('data-value') + '"]').removeAttr('selected');
354                        }
355                    });
356                    // jQuery( '.exclude_' + type ).attr( 'disabled', 'disabled' );
357                    // jQuery( '.exclude_' + type ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
358                    // jQuery( '.exclude_' + type ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'n
358one' );
359                    // jQuery( '.exclude_' + type ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
360                    // showBorderIfNeeded();
361                }
362            },
363            error: function( eventData ){
364            },
365        });
366    }
367
368    var reInitializeAfterSelect = function() {
369        jQuery( '.users-field .multiselect__container' ).remove();
370        // Initialize User Multiselect.
371        userMultiSelect = new IconicMultiSelect({
372            select: ".exclude_users",
373            disabled: false,
374            placeholder: wrld_admin_settings_data.user_placeholder,
375            noResults: wrld_admin_settings_data.loading_text
376        });
377        userMultiSelect.init();
378
379        // Patch code for disabling the multiselect when original select is disabled.
380        // if ( jQuery( '.exclude_users' ).attr( 'disabled' ) ) {
381        //     jQuery( '.exclude_users' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
382        //     jQuery( '.exclude_users' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'none' );
383        //     jQuery( '.exclude_users' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
384        // }
385
386        // Add subscription event for dropdown value changes.
387        userMultiSelect.subscribe( function( event ) {
388            jQuery( '.users-field .apply_users_exclude' ).show();
389            jQuery( '.users-field .discard_users_exclude' ).show();
390            // change_users.push({})
391            users = event.selection.map( ( { value } ) => value );
392        } );
393    };
394
395    /**
396     * This method is used to initialize the multi selects and add subscription events.
397     */
398    jQuery( document ).ready( function() {
399        if ( jQuery( '.exclude_users' ).length < 1 ) {
400            return;
401        }
402        var urlHash = window.location.href.split("#");
403        if ( urlHash.length > 1 ) {
404            urlHash = urlHash[1];
405            jQuery( 'html, body' ).animate({
406                scrollTop: jQuery('#' + urlHash).offset().top
407            }, 1500);
408        }
409        var disabled = false;
410        if ( jQuery('.wrld-upgrade-button').length > 0 ) {
411            disabled = true;
412        }
413        // Initialize User Multiselect.
414        userMultiSelect = new IconicMultiSelect({
415            select: ".exclude_users",
416            disabled: disabled,
417            placeholder: wrld_admin_settings_data.user_placeholder,
418            noResults: wrld_admin_settings_data.loading_text
419        });
420        userMultiSelect.init();
421
422        // Patch code for disabling the multiselect when original select is disabled.
423        if ( jQuery( '.exclude_users' ).attr( 'disabled' ) ) {
424            jQuery( '.exclude_users' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
425            jQuery( '.exclude_users' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'none' );
426            jQuery( '.exclude_users' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
427            jQuery( '.exclude_users' ).next().find( '.multiselect__selected' ).css( 'pointer-events', 'none' );
428            jQuery( '.exclude_users' ).next().find( '.multiselect__wrapper' ).css( 'pointer-events', 'not-allowed' );
429        }
430
431        var user_wrapper = jQuery('.users-field .multiselect__selected').parent();
432        var user_length = user_wrapper.find('.multiselect__selected').length;
433        if ( user_length < 2 ) {
434			// cspell:disable-next-line
435            user_wrapper.next().addClass('dont-show');
436        } else {
437			// cspell:disable-next-line
438            user_wrapper.next().removeClass('dont-show');
439        }
440
441        // Add subscription event for dropdown value changes.
442        userMultiSelect.subscribe( function( event ) {
443            jQuery( '.users-field .apply_users_exclude' ).show();
444            jQuery( '.users-field .discard_users_exclude' ).show();
445            var selected = jQuery('.users-field .multiselect__selected').parent();
446            var length = selected.find('.multiselect__selected').length
447            if ( length < 2 ) {
448				// cspell:disable-next-line
449                selected.next().addClass('dont-show');
450            } else {
451				// cspell:disable-next-line
452                selected.next().removeClass('dont-show');
453            }
454            // change_users.push({})
455            users = event.selection.map( ( { value } ) => value );
456            // reInitializeAfterSelect();
457        } );
458
459
460
461        // Initialize User role Multiselect.
462        var urMultiSelect = new IconicMultiSelect({
463            select: ".exclude_ur",
464            disabled: disabled,
465            placeholder: wrld_admin_settings_data.ur_placeholder,
466            noResults: wrld_admin_settings_data.loading_text
467        });
468        urMultiSelect.init();
469        // Patch code for disabling the multiselect when original select is disabled.
470        if ( jQuery( '.exclude_ur' ).attr( 'disabled' ) ) {
471            jQuery( '.exclude_ur' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
472            jQuery( '.exclude_ur' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'n
472one' );
473            jQuery( '.exclude_ur' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
474            jQuery( '.exclude_ur' ).next().find( '.multiselect__selected' ).css( 'pointer-events', 'none' );
475            jQuery( '.exclude_ur' ).next().find( '.multiselect__wrapper' ).css( 'pointer-events', 'not-allowed' );
476        }
477
478        var ur_wrapper = jQuery('.user-roles-field .multiselect__selected').parent();
479        var ur_length = ur_wrapper.find('.multiselect__selected').length;
480        if ( ur_length < 2 ) {
481			// cspell:disable-next-line
482            ur_wrapper.next().addClass('dont-show');
483        } else {
484			// cspell:disable-next-line
485            ur_wrapper.next().removeClass('dont-show');
486        }
487
488        // Add subscription event for dropdown value changes.
489        urMultiSelect.subscribe( function( event ) {
490            jQuery( '.user-roles-field .apply_ur_exclude' ).show();
491            jQuery( '.user-roles-field .discard_ur_exclude' ).show();
492            var selected = jQuery('.user-roles-field .multiselect__selected').parent();
493            var length = selected.find('.multiselect__selected').length
494            if ( length < 2 ) {
495                selected.next().addClass('dont-show');
496            } else {
497                selected.next().removeClass('dont-show');
498            }
499            user_roles = event.selection.map( ( { value } ) => value );
500        } );
501
502        // Initialize Course Multiselect.
503        courseMultiSelect = new IconicMultiSelect({
504            select: ".exclude_courses",
505            disabled: false,
506            placeholder: wrld_admin_settings_data.course_placeholder,
507            noResults: wrld_admin_settings_data.loading_text
508        });
509        courseMultiSelect.init();
510
511        var course_wrapper = jQuery('.courses-field .multiselect__selected').parent();
512        var course_length = course_wrapper.find('.multiselect__selected').length;
513        if ( course_length < 2 ) {
514            course_wrapper.next().addClass('dont-show');
515        } else {
516            course_wrapper.next().removeClass('dont-show');
517        }
518
519        // Patch code for disabling the multiselect when original select is disabled.
520        // if ( jQuery( '.exclude_courses' ).attr( 'disabled' ) ) {
521        //     jQuery( '.exclude_courses' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
522        //     jQuery( '.exclude_courses' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'none' );
523        //     jQuery( '.exclude_courses' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
524        // }
525
526        // Add subscription event for dropdown value changes.
527        courseMultiSelect.subscribe( function( event ) {
528            jQuery( '.courses-field .apply_courses_exclude' ).show();
529            jQuery( '.courses-field .discard_courses_exclude' ).show();
530            var selected = jQuery('.courses-field .multiselect__selected').parent();
531            var length = selected.find('.multiselect__selected').length
532            if ( length < 2 ) {
533                selected.next().addClass('dont-show');
534            } else {
535                selected.next().removeClass('dont-show');
536            }
537            courses = event.selection.map( ( { value } ) => value );
538            // var changes  = change_courses[event.action] != undefined ? change_courses[event.action] : [];
539            // changes.push(event.value);
540            // change_courses[event.action] = changes;
541            // change_courses.push({event.action: })
542            // save_exclude_values( 'courses', courses );
543        } );
544        // showBorderIfNeeded();
545    } );
546
547    /* Toggle the multiselect on edit icon click */
548    // jQuery( '.users-field .dashicons-edit' ).on( 'click', function() {
549    //     jQuery( this ).attr( 'disabled', 'disabled' );
550    //     if ( jQuery( '.exclude_users' ).attr( 'disabled' ) ) {
551    //         jQuery( '.exclude_users' ).removeAttr( 'disabled' );
552    //         jQuery( '.exclude_users + .multiselect__container' ).removeClass('wrld-no-shadow');
553    //         jQuery( '.exclude_users' ).next().find( 'input.multiselect__input' ).removeAttr( 'disabled' );
554    //         jQuery( '.exclude_users' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'auto' );
555    //         jQuery( '.exclude_users' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'auto' );
556    //     }/* else {
557    //         jQuery( '.exclude_users' ).attr( 'disabled', 'disabled' );
558    //         jQuery( '.exclude_users' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
559    //         jQuery( '.exclude_users' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'n
559one' );
560    //         jQuery( '.exclude_users' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
561    //     }*/
562    // } );
563
564    /* Save button click for users setting */
565    jQuery( '.users-field .apply_users_exclude' ).on( 'click', function() {
566        jQuery( '.discard_users_exclude' ).hide();
567        save_exclude_values( 'users', users, jQuery( this ) );
568        // jQuery( '.users-field .dashicons-edit' ).removeAttr( 'disabled' );
569        // reInitializeAfterSelect();
570    });
571
572    /* Save button click for user roles setting */
573    jQuery( '.user-roles-field .apply_ur_exclude' ).on( 'click', function() {
574        jQuery( '.discard_ur_exclude' ).hide();
575        save_exclude_values( 'ur', user_roles, jQuery( this ) );
576        // jQuery( '.user-roles-field .dashicons-edit' ).removeAttr( 'disabled' );
577    });
578
579    /* Save button click for courses setting */
580    jQuery( '.courses-field .apply_courses_exclude' ).on( 'click', function() {
581        jQuery( '.discard_courses_exclude' ).hide();
582        save_exclude_values( 'courses', courses, jQuery( this ) );
583        // jQuery( '.courses-field .dashicons-edit' ).removeAttr( 'disabled' );
584        change_courses = [];
585    });
586
587    jQuery( document ).on( 'change, keyup', '[name=wrld_time_tracking_status], .toggle-settings input', function() {
588        jQuery('.apply_time_tracking_settings').removeAttr('disabled');
589    } );
590
591    let wrldModalCancelPressed = false;
592
593    jQuery( '.wrld-warning-popup-modal .modal-button-cancel' ).on( 'click', function() {
594        jQuery('.wrld-warning-popup-modal').hide();
595        wrldModalCancelPressed = true;
596        jQuery('[name=wrld_time_tracking_status]').trigger('click');
597    } );
598
599    jQuery( '.wrld-warning-popup-modal .modal-button-proceed' ).on( 'click', function() {
600        jQuery('.wrld-warning-popup-modal').hide();
601        wrldModalCancelPressed=false;
602        var status = 'off';
603        jQuery.ajax({
604            url: wrld_admin_settings_data.wp_ajax_url,
605            type: 'post',
606            data: {
607                'action': 'apply_time_tracking_settings',
608                'nonce':wrld_admin_settings_data.nonce,
609                'status':status,
610            },
611            timeout: 60000, // sets timeout to 1 minute
612            success: function( response ){
613                jQuery('.apply_time_tracking_settings').attr('disabled', 'disabled');
614                jQuery('.wrld-dashboard-text.note-text .latest').html(response.data.time);
615                jQuery('.idle-configuration-log tr:nth-child(2)').before('<tr><td>' + wrld_admin_settings_data.deactivated_18n + '</td><td>' + response.data.time + '</td></tr>');
616                if ( jQuery('.idle-configuration-log tr').length > 10 ) {
617                    jQuery('.idle-configuration-log tr:last-child').remove();
618                }
619            },
620            error: function( eventData ){
621            },
622        });
623    } );
624
625    jQuery('[name=wrld_time_tracking_status]').on('change', function() {
626        if ( (! jQuery( this ).is(':checked') ) || wrldModalCancelPressed ) {
627           if(! wrldModalCancelPressed){
628            jQuery('.wrld-warning-popup-modal').fadeIn(500);
629            //jQuery('.apply_time_tracking_settings').hide();
630            jQuery('.wrld-dashboard-text.note-text').hide();
631           }
632            wrldModalCancelPressed =  false;
633        } else {
634            var status = 'on';
635            jQuery.ajax({
636                url: wrld_admin_settings_data.wp_ajax_url,
637                type: 'post',
638                data: {
639                    'action': 'apply_time_tracking_settings',
640                    'nonce':wrld_admin_settings_data.nonce,
641                    'status':status,
642                },
643                timeout: 60000, // sets timeout to 1 minute
644                success: function( response ){
645                    jQuery('.apply_time_tracking_settings').show();
646                    jQuery('.wrld-dashboard-text.note-text').show();
647                    jQuery('.apply_time_tracking_settings').attr('disabled', 'disabled');
648                    jQuery('.wrld-dashboard-text.note-text .latest').html(response.data.time);
649                    jQuery('.idle-configuration-log tr:nth-child(2)').before('<tr><td>' + wrld_admin_settings_data.activated_18n + '</td><td>' + response.data.time + '</td></tr>');
650                    if ( jQuery('.idle-configuration-log tr').length > 10 ) {
651                        jQuery('.idle-configuration-log tr:last-child').remove();
652                    }
653                },
654                error: function( eventData ){
655                },
656            });
657        }
658    });
659
660    jQuery( '.apply_time_tracking_settings' ).on( 'click', function() {
661        let $this = jQuery( this );
662        $this.text(wrld_admin_settings_data.wait_text);
663        jQuery.ajax({
664            url: wrld_admin_settings_data.wp_ajax_url,
665            type: 'post',
666            data: {
667                'action': 'apply_time_tracking_settings',
668                'nonce':wrld_admin_settings_data.nonce,
669                'timeout':jQuery('input[name=wrld_idle_time]').val(),
670                'message':jQuery('input[name=wrld_idle_msg]').val(),
671				// cspell:disable-next-line
672                'btnlabel':jQuery('input[name=wrld_idle_btn_label]').val(),
673            },
674            timeout: 60000, // sets timeout to 1 minute
675            success: function( response ){
676                jQuery('.apply_time_tracking_settings').text('Save Changes');
677                jQuery('.apply_time_tracking_settings').attr('disabled', 'disabled');
678                $this.after('<div class="temp-message">Saved Successfully!</div>');
679                setTimeout(function(){
680                    jQuery('.temp-message').remove();
681                }, 3000);
682            },
683            error: function( eventData ){
684            },
685        });
686    } );
687
688    jQuery( '.users-field .discard_users_exclude' ).on( 'click', function() {
689        // save_exclude_values( 'users', users, jQuery( this ) );
690        // jQuery( '.users-field .dashicons-edit' ).removeAttr( 'disabled' );
691        jQuery( this ).hide();
692        // jQuery( '.exclude_users' ).attr( 'disabled', 'disabled' );
693        jQuery( '.apply_users_exclude' ).hide();
694        // if ( jQuery( '.exclude_users' ).attr( 'disabled' ) ) {
695        //     jQuery( '.exclude_users' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
696        //     jQuery( '.exclude_users' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'none' );
697        //     jQuery( '.exclude_users' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
698        // }
699        jQuery('.users-field select.exclude_users').html(window.users_dropdown_bu);
700        jQuery('.users-field .multiselect__container').remove();
701        // Initialize User Multiselect.
702        userMultiSelect = new IconicMultiSelect({
703            select: ".exclude_users",
704            disabled: false,
705            placeholder: wrld_admin_settings_data.user_placeholder,
706            noResults: wrld_admin_settings_data.loading_text
707        });
708        userMultiSelect.init();
709
710        // Patch code for disabling the multiselect when original select is disabled.
711        // if ( jQuery( '.exclude_users' ).attr( 'disabled' ) ) {
712        //     jQuery( '.exclude_users' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
713        //     jQuery( '.exclude_users' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'none' );
714        //     jQuery( '.exclude_users' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
715        // }
716
717        // Add subscription event for dropdown value changes.
718        userMultiSelect.subscribe( function( event ) {
719            jQuery( '.users-field .apply_users_exclude' ).show();
720            jQuery( '.users-field .discard_users_exclude' ).show();
721            // change_users.push({})
722            users = event.selection.map( ( { value } ) => value );
723        } );
724        // showBorderIfNeeded();
725    });
726
727    /* Save button click for user roles setting */
728    jQuery( '.user-roles-field .discard_ur_exclude' ).on( 'click', function() {
729        // save_exclude_values( 'ur', user_roles, jQuery( this ) );
730        jQuery( this ).hide();
731        // jQuery( '.user-roles-field .dashicons-edit' ).removeAttr( 'disabled' );
732        // jQuery( '.exclude_ur' ).attr( 'disabled', 'disabled' );
733        jQuery( '.apply_ur_exclude' ).hide();
734        // if ( jQuery( '.exclude_ur' ).attr( 'disabled' ) ) {
735        //     jQuery( '.exclude_ur' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
736        //     jQuery( '.exclude_ur' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'none' );
737        //     jQuery( '.exclude_ur' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'n
737one' );
738        // }
739        jQuery('.user-roles-field .multiselect__container').remove();
740        // Initialize User role Multiselect.
741        var urMultiSelect = new IconicMultiSelect({
742            select: ".exclude_ur",
743            disabled: false,
744            placeholder: wrld_admin_settings_data.ur_placeholder,
745            noResults: wrld_admin_settings_data.loading_text
746        });
747        urMultiSelect.init();
748        // Patch code for disabling the multiselect when original select is disabled.
749        // if ( jQuery( '.exclude_ur' ).attr( 'disabled' ) ) {
750        //     jQuery( '.exclude_ur' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
751        //     jQuery( '.exclude_ur' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'none' );
752        //     jQuery( '.exclude_ur' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
753        // }
754
755        // Add subscription event for dropdown value changes.
756        urMultiSelect.subscribe( function( event ) {
757            jQuery( '.user-roles-field .apply_ur_exclude' ).show();
758            jQuery( '.user-roles-field .discard_ur_exclude' ).show();
759            user_roles = event.selection.map( ( { value } ) => value );
760        } );
761        //showBorderIfNeeded();
762    });
763
764    /* Save button click for courses setting */
765    jQuery( '.courses-field .discard_courses_exclude' ).on( 'click', function() {
766        jQuery( this ).hide();
767        // jQuery( '.courses-field .dashicons-edit' ).removeAttr( 'disabled' );
768        // jQuery( '.exclude_courses' ).attr( 'disabled', 'disabled' );
769        jQuery( '.apply_courses_exclude' ).hide();
770        // if ( jQuery( '.exclude_courses' ).attr( 'disabled' ) ) {
771        //     jQuery( '.exclude_courses' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
772        //     jQuery( '.exclude_courses' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'none' );
773        //     jQuery( '.exclude_courses' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
774        // }
775        jQuery('.courses-field .multiselect__container').remove();
776        // Initialize Course Multiselect.
777        courseMultiSelect = new IconicMultiSelect({
778            select: ".exclude_courses",
779            disabled: false,
780            placeholder: wrld_admin_settings_data.course_placeholder,
781            noResults: wrld_admin_settings_data.loading_text
782        });
783        courseMultiSelect.init();
784
785        // Patch code for disabling the multiselect when original select is disabled.
786        // if ( jQuery( '.exclude_courses' ).attr( 'disabled' ) ) {
787        //     jQuery( '.exclude_courses' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
788        //     jQuery( '.exclude_courses' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'none' );
789        //     jQuery( '.exclude_courses' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'none' );
790        // }
791
792        // Add subscription event for dropdown value changes.
793        courseMultiSelect.subscribe( function( event ) {
794            jQuery( '.courses-field .apply_courses_exclude' ).show();
795            jQuery( '.courses-field .discard_courses_exclude' ).show();
796            courses = event.selection.map( ( { value } ) => value );
797            // var changes  = change_courses[event.action] != undefined ? change_courses[event.action] : [];
798            // changes.push(event.value);
799            // change_courses[event.action] = changes;
800            // change_courses.push({event.action: })
801            // save_exclude_values( 'courses', courses );
802        } );
803        /*if ( change_courses['ADD_OPTION'] != undefined ) {
804            for (var i = 0; i < change_courses['ADD_OPTION'].length; i++) {
805                // target = jQuery( '.exclude_courses option[value=' + change_courses['ADD_OPTION'][i] + ']' );
806                target = jQuery( '.courses-field li[data-value=' + change_courses['ADD_OPTION'][i] + ']' );
807                target.removeClass(`multiselect__options--selected`);
808                courseMultiSelect._removeOptionFromList(change_courses['ADD_OPTION'][i]);
809                courseMultiSelect._handleClearSelectionBtn();
810                courseMultiSelect._handlePlaceholder();
811                jQuery( '.exclude_courses .multiselect__selected[data-value=' + change_courses['ADD_OPTION'][i] + ']' ).remove();
812            }
813            change_courses['ADD_OPTION'] = [];
814        }
815        if ( change_courses['REMOVE_OPTION'] != undefined ) {
816            for (var i = 0; i < change_courses['REMOVE_OPTION'].length; i++) {
817                text = jQuery( '.courses-field .exclude_courses option[value=' + change_courses['REMOVE_OPTION'][i] + ']' ).text();
818                courseMultiSelect._addOptionToList({text: text, value: change_courses['REMOVE_OPTION'][i]}, jQuery( '.courses-field li[data-value=' + change_courses['REMOVE_OPTION'][i] + ']' ).index());
819                target = jQuery( '.courses-field li[data-value=' + change_courses['REMOVE_OPTION'][i] + ']' );
820                target.addClass(`multiselect__options--selected`);
821                courseMultiSelect._handleClearSelectionBtn();
822                courseMultiSelect._handlePlaceholder();
823            }
824            change_courses['REMOVE_OPTION'] = [];
825        }
826        change_courses = [];*/
827        // showBorderIfNeeded();
828    });
829
830    /* Toggle the multiselect on edit icon click */
831    // jQuery( '.user-roles-field .dashicons-edit' ).on( 'click', function() {
832    //     jQuery( this ).attr( 'disabled', 'disabled' );
833    //     if ( jQuery( '.exclude_ur' ).attr( 'disabled' ) ) {
834    //         jQuery( '.exclude_ur' ).removeAttr( 'disabled' );
835    //         jQuery( '.exclude_ur + .multiselect__container' ).removeClass('wrld-no-shadow');
836    //         jQuery( '.exclude_ur' ).next().find( 'input.multiselect__input' ).removeAttr( 'disabled' );
837    //         jQuery( '.exclude_ur' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'auto' );
838    //         jQuery( '.exclude_ur' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'auto' );
839    //     }/* else {
840    //         jQuery( '.exclude_ur' ).attr( 'disabled', 'disabled' );
841    //         jQuery( '.exclude_ur' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
842    //         jQuery( '.exclude_ur' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'auto' );
843    //         jQuery( '.exclude_ur' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'auto' );
844    //     }*/
845    // } );
846
847    /* Toggle the multiselect on edit icon click */
848    // jQuery( '.courses-field .dashicons-edit' ).on( 'click', function() {
849    //     jQuery( this ).attr( 'disabled', 'disabled' );
850    //     if ( jQuery( '.exclude_courses' ).attr( 'disabled' ) ) {
851    //         jQuery( '.exclude_courses' ).removeAttr( 'disabled' );
852    //         jQuery( '.exclude_courses + .multiselect__container' ).removeClass('wrld-no-shadow');
853    //         jQuery( '.exclude_courses' ).next().find( 'input.multiselect__input' ).removeAttr( 'disabled' );
854    //         jQuery( '.exclude_courses' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'auto' );
855    //         jQuery( '.exclude_courses' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'auto' );
856    //     }/* else {
857    //         jQuery( '.exclude_courses' ).attr( 'disabled', 'disabled' );
858    //         jQuery( '.exclude_courses' ).next().find( 'input.multiselect__input' ).attr( 'disabled', 'disabled' );
859    //         jQuery( '.exclude_courses' ).next().find( '.multiselect__clear-btn' ).css( 'pointer-events', 'auto' );
860    //         jQuery( '.exclude_courses' ).next().find( '.multiselect__remove-btn' ).css( 'pointer-events', 'auto' );
861    //     }*/
862    // } );
863
864    jQuery( 'body' ).on( 'focusout', '.users-field input.multiselect__input', function() {
865        jQuery('.users-field select.exclude_users').html(window.users_dropdown_bu);
866    } );
867
868    jQuery( 'body' ).on( 'focus', '.users-field input.multiselect__input', function() {
869        if ( ! load_more ) {
870            return;
871        }
872        if ( jQuery( this ).parents('.multiselect__container').find('.multiselect__options ul li').length >= 10 && jQuery( this ).parents('.multiselect__container').find( '.multiselect__options .load-more' ).length <= 0 ) {
873            jQuery( this ).parents('.multiselect__container').find('.multiselect__options ul').append('<span class="load-more">Load More</span>');
874        } else {
875            jQuery( this ).parents('.multiselect__container').find( '.multiselect__options ul .load-more' ).remove();
876            jQuery( this ).parents('.multiselect__container').find('.multiselect__options ul').append('<span class="load-more">Load More</span>');
877        }
878    } );
879
880    jQuery( 'body' ).on( 'input focus', '.users-field input.multiselect__input', function( event ){
881        clearTimeout(lag);
882        jQuery( '.users-field .multiselect__container .multiselect__options ul .load-more' ).remove();
883        lag = setTimeout( function() {
884            currentXhr && currentXhr.readyState != 4 && currentXhr.abort(); // clear previous request
885            jQuery( '.users-field .multiselect__container .multiselect__options ul' ).html('<span class="loading">Loading</span>');
886            currentXhr = jQuery.ajax({
887                url: wrld_admin_settings_data.wp_ajax_url,
888                type: 'post',
889                async: false,
890                data: {
891                    'action': 'wrld_exclude_load_users',
892                    'nonce': wrld_admin_settings_data.nonce,
893                    'search': event.target.value,
894                },
895                timeout: 60000, // sets timeout to 1 minute
896                success: function( response ){
897                    if( response.success ){
898                        jQuery( '.users-field .multiselect__container .multiselect__options ul .loading' ).remove();
899                        window.users_dropdown_bu = jQuery( '.users-field select option' ).detach();
900                        jQuery( '.users-field select' ).empty();
901                        jQuery( '.users-field select' ).append( response.data.data.map((option) => {
902                            if ( jQuery( '.users-field select option[value="' + option.ID + '"]' ).length == 0 ) {
903                                return `
904                                <option class="search-results" value="${option.ID}">${option.display_name}</option>
905                                `;
906                            }
907                            return "";
908                        }).join("") );
909                        jQuery('.users-field .multiselect__selected').each(function(ind, el){
910                            if ( jQuery( '.users-field .multiselect__selected[data-value="' + jQuery(el).attr('data-value') + '"]' ).length == 0 ) {
911                                jQuery( '.users-field select' ).append('<option class="search-results" value="'+ jQuery(el).attr('data-value') + '">' + jQuery(el).text() + '</option>');
912                            }
913                        });
914                        window.users_dropdown_bu = [window.users_dropdown_bu, jQuery( '.users-field select option' )].reduce(function(total, current){
915                            return jQuery(total).add(current)
916                        });
917                        userMultiSelect.edit();
918                        jQuery('.users-field .multiselect__selected').each(function(ind, el){
919                            if ( jQuery( '.users-field .multiselect__options li[data-value="' + jQuery(el).attr('data-value') + '"]' ).length == 0 ) {
920                                jQuery( '.users-field .multiselect__options ul' ).append('<li class="multiselect__options--selected" data-value="'+ jQuery(el).attr('data-value') + '">' + jQuery(el).text() + '</li>');
921                            } else {
922                                // jQuery(el).addClass('multiselect__options--selected');
923                                jQuery('.users-field .multiselect__options li[data-value="' + jQuery(el).attr('data-value') + '"]' ).addClass('multiselect__options--selected');
924                            }
925                        });
926                        if ( jQuery( '.users-field .multiselect__container .multiselect__options ul .load-more' ).length <= 0 && response.data.data.length >= 10 ) {
927                            load_more = true;
928                            jQuery( '.users-field .multiselect__container .multiselect__options ul').append('<span class="load-more">Load More</span>');
929                        }
930                        search_string = event.target.value;
931                    } else {
932                        jQuery( '.users-field .multiselect__container .multiselect__options ul .loading' ).text('No Results Found');
933                        load_more = false;
934                        jQuery( '.users-field .multiselect__container .multiselect__options ul .load-more' ).remove();
935                    }
936                },
937                error: function( eventData ){
938                },
939            });
940        }, 2000 );
941    });
942
943    jQuery( 'body' ).on( 'click', '.multiselect__container .load-more', function() {
944        jQuery( this ).remove();
945        var entries = jQuery( '.users-field .multiselect__container .multiselect__options ul li' ).length;
946        var page    = parseInt( Math.ceil( entries / 10 ) ) + 1;
947        jQuery.ajax({
948            url: wrld_admin_settings_data.wp_ajax_url,
949            type: 'post',
950            data: {
951                'action': 'wrld_exclude_load_users',
952                'nonce': wrld_admin_settings_data.nonce,
953                'page': page,
954                'search': search_string,
955            },
956            timeout: 60000, // sets timeout to 1 minute
957            success: function( response ){
958                if( response.success ){
959                    jQuery( '.users-field select' ).append( response.data.data.map((option) => {
960                        if ( jQuery( '.users-field select option[value="' + option.ID + '"]' ).length == 0 ) {
961                            return `
962                            <option value="${option.ID}">${option.display_name}</option>
963                            `;
964                        }
965                        return "";
966                    }).join("") );
967                    // jQuery( '.users-field select' ).append( jQuery('.users-field .multiselect__selected').map((option) => {
968                    //     return `
969                    //     <option class="search-results" value="${option.attr('data-value')}">${option.text()}</option>
970                    //     `;
971                    // }).join("") );
972                    jQuery('.users-field .multiselect__selected').each(function(ind, el){
973                        if ( jQuery( '.users-field .multiselect__selected[data-value="' + jQuery(el).attr('data-value') + '"]' ).length == 0 ) {
974                            jQuery( '.users-field select' ).append('<option value="'+ jQuery(el).attr('data-value') + '">' + jQuery(el).text() + '</option>');
975                        }
976                    });
977                    userMultiSelect.edit();
978                    jQuery('.users-field .multiselect__selected').each(function(ind, el){
979                        if ( jQuery( '.users-field .multiselect__options li[data-value="' + jQuery(el).attr('data-value') + '"]' ).length == 0 ) {
980                            jQuery( '.users-field .multiselect__options ul' ).append('<li class="multiselect__options--selected" data-value="'+ jQuery(el).attr('data-value') + '">' + jQuery(el).text() + '</li>');
981                        } else {
982                            jQuery('.users-field .multiselect__options li[data-value="' + jQuery(el).attr('data-value') + '"]' ).addClass('multiselect__options--selected');
983                        }
984                    });
985                    load_more = true;
986                    if ( jQuery( '.users-field .multiselect__container .multiselect__options ul .load-more' ).length <= 0 ) {
987                        jQuery( '.users-field .multiselect__container .multiselect__options ul').append('<span class="load-more">Load More</span>');
988                    }
989                } else {
990                    load_more = false;
991                    jQuery( '.users-field .multiselect__container .multiselect__options ul .load-more' ).remove();
992                }
993            },
994            error: function( eventData ){
995            },
996        });
997    } );
998
999    jQuery("#wlrp_more span").on('click',function(){
1000        jQuery("#wlrp_more li").toggle(600);
1001        jQuery("#wlrp_more span").hide(0);
1002      });
1003
1004      jQuery(".wlrp_less").on('click',function(){
1005        jQuery("#wlrp_more li").toggle(600);
1006        jQuery("#wlrp_more span").show(0);
1007      });
1008
1009      //time setting
1010
1011      jQuery('#wrld_idle_hh').on('input', function(){
1012        this.value = this.value.replace(/[^0-9]/g, '').slice(0,2);
1013        saveIdleTimeValue();
1014      });
1015      jQuery('#wrld_idle_mm').on('input', function(){
1016        this.value = this.value.replace(/[^0-9]/g, '').slice(0,2);
1017        saveIdleTimeValue();
1018      });
1019      jQuery('#wrld_idle_ss').on('input', function(){
1020        this.value = this.value.replace(/[^0-9]/g, '').slice(0,2);
1021        saveIdleTimeValue();
1022      });
1023
1024    function saveIdleTimeValue() {
1025        jQuery('.apply_time_tracking_settings').removeAttr('disabled');
1026        let hours = jQuery('#wrld_idle_hh').val();
1027        let minutes = jQuery('#wrld_idle_mm').val();
1028        let remainingSeconds = jQuery('#wrld_idle_ss').val();
1029        let totalSeconds = (hours * 3600) + (minutes * 60) + remainingSeconds * 1;
1030
1031        jQuery('#current_idle_time').val(totalSeconds);
1032    }
1033    function setIdleTimeValue() {
1034       var tValue = jQuery('#current_idle_time').val();
1035       let hours = Math.floor(tValue / 3600);
1036       let minutes = Math.floor((tValue - (hours * 3600)) / 60);
1037       let remainingSeconds = tValue - (hours * 3600) - (minutes * 60);
1038       jQuery('#wrld_idle_ss').val(remainingSeconds);
1039       jQuery('#wrld_idle_mm').val(minutes);
1040       jQuery('#wrld_idle_hh').val(hours);
1041    }
1042    setIdleTimeValue();
1043
1044
1045    jQuery( document ).ready(function(){
1046        var active_tab = jQuery('.current-sub-setting-tab').attr('data-tab');
1047        jQuery(".setting-tabs").hide();
1048        jQuery('#'+active_tab).show(0);
1049    });
1050    // admin setting subtabs logic
1051    jQuery('#wrld-settings-sub').on('click','li' , function(e){
1052        jQuery(".setting-tabs-links").each(function(element){
1053              jQuery(this).removeClass('current-sub-setting-tab');
1054        });
1055        jQuery(this).addClass('current-sub-setting-tab');
1056        const panelId = jQuery(this).attr("data-tab");
1057        jQuery(".setting-tabs").hide();
1058        jQuery('#'+panelId).show(0);
1059    });
1060
1061    var hashFragment = window.location.hash;
1062	// cspell:disable-next-line
1063    if(hashFragment === "#wlrd-dashboard-time-settings"){
1064      jQuery(".setting-tabs-links").each(function(element){
1065        jQuery(this).removeClass('current-sub-setting-tab');
1066    });
1067
1068       setTimeout(() => {
1069        jQuery('#wrld-time-tracking-menu').show(0);
1070        jQuery('#wrld-time-tracking-menu').addClass('current-sub-setting-tab');
1071       }, 1000);
1072
1073       jQuery('.wrld-ts-main-container').hide(0);
1074    }
1075});

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.