Version Description
28/Feb/2018 =
FIX: Fix number counting in Table information tab
FIX: Fix InnoDB optimization UI
TWEAK: Removed orphaned attachment optimization from optimizations UI list
Download this release
Release Info
Developer | DavidAnderson |
Plugin | WP-Optimize |
Version | 2.2.1 |
Comparing to | |
See all releases |
Code changes from version 2.2.0 to 2.2.1
- css/admin.css +115 -0
- css/admin.min.css +1 -1
- css/admin.min.css.map +1 -1
- includes/class-commands.php +1 -1
- includes/class-updraft-abstract-logger.php +55 -0
- includes/class-updraft-email-logger.php +17 -1
- includes/class-updraft-logger.php +14 -1
- includes/class-updraft-ring-logger.php +11 -0
- includes/class-wp-optimize-options.php +7 -26
- js/tablesorter/jquery.tablesorter.js +2 -2
- js/tablesorter/jquery.tablesorter.min.js +1 -1
- js/tablesorter/jquery.tablesorter.widgets.js +20 -14
- js/tablesorter/jquery.tablesorter.widgets.min.js +2 -2
- js/wpadmin.js +343 -30
- js/wpadmin.min.js +1 -1
- languages/wp-optimize.pot +100 -56
- optimizations/optimizetables.php +6 -2
- readme.txt +9 -7
- templates/admin-settings-auto-cleanup.php +4 -0
- templates/admin-settings-logging.php +75 -27
- templates/optimizations-table.php +2 -2
- templates/tables-body.php +2 -2
- wp-optimize.php +123 -41
css/admin.css
CHANGED
@@ -319,6 +319,121 @@ img.addons {
|
|
319 |
color: #46B450;
|
320 |
}
|
321 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
/* Added for WPO Premium Features tab */
|
323 |
.wpo_feature_cont {
|
324 |
width: 54.5%;
|
319 |
color: #46B450;
|
320 |
}
|
321 |
|
322 |
+
#wp-optimize-logging-options {
|
323 |
+
margin-top: 10px;
|
324 |
+
}
|
325 |
+
|
326 |
+
/* Logger settings*/
|
327 |
+
.wpo_logging_header {
|
328 |
+
font-weight: bold;
|
329 |
+
border-top: 1px solid #333;
|
330 |
+
border-bottom: 1px solid #333;
|
331 |
+
padding: 5px 0;
|
332 |
+
margin: 0;
|
333 |
+
}
|
334 |
+
|
335 |
+
.wpo_logging_row {
|
336 |
+
border-bottom: 1px solid #A1A2A3;
|
337 |
+
padding: 5px 0;
|
338 |
+
}
|
339 |
+
|
340 |
+
.wpo_logging_logger_title,
|
341 |
+
.wpo_logging_options_title,
|
342 |
+
.wpo_logging_status_title,
|
343 |
+
.wpo_logging_actions_title,
|
344 |
+
.wpo_logging_logger_row,
|
345 |
+
.wpo_logging_options_row,
|
346 |
+
.wpo_logging_status_row,
|
347 |
+
.wpo_logging_actions_row {
|
348 |
+
display: inline-block;
|
349 |
+
}
|
350 |
+
|
351 |
+
.wpo_logging_logger_title,
|
352 |
+
.wpo_logging_logger_row {
|
353 |
+
width: 38%;
|
354 |
+
}
|
355 |
+
|
356 |
+
.wpo_logging_options_title,
|
357 |
+
.wpo_logging_options_row {
|
358 |
+
width: 44%;
|
359 |
+
}
|
360 |
+
|
361 |
+
.wpo_logging_status_title,
|
362 |
+
.wpo_logging_status_row {
|
363 |
+
width: 8%;
|
364 |
+
}
|
365 |
+
|
366 |
+
.wpo_logging_actions_title,
|
367 |
+
.wpo_logging_actions_row {
|
368 |
+
width: 7%;
|
369 |
+
}
|
370 |
+
|
371 |
+
.wpo_logging_actions_row {
|
372 |
+
text-align: right;
|
373 |
+
}
|
374 |
+
|
375 |
+
.wpo_logging_options_row {
|
376 |
+
word-wrap: break-word;
|
377 |
+
}
|
378 |
+
|
379 |
+
#wpo_add_logger_link {
|
380 |
+
clear: both;
|
381 |
+
display: block;
|
382 |
+
cursor: pointer;
|
383 |
+
font-weight: bold;
|
384 |
+
}
|
385 |
+
|
386 |
+
.wpo_logging_actions_row .dashicons-no-alt,
|
387 |
+
.wpo_add_logger_form .dashicons-no-alt {
|
388 |
+
background-color: #F06666;
|
389 |
+
color: #FFF;
|
390 |
+
width: 20px;
|
391 |
+
height: 20px;
|
392 |
+
border-radius: 20px;
|
393 |
+
display: inline-block;
|
394 |
+
cursor: pointer;
|
395 |
+
margin-left: 5px;
|
396 |
+
}
|
397 |
+
|
398 |
+
.wpo_add_logger_form .dashicons-no-alt {
|
399 |
+
margin-top: 12px;
|
400 |
+
margin-right: 10px;
|
401 |
+
float: right;
|
402 |
+
}
|
403 |
+
|
404 |
+
.wpo_logger_type {
|
405 |
+
width: 90%;
|
406 |
+
margin-top: 10px;
|
407 |
+
}
|
408 |
+
|
409 |
+
.wpo_logger_addition_option {
|
410 |
+
width: 100%;
|
411 |
+
margin-top: 5px;
|
412 |
+
}
|
413 |
+
|
414 |
+
.wpo_alert_notice {
|
415 |
+
background-color: #F06666;
|
416 |
+
color: #FFF;
|
417 |
+
padding: 5px;
|
418 |
+
display: block;
|
419 |
+
margin-bottom: 5px;
|
420 |
+
border-radius: 5px;
|
421 |
+
}
|
422 |
+
|
423 |
+
.wpo_error_field {
|
424 |
+
border-color: #F06666 !important;
|
425 |
+
}
|
426 |
+
|
427 |
+
.save_settings_reminder {
|
428 |
+
display: none;
|
429 |
+
color: #333;
|
430 |
+
padding: 5px 10px;
|
431 |
+
border: 1px solid #F00;
|
432 |
+
background-color: #F0A5A4;
|
433 |
+
border-radius: 5px;
|
434 |
+
margin: 15px 0;
|
435 |
+
}
|
436 |
+
|
437 |
/* Added for WPO Premium Features tab */
|
438 |
.wpo_feature_cont {
|
439 |
width: 54.5%;
|
css/admin.min.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
.wpo_hidden{display:none}.wpo_primary_big{padding:4px 6px !important;font-size:22px !important;min-height:34px;min-width:200px}.wpo_section{clear:both;padding:0;margin:0}.wp-optimize-settings{margin-bottom:16px}.wpo_col{display:block;float:left;margin:1% 0 1% 1%}.wpo_col:first-child{margin-left:0}.wpo_group:before,.wpo_group:after{content:"";display:table}.wpo_group:after{clear:both}.wpo_half_width{width:48%}.wpo_span_3_of_3{width:100%}.wpo_span_2_of_3{width:65.3%}.wpo_span_1_of_3{width:32.1%}.nav-tab-wrapper{margin:14px 0}@media screen and (min-width:549px){.show_on_default_sizes{display:block !important}.show_on_mobile_sizes{display:none !important}}@media screen and (max-width:548px){.show_on_default_sizes{display:none !important}.show_on_mobile_sizes{display:block !important}}@media screen and (max-width:768px){.wpo_col{margin:1% 0}.wpo_span_3_of_3{width:100%}.wpo_span_2_of_3{width:100%}.wpo_span_1_of_3{width:100%}.wpo_half_width{width:100%}}.wp-optimize-settings-clean-transient label,.wp-optimize-settings-clean-pingbacks label,.wp-optimize-settings-clean-trackbacks label,.wp-optimize-settings-clean-postmeta label,.wp-optimize-settings-clean-orphandata label,.wp-optimize-settings-clean-commentmeta label{color:#9b0000}td.wp-optimize-settings-optimization-checkbox{width:18px;padding-left:4px;padding-right:0}.wp-optimize-settings-optimization-checkbox input{margin:0;padding:0}#retention-period{width:60px}.wp-optimize-settings-optimization-info{font-size:80%;padding-left:32px;font-style:italic}.wp-optimize-settings input[type="checkbox"]{width:18px}img.addons{display:block;margin-left:auto;margin-right:auto;height:44px}.wpo_spinner{width:18px;height:18px;padding-left:10px;display:none;position:relative;top:4px}.optimization_spinner{width:20px;height:20px}#wp-optimize-auto-options{margin:20px 0 0 28px}.display-none{display:none}.visibility-hidden{visibility:hidden}.margin-one-percent{margin:1%}#save_done{color:#d94f00;font-size:250%}.wp-optimize-settings-optimization-info a{text-decoration:underline}.wp-optimize-settings-optimization-run-spinner{position:relative;top:2px}#wpoptimize_table_list .tablesorter-filter-row{display:none !important}#wp_optimize_table_list_refresh{float:right}#wp_optimize_table_list_refresh:hover{cursor:pointer}#wpoptimize_table_list .optimization_spinner{position:relative;top:5px;left:5px}#wpoptimize_table_list_filter{width:100%}#wpoptimize_table_list_tables_not_found{display:none}#optimize_form .select2-container,#wp-optimize-auto-options .select2-container{width:50% !important;top:-5px;height:40px;margin-left:10px}#wpoptimize_table_list .optimization_done_icon{color:#d94f00;font-size:200%;display:inline-block;position:relative;top:5px;left:-20px}#wpo_sitelist_show_moreoptions_cron{font-size:13px;line-height:1.5;letter-spacing:1px}.wpo_unused_image{position:relative;float:left;margin:.5%;width:32%;text-align:center;background:rgba(220,220,220,0.5);height:20vh;min-height:200px}.wpo_unused_image img{max-height:80%;max-width:90%;margin:10px 5px}.wpo_unused_image_checkbox_conatiner{text-align:center;position:absolute;width:100%;bottom:7px}#wp-optimize-nav-tab-contents-images .wpo_span_2_of_3 h3{display:inline-block}#wpo_remove_unused_images_btn{margin-top:10px;margin-right:10px;float:right}#wpo_remove_selected_sizes_btn{margin-top:20px}#wp-optimize-nav-tab-contents-tables a{vertical-align:middle}#wpo_sitelist_moreoptions,#wpo_sitelist_moreoptions_cron{margin:4px 16px 6px 0;border:1px dotted;padding:6px 10px;max-height:300px;overflow-y:scroll;overflow-x:hidden}#wpo_sitelist_moreoptions{max-height:150px;margin-right:0}#wpo_settings_sites_list li,#wpo_settings_sites_list li a{font-size:13px;line-height:1.5}#wpo_sitelist_moreoptions_cron li{padding-left:20px}#wpo_import_error_message{display:none;color:#9b0000}#wpo_import_success_message{display:none;color:#46b450}.wpo_feature_cont{width:54.5%}.wpo_plugin_family_cont{width:44.5%}.wpo_feat_table,.wpo_feat_th,.wpo_feat_table td{border:1px solid black;border-collapse:collapse;font-size:120%;background-color:white;text-align:center}.wpo_feat_table p{padding:0 10px;margin:5px 0;font-size:16px}.wpo_feat_table h4{margin:5px 0}.wpo_feat_table .dashicons{width:25px;height:25px;font-size:25px;line-height:1}.wpo_feat_table .dashicons-yes,.wpo_feat_table .updraft-yes{color:green}.wpo_feat_table .dashicons-no-alt,.wpo_feat_table .updraft-no{color:red}.wpo-premium-image{display:none}@media screen and (min-width:720px){#wpoptimize_table_list_filter{width:40%}.wpo-premium-image{display:block;float:left;padding:14px 8px;width:50px;height:50px}}.other-plugin-title{text-decoration:none}#wpo_remove_selected_sizes{margin-top:20px}.wpo_unused_images_buttons_wrap{display:none}.wpo_unused_images_container h3{min-width:150px}#wpo_unused_images{max-height:500px;overflow-y:auto}#wpo_unused_images a{outline:0}
|
2 |
/*# sourceMappingURL=admin.min.css.map */
|
1 |
+
.wpo_hidden{display:none}.wpo_primary_big{padding:4px 6px !important;font-size:22px !important;min-height:34px;min-width:200px}.wpo_section{clear:both;padding:0;margin:0}.wp-optimize-settings{margin-bottom:16px}.wpo_col{display:block;float:left;margin:1% 0 1% 1%}.wpo_col:first-child{margin-left:0}.wpo_group:before,.wpo_group:after{content:"";display:table}.wpo_group:after{clear:both}.wpo_half_width{width:48%}.wpo_span_3_of_3{width:100%}.wpo_span_2_of_3{width:65.3%}.wpo_span_1_of_3{width:32.1%}.nav-tab-wrapper{margin:14px 0}@media screen and (min-width:549px){.show_on_default_sizes{display:block !important}.show_on_mobile_sizes{display:none !important}}@media screen and (max-width:548px){.show_on_default_sizes{display:none !important}.show_on_mobile_sizes{display:block !important}}@media screen and (max-width:768px){.wpo_col{margin:1% 0}.wpo_span_3_of_3{width:100%}.wpo_span_2_of_3{width:100%}.wpo_span_1_of_3{width:100%}.wpo_half_width{width:100%}}.wp-optimize-settings-clean-transient label,.wp-optimize-settings-clean-pingbacks label,.wp-optimize-settings-clean-trackbacks label,.wp-optimize-settings-clean-postmeta label,.wp-optimize-settings-clean-orphandata label,.wp-optimize-settings-clean-commentmeta label{color:#9b0000}td.wp-optimize-settings-optimization-checkbox{width:18px;padding-left:4px;padding-right:0}.wp-optimize-settings-optimization-checkbox input{margin:0;padding:0}#retention-period{width:60px}.wp-optimize-settings-optimization-info{font-size:80%;padding-left:32px;font-style:italic}.wp-optimize-settings input[type="checkbox"]{width:18px}img.addons{display:block;margin-left:auto;margin-right:auto;height:44px}.wpo_spinner{width:18px;height:18px;padding-left:10px;display:none;position:relative;top:4px}.optimization_spinner{width:20px;height:20px}#wp-optimize-auto-options{margin:20px 0 0 28px}.display-none{display:none}.visibility-hidden{visibility:hidden}.margin-one-percent{margin:1%}#save_done{color:#d94f00;font-size:250%}.wp-optimize-settings-optimization-info a{text-decoration:underline}.wp-optimize-settings-optimization-run-spinner{position:relative;top:2px}#wpoptimize_table_list .tablesorter-filter-row{display:none !important}#wp_optimize_table_list_refresh{float:right}#wp_optimize_table_list_refresh:hover{cursor:pointer}#wpoptimize_table_list .optimization_spinner{position:relative;top:5px;left:5px}#wpoptimize_table_list_filter{width:100%}#wpoptimize_table_list_tables_not_found{display:none}#optimize_form .select2-container,#wp-optimize-auto-options .select2-container{width:50% !important;top:-5px;height:40px;margin-left:10px}#wpoptimize_table_list .optimization_done_icon{color:#d94f00;font-size:200%;display:inline-block;position:relative;top:5px;left:-20px}#wpo_sitelist_show_moreoptions_cron{font-size:13px;line-height:1.5;letter-spacing:1px}.wpo_unused_image{position:relative;float:left;margin:.5%;width:32%;text-align:center;background:rgba(220,220,220,0.5);height:20vh;min-height:200px}.wpo_unused_image img{max-height:80%;max-width:90%;margin:10px 5px}.wpo_unused_image_checkbox_conatiner{text-align:center;position:absolute;width:100%;bottom:7px}#wp-optimize-nav-tab-contents-images .wpo_span_2_of_3 h3{display:inline-block}#wpo_remove_unused_images_btn{margin-top:10px;margin-right:10px;float:right}#wpo_remove_selected_sizes_btn{margin-top:20px}#wp-optimize-nav-tab-contents-tables a{vertical-align:middle}#wpo_sitelist_moreoptions,#wpo_sitelist_moreoptions_cron{margin:4px 16px 6px 0;border:1px dotted;padding:6px 10px;max-height:300px;overflow-y:scroll;overflow-x:hidden}#wpo_sitelist_moreoptions{max-height:150px;margin-right:0}#wpo_settings_sites_list li,#wpo_settings_sites_list li a{font-size:13px;line-height:1.5}#wpo_sitelist_moreoptions_cron li{padding-left:20px}#wpo_import_error_message{display:none;color:#9b0000}#wpo_import_success_message{display:none;color:#46b450}#wp-optimize-logging-options{margin-top:10px}.wpo_logging_header{font-weight:bold;border-top:1px solid #333;border-bottom:1px solid #333;padding:5px 0;margin:0}.wpo_logging_row{border-bottom:1px solid #a1a2a3;padding:5px 0}.wpo_logging_logger_title,.wpo_logging_options_title,.wpo_logging_status_title,.wpo_logging_actions_title,.wpo_logging_logger_row,.wpo_logging_options_row,.wpo_logging_status_row,.wpo_logging_actions_row{display:inline-block}.wpo_logging_logger_title,.wpo_logging_logger_row{width:38%}.wpo_logging_options_title,.wpo_logging_options_row{width:44%}.wpo_logging_status_title,.wpo_logging_status_row{width:8%}.wpo_logging_actions_title,.wpo_logging_actions_row{width:7%}.wpo_logging_actions_row{text-align:right}.wpo_logging_options_row{word-wrap:break-word}#wpo_add_logger_link{clear:both;display:block;cursor:pointer;font-weight:bold}.wpo_logging_actions_row .dashicons-no-alt,.wpo_add_logger_form .dashicons-no-alt{background-color:#f06666;color:#FFF;width:20px;height:20px;border-radius:20px;display:inline-block;cursor:pointer;margin-left:5px}.wpo_add_logger_form .dashicons-no-alt{margin-top:12px;margin-right:10px;float:right}.wpo_logger_type{width:90%;margin-top:10px}.wpo_logger_addition_option{width:100%;margin-top:5px}.wpo_alert_notice{background-color:#f06666;color:#FFF;padding:5px;display:block;margin-bottom:5px;border-radius:5px}.wpo_error_field{border-color:#f06666 !important}.save_settings_reminder{display:none;color:#333;padding:5px 10px;border:1px solid #F00;background-color:#f0a5a4;border-radius:5px;margin:15px 0}.wpo_feature_cont{width:54.5%}.wpo_plugin_family_cont{width:44.5%}.wpo_feat_table,.wpo_feat_th,.wpo_feat_table td{border:1px solid black;border-collapse:collapse;font-size:120%;background-color:white;text-align:center}.wpo_feat_table p{padding:0 10px;margin:5px 0;font-size:16px}.wpo_feat_table h4{margin:5px 0}.wpo_feat_table .dashicons{width:25px;height:25px;font-size:25px;line-height:1}.wpo_feat_table .dashicons-yes,.wpo_feat_table .updraft-yes{color:green}.wpo_feat_table .dashicons-no-alt,.wpo_feat_table .updraft-no{color:red}.wpo-premium-image{display:none}@media screen and (min-width:720px){#wpoptimize_table_list_filter{width:40%}.wpo-premium-image{display:block;float:left;padding:14px 8px;width:50px;height:50px}}.other-plugin-title{text-decoration:none}#wpo_remove_selected_sizes{margin-top:20px}.wpo_unused_images_buttons_wrap{display:none}.wpo_unused_images_container h3{min-width:150px}#wpo_unused_images{max-height:500px;overflow-y:auto}#wpo_unused_images a{outline:0}
|
2 |
/*# sourceMappingURL=admin.min.css.map */
|
css/admin.min.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["css/admin.css"],"names":[],"mappings":"AAAA;CACC,cAAc;CACd;;AAED,gBAAgB;AAChB;CACC,4BAA4B;CAC5B,2BAA2B;CAC3B,iBAAiB;CACjB,iBAAiB;CACjB;;AAED,gBAAgB;AAChB;CACC,YAAY;CACZ,WAAW;CACX,UAAU;CACV;;AAED;CACC,oBAAoB;CACpB;;AAED,oBAAoB;AACpB;CACC,eAAe;CACf,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,eAAe;CACf;;AAED,gBAAgB;AAChB;;CAEC,YAAY;CACZ,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;CACC,WAAW;CACX;;AAED,qBAAqB;AACrB;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;;CAEC;EACC,0BAA0B;EAC1B;;CAED;EACC,yBAAyB;EACzB;;CAED;;AAED;;CAEC;EACC,yBAAyB;EACzB;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED;;CAEC;EACC,aAAa;EACb;;CAED;EACC,YAAY;EACZ;;CAED;EACC,YAAY;EACZ;;CAED;EACC,YAAY;EACZ;;CAED;EACC,YAAY;EACZ;;CAED;;AAED;CACC,eAAe;CACf;;AAED;CACC,YAAY;CACZ,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED,sCAAsC;AACtC;CACC,eAAe;CACf,kBAAkB;CAClB,mBAAmB;CACnB,aAAa;CACb;;AAED;CACC,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB,cAAc;CACd,mBAAmB;CACnB,SAAS;CACT;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,WAAW;CACX;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,mBAAmB;CACnB,SAAS;CACT;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB,SAAS;CACT,UAAU;CACV;;AAED;CACC,YAAY;CACZ;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,sBAAsB;CACtB,UAAU;CACV,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB,sBAAsB;CACtB,mBAAmB;CACnB,SAAS;CACT,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,qCAAqC;CACrC,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,iBAAiB;CACjB,mBAAmB;CACnB,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,uBAAuB;CACvB;;AAED;;CAEC,uBAAuB;CACvB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;;CAEC,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,eAAe;CACf;;AAED;CACC,cAAc;CACd,eAAe;CACf;;AAED,wCAAwC;AACxC;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,wBAAwB;CACxB,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED;CACC,cAAc;CACd;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;EACC,eAAe;EACf,YAAY;EACZ,kBAAkB;EAClB,YAAY;EACZ,aAAa;EACb;;CAED;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd","file":"admin.min.css","sourcesContent":[".wpo_hidden {\n\tdisplay: none;\n}\n\n/* big button */\n.wpo_primary_big {\n\tpadding: 4px 6px !important;\n\tfont-size: 22px !important;\n\tmin-height: 34px;\n\tmin-width: 200px;\n}\n\n/* SECTIONS */\n.wpo_section {\n\tclear: both;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.wp-optimize-settings {\n\tmargin-bottom: 16px;\n}\n\n/* COLUMN SETUP */\n.wpo_col {\n\tdisplay: block;\n\tfloat: left;\n\tmargin: 1% 0 1% 1%;\n}\n\n.wpo_col:first-child {\n\tmargin-left: 0;\n}\n\n/* GROUPING */\n.wpo_group:before,\n.wpo_group:after {\n\tcontent: \"\";\n\tdisplay: table;\n}\n\n.wpo_group:after {\n\tclear: both;\n}\n\n.wpo_half_width {\n\twidth: 48%;\n}\n\n/* GRID OF THREE */\n.wpo_span_3_of_3 {\n\twidth: 100%;\n}\n\n.wpo_span_2_of_3 {\n\twidth: 65.3%;\n}\n\n.wpo_span_1_of_3 {\n\twidth: 32.1%;\n}\n\n.nav-tab-wrapper {\n\tmargin: 14px 0px;\n}\n\n@media screen and (min-width: 549px) {\n\n\t.show_on_default_sizes {\n\t\tdisplay: block !important;\n\t}\n\n\t.show_on_mobile_sizes {\n\t\tdisplay: none !important;\n\t}\n\n}\n\n@media screen and (max-width: 548px) {\n\n\t.show_on_default_sizes {\n\t\tdisplay: none !important;\n\t}\n\n\t.show_on_mobile_sizes {\n\t\tdisplay: block !important;\n\t}\n\n}\n\n@media screen and (max-width: 768px) {\n\n\t.wpo_col {\n\t\tmargin: 1% 0;\n\t}\n\n\t.wpo_span_3_of_3 {\n\t\twidth: 100%;\n\t}\n\n\t.wpo_span_2_of_3 {\n\t\twidth: 100%;\n\t}\n\n\t.wpo_span_1_of_3 {\n\t\twidth: 100%;\n\t}\n\n\t.wpo_half_width {\n\t\twidth: 100%;\n\t}\n\n}\n\n.wp-optimize-settings-clean-transient label, .wp-optimize-settings-clean-pingbacks label, .wp-optimize-settings-clean-trackbacks label, .wp-optimize-settings-clean-postmeta label, .wp-optimize-settings-clean-orphandata label, .wp-optimize-settings-clean-commentmeta label {\n\tcolor: #9B0000;\n}\n\ntd.wp-optimize-settings-optimization-checkbox {\n\twidth: 18px;\n\tpadding-left: 4px;\n\tpadding-right: 0px;\n}\n\n.wp-optimize-settings-optimization-checkbox input {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n#retention-period {\n\twidth: 60px;\n}\n\n.wp-optimize-settings-optimization-info {\n\tfont-size: 80%;\n\tpadding-left: 32px;\n\tfont-style: italic;\n}\n\n.wp-optimize-settings input[type=\"checkbox\"] {\n\twidth: 18px;\n}\n\n/* Added for the Image on Addons tab*/\nimg.addons {\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\theight: 44px;\n}\n\n.wpo_spinner {\n\twidth: 18px;\n\theight: 18px;\n\tpadding-left: 10px;\n\tdisplay: none;\n\tposition: relative;\n\ttop: 4px;\n}\n\n.optimization_spinner {\n\twidth: 20px;\n\theight: 20px;\n}\n\n#wp-optimize-auto-options {\n\tmargin: 20px 0 0 28px;\n}\n\n.display-none {\n\tdisplay: none;\n}\n\n.visibility-hidden {\n\tvisibility: hidden;\n}\n\n.margin-one-percent {\n\tmargin: 1%;\n}\n\n#save_done {\n\tcolor: #D94F00;\n\tfont-size: 250%;\n}\n\n.wp-optimize-settings-optimization-info a {\n\ttext-decoration: underline;\n}\n\n.wp-optimize-settings-optimization-run-spinner {\n\tposition: relative;\n\ttop: 2px;\n}\n\n#wpoptimize_table_list .tablesorter-filter-row {\n\tdisplay: none !important;\n}\n\n#wp_optimize_table_list_refresh {\n\tfloat: right;\n}\n\n#wp_optimize_table_list_refresh:hover {\n\tcursor: pointer;\n}\n\n#wpoptimize_table_list .optimization_spinner {\n\tposition: relative;\n\ttop: 5px;\n\tleft: 5px;\n}\n\n#wpoptimize_table_list_filter {\n\twidth: 100%;\n}\n\n#wpoptimize_table_list_tables_not_found {\n\tdisplay: none;\n}\n\n#optimize_form .select2-container,\n#wp-optimize-auto-options .select2-container {\n\twidth: 50% !important;\n\ttop: -5px;\n\theight: 40px;\n\tmargin-left: 10px;\n}\n\n#wpoptimize_table_list .optimization_done_icon {\n\tcolor: #D94F00;\n\tfont-size: 200%;\n\tdisplay: inline-block;\n\tposition: relative;\n\ttop: 5px;\n\tleft: -20px;\n}\n\n#wpo_sitelist_show_moreoptions_cron {\n\tfont-size: 13px;\n\tline-height: 1.5;\n\tletter-spacing: 1px;\n}\n\n.wpo_unused_image {\n\tposition: relative;\n\tfloat: left;\n\tmargin: .5%;\n\twidth: 32%;\n\ttext-align: center;\n\tbackground: rgba(220, 220, 220, 0.5);\n\theight: 20vh;\n\tmin-height: 200px;\n}\n\n.wpo_unused_image img {\n\tmax-height: 80%;\n\tmax-width: 90%;\n\tmargin: 10px 5px;\n}\n\n.wpo_unused_image_checkbox_conatiner {\n\ttext-align: center;\n\tposition: absolute;\n\twidth: 100%;\n\tbottom: 7px;\n}\n\n#wp-optimize-nav-tab-contents-images .wpo_span_2_of_3 h3 {\n\tdisplay: inline-block;\n}\n\n#wpo_remove_unused_images_btn {\n\tmargin-top: 10px;\n\tmargin-right: 10px;\n\tfloat: right;\n}\n\n#wpo_remove_selected_sizes_btn {\n\tmargin-top: 20px;\n}\n\n#wp-optimize-nav-tab-contents-tables a {\n\tvertical-align: middle;\n}\n\n#wpo_sitelist_moreoptions,\n#wpo_sitelist_moreoptions_cron {\n\tmargin: 4px 16px 6px 0;\n\tborder: 1px dotted;\n\tpadding: 6px 10px;\n\tmax-height: 300px;\n\toverflow-y: scroll;\n\toverflow-x: hidden;\n}\n\n#wpo_sitelist_moreoptions {\n\tmax-height: 150px;\n\tmargin-right: 0;\n}\n\n#wpo_settings_sites_list li,\n#wpo_settings_sites_list li a {\n\tfont-size: 13px;\n\tline-height: 1.5;\n}\n\n#wpo_sitelist_moreoptions_cron li {\n\tpadding-left: 20px;\n}\n\n#wpo_import_error_message {\n\tdisplay: none;\n\tcolor: #9B0000;\n}\n\n#wpo_import_success_message {\n\tdisplay: none;\n\tcolor: #46B450;\n}\n\n/* Added for WPO Premium Features tab */\n.wpo_feature_cont {\n\twidth: 54.5%;\n}\n\n.wpo_plugin_family_cont {\n\twidth: 44.5%;\n}\n\n.wpo_feat_table, .wpo_feat_th, .wpo_feat_table td {\n\tborder: 1px solid black;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n}\n\n.wpo_feat_table p {\n\tpadding: 0px 10px;\n\tmargin: 5px 0px;\n\tfont-size: 16px;\n}\n\n.wpo_feat_table h4 {\n\tmargin: 5px 0px;\n}\n\n.wpo_feat_table .dashicons {\n\twidth: 25px;\n\theight: 25px;\n\tfont-size: 25px;\n\tline-height: 1;\n}\n\n.wpo_feat_table .dashicons-yes, .wpo_feat_table .updraft-yes {\n\tcolor: green;\n}\n\n.wpo_feat_table .dashicons-no-alt, .wpo_feat_table .updraft-no {\n\tcolor: red;\n}\n\n.wpo-premium-image {\n\tdisplay: none;\n}\n\n@media screen and (min-width: 720px) {\n\n\t#wpoptimize_table_list_filter {\n\t\twidth: 40%;\n\t}\n\n\t.wpo-premium-image {\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tpadding: 14px 8px;\n\t\twidth: 50px;\n\t\theight: 50px;\n\t}\n\n}\n\n.other-plugin-title {\n\ttext-decoration: none;\n}\n\n#wpo_remove_selected_sizes {\n\tmargin-top: 20px;\n}\n\n.wpo_unused_images_buttons_wrap {\n\tdisplay: none;\n}\n\n.wpo_unused_images_container h3 {\n\tmin-width: 150px;\n}\n\n#wpo_unused_images {\n\tmax-height: 500px;\n\toverflow-y: auto;\n}\n\n#wpo_unused_images a {\n\toutline: none;\n}"]}
|
1 |
+
{"version":3,"sources":["css/admin.css"],"names":[],"mappings":"AAAA;CACC,cAAc;CACd;;AAED,gBAAgB;AAChB;CACC,4BAA4B;CAC5B,2BAA2B;CAC3B,iBAAiB;CACjB,iBAAiB;CACjB;;AAED,gBAAgB;AAChB;CACC,YAAY;CACZ,WAAW;CACX,UAAU;CACV;;AAED;CACC,oBAAoB;CACpB;;AAED,oBAAoB;AACpB;CACC,eAAe;CACf,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,eAAe;CACf;;AAED,gBAAgB;AAChB;;CAEC,YAAY;CACZ,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;CACC,WAAW;CACX;;AAED,qBAAqB;AACrB;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;;CAEC;EACC,0BAA0B;EAC1B;;CAED;EACC,yBAAyB;EACzB;;CAED;;AAED;;CAEC;EACC,yBAAyB;EACzB;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED;;CAEC;EACC,aAAa;EACb;;CAED;EACC,YAAY;EACZ;;CAED;EACC,YAAY;EACZ;;CAED;EACC,YAAY;EACZ;;CAED;EACC,YAAY;EACZ;;CAED;;AAED;CACC,eAAe;CACf;;AAED;CACC,YAAY;CACZ,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED,sCAAsC;AACtC;CACC,eAAe;CACf,kBAAkB;CAClB,mBAAmB;CACnB,aAAa;CACb;;AAED;CACC,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB,cAAc;CACd,mBAAmB;CACnB,SAAS;CACT;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,WAAW;CACX;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,mBAAmB;CACnB,SAAS;CACT;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB,SAAS;CACT,UAAU;CACV;;AAED;CACC,YAAY;CACZ;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,sBAAsB;CACtB,UAAU;CACV,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB,sBAAsB;CACtB,mBAAmB;CACnB,SAAS;CACT,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,qCAAqC;CACrC,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,iBAAiB;CACjB,mBAAmB;CACnB,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,uBAAuB;CACvB;;AAED;;CAEC,uBAAuB;CACvB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;;CAEC,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,eAAe;CACf;;AAED;CACC,cAAc;CACd,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED,oBAAoB;AACpB;CACC,kBAAkB;CAClB,2BAA2B;CAC3B,8BAA8B;CAC9B,eAAe;CACf,UAAU;CACV;;AAED;CACC,iCAAiC;CACjC,eAAe;CACf;;AAED;;;;;;;;CAQC,sBAAsB;CACtB;;AAED;;CAEC,WAAW;CACX;;AAED;;CAEC,WAAW;CACX;;AAED;;CAEC,UAAU;CACV;;AAED;;CAEC,UAAU;CACV;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,eAAe;CACf,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;;CAEC,0BAA0B;CAC1B,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,oBAAoB;CACpB,sBAAsB;CACtB,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,mBAAmB;CACnB,aAAa;CACb;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ,aAAa;CACb,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,iCAAiC;CACjC;;AAED;CACC,cAAc;CACd,YAAY;CACZ,kBAAkB;CAClB,uBAAuB;CACvB,0BAA0B;CAC1B,mBAAmB;CACnB,eAAe;CACf;;AAED,wCAAwC;AACxC;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,wBAAwB;CACxB,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED;CACC,cAAc;CACd;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;EACC,eAAe;EACf,YAAY;EACZ,kBAAkB;EAClB,YAAY;EACZ,aAAa;EACb;;CAED;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd","file":"admin.min.css","sourcesContent":[".wpo_hidden {\n\tdisplay: none;\n}\n\n/* big button */\n.wpo_primary_big {\n\tpadding: 4px 6px !important;\n\tfont-size: 22px !important;\n\tmin-height: 34px;\n\tmin-width: 200px;\n}\n\n/* SECTIONS */\n.wpo_section {\n\tclear: both;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.wp-optimize-settings {\n\tmargin-bottom: 16px;\n}\n\n/* COLUMN SETUP */\n.wpo_col {\n\tdisplay: block;\n\tfloat: left;\n\tmargin: 1% 0 1% 1%;\n}\n\n.wpo_col:first-child {\n\tmargin-left: 0;\n}\n\n/* GROUPING */\n.wpo_group:before,\n.wpo_group:after {\n\tcontent: \"\";\n\tdisplay: table;\n}\n\n.wpo_group:after {\n\tclear: both;\n}\n\n.wpo_half_width {\n\twidth: 48%;\n}\n\n/* GRID OF THREE */\n.wpo_span_3_of_3 {\n\twidth: 100%;\n}\n\n.wpo_span_2_of_3 {\n\twidth: 65.3%;\n}\n\n.wpo_span_1_of_3 {\n\twidth: 32.1%;\n}\n\n.nav-tab-wrapper {\n\tmargin: 14px 0px;\n}\n\n@media screen and (min-width: 549px) {\n\n\t.show_on_default_sizes {\n\t\tdisplay: block !important;\n\t}\n\n\t.show_on_mobile_sizes {\n\t\tdisplay: none !important;\n\t}\n\n}\n\n@media screen and (max-width: 548px) {\n\n\t.show_on_default_sizes {\n\t\tdisplay: none !important;\n\t}\n\n\t.show_on_mobile_sizes {\n\t\tdisplay: block !important;\n\t}\n\n}\n\n@media screen and (max-width: 768px) {\n\n\t.wpo_col {\n\t\tmargin: 1% 0;\n\t}\n\n\t.wpo_span_3_of_3 {\n\t\twidth: 100%;\n\t}\n\n\t.wpo_span_2_of_3 {\n\t\twidth: 100%;\n\t}\n\n\t.wpo_span_1_of_3 {\n\t\twidth: 100%;\n\t}\n\n\t.wpo_half_width {\n\t\twidth: 100%;\n\t}\n\n}\n\n.wp-optimize-settings-clean-transient label, .wp-optimize-settings-clean-pingbacks label, .wp-optimize-settings-clean-trackbacks label, .wp-optimize-settings-clean-postmeta label, .wp-optimize-settings-clean-orphandata label, .wp-optimize-settings-clean-commentmeta label {\n\tcolor: #9B0000;\n}\n\ntd.wp-optimize-settings-optimization-checkbox {\n\twidth: 18px;\n\tpadding-left: 4px;\n\tpadding-right: 0px;\n}\n\n.wp-optimize-settings-optimization-checkbox input {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n#retention-period {\n\twidth: 60px;\n}\n\n.wp-optimize-settings-optimization-info {\n\tfont-size: 80%;\n\tpadding-left: 32px;\n\tfont-style: italic;\n}\n\n.wp-optimize-settings input[type=\"checkbox\"] {\n\twidth: 18px;\n}\n\n/* Added for the Image on Addons tab*/\nimg.addons {\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\theight: 44px;\n}\n\n.wpo_spinner {\n\twidth: 18px;\n\theight: 18px;\n\tpadding-left: 10px;\n\tdisplay: none;\n\tposition: relative;\n\ttop: 4px;\n}\n\n.optimization_spinner {\n\twidth: 20px;\n\theight: 20px;\n}\n\n#wp-optimize-auto-options {\n\tmargin: 20px 0 0 28px;\n}\n\n.display-none {\n\tdisplay: none;\n}\n\n.visibility-hidden {\n\tvisibility: hidden;\n}\n\n.margin-one-percent {\n\tmargin: 1%;\n}\n\n#save_done {\n\tcolor: #D94F00;\n\tfont-size: 250%;\n}\n\n.wp-optimize-settings-optimization-info a {\n\ttext-decoration: underline;\n}\n\n.wp-optimize-settings-optimization-run-spinner {\n\tposition: relative;\n\ttop: 2px;\n}\n\n#wpoptimize_table_list .tablesorter-filter-row {\n\tdisplay: none !important;\n}\n\n#wp_optimize_table_list_refresh {\n\tfloat: right;\n}\n\n#wp_optimize_table_list_refresh:hover {\n\tcursor: pointer;\n}\n\n#wpoptimize_table_list .optimization_spinner {\n\tposition: relative;\n\ttop: 5px;\n\tleft: 5px;\n}\n\n#wpoptimize_table_list_filter {\n\twidth: 100%;\n}\n\n#wpoptimize_table_list_tables_not_found {\n\tdisplay: none;\n}\n\n#optimize_form .select2-container,\n#wp-optimize-auto-options .select2-container {\n\twidth: 50% !important;\n\ttop: -5px;\n\theight: 40px;\n\tmargin-left: 10px;\n}\n\n#wpoptimize_table_list .optimization_done_icon {\n\tcolor: #D94F00;\n\tfont-size: 200%;\n\tdisplay: inline-block;\n\tposition: relative;\n\ttop: 5px;\n\tleft: -20px;\n}\n\n#wpo_sitelist_show_moreoptions_cron {\n\tfont-size: 13px;\n\tline-height: 1.5;\n\tletter-spacing: 1px;\n}\n\n.wpo_unused_image {\n\tposition: relative;\n\tfloat: left;\n\tmargin: .5%;\n\twidth: 32%;\n\ttext-align: center;\n\tbackground: rgba(220, 220, 220, 0.5);\n\theight: 20vh;\n\tmin-height: 200px;\n}\n\n.wpo_unused_image img {\n\tmax-height: 80%;\n\tmax-width: 90%;\n\tmargin: 10px 5px;\n}\n\n.wpo_unused_image_checkbox_conatiner {\n\ttext-align: center;\n\tposition: absolute;\n\twidth: 100%;\n\tbottom: 7px;\n}\n\n#wp-optimize-nav-tab-contents-images .wpo_span_2_of_3 h3 {\n\tdisplay: inline-block;\n}\n\n#wpo_remove_unused_images_btn {\n\tmargin-top: 10px;\n\tmargin-right: 10px;\n\tfloat: right;\n}\n\n#wpo_remove_selected_sizes_btn {\n\tmargin-top: 20px;\n}\n\n#wp-optimize-nav-tab-contents-tables a {\n\tvertical-align: middle;\n}\n\n#wpo_sitelist_moreoptions,\n#wpo_sitelist_moreoptions_cron {\n\tmargin: 4px 16px 6px 0;\n\tborder: 1px dotted;\n\tpadding: 6px 10px;\n\tmax-height: 300px;\n\toverflow-y: scroll;\n\toverflow-x: hidden;\n}\n\n#wpo_sitelist_moreoptions {\n\tmax-height: 150px;\n\tmargin-right: 0;\n}\n\n#wpo_settings_sites_list li,\n#wpo_settings_sites_list li a {\n\tfont-size: 13px;\n\tline-height: 1.5;\n}\n\n#wpo_sitelist_moreoptions_cron li {\n\tpadding-left: 20px;\n}\n\n#wpo_import_error_message {\n\tdisplay: none;\n\tcolor: #9B0000;\n}\n\n#wpo_import_success_message {\n\tdisplay: none;\n\tcolor: #46B450;\n}\n\n#wp-optimize-logging-options {\n\tmargin-top: 10px;\n}\n\n/* Logger settings*/\n.wpo_logging_header {\n\tfont-weight: bold;\n\tborder-top: 1px solid #333;\n\tborder-bottom: 1px solid #333;\n\tpadding: 5px 0;\n\tmargin: 0;\n}\n\n.wpo_logging_row {\n\tborder-bottom: 1px solid #A1A2A3;\n\tpadding: 5px 0;\n}\n\n.wpo_logging_logger_title,\n.wpo_logging_options_title,\n.wpo_logging_status_title,\n.wpo_logging_actions_title,\n.wpo_logging_logger_row,\n.wpo_logging_options_row,\n.wpo_logging_status_row,\n.wpo_logging_actions_row {\n\tdisplay: inline-block;\n}\n\n.wpo_logging_logger_title,\n.wpo_logging_logger_row {\n\twidth: 38%;\n}\n\n.wpo_logging_options_title,\n.wpo_logging_options_row {\n\twidth: 44%;\n}\n\n.wpo_logging_status_title,\n.wpo_logging_status_row {\n\twidth: 8%;\n}\n\n.wpo_logging_actions_title,\n.wpo_logging_actions_row {\n\twidth: 7%;\n}\n\n.wpo_logging_actions_row {\n\ttext-align: right;\n}\n\n.wpo_logging_options_row {\n\tword-wrap: break-word;\n}\n\n#wpo_add_logger_link {\n\tclear: both;\n\tdisplay: block;\n\tcursor: pointer;\n\tfont-weight: bold;\n}\n\n.wpo_logging_actions_row .dashicons-no-alt,\n.wpo_add_logger_form .dashicons-no-alt {\n\tbackground-color: #F06666;\n\tcolor: #FFF;\n\twidth: 20px;\n\theight: 20px;\n\tborder-radius: 20px;\n\tdisplay: inline-block;\n\tcursor: pointer;\n\tmargin-left: 5px;\n}\n\n.wpo_add_logger_form .dashicons-no-alt {\n\tmargin-top: 12px;\n\tmargin-right: 10px;\n\tfloat: right;\n}\n\n.wpo_logger_type {\n\twidth: 90%;\n\tmargin-top: 10px;\n}\n\n.wpo_logger_addition_option {\n\twidth: 100%;\n\tmargin-top: 5px;\n}\n\n.wpo_alert_notice {\n\tbackground-color: #F06666;\n\tcolor: #FFF;\n\tpadding: 5px;\n\tdisplay: block;\n\tmargin-bottom: 5px;\n\tborder-radius: 5px;\n}\n\n.wpo_error_field {\n\tborder-color: #F06666 !important;\n}\n\n.save_settings_reminder {\n\tdisplay: none;\n\tcolor: #333;\n\tpadding: 5px 10px;\n\tborder: 1px solid #F00;\n\tbackground-color: #F0A5A4;\n\tborder-radius: 5px;\n\tmargin: 15px 0;\n}\n\n/* Added for WPO Premium Features tab */\n.wpo_feature_cont {\n\twidth: 54.5%;\n}\n\n.wpo_plugin_family_cont {\n\twidth: 44.5%;\n}\n\n.wpo_feat_table, .wpo_feat_th, .wpo_feat_table td {\n\tborder: 1px solid black;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n}\n\n.wpo_feat_table p {\n\tpadding: 0px 10px;\n\tmargin: 5px 0px;\n\tfont-size: 16px;\n}\n\n.wpo_feat_table h4 {\n\tmargin: 5px 0px;\n}\n\n.wpo_feat_table .dashicons {\n\twidth: 25px;\n\theight: 25px;\n\tfont-size: 25px;\n\tline-height: 1;\n}\n\n.wpo_feat_table .dashicons-yes, .wpo_feat_table .updraft-yes {\n\tcolor: green;\n}\n\n.wpo_feat_table .dashicons-no-alt, .wpo_feat_table .updraft-no {\n\tcolor: red;\n}\n\n.wpo-premium-image {\n\tdisplay: none;\n}\n\n@media screen and (min-width: 720px) {\n\n\t#wpoptimize_table_list_filter {\n\t\twidth: 40%;\n\t}\n\n\t.wpo-premium-image {\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tpadding: 14px 8px;\n\t\twidth: 50px;\n\t\theight: 50px;\n\t}\n\n}\n\n.other-plugin-title {\n\ttext-decoration: none;\n}\n\n#wpo_remove_selected_sizes {\n\tmargin-top: 20px;\n}\n\n.wpo_unused_images_buttons_wrap {\n\tdisplay: none;\n}\n\n.wpo_unused_images_container h3 {\n\tmin-width: 150px;\n}\n\n#wpo_unused_images {\n\tmax-height: 500px;\n\toverflow-y: auto;\n}\n\n#wpo_unused_images a {\n\toutline: none;\n}"]}
|
includes/class-commands.php
CHANGED
@@ -225,7 +225,7 @@ class WP_Optimize_Commands {
|
|
225 |
|
226 |
$results = array();
|
227 |
$optimizations = $this->optimizer->get_optimizations();
|
228 |
-
$hidden_in_optimizations_list = apply_filters('wpo_hidden_in_optimizations_list', array('images'));
|
229 |
|
230 |
foreach ($optimizations as $optimization_id => $optimization) {
|
231 |
if (in_array($optimization_id, $hidden_in_optimizations_list)) continue;
|
225 |
|
226 |
$results = array();
|
227 |
$optimizations = $this->optimizer->get_optimizations();
|
228 |
+
$hidden_in_optimizations_list = apply_filters('wpo_hidden_in_optimizations_list', array('images', 'attachments'));
|
229 |
|
230 |
foreach ($optimizations as $optimization_id => $optimization) {
|
231 |
if (in_array($optimization_id, $hidden_in_optimizations_list)) continue;
|
includes/class-updraft-abstract-logger.php
CHANGED
@@ -11,6 +11,8 @@ abstract class Updraft_Abstract_Logger implements Updraft_Logger_Interface {
|
|
11 |
|
12 |
protected $enabled = true;
|
13 |
|
|
|
|
|
14 |
protected $options = array();
|
15 |
|
16 |
/**
|
@@ -19,6 +21,59 @@ abstract class Updraft_Abstract_Logger implements Updraft_Logger_Interface {
|
|
19 |
public function __construct() {
|
20 |
}
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
/**
|
23 |
* Returns true if logger is active
|
24 |
*
|
11 |
|
12 |
protected $enabled = true;
|
13 |
|
14 |
+
protected $allow_multiple = false;
|
15 |
+
|
16 |
protected $options = array();
|
17 |
|
18 |
/**
|
21 |
public function __construct() {
|
22 |
}
|
23 |
|
24 |
+
/**
|
25 |
+
* Returns true if allow multiple.
|
26 |
+
*
|
27 |
+
* @return bool
|
28 |
+
*/
|
29 |
+
public function is_allow_multiple() {
|
30 |
+
return $this->allow_multiple;
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Returns current options in text.
|
35 |
+
*
|
36 |
+
* @return string
|
37 |
+
*/
|
38 |
+
public function get_options_text() {
|
39 |
+
$options_values = $this->get_options_values();
|
40 |
+
|
41 |
+
if (array_key_exists('active', $options_values)) {
|
42 |
+
unset($options_values['active']);
|
43 |
+
}
|
44 |
+
|
45 |
+
return join(', ', $options_values);
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Returns list of logger options.
|
50 |
+
*
|
51 |
+
* @return array
|
52 |
+
*/
|
53 |
+
public function get_options_list() {
|
54 |
+
return array(
|
55 |
+
// 'option_name' => __('Placeholder', 'wp-optimize')
|
56 |
+
);
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Returns array with options values list.
|
61 |
+
*
|
62 |
+
* @return array
|
63 |
+
*/
|
64 |
+
public function get_options_values() {
|
65 |
+
$options_values = array();
|
66 |
+
$options_list = $this->get_options_list();
|
67 |
+
|
68 |
+
if (empty($options_list)) return $options_values;
|
69 |
+
|
70 |
+
foreach (array_keys($options_list) as $option_name) {
|
71 |
+
$options_values[$option_name] = $this->get_option($option_name);
|
72 |
+
}
|
73 |
+
|
74 |
+
return $options_values;
|
75 |
+
}
|
76 |
+
|
77 |
/**
|
78 |
* Returns true if logger is active
|
79 |
*
|
includes/class-updraft-email-logger.php
CHANGED
@@ -9,6 +9,8 @@ if (class_exists('Updraft_Email_Logger')) return;
|
|
9 |
*/
|
10 |
class Updraft_Email_Logger extends Updraft_Abstract_Logger {
|
11 |
|
|
|
|
|
12 |
/**
|
13 |
* Updraft_Email_Logger constructor
|
14 |
*/
|
@@ -18,12 +20,26 @@ class Updraft_Email_Logger extends Updraft_Abstract_Logger {
|
|
18 |
/**
|
19 |
* Returns logger description
|
20 |
*
|
21 |
-
* @return string
|
22 |
*/
|
23 |
public function get_description() {
|
24 |
return __('Log events to email', 'wp-optimize');
|
25 |
}
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
/**
|
28 |
* Emergency message
|
29 |
*
|
9 |
*/
|
10 |
class Updraft_Email_Logger extends Updraft_Abstract_Logger {
|
11 |
|
12 |
+
protected $allow_multiple = true;
|
13 |
+
|
14 |
/**
|
15 |
* Updraft_Email_Logger constructor
|
16 |
*/
|
20 |
/**
|
21 |
* Returns logger description
|
22 |
*
|
23 |
+
* @return string
|
24 |
*/
|
25 |
public function get_description() {
|
26 |
return __('Log events to email', 'wp-optimize');
|
27 |
}
|
28 |
|
29 |
+
/**
|
30 |
+
* Returns list of logger options.
|
31 |
+
*
|
32 |
+
* @return array
|
33 |
+
*/
|
34 |
+
public function get_options_list() {
|
35 |
+
return array(
|
36 |
+
'emails' => array(
|
37 |
+
__('Enter email for logs here', 'wp-optimize'),
|
38 |
+
'email', // validator
|
39 |
+
)
|
40 |
+
);
|
41 |
+
}
|
42 |
+
|
43 |
/**
|
44 |
* Emergency message
|
45 |
*
|
includes/class-updraft-logger.php
CHANGED
@@ -31,7 +31,20 @@ class Updraft_Logger implements Updraft_Logger_Interface {
|
|
31 |
* @param Updraft_Logger_Interface $logger
|
32 |
*/
|
33 |
public function add_logger(Updraft_Logger_Interface $logger) {
|
34 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
}
|
36 |
|
37 |
/**
|
31 |
* @param Updraft_Logger_Interface $logger
|
32 |
*/
|
33 |
public function add_logger(Updraft_Logger_Interface $logger) {
|
34 |
+
$logger_id = $logger_class = get_class($logger);
|
35 |
+
|
36 |
+
// don't add logger if it doesn't support multiple loggers.
|
37 |
+
if (!empty($this->_loggers) && array_key_exists($logger_id, $this->_loggers) && false == $logger->is_allow_multiple()) return false;
|
38 |
+
|
39 |
+
$index = 0;
|
40 |
+
|
41 |
+
// get free id key.
|
42 |
+
while (array_key_exists($logger_id, $this->_loggers)) {
|
43 |
+
$index++;
|
44 |
+
$logger_id = $logger_class.'_'.$index;
|
45 |
+
}
|
46 |
+
|
47 |
+
$this->_loggers[$logger_id] = $logger;
|
48 |
}
|
49 |
|
50 |
/**
|
includes/class-updraft-ring-logger.php
CHANGED
@@ -24,6 +24,17 @@ class Updraft_Ring_Logger extends Updraft_Abstract_Logger {
|
|
24 |
return __('Store the most recent log entries in the WordPress database', 'wp-optimize');
|
25 |
}
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
/**
|
28 |
* Emergency message
|
29 |
*
|
24 |
return __('Store the most recent log entries in the WordPress database', 'wp-optimize');
|
25 |
}
|
26 |
|
27 |
+
/**
|
28 |
+
* Returns list of logger options.
|
29 |
+
*
|
30 |
+
* @return array
|
31 |
+
*/
|
32 |
+
public function get_options_list() {
|
33 |
+
return array(
|
34 |
+
'ring_logger_limit' => __('How many last records store?', 'wp-optimize')
|
35 |
+
);
|
36 |
+
}
|
37 |
+
|
38 |
/**
|
39 |
* Emergency message
|
40 |
*
|
includes/class-wp-optimize-options.php
CHANGED
@@ -228,17 +228,8 @@ class WP_Optimize_Options {
|
|
228 |
}
|
229 |
|
230 |
/** Save logging options */
|
231 |
-
$
|
232 |
-
|
233 |
-
if (!is_array($new_logging_options)) $new_logging_options = array();
|
234 |
-
|
235 |
-
$this->update_option('logging', $new_logging_options);
|
236 |
-
|
237 |
-
$new_logging_additional_options = isset($settings['wp-optimize-logging-additional']) ? $settings['wp-optimize-logging-additional'] : array();
|
238 |
-
|
239 |
-
if (!is_array($new_logging_additional_options)) $new_logging_additional_options = array();
|
240 |
-
|
241 |
-
$this->update_option('logging-additional', $new_logging_additional_options);
|
242 |
|
243 |
// Save selected optimization settings.
|
244 |
$this->save_sent_manual_run_optimization_options($settings, true, false);
|
@@ -328,9 +319,7 @@ class WP_Optimize_Options {
|
|
328 |
$deprecated = null;
|
329 |
$autoload_no = 'no';
|
330 |
|
331 |
-
if ($this->get_option('schedule')
|
332 |
-
// The option already exists, so we just update it.
|
333 |
-
} else {
|
334 |
// The option hasn't been added yet. We'll add it with $autoload_no set to 'no'.
|
335 |
$this->update_option('schedule', 'false', $deprecated, $autoload_no);
|
336 |
$this->update_option('last-optimized', 'Never', $deprecated, $autoload_no);
|
@@ -339,22 +328,16 @@ class WP_Optimize_Options {
|
|
339 |
wpo_cron_deactivate();
|
340 |
}
|
341 |
|
342 |
-
if ($this->get_option('retention-enabled')
|
343 |
-
//
|
344 |
-
} else {
|
345 |
$this->update_option('retention-enabled', 'false', $deprecated, $autoload_no);
|
346 |
$this->update_option('retention-period', '2', $deprecated, $autoload_no);
|
347 |
}
|
348 |
|
349 |
-
if ($this->get_option('enable-admin-menu')
|
350 |
-
//
|
351 |
-
} else {
|
352 |
$this->update_option('enable-admin-menu', 'false', $deprecated, $autoload_no);
|
353 |
}
|
354 |
|
355 |
-
if ($this->get_option('total-cleaned')
|
356 |
-
//
|
357 |
-
} else {
|
358 |
$this->update_option('total-cleaned', '0', $deprecated, $autoload_no);
|
359 |
}
|
360 |
|
@@ -380,9 +363,7 @@ class WP_Optimize_Options {
|
|
380 |
|
381 |
|
382 |
// Settings for main screen.
|
383 |
-
if (false
|
384 |
-
// The option already exists, so we just update it.
|
385 |
-
} else {
|
386 |
$optimizer = WP_Optimize()->get_optimizer();
|
387 |
|
388 |
$optimizations = $optimizer->get_optimizations();
|
228 |
}
|
229 |
|
230 |
/** Save logging options */
|
231 |
+
$this->update_option('logging', $settings['wpo-logger-type']);
|
232 |
+
$this->update_option('logging-additional', $settings['wpo-logger-options']);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
|
234 |
// Save selected optimization settings.
|
235 |
$this->save_sent_manual_run_optimization_options($settings, true, false);
|
319 |
$deprecated = null;
|
320 |
$autoload_no = 'no';
|
321 |
|
322 |
+
if (false === $this->get_option('schedule')) {
|
|
|
|
|
323 |
// The option hasn't been added yet. We'll add it with $autoload_no set to 'no'.
|
324 |
$this->update_option('schedule', 'false', $deprecated, $autoload_no);
|
325 |
$this->update_option('last-optimized', 'Never', $deprecated, $autoload_no);
|
328 |
wpo_cron_deactivate();
|
329 |
}
|
330 |
|
331 |
+
if (false === $this->get_option('retention-enabled')) {
|
|
|
|
|
332 |
$this->update_option('retention-enabled', 'false', $deprecated, $autoload_no);
|
333 |
$this->update_option('retention-period', '2', $deprecated, $autoload_no);
|
334 |
}
|
335 |
|
336 |
+
if (false === $this->get_option('enable-admin-menu')) {
|
|
|
|
|
337 |
$this->update_option('enable-admin-menu', 'false', $deprecated, $autoload_no);
|
338 |
}
|
339 |
|
340 |
+
if (false === $this->get_option('total-cleaned')) {
|
|
|
|
|
341 |
$this->update_option('total-cleaned', '0', $deprecated, $autoload_no);
|
342 |
}
|
343 |
|
363 |
|
364 |
|
365 |
// Settings for main screen.
|
366 |
+
if (false === $this->get_main_settings()) {
|
|
|
|
|
367 |
$optimizer = WP_Optimize()->get_optimizer();
|
368 |
|
369 |
$optimizations = $optimizer->get_optimizations();
|
js/tablesorter/jquery.tablesorter.js
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
}
|
9 |
}(function(jQuery) {
|
10 |
|
11 |
-
/*! TableSorter (FORK) v2.29.
|
12 |
* Client-side table sorting with ease!
|
13 |
* @requires jQuery v1.2.6+
|
14 |
*
|
@@ -32,7 +32,7 @@
|
|
32 |
'use strict';
|
33 |
var ts = $.tablesorter = {
|
34 |
|
35 |
-
version : '2.29.
|
36 |
|
37 |
parsers : [],
|
38 |
widgets : [],
|
8 |
}
|
9 |
}(function(jQuery) {
|
10 |
|
11 |
+
/*! TableSorter (FORK) v2.29.6 *//*
|
12 |
* Client-side table sorting with ease!
|
13 |
* @requires jQuery v1.2.6+
|
14 |
*
|
32 |
'use strict';
|
33 |
var ts = $.tablesorter = {
|
34 |
|
35 |
+
version : '2.29.6',
|
36 |
|
37 |
parsers : [],
|
38 |
widgets : [],
|
js/tablesorter/jquery.tablesorter.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){return function(t){"use strict";var r=t.tablesorter={version:"2.29.5",parsers:[],widgets:[],defaults:{theme:"default",widthFixed:!1,showProcessing:!1,headerTemplate:"{content}",onRenderTemplate:null,onRenderHeader:null,cancelSelection:!0,tabIndex:!0,dateFormat:"mmddyyyy",sortMultiSortKey:"shiftKey",sortResetKey:"ctrlKey",usNumberFormat:!0,delayInit:!1,serverSideSorting:!1,resort:!0,headers:{},ignoreCase:!0,sortForce:null,sortList:[],sortAppend:null,sortStable:!1,sortInitialOrder:"asc",sortLocaleCompare:!1,sortReset:!1,sortRestart:!1,emptyTo:"bottom",stringTo:"max",duplicateSpan:!0,textExtraction:"basic",textAttribute:"data-text",textSorter:null,numberSorter:null,initWidgets:!0,widgetClass:"widget-{name}",widgets:[],widgetOptions:{zebra:["even","odd"]},initialized:null,tableClass:"",cssAsc:"",cssDesc:"",cssNone:"",cssHeader:"",cssHeaderRow:"",cssProcessing:"",cssChildRow:"tablesorter-childRow",cssInfoBlock:"tablesorter-infoOnly",cssNoSort:"tablesorter-noSort",cssIgnoreRow:"tablesorter-ignoreRow",cssIcon:"tablesorter-icon",cssIconNone:"",cssIconAsc:"",cssIconDesc:"",cssIconDisabled:"",pointerClick:"click",pointerDown:"mousedown",pointerUp:"mouseup",selectorHeaders:"> thead th, > thead td",selectorSort:"th, td",selectorRemove:".remove-me",debug:!1,headerList:[],empties:{},strings:{},parsers:[],globalize:0,imgAttr:0},css:{table:"tablesorter",cssHasChild:"tablesorter-hasChildRow",childRow:"tablesorter-childRow",colgroup:"tablesorter-colgroup",header:"tablesorter-header",headerRow:"tablesorter-headerRow",headerIn:"tablesorter-header-inner",icon:"tablesorter-icon",processing:"tablesorter-processing",sortAsc:"tablesorter-headerAsc",sortDesc:"tablesorter-headerDesc",sortNone:"tablesorter-headerUnSorted"},language:{sortAsc:"Ascending sort applied, ",sortDesc:"Descending sort applied, ",sortNone:"No sort applied, ",sortDisabled:"sorting is disabled",nextAsc:"activate to apply an ascending sort",nextDesc:"activate to apply a descending sort",nextNone:"activate to remove the sort"},regex:{templateContent:/\{content\}/g,templateIcon:/\{icon\}/g,templateName:/\{name\}/i,spaces:/\s+/g,nonWord:/\W/g,formElements:/(input|select|button|textarea)/i,chunk:/(^([+\-]?(?:\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,chunks:/(^\\0|\\0$)/,hex:/^0x[0-9a-f]+$/i,comma:/,/g,digitNonUS:/[\s|\.]/g,digitNegativeTest:/^\s*\([.\d]+\)/,digitNegativeReplace:/^\s*\(([.\d]+)\)/,digitTest:/^[\-+(]?\d+[)]?$/,digitReplace:/[,.'"\s]/g},string:{max:1,min:-1,emptymin:1,emptymax:-1,zero:0,none:0,"null":0,top:!0,bottom:!1},keyCodes:{enter:13},dates:{},instanceMethods:{},setup:function(e,o){if(e&&e.tHead&&0!==e.tBodies.length&&!0!==e.hasInitialized){var s="",a=t(e),n=t.metadata;e.hasInitialized=!1,e.isProcessing=!0,e.config=o,t.data(e,"tablesorter",o),o.debug&&(console[console.group?"group":"log"]("Initializing tablesorter v"+r.version),t.data(e,"startoveralltimer",new Date)),o.supportsDataObject=function(e){return e[0]=parseInt(e[0],10),e[0]>1||1===e[0]&&parseInt(e[1],10)>=4}(t.fn.jquery.split(".")),o.emptyTo=o.emptyTo.toLowerCase(),o.stringTo=o.stringTo.toLowerCase(),o.last={sortList:[],clickedIndex:-1},/tablesorter\-/.test(a.attr("class"))||(s=""!==o.theme?" tablesorter-"+o.theme:""),o.namespace?o.namespace="."+o.namespace.replace(r.regex.nonWord,""):o.namespace=".tablesorter"+Math.random().toString(16).slice(2),o.table=e,o.$table=a.addClass(r.css.table+" "+o.tableClass+s+" "+o.namespace.slice(1)).attr("role","grid"),o.$headers=a.find(o.selectorHeaders),o.$table.children().children("tr").attr("role","row"),o.$tbodies=a.children("tbody:not(."+o.cssInfoBlock+")").attr({"aria-live":"polite","aria-relevant":"all"}),o.$table.children("caption").length&&((s=o.$table.children("caption")[0]).id||(s.id=o.namespace.slice(1)+"caption"),o.$table.attr("aria-labelledby",s.id)),o.widgetInit={},o.textExtraction=o.$table.attr("data-text-extraction")||o.textExtraction||"basic",r.buildHeaders(o),r.fixColumnWidth(e),r.addWidgetFromClass(e),r.applyWidgetOptions(e),r.setupParsers(o),o.totalRows=0,r.validateOptions(o),o.delayInit||r.buildCache(o),r.bindEvents(e,o.$headers,!0),r.bindMethods(o),o.supportsDataObject&&void 0!==a.data().sortlist?o.sortList=a.data().sortlist:n&&a.metadata()&&a.metadata().sortlist&&(o.sortList=a.metadata().sortlist),r.applyWidget(e,!0),o.sortList.length>0?r.sortOn(o,o.sortList,{},!o.initWidgets):(r.setHeadersCss(o),o.initWidgets&&r.applyWidget(e,!1)),o.showProcessing&&a.unbind("sortBegin"+o.namespace+" sortEnd"+o.namespace).bind("sortBegin"+o.namespace+" sortEnd"+o.namespace,function(t){clearTimeout(o.timerProcessing),r.isProcessing(e),"sortBegin"===t.type&&(o.timerProcessing=setTimeout(function(){r.isProcessing(e,!0)},500))}),e.hasInitialized=!0,e.isProcessing=!1,o.debug&&(console.log("Overall initialization time:"+r.benchmark(t.data(e,"startoveralltimer"))),o.debug&&console.groupEnd&&console.groupEnd()),a.triggerHandler("tablesorter-initialized",e),"function"==typeof o.initialized&&o.initialized(e)}else o.debug&&(e.hasInitialized?console.warn("Stopping initialization. Tablesorter has already been initialized"):console.error("Stopping initialization! No table, thead or tbody",e))},bindMethods:function(e){var o=e.$table,s=e.namespace,a="sortReset update updateRows updateAll updateHeaders addRows updateCell updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ".split(" ").join(s+" ");o.unbind(a.replace(r.regex.spaces," ")).bind("sortReset"+s,function(e,t){e.stopPropagation(),r.sortReset(this.config,function(e){e.isApplyingWidgets?setTimeout(function(){r.applyWidget(e,"",t)},100):r.applyWidget(e,"",t)})}).bind("updateAll"+s,function(e,t,o){e.stopPropagation(),r.updateAll(this.config,t,o)}).bind("update"+s+" updateRows"+s,function(e,t,o){e.stopPropagation(),r.update(this.config,t,o)}).bind("updateHeaders"+s,function(e,t){e.stopPropagation(),r.updateHeaders(this.config,t)}).bind("updateCell"+s,function(e,t,o,s){e.stopPropagation(),r.updateCell(this.config,t,o,s)}).bind("addRows"+s,function(e,t,o,s){e.stopPropagation(),r.addRows(this.config,t,o,s)}).bind("updateComplete"+s,function(){this.isUpdating=!1}).bind("sorton"+s,function(e,t,o,s){e.stopPropagation(),r.sortOn(this.config,t,o,s)}).bind("appendCache"+s,function(e,o,s){e.stopPropagation(),r.appendCache(this.config,s),t.isFunction(o)&&o(this)}).bind("updateCache"+s,function(e,t,o){e.stopPropagation(),r.updateCache(this.config,t,o)}).bind("applyWidgetId"+s,function(e,t){e.stopPropagation(),r.applyWidgetId(this,t)}).bind("applyWidgets"+s,function(e,t){e.stopPropagation(),r.applyWidget(this,!1,t)}).bind("refreshWidgets"+s,function(e,t,o){e.stopPropagation(),r.refreshWidgets(this,t,o)}).bind("removeWidget"+s,function(e,t,o){e.stopPropagation(),r.removeWidget(this,t,o)}).bind("destroy"+s,function(e,t,o){e.stopPropagation(),r.destroy(this,t,o)}).bind("resetToLoadState"+s,function(o){o.stopPropagation(),r.removeWidget(this,!0,!1);var s=t.extend(!0,{},e.originalSettings);(e=t.extend(!0,{},r.defaults,s)).originalSettings=s,this.hasInitialized=!1,r.setup(this,e)})},bindEvents:function(e,o,s){var a,n=(e=t(e)[0]).config,i=n.namespace,l=null;!0!==s&&(o.addClass(i.slice(1)+"_extra_headers"),(a=r.getClosest(o,"table")).length&&"TABLE"===a[0].nodeName&&a[0]!==e&&t(a[0]).addClass(i.slice(1)+"_extra_table")),a=(n.pointerDown+" "+n.pointerUp+" "+n.pointerClick+" sort keyup ").replace(r.regex.spaces," ").split(" ").join(i+" "),o.find(n.selectorSort).add(o.filter(n.selectorSort)).unbind(a).bind(a,function(e,s){var a,i,d,c=t(e.target),g=" "+e.type+" ";if(!(1!==(e.which||e.button)&&!g.match(" "+n.pointerClick+" | sort | keyup ")||" keyup "===g&&e.which!==r.keyCodes.enter||g.match(" "+n.pointerClick+" ")&&void 0!==e.which||g.match(" "+n.pointerUp+" ")&&l!==e.target&&!0!==s)){if(g.match(" "+n.pointerDown+" "))return l=e.target,void("1"===(d=c.jquery.split("."))[0]&&d[1]<4&&e.preventDefault());if(l=null,r.regex.formElements.test(e.target.nodeName)||c.hasClass(n.cssNoSort)||c.parents("."+n.cssNoSort).length>0||c.parents("button").length>0)return!n.cancelSelection;n.delayInit&&r.isEmptyObject(n.cache)&&r.buildCache(n),a=r.getClosest(t(this),"."+r.css.header),d=o.index(a),n.last.clickedIndex=d<0?a.attr("data-column"):d,(i=n.$headers[n.last.clickedIndex])&&!i.sortDisabled&&r.initSort(n,i,e)}}),n.cancelSelection&&o.attr("unselectable","on").bind("selectstart",!1).css({"user-select":"none",MozUserSelect:"none"})},buildHeaders:function(e){var o,s,a,n;for(e.headerList=[],e.headerContent=[],e.sortVars=[],e.debug&&(a=new Date),e.columns=r.computeColumnIndex(e.$table.children("thead, tfoot").children("tr")),s=e.cssIcon?'<i class="'+(e.cssIcon===r.css.icon?r.css.icon:e.cssIcon+" "+r.css.icon)+'"></i>':"",e.$headers=t(t.map(e.$table.find(e.selectorHeaders),function(o,a){var n,i,l,d,c,g=t(o);if(!r.getClosest(g,"tr").hasClass(e.cssIgnoreRow))return/(th|td)/i.test(o.nodeName)||(c=r.getClosest(g,"th, td"),g.attr("data-column",c.attr("data-column"))),n=r.getColumnData(e.table,e.headers,a,!0),e.headerContent[a]=g.html(),""===e.headerTemplate||g.find("."+r.css.headerIn).length||(d=e.headerTemplate.replace(r.regex.templateContent,g.html()).replace(r.regex.templateIcon,g.find("."+r.css.icon).length?"":s),e.onRenderTemplate&&(i=e.onRenderTemplate.apply(g,[a,d]))&&"string"==typeof i&&(d=i),g.html('<div class="'+r.css.headerIn+'">'+d+"</div>")),e.onRenderHeader&&e.onRenderHeader.apply(g,[a,e,e.$table]),l=parseInt(g.attr("data-column"),10),o.column=l,c=r.getOrder(r.getData(g,n,"sortInitialOrder")||e.sortInitialOrder),e.sortVars[l]={count:-1,order:c?e.sortReset?[1,0,2]:[1,0]:e.sortReset?[0,1,2]:[0,1],lockedOrder:!1},void 0!==(c=r.getData(g,n,"lockedOrder")||!1)&&!1!==c&&(e.sortVars[l].lockedOrder=!0,e.sortVars[l].order=r.getOrder(c)?[1,1]:[0,0]),e.headerList[a]=o,g.addClass(r.css.header+" "+e.cssHeader),r.getClosest(g,"tr").addClass(r.css.headerRow+" "+e.cssHeaderRow).attr("role","row"),e.tabIndex&&g.attr("tabindex",0),o})),e.$headerIndexed=[],n=0;n<e.columns;n++)r.isEmptyObject(e.sortVars[n])&&(e.sortVars[n]={}),o=e.$headers.filter('[data-column="'+n+'"]'),e.$headerIndexed[n]=o.length?o.not(".sorter-false").length?o.not(".sorter-false").filter(":last"):o.filter(":last"):t();e.$table.find(e.selectorHeaders).attr({scope:"col",role:"columnheader"}),r.updateHeader(e),e.debug&&(console.log("Built headers:"+r.benchmark(a)),console.log(e.$headers))},addInstanceMethods:function(e){t.extend(r.instanceMethods,e)},setupParsers:function(e,t){var o,s,a,n,i,l,d,c,g,p,u,f,h,m,b=e.table,y=0,w={};if(e.$tbodies=e.$table.children("tbody:not(."+e.cssInfoBlock+")"),h=void 0===t?e.$tbodies:t,0===(m=h.length))return e.debug?console.warn("Warning: *Empty table!* Not building a parser cache"):"";for(e.debug&&(f=new Date,console[console.group?"group":"log"]("Detecting parsers for each column")),s={extractors:[],parsers:[]};y<m;){if((o=h[y].rows).length)for(i=0,n=e.columns,l=0;l<n;l++){if((d=e.$headerIndexed[i])&&d.length&&(c=r.getColumnData(b,e.headers,i),u=r.getParserById(r.getData(d,c,"extractor")),p=r.getParserById(r.getData(d,c,"sorter")),g="false"===r.getData(d,c,"parser"),e.empties[i]=(r.getData(d,c,"empty")||e.emptyTo||(e.emptyToBottom?"bottom":"top")).toLowerCase(),e.strings[i]=(r.getData(d,c,"string")||e.stringTo||"max").toLowerCase(),g&&(p=r.getParserById("no-parser")),u||(u=!1),p||(p=r.detectParserForColumn(e,o,-1,i)),e.debug&&(w["("+i+") "+d.text()]={parser:p.id,extractor:u?u.id:"none",string:e.strings[i],empty:e.empties[i]}),s.parsers[i]=p,s.extractors[i]=u,(a=d[0].colSpan-1)>0))for(i+=a,n+=a;a+1>0;)s.parsers[i-a]=p,s.extractors[i-a]=u,a--;i++}y+=s.parsers.length?m:1}e.debug&&(r.isEmptyObject(w)?console.warn(" No parsers detected!"):console[console.table?"table":"log"](w),console.log("Completed detecting parsers"+r.benchmark(f)),console.groupEnd&&console.groupEnd()),e.parsers=s.parsers,e.extractors=s.extractors},addParser:function(e){var t,o=r.parsers.length,s=!0;for(t=0;t<o;t++)r.parsers[t].id.toLowerCase()===e.id.toLowerCase()&&(s=!1);s&&(r.parsers[r.parsers.length]=e)},getParserById:function(e){if("false"==e)return!1;var t,o=r.parsers.length;for(t=0;t<o;t++)if(r.parsers[t].id.toLowerCase()===e.toString().toLowerCase())return r.parsers[t];return!1},detectParserForColumn:function(e,o,s,a){for(var n,i,l,d=r.parsers.length,c=!1,g="",p=!0;""===g&&p;)(l=o[++s])&&s<50?l.className.indexOf(r.cssIgnoreRow)<0&&(c=o[s].cells[a],g=r.getElementText(e,c,a),i=t(c),e.debug&&console.log("Checking if value was empty on row "+s+", column: "+a+': "'+g+'"')):p=!1;for(;--d>=0;)if((n=r.parsers[d])&&"text"!==n.id&&n.is&&n.is(g,e.table,c,i))return n;return r.getParserById("text")},getElementText:function(e,o,s){if(!o)return"";var a,n=e.textExtraction||"",i=o.jquery?o:t(o);return"string"==typeof n?"basic"===n&&void 0!==(a=i.attr(e.textAttribute))?t.trim(a):t.trim(o.textContent||i.text()):"function"==typeof n?t.trim(n(i[0],e.table,s)):"function"==typeof(a=r.getColumnData(e.table,n,s))?t.trim(a(i[0],e.table,s)):t.trim(i[0].textContent||i.text())},getParsedText:function(e,t,o,s){void 0===s&&(s=r.getElementText(e,t,o));var a=""+s,n=e.parsers[o],i=e.extractors[o];return n&&(i&&"function"==typeof i.format&&(s=i.format(s,e.table,t,o)),a="no-parser"===n.id?"":n.format(""+s,e.table,t,o),e.ignoreCase&&"string"==typeof a&&(a=a.toLowerCase())),a},buildCache:function(e,o,s){var a,n,i,l,d,c,g,p,u,f,h,m,b,y,w,x,v,C,$,I,D,R,T=e.table,L=e.parsers;if(e.$tbodies=e.$table.children("tbody:not(."+e.cssInfoBlock+")"),g=void 0===s?e.$tbodies:s,e.cache={},e.totalRows=0,!L)return e.debug?console.warn("Warning: *Empty table!* Not building a cache"):"";for(e.debug&&(m=new Date),e.showProcessing&&r.isProcessing(T,!0),c=0;c<g.length;c++){for(x=[],a=e.cache[c]={normalized:[]},b=g[c]&&g[c].rows.length||0,l=0;l<b;++l)if(y={child:[],raw:[]},p=t(g[c].rows[l]),u=[],!p.hasClass(e.selectorRemove.slice(1)))if(p.hasClass(e.cssChildRow)&&0!==l)for(D=a.normalized.length-1,(w=a.normalized[D][e.columns]).$row=w.$row.add(p),p.prev().hasClass(e.cssChildRow)||p.prev().addClass(r.css.cssHasChild),f=p.children("th, td"),D=w.child.length,w.child[D]=[],C=0,I=e.columns,d=0;d<I;d++)(h=f[d])&&(w.child[D][d]=r.getParsedText(e,h,d),(v=f[d].colSpan-1)>0&&(C+=v,I+=v)),C++;else{for(y.$row=p,y.order=l,C=0,I=e.columns,d=0;d<I;++d){if((h=p[0].cells[d])&&C<e.columns&&(!($=void 0!==L[C])&&e.debug&&console.warn("No parser found for row: "+l+", column: "+d+'; cell containing: "'+t(h).text()+'"; does it have a header?'),n=r.getElementText(e,h,C),y.raw[C]=n,i=r.getParsedText(e,h,C,n),u[C]=i,$&&"numeric"===(L[C].type||"").toLowerCase()&&(x[C]=Math.max(Math.abs(i)||0,x[C]||0)),(v=h.colSpan-1)>0)){for(R=0;R<=v;)i=e.duplicateSpan||0===R?n:"string"!=typeof e.textExtraction?r.getElementText(e,h,C+R)||"":"",y.raw[C+R]=i,u[C+R]=i,R++;C+=v,I+=v}C++}u[e.columns]=y,a.normalized[a.normalized.length]=u}a.colMax=x,e.totalRows+=a.normalized.length}if(e.showProcessing&&r.isProcessing(T),e.debug){for(D=Math.min(5,e.cache[0].normalized.length),console[console.group?"group":"log"]("Building cache for "+e.totalRows+" rows (showing "+D+" rows in log) and "+e.columns+" columns"+r.benchmark(m)),n={},d=0;d<e.columns;d++)for(C=0;C<D;C++)n["row: "+C]||(n["row: "+C]={}),n["row: "+C][e.$headerIndexed[d].text()]=e.cache[0].normalized[C][d];console[console.table?"table":"log"](n),console.groupEnd&&console.groupEnd()}t.isFunction(o)&&o(T)},getColumnText:function(e,o,s,a){var n,i,l,d,c,g,p,u,f,h,m="function"==typeof s,b="all"===o,y={raw:[],parsed:[],$cell:[]},w=(e=t(e)[0]).config;if(!r.isEmptyObject(w)){for(c=w.$tbodies.length,n=0;n<c;n++)for(g=(l=w.cache[n].normalized).length,i=0;i<g;i++)d=l[i],a&&!d[w.columns].$row.is(a)||(h=!0,u=b?d.slice(0,w.columns):d[o],d=d[w.columns],p=b?d.raw:d.raw[o],f=b?d.$row.children():d.$row.children().eq(o),m&&(h=s({tbodyIndex:n,rowIndex:i,parsed:u,raw:p,$row:d.$row,$cell:f})),!1!==h&&(y.parsed[y.parsed.length]=u,y.raw[y.raw.length]=p,y.$cell[y.$cell.length]=f));return y}w.debug&&console.warn("No cache found - aborting getColumnText function!")},setHeadersCss:function(e){var o,s,a=e.sortList,n=a.length,i=r.css.sortNone+" "+e.cssNone,l=[r.css.sortAsc+" "+e.cssAsc,r.css.sortDesc+" "+e.cssDesc],d=[e.cssIconAsc,e.cssIconDesc,e.cssIconNone],c=["ascending","descending"],g=function(e,t){e.removeClass(i).addClass(l[t]).attr("aria-sort",c[t]).find("."+r.css.icon).removeClass(d[2]).addClass(d[t])},p=e.$table.find("tfoot tr").children("td, th").add(t(e.namespace+"_extra_headers")).removeClass(l.join(" ")),u=e.$headers.add(t("thead "+e.namespace+"_extra_headers")).removeClass(l.join(" ")).addClass(i).attr("aria-sort","none").find("."+r.css.icon).removeClass(d.join(" ")).end();for(u.not(".sorter-false").find("."+r.css.icon).addClass(d[2]),e.cssIconDisabled&&u.filter(".sorter-false").find("."+r.css.icon).addClass(e.cssIconDisabled),o=0;o<n;o++)if(2!==a[o][1]){if(u=e.$headers.filter(function(t){for(var o=!0,s=e.$headers.eq(t),a=parseInt(s.attr("data-column"),10),n=a+r.getClosest(s,"th, td")[0].colSpan;a<n;a++)o=!!o&&(o||r.isValueInArray(a,e.sortList)>-1);return o}),(u=u.not(".sorter-false").filter('[data-column="'+a[o][0]+'"]'+(1===n?":last":""))).length)for(s=0;s<u.length;s++)u[s].sortDisabled||g(u.eq(s),a[o][1]);p.length&&g(p.filter('[data-column="'+a[o][0]+'"]'),a[o][1])}for(n=e.$headers.length,o=0;o<n;o++)r.setColumnAriaLabel(e,e.$headers.eq(o))},getClosest:function(e,r){return t.fn.closest?e.closest(r):e.is(r)?e:e.parents(r).filter(":first")},setColumnAriaLabel:function(e,o,s){if(o.length){var a=parseInt(o.attr("data-column"),10),n=e.sortVars[a],i=o.hasClass(r.css.sortAsc)?"sortAsc":o.hasClass(r.css.sortDesc)?"sortDesc":"sortNone",l=t.trim(o.text())+": "+r.language[i];o.hasClass("sorter-false")||!1===s?l+=r.language.sortDisabled:(i=(n.count+1)%n.order.length,s=n.order[i],l+=r.language[0===s?"nextAsc":1===s?"nextDesc":"nextNone"]),o.attr("aria-label",l)}},updateHeader:function(e){var t,o,s,a,n=e.table,i=e.$headers.length;for(t=0;t<i;t++)s=e.$headers.eq(t),a=r.getColumnData(n,e.headers,t,!0),o="false"===r.getData(s,a,"sorter")||"false"===r.getData(s,a,"parser"),r.setColumnSort(e,s,o)},setColumnSort:function(e,t,r){var o=e.table.id;t[0].sortDisabled=r,t[r?"addClass":"removeClass"]("sorter-false").attr("aria-disabled",""+r),e.tabIndex&&(r?t.removeAttr("tabindex"):t.attr("tabindex","0")),o&&(r?t.removeAttr("aria-controls"):t.attr("aria-controls",o))},updateHeaderSortCount:function(e,o){var s,a,n,i,l,d,c,g,p=o||e.sortList,u=p.length;for(e.sortList=[],i=0;i<u;i++)if(c=p[i],(s=parseInt(c[0],10))<e.columns){switch(e.sortVars[s].order||(g=r.getOrder(e.sortInitialOrder)?e.sortReset?[1,0,2]:[1,0]:e.sortReset?[0,1,2]:[0,1],e.sortVars[s].order=g,e.sortVars[s].count=0),g=e.sortVars[s].order,a=(""+c[1]).match(/^(1|d|s|o|n)/),a=a?a[0]:""){case"1":case"d":a=1;break;case"s":a=l||0;break;case"o":a=0===(d=g[(l||0)%g.length])?1:1===d?0:2;break;case"n":a=g[++e.sortVars[s].count%g.length];break;default:a=0}l=0===i?a:l,n=[s,parseInt(a,10)||0],e.sortList[e.sortList.length]=n,a=t.inArray(n[1],g),e.sortVars[s].count=a>=0?a:n[1]%g.length}},updateAll:function(e,t,o){var s=e.table;s.isUpdating=!0,r.refreshWidgets(s,!0,!0),r.buildHeaders(e),r.bindEvents(s,e.$headers,!0),r.bindMethods(e),r.commonUpdate(e,t,o)},update:function(e,t,o){e.table.isUpdating=!0,r.updateHeader(e),r.commonUpdate(e,t,o)},updateHeaders:function(e,t){e.table.isUpdating=!0,r.buildHeaders(e),r.bindEvents(e.table,e.$headers,!0),r.resortComplete(e,t)},updateCell:function(e,o,s,a){if(t(o).closest("tr").hasClass(e.cssChildRow))console.warn('Tablesorter Warning! "updateCell" for child row content has been disabled, use "update" instead');else{if(r.isEmptyObject(e.cache))return r.updateHeader(e),void r.commonUpdate(e,s,a);e.table.isUpdating=!0,e.$table.find(e.selectorRemove).remove();var n,i,l,d,c,g,p=e.$tbodies,u=t(o),f=p.index(r.getClosest(u,"tbody")),h=e.cache[f],m=r.getClosest(u,"tr");if(o=u[0],p.length&&f>=0){if(l=p.eq(f).find("tr").not("."+e.cssChildRow).index(m),c=h.normalized[l],(g=m[0].cells.length)!==e.columns)for(d=0,n=!1,i=0;i<g;i++)n||m[0].cells[i]===o?n=!0:d+=m[0].cells[i].colSpan;else d=u.index();n=r.getElementText(e,o,d),c[e.columns].raw[d]=n,n=r.getParsedText(e,o,d,n),c[d]=n,"numeric"===(e.parsers[d].type||"").toLowerCase()&&(h.colMax[d]=Math.max(Math.abs(n)||0,h.colMax[d]||0)),!1!==(n="undefined"!==s?s:e.resort)?r.checkResort(e,n,a):r.resortComplete(e,a)}else e.debug&&console.error("updateCell aborted, tbody missing or not within the indicated table"),e.table.isUpdating=!1}},addRows:function(o,s,a,n){var i,l,d,c,g,p,u,f,h,m,b,y,w,x="string"==typeof s&&1===o.$tbodies.length&&/<tr/.test(s||""),v=o.table;if(x)s=t(s),o.$tbodies.append(s);else if(!(s&&s instanceof e&&r.getClosest(s,"table")[0]===o.table))return o.debug&&console.error("addRows method requires (1) a jQuery selector reference to rows that have already been added to the table, or (2) row HTML string to be added to a table with only one tbody"),!1;if(v.isUpdating=!0,r.isEmptyObject(o.cache))r.updateHeader(o),r.commonUpdate(o,a,n);else{for(g=s.filter("tr").attr("role","row").length,d=o.$tbodies.index(s.parents("tbody").filter(":first")),o.parsers&&o.parsers.length||r.setupParsers(o),c=0;c<g;c++){for(h=0,u=s[c].cells.length,f=o.cache[d].normalized.length,b=[],m={child:[],raw:[],$row:s.eq(c),order:f},p=0;p<u;p++)y=s[c].cells[p],i=r.getElementText(o,y,h),m.raw[h]=i,l=r.getParsedText(o,y,h,i),b[h]=l,"numeric"===(o.parsers[h].type||"").toLowerCase()&&(o.cache[d].colMax[h]=Math.max(Math.abs(l)||0,o.cache[d].colMax[h]||0)),(w=y.colSpan-1)>0&&(h+=w),h++;b[o.columns]=m,o.cache[d].normalized[f]=b}r.checkResort(o,a,n)}},updateCache:function(e,t,o){e.parsers&&e.parsers.length||r.setupParsers(e,o),r.buildCache(e,t,o)},appendCache:function(e,t){var o,s,a,n,i,l,d,c=e.table,g=e.widgetOptions,p=e.$tbodies,u=[],f=e.cache;if(r.isEmptyObject(f))return e.appender?e.appender(c,u):c.isUpdating?e.$table.triggerHandler("updateComplete",c):"";for(e.debug&&(d=new Date),l=0;l<p.length;l++)if((a=p.eq(l)).length){for(n=r.processTbody(c,a,!0),s=(o=f[l].normalized).length,i=0;i<s;i++)u[u.length]=o[i][e.columns].$row,e.appender&&(!e.pager||e.pager.removeRows&&g.pager_removeRows||e.pager.ajax)||n.append(o[i][e.columns].$row);r.processTbody(c,n,!1)}e.appender&&e.appender(c,u),e.debug&&console.log("Rebuilt table"+r.benchmark(d)),t||e.appender||r.applyWidget(c),c.isUpdating&&e.$table.triggerHandler("updateComplete",c)},commonUpdate:function(e,t,o){e.$table.find(e.selectorRemove).remove(),r.setupParsers(e),r.buildCache(e),r.checkResort(e,t,o)},initSort:function(e,o,s){if(e.table.isUpdating)return setTimeout(function(){r.initSort(e,o,s)},50);var a,n,i,l,d,c,g,p=!s[e.sortMultiSortKey],u=e.table,f=e.$headers.length,h=r.getClosest(t(o),"th, td"),m=parseInt(h.attr("data-column"),10),b=e.sortVars[m].order;if(h=h[0],e.$table.triggerHandler("sortStart",u),c=(e.sortVars[m].count+1)%b.length,e.sortVars[m].count=s[e.sortResetKey]?2:c,e.sortRestart)for(i=0;i<f;i++)g=e.$headers.eq(i),m!==(c=parseInt(g.attr("data-column"),10))&&(p||g.hasClass(r.css.sortNone))&&(e.sortVars[c].count=-1);if(p){if(e.sortList=[],e.last.sortList=[],null!==e.sortForce)for(a=e.sortForce,n=0;n<a.length;n++)a[n][0]!==m&&(e.sortList[e.sortList.length]=a[n]);if((l=b[e.sortVars[m].count])<2&&(e.sortList[e.sortList.length]=[m,l],h.colSpan>1))for(n=1;n<h.colSpan;n++)e.sortList[e.sortList.length]=[m+n,l],e.sortVars[m+n].count=t.inArray(l,b)}else if(e.sortList=t.extend([],e.last.sortList),r.isValueInArray(m,e.sortList)>=0)for(n=0;n<e.sortList.length;n++)(c=e.sortList[n])[0]===m&&(c[1]=b[e.sortVars[m].count],2===c[1]&&(e.sortList.splice(n,1),e.sortVars[m].count=-1));else if((l=b[e.sortVars[m].count])<2&&(e.sortList[e.sortList.length]=[m,l],h.colSpan>1))for(n=1;n<h.colSpan;n++)e.sortList[e.sortList.length]=[m+n,l],e.sortVars[m+n].count=t.inArray(l,b);if(e.last.sortList=t.extend([],e.sortList),e.sortList.length&&e.sortAppend&&(a=t.isArray(e.sortAppend)?e.sortAppend:e.sortAppend[e.sortList[0][0]],!r.isEmptyObject(a)))for(n=0;n<a.length;n++)if(a[n][0]!==m&&r.isValueInArray(a[n][0],e.sortList)<0){if(l=a[n][1],d=(""+l).match(/^(a|d|s|o|n)/))switch(c=e.sortList[0][1],d[0]){case"d":l=1;break;case"s":l=c;break;case"o":l=0===c?1:0;break;case"n":l=(c+1)%b.length;break;default:l=0}e.sortList[e.sortList.length]=[a[n][0],l]}e.$table.triggerHandler("sortBegin",u),setTimeout(function(){r.setHeadersCss(e),r.multisort(e),r.appendCache(e),e.$table.triggerHandler("sortBeforeEnd",u),e.$table.triggerHandler("sortEnd",u)},1)},multisort:function(e){var t,o,s,a,n=e.table,i=[],l=0,d=e.textSorter||"",c=e.sortList,g=c.length,p=e.$tbodies.length;if(!e.serverSideSorting&&!r.isEmptyObject(e.cache)){if(e.debug&&(o=new Date),"object"==typeof d)for(s=e.columns;s--;)"function"==typeof(a=r.getColumnData(n,d,s))&&(i[s]=a);for(t=0;t<p;t++)s=e.cache[t].colMax,e.cache[t].normalized.sort(function(t,o){var a,p,u,f,h,m,b;for(a=0;a<g;a++){if(u=c[a][0],f=c[a][1],l=0===f,e.sortStable&&t[u]===o[u]&&1===g)return t[e.columns].order-o[e.columns].order;if(p=/n/i.test(r.getSortType(e.parsers,u)),p&&e.strings[u]?(p="boolean"==typeof r.string[e.strings[u]]?(l?1:-1)*(r.string[e.strings[u]]?-1:1):e.strings[u]?r.string[e.strings[u]]||0:0,h=e.numberSorter?e.numberSorter(t[u],o[u],l,s[u],n):r["sortNumeric"+(l?"Asc":"Desc")](t[u],o[u],p,s[u],u,e)):(m=l?t:o,b=l?o:t,h="function"==typeof d?d(m[u],b[u],l,u,n):"function"==typeof i[u]?i[u](m[u],b[u],l,u,n):r["sortNatural"+(l?"Asc":"Desc")](t[u],o[u],u,e)),h)return h}return t[e.columns].order-o[e.columns].order});e.debug&&console.log("Applying sort "+c.toString()+r.benchmark(o))}},resortComplete:function(e,r){e.table.isUpdating&&e.$table.triggerHandler("updateComplete",e.table),t.isFunction(r)&&r(e.table)},checkResort:function(e,o,s){var a=t.isArray(o)?o:e.sortList;!1===(void 0===o?e.resort:o)||e.serverSideSorting||e.table.isProcessing?(r.resortComplete(e,s),r.applyWidget(e.table,!1)):a.length?r.sortOn(e,a,function(){r.resortComplete(e,s)},!0):r.sortReset(e,function(){r.resortComplete(e,s),r.applyWidget(e.table,!1)})},sortOn:function(e,o,s,a){var n=e.table;e.$table.triggerHandler("sortStart",n),r.updateHeaderSortCount(e,o),r.setHeadersCss(e),e.delayInit&&r.isEmptyObject(e.cache)&&r.buildCache(e),e.$table.triggerHandler("sortBegin",n),r.multisort(e),r.appendCache(e,a),e.$table.triggerHandler("sortBeforeEnd",n),e.$table.triggerHandler("sortEnd",n),r.applyWidget(n),t.isFunction(s)&&s(n)},sortReset:function(e,o){e.sortList=[],r.setHeadersCss(e),r.multisort(e),r.appendCache(e);var s;for(s=0;s<e.columns;s++)e.sortVars[s].count=-1;t.isFunction(o)&&o(e.table)},getSortType:function(e,t){return e&&e[t]?e[t].type||"":""},getOrder:function(e){return/^d/i.test(e)||1===e},sortNatural:function(e,t){if(e===t)return 0;e=e.toString(),t=t.toString();var o,s,a,n,i,l,d=r.regex;if(d.hex.test(t)){if(o=parseInt((e||"").match(d.hex),16),s=parseInt((t||"").match(d.hex),16),o<s)return-1;if(o>s)return 1}for(o=(e||"").replace(d.chunk,"\\0$1\\0").replace(d.chunks,"").split("\\0"),s=(t||"").replace(d.chunk,"\\0$1\\0").replace(d.chunks,"").split("\\0"),l=Math.max(o.length,s.length),i=0;i<l;i++){if(a=isNaN(o[i])?o[i]||0:parseFloat(o[i])||0,n=isNaN(s[i])?s[i]||0:parseFloat(s[i])||0,isNaN(a)!==isNaN(n))return isNaN(a)?1:-1;if(typeof a!=typeof n&&(a+="",n+=""),a<n)return-1;if(a>n)return 1}return 0},sortNaturalAsc:function(e,t,o,s){if(e===t)return 0;var a=r.string[s.empties[o]||s.emptyTo];return""===e&&0!==a?"boolean"==typeof a?a?-1:1:-a||-1:""===t&&0!==a?"boolean"==typeof a?a?1:-1:a||1:r.sortNatural(e,t)},sortNaturalDesc:function(e,t,o,s){if(e===t)return 0;var a=r.string[s.empties[o]||s.emptyTo];return""===e&&0!==a?"boolean"==typeof a?a?-1:1:a||1:""===t&&0!==a?"boolean"==typeof a?a?1:-1:-a||-1:r.sortNatural(t,e)},sortText:function(e,t){return e>t?1:e<t?-1:0},getTextValue:function(e,t,r){if(r){var o,s=e?e.length:0,a=r+t;for(o=0;o<s;o++)a+=e.charCodeAt(o);return t*a}return 0},sortNumericAsc:function(e,t,o,s,a,n){if(e===t)return 0;var i=r.string[n.empties[a]||n.emptyTo];return""===e&&0!==i?"boolean"==typeof i?i?-1:1:-i||-1:""===t&&0!==i?"boolean"==typeof i?i?1:-1:i||1:(isNaN(e)&&(e=r.getTextValue(e,o,s)),isNaN(t)&&(t=r.getTextValue(t,o,s)),e-t)},sortNumericDesc:function(e,t,o,s,a,n){if(e===t)return 0;var i=r.string[n.empties[a]||n.emptyTo];return""===e&&0!==i?"boolean"==typeof i?i?-1:1:i||1:""===t&&0!==i?"boolean"==typeof i?i?1:-1:-i||-1:(isNaN(e)&&(e=r.getTextValue(e,o,s)),isNaN(t)&&(t=r.getTextValue(t,o,s)),t-e)},sortNumeric:function(e,t){return e-t},addWidget:function(e){e.id&&!r.isEmptyObject(r.getWidgetById(e.id))&&console.warn('"'+e.id+'" widget was loaded more than once!'),r.widgets[r.widgets.length]=e},hasWidget:function(e,r){return(e=t(e)).length&&e[0].config&&e[0].config.widgetInit[r]||!1},getWidgetById:function(e){var t,o,s=r.widgets.length;for(t=0;t<s;t++)if((o=r.widgets[t])&&o.id&&o.id.toLowerCase()===e.toLowerCase())return o},applyWidgetOptions:function(e){var o,s,a,n=e.config,i=n.widgets.length;if(i)for(o=0;o<i;o++)(s=r.getWidgetById(n.widgets[o]))&&s.options&&(a=t.extend(!0,{},s.options),n.widgetOptions=t.extend(!0,a,n.widgetOptions),t.extend(!0,r.defaults.widgetOptions,s.options))},addWidgetFromClass:function(e){var t,o,s=e.config,a="^"+s.widgetClass.replace(r.regex.templateName,"(\\S+)+")+"$",n=new RegExp(a,"g"),i=(e.className||"").split(r.regex.spaces);if(i.length)for(t=i.length,o=0;o<t;o++)i[o].match(n)&&(s.widgets[s.widgets.length]=i[o].replace(n,"$1"))},applyWidgetId:function(e,o,s){var a,n,i,l=(e=t(e)[0]).config,d=l.widgetOptions,c=r.getWidgetById(o);c&&(i=c.id,a=!1,t.inArray(i,l.widgets)<0&&(l.widgets[l.widgets.length]=i),l.debug&&(n=new Date),!s&&l.widgetInit[i]||(l.widgetInit[i]=!0,e.hasInitialized&&r.applyWidgetOptions(e),"function"==typeof c.init&&(a=!0,l.debug&&console[console.group?"group":"log"]("Initializing "+i+" widget"),c.init(e,c,l,d))),s||"function"!=typeof c.format||(a=!0,l.debug&&console[console.group?"group":"log"]("Updating "+i+" widget"),c.format(e,l,d,!1)),l.debug&&a&&(console.log("Completed "+(s?"initializing ":"applying ")+i+" widget"+r.benchmark(n)),console.groupEnd&&console.groupEnd()))},applyWidget:function(e,o,s){var a,n,i,l,d,c=(e=t(e)[0]).config,g=[];if(!1===o||!e.hasInitialized||!e.isApplyingWidgets&&!e.isUpdating){if(c.debug&&(d=new Date),r.addWidgetFromClass(e),clearTimeout(c.timerReady),c.widgets.length){for(e.isApplyingWidgets=!0,c.widgets=t.grep(c.widgets,function(e,r){return t.inArray(e,c.widgets)===r}),n=(i=c.widgets||[]).length,a=0;a<n;a++)(l=r.getWidgetById(i[a]))&&l.id?(l.priority||(l.priority=10),g[a]=l):c.debug&&console.warn('"'+i[a]+'" was enabled, but the widget code has not been loaded!');for(g.sort(function(e,t){return e.priority<t.priority?-1:e.priority===t.priority?0:1}),n=g.length,c.debug&&console[console.group?"group":"log"]("Start "+(o?"initializing":"applying")+" widgets"),a=0;a<n;a++)(l=g[a])&&l.id&&r.applyWidgetId(e,l.id,o);c.debug&&console.groupEnd&&console.groupEnd()}c.timerReady=setTimeout(function(){e.isApplyingWidgets=!1,t.data(e,"lastWidgetApplication",new Date),c.$table.triggerHandler("tablesorter-ready"),o||"function"!=typeof s||s(e),c.debug&&(l=c.widgets.length,console.log("Completed "+(!0===o?"initializing ":"applying ")+l+" widget"+(1!==l?"s":"")+r.benchmark(d)))},10)}},removeWidget:function(e,o,s){var a,n,i,l,d=(e=t(e)[0]).config;if(!0===o)for(o=[],l=r.widgets.length,i=0;i<l;i++)(n=r.widgets[i])&&n.id&&(o[o.length]=n.id);else o=(t.isArray(o)?o.join(","):o||"").toLowerCase().split(/[\s,]+/);for(l=o.length,a=0;a<l;a++)n=r.getWidgetById(o[a]),(i=t.inArray(o[a],d.widgets))>=0&&!0!==s&&d.widgets.splice(i,1),n&&n.remove&&(d.debug&&console.log((s?"Refreshing":"Removing")+' "'+o[a]+'" widget'),n.remove(e,d,d.widgetOptions,s),d.widgetInit[o[a]]=!1);d.$table.triggerHandler("widgetRemoveEnd",e)},refreshWidgets:function(e,o,s){var a,n,i=(e=t(e)[0]).config.widgets,l=r.widgets,d=l.length,c=[],g=function(e){t(e).triggerHandler("refreshComplete")};for(a=0;a<d;a++)(n=l[a])&&n.id&&(o||t.inArray(n.id,i)<0)&&(c[c.length]=n.id);r.removeWidget(e,c.join(","),!0),!0!==s?(r.applyWidget(e,o||!1,g),o&&r.applyWidget(e,!1,g)):g(e)},benchmark:function(e){return" ("+((new Date).getTime()-e.getTime())+" ms)"},log:function(){console.log(arguments)},isEmptyObject:function(e){for(var t in e)return!1;return!0},isValueInArray:function(e,t){var r,o=t&&t.length||0;for(r=0;r<o;r++)if(t[r][0]===e)return r;return-1},formatFloat:function(e,o){if("string"!=typeof e||""===e)return e;var s;return e=(o&&o.config?!1!==o.config.usNumberFormat:void 0===o||o)?e.replace(r.regex.comma,""):e.replace(r.regex.digitNonUS,"").replace(r.regex.comma,"."),r.regex.digitNegativeTest.test(e)&&(e=e.replace(r.regex.digitNegativeReplace,"-$1")),s=parseFloat(e),isNaN(s)?t.trim(e):s},isDigit:function(e){return isNaN(e)?r.regex.digitTest.test(e.toString().replace(r.regex.digitReplace,"")):""!==e},computeColumnIndex:function(e,o){var s,a,n,i,l,d,c,g,p,u,f=o&&o.columns||0,h=[],m=new Array(f);for(s=0;s<e.length;s++)for(d=e[s].cells,a=0;a<d.length;a++){for(c=s,g=(l=d[a]).rowSpan||1,p=l.colSpan||1,void 0===h[c]&&(h[c]=[]),n=0;n<h[c].length+1;n++)if(void 0===h[c][n]){u=n;break}for(f&&l.cellIndex===u||(l.setAttribute?l.setAttribute("data-column",u):t(l).attr("data-column",u)),n=c;n<c+g;n++)for(void 0===h[n]&&(h[n]=[]),m=h[n],i=u;i<u+p;i++)m[i]="x"}return r.checkColumnCount(e,h,m.length),m.length},checkColumnCount:function(e,t,r){var o,s,a=!0,n=[];for(o=0;o<t.length;o++)if(t[o]&&(s=t[o].length,t[o].length!==r)){a=!1;break}a||(e.each(function(e,t){var r=t.parentElement.nodeName;n.indexOf(r)<0&&n.push(r)}),console.error("Invalid or incorrect number of columns in the "+n.join(" or ")+"; expected "+r+", but found "+s+" columns"))},fixColumnWidth:function(e){var o,s,a,n,i,l=(e=t(e)[0]).config,d=l.$table.children("colgroup");if(d.length&&d.hasClass(r.css.colgroup)&&d.remove(),l.widthFixed&&0===l.$table.children("colgroup").length){for(d=t('<colgroup class="'+r.css.colgroup+'">'),o=l.$table.width(),n=(a=l.$tbodies.find("tr:first").children(":visible")).length,i=0;i<n;i++)s=parseInt(a.eq(i).width()/o*1e3,10)/10+"%",d.append(t("<col>").css("width",s));l.$table.prepend(d)}},getData:function(e,r,o){var s,a,n="",i=t(e);return i.length?(s=!!t.metadata&&i.metadata(),a=" "+(i.attr("class")||""),void 0!==i.data(o)||void 0!==i.data(o.toLowerCase())?n+=i.data(o)||i.data(o.toLowerCase()):s&&void 0!==s[o]?n+=s[o]:r&&void 0!==r[o]?n+=r[o]:" "!==a&&a.match(" "+o+"-")&&(n=a.match(new RegExp("\\s"+o+"-([\\w-]+)"))[1]||""),t.trim(n)):""},getColumnData:function(e,r,o,s,a){if("object"!=typeof r||null===r)return r;var n,i=(e=t(e)[0]).config,l=a||i.$headers,d=i.$headerIndexed&&i.$headerIndexed[o]||l.find('[data-column="'+o+'"]:last');if(void 0!==r[o])return s?r[o]:r[l.index(d)];for(n in r)if("string"==typeof n&&d.filter(n).add(d.find(n)).length)return r[n]},isProcessing:function(e,o,s){var a=(e=t(e))[0].config,n=s||e.find("."+r.css.header);o?(void 0!==s&&a.sortList.length>0&&(n=n.filter(function(){return!this.sortDisabled&&r.isValueInArray(parseFloat(t(this).attr("data-column")),a.sortList)>=0})),e.add(n).addClass(r.css.processing+" "+a.cssProcessing)):e.add(n).removeClass(r.css.processing+" "+a.cssProcessing)},processTbody:function(e,r,o){if(e=t(e)[0],o)return e.isProcessing=!0,r.before('<colgroup class="tablesorter-savemyplace"/>'),t.fn.detach?r.detach():r.remove();var s=t(e).find("colgroup.tablesorter-savemyplace");r.insertAfter(s),s.remove(),e.isProcessing=!1},clearTableBody:function(e){t(e)[0].config.$tbodies.children().detach()},characterEquivalents:{a:"áàâãäąå",A:"ÁÀÂÃÄĄÅ",c:"çćč",C:"ÇĆČ",e:"éèêëěę",E:"ÉÈÊËĚĘ",i:"íìİîïı",I:"ÍÌİÎÏ",o:"óòôõöō",O:"ÓÒÔÕÖŌ",ss:"ß",SS:"ẞ",u:"úùûüů",U:"ÚÙÛÜŮ"},replaceAccents:function(e){var t,o="[",s=r.characterEquivalents;if(!r.characterRegex){r.characterRegexArray={};for(t in s)"string"==typeof t&&(o+=s[t],r.characterRegexArray[t]=new RegExp("["+s[t]+"]","g"));r.characterRegex=new RegExp(o+"]")}if(r.characterRegex.test(e))for(t in s)"string"==typeof t&&(e=e.replace(r.characterRegexArray[t],t));return e},validateOptions:function(e){var o,s,a,n,i="headers sortForce sortList sortAppend widgets".split(" "),l=e.originalSettings;if(l){e.debug&&(n=new Date);for(o in l)if("undefined"===(a=typeof r.defaults[o]))console.warn('Tablesorter Warning! "table.config.'+o+'" option not recognized');else if("object"===a)for(s in l[o])a=r.defaults[o]&&typeof r.defaults[o][s],t.inArray(o,i)<0&&"undefined"===a&&console.warn('Tablesorter Warning! "table.config.'+o+"."+s+'" option not recognized');e.debug&&console.log("validate options time:"+r.benchmark(n))}},restoreHeaders:function(e){var o,s,a=t(e)[0].config,n=a.$table.find(a.selectorHeaders),i=n.length;for(o=0;o<i;o++)(s=n.eq(o)).find("."+r.css.headerIn).length&&s.html(a.headerContent[o])},destroy:function(e,o,s){if((e=t(e)[0]).hasInitialized){r.removeWidget(e,!0,!1);var a,n=t(e),i=e.config,l=i.debug,d=n.find("thead:first"),c=d.find("tr."+r.css.headerRow).removeClass(r.css.headerRow+" "+i.cssHeaderRow),g=n.find("tfoot:first > tr").children("th, td");!1===o&&t.inArray("uitheme",i.widgets)>=0&&(n.triggerHandler("applyWidgetId",["uitheme"]),n.triggerHandler("applyWidgetId",["zebra"])),d.find("tr").not(c).remove(),a="sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets removeWidget destroy mouseup mouseleave "+"keypress sortBegin sortEnd resetToLoadState ".split(" ").join(i.namespace+" "),n.removeData("tablesorter").unbind(a.replace(r.regex.spaces," ")),i.$headers.add(g).removeClass([r.css.header,i.cssHeader,i.cssAsc,i.cssDesc,r.css.sortAsc,r.css.sortDesc,r.css.sortNone].join(" ")).removeAttr("data-column").removeAttr("aria-label").attr("aria-disabled","true"),c.find(i.selectorSort).unbind("mousedown mouseup keypress ".split(" ").join(i.namespace+" ").replace(r.regex.spaces," ")),r.restoreHeaders(e),n.toggleClass(r.css.table+" "+i.tableClass+" tablesorter-"+i.theme,!1===o),n.removeClass(i.namespace.slice(1)),e.hasInitialized=!1,delete e.config.cache,"function"==typeof s&&s(e),l&&console.log("tablesorter has been removed")}}};t.fn.tablesorter=function(e){return this.each(function(){var o=this,s=t.extend(!0,{},r.defaults,e,r.instanceMethods);s.originalSettings=e,!o.hasInitialized&&r.buildTable&&"TABLE"!==this.nodeName?r.buildTable(o,s):r.setup(o,s)})},window.console&&window.console.log||(r.logs=[],console={},console.log=console.warn=console.error=console.table=function(){var e=arguments.length>1?arguments:arguments[0];r.logs[r.logs.length]={date:Date.now(),log:e}}),r.addParser({id:"no-parser",is:function(){return!1},format:function(){return""},type:"text"}),r.addParser({id:"text",is:function(){return!0},format:function(e,o){var s=o.config;return e&&(e=t.trim(s.ignoreCase?e.toLocaleLowerCase():e),e=s.sortLocaleCompare?r.replaceAccents(e):e),e},type:"text"}),r.regex.nondigit=/[^\w,. \-()]/g,r.addParser({id:"digit",is:function(e){return r.isDigit(e)},format:function(e,o){var s=r.formatFloat((e||"").replace(r.regex.nondigit,""),o);return e&&"number"==typeof s?s:e?t.trim(e&&o.config.ignoreCase?e.toLocaleLowerCase():e):e},type:"numeric"}),r.regex.currencyReplace=/[+\-,. ]/g,r.regex.currencyTest=/^\(?\d+[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]|[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+\)?$/,r.addParser({id:"currency",is:function(e){return e=(e||"").replace(r.regex.currencyReplace,""),r.regex.currencyTest.test(e)},format:function(e,o){var s=r.formatFloat((e||"").replace(r.regex.nondigit,""),o);return e&&"number"==typeof s?s:e?t.trim(e&&o.config.ignoreCase?e.toLocaleLowerCase():e):e},type:"numeric"}),r.regex.urlProtocolTest=/^(https?|ftp|file):\/\//,r.regex.urlProtocolReplace=/(https?|ftp|file):\/\/(www\.)?/,r.addParser({id:"url",is:function(e){return r.regex.urlProtocolTest.test(e)},format:function(e){return e?t.trim(e.replace(r.regex.urlProtocolReplace,"")):e},type:"text"}),r.regex.dash=/-/g,r.regex.isoDate=/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/,r.addParser({id:"isoDate",is:function(e){return r.regex.isoDate.test(e)},format:function(e,t){var o=e?new Date(e.replace(r.regex.dash,"/")):e;return o instanceof Date&&isFinite(o)?o.getTime():e},type:"numeric"}),r.regex.percent=/%/g,r.regex.percentTest=/(\d\s*?%|%\s*?\d)/,r.addParser({id:"percent",is:function(e){return r.regex.percentTest.test(e)&&e.length<15},format:function(e,t){return e?r.formatFloat(e.replace(r.regex.percent,""),t):e},type:"numeric"}),r.addParser({id:"image",is:function(e,t,r,o){return o.find("img").length>0},format:function(e,r,o){return t(o).find("img").attr(r.config.imgAttr||"alt")||e},parsed:!0,type:"text"}),r.regex.dateReplace=/(\S)([AP]M)$/i,r.regex.usLongDateTest1=/^[A-Z]{3,10}\.?\s+\d{1,2},?\s+(\d{4})(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?$/i,r.regex.usLongDateTest2=/^\d{1,2}\s+[A-Z]{3,10}\s+\d{4}/i,r.addParser({id:"usLongDate",is:function(e){return r.regex.usLongDateTest1.test(e)||r.regex.usLongDateTest2.test(e)},format:function(e,t){var o=e?new Date(e.replace(r.regex.dateReplace,"$1 $2")):e;return o instanceof Date&&isFinite(o)?o.getTime():e},type:"numeric"}),r.regex.shortDateTest=/(^\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4})|(^\d{4}[\/\s]\d{1,2}[\/\s]\d{1,2})/,r.regex.shortDateReplace=/[\-.,]/g,r.regex.shortDateXXY=/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,r.regex.shortDateYMD=/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/,r.convertFormat=function(e,t){e=(e||"").replace(r.regex.spaces," ").replace(r.regex.shortDateReplace,"/"),"mmddyyyy"===t?e=e.replace(r.regex.shortDateXXY,"$3/$1/$2"):"ddmmyyyy"===t?e=e.replace(r.regex.shortDateXXY,"$3/$2/$1"):"yyyymmdd"===t&&(e=e.replace(r.regex.shortDateYMD,"$1/$2/$3"));var o=new Date(e);return o instanceof Date&&isFinite(o)?o.getTime():""},r.addParser({id:"shortDate",is:function(e){return e=(e||"").replace(r.regex.spaces," ").replace(r.regex.shortDateReplace,"/"),r.regex.shortDateTest.test(e)},format:function(e,t,o,s){if(e){var a=t.config,n=a.$headerIndexed[s],i=n.length&&n.data("dateFormat")||r.getData(n,r.getColumnData(t,a.headers,s),"dateFormat")||a.dateFormat;return n.length&&n.data("dateFormat",i),r.convertFormat(e,i)||e}return e},type:"numeric"}),r.regex.timeTest=/^(0?[1-9]|1[0-2]):([0-5]\d)(\s[AP]M)$|^((?:[01]\d|[2][0-4]):[0-5]\d)$/i,r.regex.timeMatch=/(0?[1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i,r.addParser({id:"time",is:function(e){return r.regex.timeTest.test(e)},format:function(e,t){var o,s=(e||"").match(r.regex.timeMatch),a=new Date(e),n=e&&(null!==s?s[0]:"00:00 AM"),i=n?new Date("2000/01/01 "+n.replace(r.regex.dateReplace,"$1 $2")):n;return i instanceof Date&&isFinite(i)?(o=a instanceof Date&&isFinite(a)?a.getTime():0,o?parseFloat(i.getTime()+"."+a.getTime()):i.getTime()):e},type:"numeric"}),r.addParser({id:"metadata",is:function(){return!1},format:function(e,r,o){var s=r.config,a=s.parserMetadataName?s.parserMetadataName:"sortValue";return t(o).metadata()[a]},type:"numeric"}),r.addWidget({id:"zebra",priority:90,format:function(e,r,o){var s,a,n,i,l,d,c,g=new RegExp(r.cssChildRow,"i"),p=r.$tbodies.add(t(r.namespace+"_extra_table").children("tbody:not(."+r.cssInfoBlock+")"));for(l=0;l<p.length;l++)for(n=0,c=(s=p.eq(l).children("tr:visible").not(r.selectorRemove)).length,d=0;d<c;d++)a=s.eq(d),g.test(a[0].className)||n++,i=n%2==0,a.removeClass(o.zebra[i?1:0]).addClass(o.zebra[i?0:1])},remove:function(e,t,o,s){if(!s){var a,n,i=t.$tbodies,l=(o.zebra||["even","odd"]).join(" ");for(a=0;a<i.length;a++)(n=r.processTbody(e,i.eq(a),!0)).children().removeClass(l),r.processTbody(e,n,!1)}}})}(e),e.tablesorter});
|
1 |
+
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){return function(t){"use strict";var r=t.tablesorter={version:"2.29.6",parsers:[],widgets:[],defaults:{theme:"default",widthFixed:!1,showProcessing:!1,headerTemplate:"{content}",onRenderTemplate:null,onRenderHeader:null,cancelSelection:!0,tabIndex:!0,dateFormat:"mmddyyyy",sortMultiSortKey:"shiftKey",sortResetKey:"ctrlKey",usNumberFormat:!0,delayInit:!1,serverSideSorting:!1,resort:!0,headers:{},ignoreCase:!0,sortForce:null,sortList:[],sortAppend:null,sortStable:!1,sortInitialOrder:"asc",sortLocaleCompare:!1,sortReset:!1,sortRestart:!1,emptyTo:"bottom",stringTo:"max",duplicateSpan:!0,textExtraction:"basic",textAttribute:"data-text",textSorter:null,numberSorter:null,initWidgets:!0,widgetClass:"widget-{name}",widgets:[],widgetOptions:{zebra:["even","odd"]},initialized:null,tableClass:"",cssAsc:"",cssDesc:"",cssNone:"",cssHeader:"",cssHeaderRow:"",cssProcessing:"",cssChildRow:"tablesorter-childRow",cssInfoBlock:"tablesorter-infoOnly",cssNoSort:"tablesorter-noSort",cssIgnoreRow:"tablesorter-ignoreRow",cssIcon:"tablesorter-icon",cssIconNone:"",cssIconAsc:"",cssIconDesc:"",cssIconDisabled:"",pointerClick:"click",pointerDown:"mousedown",pointerUp:"mouseup",selectorHeaders:"> thead th, > thead td",selectorSort:"th, td",selectorRemove:".remove-me",debug:!1,headerList:[],empties:{},strings:{},parsers:[],globalize:0,imgAttr:0},css:{table:"tablesorter",cssHasChild:"tablesorter-hasChildRow",childRow:"tablesorter-childRow",colgroup:"tablesorter-colgroup",header:"tablesorter-header",headerRow:"tablesorter-headerRow",headerIn:"tablesorter-header-inner",icon:"tablesorter-icon",processing:"tablesorter-processing",sortAsc:"tablesorter-headerAsc",sortDesc:"tablesorter-headerDesc",sortNone:"tablesorter-headerUnSorted"},language:{sortAsc:"Ascending sort applied, ",sortDesc:"Descending sort applied, ",sortNone:"No sort applied, ",sortDisabled:"sorting is disabled",nextAsc:"activate to apply an ascending sort",nextDesc:"activate to apply a descending sort",nextNone:"activate to remove the sort"},regex:{templateContent:/\{content\}/g,templateIcon:/\{icon\}/g,templateName:/\{name\}/i,spaces:/\s+/g,nonWord:/\W/g,formElements:/(input|select|button|textarea)/i,chunk:/(^([+\-]?(?:\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,chunks:/(^\\0|\\0$)/,hex:/^0x[0-9a-f]+$/i,comma:/,/g,digitNonUS:/[\s|\.]/g,digitNegativeTest:/^\s*\([.\d]+\)/,digitNegativeReplace:/^\s*\(([.\d]+)\)/,digitTest:/^[\-+(]?\d+[)]?$/,digitReplace:/[,.'"\s]/g},string:{max:1,min:-1,emptymin:1,emptymax:-1,zero:0,none:0,"null":0,top:!0,bottom:!1},keyCodes:{enter:13},dates:{},instanceMethods:{},setup:function(e,o){if(e&&e.tHead&&0!==e.tBodies.length&&!0!==e.hasInitialized){var s="",a=t(e),n=t.metadata;e.hasInitialized=!1,e.isProcessing=!0,e.config=o,t.data(e,"tablesorter",o),o.debug&&(console[console.group?"group":"log"]("Initializing tablesorter v"+r.version),t.data(e,"startoveralltimer",new Date)),o.supportsDataObject=function(e){return e[0]=parseInt(e[0],10),e[0]>1||1===e[0]&&parseInt(e[1],10)>=4}(t.fn.jquery.split(".")),o.emptyTo=o.emptyTo.toLowerCase(),o.stringTo=o.stringTo.toLowerCase(),o.last={sortList:[],clickedIndex:-1},/tablesorter\-/.test(a.attr("class"))||(s=""!==o.theme?" tablesorter-"+o.theme:""),o.namespace?o.namespace="."+o.namespace.replace(r.regex.nonWord,""):o.namespace=".tablesorter"+Math.random().toString(16).slice(2),o.table=e,o.$table=a.addClass(r.css.table+" "+o.tableClass+s+" "+o.namespace.slice(1)).attr("role","grid"),o.$headers=a.find(o.selectorHeaders),o.$table.children().children("tr").attr("role","row"),o.$tbodies=a.children("tbody:not(."+o.cssInfoBlock+")").attr({"aria-live":"polite","aria-relevant":"all"}),o.$table.children("caption").length&&((s=o.$table.children("caption")[0]).id||(s.id=o.namespace.slice(1)+"caption"),o.$table.attr("aria-labelledby",s.id)),o.widgetInit={},o.textExtraction=o.$table.attr("data-text-extraction")||o.textExtraction||"basic",r.buildHeaders(o),r.fixColumnWidth(e),r.addWidgetFromClass(e),r.applyWidgetOptions(e),r.setupParsers(o),o.totalRows=0,r.validateOptions(o),o.delayInit||r.buildCache(o),r.bindEvents(e,o.$headers,!0),r.bindMethods(o),o.supportsDataObject&&void 0!==a.data().sortlist?o.sortList=a.data().sortlist:n&&a.metadata()&&a.metadata().sortlist&&(o.sortList=a.metadata().sortlist),r.applyWidget(e,!0),o.sortList.length>0?r.sortOn(o,o.sortList,{},!o.initWidgets):(r.setHeadersCss(o),o.initWidgets&&r.applyWidget(e,!1)),o.showProcessing&&a.unbind("sortBegin"+o.namespace+" sortEnd"+o.namespace).bind("sortBegin"+o.namespace+" sortEnd"+o.namespace,function(t){clearTimeout(o.timerProcessing),r.isProcessing(e),"sortBegin"===t.type&&(o.timerProcessing=setTimeout(function(){r.isProcessing(e,!0)},500))}),e.hasInitialized=!0,e.isProcessing=!1,o.debug&&(console.log("Overall initialization time:"+r.benchmark(t.data(e,"startoveralltimer"))),o.debug&&console.groupEnd&&console.groupEnd()),a.triggerHandler("tablesorter-initialized",e),"function"==typeof o.initialized&&o.initialized(e)}else o.debug&&(e.hasInitialized?console.warn("Stopping initialization. Tablesorter has already been initialized"):console.error("Stopping initialization! No table, thead or tbody",e))},bindMethods:function(e){var o=e.$table,s=e.namespace,a="sortReset update updateRows updateAll updateHeaders addRows updateCell updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ".split(" ").join(s+" ");o.unbind(a.replace(r.regex.spaces," ")).bind("sortReset"+s,function(e,t){e.stopPropagation(),r.sortReset(this.config,function(e){e.isApplyingWidgets?setTimeout(function(){r.applyWidget(e,"",t)},100):r.applyWidget(e,"",t)})}).bind("updateAll"+s,function(e,t,o){e.stopPropagation(),r.updateAll(this.config,t,o)}).bind("update"+s+" updateRows"+s,function(e,t,o){e.stopPropagation(),r.update(this.config,t,o)}).bind("updateHeaders"+s,function(e,t){e.stopPropagation(),r.updateHeaders(this.config,t)}).bind("updateCell"+s,function(e,t,o,s){e.stopPropagation(),r.updateCell(this.config,t,o,s)}).bind("addRows"+s,function(e,t,o,s){e.stopPropagation(),r.addRows(this.config,t,o,s)}).bind("updateComplete"+s,function(){this.isUpdating=!1}).bind("sorton"+s,function(e,t,o,s){e.stopPropagation(),r.sortOn(this.config,t,o,s)}).bind("appendCache"+s,function(e,o,s){e.stopPropagation(),r.appendCache(this.config,s),t.isFunction(o)&&o(this)}).bind("updateCache"+s,function(e,t,o){e.stopPropagation(),r.updateCache(this.config,t,o)}).bind("applyWidgetId"+s,function(e,t){e.stopPropagation(),r.applyWidgetId(this,t)}).bind("applyWidgets"+s,function(e,t){e.stopPropagation(),r.applyWidget(this,!1,t)}).bind("refreshWidgets"+s,function(e,t,o){e.stopPropagation(),r.refreshWidgets(this,t,o)}).bind("removeWidget"+s,function(e,t,o){e.stopPropagation(),r.removeWidget(this,t,o)}).bind("destroy"+s,function(e,t,o){e.stopPropagation(),r.destroy(this,t,o)}).bind("resetToLoadState"+s,function(o){o.stopPropagation(),r.removeWidget(this,!0,!1);var s=t.extend(!0,{},e.originalSettings);(e=t.extend(!0,{},r.defaults,s)).originalSettings=s,this.hasInitialized=!1,r.setup(this,e)})},bindEvents:function(e,o,s){var a,n=(e=t(e)[0]).config,i=n.namespace,l=null;!0!==s&&(o.addClass(i.slice(1)+"_extra_headers"),(a=r.getClosest(o,"table")).length&&"TABLE"===a[0].nodeName&&a[0]!==e&&t(a[0]).addClass(i.slice(1)+"_extra_table")),a=(n.pointerDown+" "+n.pointerUp+" "+n.pointerClick+" sort keyup ").replace(r.regex.spaces," ").split(" ").join(i+" "),o.find(n.selectorSort).add(o.filter(n.selectorSort)).unbind(a).bind(a,function(e,s){var a,i,d,c=t(e.target),g=" "+e.type+" ";if(!(1!==(e.which||e.button)&&!g.match(" "+n.pointerClick+" | sort | keyup ")||" keyup "===g&&e.which!==r.keyCodes.enter||g.match(" "+n.pointerClick+" ")&&void 0!==e.which||g.match(" "+n.pointerUp+" ")&&l!==e.target&&!0!==s)){if(g.match(" "+n.pointerDown+" "))return l=e.target,void("1"===(d=c.jquery.split("."))[0]&&d[1]<4&&e.preventDefault());if(l=null,r.regex.formElements.test(e.target.nodeName)||c.hasClass(n.cssNoSort)||c.parents("."+n.cssNoSort).length>0||c.parents("button").length>0)return!n.cancelSelection;n.delayInit&&r.isEmptyObject(n.cache)&&r.buildCache(n),a=r.getClosest(t(this),"."+r.css.header),d=o.index(a),n.last.clickedIndex=d<0?a.attr("data-column"):d,(i=n.$headers[n.last.clickedIndex])&&!i.sortDisabled&&r.initSort(n,i,e)}}),n.cancelSelection&&o.attr("unselectable","on").bind("selectstart",!1).css({"user-select":"none",MozUserSelect:"none"})},buildHeaders:function(e){var o,s,a,n;for(e.headerList=[],e.headerContent=[],e.sortVars=[],e.debug&&(a=new Date),e.columns=r.computeColumnIndex(e.$table.children("thead, tfoot").children("tr")),s=e.cssIcon?'<i class="'+(e.cssIcon===r.css.icon?r.css.icon:e.cssIcon+" "+r.css.icon)+'"></i>':"",e.$headers=t(t.map(e.$table.find(e.selectorHeaders),function(o,a){var n,i,l,d,c,g=t(o);if(!r.getClosest(g,"tr").hasClass(e.cssIgnoreRow))return/(th|td)/i.test(o.nodeName)||(c=r.getClosest(g,"th, td"),g.attr("data-column",c.attr("data-column"))),n=r.getColumnData(e.table,e.headers,a,!0),e.headerContent[a]=g.html(),""===e.headerTemplate||g.find("."+r.css.headerIn).length||(d=e.headerTemplate.replace(r.regex.templateContent,g.html()).replace(r.regex.templateIcon,g.find("."+r.css.icon).length?"":s),e.onRenderTemplate&&(i=e.onRenderTemplate.apply(g,[a,d]))&&"string"==typeof i&&(d=i),g.html('<div class="'+r.css.headerIn+'">'+d+"</div>")),e.onRenderHeader&&e.onRenderHeader.apply(g,[a,e,e.$table]),l=parseInt(g.attr("data-column"),10),o.column=l,c=r.getOrder(r.getData(g,n,"sortInitialOrder")||e.sortInitialOrder),e.sortVars[l]={count:-1,order:c?e.sortReset?[1,0,2]:[1,0]:e.sortReset?[0,1,2]:[0,1],lockedOrder:!1},void 0!==(c=r.getData(g,n,"lockedOrder")||!1)&&!1!==c&&(e.sortVars[l].lockedOrder=!0,e.sortVars[l].order=r.getOrder(c)?[1,1]:[0,0]),e.headerList[a]=o,g.addClass(r.css.header+" "+e.cssHeader),r.getClosest(g,"tr").addClass(r.css.headerRow+" "+e.cssHeaderRow).attr("role","row"),e.tabIndex&&g.attr("tabindex",0),o})),e.$headerIndexed=[],n=0;n<e.columns;n++)r.isEmptyObject(e.sortVars[n])&&(e.sortVars[n]={}),o=e.$headers.filter('[data-column="'+n+'"]'),e.$headerIndexed[n]=o.length?o.not(".sorter-false").length?o.not(".sorter-false").filter(":last"):o.filter(":last"):t();e.$table.find(e.selectorHeaders).attr({scope:"col",role:"columnheader"}),r.updateHeader(e),e.debug&&(console.log("Built headers:"+r.benchmark(a)),console.log(e.$headers))},addInstanceMethods:function(e){t.extend(r.instanceMethods,e)},setupParsers:function(e,t){var o,s,a,n,i,l,d,c,g,p,u,f,h,m,b=e.table,y=0,w={};if(e.$tbodies=e.$table.children("tbody:not(."+e.cssInfoBlock+")"),h=void 0===t?e.$tbodies:t,0===(m=h.length))return e.debug?console.warn("Warning: *Empty table!* Not building a parser cache"):"";for(e.debug&&(f=new Date,console[console.group?"group":"log"]("Detecting parsers for each column")),s={extractors:[],parsers:[]};y<m;){if((o=h[y].rows).length)for(i=0,n=e.columns,l=0;l<n;l++){if((d=e.$headerIndexed[i])&&d.length&&(c=r.getColumnData(b,e.headers,i),u=r.getParserById(r.getData(d,c,"extractor")),p=r.getParserById(r.getData(d,c,"sorter")),g="false"===r.getData(d,c,"parser"),e.empties[i]=(r.getData(d,c,"empty")||e.emptyTo||(e.emptyToBottom?"bottom":"top")).toLowerCase(),e.strings[i]=(r.getData(d,c,"string")||e.stringTo||"max").toLowerCase(),g&&(p=r.getParserById("no-parser")),u||(u=!1),p||(p=r.detectParserForColumn(e,o,-1,i)),e.debug&&(w["("+i+") "+d.text()]={parser:p.id,extractor:u?u.id:"none",string:e.strings[i],empty:e.empties[i]}),s.parsers[i]=p,s.extractors[i]=u,(a=d[0].colSpan-1)>0))for(i+=a,n+=a;a+1>0;)s.parsers[i-a]=p,s.extractors[i-a]=u,a--;i++}y+=s.parsers.length?m:1}e.debug&&(r.isEmptyObject(w)?console.warn(" No parsers detected!"):console[console.table?"table":"log"](w),console.log("Completed detecting parsers"+r.benchmark(f)),console.groupEnd&&console.groupEnd()),e.parsers=s.parsers,e.extractors=s.extractors},addParser:function(e){var t,o=r.parsers.length,s=!0;for(t=0;t<o;t++)r.parsers[t].id.toLowerCase()===e.id.toLowerCase()&&(s=!1);s&&(r.parsers[r.parsers.length]=e)},getParserById:function(e){if("false"==e)return!1;var t,o=r.parsers.length;for(t=0;t<o;t++)if(r.parsers[t].id.toLowerCase()===e.toString().toLowerCase())return r.parsers[t];return!1},detectParserForColumn:function(e,o,s,a){for(var n,i,l,d=r.parsers.length,c=!1,g="",p=!0;""===g&&p;)(l=o[++s])&&s<50?l.className.indexOf(r.cssIgnoreRow)<0&&(c=o[s].cells[a],g=r.getElementText(e,c,a),i=t(c),e.debug&&console.log("Checking if value was empty on row "+s+", column: "+a+': "'+g+'"')):p=!1;for(;--d>=0;)if((n=r.parsers[d])&&"text"!==n.id&&n.is&&n.is(g,e.table,c,i))return n;return r.getParserById("text")},getElementText:function(e,o,s){if(!o)return"";var a,n=e.textExtraction||"",i=o.jquery?o:t(o);return"string"==typeof n?"basic"===n&&void 0!==(a=i.attr(e.textAttribute))?t.trim(a):t.trim(o.textContent||i.text()):"function"==typeof n?t.trim(n(i[0],e.table,s)):"function"==typeof(a=r.getColumnData(e.table,n,s))?t.trim(a(i[0],e.table,s)):t.trim(i[0].textContent||i.text())},getParsedText:function(e,t,o,s){void 0===s&&(s=r.getElementText(e,t,o));var a=""+s,n=e.parsers[o],i=e.extractors[o];return n&&(i&&"function"==typeof i.format&&(s=i.format(s,e.table,t,o)),a="no-parser"===n.id?"":n.format(""+s,e.table,t,o),e.ignoreCase&&"string"==typeof a&&(a=a.toLowerCase())),a},buildCache:function(e,o,s){var a,n,i,l,d,c,g,p,u,f,h,m,b,y,w,x,v,C,$,I,D,R,T=e.table,L=e.parsers;if(e.$tbodies=e.$table.children("tbody:not(."+e.cssInfoBlock+")"),g=void 0===s?e.$tbodies:s,e.cache={},e.totalRows=0,!L)return e.debug?console.warn("Warning: *Empty table!* Not building a cache"):"";for(e.debug&&(m=new Date),e.showProcessing&&r.isProcessing(T,!0),c=0;c<g.length;c++){for(x=[],a=e.cache[c]={normalized:[]},b=g[c]&&g[c].rows.length||0,l=0;l<b;++l)if(y={child:[],raw:[]},p=t(g[c].rows[l]),u=[],!p.hasClass(e.selectorRemove.slice(1)))if(p.hasClass(e.cssChildRow)&&0!==l)for(D=a.normalized.length-1,(w=a.normalized[D][e.columns]).$row=w.$row.add(p),p.prev().hasClass(e.cssChildRow)||p.prev().addClass(r.css.cssHasChild),f=p.children("th, td"),D=w.child.length,w.child[D]=[],C=0,I=e.columns,d=0;d<I;d++)(h=f[d])&&(w.child[D][d]=r.getParsedText(e,h,d),(v=f[d].colSpan-1)>0&&(C+=v,I+=v)),C++;else{for(y.$row=p,y.order=l,C=0,I=e.columns,d=0;d<I;++d){if((h=p[0].cells[d])&&C<e.columns&&(!($=void 0!==L[C])&&e.debug&&console.warn("No parser found for row: "+l+", column: "+d+'; cell containing: "'+t(h).text()+'"; does it have a header?'),n=r.getElementText(e,h,C),y.raw[C]=n,i=r.getParsedText(e,h,C,n),u[C]=i,$&&"numeric"===(L[C].type||"").toLowerCase()&&(x[C]=Math.max(Math.abs(i)||0,x[C]||0)),(v=h.colSpan-1)>0)){for(R=0;R<=v;)i=e.duplicateSpan||0===R?n:"string"!=typeof e.textExtraction?r.getElementText(e,h,C+R)||"":"",y.raw[C+R]=i,u[C+R]=i,R++;C+=v,I+=v}C++}u[e.columns]=y,a.normalized[a.normalized.length]=u}a.colMax=x,e.totalRows+=a.normalized.length}if(e.showProcessing&&r.isProcessing(T),e.debug){for(D=Math.min(5,e.cache[0].normalized.length),console[console.group?"group":"log"]("Building cache for "+e.totalRows+" rows (showing "+D+" rows in log) and "+e.columns+" columns"+r.benchmark(m)),n={},d=0;d<e.columns;d++)for(C=0;C<D;C++)n["row: "+C]||(n["row: "+C]={}),n["row: "+C][e.$headerIndexed[d].text()]=e.cache[0].normalized[C][d];console[console.table?"table":"log"](n),console.groupEnd&&console.groupEnd()}t.isFunction(o)&&o(T)},getColumnText:function(e,o,s,a){var n,i,l,d,c,g,p,u,f,h,m="function"==typeof s,b="all"===o,y={raw:[],parsed:[],$cell:[]},w=(e=t(e)[0]).config;if(!r.isEmptyObject(w)){for(c=w.$tbodies.length,n=0;n<c;n++)for(g=(l=w.cache[n].normalized).length,i=0;i<g;i++)d=l[i],a&&!d[w.columns].$row.is(a)||(h=!0,u=b?d.slice(0,w.columns):d[o],d=d[w.columns],p=b?d.raw:d.raw[o],f=b?d.$row.children():d.$row.children().eq(o),m&&(h=s({tbodyIndex:n,rowIndex:i,parsed:u,raw:p,$row:d.$row,$cell:f})),!1!==h&&(y.parsed[y.parsed.length]=u,y.raw[y.raw.length]=p,y.$cell[y.$cell.length]=f));return y}w.debug&&console.warn("No cache found - aborting getColumnText function!")},setHeadersCss:function(e){var o,s,a=e.sortList,n=a.length,i=r.css.sortNone+" "+e.cssNone,l=[r.css.sortAsc+" "+e.cssAsc,r.css.sortDesc+" "+e.cssDesc],d=[e.cssIconAsc,e.cssIconDesc,e.cssIconNone],c=["ascending","descending"],g=function(e,t){e.removeClass(i).addClass(l[t]).attr("aria-sort",c[t]).find("."+r.css.icon).removeClass(d[2]).addClass(d[t])},p=e.$table.find("tfoot tr").children("td, th").add(t(e.namespace+"_extra_headers")).removeClass(l.join(" ")),u=e.$headers.add(t("thead "+e.namespace+"_extra_headers")).removeClass(l.join(" ")).addClass(i).attr("aria-sort","none").find("."+r.css.icon).removeClass(d.join(" ")).end();for(u.not(".sorter-false").find("."+r.css.icon).addClass(d[2]),e.cssIconDisabled&&u.filter(".sorter-false").find("."+r.css.icon).addClass(e.cssIconDisabled),o=0;o<n;o++)if(2!==a[o][1]){if(u=e.$headers.filter(function(t){for(var o=!0,s=e.$headers.eq(t),a=parseInt(s.attr("data-column"),10),n=a+r.getClosest(s,"th, td")[0].colSpan;a<n;a++)o=!!o&&(o||r.isValueInArray(a,e.sortList)>-1);return o}),(u=u.not(".sorter-false").filter('[data-column="'+a[o][0]+'"]'+(1===n?":last":""))).length)for(s=0;s<u.length;s++)u[s].sortDisabled||g(u.eq(s),a[o][1]);p.length&&g(p.filter('[data-column="'+a[o][0]+'"]'),a[o][1])}for(n=e.$headers.length,o=0;o<n;o++)r.setColumnAriaLabel(e,e.$headers.eq(o))},getClosest:function(e,r){return t.fn.closest?e.closest(r):e.is(r)?e:e.parents(r).filter(":first")},setColumnAriaLabel:function(e,o,s){if(o.length){var a=parseInt(o.attr("data-column"),10),n=e.sortVars[a],i=o.hasClass(r.css.sortAsc)?"sortAsc":o.hasClass(r.css.sortDesc)?"sortDesc":"sortNone",l=t.trim(o.text())+": "+r.language[i];o.hasClass("sorter-false")||!1===s?l+=r.language.sortDisabled:(i=(n.count+1)%n.order.length,s=n.order[i],l+=r.language[0===s?"nextAsc":1===s?"nextDesc":"nextNone"]),o.attr("aria-label",l)}},updateHeader:function(e){var t,o,s,a,n=e.table,i=e.$headers.length;for(t=0;t<i;t++)s=e.$headers.eq(t),a=r.getColumnData(n,e.headers,t,!0),o="false"===r.getData(s,a,"sorter")||"false"===r.getData(s,a,"parser"),r.setColumnSort(e,s,o)},setColumnSort:function(e,t,r){var o=e.table.id;t[0].sortDisabled=r,t[r?"addClass":"removeClass"]("sorter-false").attr("aria-disabled",""+r),e.tabIndex&&(r?t.removeAttr("tabindex"):t.attr("tabindex","0")),o&&(r?t.removeAttr("aria-controls"):t.attr("aria-controls",o))},updateHeaderSortCount:function(e,o){var s,a,n,i,l,d,c,g,p=o||e.sortList,u=p.length;for(e.sortList=[],i=0;i<u;i++)if(c=p[i],(s=parseInt(c[0],10))<e.columns){switch(e.sortVars[s].order||(g=r.getOrder(e.sortInitialOrder)?e.sortReset?[1,0,2]:[1,0]:e.sortReset?[0,1,2]:[0,1],e.sortVars[s].order=g,e.sortVars[s].count=0),g=e.sortVars[s].order,a=(""+c[1]).match(/^(1|d|s|o|n)/),a=a?a[0]:""){case"1":case"d":a=1;break;case"s":a=l||0;break;case"o":a=0===(d=g[(l||0)%g.length])?1:1===d?0:2;break;case"n":a=g[++e.sortVars[s].count%g.length];break;default:a=0}l=0===i?a:l,n=[s,parseInt(a,10)||0],e.sortList[e.sortList.length]=n,a=t.inArray(n[1],g),e.sortVars[s].count=a>=0?a:n[1]%g.length}},updateAll:function(e,t,o){var s=e.table;s.isUpdating=!0,r.refreshWidgets(s,!0,!0),r.buildHeaders(e),r.bindEvents(s,e.$headers,!0),r.bindMethods(e),r.commonUpdate(e,t,o)},update:function(e,t,o){e.table.isUpdating=!0,r.updateHeader(e),r.commonUpdate(e,t,o)},updateHeaders:function(e,t){e.table.isUpdating=!0,r.buildHeaders(e),r.bindEvents(e.table,e.$headers,!0),r.resortComplete(e,t)},updateCell:function(e,o,s,a){if(t(o).closest("tr").hasClass(e.cssChildRow))console.warn('Tablesorter Warning! "updateCell" for child row content has been disabled, use "update" instead');else{if(r.isEmptyObject(e.cache))return r.updateHeader(e),void r.commonUpdate(e,s,a);e.table.isUpdating=!0,e.$table.find(e.selectorRemove).remove();var n,i,l,d,c,g,p=e.$tbodies,u=t(o),f=p.index(r.getClosest(u,"tbody")),h=e.cache[f],m=r.getClosest(u,"tr");if(o=u[0],p.length&&f>=0){if(l=p.eq(f).find("tr").not("."+e.cssChildRow).index(m),c=h.normalized[l],(g=m[0].cells.length)!==e.columns)for(d=0,n=!1,i=0;i<g;i++)n||m[0].cells[i]===o?n=!0:d+=m[0].cells[i].colSpan;else d=u.index();n=r.getElementText(e,o,d),c[e.columns].raw[d]=n,n=r.getParsedText(e,o,d,n),c[d]=n,"numeric"===(e.parsers[d].type||"").toLowerCase()&&(h.colMax[d]=Math.max(Math.abs(n)||0,h.colMax[d]||0)),!1!==(n="undefined"!==s?s:e.resort)?r.checkResort(e,n,a):r.resortComplete(e,a)}else e.debug&&console.error("updateCell aborted, tbody missing or not within the indicated table"),e.table.isUpdating=!1}},addRows:function(o,s,a,n){var i,l,d,c,g,p,u,f,h,m,b,y,w,x="string"==typeof s&&1===o.$tbodies.length&&/<tr/.test(s||""),v=o.table;if(x)s=t(s),o.$tbodies.append(s);else if(!(s&&s instanceof e&&r.getClosest(s,"table")[0]===o.table))return o.debug&&console.error("addRows method requires (1) a jQuery selector reference to rows that have already been added to the table, or (2) row HTML string to be added to a table with only one tbody"),!1;if(v.isUpdating=!0,r.isEmptyObject(o.cache))r.updateHeader(o),r.commonUpdate(o,a,n);else{for(g=s.filter("tr").attr("role","row").length,d=o.$tbodies.index(s.parents("tbody").filter(":first")),o.parsers&&o.parsers.length||r.setupParsers(o),c=0;c<g;c++){for(h=0,u=s[c].cells.length,f=o.cache[d].normalized.length,b=[],m={child:[],raw:[],$row:s.eq(c),order:f},p=0;p<u;p++)y=s[c].cells[p],i=r.getElementText(o,y,h),m.raw[h]=i,l=r.getParsedText(o,y,h,i),b[h]=l,"numeric"===(o.parsers[h].type||"").toLowerCase()&&(o.cache[d].colMax[h]=Math.max(Math.abs(l)||0,o.cache[d].colMax[h]||0)),(w=y.colSpan-1)>0&&(h+=w),h++;b[o.columns]=m,o.cache[d].normalized[f]=b}r.checkResort(o,a,n)}},updateCache:function(e,t,o){e.parsers&&e.parsers.length||r.setupParsers(e,o),r.buildCache(e,t,o)},appendCache:function(e,t){var o,s,a,n,i,l,d,c=e.table,g=e.widgetOptions,p=e.$tbodies,u=[],f=e.cache;if(r.isEmptyObject(f))return e.appender?e.appender(c,u):c.isUpdating?e.$table.triggerHandler("updateComplete",c):"";for(e.debug&&(d=new Date),l=0;l<p.length;l++)if((a=p.eq(l)).length){for(n=r.processTbody(c,a,!0),s=(o=f[l].normalized).length,i=0;i<s;i++)u[u.length]=o[i][e.columns].$row,e.appender&&(!e.pager||e.pager.removeRows&&g.pager_removeRows||e.pager.ajax)||n.append(o[i][e.columns].$row);r.processTbody(c,n,!1)}e.appender&&e.appender(c,u),e.debug&&console.log("Rebuilt table"+r.benchmark(d)),t||e.appender||r.applyWidget(c),c.isUpdating&&e.$table.triggerHandler("updateComplete",c)},commonUpdate:function(e,t,o){e.$table.find(e.selectorRemove).remove(),r.setupParsers(e),r.buildCache(e),r.checkResort(e,t,o)},initSort:function(e,o,s){if(e.table.isUpdating)return setTimeout(function(){r.initSort(e,o,s)},50);var a,n,i,l,d,c,g,p=!s[e.sortMultiSortKey],u=e.table,f=e.$headers.length,h=r.getClosest(t(o),"th, td"),m=parseInt(h.attr("data-column"),10),b=e.sortVars[m].order;if(h=h[0],e.$table.triggerHandler("sortStart",u),c=(e.sortVars[m].count+1)%b.length,e.sortVars[m].count=s[e.sortResetKey]?2:c,e.sortRestart)for(i=0;i<f;i++)g=e.$headers.eq(i),m!==(c=parseInt(g.attr("data-column"),10))&&(p||g.hasClass(r.css.sortNone))&&(e.sortVars[c].count=-1);if(p){if(e.sortList=[],e.last.sortList=[],null!==e.sortForce)for(a=e.sortForce,n=0;n<a.length;n++)a[n][0]!==m&&(e.sortList[e.sortList.length]=a[n]);if((l=b[e.sortVars[m].count])<2&&(e.sortList[e.sortList.length]=[m,l],h.colSpan>1))for(n=1;n<h.colSpan;n++)e.sortList[e.sortList.length]=[m+n,l],e.sortVars[m+n].count=t.inArray(l,b)}else if(e.sortList=t.extend([],e.last.sortList),r.isValueInArray(m,e.sortList)>=0)for(n=0;n<e.sortList.length;n++)(c=e.sortList[n])[0]===m&&(c[1]=b[e.sortVars[m].count],2===c[1]&&(e.sortList.splice(n,1),e.sortVars[m].count=-1));else if((l=b[e.sortVars[m].count])<2&&(e.sortList[e.sortList.length]=[m,l],h.colSpan>1))for(n=1;n<h.colSpan;n++)e.sortList[e.sortList.length]=[m+n,l],e.sortVars[m+n].count=t.inArray(l,b);if(e.last.sortList=t.extend([],e.sortList),e.sortList.length&&e.sortAppend&&(a=t.isArray(e.sortAppend)?e.sortAppend:e.sortAppend[e.sortList[0][0]],!r.isEmptyObject(a)))for(n=0;n<a.length;n++)if(a[n][0]!==m&&r.isValueInArray(a[n][0],e.sortList)<0){if(l=a[n][1],d=(""+l).match(/^(a|d|s|o|n)/))switch(c=e.sortList[0][1],d[0]){case"d":l=1;break;case"s":l=c;break;case"o":l=0===c?1:0;break;case"n":l=(c+1)%b.length;break;default:l=0}e.sortList[e.sortList.length]=[a[n][0],l]}e.$table.triggerHandler("sortBegin",u),setTimeout(function(){r.setHeadersCss(e),r.multisort(e),r.appendCache(e),e.$table.triggerHandler("sortBeforeEnd",u),e.$table.triggerHandler("sortEnd",u)},1)},multisort:function(e){var t,o,s,a,n=e.table,i=[],l=0,d=e.textSorter||"",c=e.sortList,g=c.length,p=e.$tbodies.length;if(!e.serverSideSorting&&!r.isEmptyObject(e.cache)){if(e.debug&&(o=new Date),"object"==typeof d)for(s=e.columns;s--;)"function"==typeof(a=r.getColumnData(n,d,s))&&(i[s]=a);for(t=0;t<p;t++)s=e.cache[t].colMax,e.cache[t].normalized.sort(function(t,o){var a,p,u,f,h,m,b;for(a=0;a<g;a++){if(u=c[a][0],f=c[a][1],l=0===f,e.sortStable&&t[u]===o[u]&&1===g)return t[e.columns].order-o[e.columns].order;if(p=/n/i.test(r.getSortType(e.parsers,u)),p&&e.strings[u]?(p="boolean"==typeof r.string[e.strings[u]]?(l?1:-1)*(r.string[e.strings[u]]?-1:1):e.strings[u]?r.string[e.strings[u]]||0:0,h=e.numberSorter?e.numberSorter(t[u],o[u],l,s[u],n):r["sortNumeric"+(l?"Asc":"Desc")](t[u],o[u],p,s[u],u,e)):(m=l?t:o,b=l?o:t,h="function"==typeof d?d(m[u],b[u],l,u,n):"function"==typeof i[u]?i[u](m[u],b[u],l,u,n):r["sortNatural"+(l?"Asc":"Desc")](t[u],o[u],u,e)),h)return h}return t[e.columns].order-o[e.columns].order});e.debug&&console.log("Applying sort "+c.toString()+r.benchmark(o))}},resortComplete:function(e,r){e.table.isUpdating&&e.$table.triggerHandler("updateComplete",e.table),t.isFunction(r)&&r(e.table)},checkResort:function(e,o,s){var a=t.isArray(o)?o:e.sortList;!1===(void 0===o?e.resort:o)||e.serverSideSorting||e.table.isProcessing?(r.resortComplete(e,s),r.applyWidget(e.table,!1)):a.length?r.sortOn(e,a,function(){r.resortComplete(e,s)},!0):r.sortReset(e,function(){r.resortComplete(e,s),r.applyWidget(e.table,!1)})},sortOn:function(e,o,s,a){var n=e.table;e.$table.triggerHandler("sortStart",n),r.updateHeaderSortCount(e,o),r.setHeadersCss(e),e.delayInit&&r.isEmptyObject(e.cache)&&r.buildCache(e),e.$table.triggerHandler("sortBegin",n),r.multisort(e),r.appendCache(e,a),e.$table.triggerHandler("sortBeforeEnd",n),e.$table.triggerHandler("sortEnd",n),r.applyWidget(n),t.isFunction(s)&&s(n)},sortReset:function(e,o){e.sortList=[],r.setHeadersCss(e),r.multisort(e),r.appendCache(e);var s;for(s=0;s<e.columns;s++)e.sortVars[s].count=-1;t.isFunction(o)&&o(e.table)},getSortType:function(e,t){return e&&e[t]?e[t].type||"":""},getOrder:function(e){return/^d/i.test(e)||1===e},sortNatural:function(e,t){if(e===t)return 0;e=e.toString(),t=t.toString();var o,s,a,n,i,l,d=r.regex;if(d.hex.test(t)){if(o=parseInt((e||"").match(d.hex),16),s=parseInt((t||"").match(d.hex),16),o<s)return-1;if(o>s)return 1}for(o=(e||"").replace(d.chunk,"\\0$1\\0").replace(d.chunks,"").split("\\0"),s=(t||"").replace(d.chunk,"\\0$1\\0").replace(d.chunks,"").split("\\0"),l=Math.max(o.length,s.length),i=0;i<l;i++){if(a=isNaN(o[i])?o[i]||0:parseFloat(o[i])||0,n=isNaN(s[i])?s[i]||0:parseFloat(s[i])||0,isNaN(a)!==isNaN(n))return isNaN(a)?1:-1;if(typeof a!=typeof n&&(a+="",n+=""),a<n)return-1;if(a>n)return 1}return 0},sortNaturalAsc:function(e,t,o,s){if(e===t)return 0;var a=r.string[s.empties[o]||s.emptyTo];return""===e&&0!==a?"boolean"==typeof a?a?-1:1:-a||-1:""===t&&0!==a?"boolean"==typeof a?a?1:-1:a||1:r.sortNatural(e,t)},sortNaturalDesc:function(e,t,o,s){if(e===t)return 0;var a=r.string[s.empties[o]||s.emptyTo];return""===e&&0!==a?"boolean"==typeof a?a?-1:1:a||1:""===t&&0!==a?"boolean"==typeof a?a?1:-1:-a||-1:r.sortNatural(t,e)},sortText:function(e,t){return e>t?1:e<t?-1:0},getTextValue:function(e,t,r){if(r){var o,s=e?e.length:0,a=r+t;for(o=0;o<s;o++)a+=e.charCodeAt(o);return t*a}return 0},sortNumericAsc:function(e,t,o,s,a,n){if(e===t)return 0;var i=r.string[n.empties[a]||n.emptyTo];return""===e&&0!==i?"boolean"==typeof i?i?-1:1:-i||-1:""===t&&0!==i?"boolean"==typeof i?i?1:-1:i||1:(isNaN(e)&&(e=r.getTextValue(e,o,s)),isNaN(t)&&(t=r.getTextValue(t,o,s)),e-t)},sortNumericDesc:function(e,t,o,s,a,n){if(e===t)return 0;var i=r.string[n.empties[a]||n.emptyTo];return""===e&&0!==i?"boolean"==typeof i?i?-1:1:i||1:""===t&&0!==i?"boolean"==typeof i?i?1:-1:-i||-1:(isNaN(e)&&(e=r.getTextValue(e,o,s)),isNaN(t)&&(t=r.getTextValue(t,o,s)),t-e)},sortNumeric:function(e,t){return e-t},addWidget:function(e){e.id&&!r.isEmptyObject(r.getWidgetById(e.id))&&console.warn('"'+e.id+'" widget was loaded more than once!'),r.widgets[r.widgets.length]=e},hasWidget:function(e,r){return(e=t(e)).length&&e[0].config&&e[0].config.widgetInit[r]||!1},getWidgetById:function(e){var t,o,s=r.widgets.length;for(t=0;t<s;t++)if((o=r.widgets[t])&&o.id&&o.id.toLowerCase()===e.toLowerCase())return o},applyWidgetOptions:function(e){var o,s,a,n=e.config,i=n.widgets.length;if(i)for(o=0;o<i;o++)(s=r.getWidgetById(n.widgets[o]))&&s.options&&(a=t.extend(!0,{},s.options),n.widgetOptions=t.extend(!0,a,n.widgetOptions),t.extend(!0,r.defaults.widgetOptions,s.options))},addWidgetFromClass:function(e){var t,o,s=e.config,a="^"+s.widgetClass.replace(r.regex.templateName,"(\\S+)+")+"$",n=new RegExp(a,"g"),i=(e.className||"").split(r.regex.spaces);if(i.length)for(t=i.length,o=0;o<t;o++)i[o].match(n)&&(s.widgets[s.widgets.length]=i[o].replace(n,"$1"))},applyWidgetId:function(e,o,s){var a,n,i,l=(e=t(e)[0]).config,d=l.widgetOptions,c=r.getWidgetById(o);c&&(i=c.id,a=!1,t.inArray(i,l.widgets)<0&&(l.widgets[l.widgets.length]=i),l.debug&&(n=new Date),!s&&l.widgetInit[i]||(l.widgetInit[i]=!0,e.hasInitialized&&r.applyWidgetOptions(e),"function"==typeof c.init&&(a=!0,l.debug&&console[console.group?"group":"log"]("Initializing "+i+" widget"),c.init(e,c,l,d))),s||"function"!=typeof c.format||(a=!0,l.debug&&console[console.group?"group":"log"]("Updating "+i+" widget"),c.format(e,l,d,!1)),l.debug&&a&&(console.log("Completed "+(s?"initializing ":"applying ")+i+" widget"+r.benchmark(n)),console.groupEnd&&console.groupEnd()))},applyWidget:function(e,o,s){var a,n,i,l,d,c=(e=t(e)[0]).config,g=[];if(!1===o||!e.hasInitialized||!e.isApplyingWidgets&&!e.isUpdating){if(c.debug&&(d=new Date),r.addWidgetFromClass(e),clearTimeout(c.timerReady),c.widgets.length){for(e.isApplyingWidgets=!0,c.widgets=t.grep(c.widgets,function(e,r){return t.inArray(e,c.widgets)===r}),n=(i=c.widgets||[]).length,a=0;a<n;a++)(l=r.getWidgetById(i[a]))&&l.id?(l.priority||(l.priority=10),g[a]=l):c.debug&&console.warn('"'+i[a]+'" was enabled, but the widget code has not been loaded!');for(g.sort(function(e,t){return e.priority<t.priority?-1:e.priority===t.priority?0:1}),n=g.length,c.debug&&console[console.group?"group":"log"]("Start "+(o?"initializing":"applying")+" widgets"),a=0;a<n;a++)(l=g[a])&&l.id&&r.applyWidgetId(e,l.id,o);c.debug&&console.groupEnd&&console.groupEnd()}c.timerReady=setTimeout(function(){e.isApplyingWidgets=!1,t.data(e,"lastWidgetApplication",new Date),c.$table.triggerHandler("tablesorter-ready"),o||"function"!=typeof s||s(e),c.debug&&(l=c.widgets.length,console.log("Completed "+(!0===o?"initializing ":"applying ")+l+" widget"+(1!==l?"s":"")+r.benchmark(d)))},10)}},removeWidget:function(e,o,s){var a,n,i,l,d=(e=t(e)[0]).config;if(!0===o)for(o=[],l=r.widgets.length,i=0;i<l;i++)(n=r.widgets[i])&&n.id&&(o[o.length]=n.id);else o=(t.isArray(o)?o.join(","):o||"").toLowerCase().split(/[\s,]+/);for(l=o.length,a=0;a<l;a++)n=r.getWidgetById(o[a]),(i=t.inArray(o[a],d.widgets))>=0&&!0!==s&&d.widgets.splice(i,1),n&&n.remove&&(d.debug&&console.log((s?"Refreshing":"Removing")+' "'+o[a]+'" widget'),n.remove(e,d,d.widgetOptions,s),d.widgetInit[o[a]]=!1);d.$table.triggerHandler("widgetRemoveEnd",e)},refreshWidgets:function(e,o,s){var a,n,i=(e=t(e)[0]).config.widgets,l=r.widgets,d=l.length,c=[],g=function(e){t(e).triggerHandler("refreshComplete")};for(a=0;a<d;a++)(n=l[a])&&n.id&&(o||t.inArray(n.id,i)<0)&&(c[c.length]=n.id);r.removeWidget(e,c.join(","),!0),!0!==s?(r.applyWidget(e,o||!1,g),o&&r.applyWidget(e,!1,g)):g(e)},benchmark:function(e){return" ("+((new Date).getTime()-e.getTime())+" ms)"},log:function(){console.log(arguments)},isEmptyObject:function(e){for(var t in e)return!1;return!0},isValueInArray:function(e,t){var r,o=t&&t.length||0;for(r=0;r<o;r++)if(t[r][0]===e)return r;return-1},formatFloat:function(e,o){if("string"!=typeof e||""===e)return e;var s;return e=(o&&o.config?!1!==o.config.usNumberFormat:void 0===o||o)?e.replace(r.regex.comma,""):e.replace(r.regex.digitNonUS,"").replace(r.regex.comma,"."),r.regex.digitNegativeTest.test(e)&&(e=e.replace(r.regex.digitNegativeReplace,"-$1")),s=parseFloat(e),isNaN(s)?t.trim(e):s},isDigit:function(e){return isNaN(e)?r.regex.digitTest.test(e.toString().replace(r.regex.digitReplace,"")):""!==e},computeColumnIndex:function(e,o){var s,a,n,i,l,d,c,g,p,u,f=o&&o.columns||0,h=[],m=new Array(f);for(s=0;s<e.length;s++)for(d=e[s].cells,a=0;a<d.length;a++){for(c=s,g=(l=d[a]).rowSpan||1,p=l.colSpan||1,void 0===h[c]&&(h[c]=[]),n=0;n<h[c].length+1;n++)if(void 0===h[c][n]){u=n;break}for(f&&l.cellIndex===u||(l.setAttribute?l.setAttribute("data-column",u):t(l).attr("data-column",u)),n=c;n<c+g;n++)for(void 0===h[n]&&(h[n]=[]),m=h[n],i=u;i<u+p;i++)m[i]="x"}return r.checkColumnCount(e,h,m.length),m.length},checkColumnCount:function(e,t,r){var o,s,a=!0,n=[];for(o=0;o<t.length;o++)if(t[o]&&(s=t[o].length,t[o].length!==r)){a=!1;break}a||(e.each(function(e,t){var r=t.parentElement.nodeName;n.indexOf(r)<0&&n.push(r)}),console.error("Invalid or incorrect number of columns in the "+n.join(" or ")+"; expected "+r+", but found "+s+" columns"))},fixColumnWidth:function(e){var o,s,a,n,i,l=(e=t(e)[0]).config,d=l.$table.children("colgroup");if(d.length&&d.hasClass(r.css.colgroup)&&d.remove(),l.widthFixed&&0===l.$table.children("colgroup").length){for(d=t('<colgroup class="'+r.css.colgroup+'">'),o=l.$table.width(),n=(a=l.$tbodies.find("tr:first").children(":visible")).length,i=0;i<n;i++)s=parseInt(a.eq(i).width()/o*1e3,10)/10+"%",d.append(t("<col>").css("width",s));l.$table.prepend(d)}},getData:function(e,r,o){var s,a,n="",i=t(e);return i.length?(s=!!t.metadata&&i.metadata(),a=" "+(i.attr("class")||""),void 0!==i.data(o)||void 0!==i.data(o.toLowerCase())?n+=i.data(o)||i.data(o.toLowerCase()):s&&void 0!==s[o]?n+=s[o]:r&&void 0!==r[o]?n+=r[o]:" "!==a&&a.match(" "+o+"-")&&(n=a.match(new RegExp("\\s"+o+"-([\\w-]+)"))[1]||""),t.trim(n)):""},getColumnData:function(e,r,o,s,a){if("object"!=typeof r||null===r)return r;var n,i=(e=t(e)[0]).config,l=a||i.$headers,d=i.$headerIndexed&&i.$headerIndexed[o]||l.find('[data-column="'+o+'"]:last');if(void 0!==r[o])return s?r[o]:r[l.index(d)];for(n in r)if("string"==typeof n&&d.filter(n).add(d.find(n)).length)return r[n]},isProcessing:function(e,o,s){var a=(e=t(e))[0].config,n=s||e.find("."+r.css.header);o?(void 0!==s&&a.sortList.length>0&&(n=n.filter(function(){return!this.sortDisabled&&r.isValueInArray(parseFloat(t(this).attr("data-column")),a.sortList)>=0})),e.add(n).addClass(r.css.processing+" "+a.cssProcessing)):e.add(n).removeClass(r.css.processing+" "+a.cssProcessing)},processTbody:function(e,r,o){if(e=t(e)[0],o)return e.isProcessing=!0,r.before('<colgroup class="tablesorter-savemyplace"/>'),t.fn.detach?r.detach():r.remove();var s=t(e).find("colgroup.tablesorter-savemyplace");r.insertAfter(s),s.remove(),e.isProcessing=!1},clearTableBody:function(e){t(e)[0].config.$tbodies.children().detach()},characterEquivalents:{a:"áàâãäąå",A:"ÁÀÂÃÄĄÅ",c:"çćč",C:"ÇĆČ",e:"éèêëěę",E:"ÉÈÊËĚĘ",i:"íìİîïı",I:"ÍÌİÎÏ",o:"óòôõöō",O:"ÓÒÔÕÖŌ",ss:"ß",SS:"ẞ",u:"úùûüů",U:"ÚÙÛÜŮ"},replaceAccents:function(e){var t,o="[",s=r.characterEquivalents;if(!r.characterRegex){r.characterRegexArray={};for(t in s)"string"==typeof t&&(o+=s[t],r.characterRegexArray[t]=new RegExp("["+s[t]+"]","g"));r.characterRegex=new RegExp(o+"]")}if(r.characterRegex.test(e))for(t in s)"string"==typeof t&&(e=e.replace(r.characterRegexArray[t],t));return e},validateOptions:function(e){var o,s,a,n,i="headers sortForce sortList sortAppend widgets".split(" "),l=e.originalSettings;if(l){e.debug&&(n=new Date);for(o in l)if("undefined"===(a=typeof r.defaults[o]))console.warn('Tablesorter Warning! "table.config.'+o+'" option not recognized');else if("object"===a)for(s in l[o])a=r.defaults[o]&&typeof r.defaults[o][s],t.inArray(o,i)<0&&"undefined"===a&&console.warn('Tablesorter Warning! "table.config.'+o+"."+s+'" option not recognized');e.debug&&console.log("validate options time:"+r.benchmark(n))}},restoreHeaders:function(e){var o,s,a=t(e)[0].config,n=a.$table.find(a.selectorHeaders),i=n.length;for(o=0;o<i;o++)(s=n.eq(o)).find("."+r.css.headerIn).length&&s.html(a.headerContent[o])},destroy:function(e,o,s){if((e=t(e)[0]).hasInitialized){r.removeWidget(e,!0,!1);var a,n=t(e),i=e.config,l=i.debug,d=n.find("thead:first"),c=d.find("tr."+r.css.headerRow).removeClass(r.css.headerRow+" "+i.cssHeaderRow),g=n.find("tfoot:first > tr").children("th, td");!1===o&&t.inArray("uitheme",i.widgets)>=0&&(n.triggerHandler("applyWidgetId",["uitheme"]),n.triggerHandler("applyWidgetId",["zebra"])),d.find("tr").not(c).remove(),a="sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets removeWidget destroy mouseup mouseleave "+"keypress sortBegin sortEnd resetToLoadState ".split(" ").join(i.namespace+" "),n.removeData("tablesorter").unbind(a.replace(r.regex.spaces," ")),i.$headers.add(g).removeClass([r.css.header,i.cssHeader,i.cssAsc,i.cssDesc,r.css.sortAsc,r.css.sortDesc,r.css.sortNone].join(" ")).removeAttr("data-column").removeAttr("aria-label").attr("aria-disabled","true"),c.find(i.selectorSort).unbind("mousedown mouseup keypress ".split(" ").join(i.namespace+" ").replace(r.regex.spaces," ")),r.restoreHeaders(e),n.toggleClass(r.css.table+" "+i.tableClass+" tablesorter-"+i.theme,!1===o),n.removeClass(i.namespace.slice(1)),e.hasInitialized=!1,delete e.config.cache,"function"==typeof s&&s(e),l&&console.log("tablesorter has been removed")}}};t.fn.tablesorter=function(e){return this.each(function(){var o=this,s=t.extend(!0,{},r.defaults,e,r.instanceMethods);s.originalSettings=e,!o.hasInitialized&&r.buildTable&&"TABLE"!==this.nodeName?r.buildTable(o,s):r.setup(o,s)})},window.console&&window.console.log||(r.logs=[],console={},console.log=console.warn=console.error=console.table=function(){var e=arguments.length>1?arguments:arguments[0];r.logs[r.logs.length]={date:Date.now(),log:e}}),r.addParser({id:"no-parser",is:function(){return!1},format:function(){return""},type:"text"}),r.addParser({id:"text",is:function(){return!0},format:function(e,o){var s=o.config;return e&&(e=t.trim(s.ignoreCase?e.toLocaleLowerCase():e),e=s.sortLocaleCompare?r.replaceAccents(e):e),e},type:"text"}),r.regex.nondigit=/[^\w,. \-()]/g,r.addParser({id:"digit",is:function(e){return r.isDigit(e)},format:function(e,o){var s=r.formatFloat((e||"").replace(r.regex.nondigit,""),o);return e&&"number"==typeof s?s:e?t.trim(e&&o.config.ignoreCase?e.toLocaleLowerCase():e):e},type:"numeric"}),r.regex.currencyReplace=/[+\-,. ]/g,r.regex.currencyTest=/^\(?\d+[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]|[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+\)?$/,r.addParser({id:"currency",is:function(e){return e=(e||"").replace(r.regex.currencyReplace,""),r.regex.currencyTest.test(e)},format:function(e,o){var s=r.formatFloat((e||"").replace(r.regex.nondigit,""),o);return e&&"number"==typeof s?s:e?t.trim(e&&o.config.ignoreCase?e.toLocaleLowerCase():e):e},type:"numeric"}),r.regex.urlProtocolTest=/^(https?|ftp|file):\/\//,r.regex.urlProtocolReplace=/(https?|ftp|file):\/\/(www\.)?/,r.addParser({id:"url",is:function(e){return r.regex.urlProtocolTest.test(e)},format:function(e){return e?t.trim(e.replace(r.regex.urlProtocolReplace,"")):e},type:"text"}),r.regex.dash=/-/g,r.regex.isoDate=/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/,r.addParser({id:"isoDate",is:function(e){return r.regex.isoDate.test(e)},format:function(e,t){var o=e?new Date(e.replace(r.regex.dash,"/")):e;return o instanceof Date&&isFinite(o)?o.getTime():e},type:"numeric"}),r.regex.percent=/%/g,r.regex.percentTest=/(\d\s*?%|%\s*?\d)/,r.addParser({id:"percent",is:function(e){return r.regex.percentTest.test(e)&&e.length<15},format:function(e,t){return e?r.formatFloat(e.replace(r.regex.percent,""),t):e},type:"numeric"}),r.addParser({id:"image",is:function(e,t,r,o){return o.find("img").length>0},format:function(e,r,o){return t(o).find("img").attr(r.config.imgAttr||"alt")||e},parsed:!0,type:"text"}),r.regex.dateReplace=/(\S)([AP]M)$/i,r.regex.usLongDateTest1=/^[A-Z]{3,10}\.?\s+\d{1,2},?\s+(\d{4})(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?$/i,r.regex.usLongDateTest2=/^\d{1,2}\s+[A-Z]{3,10}\s+\d{4}/i,r.addParser({id:"usLongDate",is:function(e){return r.regex.usLongDateTest1.test(e)||r.regex.usLongDateTest2.test(e)},format:function(e,t){var o=e?new Date(e.replace(r.regex.dateReplace,"$1 $2")):e;return o instanceof Date&&isFinite(o)?o.getTime():e},type:"numeric"}),r.regex.shortDateTest=/(^\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4})|(^\d{4}[\/\s]\d{1,2}[\/\s]\d{1,2})/,r.regex.shortDateReplace=/[\-.,]/g,r.regex.shortDateXXY=/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,r.regex.shortDateYMD=/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/,r.convertFormat=function(e,t){e=(e||"").replace(r.regex.spaces," ").replace(r.regex.shortDateReplace,"/"),"mmddyyyy"===t?e=e.replace(r.regex.shortDateXXY,"$3/$1/$2"):"ddmmyyyy"===t?e=e.replace(r.regex.shortDateXXY,"$3/$2/$1"):"yyyymmdd"===t&&(e=e.replace(r.regex.shortDateYMD,"$1/$2/$3"));var o=new Date(e);return o instanceof Date&&isFinite(o)?o.getTime():""},r.addParser({id:"shortDate",is:function(e){return e=(e||"").replace(r.regex.spaces," ").replace(r.regex.shortDateReplace,"/"),r.regex.shortDateTest.test(e)},format:function(e,t,o,s){if(e){var a=t.config,n=a.$headerIndexed[s],i=n.length&&n.data("dateFormat")||r.getData(n,r.getColumnData(t,a.headers,s),"dateFormat")||a.dateFormat;return n.length&&n.data("dateFormat",i),r.convertFormat(e,i)||e}return e},type:"numeric"}),r.regex.timeTest=/^(0?[1-9]|1[0-2]):([0-5]\d)(\s[AP]M)$|^((?:[01]\d|[2][0-4]):[0-5]\d)$/i,r.regex.timeMatch=/(0?[1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i,r.addParser({id:"time",is:function(e){return r.regex.timeTest.test(e)},format:function(e,t){var o,s=(e||"").match(r.regex.timeMatch),a=new Date(e),n=e&&(null!==s?s[0]:"00:00 AM"),i=n?new Date("2000/01/01 "+n.replace(r.regex.dateReplace,"$1 $2")):n;return i instanceof Date&&isFinite(i)?(o=a instanceof Date&&isFinite(a)?a.getTime():0,o?parseFloat(i.getTime()+"."+a.getTime()):i.getTime()):e},type:"numeric"}),r.addParser({id:"metadata",is:function(){return!1},format:function(e,r,o){var s=r.config,a=s.parserMetadataName?s.parserMetadataName:"sortValue";return t(o).metadata()[a]},type:"numeric"}),r.addWidget({id:"zebra",priority:90,format:function(e,r,o){var s,a,n,i,l,d,c,g=new RegExp(r.cssChildRow,"i"),p=r.$tbodies.add(t(r.namespace+"_extra_table").children("tbody:not(."+r.cssInfoBlock+")"));for(l=0;l<p.length;l++)for(n=0,c=(s=p.eq(l).children("tr:visible").not(r.selectorRemove)).length,d=0;d<c;d++)a=s.eq(d),g.test(a[0].className)||n++,i=n%2==0,a.removeClass(o.zebra[i?1:0]).addClass(o.zebra[i?0:1])},remove:function(e,t,o,s){if(!s){var a,n,i=t.$tbodies,l=(o.zebra||["even","odd"]).join(" ");for(a=0;a<i.length;a++)(n=r.processTbody(e,i.eq(a),!0)).children().removeClass(l),r.processTbody(e,n,!1)}}})}(e),e.tablesorter});
|
js/tablesorter/jquery.tablesorter.widgets.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! tablesorter (FORK) - updated 2018-
|
2 |
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
3 |
(function(factory) {
|
4 |
if (typeof define === 'function' && define.amd) {
|
@@ -2447,7 +2447,7 @@
|
|
2447 |
var index, len, $t,
|
2448 |
$table = c.$table,
|
2449 |
// add position: relative to attach element, hopefully it won't cause trouble.
|
2450 |
-
$attach = $(wo.stickyHeaders_attachTo),
|
2451 |
namespace = c.namespace + 'stickyheaders ',
|
2452 |
// element to watch for the scroll event
|
2453 |
$yScroll = $(wo.stickyHeaders_yScroll || wo.stickyHeaders_attachTo || window),
|
@@ -2507,7 +2507,10 @@
|
|
2507 |
});
|
2508 |
}
|
2509 |
},
|
2510 |
-
getLeftPosition = function() {
|
|
|
|
|
|
|
2511 |
return $attach.length ?
|
2512 |
parseInt($attach.css('padding-left'), 10) || 0 :
|
2513 |
$table.offset().left - parseInt($table.css('margin-left'), 10) - $(window).scrollLeft();
|
@@ -2528,9 +2531,11 @@
|
|
2528 |
offset = $table.offset(),
|
2529 |
stickyOffset = getStickyOffset(c, wo),
|
2530 |
yWindow = $.isWindow( $yScroll[0] ), // $.isWindow needs jQuery 1.4.3
|
2531 |
-
|
2532 |
-
|
2533 |
-
|
|
|
|
|
2534 |
captionHeight = wo.stickyHeaders_includeCaption ? 0 : $table.children( 'caption' ).height() || 0,
|
2535 |
scrollTop = attachTop + stickyOffset + nestedStickyTop - captionHeight,
|
2536 |
tableHeight = $table.height() - ($stickyWrap.height() + ($tfoot.height() || 0)) - captionHeight,
|
@@ -2544,12 +2549,14 @@
|
|
2544 |
cssSettings.top = yWindow ? scrollTop - $attach.offset().top : $attach.scrollTop();
|
2545 |
}
|
2546 |
// adjust when scrolling horizontally - fixes issue #143
|
2547 |
-
tmp = getLeftPosition();
|
2548 |
if (tmp !== parseInt($stickyWrap.css('left'), 10)) {
|
2549 |
needsUpdating = true;
|
2550 |
cssSettings.left = tmp;
|
2551 |
}
|
2552 |
-
cssSettings.top = ( cssSettings.top || 0 ) +
|
|
|
|
|
2553 |
if (needsUpdating) {
|
2554 |
$stickyWrap
|
2555 |
.removeClass( ts.css.stickyVis + ' ' + ts.css.stickyHide )
|
@@ -2570,8 +2577,8 @@
|
|
2570 |
if ($stickyTable.attr('id')) { $stickyTable[0].id += wo.stickyHeaders_cloneId; }
|
2571 |
// clear out cloned table, except for sticky header
|
2572 |
// include caption & filter row (fixes #126 & #249) - don't remove cells to get correct cell indexing
|
2573 |
-
$stickyTable.find('thead:gt(0), tr.sticky-false').hide();
|
2574 |
-
$stickyTable.find('tbody, tfoot').remove();
|
2575 |
$stickyTable.find('caption').toggle(wo.stickyHeaders_includeCaption);
|
2576 |
// issue #172 - find td/th in sticky header
|
2577 |
$stickyCells = $stickyThead.children().children();
|
@@ -2603,7 +2610,6 @@
|
|
2603 |
c.onRenderHeader.apply( $t.eq( index ), [ index, c, $stickyTable ] );
|
2604 |
}
|
2605 |
}
|
2606 |
-
|
2607 |
// make it sticky!
|
2608 |
$xScroll.add($yScroll)
|
2609 |
.unbind( ('scroll resize '.split(' ').join( namespace )).replace(/\s+/g, ' ') )
|
@@ -2674,7 +2680,7 @@
|
|
2674 |
|
2675 |
})(jQuery, window);
|
2676 |
|
2677 |
-
/*! Widget: resizable - updated
|
2678 |
/*jshint browser:true, jquery:true, unused:false */
|
2679 |
;(function ($, window) {
|
2680 |
'use strict';
|
@@ -3065,7 +3071,7 @@
|
|
3065 |
if ( vars.overflow && vars.tableWidth ) {
|
3066 |
ts.resizable.setWidth( c.$table, vars.tableWidth, true );
|
3067 |
if ( vars.useStorage ) {
|
3068 |
-
ts.storage( table, 'tablesorter-table-resized-width',
|
3069 |
}
|
3070 |
}
|
3071 |
for ( index = 0; index < c.columns; index++ ) {
|
@@ -3081,7 +3087,7 @@
|
|
3081 |
// reset stickyHeader widths
|
3082 |
c.$table.triggerHandler( 'stickyHeadersUpdate' );
|
3083 |
if ( ts.storage && !refreshing ) {
|
3084 |
-
ts.storage( this, ts.css.resizableStorage,
|
3085 |
}
|
3086 |
}
|
3087 |
});
|
1 |
+
/*! tablesorter (FORK) - updated 2018-02-25 (v2.29.6)*/
|
2 |
/* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
|
3 |
(function(factory) {
|
4 |
if (typeof define === 'function' && define.amd) {
|
2447 |
var index, len, $t,
|
2448 |
$table = c.$table,
|
2449 |
// add position: relative to attach element, hopefully it won't cause trouble.
|
2450 |
+
$attach = $(wo.stickyHeaders_attachTo || wo.stickyHeaders_appendTo),
|
2451 |
namespace = c.namespace + 'stickyheaders ',
|
2452 |
// element to watch for the scroll event
|
2453 |
$yScroll = $(wo.stickyHeaders_yScroll || wo.stickyHeaders_attachTo || window),
|
2507 |
});
|
2508 |
}
|
2509 |
},
|
2510 |
+
getLeftPosition = function(yWindow) {
|
2511 |
+
if (yWindow === false && $nestedSticky.length) {
|
2512 |
+
return $table.position().left;
|
2513 |
+
}
|
2514 |
return $attach.length ?
|
2515 |
parseInt($attach.css('padding-left'), 10) || 0 :
|
2516 |
$table.offset().left - parseInt($table.css('margin-left'), 10) - $(window).scrollLeft();
|
2531 |
offset = $table.offset(),
|
2532 |
stickyOffset = getStickyOffset(c, wo),
|
2533 |
yWindow = $.isWindow( $yScroll[0] ), // $.isWindow needs jQuery 1.4.3
|
2534 |
+
yScroll = yWindow ?
|
2535 |
+
$yScroll.scrollTop() :
|
2536 |
+
// use parent sticky position if nested AND inside of a scrollable element - see #1512
|
2537 |
+
$nestedSticky.length ? parseInt($nestedSticky[0].style.top, 10) : $yScroll.offset().top,
|
2538 |
+
attachTop = $attach.length ? yScroll : $yScroll.scrollTop(),
|
2539 |
captionHeight = wo.stickyHeaders_includeCaption ? 0 : $table.children( 'caption' ).height() || 0,
|
2540 |
scrollTop = attachTop + stickyOffset + nestedStickyTop - captionHeight,
|
2541 |
tableHeight = $table.height() - ($stickyWrap.height() + ($tfoot.height() || 0)) - captionHeight,
|
2549 |
cssSettings.top = yWindow ? scrollTop - $attach.offset().top : $attach.scrollTop();
|
2550 |
}
|
2551 |
// adjust when scrolling horizontally - fixes issue #143
|
2552 |
+
tmp = getLeftPosition(yWindow);
|
2553 |
if (tmp !== parseInt($stickyWrap.css('left'), 10)) {
|
2554 |
needsUpdating = true;
|
2555 |
cssSettings.left = tmp;
|
2556 |
}
|
2557 |
+
cssSettings.top = ( cssSettings.top || 0 ) +
|
2558 |
+
// If nested AND inside of a scrollable element, only add parent sticky height
|
2559 |
+
(!yWindow && $nestedSticky.length ? $nestedSticky.height() : stickyOffset + nestedStickyTop);
|
2560 |
if (needsUpdating) {
|
2561 |
$stickyWrap
|
2562 |
.removeClass( ts.css.stickyVis + ' ' + ts.css.stickyHide )
|
2577 |
if ($stickyTable.attr('id')) { $stickyTable[0].id += wo.stickyHeaders_cloneId; }
|
2578 |
// clear out cloned table, except for sticky header
|
2579 |
// include caption & filter row (fixes #126 & #249) - don't remove cells to get correct cell indexing
|
2580 |
+
$stickyTable.find('> thead:gt(0), tr.sticky-false').hide();
|
2581 |
+
$stickyTable.find('> tbody, > tfoot').remove();
|
2582 |
$stickyTable.find('caption').toggle(wo.stickyHeaders_includeCaption);
|
2583 |
// issue #172 - find td/th in sticky header
|
2584 |
$stickyCells = $stickyThead.children().children();
|
2610 |
c.onRenderHeader.apply( $t.eq( index ), [ index, c, $stickyTable ] );
|
2611 |
}
|
2612 |
}
|
|
|
2613 |
// make it sticky!
|
2614 |
$xScroll.add($yScroll)
|
2615 |
.unbind( ('scroll resize '.split(' ').join( namespace )).replace(/\s+/g, ' ') )
|
2680 |
|
2681 |
})(jQuery, window);
|
2682 |
|
2683 |
+
/*! Widget: resizable - updated 2018-02-14 (v2.29.6) */
|
2684 |
/*jshint browser:true, jquery:true, unused:false */
|
2685 |
;(function ($, window) {
|
2686 |
'use strict';
|
3071 |
if ( vars.overflow && vars.tableWidth ) {
|
3072 |
ts.resizable.setWidth( c.$table, vars.tableWidth, true );
|
3073 |
if ( vars.useStorage ) {
|
3074 |
+
ts.storage( table, 'tablesorter-table-resized-width', vars.tableWidth );
|
3075 |
}
|
3076 |
}
|
3077 |
for ( index = 0; index < c.columns; index++ ) {
|
3087 |
// reset stickyHeader widths
|
3088 |
c.$table.triggerHandler( 'stickyHeadersUpdate' );
|
3089 |
if ( ts.storage && !refreshing ) {
|
3090 |
+
ts.storage( this, ts.css.resizableStorage, [] );
|
3091 |
}
|
3092 |
}
|
3093 |
});
|
js/tablesorter/jquery.tablesorter.widgets.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
/*! tablesorter (FORK) - updated 2018-
|
2 |
-
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){return function(e,t,r){"use strict";var i=e.tablesorter||{};e.extend(!0,i.defaults,{fixedUrl:"",widgetOptions:{storage_fixedUrl:"",storage_group:"",storage_page:"",storage_storageType:"",storage_tableId:"",storage_useSessionStorage:""}}),i.storage=function(i,a,l,s){var n,o,c,d=!1,f={},h=(i=e(i)[0]).config,u=h&&h.widgetOptions,p=(s&&s.storageType||u&&u.storage_storageType).toString().charAt(0).toLowerCase(),g=p?"":s&&s.useSessionStorage||u&&u.storage_useSessionStorage,m=e(i),b=s&&s.id||m.attr(s&&s.group||u&&u.storage_group||"data-table-group")||u&&u.storage_tableId||i.id||e(".tablesorter").index(m),y=s&&s.url||m.attr(s&&s.page||u&&u.storage_page||"data-table-page")||u&&u.storage_fixedUrl||h&&h.fixedUrl||t.location.pathname;if("c"!==p&&(p="s"===p||g?"sessionStorage":"localStorage")in t)try{t[p].setItem("_tmptest","temp"),d=!0,t[p].removeItem("_tmptest")}catch(e){h&&h.debug&&console.warn(p+" is not supported in this browser")}if(h.debug&&console.log("Storage widget using",d?p:"cookies"),e.parseJSON&&(d?f=e.parseJSON(t[p][a]||"null")||{}:(o=r.cookie.split(/[;\s|=]/),f=0!==(n=e.inArray(a,o)+1)?e.parseJSON(o[n]||"null")||{}:{})),void 0===l||!t.JSON||!JSON.hasOwnProperty("stringify"))return f&&f[y]?f[y][b]:"";f[y]||(f[y]={}),f[y][b]=l,d?t[p][a]=JSON.stringify(f):((c=new Date).setTime(c.getTime()+31536e6),r.cookie=a+"="+JSON.stringify(f).replace(/\"/g,'"')+"; expires="+c.toGMTString()+"; path=/")}}(e,window,document),function(e){"use strict";var t=e.tablesorter||{};t.themes={bootstrap:{table:"table table-bordered table-striped",caption:"caption",header:"bootstrap-header",sortNone:"",sortAsc:"",sortDesc:"",active:"",hover:"",icons:"",iconSortNone:"bootstrap-icon-unsorted",iconSortAsc:"glyphicon glyphicon-chevron-up",iconSortDesc:"glyphicon glyphicon-chevron-down",filterRow:"",footerRow:"",footerCells:"",even:"",odd:""},jui:{table:"ui-widget ui-widget-content ui-corner-all",caption:"ui-widget-content",header:"ui-widget-header ui-corner-all ui-state-default",sortNone:"",sortAsc:"",sortDesc:"",active:"ui-state-active",hover:"ui-state-hover",icons:"ui-icon",iconSortNone:"ui-icon-carat-2-n-s ui-icon-caret-2-n-s",iconSortAsc:"ui-icon-carat-1-n ui-icon-caret-1-n",iconSortDesc:"ui-icon-carat-1-s ui-icon-caret-1-s",filterRow:"",footerRow:"",footerCells:"",even:"ui-widget-content",odd:"ui-state-default"}},e.extend(t.css,{wrapper:"tablesorter-wrapper"}),t.addWidget({id:"uitheme",priority:10,format:function(r,i,a){var l,s,n,o,c,d,f,h,u,p,g,m,b,y=t.themes,_=i.$table.add(e(i.namespace+"_extra_table")),v=i.$headers.add(e(i.namespace+"_extra_headers")),w=i.theme||"jui",x=y[w]||{},S=e.trim([x.sortNone,x.sortDesc,x.sortAsc,x.active].join(" ")),C=e.trim([x.iconSortNone,x.iconSortDesc,x.iconSortAsc].join(" "));for(i.debug&&(c=new Date),_.hasClass("tablesorter-"+w)&&i.theme===i.appliedTheme&&a.uitheme_applied||(a.uitheme_applied=!0,p=y[i.appliedTheme]||{},g=(b=!e.isEmptyObject(p))?[p.sortNone,p.sortDesc,p.sortAsc,p.active].join(" "):"",m=b?[p.iconSortNone,p.iconSortDesc,p.iconSortAsc].join(" "):"",b&&(a.zebra[0]=e.trim(" "+a.zebra[0].replace(" "+p.even,"")),a.zebra[1]=e.trim(" "+a.zebra[1].replace(" "+p.odd,"")),i.$tbodies.children().removeClass([p.even,p.odd].join(" "))),x.even&&(a.zebra[0]+=" "+x.even),x.odd&&(a.zebra[1]+=" "+x.odd),_.children("caption").removeClass(p.caption||"").addClass(x.caption),h=_.removeClass((i.appliedTheme?"tablesorter-"+(i.appliedTheme||""):"")+" "+(p.table||"")).addClass("tablesorter-"+w+" "+(x.table||"")).children("tfoot"),i.appliedTheme=i.theme,h.length&&h.children("tr").removeClass(p.footerRow||"").addClass(x.footerRow).children("th, td").removeClass(p.footerCells||"").addClass(x.footerCells),v.removeClass((b?[p.header,p.hover,g].join(" "):"")||"").addClass(x.header).not(".sorter-false").unbind("mouseenter.tsuitheme mouseleave.tsuitheme").bind("mouseenter.tsuitheme mouseleave.tsuitheme",function(t){e(this)["mouseenter"===t.type?"addClass":"removeClass"](x.hover||"")}),v.each(function(){var r=e(this);r.find("."+t.css.wrapper).length||r.wrapInner('<div class="'+t.css.wrapper+'" style="position:relative;height:100%;width:100%"></div>')}),i.cssIcon&&v.find("."+t.css.icon).removeClass(b?[p.icons,m].join(" "):"").addClass(x.icons||""),t.hasWidget(i.table,"filter")&&(s=function(){_.children("thead").children("."+t.css.filterRow).removeClass(b?p.filterRow||"":"").addClass(x.filterRow||"")},a.filter_initialized?s():_.one("filterInit",function(){s()}))),l=0;l<i.columns;l++)d=i.$headers.add(e(i.namespace+"_extra_headers")).not(".sorter-false").filter('[data-column="'+l+'"]'),f=t.css.icon?d.find("."+t.css.icon):e(),(u=v.not(".sorter-false").filter('[data-column="'+l+'"]:last')).length&&(d.removeClass(S),f.removeClass(C),u[0].sortDisabled?f.removeClass(x.icons||""):(n=x.sortNone,o=x.iconSortNone,u.hasClass(t.css.sortAsc)?(n=[x.sortAsc,x.active].join(" "),o=x.iconSortAsc):u.hasClass(t.css.sortDesc)&&(n=[x.sortDesc,x.active].join(" "),o=x.iconSortDesc),d.addClass(n),f.addClass(o||"")));i.debug&&console.log("Applying "+w+" theme"+t.benchmark(c))},remove:function(e,r,i,a){if(i.uitheme_applied){var l=r.$table,s=r.appliedTheme||"jui",n=t.themes[s]||t.themes.jui,o=l.children("thead").children(),c=n.sortNone+" "+n.sortDesc+" "+n.sortAsc,d=n.iconSortNone+" "+n.iconSortDesc+" "+n.iconSortAsc;l.removeClass("tablesorter-"+s+" "+n.table),i.uitheme_applied=!1,a||(l.find(t.css.header).removeClass(n.header),o.unbind("mouseenter.tsuitheme mouseleave.tsuitheme").removeClass(n.hover+" "+c+" "+n.active).filter("."+t.css.filterRow).removeClass(n.filterRow),o.find("."+t.css.icon).removeClass(n.icons+" "+d))}}})}(e),function(e){"use strict";var t=e.tablesorter||{};t.addWidget({id:"columns",priority:65,options:{columns:["primary","secondary","tertiary"]},format:function(r,i,a){var l,s,n,o,c,d,f,h,u=i.$table,p=i.$tbodies,g=i.sortList,m=g.length,b=a&&a.columns||["primary","secondary","tertiary"],y=b.length-1;for(f=b.join(" "),s=0;s<p.length;s++)(n=(l=t.processTbody(r,p.eq(s),!0)).children("tr")).each(function(){if(c=e(this),"none"!==this.style.display&&(d=c.children().removeClass(f),g&&g[0]&&(d.eq(g[0][0]).addClass(b[0]),m>1)))for(h=1;h<m;h++)d.eq(g[h][0]).addClass(b[h]||b[y])}),t.processTbody(r,l,!1);if(o=!1!==a.columns_thead?["thead tr"]:[],!1!==a.columns_tfoot&&o.push("tfoot tr"),o.length&&(n=u.find(o.join(",")).children().removeClass(f),m))for(h=0;h<m;h++)n.filter('[data-column="'+g[h][0]+'"]').addClass(b[h]||b[y])},remove:function(r,i,a){var l,s,n=i.$tbodies,o=(a.columns||["primary","secondary","tertiary"]).join(" ");for(i.$headers.removeClass(o),i.$table.children("tfoot").children("tr").children("th, td").removeClass(o),l=0;l<n.length;l++)(s=t.processTbody(r,n.eq(l),!0)).children("tr").each(function(){e(this).children().removeClass(o)}),t.processTbody(r,s,!1)}})}(e),function(e){"use strict";var t,r,i=e.tablesorter||{},a=i.css,l=i.keyCodes;e.extend(a,{filterRow:"tablesorter-filter-row",filter:"tablesorter-filter",filterDisabled:"disabled",filterRowHide:"hideme"}),e.extend(l,{backSpace:8,escape:27,space:32,left:37,down:40}),i.addWidget({id:"filter",priority:50,options:{filter_cellFilter:"",filter_childRows:!1,filter_childByColumn:!1,filter_childWithSibs:!0,filter_columnAnyMatch:!0,filter_columnFilters:!0,filter_cssFilter:"",filter_defaultAttrib:"data-value",filter_defaultFilter:{},filter_excludeFilter:{},filter_external:"",filter_filteredRow:"filtered",filter_filterLabel:'Filter "{{label}}" column by...',filter_formatter:null,filter_functions:null,filter_hideEmpty:!0,filter_hideFilters:!1,filter_ignoreCase:!0,filter_liveSearch:!0,filter_matchType:{input:"exact",select:"exact"},filter_onlyAvail:"filter-onlyAvail",filter_placeholder:{search:"",select:""},filter_reset:null,filter_resetOnEsc:!0,filter_saveFilters:!1,filter_searchDelay:300,filter_searchFiltered:!0,filter_selectSource:null,filter_selectSourceSeparator:"|",filter_serversideFiltering:!1,filter_startsWith:!1,filter_useParsedData:!1},format:function(e,r,i){r.$table.hasClass("hasFilters")||t.init(e,r,i)},remove:function(t,r,l,s){var n,o,c=r.$table,d=r.$tbodies,f="addRows updateCell update updateRows updateComplete appendCache filterReset filterAndSortReset filterFomatterUpdate filterEnd search stickyHeadersInit ".split(" ").join(r.namespace+"filter ");if(c.removeClass("hasFilters").unbind(f.replace(i.regex.spaces," ")).find("."+a.filterRow).remove(),l.filter_initialized=!1,!s){for(n=0;n<d.length;n++)(o=i.processTbody(t,d.eq(n),!0)).children().removeClass(l.filter_filteredRow).show(),i.processTbody(t,o,!1);l.filter_reset&&e(document).undelegate(l.filter_reset,"click"+r.namespace+"filter")}}}),t=i.filter={regex:{regex:/^\/((?:\\\/|[^\/])+)\/([migyu]{0,5})?$/,child:/tablesorter-childRow/,filtered:/filtered/,type:/undefined|number/,exact:/(^[\"\'=]+)|([\"\'=]+$)/g,operators:/[<>=]/g,query:"(q|query)",wild01:/\?/g,wild0More:/\*/g,quote:/\"/g,isNeg1:/(>=?\s*-\d)/,isNeg2:/(<=?\s*\d)/},types:{or:function(i,a,l){if((r.orTest.test(a.iFilter)||r.orSplit.test(a.filter))&&!r.regex.test(a.filter)){var s,n,o,c,d=e.extend({},a),f=a.filter.split(r.orSplit),h=a.iFilter.split(r.orSplit),u=f.length;for(s=0;s<u;s++){d.nestedFilters=!0,d.filter=""+(t.parseFilter(i,f[s],a)||""),d.iFilter=""+(t.parseFilter(i,h[s],a)||""),o="("+(t.parseFilter(i,d.filter,a)||"")+")";try{if(c=new RegExp(a.isMatch?o:"^"+o+"$",i.widgetOptions.filter_ignoreCase?"i":""),n=c.test(d.exact)||t.processTypes(i,d,l))return n}catch(e){return null}}return n||!1}return null},and:function(i,a,l){if(r.andTest.test(a.filter)){var s,n,o,c,d=e.extend({},a),f=a.filter.split(r.andSplit),h=a.iFilter.split(r.andSplit),u=f.length;for(s=0;s<u;s++){d.nestedFilters=!0,d.filter=""+(t.parseFilter(i,f[s],a)||""),d.iFilter=""+(t.parseFilter(i,h[s],a)||""),c=("("+(t.parseFilter(i,d.filter,a)||"")+")").replace(r.wild01,"\\S{1}").replace(r.wild0More,"\\S*");try{o=new RegExp(a.isMatch?c:"^"+c+"$",i.widgetOptions.filter_ignoreCase?"i":"").test(d.exact)||t.processTypes(i,d,l),n=0===s?o:n&&o}catch(e){return null}}return n||!1}return null},regex:function(e,t){if(r.regex.test(t.filter)){var i,a=t.filter_regexCache[t.index]||r.regex.exec(t.filter),l=a instanceof RegExp;try{l||(t.filter_regexCache[t.index]=a=new RegExp(a[1],a[2])),i=a.test(t.exact)}catch(e){i=!1}return i}return null},operators:function(a,l){if(r.operTest.test(l.iFilter)&&""!==l.iExact){var s,n,o,c=a.table,d=l.parsed[l.index],f=i.formatFloat(l.iFilter.replace(r.operators,""),c),h=a.parsers[l.index]||{},u=f;return(d||"numeric"===h.type)&&(o=e.trim(""+l.iFilter.replace(r.operators,"")),f="number"!=typeof(n=t.parseFilter(a,o,l,!0))||""===n||isNaN(n)?f:n),!d&&"numeric"!==h.type||isNaN(f)||void 0===l.cache?(o=isNaN(l.iExact)?l.iExact.replace(i.regex.nondigit,""):l.iExact,s=i.formatFloat(o,c)):s=l.cache,r.gtTest.test(l.iFilter)?n=r.gteTest.test(l.iFilter)?s>=f:s>f:r.ltTest.test(l.iFilter)&&(n=r.lteTest.test(l.iFilter)?s<=f:s<f),n||""!==u||(n=!0),n}return null},notMatch:function(i,a){if(r.notTest.test(a.iFilter)){var l,s=a.iFilter.replace("!",""),n=t.parseFilter(i,s,a)||"";return r.exact.test(n)?""===(n=n.replace(r.exact,""))||e.trim(n)!==a.iExact:(l=a.iExact.search(e.trim(n)),""===n||(a.anyMatch?l<0:!(i.widgetOptions.filter_startsWith?0===l:l>=0)))}return null},exact:function(i,a){if(r.exact.test(a.iFilter)){var l=a.iFilter.replace(r.exact,""),s=t.parseFilter(i,l,a)||"";return a.anyMatch?e.inArray(s,a.rowArray)>=0:s==a.iExact}return null},range:function(e,a){if(r.toTest.test(a.iFilter)){var l,s,n,o,c=e.table,d=a.index,f=a.parsed[d],h=a.iFilter.split(r.toSplit);return s=h[0].replace(i.regex.nondigit,"")||"",n=i.formatFloat(t.parseFilter(e,s,a),c),s=h[1].replace(i.regex.nondigit,"")||"",o=i.formatFloat(t.parseFilter(e,s,a),c),(f||"numeric"===e.parsers[d].type)&&(n=""===(l=e.parsers[d].format(""+h[0],c,e.$headers.eq(d),d))||isNaN(l)?n:l,o=""===(l=e.parsers[d].format(""+h[1],c,e.$headers.eq(d),d))||isNaN(l)?o:l),!f&&"numeric"!==e.parsers[d].type||isNaN(n)||isNaN(o)?(s=isNaN(a.iExact)?a.iExact.replace(i.regex.nondigit,""):a.iExact,l=i.formatFloat(s,c)):l=a.cache,n>o&&(s=n,n=o,o=s),l>=n&&l<=o||""===n||""===o}return null},wild:function(e,i){if(r.wildOrTest.test(i.iFilter)){var a=""+(t.parseFilter(e,i.iFilter,i)||"");!r.wildTest.test(a)&&i.nestedFilters&&(a=i.isMatch?a:"^("+a+")$");try{return new RegExp(a.replace(r.wild01,"\\S{1}").replace(r.wild0More,"\\S*"),e.widgetOptions.filter_ignoreCase?"i":"").test(i.exact)}catch(e){return null}}return null},fuzzy:function(e,i){if(r.fuzzyTest.test(i.iFilter)){var a,l=0,s=i.iExact.length,n=i.iFilter.slice(1),o=t.parseFilter(e,n,i)||"";for(a=0;a<s;a++)i.iExact[a]===o[l]&&(l+=1);return l===o.length}return null}},init:function(l){i.language=e.extend(!0,{},{to:"to",or:"or",and:"and"},i.language);var s,n,o,c,d,f,h,u,p=l.config,g=p.widgetOptions,m=function(e,t,r){return t=t.trim(),""===t?"":(e||"")+t+(r||"")};if(p.$table.addClass("hasFilters"),p.lastSearch=[],g.filter_searchTimer=null,g.filter_initTimer=null,g.filter_formatterCount=0,g.filter_formatterInit=[],g.filter_anyColumnSelector='[data-column="all"],[data-column="any"]',g.filter_multipleColumnSelector='[data-column*="-"],[data-column*=","]',f="\\{"+r.query+"\\}",e.extend(r,{child:new RegExp(p.cssChildRow),filtered:new RegExp(g.filter_filteredRow),alreadyFiltered:new RegExp("(\\s+(-"+m("|",i.language.or)+m("|",i.language.to)+")\\s+)","i"),toTest:new RegExp("\\s+(-"+m("|",i.language.to)+")\\s+","i"),toSplit:new RegExp("(?:\\s+(?:-"+m("|",i.language.to)+")\\s+)","gi"),andTest:new RegExp("\\s+("+m("",i.language.and,"|")+"&&)\\s+","i"),andSplit:new RegExp("(?:\\s+(?:"+m("",i.language.and,"|")+"&&)\\s+)","gi"),orTest:new RegExp("(\\|"+m("|\\s+",i.language.or,"\\s+")+")","i"),orSplit:new RegExp("(?:\\|"+m("|\\s+(?:",i.language.or,")\\s+")+")","gi"),iQuery:new RegExp(f,"i"),igQuery:new RegExp(f,"ig"),operTest:/^[<>]=?/,gtTest:/>/,gteTest:/>=/,ltTest:/</,lteTest:/<=/,notTest:/^\!/,wildOrTest:/[\?\*\|]/,wildTest:/\?\*/,fuzzyTest:/^~/,exactTest:/[=\"\|!]/}),f=p.$headers.filter(".filter-false, .parser-false").length,!1!==g.filter_columnFilters&&f!==p.$headers.length&&t.buildRow(l,p,g),o="addRows updateCell update updateRows updateComplete appendCache filterReset "+"filterAndSortReset filterResetSaved filterEnd search ".split(" ").join(p.namespace+"filter "),p.$table.bind(o,function(r,s){return f=g.filter_hideEmpty&&e.isEmptyObject(p.cache)&&!(p.delayInit&&"appendCache"===r.type),p.$table.find("."+a.filterRow).toggleClass(g.filter_filteredRow,f),/(search|filter)/.test(r.type)||(r.stopPropagation(),t.buildDefault(l,!0)),"filterReset"===r.type||"filterAndSortReset"===r.type?(p.$table.find("."+a.filter).add(g.filter_$externalFilters).val(""),"filterAndSortReset"===r.type?i.sortReset(this.config,function(){t.searching(l,[])}):t.searching(l,[])):"filterResetSaved"===r.type?i.storage(l,"tablesorter-filters",""):"filterEnd"===r.type?t.buildDefault(l,!0):(s="search"===r.type?s:"updateComplete"===r.type?p.$table.data("lastSearch"):"",/(update|add)/.test(r.type)&&"updateComplete"!==r.type&&(p.lastCombinedFilter=null,p.lastSearch=[],setTimeout(function(){p.$table.triggerHandler("filterFomatterUpdate")},100)),t.searching(l,s,!0)),!1}),g.filter_reset&&(g.filter_reset instanceof e?g.filter_reset.click(function(){p.$table.triggerHandler("filterReset")}):e(g.filter_reset).length&&e(document).undelegate(g.filter_reset,"click"+p.namespace+"filter").delegate(g.filter_reset,"click"+p.namespace+"filter",function(){p.$table.triggerHandler("filterReset")})),g.filter_functions)for(d=0;d<p.columns;d++)if(h=i.getColumnData(l,g.filter_functions,d))if(c=p.$headerIndexed[d].removeClass("filter-select"),u=!(c.hasClass("filter-false")||c.hasClass("parser-false")),s="",!0===h&&u)t.buildSelect(l,d);else if("object"==typeof h&&u){for(n in h)"string"==typeof n&&(s+=""===s?'<option value="">'+(c.data("placeholder")||c.attr("data-placeholder")||g.filter_placeholder.select||"")+"</option>":"",f=n,o=n,n.indexOf(g.filter_selectSourceSeparator)>=0&&(o=(f=n.split(g.filter_selectSourceSeparator))[1],f=f[0]),s+="<option "+(o===f?"":'data-function-name="'+n+'" ')+'value="'+f+'">'+o+"</option>");p.$table.find("thead").find("select."+a.filter+'[data-column="'+d+'"]').append(s),(h="function"==typeof(o=g.filter_selectSource)||i.getColumnData(l,o,d))&&t.buildSelect(p.table,d,"",!0,c.hasClass(g.filter_onlyAvail))}t.buildDefault(l,!0),t.bindSearch(l,p.$table.find("."+a.filter),!0),g.filter_external&&t.bindSearch(l,g.filter_external),g.filter_hideFilters&&t.hideFilters(p),p.showProcessing&&(o="filterStart filterEnd ".split(" ").join(p.namespace+"filter "),p.$table.unbind(o.replace(i.regex.spaces," ")).bind(o,function(t,r){c=r?p.$table.find("."+a.header).filter("[data-column]").filter(function(){return""!==r[e(this).data("column")]}):"",i.isProcessing(l,"filterStart"===t.type,r?c:"")})),p.filteredRows=p.totalRows,o="tablesorter-initialized pagerBeforeInitialized ".split(" ").join(p.namespace+"filter "),p.$table.unbind(o.replace(i.regex.spaces," ")).bind(o,function(){t.completeInit(this)}),p.pager&&p.pager.initialized&&!g.filter_initialized?(p.$table.triggerHandler("filterFomatterUpdate"),setTimeout(function(){t.filterInitComplete(p)},100)):g.filter_initialized||t.completeInit(l)},completeInit:function(e){var r=e.config,a=r.widgetOptions,l=t.setDefaults(e,r,a)||[];l.length&&(r.delayInit&&""===l.join("")||i.setFilters(e,l,!0)),r.$table.triggerHandler("filterFomatterUpdate"),setTimeout(function(){a.filter_initialized||t.filterInitComplete(r)},100)},formatterUpdated:function(e,t){var r=e&&e.closest("table"),i=r.length&&r[0].config,a=i&&i.widgetOptions;a&&!a.filter_initialized&&(a.filter_formatterInit[t]=1)},filterInitComplete:function(r){var i,a,l=r.widgetOptions,s=0,n=function(){l.filter_initialized=!0,r.lastSearch=r.$table.data("lastSearch"),r.$table.triggerHandler("filterInit",r),t.findRows(r.table,r.lastSearch||[])};if(e.isEmptyObject(l.filter_formatter))n();else{for(a=l.filter_formatterInit.length,i=0;i<a;i++)1===l.filter_formatterInit[i]&&s++;clearTimeout(l.filter_initTimer),l.filter_initialized||s!==l.filter_formatterCount?l.filter_initialized||(l.filter_initTimer=setTimeout(function(){n()},500)):n()}},processFilters:function(e,t){var r,i=[],a=t?encodeURIComponent:decodeURIComponent,l=e.length;for(r=0;r<l;r++)e[r]&&(i[r]=a(e[r]));return i},setDefaults:function(r,a,l){var s,n,o,c,d,f=i.getFilters(r)||[];if(l.filter_saveFilters&&i.storage&&(n=i.storage(r,"tablesorter-filters")||[],(s=e.isArray(n))&&""===n.join("")||!s||(f=t.processFilters(n))),""===f.join(""))for(d=a.$headers.add(l.filter_$externalFilters).filter("["+l.filter_defaultAttrib+"]"),o=0;o<=a.columns;o++)c=o===a.columns?"all":o,f[o]=d.filter('[data-column="'+c+'"]').attr(l.filter_defaultAttrib)||f[o]||"";return a.$table.data("lastSearch",f),f},parseFilter:function(e,t,r,i){return i||r.parsed[r.index]?e.parsers[r.index].format(t,e.table,[],r.index):t},buildRow:function(r,l,s){var n,o,c,d,f,h,u,p,g,m=s.filter_cellFilter,b=l.columns,y=e.isArray(m),_='<tr role="search" class="'+a.filterRow+" "+l.cssIgnoreRow+'">';for(c=0;c<b;c++)l.$headerIndexed[c].length&&(_+=(g=l.$headerIndexed[c]&&l.$headerIndexed[c][0].colSpan||0)>1?'<td data-column="'+c+"-"+(c+g-1)+'" colspan="'+g+'"':'<td data-column="'+c+'"',_+=y?m[c]?' class="'+m[c]+'"':"":""!==m?' class="'+m+'"':"",_+="></td>");for(l.$filters=e(_+="</tr>").appendTo(l.$table.children("thead").eq(0)).children("td"),c=0;c<b;c++)h=!1,(d=l.$headerIndexed[c])&&d.length&&(n=t.getColumnElm(l,l.$filters,c),p=i.getColumnData(r,s.filter_functions,c),f=s.filter_functions&&p&&"function"!=typeof p||d.hasClass("filter-select"),o=i.getColumnData(r,l.headers,c),h="false"===i.getData(d[0],o,"filter")||"false"===i.getData(d[0],o,"parser"),f?_=e("<select>").appendTo(n):((p=i.getColumnData(r,s.filter_formatter,c))?(s.filter_formatterCount++,(_=p(n,c))&&0===_.length&&(_=n.children("input")),_&&(0===_.parent().length||_.parent().length&&_.parent()[0]!==n[0])&&n.append(_)):_=e('<input type="search">').appendTo(n),_&&(g=d.data("placeholder")||d.attr("data-placeholder")||s.filter_placeholder.search||"",_.attr("placeholder",g))),_&&(u=(e.isArray(s.filter_cssFilter)?void 0!==s.filter_cssFilter[c]?s.filter_cssFilter[c]||"":"":s.filter_cssFilter)||"",_.addClass(a.filter+" "+u),(g=(u=s.filter_filterLabel).match(/{{([^}]+?)}}/g))||(g=["{{label}}"]),e.each(g,function(t,r){var i=new RegExp(r,"g"),a=d.attr("data-"+r.replace(/{{|}}/g,"")),l=void 0===a?d.text():a;u=u.replace(i,e.trim(l))}),_.attr({"data-column":n.attr("data-column"),"aria-label":u}),h&&(_.attr("placeholder","").addClass(a.filterDisabled)[0].disabled=!0)))},bindSearch:function(r,a,s){if(r=e(r)[0],(a=e(a)).length){var n,o=r.config,c=o.widgetOptions,d=o.namespace+"filter",f=c.filter_$externalFilters;!0!==s&&(n=c.filter_anyColumnSelector+","+c.filter_multipleColumnSelector,c.filter_$anyMatch=a.filter(n),f&&f.length?c.filter_$externalFilters=c.filter_$externalFilters.add(a):c.filter_$externalFilters=a,i.setFilters(r,o.$table.data("lastSearch")||[],!1===s)),n="keypress keyup keydown search change input ".split(" ").join(d+" "),a.attr("data-lastSearchTime",(new Date).getTime()).unbind(n.replace(i.regex.spaces," ")).bind("keydown"+d,function(e){if(e.which===l.escape&&!r.config.widgetOptions.filter_resetOnEsc)return!1}).bind("keyup"+d,function(a){c=r.config.widgetOptions;var s=parseInt(e(this).attr("data-column"),10),n="boolean"==typeof c.filter_liveSearch?c.filter_liveSearch:i.getColumnData(r,c.filter_liveSearch,s);if(void 0===n&&(n=c.filter_liveSearch.fallback||!1),e(this).attr("data-lastSearchTime",(new Date).getTime()),a.which===l.escape)this.value=c.filter_resetOnEsc?"":o.lastSearch[s];else{if(""!==this.value&&("number"==typeof n&&this.value.length<n||a.which!==l.enter&&a.which!==l.backSpace&&(a.which<l.space||a.which>=l.left&&a.which<=l.down)))return;if(!1===n&&""!==this.value&&a.which!==l.enter)return}t.searching(r,!0,!0,s)}).bind("search change keypress input blur ".split(" ").join(d+" "),function(a){var s=parseInt(e(this).attr("data-column"),10),n=a.type,d="boolean"==typeof c.filter_liveSearch?c.filter_liveSearch:i.getColumnData(r,c.filter_liveSearch,s);!r.config.widgetOptions.filter_initialized||a.which!==l.enter&&"search"!==n&&"blur"!==n&&("change"!==n&&"input"!==n||!0!==d&&(!0===d||"INPUT"===a.target.nodeName)||this.value===o.lastSearch[s])||(a.preventDefault(),e(this).attr("data-lastSearchTime",(new Date).getTime()),t.searching(r,"keypress"!==n,!0,s))})}},searching:function(e,r,a,l){var s,n=e.config.widgetOptions;void 0===l?s=!1:void 0===(s="boolean"==typeof n.filter_liveSearch?n.filter_liveSearch:i.getColumnData(e,n.filter_liveSearch,l))&&(s=n.filter_liveSearch.fallback||!1),clearTimeout(n.filter_searchTimer),void 0===r||!0===r?n.filter_searchTimer=setTimeout(function(){t.checkFilters(e,r,a)},s?n.filter_searchDelay:10):t.checkFilters(e,r,a)},equalFilters:function(t,r,i){var a,l=[],s=[],n=t.columns+1;for(r=e.isArray(r)?r:[],i=e.isArray(i)?i:[],a=0;a<n;a++)l[a]=r[a]||"",s[a]=i[a]||"";return l.join(",")===s.join(",")},checkFilters:function(r,l,s){var n=r.config,o=n.widgetOptions,c=e.isArray(l),d=c?l:i.getFilters(r,!0),f=d||[];if(e.isEmptyObject(n.cache))n.delayInit&&(!n.pager||n.pager&&n.pager.initialized)&&i.updateCache(n,function(){t.checkFilters(r,!1,s)});else if(c&&(i.setFilters(r,d,!1,!0!==s),o.filter_initialized||(n.lastSearch=[],n.lastCombinedFilter="")),o.filter_hideFilters&&n.$table.find("."+a.filterRow).triggerHandler(t.hideFiltersCheck(n)?"mouseleave":"mouseenter"),!t.equalFilters(n,n.lastSearch,f)||!1===l){if(!1===l&&(n.lastCombinedFilter="",n.lastSearch=[]),d=d||[],d=Array.prototype.map?d.map(String):d.join("�").split("�"),o.filter_initialized&&n.$table.triggerHandler("filterStart",[d]),!n.showProcessing)return t.findRows(r,d,f),!1;setTimeout(function(){return t.findRows(r,d,f),!1},30)}},hideFiltersCheck:function(e){if("function"==typeof e.widgetOptions.filter_hideFilters){var t=e.widgetOptions.filter_hideFilters(e);if("boolean"==typeof t)return t}return""===i.getFilters(e.$table).join("")},hideFilters:function(r,i){var l;(i||r.$table).find("."+a.filterRow).addClass(a.filterRowHide).bind("mouseenter mouseleave",function(i){var s=i,n=e(this);clearTimeout(l),l=setTimeout(function(){/enter|over/.test(s.type)?n.removeClass(a.filterRowHide):e(document.activeElement).closest("tr")[0]!==n[0]&&n.toggleClass(a.filterRowHide,t.hideFiltersCheck(r))},200)}).find("input, select").bind("focus blur",function(i){var s=i,n=e(this).closest("tr");clearTimeout(l),l=setTimeout(function(){clearTimeout(l),n.toggleClass(a.filterRowHide,t.hideFiltersCheck(r)&&"focus"!==s.type)},200)})},defaultFilter:function(t,i){if(""===t)return t;var a=r.iQuery,l=i.match(r.igQuery).length,s=l>1?e.trim(t).split(/\s/):[e.trim(t)],n=s.length-1,o=0,c=i;for(n<1&&l>1&&(s[1]=s[0]);a.test(c);)c=c.replace(a,s[o++]||""),a.test(c)&&o<n&&""!==(s[o]||"")&&(c=i.replace(a,c));return c},getLatestSearch:function(t){return t?t.sort(function(t,r){return e(r).attr("data-lastSearchTime")-e(t).attr("data-lastSearchTime")}):t||e()},findRange:function(e,t,r){var i,a,l,s,n,o,c,d,f,h=[];if(/^[0-9]+$/.test(t))return[parseInt(t,10)];if(!r&&/-/.test(t))for(f=(a=t.match(/(\d+)\s*-\s*(\d+)/g))?a.length:0,d=0;d<f;d++){for(l=a[d].split(/\s*-\s*/),(s=parseInt(l[0],10)||0)>(n=parseInt(l[1],10)||e.columns-1)&&(i=s,s=n,n=i),n>=e.columns&&(n=e.columns-1);s<=n;s++)h[h.length]=s;t=t.replace(a[d],"")}if(!r&&/,/.test(t))for(f=(o=t.split(/\s*,\s*/)).length,c=0;c<f;c++)""!==o[c]&&(d=parseInt(o[c],10))<e.columns&&(h[h.length]=d);if(!h.length)for(d=0;d<e.columns;d++)h[h.length]=d;return h},getColumnElm:function(r,i,a){return i.filter(function(){var i=t.findRange(r,e(this).attr("data-column"));return e.inArray(a,i)>-1})},multipleColumns:function(r,i){var a=r.widgetOptions,l=a.filter_initialized||!i.filter(a.filter_anyColumnSelector).length,s=e.trim(t.getLatestSearch(i).attr("data-column")||"");return t.findRange(r,s,!l)},processTypes:function(r,i,a){var l,s=null,n=null;for(l in t.types)e.inArray(l,a.excludeMatch)<0&&null===n&&null!==(n=t.types[l](r,i,a))&&(i.matchedOn=l,s=n);return s},matchType:function(e,t){var r,i=e.widgetOptions,l=e.$headerIndexed[t];return l.hasClass("filter-exact")?r=!1:l.hasClass("filter-match")?r=!0:(i.filter_columnFilters?l=e.$filters.find("."+a.filter).add(i.filter_$externalFilters).filter('[data-column="'+t+'"]'):i.filter_$externalFilters&&(l=i.filter_$externalFilters.filter('[data-column="'+t+'"]')),r=!!l.length&&"match"===e.widgetOptions.filter_matchType[(l[0].nodeName||"").toLowerCase()]),r},processRow:function(a,l,s){var n,o,c,d,f,h=a.widgetOptions,u=!0,p=h.filter_$anyMatch&&h.filter_$anyMatch.length,g=h.filter_$anyMatch&&h.filter_$anyMatch.length?t.multipleColumns(a,h.filter_$anyMatch):[];if(l.$cells=l.$row.children(),l.matchedOn=null,l.anyMatchFlag&&g.length>1||l.anyMatchFilter&&!p){if(l.anyMatch=!0,l.isMatch=!0,l.rowArray=l.$cells.map(function(t){if(e.inArray(t,g)>-1||l.anyMatchFilter&&!p)return l.parsed[t]?f=l.cacheArray[t]:(f=l.rawArray[t],f=e.trim(h.filter_ignoreCase?f.toLowerCase():f),a.sortLocaleCompare&&(f=i.replaceAccents(f))),f}).get(),l.filter=l.anyMatchFilter,l.iFilter=l.iAnyMatchFilter,l.exact=l.rowArray.join(" "),l.iExact=h.filter_ignoreCase?l.exact.toLowerCase():l.exact,l.cache=l.cacheArray.slice(0,-1).join(" "),s.excludeMatch=s.noAnyMatch,null!==(o=t.processTypes(a,l,s)))u=o;else if(h.filter_startsWith)for(u=!1,g=Math.min(a.columns,l.rowArray.length);!u&&g>0;)g--,u=u||0===l.rowArray[g].indexOf(l.iFilter);else u=(l.iExact+l.childRowText).indexOf(l.iFilter)>=0;if(l.anyMatch=!1,l.filters.join("")===l.filter)return u}for(g=0;g<a.columns;g++)l.filter=l.filters[g],l.index=g,s.excludeMatch=s.excludeFilter[g],l.filter&&(l.cache=l.cacheArray[g],n=l.parsed[g]?l.cache:l.rawArray[g]||"",l.exact=a.sortLocaleCompare?i.replaceAccents(n):n,l.iExact=!r.type.test(typeof l.exact)&&h.filter_ignoreCase?l.exact.toLowerCase():l.exact,l.isMatch=t.matchType(a,g),n=u,d=h.filter_columnFilters?a.$filters.add(h.filter_$externalFilters).filter('[data-column="'+g+'"]').find("select option:selected").attr("data-function-name")||"":"",a.sortLocaleCompare&&(l.filter=i.replaceAccents(l.filter)),h.filter_defaultFilter&&r.iQuery.test(s.defaultColFilter[g])&&(l.filter=t.defaultFilter(l.filter,s.defaultColFilter[g])),l.iFilter=h.filter_ignoreCase?(l.filter||"").toLowerCase():l.filter,o=null,(c=s.functions[g])&&("function"==typeof c?o=c(l.exact,l.cache,l.filter,g,l.$row,a,l):"function"==typeof c[d||l.filter]&&(o=c[f=d||l.filter](l.exact,l.cache,l.filter,g,l.$row,a,l))),null===o?(o=t.processTypes(a,l,s),f=!0===c&&("and"===l.matchedOn||"or"===l.matchedOn),null===o||f?!0===c?n=l.isMatch?(""+l.iExact).search(l.iFilter)>=0:l.filter===l.exact:(f=(l.iExact+l.childRowText).indexOf(t.parseFilter(a,l.iFilter,l)),n=!h.filter_startsWith&&f>=0||h.filter_startsWith&&0===f):n=o):n=o,u=!!n&&u);return u},findRows:function(a,l,s){if(!t.equalFilters(a.config,a.config.lastSearch,s)&&a.config.widgetOptions.filter_initialized){var n,o,c,d,f,h,u,p,g,m,b,y,_,v,w,x,S,C,z,$,F,R,T,k=e.extend([],l),H=a.config,A=H.widgetOptions,I={anyMatch:!1,filters:l,filter_regexCache:[]},O={noAnyMatch:["range","operators"],functions:[],excludeFilter:[],defaultColFilter:[],defaultAnyFilter:i.getColumnData(a,A.filter_defaultFilter,H.columns,!0)||""};for(I.parsed=[],g=0;g<H.columns;g++)I.parsed[g]=A.filter_useParsedData||H.parsers&&H.parsers[g]&&H.parsers[g].parsed||i.getData&&"parsed"===i.getData(H.$headerIndexed[g],i.getColumnData(a,H.headers,g),"filter")||H.$headerIndexed[g].hasClass("filter-parsed"),O.functions[g]=i.getColumnData(a,A.filter_functions,g)||H.$headerIndexed[g].hasClass("filter-select"),O.defaultColFilter[g]=i.getColumnData(a,A.filter_defaultFilter,g)||"",O.excludeFilter[g]=(i.getColumnData(a,A.filter_excludeFilter,g,!0)||"").split(/\s+/);for(H.debug&&(console.log("Filter: Starting filter widget search",l),v=new Date),H.filteredRows=0,H.totalRows=0,s=k||[],u=0;u<H.$tbodies.length;u++){if(p=i.processTbody(a,H.$tbodies.eq(u),!0),g=H.columns,o=H.cache[u].normalized,d=e(e.map(o,function(e){return e[g].$row.get()})),""===s.join("")||A.filter_serversideFiltering)d.removeClass(A.filter_filteredRow).not("."+H.cssChildRow).css("display","");else{if(d=d.not("."+H.cssChildRow),n=d.length,(A.filter_$anyMatch&&A.filter_$anyMatch.length||void 0!==l[H.columns])&&(I.anyMatchFlag=!0,I.anyMatchFilter=""+(l[H.columns]||A.filter_$anyMatch&&t.getLatestSearch(A.filter_$anyMatch).val()||""),A.filter_columnAnyMatch)){for(z=I.anyMatchFilter.split(r.andSplit),$=!1,x=0;x<z.length;x++)(F=z[x].split(":")).length>1&&(isNaN(F[0])?e.each(H.headerContent,function(e,t){t.toLowerCase().indexOf(F[0])>-1&&(l[R=e]=F[1])}):R=parseInt(F[0],10)-1,R>=0&&R<H.columns&&(l[R]=F[1],z.splice(x,1),x--,$=!0));$&&(I.anyMatchFilter=z.join(" && "))}if(C=A.filter_searchFiltered,b=H.lastSearch||H.$table.data("lastSearch")||[],C)for(x=0;x<g+1;x++)w=l[x]||"",C||(x=g),C=C&&b.length&&0===w.indexOf(b[x]||"")&&!r.alreadyFiltered.test(w)&&!r.exactTest.test(w)&&!(r.isNeg1.test(w)||r.isNeg2.test(w))&&!(""!==w&&H.$filters&&H.$filters.filter('[data-column="'+x+'"]').find("select").length&&!t.matchType(H,x));for(S=d.not("."+A.filter_filteredRow).length,C&&0===S&&(C=!1),H.debug&&console.log("Filter: Searching through "+(C&&S<n?S:"all")+" rows"),I.anyMatchFlag&&(H.sortLocaleCompare&&(I.anyMatchFilter=i.replaceAccents(I.anyMatchFilter)),A.filter_defaultFilter&&r.iQuery.test(O.defaultAnyFilter)&&(I.anyMatchFilter=t.defaultFilter(I.anyMatchFilter,O.defaultAnyFilter),C=!1),I.iAnyMatchFilter=A.filter_ignoreCase&&H.ignoreCase?I.anyMatchFilter.toLowerCase():I.anyMatchFilter),h=0;h<n;h++)if(T=d[h].className,!(h&&r.child.test(T)||C&&r.filtered.test(T))){if(I.$row=d.eq(h),I.rowIndex=h,I.cacheArray=o[h],c=I.cacheArray[H.columns],I.rawArray=c.raw,I.childRowText="",!A.filter_childByColumn){for(T="",m=c.child,x=0;x<m.length;x++)T+=" "+m[x].join(" ")||"";I.childRowText=A.filter_childRows?A.filter_ignoreCase?T.toLowerCase():T:""}if(y=!1,_=t.processRow(H,I,O),f=c.$row,w=!!_,m=c.$row.filter(":gt(0)"),A.filter_childRows&&m.length){if(A.filter_childByColumn)for(A.filter_childWithSibs||(m.addClass(A.filter_filteredRow),f=f.eq(0)),x=0;x<m.length;x++)I.$row=m.eq(x),I.cacheArray=c.child[x],I.rawArray=I.cacheArray,w=t.processRow(H,I,O),y=y||w,!A.filter_childWithSibs&&w&&m.eq(x).removeClass(A.filter_filteredRow);y=y||_}else y=w;f.toggleClass(A.filter_filteredRow,!y)[0].display=y?"":"none"}}H.filteredRows+=d.not("."+A.filter_filteredRow).length,H.totalRows+=d.length,i.processTbody(a,p,!1)}H.lastCombinedFilter=k.join(""),H.lastSearch=k,H.$table.data("lastSearch",k),A.filter_saveFilters&&i.storage&&i.storage(a,"tablesorter-filters",t.processFilters(k,!0)),H.debug&&console.log("Completed filter widget search"+i.benchmark(v)),A.filter_initialized&&(H.$table.triggerHandler("filterBeforeEnd",H),H.$table.triggerHandler("filterEnd",H)),setTimeout(function(){i.applyWidget(H.table)},0)}},getOptionSource:function(r,a,l){var s=(r=e(r)[0]).config,n=!1,o=s.widgetOptions.filter_selectSource,c=s.$table.data("lastSearch")||[],d="function"==typeof o||i.getColumnData(r,o,a);if(l&&""!==c[a]&&(l=!1),!0===d)n=o(r,a,l);else{if(d instanceof e||"string"===e.type(d)&&d.indexOf("</option>")>=0)return d;if(e.isArray(d))n=d;else if("object"===e.type(o)&&d&&null===(n=d(r,a,l)))return null}return!1===n&&(n=t.getOptions(r,a,l)),t.processOptions(r,a,n)},processOptions:function(t,r,a){if(!e.isArray(a))return!1;var l,s,n,o,c,d,f=(t=e(t)[0]).config,h=void 0!==r&&null!==r&&r>=0&&r<f.columns,u=!!h&&f.$headerIndexed[r].hasClass("filter-select-sort-desc"),p=[];if(a=e.grep(a,function(t,r){return!!t.text||e.inArray(t,a)===r}),h&&f.$headerIndexed[r].hasClass("filter-select-nosort"))return a;for(o=a.length,n=0;n<o;n++)d=(s=a[n]).text?s.text:s,c=(h&&f.parsers&&f.parsers.length&&f.parsers[r].format(d,t,[],r)||d).toString(),c=f.widgetOptions.filter_ignoreCase?c.toLowerCase():c,s.text?(s.parsed=c,p[p.length]=s):p[p.length]={text:s,parsed:c};for(l=f.textSorter||"",p.sort(function(e,a){var s=u?a.parsed:e.parsed,n=u?e.parsed:a.parsed;return h&&"function"==typeof l?l(s,n,!0,r,t):h&&"object"==typeof l&&l.hasOwnProperty(r)?l[r](s,n,!0,r,t):!i.sortNatural||i.sortNatural(s,n)}),a=[],o=p.length,n=0;n<o;n++)a[a.length]=p[n];return a},getOptions:function(t,r,a){var l,s,n,o,c,d,f,h,u=(t=e(t)[0]).config,p=u.widgetOptions,g=[];for(s=0;s<u.$tbodies.length;s++)for(c=u.cache[s],n=u.cache[s].normalized.length,l=0;l<n;l++)if(o=c.row?c.row[l]:c.normalized[l][u.columns].$row[0],!a||!o.className.match(p.filter_filteredRow))if(p.filter_useParsedData||u.parsers[r].parsed||u.$headerIndexed[r].hasClass("filter-parsed")){if(g[g.length]=""+c.normalized[l][r],p.filter_childRows&&p.filter_childByColumn)for(h=c.normalized[l][u.columns].$row.length-1,d=0;d<h;d++)g[g.length]=""+c.normalized[l][u.columns].child[d][r]}else if(g[g.length]=c.normalized[l][u.columns].raw[r],p.filter_childRows&&p.filter_childByColumn)for(h=c.normalized[l][u.columns].$row.length,d=1;d<h;d++)f=c.normalized[l][u.columns].$row.eq(d).children().eq(r),g[g.length]=""+i.getElementText(u,f,r);return g},buildSelect:function(i,l,s,n,o){if(i=e(i)[0],l=parseInt(l,10),i.config.cache&&!e.isEmptyObject(i.config.cache)){var c,d,f,h,u,p,g,m=i.config,b=m.widgetOptions,y=m.$headerIndexed[l],_='<option value="">'+(y.data("placeholder")||y.attr("data-placeholder")||b.filter_placeholder.select||"")+"</option>",v=m.$table.find("thead").find("select."+a.filter+'[data-column="'+l+'"]').val();if(void 0!==s&&""!==s||null!==(s=t.getOptionSource(i,l,o))){if(e.isArray(s)){for(c=0;c<s.length;c++)if((g=s[c]).text){g["data-function-name"]=void 0===g.value?g.text:g.value,_+="<option";for(d in g)g.hasOwnProperty(d)&&"text"!==d&&(_+=" "+d+'="'+g[d]+'"');g.value||(_+=' value="'+g.text+'"'),_+=">"+g.text+"</option>"}else""+g!="[object Object]"&&(d=f=g=(""+g).replace(r.quote,"""),f.indexOf(b.filter_selectSourceSeparator)>=0&&(d=(h=f.split(b.filter_selectSourceSeparator))[0],f=h[1]),_+=""!==g?"<option "+(d===f?"":'data-function-name="'+g+'" ')+'value="'+d+'">'+f+"</option>":"");s=[]}u=(m.$filters?m.$filters:m.$table.children("thead")).find("."+a.filter),b.filter_$externalFilters&&(u=u&&u.length?u.add(b.filter_$externalFilters):b.filter_$externalFilters),(p=u.filter('select[data-column="'+l+'"]')).length&&(p[n?"html":"append"](_),e.isArray(s)||p.append(s).val(v),p.val(v))}}},buildDefault:function(e,r){var a,l,s,n=e.config,o=n.widgetOptions,c=n.columns;for(a=0;a<c;a++)s=!((l=n.$headerIndexed[a]).hasClass("filter-false")||l.hasClass("parser-false")),(l.hasClass("filter-select")||!0===i.getColumnData(e,o.filter_functions,a))&&s&&t.buildSelect(e,a,"",r,l.hasClass(o.filter_onlyAvail))}},r=t.regex,i.getFilters=function(r,i,l,s){var n,o,c,d,f=[],h=r?e(r)[0].config:"",u=h?h.widgetOptions:"";if(!0!==i&&u&&!u.filter_columnFilters||e.isArray(l)&&t.equalFilters(h,l,h.lastSearch))return e(r).data("lastSearch")||[];if(h&&(h.$filters&&(o=h.$filters.find("."+a.filter)),u.filter_$externalFilters&&(o=o&&o.length?o.add(u.filter_$externalFilters):u.filter_$externalFilters),o&&o.length))for(f=l||[],n=0;n<h.columns+1;n++)d=n===h.columns?u.filter_anyColumnSelector+","+u.filter_multipleColumnSelector:'[data-column="'+n+'"]',(c=o.filter(d)).length&&(c=t.getLatestSearch(c),e.isArray(l)?(s&&c.length>1&&(c=c.slice(1)),n===h.columns&&(c=(d=c.filter(u.filter_anyColumnSelector)).length?d:c),c.val(l[n]).trigger("change"+h.namespace)):(f[n]=c.val()||"",n===h.columns?c.slice(1).filter('[data-column*="'+c.attr("data-column")+'"]').val(f[n]):c.slice(1).val(f[n])),n===h.columns&&c.length&&(u.filter_$anyMatch=c));return f},i.setFilters=function(r,a,l,s){var n=r?e(r)[0].config:"",o=i.getFilters(r,!0,a,s);return void 0===l&&(l=!0),n&&l&&(n.lastCombinedFilter=null,n.lastSearch=[],t.searching(n.table,a,s),n.$table.triggerHandler("filterFomatterUpdate")),0!==o.length}}(e),function(e,t){"use strict";function r(t,r){var i=isNaN(r.stickyHeaders_offset)?e(r.stickyHeaders_offset):[];return i.length?i.height()||0:parseInt(r.stickyHeaders_offset,10)||0}var i=e.tablesorter||{};e.extend(i.css,{sticky:"tablesorter-stickyHeader",stickyVis:"tablesorter-sticky-visible",stickyHide:"tablesorter-sticky-hidden",stickyWrap:"tablesorter-sticky-wrapper"}),i.addHeaderResizeEvent=function(t,r,i){if((t=e(t)[0]).config){var a={timer:250},l=e.extend({},a,i),s=t.config,n=s.widgetOptions,o=function(e){var t,r,i,a,l,o,c=s.$headers.length;for(n.resize_flag=!0,r=[],t=0;t<c;t++)a=(i=s.$headers.eq(t)).data("savedSizes")||[0,0],l=i[0].offsetWidth,o=i[0].offsetHeight,l===a[0]&&o===a[1]||(i.data("savedSizes",[l,o]),r.push(i[0]));r.length&&!1!==e&&s.$table.triggerHandler("resize",[r]),n.resize_flag=!1};if(clearInterval(n.resize_timer),r)return n.resize_flag=!1,!1;o(!1),n.resize_timer=setInterval(function(){n.resize_flag||o()},l.timer)}},i.addWidget({id:"stickyHeaders",priority:54,options:{stickyHeaders:"",stickyHeaders_appendTo:null,stickyHeaders_attachTo:null,stickyHeaders_xScroll:null,stickyHeaders_yScroll:null,stickyHeaders_offset:0,stickyHeaders_filteredToTop:!0,stickyHeaders_cloneId:"-sticky",stickyHeaders_addResizeEvent:!0,stickyHeaders_includeCaption:!0,stickyHeaders_zIndex:2},format:function(a,l,s){if(!(l.$table.hasClass("hasStickyHeaders")||e.inArray("filter",l.widgets)>=0&&!l.$table.hasClass("hasFilters"))){var n,o,c,d,f=l.$table,h=e(s.stickyHeaders_attachTo),u=l.namespace+"stickyheaders ",p=e(s.stickyHeaders_yScroll||s.stickyHeaders_attachTo||t),g=e(s.stickyHeaders_xScroll||s.stickyHeaders_attachTo||t),m=f.children("thead:first").children("tr").not(".sticky-false").children(),b=f.children("tfoot"),y=r(l,s),_=f.parent().closest("."+i.css.table).hasClass("hasStickyHeaders")?f.parent().closest("table.tablesorter")[0].config.widgetOptions.$sticky.parent():[],v=_.length?_.height():0,w=s.$sticky=f.clone().addClass("containsStickyHeaders "+i.css.sticky+" "+s.stickyHeaders+" "+l.namespace.slice(1)+"_extra_table").wrap('<div class="'+i.css.stickyWrap+'">'),x=w.parent().addClass(i.css.stickyHide).css({position:h.length?"absolute":"fixed",padding:parseInt(w.parent().parent().css("padding-left"),10),top:y+v,left:0,visibility:"hidden",zIndex:s.stickyHeaders_zIndex||2}),S=w.children("thead:first"),C="",z=function(e,r){var i,a,l,s,n,o=e.filter(":visible"),c=o.length;for(i=0;i<c;i++)s=r.filter(":visible").eq(i),"border-box"===(n=o.eq(i)).css("box-sizing")?a=n.outerWidth():"collapse"===s.css("border-collapse")?t.getComputedStyle?a=parseFloat(t.getComputedStyle(n[0],null).width):(l=parseFloat(n.css("border-width")),a=n.outerWidth()-parseFloat(n.css("padding-left"))-parseFloat(n.css("padding-right"))-l):a=n.width(),s.css({width:a,"min-width":a,"max-width":a})},$=function(){return h.length?parseInt(h.css("padding-left"),10)||0:f.offset().left-parseInt(f.css("margin-left"),10)-e(t).scrollLeft()},F=function(){x.css({left:$(),width:f.outerWidth()}),z(f,w),z(m,d)},R=function(t){if(f.is(":visible")){v=_.length?_.offset().top-p.scrollTop()+_.height():0;var a,n=f.offset(),o=r(l,s),c=e.isWindow(p[0]),d=h.length?c?p.scrollTop():p.offset().top:p.scrollTop(),u=s.stickyHeaders_includeCaption?0:f.children("caption").height()||0,g=d+o+v-u,m=f.height()-(x.height()+(b.height()||0))-u,y=g>n.top&&g<n.top+m?"visible":"hidden",w="visible"===y?i.css.stickyVis:i.css.stickyHide,S=!x.hasClass(w),z={visibility:y};h.length&&(S=!0,z.top=c?g-h.offset().top:h.scrollTop()),(a=$())!==parseInt(x.css("left"),10)&&(S=!0,z.left=a),z.top=(z.top||0)+o+v,S&&x.removeClass(i.css.stickyVis+" "+i.css.stickyHide).addClass(w).css(z),(y!==C||t)&&(F(),C=y)}};if(h.length&&!h.css("position")&&h.css("position","relative"),w.attr("id")&&(w[0].id+=s.stickyHeaders_cloneId),w.find("thead:gt(0), tr.sticky-false").hide(),w.find("tbody, tfoot").remove(),w.find("caption").toggle(s.stickyHeaders_includeCaption),d=S.children().children(),w.css({height:0,width:0,margin:0}),d.find("."+i.css.resizer).remove(),f.addClass("hasStickyHeaders").bind("pagerComplete"+u,function(){F()}),i.bindEvents(a,S.children().children("."+i.css.header)),s.stickyHeaders_appendTo?e(s.stickyHeaders_appendTo).append(x):f.after(x),l.onRenderHeader)for(o=(c=S.children("tr").children()).length,n=0;n<o;n++)l.onRenderHeader.apply(c.eq(n),[n,l,w]);g.add(p).unbind("scroll resize ".split(" ").join(u).replace(/\s+/g," ")).bind("scroll resize ".split(" ").join(u),function(e){R("resize"===e.type)}),l.$table.unbind("stickyHeadersUpdate"+u).bind("stickyHeadersUpdate"+u,function(){R(!0)}),s.stickyHeaders_addResizeEvent&&i.addHeaderResizeEvent(a),f.hasClass("hasFilters")&&s.filter_columnFilters&&(f.bind("filterEnd"+u,function(){var r=e(document.activeElement).closest("td"),a=r.parent().children().index(r);x.hasClass(i.css.stickyVis)&&s.stickyHeaders_filteredToTop&&(t.scrollTo(0,f.position().top),a>=0&&l.$filters&&l.$filters.eq(a).find("a, select, input").filter(":visible").focus())}),i.filter.bindSearch(f,d.find("."+i.css.filter)),s.filter_hideFilters&&i.filter.hideFilters(l,w)),s.stickyHeaders_addResizeEvent&&f.bind("resize"+l.namespace+"stickyheaders",function(){F()}),R(!0),f.triggerHandler("stickyHeadersInit")}},remove:function(r,a,l){var s=a.namespace+"stickyheaders ";a.$table.removeClass("hasStickyHeaders").unbind("pagerComplete resize filterEnd stickyHeadersUpdate ".split(" ").join(s).replace(/\s+/g," ")).next("."+i.css.stickyWrap).remove(),l.$sticky&&l.$sticky.length&&l.$sticky.remove(),e(t).add(l.stickyHeaders_xScroll).add(l.stickyHeaders_yScroll).add(l.stickyHeaders_attachTo).unbind("scroll resize ".split(" ").join(s).replace(/\s+/g," ")),i.addHeaderResizeEvent(r,!0)}})}(e,window),function(e,t){"use strict";var r=e.tablesorter||{};e.extend(r.css,{resizableContainer:"tablesorter-resizable-container",resizableHandle:"tablesorter-resizable-handle",resizableNoSelect:"tablesorter-disableSelection",resizableStorage:"tablesorter-resizable"}),e(function(){var t="<style>body."+r.css.resizableNoSelect+" { -ms-user-select: none; -moz-user-select: -moz-none;-khtml-user-select: none; -webkit-user-select: none; user-select: none; }."+r.css.resizableContainer+" { position: relative; height: 1px; }."+r.css.resizableHandle+" { position: absolute; display: inline-block; width: 8px;top: 1px; cursor: ew-resize; z-index: 3; user-select: none; -moz-user-select: none; }</style>";e("head").append(t)}),r.resizable={init:function(t,i){if(!t.$table.hasClass("hasResizable")){t.$table.addClass("hasResizable");var a,l,s,n,o=t.$table,c=o.parent(),d=parseInt(o.css("margin-top"),10),f=i.resizable_vars={useStorage:r.storage&&!1!==i.resizable,$wrap:c,mouseXPosition:0,$target:null,$next:null,overflow:"auto"===c.css("overflow")||"scroll"===c.css("overflow")||"auto"===c.css("overflow-x")||"scroll"===c.css("overflow-x"),storedSizes:[]};for(r.resizableReset(t.table,!0),f.tableWidth=o.width(),f.fullWidth=Math.abs(c.width()-f.tableWidth)<20,f.useStorage&&f.overflow&&(r.storage(t.table,"tablesorter-table-original-css-width",f.tableWidth),n=r.storage(t.table,"tablesorter-table-resized-width")||"auto",r.resizable.setWidth(o,n,!0)),i.resizable_vars.storedSizes=s=(f.useStorage?r.storage(t.table,r.css.resizableStorage):[])||[],r.resizable.setWidths(t,i,s),r.resizable.updateStoredSizes(t,i),i.$resizable_container=e('<div class="'+r.css.resizableContainer+'">').css({top:d}).insertBefore(o),l=0;l<t.columns;l++)a=t.$headerIndexed[l],n=r.getColumnData(t.table,t.headers,l),"false"===r.getData(a,n,"resizable")||e('<div class="'+r.css.resizableHandle+'">').appendTo(i.$resizable_container).attr({"data-column":l,unselectable:"on"}).data("header",a).bind("selectstart",!1);r.resizable.bindings(t,i)}},updateStoredSizes:function(e,t){var r,i,a=e.columns,l=t.resizable_vars;for(l.storedSizes=[],r=0;r<a;r++)i=e.$headerIndexed[r],l.storedSizes[r]=i.is(":visible")?i.width():0},setWidth:function(e,t,r){e.css({width:t,"min-width":r?t:"","max-width":r?t:""})},setWidths:function(t,i,a){var l,s,n=i.resizable_vars,o=e(t.namespace+"_extra_headers"),c=t.$table.children("colgroup").children("col");if((a=a||n.storedSizes||[]).length){for(l=0;l<t.columns;l++)r.resizable.setWidth(t.$headerIndexed[l],a[l],n.overflow),o.length&&(s=o.eq(l).add(c.eq(l)),r.resizable.setWidth(s,a[l],n.overflow));(s=e(t.namespace+"_extra_table")).length&&!r.hasWidget(t.table,"scroller")&&r.resizable.setWidth(s,t.$table.outerWidth(),n.overflow)}},setHandlePosition:function(t,i){var a,l=t.$table.height(),s=i.$resizable_container.children(),n=Math.floor(s.width()/2);r.hasWidget(t.table,"scroller")&&(l=0,t.$table.closest("."+r.css.scrollerWrap).children().each(function(){var t=e(this);l+=t.filter('[style*="height"]').length?t.height():t.children("table").height()})),!i.resizable_includeFooter&&t.$table.children("tfoot").length&&(l-=t.$table.children("tfoot").height()),a=t.$table.position().left,s.each(function(){var s=e(this),o=parseInt(s.attr("data-column"),10),c=t.columns-1,d=s.data("header");d&&(!d.is(":visible")||!i.resizable_addLastColumn&&r.resizable.checkVisibleColumns(t,o)?s.hide():(o<c||o===c&&i.resizable_addLastColumn)&&s.css({display:"inline-block",height:l,left:d.position().left-a+d.outerWidth()-n}))})},checkVisibleColumns:function(e,t){var r,i=0;for(r=t+1;r<e.columns;r++)i+=e.$headerIndexed[r].is(":visible")?1:0;return 0===i},toggleTextSelection:function(t,i,a){var l=t.namespace+"tsresize";i.resizable_vars.disabled=a,e("body").toggleClass(r.css.resizableNoSelect,a),a?e("body").attr("unselectable","on").bind("selectstart"+l,!1):e("body").removeAttr("unselectable").unbind("selectstart"+l)},bindings:function(i,a){var l=i.namespace+"tsresize";a.$resizable_container.children().bind("mousedown",function(t){var l,s=a.resizable_vars,n=e(i.namespace+"_extra_headers"),o=e(t.target).data("header");l=parseInt(o.attr("data-column"),10),s.$target=o=o.add(n.filter('[data-column="'+l+'"]')),s.target=l,s.$next=t.shiftKey||a.resizable_targetLast?o.parent().children().not(".resizable-false").filter(":last"):o.nextAll(":not(.resizable-false)").eq(0),l=parseInt(s.$next.attr("data-column"),10),s.$next=s.$next.add(n.filter('[data-column="'+l+'"]')),s.next=l,s.mouseXPosition=t.pageX,r.resizable.updateStoredSizes(i,a),r.resizable.toggleTextSelection(i,a,!0)}),e(document).bind("mousemove"+l,function(e){var t=a.resizable_vars;t.disabled&&0!==t.mouseXPosition&&t.$target&&(a.resizable_throttle?(clearTimeout(t.timer),t.timer=setTimeout(function(){r.resizable.mouseMove(i,a,e)},isNaN(a.resizable_throttle)?5:a.resizable_throttle)):r.resizable.mouseMove(i,a,e))}).bind("mouseup"+l,function(){a.resizable_vars.disabled&&(r.resizable.toggleTextSelection(i,a,!1),r.resizable.stopResize(i,a),r.resizable.setHandlePosition(i,a))}),e(t).bind("resize"+l+" resizeEnd"+l,function(){r.resizable.setHandlePosition(i,a)}),i.$table.bind("columnUpdate pagerComplete resizableUpdate ".split(" ").join(l+" "),function(){r.resizable.setHandlePosition(i,a)}).bind("resizableReset"+l,function(){r.resizableReset(i.table)}).find("thead:first").add(e(i.namespace+"_extra_table").find("thead:first")).bind("contextmenu"+l,function(){var e=0===a.resizable_vars.storedSizes.length;return r.resizableReset(i.table),r.resizable.setHandlePosition(i,a),a.resizable_vars.storedSizes=[],e})},mouseMove:function(t,i,a){if(0!==i.resizable_vars.mouseXPosition&&i.resizable_vars.$target){var l,s=0,n=i.resizable_vars,o=n.$next,c=n.storedSizes[n.target],d=a.pageX-n.mouseXPosition;if(n.overflow){if(c+d>0){for(n.storedSizes[n.target]+=d,r.resizable.setWidth(n.$target,n.storedSizes[n.target],!0),l=0;l<t.columns;l++)s+=n.storedSizes[l];r.resizable.setWidth(t.$table.add(e(t.namespace+"_extra_table")),s)}o.length||(n.$wrap[0].scrollLeft=t.$table.width())}else n.fullWidth?(n.storedSizes[n.target]+=d,n.storedSizes[n.next]-=d,r.resizable.setWidths(t,i)):(n.storedSizes[n.target]+=d,r.resizable.setWidths(t,i));n.mouseXPosition=a.pageX,t.$table.triggerHandler("stickyHeadersUpdate")}},stopResize:function(e,t){var i=t.resizable_vars;r.resizable.updateStoredSizes(e,t),i.useStorage&&(r.storage(e.table,r.css.resizableStorage,i.storedSizes),r.storage(e.table,"tablesorter-table-resized-width",e.$table.width())),i.mouseXPosition=0,i.$target=i.$next=null,e.$table.triggerHandler("stickyHeadersUpdate"),e.$table.triggerHandler("resizableComplete")}},r.addWidget({id:"resizable",priority:40,options:{resizable:!0,resizable_addLastColumn:!1,resizable_includeFooter:!0,resizable_widths:[],resizable_throttle:!1,resizable_targetLast:!1},init:function(e,t,i,a){r.resizable.init(i,a)},format:function(e,t,i){r.resizable.setHandlePosition(t,i)},remove:function(t,i,a,l){if(a.$resizable_container){var s=i.namespace+"tsresize";i.$table.add(e(i.namespace+"_extra_table")).removeClass("hasResizable").children("thead").unbind("contextmenu"+s),a.$resizable_container.remove(),r.resizable.toggleTextSelection(i,a,!1),r.resizableReset(t,l),e(document).unbind("mousemove"+s+" mouseup"+s)}}}),r.resizableReset=function(t,i){e(t).each(function(){var e,a,l=this.config,s=l&&l.widgetOptions,n=s.resizable_vars;if(t&&l&&l.$headerIndexed.length){for(n.overflow&&n.tableWidth&&(r.resizable.setWidth(l.$table,n.tableWidth,!0),n.useStorage&&r.storage(t,"tablesorter-table-resized-width","auto")),e=0;e<l.columns;e++)a=l.$headerIndexed[e],s.resizable_widths&&s.resizable_widths[e]?r.resizable.setWidth(a,s.resizable_widths[e],n.overflow):a.hasClass("resizable-false")||r.resizable.setWidth(a,"",n.overflow);l.$table.triggerHandler("stickyHeadersUpdate"),r.storage&&!i&&r.storage(this,r.css.resizableStorage,{})}})}}(e,window),function(e){"use strict";var t=e.tablesorter||{};t.addWidget({id:"saveSort",priority:20,options:{saveSort:!0},init:function(e,t,r,i){t.format(e,r,i,!0)},format:function(r,i,a,l){var s,n,o=i.$table,c=!1!==a.saveSort,d={sortList:i.sortList};i.debug&&(n=new Date),o.hasClass("hasSaveSort")?c&&r.hasInitialized&&t.storage&&(t.storage(r,"tablesorter-savesort",d),i.debug&&console.log("saveSort widget: Saving last sort: "+i.sortList+t.benchmark(n))):(o.addClass("hasSaveSort"),d="",t.storage&&(d=(s=t.storage(r,"tablesorter-savesort"))&&s.hasOwnProperty("sortList")&&e.isArray(s.sortList)?s.sortList:"",i.debug&&console.log('saveSort: Last sort loaded: "'+d+'"'+t.benchmark(n)),o.bind("saveSortReset",function(e){e.stopPropagation(),t.storage(r,"tablesorter-savesort","")})),l&&d&&d.length>0?i.sortList=d:r.hasInitialized&&d&&d.length>0&&t.sortOn(i,d))},remove:function(e,r){r.$table.removeClass("hasSaveSort"),t.storage&&t.storage(e,"tablesorter-savesort","")}})}(e),e.tablesorter});
|
1 |
+
/*! tablesorter (FORK) - updated 2018-02-25 (v2.29.6)*/
|
2 |
+
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){return function(e,t,r){"use strict";var i=e.tablesorter||{};e.extend(!0,i.defaults,{fixedUrl:"",widgetOptions:{storage_fixedUrl:"",storage_group:"",storage_page:"",storage_storageType:"",storage_tableId:"",storage_useSessionStorage:""}}),i.storage=function(i,a,l,s){var n,o,c,d=!1,f={},h=(i=e(i)[0]).config,u=h&&h.widgetOptions,p=(s&&s.storageType||u&&u.storage_storageType).toString().charAt(0).toLowerCase(),g=p?"":s&&s.useSessionStorage||u&&u.storage_useSessionStorage,m=e(i),b=s&&s.id||m.attr(s&&s.group||u&&u.storage_group||"data-table-group")||u&&u.storage_tableId||i.id||e(".tablesorter").index(m),y=s&&s.url||m.attr(s&&s.page||u&&u.storage_page||"data-table-page")||u&&u.storage_fixedUrl||h&&h.fixedUrl||t.location.pathname;if("c"!==p&&(p="s"===p||g?"sessionStorage":"localStorage")in t)try{t[p].setItem("_tmptest","temp"),d=!0,t[p].removeItem("_tmptest")}catch(e){h&&h.debug&&console.warn(p+" is not supported in this browser")}if(h.debug&&console.log("Storage widget using",d?p:"cookies"),e.parseJSON&&(d?f=e.parseJSON(t[p][a]||"null")||{}:(o=r.cookie.split(/[;\s|=]/),f=0!==(n=e.inArray(a,o)+1)?e.parseJSON(o[n]||"null")||{}:{})),void 0===l||!t.JSON||!JSON.hasOwnProperty("stringify"))return f&&f[y]?f[y][b]:"";f[y]||(f[y]={}),f[y][b]=l,d?t[p][a]=JSON.stringify(f):((c=new Date).setTime(c.getTime()+31536e6),r.cookie=a+"="+JSON.stringify(f).replace(/\"/g,'"')+"; expires="+c.toGMTString()+"; path=/")}}(e,window,document),function(e){"use strict";var t=e.tablesorter||{};t.themes={bootstrap:{table:"table table-bordered table-striped",caption:"caption",header:"bootstrap-header",sortNone:"",sortAsc:"",sortDesc:"",active:"",hover:"",icons:"",iconSortNone:"bootstrap-icon-unsorted",iconSortAsc:"glyphicon glyphicon-chevron-up",iconSortDesc:"glyphicon glyphicon-chevron-down",filterRow:"",footerRow:"",footerCells:"",even:"",odd:""},jui:{table:"ui-widget ui-widget-content ui-corner-all",caption:"ui-widget-content",header:"ui-widget-header ui-corner-all ui-state-default",sortNone:"",sortAsc:"",sortDesc:"",active:"ui-state-active",hover:"ui-state-hover",icons:"ui-icon",iconSortNone:"ui-icon-carat-2-n-s ui-icon-caret-2-n-s",iconSortAsc:"ui-icon-carat-1-n ui-icon-caret-1-n",iconSortDesc:"ui-icon-carat-1-s ui-icon-caret-1-s",filterRow:"",footerRow:"",footerCells:"",even:"ui-widget-content",odd:"ui-state-default"}},e.extend(t.css,{wrapper:"tablesorter-wrapper"}),t.addWidget({id:"uitheme",priority:10,format:function(r,i,a){var l,s,n,o,c,d,f,h,u,p,g,m,b,y=t.themes,_=i.$table.add(e(i.namespace+"_extra_table")),v=i.$headers.add(e(i.namespace+"_extra_headers")),w=i.theme||"jui",x=y[w]||{},S=e.trim([x.sortNone,x.sortDesc,x.sortAsc,x.active].join(" ")),C=e.trim([x.iconSortNone,x.iconSortDesc,x.iconSortAsc].join(" "));for(i.debug&&(c=new Date),_.hasClass("tablesorter-"+w)&&i.theme===i.appliedTheme&&a.uitheme_applied||(a.uitheme_applied=!0,p=y[i.appliedTheme]||{},g=(b=!e.isEmptyObject(p))?[p.sortNone,p.sortDesc,p.sortAsc,p.active].join(" "):"",m=b?[p.iconSortNone,p.iconSortDesc,p.iconSortAsc].join(" "):"",b&&(a.zebra[0]=e.trim(" "+a.zebra[0].replace(" "+p.even,"")),a.zebra[1]=e.trim(" "+a.zebra[1].replace(" "+p.odd,"")),i.$tbodies.children().removeClass([p.even,p.odd].join(" "))),x.even&&(a.zebra[0]+=" "+x.even),x.odd&&(a.zebra[1]+=" "+x.odd),_.children("caption").removeClass(p.caption||"").addClass(x.caption),h=_.removeClass((i.appliedTheme?"tablesorter-"+(i.appliedTheme||""):"")+" "+(p.table||"")).addClass("tablesorter-"+w+" "+(x.table||"")).children("tfoot"),i.appliedTheme=i.theme,h.length&&h.children("tr").removeClass(p.footerRow||"").addClass(x.footerRow).children("th, td").removeClass(p.footerCells||"").addClass(x.footerCells),v.removeClass((b?[p.header,p.hover,g].join(" "):"")||"").addClass(x.header).not(".sorter-false").unbind("mouseenter.tsuitheme mouseleave.tsuitheme").bind("mouseenter.tsuitheme mouseleave.tsuitheme",function(t){e(this)["mouseenter"===t.type?"addClass":"removeClass"](x.hover||"")}),v.each(function(){var r=e(this);r.find("."+t.css.wrapper).length||r.wrapInner('<div class="'+t.css.wrapper+'" style="position:relative;height:100%;width:100%"></div>')}),i.cssIcon&&v.find("."+t.css.icon).removeClass(b?[p.icons,m].join(" "):"").addClass(x.icons||""),t.hasWidget(i.table,"filter")&&(s=function(){_.children("thead").children("."+t.css.filterRow).removeClass(b?p.filterRow||"":"").addClass(x.filterRow||"")},a.filter_initialized?s():_.one("filterInit",function(){s()}))),l=0;l<i.columns;l++)d=i.$headers.add(e(i.namespace+"_extra_headers")).not(".sorter-false").filter('[data-column="'+l+'"]'),f=t.css.icon?d.find("."+t.css.icon):e(),(u=v.not(".sorter-false").filter('[data-column="'+l+'"]:last')).length&&(d.removeClass(S),f.removeClass(C),u[0].sortDisabled?f.removeClass(x.icons||""):(n=x.sortNone,o=x.iconSortNone,u.hasClass(t.css.sortAsc)?(n=[x.sortAsc,x.active].join(" "),o=x.iconSortAsc):u.hasClass(t.css.sortDesc)&&(n=[x.sortDesc,x.active].join(" "),o=x.iconSortDesc),d.addClass(n),f.addClass(o||"")));i.debug&&console.log("Applying "+w+" theme"+t.benchmark(c))},remove:function(e,r,i,a){if(i.uitheme_applied){var l=r.$table,s=r.appliedTheme||"jui",n=t.themes[s]||t.themes.jui,o=l.children("thead").children(),c=n.sortNone+" "+n.sortDesc+" "+n.sortAsc,d=n.iconSortNone+" "+n.iconSortDesc+" "+n.iconSortAsc;l.removeClass("tablesorter-"+s+" "+n.table),i.uitheme_applied=!1,a||(l.find(t.css.header).removeClass(n.header),o.unbind("mouseenter.tsuitheme mouseleave.tsuitheme").removeClass(n.hover+" "+c+" "+n.active).filter("."+t.css.filterRow).removeClass(n.filterRow),o.find("."+t.css.icon).removeClass(n.icons+" "+d))}}})}(e),function(e){"use strict";var t=e.tablesorter||{};t.addWidget({id:"columns",priority:65,options:{columns:["primary","secondary","tertiary"]},format:function(r,i,a){var l,s,n,o,c,d,f,h,u=i.$table,p=i.$tbodies,g=i.sortList,m=g.length,b=a&&a.columns||["primary","secondary","tertiary"],y=b.length-1;for(f=b.join(" "),s=0;s<p.length;s++)(n=(l=t.processTbody(r,p.eq(s),!0)).children("tr")).each(function(){if(c=e(this),"none"!==this.style.display&&(d=c.children().removeClass(f),g&&g[0]&&(d.eq(g[0][0]).addClass(b[0]),m>1)))for(h=1;h<m;h++)d.eq(g[h][0]).addClass(b[h]||b[y])}),t.processTbody(r,l,!1);if(o=!1!==a.columns_thead?["thead tr"]:[],!1!==a.columns_tfoot&&o.push("tfoot tr"),o.length&&(n=u.find(o.join(",")).children().removeClass(f),m))for(h=0;h<m;h++)n.filter('[data-column="'+g[h][0]+'"]').addClass(b[h]||b[y])},remove:function(r,i,a){var l,s,n=i.$tbodies,o=(a.columns||["primary","secondary","tertiary"]).join(" ");for(i.$headers.removeClass(o),i.$table.children("tfoot").children("tr").children("th, td").removeClass(o),l=0;l<n.length;l++)(s=t.processTbody(r,n.eq(l),!0)).children("tr").each(function(){e(this).children().removeClass(o)}),t.processTbody(r,s,!1)}})}(e),function(e){"use strict";var t,r,i=e.tablesorter||{},a=i.css,l=i.keyCodes;e.extend(a,{filterRow:"tablesorter-filter-row",filter:"tablesorter-filter",filterDisabled:"disabled",filterRowHide:"hideme"}),e.extend(l,{backSpace:8,escape:27,space:32,left:37,down:40}),i.addWidget({id:"filter",priority:50,options:{filter_cellFilter:"",filter_childRows:!1,filter_childByColumn:!1,filter_childWithSibs:!0,filter_columnAnyMatch:!0,filter_columnFilters:!0,filter_cssFilter:"",filter_defaultAttrib:"data-value",filter_defaultFilter:{},filter_excludeFilter:{},filter_external:"",filter_filteredRow:"filtered",filter_filterLabel:'Filter "{{label}}" column by...',filter_formatter:null,filter_functions:null,filter_hideEmpty:!0,filter_hideFilters:!1,filter_ignoreCase:!0,filter_liveSearch:!0,filter_matchType:{input:"exact",select:"exact"},filter_onlyAvail:"filter-onlyAvail",filter_placeholder:{search:"",select:""},filter_reset:null,filter_resetOnEsc:!0,filter_saveFilters:!1,filter_searchDelay:300,filter_searchFiltered:!0,filter_selectSource:null,filter_selectSourceSeparator:"|",filter_serversideFiltering:!1,filter_startsWith:!1,filter_useParsedData:!1},format:function(e,r,i){r.$table.hasClass("hasFilters")||t.init(e,r,i)},remove:function(t,r,l,s){var n,o,c=r.$table,d=r.$tbodies,f="addRows updateCell update updateRows updateComplete appendCache filterReset filterAndSortReset filterFomatterUpdate filterEnd search stickyHeadersInit ".split(" ").join(r.namespace+"filter ");if(c.removeClass("hasFilters").unbind(f.replace(i.regex.spaces," ")).find("."+a.filterRow).remove(),l.filter_initialized=!1,!s){for(n=0;n<d.length;n++)(o=i.processTbody(t,d.eq(n),!0)).children().removeClass(l.filter_filteredRow).show(),i.processTbody(t,o,!1);l.filter_reset&&e(document).undelegate(l.filter_reset,"click"+r.namespace+"filter")}}}),t=i.filter={regex:{regex:/^\/((?:\\\/|[^\/])+)\/([migyu]{0,5})?$/,child:/tablesorter-childRow/,filtered:/filtered/,type:/undefined|number/,exact:/(^[\"\'=]+)|([\"\'=]+$)/g,operators:/[<>=]/g,query:"(q|query)",wild01:/\?/g,wild0More:/\*/g,quote:/\"/g,isNeg1:/(>=?\s*-\d)/,isNeg2:/(<=?\s*\d)/},types:{or:function(i,a,l){if((r.orTest.test(a.iFilter)||r.orSplit.test(a.filter))&&!r.regex.test(a.filter)){var s,n,o,c,d=e.extend({},a),f=a.filter.split(r.orSplit),h=a.iFilter.split(r.orSplit),u=f.length;for(s=0;s<u;s++){d.nestedFilters=!0,d.filter=""+(t.parseFilter(i,f[s],a)||""),d.iFilter=""+(t.parseFilter(i,h[s],a)||""),o="("+(t.parseFilter(i,d.filter,a)||"")+")";try{if(c=new RegExp(a.isMatch?o:"^"+o+"$",i.widgetOptions.filter_ignoreCase?"i":""),n=c.test(d.exact)||t.processTypes(i,d,l))return n}catch(e){return null}}return n||!1}return null},and:function(i,a,l){if(r.andTest.test(a.filter)){var s,n,o,c,d=e.extend({},a),f=a.filter.split(r.andSplit),h=a.iFilter.split(r.andSplit),u=f.length;for(s=0;s<u;s++){d.nestedFilters=!0,d.filter=""+(t.parseFilter(i,f[s],a)||""),d.iFilter=""+(t.parseFilter(i,h[s],a)||""),c=("("+(t.parseFilter(i,d.filter,a)||"")+")").replace(r.wild01,"\\S{1}").replace(r.wild0More,"\\S*");try{o=new RegExp(a.isMatch?c:"^"+c+"$",i.widgetOptions.filter_ignoreCase?"i":"").test(d.exact)||t.processTypes(i,d,l),n=0===s?o:n&&o}catch(e){return null}}return n||!1}return null},regex:function(e,t){if(r.regex.test(t.filter)){var i,a=t.filter_regexCache[t.index]||r.regex.exec(t.filter),l=a instanceof RegExp;try{l||(t.filter_regexCache[t.index]=a=new RegExp(a[1],a[2])),i=a.test(t.exact)}catch(e){i=!1}return i}return null},operators:function(a,l){if(r.operTest.test(l.iFilter)&&""!==l.iExact){var s,n,o,c=a.table,d=l.parsed[l.index],f=i.formatFloat(l.iFilter.replace(r.operators,""),c),h=a.parsers[l.index]||{},u=f;return(d||"numeric"===h.type)&&(o=e.trim(""+l.iFilter.replace(r.operators,"")),f="number"!=typeof(n=t.parseFilter(a,o,l,!0))||""===n||isNaN(n)?f:n),!d&&"numeric"!==h.type||isNaN(f)||void 0===l.cache?(o=isNaN(l.iExact)?l.iExact.replace(i.regex.nondigit,""):l.iExact,s=i.formatFloat(o,c)):s=l.cache,r.gtTest.test(l.iFilter)?n=r.gteTest.test(l.iFilter)?s>=f:s>f:r.ltTest.test(l.iFilter)&&(n=r.lteTest.test(l.iFilter)?s<=f:s<f),n||""!==u||(n=!0),n}return null},notMatch:function(i,a){if(r.notTest.test(a.iFilter)){var l,s=a.iFilter.replace("!",""),n=t.parseFilter(i,s,a)||"";return r.exact.test(n)?""===(n=n.replace(r.exact,""))||e.trim(n)!==a.iExact:(l=a.iExact.search(e.trim(n)),""===n||(a.anyMatch?l<0:!(i.widgetOptions.filter_startsWith?0===l:l>=0)))}return null},exact:function(i,a){if(r.exact.test(a.iFilter)){var l=a.iFilter.replace(r.exact,""),s=t.parseFilter(i,l,a)||"";return a.anyMatch?e.inArray(s,a.rowArray)>=0:s==a.iExact}return null},range:function(e,a){if(r.toTest.test(a.iFilter)){var l,s,n,o,c=e.table,d=a.index,f=a.parsed[d],h=a.iFilter.split(r.toSplit);return s=h[0].replace(i.regex.nondigit,"")||"",n=i.formatFloat(t.parseFilter(e,s,a),c),s=h[1].replace(i.regex.nondigit,"")||"",o=i.formatFloat(t.parseFilter(e,s,a),c),(f||"numeric"===e.parsers[d].type)&&(n=""===(l=e.parsers[d].format(""+h[0],c,e.$headers.eq(d),d))||isNaN(l)?n:l,o=""===(l=e.parsers[d].format(""+h[1],c,e.$headers.eq(d),d))||isNaN(l)?o:l),!f&&"numeric"!==e.parsers[d].type||isNaN(n)||isNaN(o)?(s=isNaN(a.iExact)?a.iExact.replace(i.regex.nondigit,""):a.iExact,l=i.formatFloat(s,c)):l=a.cache,n>o&&(s=n,n=o,o=s),l>=n&&l<=o||""===n||""===o}return null},wild:function(e,i){if(r.wildOrTest.test(i.iFilter)){var a=""+(t.parseFilter(e,i.iFilter,i)||"");!r.wildTest.test(a)&&i.nestedFilters&&(a=i.isMatch?a:"^("+a+")$");try{return new RegExp(a.replace(r.wild01,"\\S{1}").replace(r.wild0More,"\\S*"),e.widgetOptions.filter_ignoreCase?"i":"").test(i.exact)}catch(e){return null}}return null},fuzzy:function(e,i){if(r.fuzzyTest.test(i.iFilter)){var a,l=0,s=i.iExact.length,n=i.iFilter.slice(1),o=t.parseFilter(e,n,i)||"";for(a=0;a<s;a++)i.iExact[a]===o[l]&&(l+=1);return l===o.length}return null}},init:function(l){i.language=e.extend(!0,{},{to:"to",or:"or",and:"and"},i.language);var s,n,o,c,d,f,h,u,p=l.config,g=p.widgetOptions,m=function(e,t,r){return t=t.trim(),""===t?"":(e||"")+t+(r||"")};if(p.$table.addClass("hasFilters"),p.lastSearch=[],g.filter_searchTimer=null,g.filter_initTimer=null,g.filter_formatterCount=0,g.filter_formatterInit=[],g.filter_anyColumnSelector='[data-column="all"],[data-column="any"]',g.filter_multipleColumnSelector='[data-column*="-"],[data-column*=","]',f="\\{"+r.query+"\\}",e.extend(r,{child:new RegExp(p.cssChildRow),filtered:new RegExp(g.filter_filteredRow),alreadyFiltered:new RegExp("(\\s+(-"+m("|",i.language.or)+m("|",i.language.to)+")\\s+)","i"),toTest:new RegExp("\\s+(-"+m("|",i.language.to)+")\\s+","i"),toSplit:new RegExp("(?:\\s+(?:-"+m("|",i.language.to)+")\\s+)","gi"),andTest:new RegExp("\\s+("+m("",i.language.and,"|")+"&&)\\s+","i"),andSplit:new RegExp("(?:\\s+(?:"+m("",i.language.and,"|")+"&&)\\s+)","gi"),orTest:new RegExp("(\\|"+m("|\\s+",i.language.or,"\\s+")+")","i"),orSplit:new RegExp("(?:\\|"+m("|\\s+(?:",i.language.or,")\\s+")+")","gi"),iQuery:new RegExp(f,"i"),igQuery:new RegExp(f,"ig"),operTest:/^[<>]=?/,gtTest:/>/,gteTest:/>=/,ltTest:/</,lteTest:/<=/,notTest:/^\!/,wildOrTest:/[\?\*\|]/,wildTest:/\?\*/,fuzzyTest:/^~/,exactTest:/[=\"\|!]/}),f=p.$headers.filter(".filter-false, .parser-false").length,!1!==g.filter_columnFilters&&f!==p.$headers.length&&t.buildRow(l,p,g),o="addRows updateCell update updateRows updateComplete appendCache filterReset "+"filterAndSortReset filterResetSaved filterEnd search ".split(" ").join(p.namespace+"filter "),p.$table.bind(o,function(r,s){return f=g.filter_hideEmpty&&e.isEmptyObject(p.cache)&&!(p.delayInit&&"appendCache"===r.type),p.$table.find("."+a.filterRow).toggleClass(g.filter_filteredRow,f),/(search|filter)/.test(r.type)||(r.stopPropagation(),t.buildDefault(l,!0)),"filterReset"===r.type||"filterAndSortReset"===r.type?(p.$table.find("."+a.filter).add(g.filter_$externalFilters).val(""),"filterAndSortReset"===r.type?i.sortReset(this.config,function(){t.searching(l,[])}):t.searching(l,[])):"filterResetSaved"===r.type?i.storage(l,"tablesorter-filters",""):"filterEnd"===r.type?t.buildDefault(l,!0):(s="search"===r.type?s:"updateComplete"===r.type?p.$table.data("lastSearch"):"",/(update|add)/.test(r.type)&&"updateComplete"!==r.type&&(p.lastCombinedFilter=null,p.lastSearch=[],setTimeout(function(){p.$table.triggerHandler("filterFomatterUpdate")},100)),t.searching(l,s,!0)),!1}),g.filter_reset&&(g.filter_reset instanceof e?g.filter_reset.click(function(){p.$table.triggerHandler("filterReset")}):e(g.filter_reset).length&&e(document).undelegate(g.filter_reset,"click"+p.namespace+"filter").delegate(g.filter_reset,"click"+p.namespace+"filter",function(){p.$table.triggerHandler("filterReset")})),g.filter_functions)for(d=0;d<p.columns;d++)if(h=i.getColumnData(l,g.filter_functions,d))if(c=p.$headerIndexed[d].removeClass("filter-select"),u=!(c.hasClass("filter-false")||c.hasClass("parser-false")),s="",!0===h&&u)t.buildSelect(l,d);else if("object"==typeof h&&u){for(n in h)"string"==typeof n&&(s+=""===s?'<option value="">'+(c.data("placeholder")||c.attr("data-placeholder")||g.filter_placeholder.select||"")+"</option>":"",f=n,o=n,n.indexOf(g.filter_selectSourceSeparator)>=0&&(o=(f=n.split(g.filter_selectSourceSeparator))[1],f=f[0]),s+="<option "+(o===f?"":'data-function-name="'+n+'" ')+'value="'+f+'">'+o+"</option>");p.$table.find("thead").find("select."+a.filter+'[data-column="'+d+'"]').append(s),(h="function"==typeof(o=g.filter_selectSource)||i.getColumnData(l,o,d))&&t.buildSelect(p.table,d,"",!0,c.hasClass(g.filter_onlyAvail))}t.buildDefault(l,!0),t.bindSearch(l,p.$table.find("."+a.filter),!0),g.filter_external&&t.bindSearch(l,g.filter_external),g.filter_hideFilters&&t.hideFilters(p),p.showProcessing&&(o="filterStart filterEnd ".split(" ").join(p.namespace+"filter "),p.$table.unbind(o.replace(i.regex.spaces," ")).bind(o,function(t,r){c=r?p.$table.find("."+a.header).filter("[data-column]").filter(function(){return""!==r[e(this).data("column")]}):"",i.isProcessing(l,"filterStart"===t.type,r?c:"")})),p.filteredRows=p.totalRows,o="tablesorter-initialized pagerBeforeInitialized ".split(" ").join(p.namespace+"filter "),p.$table.unbind(o.replace(i.regex.spaces," ")).bind(o,function(){t.completeInit(this)}),p.pager&&p.pager.initialized&&!g.filter_initialized?(p.$table.triggerHandler("filterFomatterUpdate"),setTimeout(function(){t.filterInitComplete(p)},100)):g.filter_initialized||t.completeInit(l)},completeInit:function(e){var r=e.config,a=r.widgetOptions,l=t.setDefaults(e,r,a)||[];l.length&&(r.delayInit&&""===l.join("")||i.setFilters(e,l,!0)),r.$table.triggerHandler("filterFomatterUpdate"),setTimeout(function(){a.filter_initialized||t.filterInitComplete(r)},100)},formatterUpdated:function(e,t){var r=e&&e.closest("table"),i=r.length&&r[0].config,a=i&&i.widgetOptions;a&&!a.filter_initialized&&(a.filter_formatterInit[t]=1)},filterInitComplete:function(r){var i,a,l=r.widgetOptions,s=0,n=function(){l.filter_initialized=!0,r.lastSearch=r.$table.data("lastSearch"),r.$table.triggerHandler("filterInit",r),t.findRows(r.table,r.lastSearch||[])};if(e.isEmptyObject(l.filter_formatter))n();else{for(a=l.filter_formatterInit.length,i=0;i<a;i++)1===l.filter_formatterInit[i]&&s++;clearTimeout(l.filter_initTimer),l.filter_initialized||s!==l.filter_formatterCount?l.filter_initialized||(l.filter_initTimer=setTimeout(function(){n()},500)):n()}},processFilters:function(e,t){var r,i=[],a=t?encodeURIComponent:decodeURIComponent,l=e.length;for(r=0;r<l;r++)e[r]&&(i[r]=a(e[r]));return i},setDefaults:function(r,a,l){var s,n,o,c,d,f=i.getFilters(r)||[];if(l.filter_saveFilters&&i.storage&&(n=i.storage(r,"tablesorter-filters")||[],(s=e.isArray(n))&&""===n.join("")||!s||(f=t.processFilters(n))),""===f.join(""))for(d=a.$headers.add(l.filter_$externalFilters).filter("["+l.filter_defaultAttrib+"]"),o=0;o<=a.columns;o++)c=o===a.columns?"all":o,f[o]=d.filter('[data-column="'+c+'"]').attr(l.filter_defaultAttrib)||f[o]||"";return a.$table.data("lastSearch",f),f},parseFilter:function(e,t,r,i){return i||r.parsed[r.index]?e.parsers[r.index].format(t,e.table,[],r.index):t},buildRow:function(r,l,s){var n,o,c,d,f,h,u,p,g,m=s.filter_cellFilter,b=l.columns,y=e.isArray(m),_='<tr role="search" class="'+a.filterRow+" "+l.cssIgnoreRow+'">';for(c=0;c<b;c++)l.$headerIndexed[c].length&&(_+=(g=l.$headerIndexed[c]&&l.$headerIndexed[c][0].colSpan||0)>1?'<td data-column="'+c+"-"+(c+g-1)+'" colspan="'+g+'"':'<td data-column="'+c+'"',_+=y?m[c]?' class="'+m[c]+'"':"":""!==m?' class="'+m+'"':"",_+="></td>");for(l.$filters=e(_+="</tr>").appendTo(l.$table.children("thead").eq(0)).children("td"),c=0;c<b;c++)h=!1,(d=l.$headerIndexed[c])&&d.length&&(n=t.getColumnElm(l,l.$filters,c),p=i.getColumnData(r,s.filter_functions,c),f=s.filter_functions&&p&&"function"!=typeof p||d.hasClass("filter-select"),o=i.getColumnData(r,l.headers,c),h="false"===i.getData(d[0],o,"filter")||"false"===i.getData(d[0],o,"parser"),f?_=e("<select>").appendTo(n):((p=i.getColumnData(r,s.filter_formatter,c))?(s.filter_formatterCount++,(_=p(n,c))&&0===_.length&&(_=n.children("input")),_&&(0===_.parent().length||_.parent().length&&_.parent()[0]!==n[0])&&n.append(_)):_=e('<input type="search">').appendTo(n),_&&(g=d.data("placeholder")||d.attr("data-placeholder")||s.filter_placeholder.search||"",_.attr("placeholder",g))),_&&(u=(e.isArray(s.filter_cssFilter)?void 0!==s.filter_cssFilter[c]?s.filter_cssFilter[c]||"":"":s.filter_cssFilter)||"",_.addClass(a.filter+" "+u),(g=(u=s.filter_filterLabel).match(/{{([^}]+?)}}/g))||(g=["{{label}}"]),e.each(g,function(t,r){var i=new RegExp(r,"g"),a=d.attr("data-"+r.replace(/{{|}}/g,"")),l=void 0===a?d.text():a;u=u.replace(i,e.trim(l))}),_.attr({"data-column":n.attr("data-column"),"aria-label":u}),h&&(_.attr("placeholder","").addClass(a.filterDisabled)[0].disabled=!0)))},bindSearch:function(r,a,s){if(r=e(r)[0],(a=e(a)).length){var n,o=r.config,c=o.widgetOptions,d=o.namespace+"filter",f=c.filter_$externalFilters;!0!==s&&(n=c.filter_anyColumnSelector+","+c.filter_multipleColumnSelector,c.filter_$anyMatch=a.filter(n),f&&f.length?c.filter_$externalFilters=c.filter_$externalFilters.add(a):c.filter_$externalFilters=a,i.setFilters(r,o.$table.data("lastSearch")||[],!1===s)),n="keypress keyup keydown search change input ".split(" ").join(d+" "),a.attr("data-lastSearchTime",(new Date).getTime()).unbind(n.replace(i.regex.spaces," ")).bind("keydown"+d,function(e){if(e.which===l.escape&&!r.config.widgetOptions.filter_resetOnEsc)return!1}).bind("keyup"+d,function(a){c=r.config.widgetOptions;var s=parseInt(e(this).attr("data-column"),10),n="boolean"==typeof c.filter_liveSearch?c.filter_liveSearch:i.getColumnData(r,c.filter_liveSearch,s);if(void 0===n&&(n=c.filter_liveSearch.fallback||!1),e(this).attr("data-lastSearchTime",(new Date).getTime()),a.which===l.escape)this.value=c.filter_resetOnEsc?"":o.lastSearch[s];else{if(""!==this.value&&("number"==typeof n&&this.value.length<n||a.which!==l.enter&&a.which!==l.backSpace&&(a.which<l.space||a.which>=l.left&&a.which<=l.down)))return;if(!1===n&&""!==this.value&&a.which!==l.enter)return}t.searching(r,!0,!0,s)}).bind("search change keypress input blur ".split(" ").join(d+" "),function(a){var s=parseInt(e(this).attr("data-column"),10),n=a.type,d="boolean"==typeof c.filter_liveSearch?c.filter_liveSearch:i.getColumnData(r,c.filter_liveSearch,s);!r.config.widgetOptions.filter_initialized||a.which!==l.enter&&"search"!==n&&"blur"!==n&&("change"!==n&&"input"!==n||!0!==d&&(!0===d||"INPUT"===a.target.nodeName)||this.value===o.lastSearch[s])||(a.preventDefault(),e(this).attr("data-lastSearchTime",(new Date).getTime()),t.searching(r,"keypress"!==n,!0,s))})}},searching:function(e,r,a,l){var s,n=e.config.widgetOptions;void 0===l?s=!1:void 0===(s="boolean"==typeof n.filter_liveSearch?n.filter_liveSearch:i.getColumnData(e,n.filter_liveSearch,l))&&(s=n.filter_liveSearch.fallback||!1),clearTimeout(n.filter_searchTimer),void 0===r||!0===r?n.filter_searchTimer=setTimeout(function(){t.checkFilters(e,r,a)},s?n.filter_searchDelay:10):t.checkFilters(e,r,a)},equalFilters:function(t,r,i){var a,l=[],s=[],n=t.columns+1;for(r=e.isArray(r)?r:[],i=e.isArray(i)?i:[],a=0;a<n;a++)l[a]=r[a]||"",s[a]=i[a]||"";return l.join(",")===s.join(",")},checkFilters:function(r,l,s){var n=r.config,o=n.widgetOptions,c=e.isArray(l),d=c?l:i.getFilters(r,!0),f=d||[];if(e.isEmptyObject(n.cache))n.delayInit&&(!n.pager||n.pager&&n.pager.initialized)&&i.updateCache(n,function(){t.checkFilters(r,!1,s)});else if(c&&(i.setFilters(r,d,!1,!0!==s),o.filter_initialized||(n.lastSearch=[],n.lastCombinedFilter="")),o.filter_hideFilters&&n.$table.find("."+a.filterRow).triggerHandler(t.hideFiltersCheck(n)?"mouseleave":"mouseenter"),!t.equalFilters(n,n.lastSearch,f)||!1===l){if(!1===l&&(n.lastCombinedFilter="",n.lastSearch=[]),d=d||[],d=Array.prototype.map?d.map(String):d.join("�").split("�"),o.filter_initialized&&n.$table.triggerHandler("filterStart",[d]),!n.showProcessing)return t.findRows(r,d,f),!1;setTimeout(function(){return t.findRows(r,d,f),!1},30)}},hideFiltersCheck:function(e){if("function"==typeof e.widgetOptions.filter_hideFilters){var t=e.widgetOptions.filter_hideFilters(e);if("boolean"==typeof t)return t}return""===i.getFilters(e.$table).join("")},hideFilters:function(r,i){var l;(i||r.$table).find("."+a.filterRow).addClass(a.filterRowHide).bind("mouseenter mouseleave",function(i){var s=i,n=e(this);clearTimeout(l),l=setTimeout(function(){/enter|over/.test(s.type)?n.removeClass(a.filterRowHide):e(document.activeElement).closest("tr")[0]!==n[0]&&n.toggleClass(a.filterRowHide,t.hideFiltersCheck(r))},200)}).find("input, select").bind("focus blur",function(i){var s=i,n=e(this).closest("tr");clearTimeout(l),l=setTimeout(function(){clearTimeout(l),n.toggleClass(a.filterRowHide,t.hideFiltersCheck(r)&&"focus"!==s.type)},200)})},defaultFilter:function(t,i){if(""===t)return t;var a=r.iQuery,l=i.match(r.igQuery).length,s=l>1?e.trim(t).split(/\s/):[e.trim(t)],n=s.length-1,o=0,c=i;for(n<1&&l>1&&(s[1]=s[0]);a.test(c);)c=c.replace(a,s[o++]||""),a.test(c)&&o<n&&""!==(s[o]||"")&&(c=i.replace(a,c));return c},getLatestSearch:function(t){return t?t.sort(function(t,r){return e(r).attr("data-lastSearchTime")-e(t).attr("data-lastSearchTime")}):t||e()},findRange:function(e,t,r){var i,a,l,s,n,o,c,d,f,h=[];if(/^[0-9]+$/.test(t))return[parseInt(t,10)];if(!r&&/-/.test(t))for(f=(a=t.match(/(\d+)\s*-\s*(\d+)/g))?a.length:0,d=0;d<f;d++){for(l=a[d].split(/\s*-\s*/),(s=parseInt(l[0],10)||0)>(n=parseInt(l[1],10)||e.columns-1)&&(i=s,s=n,n=i),n>=e.columns&&(n=e.columns-1);s<=n;s++)h[h.length]=s;t=t.replace(a[d],"")}if(!r&&/,/.test(t))for(f=(o=t.split(/\s*,\s*/)).length,c=0;c<f;c++)""!==o[c]&&(d=parseInt(o[c],10))<e.columns&&(h[h.length]=d);if(!h.length)for(d=0;d<e.columns;d++)h[h.length]=d;return h},getColumnElm:function(r,i,a){return i.filter(function(){var i=t.findRange(r,e(this).attr("data-column"));return e.inArray(a,i)>-1})},multipleColumns:function(r,i){var a=r.widgetOptions,l=a.filter_initialized||!i.filter(a.filter_anyColumnSelector).length,s=e.trim(t.getLatestSearch(i).attr("data-column")||"");return t.findRange(r,s,!l)},processTypes:function(r,i,a){var l,s=null,n=null;for(l in t.types)e.inArray(l,a.excludeMatch)<0&&null===n&&null!==(n=t.types[l](r,i,a))&&(i.matchedOn=l,s=n);return s},matchType:function(e,t){var r,i=e.widgetOptions,l=e.$headerIndexed[t];return l.hasClass("filter-exact")?r=!1:l.hasClass("filter-match")?r=!0:(i.filter_columnFilters?l=e.$filters.find("."+a.filter).add(i.filter_$externalFilters).filter('[data-column="'+t+'"]'):i.filter_$externalFilters&&(l=i.filter_$externalFilters.filter('[data-column="'+t+'"]')),r=!!l.length&&"match"===e.widgetOptions.filter_matchType[(l[0].nodeName||"").toLowerCase()]),r},processRow:function(a,l,s){var n,o,c,d,f,h=a.widgetOptions,u=!0,p=h.filter_$anyMatch&&h.filter_$anyMatch.length,g=h.filter_$anyMatch&&h.filter_$anyMatch.length?t.multipleColumns(a,h.filter_$anyMatch):[];if(l.$cells=l.$row.children(),l.matchedOn=null,l.anyMatchFlag&&g.length>1||l.anyMatchFilter&&!p){if(l.anyMatch=!0,l.isMatch=!0,l.rowArray=l.$cells.map(function(t){if(e.inArray(t,g)>-1||l.anyMatchFilter&&!p)return l.parsed[t]?f=l.cacheArray[t]:(f=l.rawArray[t],f=e.trim(h.filter_ignoreCase?f.toLowerCase():f),a.sortLocaleCompare&&(f=i.replaceAccents(f))),f}).get(),l.filter=l.anyMatchFilter,l.iFilter=l.iAnyMatchFilter,l.exact=l.rowArray.join(" "),l.iExact=h.filter_ignoreCase?l.exact.toLowerCase():l.exact,l.cache=l.cacheArray.slice(0,-1).join(" "),s.excludeMatch=s.noAnyMatch,null!==(o=t.processTypes(a,l,s)))u=o;else if(h.filter_startsWith)for(u=!1,g=Math.min(a.columns,l.rowArray.length);!u&&g>0;)g--,u=u||0===l.rowArray[g].indexOf(l.iFilter);else u=(l.iExact+l.childRowText).indexOf(l.iFilter)>=0;if(l.anyMatch=!1,l.filters.join("")===l.filter)return u}for(g=0;g<a.columns;g++)l.filter=l.filters[g],l.index=g,s.excludeMatch=s.excludeFilter[g],l.filter&&(l.cache=l.cacheArray[g],n=l.parsed[g]?l.cache:l.rawArray[g]||"",l.exact=a.sortLocaleCompare?i.replaceAccents(n):n,l.iExact=!r.type.test(typeof l.exact)&&h.filter_ignoreCase?l.exact.toLowerCase():l.exact,l.isMatch=t.matchType(a,g),n=u,d=h.filter_columnFilters?a.$filters.add(h.filter_$externalFilters).filter('[data-column="'+g+'"]').find("select option:selected").attr("data-function-name")||"":"",a.sortLocaleCompare&&(l.filter=i.replaceAccents(l.filter)),h.filter_defaultFilter&&r.iQuery.test(s.defaultColFilter[g])&&(l.filter=t.defaultFilter(l.filter,s.defaultColFilter[g])),l.iFilter=h.filter_ignoreCase?(l.filter||"").toLowerCase():l.filter,o=null,(c=s.functions[g])&&("function"==typeof c?o=c(l.exact,l.cache,l.filter,g,l.$row,a,l):"function"==typeof c[d||l.filter]&&(o=c[f=d||l.filter](l.exact,l.cache,l.filter,g,l.$row,a,l))),null===o?(o=t.processTypes(a,l,s),f=!0===c&&("and"===l.matchedOn||"or"===l.matchedOn),null===o||f?!0===c?n=l.isMatch?(""+l.iExact).search(l.iFilter)>=0:l.filter===l.exact:(f=(l.iExact+l.childRowText).indexOf(t.parseFilter(a,l.iFilter,l)),n=!h.filter_startsWith&&f>=0||h.filter_startsWith&&0===f):n=o):n=o,u=!!n&&u);return u},findRows:function(a,l,s){if(!t.equalFilters(a.config,a.config.lastSearch,s)&&a.config.widgetOptions.filter_initialized){var n,o,c,d,f,h,u,p,g,m,b,y,_,v,w,x,S,C,z,$,F,R,T,k=e.extend([],l),H=a.config,A=H.widgetOptions,I={anyMatch:!1,filters:l,filter_regexCache:[]},O={noAnyMatch:["range","operators"],functions:[],excludeFilter:[],defaultColFilter:[],defaultAnyFilter:i.getColumnData(a,A.filter_defaultFilter,H.columns,!0)||""};for(I.parsed=[],g=0;g<H.columns;g++)I.parsed[g]=A.filter_useParsedData||H.parsers&&H.parsers[g]&&H.parsers[g].parsed||i.getData&&"parsed"===i.getData(H.$headerIndexed[g],i.getColumnData(a,H.headers,g),"filter")||H.$headerIndexed[g].hasClass("filter-parsed"),O.functions[g]=i.getColumnData(a,A.filter_functions,g)||H.$headerIndexed[g].hasClass("filter-select"),O.defaultColFilter[g]=i.getColumnData(a,A.filter_defaultFilter,g)||"",O.excludeFilter[g]=(i.getColumnData(a,A.filter_excludeFilter,g,!0)||"").split(/\s+/);for(H.debug&&(console.log("Filter: Starting filter widget search",l),v=new Date),H.filteredRows=0,H.totalRows=0,s=k||[],u=0;u<H.$tbodies.length;u++){if(p=i.processTbody(a,H.$tbodies.eq(u),!0),g=H.columns,o=H.cache[u].normalized,d=e(e.map(o,function(e){return e[g].$row.get()})),""===s.join("")||A.filter_serversideFiltering)d.removeClass(A.filter_filteredRow).not("."+H.cssChildRow).css("display","");else{if(d=d.not("."+H.cssChildRow),n=d.length,(A.filter_$anyMatch&&A.filter_$anyMatch.length||void 0!==l[H.columns])&&(I.anyMatchFlag=!0,I.anyMatchFilter=""+(l[H.columns]||A.filter_$anyMatch&&t.getLatestSearch(A.filter_$anyMatch).val()||""),A.filter_columnAnyMatch)){for(z=I.anyMatchFilter.split(r.andSplit),$=!1,x=0;x<z.length;x++)(F=z[x].split(":")).length>1&&(isNaN(F[0])?e.each(H.headerContent,function(e,t){t.toLowerCase().indexOf(F[0])>-1&&(l[R=e]=F[1])}):R=parseInt(F[0],10)-1,R>=0&&R<H.columns&&(l[R]=F[1],z.splice(x,1),x--,$=!0));$&&(I.anyMatchFilter=z.join(" && "))}if(C=A.filter_searchFiltered,b=H.lastSearch||H.$table.data("lastSearch")||[],C)for(x=0;x<g+1;x++)w=l[x]||"",C||(x=g),C=C&&b.length&&0===w.indexOf(b[x]||"")&&!r.alreadyFiltered.test(w)&&!r.exactTest.test(w)&&!(r.isNeg1.test(w)||r.isNeg2.test(w))&&!(""!==w&&H.$filters&&H.$filters.filter('[data-column="'+x+'"]').find("select").length&&!t.matchType(H,x));for(S=d.not("."+A.filter_filteredRow).length,C&&0===S&&(C=!1),H.debug&&console.log("Filter: Searching through "+(C&&S<n?S:"all")+" rows"),I.anyMatchFlag&&(H.sortLocaleCompare&&(I.anyMatchFilter=i.replaceAccents(I.anyMatchFilter)),A.filter_defaultFilter&&r.iQuery.test(O.defaultAnyFilter)&&(I.anyMatchFilter=t.defaultFilter(I.anyMatchFilter,O.defaultAnyFilter),C=!1),I.iAnyMatchFilter=A.filter_ignoreCase&&H.ignoreCase?I.anyMatchFilter.toLowerCase():I.anyMatchFilter),h=0;h<n;h++)if(T=d[h].className,!(h&&r.child.test(T)||C&&r.filtered.test(T))){if(I.$row=d.eq(h),I.rowIndex=h,I.cacheArray=o[h],c=I.cacheArray[H.columns],I.rawArray=c.raw,I.childRowText="",!A.filter_childByColumn){for(T="",m=c.child,x=0;x<m.length;x++)T+=" "+m[x].join(" ")||"";I.childRowText=A.filter_childRows?A.filter_ignoreCase?T.toLowerCase():T:""}if(y=!1,_=t.processRow(H,I,O),f=c.$row,w=!!_,m=c.$row.filter(":gt(0)"),A.filter_childRows&&m.length){if(A.filter_childByColumn)for(A.filter_childWithSibs||(m.addClass(A.filter_filteredRow),f=f.eq(0)),x=0;x<m.length;x++)I.$row=m.eq(x),I.cacheArray=c.child[x],I.rawArray=I.cacheArray,w=t.processRow(H,I,O),y=y||w,!A.filter_childWithSibs&&w&&m.eq(x).removeClass(A.filter_filteredRow);y=y||_}else y=w;f.toggleClass(A.filter_filteredRow,!y)[0].display=y?"":"none"}}H.filteredRows+=d.not("."+A.filter_filteredRow).length,H.totalRows+=d.length,i.processTbody(a,p,!1)}H.lastCombinedFilter=k.join(""),H.lastSearch=k,H.$table.data("lastSearch",k),A.filter_saveFilters&&i.storage&&i.storage(a,"tablesorter-filters",t.processFilters(k,!0)),H.debug&&console.log("Completed filter widget search"+i.benchmark(v)),A.filter_initialized&&(H.$table.triggerHandler("filterBeforeEnd",H),H.$table.triggerHandler("filterEnd",H)),setTimeout(function(){i.applyWidget(H.table)},0)}},getOptionSource:function(r,a,l){var s=(r=e(r)[0]).config,n=!1,o=s.widgetOptions.filter_selectSource,c=s.$table.data("lastSearch")||[],d="function"==typeof o||i.getColumnData(r,o,a);if(l&&""!==c[a]&&(l=!1),!0===d)n=o(r,a,l);else{if(d instanceof e||"string"===e.type(d)&&d.indexOf("</option>")>=0)return d;if(e.isArray(d))n=d;else if("object"===e.type(o)&&d&&null===(n=d(r,a,l)))return null}return!1===n&&(n=t.getOptions(r,a,l)),t.processOptions(r,a,n)},processOptions:function(t,r,a){if(!e.isArray(a))return!1;var l,s,n,o,c,d,f=(t=e(t)[0]).config,h=void 0!==r&&null!==r&&r>=0&&r<f.columns,u=!!h&&f.$headerIndexed[r].hasClass("filter-select-sort-desc"),p=[];if(a=e.grep(a,function(t,r){return!!t.text||e.inArray(t,a)===r}),h&&f.$headerIndexed[r].hasClass("filter-select-nosort"))return a;for(o=a.length,n=0;n<o;n++)d=(s=a[n]).text?s.text:s,c=(h&&f.parsers&&f.parsers.length&&f.parsers[r].format(d,t,[],r)||d).toString(),c=f.widgetOptions.filter_ignoreCase?c.toLowerCase():c,s.text?(s.parsed=c,p[p.length]=s):p[p.length]={text:s,parsed:c};for(l=f.textSorter||"",p.sort(function(e,a){var s=u?a.parsed:e.parsed,n=u?e.parsed:a.parsed;return h&&"function"==typeof l?l(s,n,!0,r,t):h&&"object"==typeof l&&l.hasOwnProperty(r)?l[r](s,n,!0,r,t):!i.sortNatural||i.sortNatural(s,n)}),a=[],o=p.length,n=0;n<o;n++)a[a.length]=p[n];return a},getOptions:function(t,r,a){var l,s,n,o,c,d,f,h,u=(t=e(t)[0]).config,p=u.widgetOptions,g=[];for(s=0;s<u.$tbodies.length;s++)for(c=u.cache[s],n=u.cache[s].normalized.length,l=0;l<n;l++)if(o=c.row?c.row[l]:c.normalized[l][u.columns].$row[0],!a||!o.className.match(p.filter_filteredRow))if(p.filter_useParsedData||u.parsers[r].parsed||u.$headerIndexed[r].hasClass("filter-parsed")){if(g[g.length]=""+c.normalized[l][r],p.filter_childRows&&p.filter_childByColumn)for(h=c.normalized[l][u.columns].$row.length-1,d=0;d<h;d++)g[g.length]=""+c.normalized[l][u.columns].child[d][r]}else if(g[g.length]=c.normalized[l][u.columns].raw[r],p.filter_childRows&&p.filter_childByColumn)for(h=c.normalized[l][u.columns].$row.length,d=1;d<h;d++)f=c.normalized[l][u.columns].$row.eq(d).children().eq(r),g[g.length]=""+i.getElementText(u,f,r);return g},buildSelect:function(i,l,s,n,o){if(i=e(i)[0],l=parseInt(l,10),i.config.cache&&!e.isEmptyObject(i.config.cache)){var c,d,f,h,u,p,g,m=i.config,b=m.widgetOptions,y=m.$headerIndexed[l],_='<option value="">'+(y.data("placeholder")||y.attr("data-placeholder")||b.filter_placeholder.select||"")+"</option>",v=m.$table.find("thead").find("select."+a.filter+'[data-column="'+l+'"]').val();if(void 0!==s&&""!==s||null!==(s=t.getOptionSource(i,l,o))){if(e.isArray(s)){for(c=0;c<s.length;c++)if((g=s[c]).text){g["data-function-name"]=void 0===g.value?g.text:g.value,_+="<option";for(d in g)g.hasOwnProperty(d)&&"text"!==d&&(_+=" "+d+'="'+g[d]+'"');g.value||(_+=' value="'+g.text+'"'),_+=">"+g.text+"</option>"}else""+g!="[object Object]"&&(d=f=g=(""+g).replace(r.quote,"""),f.indexOf(b.filter_selectSourceSeparator)>=0&&(d=(h=f.split(b.filter_selectSourceSeparator))[0],f=h[1]),_+=""!==g?"<option "+(d===f?"":'data-function-name="'+g+'" ')+'value="'+d+'">'+f+"</option>":"");s=[]}u=(m.$filters?m.$filters:m.$table.children("thead")).find("."+a.filter),b.filter_$externalFilters&&(u=u&&u.length?u.add(b.filter_$externalFilters):b.filter_$externalFilters),(p=u.filter('select[data-column="'+l+'"]')).length&&(p[n?"html":"append"](_),e.isArray(s)||p.append(s).val(v),p.val(v))}}},buildDefault:function(e,r){var a,l,s,n=e.config,o=n.widgetOptions,c=n.columns;for(a=0;a<c;a++)s=!((l=n.$headerIndexed[a]).hasClass("filter-false")||l.hasClass("parser-false")),(l.hasClass("filter-select")||!0===i.getColumnData(e,o.filter_functions,a))&&s&&t.buildSelect(e,a,"",r,l.hasClass(o.filter_onlyAvail))}},r=t.regex,i.getFilters=function(r,i,l,s){var n,o,c,d,f=[],h=r?e(r)[0].config:"",u=h?h.widgetOptions:"";if(!0!==i&&u&&!u.filter_columnFilters||e.isArray(l)&&t.equalFilters(h,l,h.lastSearch))return e(r).data("lastSearch")||[];if(h&&(h.$filters&&(o=h.$filters.find("."+a.filter)),u.filter_$externalFilters&&(o=o&&o.length?o.add(u.filter_$externalFilters):u.filter_$externalFilters),o&&o.length))for(f=l||[],n=0;n<h.columns+1;n++)d=n===h.columns?u.filter_anyColumnSelector+","+u.filter_multipleColumnSelector:'[data-column="'+n+'"]',(c=o.filter(d)).length&&(c=t.getLatestSearch(c),e.isArray(l)?(s&&c.length>1&&(c=c.slice(1)),n===h.columns&&(c=(d=c.filter(u.filter_anyColumnSelector)).length?d:c),c.val(l[n]).trigger("change"+h.namespace)):(f[n]=c.val()||"",n===h.columns?c.slice(1).filter('[data-column*="'+c.attr("data-column")+'"]').val(f[n]):c.slice(1).val(f[n])),n===h.columns&&c.length&&(u.filter_$anyMatch=c));return f},i.setFilters=function(r,a,l,s){var n=r?e(r)[0].config:"",o=i.getFilters(r,!0,a,s);return void 0===l&&(l=!0),n&&l&&(n.lastCombinedFilter=null,n.lastSearch=[],t.searching(n.table,a,s),n.$table.triggerHandler("filterFomatterUpdate")),0!==o.length}}(e),function(e,t){"use strict";function r(t,r){var i=isNaN(r.stickyHeaders_offset)?e(r.stickyHeaders_offset):[];return i.length?i.height()||0:parseInt(r.stickyHeaders_offset,10)||0}var i=e.tablesorter||{};e.extend(i.css,{sticky:"tablesorter-stickyHeader",stickyVis:"tablesorter-sticky-visible",stickyHide:"tablesorter-sticky-hidden",stickyWrap:"tablesorter-sticky-wrapper"}),i.addHeaderResizeEvent=function(t,r,i){if((t=e(t)[0]).config){var a={timer:250},l=e.extend({},a,i),s=t.config,n=s.widgetOptions,o=function(e){var t,r,i,a,l,o,c=s.$headers.length;for(n.resize_flag=!0,r=[],t=0;t<c;t++)a=(i=s.$headers.eq(t)).data("savedSizes")||[0,0],l=i[0].offsetWidth,o=i[0].offsetHeight,l===a[0]&&o===a[1]||(i.data("savedSizes",[l,o]),r.push(i[0]));r.length&&!1!==e&&s.$table.triggerHandler("resize",[r]),n.resize_flag=!1};if(clearInterval(n.resize_timer),r)return n.resize_flag=!1,!1;o(!1),n.resize_timer=setInterval(function(){n.resize_flag||o()},l.timer)}},i.addWidget({id:"stickyHeaders",priority:54,options:{stickyHeaders:"",stickyHeaders_appendTo:null,stickyHeaders_attachTo:null,stickyHeaders_xScroll:null,stickyHeaders_yScroll:null,stickyHeaders_offset:0,stickyHeaders_filteredToTop:!0,stickyHeaders_cloneId:"-sticky",stickyHeaders_addResizeEvent:!0,stickyHeaders_includeCaption:!0,stickyHeaders_zIndex:2},format:function(a,l,s){if(!(l.$table.hasClass("hasStickyHeaders")||e.inArray("filter",l.widgets)>=0&&!l.$table.hasClass("hasFilters"))){var n,o,c,d,f=l.$table,h=e(s.stickyHeaders_attachTo||s.stickyHeaders_appendTo),u=l.namespace+"stickyheaders ",p=e(s.stickyHeaders_yScroll||s.stickyHeaders_attachTo||t),g=e(s.stickyHeaders_xScroll||s.stickyHeaders_attachTo||t),m=f.children("thead:first").children("tr").not(".sticky-false").children(),b=f.children("tfoot"),y=r(l,s),_=f.parent().closest("."+i.css.table).hasClass("hasStickyHeaders")?f.parent().closest("table.tablesorter")[0].config.widgetOptions.$sticky.parent():[],v=_.length?_.height():0,w=s.$sticky=f.clone().addClass("containsStickyHeaders "+i.css.sticky+" "+s.stickyHeaders+" "+l.namespace.slice(1)+"_extra_table").wrap('<div class="'+i.css.stickyWrap+'">'),x=w.parent().addClass(i.css.stickyHide).css({position:h.length?"absolute":"fixed",padding:parseInt(w.parent().parent().css("padding-left"),10),top:y+v,left:0,visibility:"hidden",zIndex:s.stickyHeaders_zIndex||2}),S=w.children("thead:first"),C="",z=function(e,r){var i,a,l,s,n,o=e.filter(":visible"),c=o.length;for(i=0;i<c;i++)s=r.filter(":visible").eq(i),"border-box"===(n=o.eq(i)).css("box-sizing")?a=n.outerWidth():"collapse"===s.css("border-collapse")?t.getComputedStyle?a=parseFloat(t.getComputedStyle(n[0],null).width):(l=parseFloat(n.css("border-width")),a=n.outerWidth()-parseFloat(n.css("padding-left"))-parseFloat(n.css("padding-right"))-l):a=n.width(),s.css({width:a,"min-width":a,"max-width":a})},$=function(r){return!1===r&&_.length?f.position().left:h.length?parseInt(h.css("padding-left"),10)||0:f.offset().left-parseInt(f.css("margin-left"),10)-e(t).scrollLeft()},F=function(){x.css({left:$(),width:f.outerWidth()}),z(f,w),z(m,d)},R=function(t){if(f.is(":visible")){v=_.length?_.offset().top-p.scrollTop()+_.height():0;var a,n=f.offset(),o=r(l,s),c=e.isWindow(p[0]),d=c?p.scrollTop():_.length?parseInt(_[0].style.top,10):p.offset().top,u=h.length?d:p.scrollTop(),g=s.stickyHeaders_includeCaption?0:f.children("caption").height()||0,m=u+o+v-g,y=f.height()-(x.height()+(b.height()||0))-g,w=m>n.top&&m<n.top+y?"visible":"hidden",S="visible"===w?i.css.stickyVis:i.css.stickyHide,z=!x.hasClass(S),R={visibility:w};h.length&&(z=!0,R.top=c?m-h.offset().top:h.scrollTop()),(a=$(c))!==parseInt(x.css("left"),10)&&(z=!0,R.left=a),R.top=(R.top||0)+(!c&&_.length?_.height():o+v),z&&x.removeClass(i.css.stickyVis+" "+i.css.stickyHide).addClass(S).css(R),(w!==C||t)&&(F(),C=w)}};if(h.length&&!h.css("position")&&h.css("position","relative"),w.attr("id")&&(w[0].id+=s.stickyHeaders_cloneId),w.find("> thead:gt(0), tr.sticky-false").hide(),w.find("> tbody, > tfoot").remove(),w.find("caption").toggle(s.stickyHeaders_includeCaption),d=S.children().children(),w.css({height:0,width:0,margin:0}),d.find("."+i.css.resizer).remove(),f.addClass("hasStickyHeaders").bind("pagerComplete"+u,function(){F()}),i.bindEvents(a,S.children().children("."+i.css.header)),s.stickyHeaders_appendTo?e(s.stickyHeaders_appendTo).append(x):f.after(x),l.onRenderHeader)for(o=(c=S.children("tr").children()).length,n=0;n<o;n++)l.onRenderHeader.apply(c.eq(n),[n,l,w]);g.add(p).unbind("scroll resize ".split(" ").join(u).replace(/\s+/g," ")).bind("scroll resize ".split(" ").join(u),function(e){R("resize"===e.type)}),l.$table.unbind("stickyHeadersUpdate"+u).bind("stickyHeadersUpdate"+u,function(){R(!0)}),s.stickyHeaders_addResizeEvent&&i.addHeaderResizeEvent(a),f.hasClass("hasFilters")&&s.filter_columnFilters&&(f.bind("filterEnd"+u,function(){var r=e(document.activeElement).closest("td"),a=r.parent().children().index(r);x.hasClass(i.css.stickyVis)&&s.stickyHeaders_filteredToTop&&(t.scrollTo(0,f.position().top),a>=0&&l.$filters&&l.$filters.eq(a).find("a, select, input").filter(":visible").focus())}),i.filter.bindSearch(f,d.find("."+i.css.filter)),s.filter_hideFilters&&i.filter.hideFilters(l,w)),s.stickyHeaders_addResizeEvent&&f.bind("resize"+l.namespace+"stickyheaders",function(){F()}),R(!0),f.triggerHandler("stickyHeadersInit")}},remove:function(r,a,l){var s=a.namespace+"stickyheaders ";a.$table.removeClass("hasStickyHeaders").unbind("pagerComplete resize filterEnd stickyHeadersUpdate ".split(" ").join(s).replace(/\s+/g," ")).next("."+i.css.stickyWrap).remove(),l.$sticky&&l.$sticky.length&&l.$sticky.remove(),e(t).add(l.stickyHeaders_xScroll).add(l.stickyHeaders_yScroll).add(l.stickyHeaders_attachTo).unbind("scroll resize ".split(" ").join(s).replace(/\s+/g," ")),i.addHeaderResizeEvent(r,!0)}})}(e,window),function(e,t){"use strict";var r=e.tablesorter||{};e.extend(r.css,{resizableContainer:"tablesorter-resizable-container",resizableHandle:"tablesorter-resizable-handle",resizableNoSelect:"tablesorter-disableSelection",resizableStorage:"tablesorter-resizable"}),e(function(){var t="<style>body."+r.css.resizableNoSelect+" { -ms-user-select: none; -moz-user-select: -moz-none;-khtml-user-select: none; -webkit-user-select: none; user-select: none; }."+r.css.resizableContainer+" { position: relative; height: 1px; }."+r.css.resizableHandle+" { position: absolute; display: inline-block; width: 8px;top: 1px; cursor: ew-resize; z-index: 3; user-select: none; -moz-user-select: none; }</style>";e("head").append(t)}),r.resizable={init:function(t,i){if(!t.$table.hasClass("hasResizable")){t.$table.addClass("hasResizable");var a,l,s,n,o=t.$table,c=o.parent(),d=parseInt(o.css("margin-top"),10),f=i.resizable_vars={useStorage:r.storage&&!1!==i.resizable,$wrap:c,mouseXPosition:0,$target:null,$next:null,overflow:"auto"===c.css("overflow")||"scroll"===c.css("overflow")||"auto"===c.css("overflow-x")||"scroll"===c.css("overflow-x"),storedSizes:[]};for(r.resizableReset(t.table,!0),f.tableWidth=o.width(),f.fullWidth=Math.abs(c.width()-f.tableWidth)<20,f.useStorage&&f.overflow&&(r.storage(t.table,"tablesorter-table-original-css-width",f.tableWidth),n=r.storage(t.table,"tablesorter-table-resized-width")||"auto",r.resizable.setWidth(o,n,!0)),i.resizable_vars.storedSizes=s=(f.useStorage?r.storage(t.table,r.css.resizableStorage):[])||[],r.resizable.setWidths(t,i,s),r.resizable.updateStoredSizes(t,i),i.$resizable_container=e('<div class="'+r.css.resizableContainer+'">').css({top:d}).insertBefore(o),l=0;l<t.columns;l++)a=t.$headerIndexed[l],n=r.getColumnData(t.table,t.headers,l),"false"===r.getData(a,n,"resizable")||e('<div class="'+r.css.resizableHandle+'">').appendTo(i.$resizable_container).attr({"data-column":l,unselectable:"on"}).data("header",a).bind("selectstart",!1);r.resizable.bindings(t,i)}},updateStoredSizes:function(e,t){var r,i,a=e.columns,l=t.resizable_vars;for(l.storedSizes=[],r=0;r<a;r++)i=e.$headerIndexed[r],l.storedSizes[r]=i.is(":visible")?i.width():0},setWidth:function(e,t,r){e.css({width:t,"min-width":r?t:"","max-width":r?t:""})},setWidths:function(t,i,a){var l,s,n=i.resizable_vars,o=e(t.namespace+"_extra_headers"),c=t.$table.children("colgroup").children("col");if((a=a||n.storedSizes||[]).length){for(l=0;l<t.columns;l++)r.resizable.setWidth(t.$headerIndexed[l],a[l],n.overflow),o.length&&(s=o.eq(l).add(c.eq(l)),r.resizable.setWidth(s,a[l],n.overflow));(s=e(t.namespace+"_extra_table")).length&&!r.hasWidget(t.table,"scroller")&&r.resizable.setWidth(s,t.$table.outerWidth(),n.overflow)}},setHandlePosition:function(t,i){var a,l=t.$table.height(),s=i.$resizable_container.children(),n=Math.floor(s.width()/2);r.hasWidget(t.table,"scroller")&&(l=0,t.$table.closest("."+r.css.scrollerWrap).children().each(function(){var t=e(this);l+=t.filter('[style*="height"]').length?t.height():t.children("table").height()})),!i.resizable_includeFooter&&t.$table.children("tfoot").length&&(l-=t.$table.children("tfoot").height()),a=t.$table.position().left,s.each(function(){var s=e(this),o=parseInt(s.attr("data-column"),10),c=t.columns-1,d=s.data("header");d&&(!d.is(":visible")||!i.resizable_addLastColumn&&r.resizable.checkVisibleColumns(t,o)?s.hide():(o<c||o===c&&i.resizable_addLastColumn)&&s.css({display:"inline-block",height:l,left:d.position().left-a+d.outerWidth()-n}))})},checkVisibleColumns:function(e,t){var r,i=0;for(r=t+1;r<e.columns;r++)i+=e.$headerIndexed[r].is(":visible")?1:0;return 0===i},toggleTextSelection:function(t,i,a){var l=t.namespace+"tsresize";i.resizable_vars.disabled=a,e("body").toggleClass(r.css.resizableNoSelect,a),a?e("body").attr("unselectable","on").bind("selectstart"+l,!1):e("body").removeAttr("unselectable").unbind("selectstart"+l)},bindings:function(i,a){var l=i.namespace+"tsresize";a.$resizable_container.children().bind("mousedown",function(t){var l,s=a.resizable_vars,n=e(i.namespace+"_extra_headers"),o=e(t.target).data("header");l=parseInt(o.attr("data-column"),10),s.$target=o=o.add(n.filter('[data-column="'+l+'"]')),s.target=l,s.$next=t.shiftKey||a.resizable_targetLast?o.parent().children().not(".resizable-false").filter(":last"):o.nextAll(":not(.resizable-false)").eq(0),l=parseInt(s.$next.attr("data-column"),10),s.$next=s.$next.add(n.filter('[data-column="'+l+'"]')),s.next=l,s.mouseXPosition=t.pageX,r.resizable.updateStoredSizes(i,a),r.resizable.toggleTextSelection(i,a,!0)}),e(document).bind("mousemove"+l,function(e){var t=a.resizable_vars;t.disabled&&0!==t.mouseXPosition&&t.$target&&(a.resizable_throttle?(clearTimeout(t.timer),t.timer=setTimeout(function(){r.resizable.mouseMove(i,a,e)},isNaN(a.resizable_throttle)?5:a.resizable_throttle)):r.resizable.mouseMove(i,a,e))}).bind("mouseup"+l,function(){a.resizable_vars.disabled&&(r.resizable.toggleTextSelection(i,a,!1),r.resizable.stopResize(i,a),r.resizable.setHandlePosition(i,a))}),e(t).bind("resize"+l+" resizeEnd"+l,function(){r.resizable.setHandlePosition(i,a)}),i.$table.bind("columnUpdate pagerComplete resizableUpdate ".split(" ").join(l+" "),function(){r.resizable.setHandlePosition(i,a)}).bind("resizableReset"+l,function(){r.resizableReset(i.table)}).find("thead:first").add(e(i.namespace+"_extra_table").find("thead:first")).bind("contextmenu"+l,function(){var e=0===a.resizable_vars.storedSizes.length;return r.resizableReset(i.table),r.resizable.setHandlePosition(i,a),a.resizable_vars.storedSizes=[],e})},mouseMove:function(t,i,a){if(0!==i.resizable_vars.mouseXPosition&&i.resizable_vars.$target){var l,s=0,n=i.resizable_vars,o=n.$next,c=n.storedSizes[n.target],d=a.pageX-n.mouseXPosition;if(n.overflow){if(c+d>0){for(n.storedSizes[n.target]+=d,r.resizable.setWidth(n.$target,n.storedSizes[n.target],!0),l=0;l<t.columns;l++)s+=n.storedSizes[l];r.resizable.setWidth(t.$table.add(e(t.namespace+"_extra_table")),s)}o.length||(n.$wrap[0].scrollLeft=t.$table.width())}else n.fullWidth?(n.storedSizes[n.target]+=d,n.storedSizes[n.next]-=d,r.resizable.setWidths(t,i)):(n.storedSizes[n.target]+=d,r.resizable.setWidths(t,i));n.mouseXPosition=a.pageX,t.$table.triggerHandler("stickyHeadersUpdate")}},stopResize:function(e,t){var i=t.resizable_vars;r.resizable.updateStoredSizes(e,t),i.useStorage&&(r.storage(e.table,r.css.resizableStorage,i.storedSizes),r.storage(e.table,"tablesorter-table-resized-width",e.$table.width())),i.mouseXPosition=0,i.$target=i.$next=null,e.$table.triggerHandler("stickyHeadersUpdate"),e.$table.triggerHandler("resizableComplete")}},r.addWidget({id:"resizable",priority:40,options:{resizable:!0,resizable_addLastColumn:!1,resizable_includeFooter:!0,resizable_widths:[],resizable_throttle:!1,resizable_targetLast:!1},init:function(e,t,i,a){r.resizable.init(i,a)},format:function(e,t,i){r.resizable.setHandlePosition(t,i)},remove:function(t,i,a,l){if(a.$resizable_container){var s=i.namespace+"tsresize";i.$table.add(e(i.namespace+"_extra_table")).removeClass("hasResizable").children("thead").unbind("contextmenu"+s),a.$resizable_container.remove(),r.resizable.toggleTextSelection(i,a,!1),r.resizableReset(t,l),e(document).unbind("mousemove"+s+" mouseup"+s)}}}),r.resizableReset=function(t,i){e(t).each(function(){var e,a,l=this.config,s=l&&l.widgetOptions,n=s.resizable_vars;if(t&&l&&l.$headerIndexed.length){for(n.overflow&&n.tableWidth&&(r.resizable.setWidth(l.$table,n.tableWidth,!0),n.useStorage&&r.storage(t,"tablesorter-table-resized-width",n.tableWidth)),e=0;e<l.columns;e++)a=l.$headerIndexed[e],s.resizable_widths&&s.resizable_widths[e]?r.resizable.setWidth(a,s.resizable_widths[e],n.overflow):a.hasClass("resizable-false")||r.resizable.setWidth(a,"",n.overflow);l.$table.triggerHandler("stickyHeadersUpdate"),r.storage&&!i&&r.storage(this,r.css.resizableStorage,[])}})}}(e,window),function(e){"use strict";var t=e.tablesorter||{};t.addWidget({id:"saveSort",priority:20,options:{saveSort:!0},init:function(e,t,r,i){t.format(e,r,i,!0)},format:function(r,i,a,l){var s,n,o=i.$table,c=!1!==a.saveSort,d={sortList:i.sortList};i.debug&&(n=new Date),o.hasClass("hasSaveSort")?c&&r.hasInitialized&&t.storage&&(t.storage(r,"tablesorter-savesort",d),i.debug&&console.log("saveSort widget: Saving last sort: "+i.sortList+t.benchmark(n))):(o.addClass("hasSaveSort"),d="",t.storage&&(d=(s=t.storage(r,"tablesorter-savesort"))&&s.hasOwnProperty("sortList")&&e.isArray(s.sortList)?s.sortList:"",i.debug&&console.log('saveSort: Last sort loaded: "'+d+'"'+t.benchmark(n)),o.bind("saveSortReset",function(e){e.stopPropagation(),t.storage(r,"tablesorter-savesort","")})),l&&d&&d.length>0?i.sortList=d:r.hasInitialized&&d&&d.length>0&&t.sortOn(i,d))},remove:function(e,r){r.$table.removeClass("hasSaveSort"),t.storage&&t.storage(e,"tablesorter-savesort","")}})}(e),e.tablesorter});
|
js/wpadmin.js
CHANGED
@@ -35,7 +35,7 @@ wp_optimize_send_command_admin_ajax = function (action, data, callback, json_par
|
|
35 |
if ('undefined' !== typeof callback) callback(response);
|
36 |
}
|
37 |
});
|
38 |
-
|
39 |
};
|
40 |
|
41 |
jQuery(document).ready(function ($) {
|
@@ -48,11 +48,11 @@ jQuery(document).ready(function ($) {
|
|
48 |
* @param {string} send_command Function for sending remote communications via
|
49 |
*/
|
50 |
var WP_Optimize = function (send_command) {
|
51 |
-
|
52 |
var $ = jQuery;
|
53 |
var debug_level = 0;
|
54 |
var queue = new Updraft_Queue();
|
55 |
-
|
56 |
/**
|
57 |
* Either display normally, or grey-out, the scheduling options, depending on whether any schedule has been selected.
|
58 |
*
|
@@ -139,9 +139,9 @@ var WP_Optimize = function (send_command) {
|
|
139 |
delay = ('undefined' === typeof delay) ? 15 : delay;
|
140 |
$(html_contents).hide().prependTo(where).slideDown('slow').delay(delay * 1000).slideUp('slow', function () {
|
141 |
$(this).remove();
|
142 |
-
})
|
143 |
}
|
144 |
-
|
145 |
/**
|
146 |
* Send a request to disable or enable comments or trackbacks
|
147 |
*
|
@@ -151,18 +151,18 @@ var WP_Optimize = function (send_command) {
|
|
151 |
* @return {string}
|
152 |
*/
|
153 |
function enable_or_disable_feature(type, enable) {
|
154 |
-
|
155 |
var data = {
|
156 |
type: type,
|
157 |
enable: enable ? 1 : 0
|
158 |
};
|
159 |
|
160 |
$('#' + type + '_spinner').show();
|
161 |
-
|
162 |
send_command('enable_or_disable_feature', data, function (resp) {
|
163 |
-
|
164 |
$('#' + type + '_spinner').hide();
|
165 |
-
|
166 |
if (resp && resp.hasOwnProperty('output')) {
|
167 |
for (var i = 0, len = resp.output.length; i < len; i++) {
|
168 |
var new_html = '<div class="updated">' + resp.output[i] + '</div>';
|
@@ -171,36 +171,36 @@ var WP_Optimize = function (send_command) {
|
|
171 |
}
|
172 |
});
|
173 |
}
|
174 |
-
|
175 |
$('#wp-optimize-disable-enable-trackbacks-enable').click(function () {
|
176 |
enable_or_disable_feature('trackbacks', true);
|
177 |
});
|
178 |
-
|
179 |
$('#wp-optimize-disable-enable-trackbacks-disable').click(function () {
|
180 |
enable_or_disable_feature('trackbacks', false);
|
181 |
});
|
182 |
-
|
183 |
$('#wp-optimize-disable-enable-comments-enable').click(function () {
|
184 |
enable_or_disable_feature('comments', true);
|
185 |
});
|
186 |
-
|
187 |
$('#wp-optimize-disable-enable-comments-disable').click(function () {
|
188 |
enable_or_disable_feature('comments', false);
|
189 |
});
|
190 |
-
|
191 |
$('#wp-optimize-nav-tab-wrapper .nav-tab').click(function (e) {
|
192 |
-
|
193 |
var clicked_tab_id = $(this).attr('id');
|
194 |
if (!clicked_tab_id) { return; }
|
195 |
if ('wp-optimize-nav-tab-' != clicked_tab_id.substring(0, 20)) { return; }
|
196 |
-
|
197 |
var clicked_tab_id = clicked_tab_id.substring(20);
|
198 |
-
|
199 |
e.preventDefault();
|
200 |
-
|
201 |
$('#wp-optimize-nav-tab-wrapper .nav-tab:not(#wp-optimize-nav-tab-' + clicked_tab_id + ')').removeClass('nav-tab-active');
|
202 |
$(this).addClass('nav-tab-active');
|
203 |
-
|
204 |
$('#wp-optimize-wrap .wp-optimize-nav-tab-contents:not(#wp-optimize-nav-tab-contents-' + clicked_tab_id + ')').hide();
|
205 |
$('#wp-optimize-nav-tab-contents-' + clicked_tab_id).show();
|
206 |
|
@@ -213,7 +213,7 @@ var WP_Optimize = function (send_command) {
|
|
213 |
$("#wpoptimize_table_list").trigger('applyWidgets');
|
214 |
}
|
215 |
});
|
216 |
-
|
217 |
/**
|
218 |
* Gathers the settings from the settings tab and return in selected format.
|
219 |
*
|
@@ -269,11 +269,11 @@ var WP_Optimize = function (send_command) {
|
|
269 |
}
|
270 |
return;
|
271 |
}
|
272 |
-
|
273 |
if (debug_level > 0) {
|
274 |
console.log("WP-Optimize: process_queue(): got queue lock");
|
275 |
}
|
276 |
-
|
277 |
var id = queue.peek();
|
278 |
|
279 |
// Check to see if an object has been returned.
|
@@ -283,16 +283,16 @@ var WP_Optimize = function (send_command) {
|
|
283 |
} else {
|
284 |
data = {};
|
285 |
}
|
286 |
-
|
287 |
if ('undefined' === typeof id) {
|
288 |
if (debug_level > 0) console.log("WP-Optimize: process_queue(): queue is apparently empty - exiting");
|
289 |
queue.unlock();
|
290 |
process_done();
|
291 |
return;
|
292 |
}
|
293 |
-
|
294 |
if (debug_level > 0) console.log("WP-Optimize: process_queue(): processing item: " + id);
|
295 |
-
|
296 |
queue.dequeue();
|
297 |
|
298 |
$(document).trigger(['do_optimization_', id, '_start'].join(''));
|
@@ -357,7 +357,7 @@ var WP_Optimize = function (send_command) {
|
|
357 |
}, 10);
|
358 |
});
|
359 |
}
|
360 |
-
|
361 |
/**
|
362 |
* Runs a specified optimization, displaying the progress and results in the optimization's row
|
363 |
*
|
@@ -701,9 +701,9 @@ var WP_Optimize = function (send_command) {
|
|
701 |
|
702 |
send_command('save_manual_run_optimization_options', optimization_options);
|
703 |
}
|
704 |
-
|
705 |
$('#wp_optimize_table_list_refresh').click(function () {
|
706 |
-
|
707 |
$('#wpoptimize_table_list tbody').css('opacity', '0.5');
|
708 |
send_command('get_table_list', false, function (response) {
|
709 |
|
@@ -724,9 +724,12 @@ var WP_Optimize = function (send_command) {
|
|
724 |
});
|
725 |
|
726 |
$('#settings_form').on('click', '#wp-optimize-settings-save', function (e) {
|
727 |
-
|
728 |
-
e.preventDefault();
|
729 |
|
|
|
|
|
|
|
|
|
|
|
730 |
$('#save_spinner').show();
|
731 |
|
732 |
var form_data = gather_settings();
|
@@ -797,6 +800,11 @@ var WP_Optimize = function (send_command) {
|
|
797 |
optimization_table_type: table_type
|
798 |
};
|
799 |
|
|
|
|
|
|
|
|
|
|
|
800 |
spinner.removeClass('visibility-hidden');
|
801 |
|
802 |
send_command('do_optimization', { optimization_id: 'optimizetables', data: data }, function () {
|
@@ -1063,6 +1071,104 @@ var WP_Optimize = function (send_command) {
|
|
1063 |
take_a_backup_with_updraftplus: take_a_backup_with_updraftplus,
|
1064 |
save_auto_backup_options: save_auto_backup_options
|
1065 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1066 |
};
|
1067 |
|
1068 |
jQuery(document).ready(function ($) {
|
@@ -1091,5 +1197,212 @@ jQuery(document).ready(function ($) {
|
|
1091 |
show_hide_additional_logger_options($checkbox);
|
1092 |
});
|
1093 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1094 |
});
|
1095 |
|
35 |
if ('undefined' !== typeof callback) callback(response);
|
36 |
}
|
37 |
});
|
38 |
+
|
39 |
};
|
40 |
|
41 |
jQuery(document).ready(function ($) {
|
48 |
* @param {string} send_command Function for sending remote communications via
|
49 |
*/
|
50 |
var WP_Optimize = function (send_command) {
|
51 |
+
|
52 |
var $ = jQuery;
|
53 |
var debug_level = 0;
|
54 |
var queue = new Updraft_Queue();
|
55 |
+
|
56 |
/**
|
57 |
* Either display normally, or grey-out, the scheduling options, depending on whether any schedule has been selected.
|
58 |
*
|
139 |
delay = ('undefined' === typeof delay) ? 15 : delay;
|
140 |
$(html_contents).hide().prependTo(where).slideDown('slow').delay(delay * 1000).slideUp('slow', function () {
|
141 |
$(this).remove();
|
142 |
+
});
|
143 |
}
|
144 |
+
|
145 |
/**
|
146 |
* Send a request to disable or enable comments or trackbacks
|
147 |
*
|
151 |
* @return {string}
|
152 |
*/
|
153 |
function enable_or_disable_feature(type, enable) {
|
154 |
+
|
155 |
var data = {
|
156 |
type: type,
|
157 |
enable: enable ? 1 : 0
|
158 |
};
|
159 |
|
160 |
$('#' + type + '_spinner').show();
|
161 |
+
|
162 |
send_command('enable_or_disable_feature', data, function (resp) {
|
163 |
+
|
164 |
$('#' + type + '_spinner').hide();
|
165 |
+
|
166 |
if (resp && resp.hasOwnProperty('output')) {
|
167 |
for (var i = 0, len = resp.output.length; i < len; i++) {
|
168 |
var new_html = '<div class="updated">' + resp.output[i] + '</div>';
|
171 |
}
|
172 |
});
|
173 |
}
|
174 |
+
|
175 |
$('#wp-optimize-disable-enable-trackbacks-enable').click(function () {
|
176 |
enable_or_disable_feature('trackbacks', true);
|
177 |
});
|
178 |
+
|
179 |
$('#wp-optimize-disable-enable-trackbacks-disable').click(function () {
|
180 |
enable_or_disable_feature('trackbacks', false);
|
181 |
});
|
182 |
+
|
183 |
$('#wp-optimize-disable-enable-comments-enable').click(function () {
|
184 |
enable_or_disable_feature('comments', true);
|
185 |
});
|
186 |
+
|
187 |
$('#wp-optimize-disable-enable-comments-disable').click(function () {
|
188 |
enable_or_disable_feature('comments', false);
|
189 |
});
|
190 |
+
|
191 |
$('#wp-optimize-nav-tab-wrapper .nav-tab').click(function (e) {
|
192 |
+
|
193 |
var clicked_tab_id = $(this).attr('id');
|
194 |
if (!clicked_tab_id) { return; }
|
195 |
if ('wp-optimize-nav-tab-' != clicked_tab_id.substring(0, 20)) { return; }
|
196 |
+
|
197 |
var clicked_tab_id = clicked_tab_id.substring(20);
|
198 |
+
|
199 |
e.preventDefault();
|
200 |
+
|
201 |
$('#wp-optimize-nav-tab-wrapper .nav-tab:not(#wp-optimize-nav-tab-' + clicked_tab_id + ')').removeClass('nav-tab-active');
|
202 |
$(this).addClass('nav-tab-active');
|
203 |
+
|
204 |
$('#wp-optimize-wrap .wp-optimize-nav-tab-contents:not(#wp-optimize-nav-tab-contents-' + clicked_tab_id + ')').hide();
|
205 |
$('#wp-optimize-nav-tab-contents-' + clicked_tab_id).show();
|
206 |
|
213 |
$("#wpoptimize_table_list").trigger('applyWidgets');
|
214 |
}
|
215 |
});
|
216 |
+
|
217 |
/**
|
218 |
* Gathers the settings from the settings tab and return in selected format.
|
219 |
*
|
269 |
}
|
270 |
return;
|
271 |
}
|
272 |
+
|
273 |
if (debug_level > 0) {
|
274 |
console.log("WP-Optimize: process_queue(): got queue lock");
|
275 |
}
|
276 |
+
|
277 |
var id = queue.peek();
|
278 |
|
279 |
// Check to see if an object has been returned.
|
283 |
} else {
|
284 |
data = {};
|
285 |
}
|
286 |
+
|
287 |
if ('undefined' === typeof id) {
|
288 |
if (debug_level > 0) console.log("WP-Optimize: process_queue(): queue is apparently empty - exiting");
|
289 |
queue.unlock();
|
290 |
process_done();
|
291 |
return;
|
292 |
}
|
293 |
+
|
294 |
if (debug_level > 0) console.log("WP-Optimize: process_queue(): processing item: " + id);
|
295 |
+
|
296 |
queue.dequeue();
|
297 |
|
298 |
$(document).trigger(['do_optimization_', id, '_start'].join(''));
|
357 |
}, 10);
|
358 |
});
|
359 |
}
|
360 |
+
|
361 |
/**
|
362 |
* Runs a specified optimization, displaying the progress and results in the optimization's row
|
363 |
*
|
701 |
|
702 |
send_command('save_manual_run_optimization_options', optimization_options);
|
703 |
}
|
704 |
+
|
705 |
$('#wp_optimize_table_list_refresh').click(function () {
|
706 |
+
|
707 |
$('#wpoptimize_table_list tbody').css('opacity', '0.5');
|
708 |
send_command('get_table_list', false, function (response) {
|
709 |
|
724 |
});
|
725 |
|
726 |
$('#settings_form').on('click', '#wp-optimize-settings-save', function (e) {
|
|
|
|
|
727 |
|
728 |
+
// validate logger settings.
|
729 |
+
if (!validate_logger_settings()) return false;
|
730 |
+
|
731 |
+
e.preventDefault();
|
732 |
+
|
733 |
$('#save_spinner').show();
|
734 |
|
735 |
var form_data = gather_settings();
|
800 |
optimization_table_type: table_type
|
801 |
};
|
802 |
|
803 |
+
// if checked force button then send force value.
|
804 |
+
if (single_table_optimization_force.is(':checked')) {
|
805 |
+
data['optimization_force'] = true;
|
806 |
+
}
|
807 |
+
|
808 |
spinner.removeClass('visibility-hidden');
|
809 |
|
810 |
send_command('do_optimization', { optimization_id: 'optimizetables', data: data }, function () {
|
1071 |
take_a_backup_with_updraftplus: take_a_backup_with_updraftplus,
|
1072 |
save_auto_backup_options: save_auto_backup_options
|
1073 |
}
|
1074 |
+
/**
|
1075 |
+
* Validate loggers settings.
|
1076 |
+
*
|
1077 |
+
* @return {boolean}
|
1078 |
+
*/
|
1079 |
+
function validate_logger_settings() {
|
1080 |
+
var valid = true;
|
1081 |
+
|
1082 |
+
$('.wpo_logger_addition_option, .wpo_logger_type').each(function() {
|
1083 |
+
if (!validate_field($(this), true)) {
|
1084 |
+
valid = false;
|
1085 |
+
$(this).addClass('wpo_error_field');
|
1086 |
+
} else {
|
1087 |
+
$(this).removeClass('wpo_error_field');
|
1088 |
+
}
|
1089 |
+
});
|
1090 |
+
|
1091 |
+
if (!valid) {
|
1092 |
+
$('#wp-optimize-settings-save-results')
|
1093 |
+
.show()
|
1094 |
+
.addClass('wpo_alert_notice')
|
1095 |
+
.text(wpoptimize.fill_all_settings_fields)
|
1096 |
+
.delay(5000)
|
1097 |
+
.fadeOut(3000, function() {
|
1098 |
+
$(this).removeClass('wpo_alert_notice');
|
1099 |
+
});
|
1100 |
+
} else {
|
1101 |
+
$('#wp-optimize-logger-settings .save_settings_reminder').slideUp();
|
1102 |
+
}
|
1103 |
+
|
1104 |
+
return valid;
|
1105 |
+
}
|
1106 |
+
|
1107 |
+
/**
|
1108 |
+
* Validate import field with data-validate attribute.
|
1109 |
+
*
|
1110 |
+
* @param {object} field jquery element
|
1111 |
+
* @param {boolean} required
|
1112 |
+
*
|
1113 |
+
* @return {boolean}
|
1114 |
+
*/
|
1115 |
+
function validate_field(field, required) {
|
1116 |
+
var value = field.val(),
|
1117 |
+
validate = field.data('validate');
|
1118 |
+
|
1119 |
+
if (!validate && required) {
|
1120 |
+
return ('' != $.trim(value));
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
if (validate && !required && '' == $.trim(value)) {
|
1124 |
+
return true;
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
var valid = true;
|
1128 |
+
|
1129 |
+
switch (validate) {
|
1130 |
+
case 'email':
|
1131 |
+
var regex = /\S+@\S+\.\S+/,
|
1132 |
+
emails = value.split(","),
|
1133 |
+
email = '';
|
1134 |
+
|
1135 |
+
for (var i = 0; i < emails.length; i++) {
|
1136 |
+
email = $.trim(emails[i]);
|
1137 |
+
|
1138 |
+
if ('' == email || !regex.test(email)) {
|
1139 |
+
valid = false;
|
1140 |
+
}
|
1141 |
+
}
|
1142 |
+
break;
|
1143 |
+
|
1144 |
+
case 'url':
|
1145 |
+
// https://gist.github.com/dperini/729294
|
1146 |
+
// @codingStandardsIgnoreLine
|
1147 |
+
var regex = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/i;
|
1148 |
+
|
1149 |
+
valid = regex.test(value);
|
1150 |
+
break;
|
1151 |
+
}
|
1152 |
+
|
1153 |
+
return valid;
|
1154 |
+
}
|
1155 |
+
|
1156 |
+
/**
|
1157 |
+
* Send check_overdue_crons command and output warning if need.
|
1158 |
+
*/
|
1159 |
+
setTimeout(function() {
|
1160 |
+
send_command('check_overdue_crons', null, function (resp) {
|
1161 |
+
if (resp && resp.hasOwnProperty('m')) {
|
1162 |
+
$('#wpo_settings_warnings').append(resp.m);
|
1163 |
+
}
|
1164 |
+
});
|
1165 |
+
}, 11000);
|
1166 |
+
|
1167 |
+
return {
|
1168 |
+
send_command: send_command,
|
1169 |
+
take_a_backup_with_updraftplus: take_a_backup_with_updraftplus,
|
1170 |
+
save_auto_backup_options: save_auto_backup_options
|
1171 |
+
}
|
1172 |
};
|
1173 |
|
1174 |
jQuery(document).ready(function ($) {
|
1197 |
show_hide_additional_logger_options($checkbox);
|
1198 |
});
|
1199 |
});
|
1200 |
+
|
1201 |
+
var add_logging_btn = $('#wpo_add_logger_link');
|
1202 |
+
|
1203 |
+
/**
|
1204 |
+
* Handle add logging destination click.
|
1205 |
+
*/
|
1206 |
+
add_logging_btn.on('click', function() {
|
1207 |
+
$('#wp-optimize-logger-settings .save_settings_reminder').after(get_add_logging_form_html());
|
1208 |
+
|
1209 |
+
filter_select_destinations($('.wpo_logger_type').first());
|
1210 |
+
});
|
1211 |
+
|
1212 |
+
/**
|
1213 |
+
* Handle logging destination select change.
|
1214 |
+
*/
|
1215 |
+
$('#wp-optimize-nav-tab-contents-settings').on('change', '.wpo_logger_type', function() {
|
1216 |
+
var select = $(this),
|
1217 |
+
logger_id = select.val(),
|
1218 |
+
options_container = select.parent().find('.wpo_additional_logger_options');
|
1219 |
+
|
1220 |
+
options_container.html(get_logging_additional_options_html(logger_id));
|
1221 |
+
|
1222 |
+
if (select.val()) {
|
1223 |
+
show_logging_save_settings_reminder();
|
1224 |
+
}
|
1225 |
+
});
|
1226 |
+
|
1227 |
+
/**
|
1228 |
+
* Show save settings reminder for logging settings.
|
1229 |
+
*
|
1230 |
+
* @return {void}
|
1231 |
+
*/
|
1232 |
+
function show_logging_save_settings_reminder() {
|
1233 |
+
var reminder = $('#wp-optimize-logger-settings .save_settings_reminder');
|
1234 |
+
|
1235 |
+
if (!reminder.is(':visible')) {
|
1236 |
+
reminder.slideDown('normal');
|
1237 |
+
}
|
1238 |
+
}
|
1239 |
+
|
1240 |
+
/**
|
1241 |
+
* Handle edit logger click.
|
1242 |
+
*/
|
1243 |
+
$('.wpo_logging_actions_row .dashicons-edit').on('click', function() {
|
1244 |
+
|
1245 |
+
var link = $(this),
|
1246 |
+
container = link.closest('.wpo_logging_row');
|
1247 |
+
|
1248 |
+
$('.wpo_additional_logger_options', container).removeClass('wpo_hidden');
|
1249 |
+
$('.wpo_logging_options_row', container).text('');
|
1250 |
+
$('.wpo_logging_status_row', container).text('');
|
1251 |
+
link.hide();
|
1252 |
+
|
1253 |
+
return false;
|
1254 |
+
});
|
1255 |
+
|
1256 |
+
$('#wp-optimize-logger-settings').on('change', '.wpo_logger_addition_option', function() {
|
1257 |
+
show_logging_save_settings_reminder();
|
1258 |
+
});
|
1259 |
+
|
1260 |
+
/**
|
1261 |
+
* Handle change of active/inactive status and update hidden field value.
|
1262 |
+
*/
|
1263 |
+
$('.wpo_logger_active_checkbox').on('change', function() {
|
1264 |
+
var checkbox = $(this),
|
1265 |
+
hidden_input = checkbox.closest('label').find('input[type="hidden"]');
|
1266 |
+
|
1267 |
+
hidden_input.val(checkbox.is(':checked') ? '1' : '0');
|
1268 |
+
});
|
1269 |
+
|
1270 |
+
/**
|
1271 |
+
* Handle delete logger destination click.
|
1272 |
+
*/
|
1273 |
+
$('#wp-optimize-nav-tab-contents-settings').on('click', '.wpo_delete_logger', function() {
|
1274 |
+
|
1275 |
+
if (!confirm(wpoptimize.are_you_sure_you_want_to_remove_logging_destination)) {
|
1276 |
+
return false;
|
1277 |
+
}
|
1278 |
+
|
1279 |
+
var btn = $(this);
|
1280 |
+
btn.closest('.wpo_logging_row, .wpo_add_logger_form').remove();
|
1281 |
+
filter_all_select_destinations();
|
1282 |
+
|
1283 |
+
if (0 == $('#wp-optimize-logging-options .wpo_logging_row').length) {
|
1284 |
+
$('#wp-optimize-logging-options').hide();
|
1285 |
+
}
|
1286 |
+
|
1287 |
+
show_logging_save_settings_reminder();
|
1288 |
+
|
1289 |
+
return false;
|
1290 |
+
});
|
1291 |
+
|
1292 |
+
/**
|
1293 |
+
* Filter all selects with logger destinations, called after some destination deleted.
|
1294 |
+
*
|
1295 |
+
* @return {void}
|
1296 |
+
*/
|
1297 |
+
function filter_all_select_destinations() {
|
1298 |
+
$('.wpo_logger_type').each(function() {
|
1299 |
+
filter_select_destinations($(this));
|
1300 |
+
});
|
1301 |
+
}
|
1302 |
+
|
1303 |
+
/**
|
1304 |
+
* Filter certain select options depending on currently selected values.
|
1305 |
+
*
|
1306 |
+
* @param {object} select
|
1307 |
+
*
|
1308 |
+
* @return {void}
|
1309 |
+
*/
|
1310 |
+
function filter_select_destinations(select) {
|
1311 |
+
var i,
|
1312 |
+
destination,
|
1313 |
+
current_destinations = get_current_destinations();
|
1314 |
+
|
1315 |
+
for (i in current_destinations) {
|
1316 |
+
destination = current_destinations[i];
|
1317 |
+
if (wpoptimize.loggers_classes_info[destination].allow_multiple) {
|
1318 |
+
$('option[value="'+destination+'"]', select).show();
|
1319 |
+
} else {
|
1320 |
+
$('option[value="'+destination+'"]', select).hide();
|
1321 |
+
}
|
1322 |
+
}
|
1323 |
+
}
|
1324 |
+
|
1325 |
+
/**
|
1326 |
+
* Returns currently selected loggers destinations.
|
1327 |
+
*
|
1328 |
+
* @return {Array}
|
1329 |
+
*/
|
1330 |
+
function get_current_destinations() {
|
1331 |
+
var destinations = [];
|
1332 |
+
|
1333 |
+
$('.wpo_logging_row, .wpo_logger_type').each(function() {
|
1334 |
+
var destination = $(this).is('select') ? $(this).val() : $(this).data('id');
|
1335 |
+
|
1336 |
+
if (destination) destinations.push(destination);
|
1337 |
+
});
|
1338 |
+
|
1339 |
+
return destinations;
|
1340 |
+
}
|
1341 |
+
|
1342 |
+
/**
|
1343 |
+
* Return add logging form.
|
1344 |
+
*
|
1345 |
+
* @return {string}
|
1346 |
+
*/
|
1347 |
+
function get_add_logging_form_html() {
|
1348 |
+
var i,
|
1349 |
+
select_options = [
|
1350 |
+
'<option value="">Select destination</option>'
|
1351 |
+
];
|
1352 |
+
|
1353 |
+
for (i in wpoptimize.loggers_classes_info) {
|
1354 |
+
if (!wpoptimize.loggers_classes_info.hasOwnProperty(i)) continue;
|
1355 |
+
select_options.push(['<option value="',i,'">',wpoptimize.loggers_classes_info[i].description,'</option>'].join(''));
|
1356 |
+
}
|
1357 |
+
|
1358 |
+
return [
|
1359 |
+
'<div class="wpo_add_logger_form">',
|
1360 |
+
'<select class="wpo_logger_type" name="wpo-logger-type[]">',
|
1361 |
+
select_options.join(''),
|
1362 |
+
'<select>',
|
1363 |
+
'<a href="#" class="wpo_delete_logger dashicons dashicons-no-alt"></a>',
|
1364 |
+
'<div class="wpo_additional_logger_options"></div>',
|
1365 |
+
'</div>'
|
1366 |
+
].join('');
|
1367 |
+
}
|
1368 |
+
|
1369 |
+
/**
|
1370 |
+
* Returns logging options html.
|
1371 |
+
*
|
1372 |
+
* @param {string} logger_id
|
1373 |
+
*
|
1374 |
+
* @return {string}
|
1375 |
+
*/
|
1376 |
+
function get_logging_additional_options_html(logger_id) {
|
1377 |
+
if (!wpoptimize.loggers_classes_info[logger_id].options) return '';
|
1378 |
+
|
1379 |
+
var i,
|
1380 |
+
options = wpoptimize.loggers_classes_info[logger_id].options,
|
1381 |
+
options_list = [],
|
1382 |
+
placeholder = '',
|
1383 |
+
validate = '';
|
1384 |
+
|
1385 |
+
for (i in options) {
|
1386 |
+
if (!options.hasOwnProperty(i)) continue;
|
1387 |
+
|
1388 |
+
if ($.isArray(options[i])) {
|
1389 |
+
placeholder = $.trim(options[i][0]);
|
1390 |
+
validate = $.trim(options[i][1]);
|
1391 |
+
} else {
|
1392 |
+
placeholder = $.trim(options[i]);
|
1393 |
+
validate = '';
|
1394 |
+
}
|
1395 |
+
|
1396 |
+
options_list.push([
|
1397 |
+
'<input class="wpo_logger_addition_option" type="text" name="wpo-logger-options[',i,'][]" value="" ',
|
1398 |
+
'placeholder="',placeholder,'" ',('' !== validate ? 'data-validate="'+validate+'"' : ''), '/>'
|
1399 |
+
].join(''));
|
1400 |
+
}
|
1401 |
+
|
1402 |
+
// Add hidden field for active/inactive value.
|
1403 |
+
options_list.push('<input type="hidden" name="wpo-logger-options[active][]" value="1" />');
|
1404 |
+
|
1405 |
+
return options_list.join('');
|
1406 |
+
}
|
1407 |
});
|
1408 |
|
js/wpadmin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
wp_optimize_send_command_admin_ajax=function(t,i,e,o){o="undefined"==typeof o||o;var n={action:"wp_optimize_ajax",subaction:t,nonce:wp_optimize_ajax_nonce,data:i};jQuery.post(ajaxurl,n,function(t){if(o){try{var i=JSON.parse(t)}catch(n){return console.log(n),console.log(t),void alert(wpoptimize.error_unexpected_response)}"undefined"!=typeof e&&e(i)}else"undefined"!=typeof e&&e(t)})},jQuery(document).ready(function(t){WP_Optimize=WP_Optimize(wp_optimize_send_command_admin_ajax)});var WP_Optimize=function(t){function i(){if(v("#enable-schedule").length){var t=v("#enable-schedule").is(":checked");t?v("#wp-optimize-auto-options").css("opacity","1"):v("#wp-optimize-auto-options").css("opacity","0.5")}}function e(t,i,e){i="undefined"==typeof i?"#wp-optimize-wrap":i,e="undefined"==typeof e?15:e,v(t).hide().prependTo(i).slideDown("slow").delay(1e3*e).slideUp("slow",function(){v(this).remove()})}function o(i,o){var n={type:i,enable:o?1:0};v("#"+i+"_spinner").show(),t("enable_or_disable_feature",n,function(t){if(v("#"+i+"_spinner").hide(),t&&t.hasOwnProperty("output"))for(var o=0,n=t.output.length;o<n;o++){var a='<div class="updated">'+t.output[o]+"</div>";e(a,"#actions-results-area")}})}function n(t){var i="",t="undefined"==typeof t?"string":t;return"object"==t?i=v("#wp-optimize-nav-tab-contents-settings form input[name!='action'], #wp-optimize-nav-tab-contents-settings form textarea, #wp-optimize-nav-tab-contents-settings form select, #wp-optimize-nav-tab-contents-optimize input[type='checkbox'], .wp-optimize-nav-tab-contents input[name^='enable-auto-backup-']").serializeJSON({useIntKeysAsArrayIndex:!0}):(i=v("#wp-optimize-nav-tab-contents-settings form input[name!='action'], #wp-optimize-nav-tab-contents-settings form textarea, #wp-optimize-nav-tab-contents-settings form select, #wp-optimize-nav-tab-contents-optimize input[type='checkbox'], .wp-optimize-nav-tab-contents input[name^='enable-auto-backup-']").serialize(),v.each(v('#wp-optimize-nav-tab-contents-settings form input[type=checkbox], .wp-optimize-nav-tab-contents input[name^="enable-auto-backup-"]').filter(function(t){return 0==v(this).prop("checked")}),function(t,e){var o="0";i+="&"+v(e).attr("name")+"="+o})),i}function a(){t("optimizations_done",{},function(){})}function s(){if(!k.get_lock())return void(y>0&&console.log("WP-Optimize: process_queue(): queue is currently locked - exiting"));y>0&&console.log("WP-Optimize: process_queue(): got queue lock");var i=k.peek();return"object"==typeof i?(data=i,i=i.optimization_id):data={},"undefined"==typeof i?(y>0&&console.log("WP-Optimize: process_queue(): queue is apparently empty - exiting"),k.unlock(),void a()):(y>0&&console.log("WP-Optimize: process_queue(): processing item: "+i),k.dequeue(),v(document).trigger(["do_optimization_",i,"_start"].join("")),void t("do_optimization",{optimization_id:i,data:data},function(t){if(v("#optimization_spinner_"+i).hide(),v("#optimization_checkbox_"+i).show(),v(".optimization_button_"+i).prop("disabled",!1),v(document).trigger(["do_optimization_",i,"_done"].join(""),t),t){for(var e="",o=0,n=t.errors.length;o<n;o++)e+='<span class="error">'+t.errors[o]+"</span><br>";for(var o=0,n=t.messages.length;o<n;o++)e+=t.errors[o]+"<br>";for(var o=0,n=t.result.output.length;o<n;o++)e+=t.result.output[o]+"<br>";if(v("#optimization_info_"+i).html(e),t.hasOwnProperty("status_box_contents")&&v("#wp_optimize_status_box").css("opacity","1").find(".inside").html(t.status_box_contents),t.hasOwnProperty("table_list")&&v("#wpoptimize_table_list tbody").html(v(t.table_list).find("tbody").html()),t.hasOwnProperty("total_size")&&v("#optimize_current_db_size").html(t.total_size),"optimizetables"==i&&data.optimization_table&&(k.is_empty()?(v("#optimization_spinner_"+i).hide(),v("#optimization_checkbox_"+i).show(),v(".optimization_button_"+i).prop("disabled",!1),v("#optimization_info_"+i).html(wpoptimize.optimization_complete)):(v("#optimization_checkbox_"+i).hide(),v("#optimization_spinner_"+i).show(),v(".optimization_button_"+i).prop("disabled",!0))),t.result.meta&&t.result.meta.hasOwnProperty("awaiting_mod")){var a=t.result.meta.awaiting_mod;a>0?v("#adminmenu .awaiting-mod .pending-count").remove(a):v("#adminmenu .awaiting-mod").remove()}}setTimeout(function(){k.unlock(),s()},10)}))}function p(t){var i=v("#wp-optimize-nav-tab-contents-optimize .wp-optimize-settings-"+t);if(i||console.log("do_optimization: row corresponding to this optimization ("+t+") not found"),1!=v(".optimization_button_"+t).prop("disabled")){if(v("#optimization_checkbox_"+t).hide(),v("#optimization_spinner_"+t).show(),v(".optimization_button_"+t).prop("disabled",!0),v("#optimization_info_"+t).html("..."),"optimizetables"==t){var e=v("#wpoptimize_table_list #the-list tr");v(e).each(function(i){var e=v(this).find("td");if(table_type=e.eq(5).text(),table=e.eq(1).text(),optimizable=e.eq(5).data("optimizable"),""!=table&&("1"==optimizable||S)){var o={optimization_id:t,optimization_table:e.eq(1).text(),optimization_table_type:table_type,optimization_force:S};k.enqueue(o)}})}else k.enqueue(t);s()}}function r(i){v("#wpo_settings_sites_list").length?t("save_site_settings",{"wpo-sites":c()},function(){i&&i()}):i&&i()}function c(){var t=[];return v('#wpo_settings_sites_list input[type="checkbox"]').each(function(){var i=v(this);i.is(":checked")&&t.push(i.attr("value"))}),t}function _(){var t=!1;v("#enable-auto-backup").is(":checked")&&(t=!0),u(),1==t?l(b):b()}function l(t){"function"==typeof updraft_backupnow_inpage_go?updraft_backupnow_inpage_go(function(){v("#updraft-backupnow-inpage-modal").dialog("close"),t&&t()},"","autobackup",0,1,0,wpoptimize.automatic_backup_before_optimizations):t&&t()}function u(){var i=n("object");i.auto_backup=v("#enable-auto-backup").is(":checked"),t("save_auto_backup_option",i)}function m(t,i,e,o){t.on("click",function(){return i.hasClass("wpo_always_visible")||i.toggleClass("wpo_hidden"),!1}),e.on("change",function(){e.is(":checked")?o.prop("checked",!0):o.prop("checked",!1),d(e,o)}),o.on("change",function(){d(e,o)}),d(e,o)}function d(t,i){var e=0,o=0;if(i.each(function(){v(this).is(":checked")&&o++,e++}),t.next().is("label")&&t.next().data("label")){var n=t.next(),a=n.data("label");e==o?n.text(a):n.text(a.replace("all",[o," of ",e].join("")))}e==o?t.prop("checked",!0):t.prop("checked",!1)}function b(){$optimizations=v("#optimizations_list .optimization_checkbox:checked"),$optimizations.sort(function(t,i){return t=v(t).closest(".wp-optimize-settings").data("optimization_run_sort_order"),i=v(i).closest(".wp-optimize-settings").data("optimization_run_sort_order"),t>i?1:t<i?-1:0});var i={};$optimizations.each(function(t){var e=v(this).closest(".wp-optimize-settings").data("optimization_id");return e?(i[e]={active:1},void p(e)):void console.log("Optimization ID corresponding to pressed button not found")}),t("save_manual_run_optimization_options",i)}function f(t){v(".run-single-table-optimization").each(function(){var i=v(this);i.data("disabled")&&(t?i.prop("disabled",!1):i.prop("disabled",!0))})}function z(t){var i,e,o;if(t)for(i in t)t.hasOwnProperty(i)&&(e=["#wp-optimize-settings-",t[i].dom_id].join(""),o=t[i].info?t[i].info.join("<br>"):"",v(e+" .wp-optimize-settings-optimization-info").html(o))}function w(){var i=["",c().join("_")].join("");B.hasOwnProperty(i)?z(B[i]):t("get_optimizations_info",{"wpo-sites":c()},function(t){t&&(B[i]=t,z(t))})}function h(i){var e=v("#wpo_import_spinner"),o=v("#wpo_import_success_message"),n=v("#wpo_import_error_message");e.show(),t("import_settings",{settings:i},function(t){e.hide(),t&&t.errors&&t.errors.length?(n.text(t.errors.join("<br>")),n.slideDown()):t&&t.messages&&t.messages.length&&(o.text(t.messages.join("<br>")),o.slideDown(),setTimeout(function(){window.location.reload()},500)),v("#wpo_import_settings_btn").prop("disabled",!1)})}function g(t,i){var e=document.body.appendChild(document.createElement("a")),o=new Date,n=o.getFullYear(),a=o.getMonth()<10?["0",o.getMonth()].join(""):o.getMonth(),s=o.getDay()<10?["0",o.getDay()].join(""):o.getDay();i=i?i:["wpo-settings-",n,"-",a,"-",s,".json"].join(""),e.setAttribute("download",i),e.setAttribute("style","display:none;"),e.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(JSON.stringify(t))),e.click()}var v=jQuery,y=0,k=new Updraft_Queue;i(),v("#enable-schedule").change(function(){i()});var x=v("#wpoptimize_table_list_filter"),j=v("#wpoptimize_table_list"),O=v("#wpoptimize_table_list tbody:last"),P=v("#wpoptimize_table_list_tables_not_found");v(function(){j.tablesorter({theme:"default",widgets:["zebra","rows","filter"],cssInfoBlock:"tablesorter-no-sort",headers:{7:{sorter:!1}},widgetOptions:{filter_external:x,filter_defaultFilter:{2:"~{query}"}}}),j.on("filterEnd",function(){var t=v.trim(x.val());""==t?O.show():O.hide(),0==v("#the-list tr:visible",j).length?P.show():P.hide()})}),v("#wp-optimize-disable-enable-trackbacks-enable").click(function(){o("trackbacks",!0)}),v("#wp-optimize-disable-enable-trackbacks-disable").click(function(){o("trackbacks",!1)}),v("#wp-optimize-disable-enable-comments-enable").click(function(){o("comments",!0)}),v("#wp-optimize-disable-enable-comments-disable").click(function(){o("comments",!1)}),v("#wp-optimize-nav-tab-wrapper .nav-tab").click(function(t){var i=v(this).attr("id");if(i&&"wp-optimize-nav-tab-"==i.substring(0,20)){var i=i.substring(20);t.preventDefault(),v("#wp-optimize-nav-tab-wrapper .nav-tab:not(#wp-optimize-nav-tab-"+i+")").removeClass("nav-tab-active"),v(this).addClass("nav-tab-active"),v("#wp-optimize-wrap .wp-optimize-nav-tab-contents:not(#wp-optimize-nav-tab-contents-"+i+")").hide(),v("#wp-optimize-nav-tab-contents-"+i).show(),"tables"==i&&v("#wpoptimize_table_list").trigger("applyWidgets")}}),v("#wp-optimize-nav-tab-contents-optimize").on("click","button.wp-optimize-settings-optimization-run-button",function(){var t=v(this).closest(".wp-optimize-settings").data("optimization_id");return t?void(1!=v(".optimization_button_"+t).prop("disabled")&&(v(".optimization_button_"+t).prop("disabled",!0),r(function(){v(".optimization_button_"+t).prop("disabled",!1),p(t)}))):void console.log("Optimization ID corresponding to pressed button not found")}),v("#wp-optimize-nav-tab-contents-optimize").on("click","#wp-optimize",function(t){var i=v(this);t.preventDefault(),i.prop("disabled",!0),r(function(){i.prop("disabled",!1),_()})});var q=v("#wpo_settings_sites_list"),D=q.find("ul").first(),C=v('input[type="checkbox"]',D),T=q.find("#wpo_all_sites"),W=v("#wpo_sitelist_show_moreoptions"),A=v("#wpo_sitelist_moreoptions"),I=v("#wpo_settings_sites_list_cron"),Q=I.find("ul").first(),U=v('input[type="checkbox"]',Q),F=I.find("#wpo_all_sites_cron"),$=v("#wpo_sitelist_show_moreoptions_cron"),J=v("#wpo_sitelist_moreoptions_cron");m(W,A,T,C);var M=0;v([T,C]).each(function(){v(this).on("change",function(){M++,setTimeout(function(){M--,0==M&&w()},1e3)})}),m($,J,F,U),v("#wp_optimize_table_list_refresh").click(function(){v("#wpoptimize_table_list tbody").css("opacity","0.5"),t("get_table_list",!1,function(t){if(t.hasOwnProperty("table_list")){var i=!0,e=function(t){v("#wpoptimize_table_list tbody").css("opacity","1")};v("#wpoptimize_table_list").trigger("updateAll",[i,e])}t.hasOwnProperty("total_size")&&v("#optimize_current_db_size").html(t.total_size),f(R.is(":checked"))})}),v("#settings_form").on("click","#wp-optimize-settings-save",function(i){i.preventDefault(),v("#save_spinner").show();var o=n();t("save_settings",o,function(t){if(v("#save_spinner").hide(),v("#save_done").show().delay(5e3).fadeOut(),t&&t.hasOwnProperty("save_results")&&t.save_results&&t.save_results.hasOwnProperty("errors")){for(var i=0,o=t.save_results.errors.length;i<o;i++){var n='<div class="error">'+t.errors[i]+"</div>";e(n,"#wp-optimize-settings-save-results")}console.log(t.save_results.messages)}t&&t.hasOwnProperty("status_box_contents")&&v("#wp_optimize_status_box .inside").html(t.status_box_contents),t&&t.hasOwnProperty("optimizations_table")&&v("#optimizations_list").replaceWith(t.optimizations_table),t.save_results.refresh&&location.reload()})}),v("#wp_optimize_status_box").on("click","#wp_optimize_status_box_refresh",function(i){i.preventDefault(),v("#wp_optimize_status_box").css("opacity","0.5"),t("get_status_box_contents",null,function(t){v("#wp_optimize_status_box").css("opacity","1").find(".inside").html(t)})});var N=v("#innodb_force_optimize"),S=N.is(":checked"),E=N.closest("tr"),R=v("#innodb_force_optimize_single");N.on("change",function(){v('button, input[type="checkbox"]',E).each(function(){S=N.is(":checked");var t=v(this);t.data("disabled")&&(S?t.prop("disabled",!1):t.prop("disabled",!0))})}),v("#wpoptimize_table_list").on("click",".run-single-table-optimization",function(){var i=v(this),e=i.next(),o=e.next(),n=i.data("table"),a=i.data("type"),s={optimization_id:"optimizetables",optimization_table:n,optimization_table_type:a};e.removeClass("visibility-hidden"),t("do_optimization",{optimization_id:"optimizetables",data:s},function(){i.prop("disabled",!1),e.addClass("visibility-hidden"),o.show().removeClass("visibility-hidden").delay(3e3).fadeOut("slow")})}),R.change(function(){f(R.is(":checked"))}),f(R.is(":checked"));var B={};setTimeout(function(){t("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&v("#wpo_settings_warnings").append(t.m)})},11e3),v("#wpo_import_settings_btn").on("click",function(t){var i=v("#wpo_import_settings_file"),e=i.val(),o=i[0].files[0],n=new FileReader;return v("#wpo_import_settings_btn").prop("disabled",!0),/\.json$/.test(e)?(n.onload=function(){h(this.result)},n.readAsText(o),!1):(t.preventDefault(),v("#wpo_import_settings_btn").prop("disabled",!1),v("#wpo_import_error_message").text(wpoptimize.please_select_settings_file).slideDown(),!1)}),v("#wpo_import_settings_file").on("change",function(){v("#wpo_import_error_message").slideUp()}),v("#wpo_export_settings_btn").on("click",function(t){return g(n("object")),!1});var K=function(i,e,o){t("get_optimization_info",{optimization_id:e,data:o},function(t){var o=t&&t.result&&t.result.meta?t.result.meta:{},n=t&&t.result&&t.result.output?t.result.output.join("<br>"):"...";v(document).trigger(["optimization_get_info_",e].join(""),n),i.html(n),o.finished?v(document).trigger(["optimization_get_info_",e,"_done"].join(""),t):setTimeout(function(){K(i,e,o)},1)})};return v(document).ready(function(){v(".wp-optimize-optimization-info-ajax").each(function(){var t=v(this),i=t.parent(),e=t.data("id");v(document).trigger(["optimization_get_info_",e,"_start"].join("")),K(i,e,{support_ajax_get_info:!0})})}),setTimeout(function(){t("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&v("#wpo_settings_warnings").append(t.m)})},11e3),{send_command:t,optimization_get_info:K,take_a_backup_with_updraftplus:l,save_auto_backup_options:u}};jQuery(document).ready(function(t){function i(i){var e=["#",i.data("additional")].join("");i.is(":checked")?t(e).show():t(e).hide()}t(".wp-optimize-logging-settings").each(function(){var e=t(this);i(e),e.on("change",function(){i(e)})})});
|
1 |
+
wp_optimize_send_command_admin_ajax=function(t,i,e,o){o="undefined"==typeof o||o;var n={action:"wp_optimize_ajax",subaction:t,nonce:wp_optimize_ajax_nonce,data:i};jQuery.post(ajaxurl,n,function(t){if(o){try{var i=JSON.parse(t)}catch(n){return console.log(n),console.log(t),void alert(wpoptimize.error_unexpected_response)}"undefined"!=typeof e&&e(i)}else"undefined"!=typeof e&&e(t)})},jQuery(document).ready(function(t){WP_Optimize=WP_Optimize(wp_optimize_send_command_admin_ajax)});var WP_Optimize=function(t){function i(){if(k("#enable-schedule").length){var t=k("#enable-schedule").is(":checked");t?k("#wp-optimize-auto-options").css("opacity","1"):k("#wp-optimize-auto-options").css("opacity","0.5")}}function e(t,i,e){i="undefined"==typeof i?"#wp-optimize-wrap":i,e="undefined"==typeof e?15:e,k(t).hide().prependTo(i).slideDown("slow").delay(1e3*e).slideUp("slow",function(){k(this).remove()})}function o(i,o){var n={type:i,enable:o?1:0};k("#"+i+"_spinner").show(),t("enable_or_disable_feature",n,function(t){if(k("#"+i+"_spinner").hide(),t&&t.hasOwnProperty("output"))for(var o=0,n=t.output.length;o<n;o++){var a='<div class="updated">'+t.output[o]+"</div>";e(a,"#actions-results-area")}})}function n(t){var i="",t="undefined"==typeof t?"string":t;return"object"==t?i=k("#wp-optimize-nav-tab-contents-settings form input[name!='action'], #wp-optimize-nav-tab-contents-settings form textarea, #wp-optimize-nav-tab-contents-settings form select, #wp-optimize-nav-tab-contents-optimize input[type='checkbox'], .wp-optimize-nav-tab-contents input[name^='enable-auto-backup-']").serializeJSON({useIntKeysAsArrayIndex:!0}):(i=k("#wp-optimize-nav-tab-contents-settings form input[name!='action'], #wp-optimize-nav-tab-contents-settings form textarea, #wp-optimize-nav-tab-contents-settings form select, #wp-optimize-nav-tab-contents-optimize input[type='checkbox'], .wp-optimize-nav-tab-contents input[name^='enable-auto-backup-']").serialize(),k.each(k('#wp-optimize-nav-tab-contents-settings form input[type=checkbox], .wp-optimize-nav-tab-contents input[name^="enable-auto-backup-"]').filter(function(t){return 0==k(this).prop("checked")}),function(t,e){var o="0";i+="&"+k(e).attr("name")+"="+o})),i}function a(){t("optimizations_done",{},function(){})}function s(){if(!j.get_lock())return void(x>0&&console.log("WP-Optimize: process_queue(): queue is currently locked - exiting"));x>0&&console.log("WP-Optimize: process_queue(): got queue lock");var i=j.peek();return"object"==typeof i?(data=i,i=i.optimization_id):data={},"undefined"==typeof i?(x>0&&console.log("WP-Optimize: process_queue(): queue is apparently empty - exiting"),j.unlock(),void a()):(x>0&&console.log("WP-Optimize: process_queue(): processing item: "+i),j.dequeue(),k(document).trigger(["do_optimization_",i,"_start"].join("")),void t("do_optimization",{optimization_id:i,data:data},function(t){if(k("#optimization_spinner_"+i).hide(),k("#optimization_checkbox_"+i).show(),k(".optimization_button_"+i).prop("disabled",!1),k(document).trigger(["do_optimization_",i,"_done"].join(""),t),t){for(var e="",o=0,n=t.errors.length;o<n;o++)e+='<span class="error">'+t.errors[o]+"</span><br>";for(var o=0,n=t.messages.length;o<n;o++)e+=t.errors[o]+"<br>";for(var o=0,n=t.result.output.length;o<n;o++)e+=t.result.output[o]+"<br>";if(k("#optimization_info_"+i).html(e),t.hasOwnProperty("status_box_contents")&&k("#wp_optimize_status_box").css("opacity","1").find(".inside").html(t.status_box_contents),t.hasOwnProperty("table_list")&&k("#wpoptimize_table_list tbody").html(k(t.table_list).find("tbody").html()),t.hasOwnProperty("total_size")&&k("#optimize_current_db_size").html(t.total_size),"optimizetables"==i&&data.optimization_table&&(j.is_empty()?(k("#optimization_spinner_"+i).hide(),k("#optimization_checkbox_"+i).show(),k(".optimization_button_"+i).prop("disabled",!1),k("#optimization_info_"+i).html(wpoptimize.optimization_complete)):(k("#optimization_checkbox_"+i).hide(),k("#optimization_spinner_"+i).show(),k(".optimization_button_"+i).prop("disabled",!0))),t.result.meta&&t.result.meta.hasOwnProperty("awaiting_mod")){var a=t.result.meta.awaiting_mod;a>0?k("#adminmenu .awaiting-mod .pending-count").remove(a):k("#adminmenu .awaiting-mod").remove()}}setTimeout(function(){j.unlock(),s()},10)}))}function p(t){var i=k("#wp-optimize-nav-tab-contents-optimize .wp-optimize-settings-"+t);if(i||console.log("do_optimization: row corresponding to this optimization ("+t+") not found"),1!=k(".optimization_button_"+t).prop("disabled")){if(k("#optimization_checkbox_"+t).hide(),k("#optimization_spinner_"+t).show(),k(".optimization_button_"+t).prop("disabled",!0),k("#optimization_info_"+t).html("..."),"optimizetables"==t){var e=k("#wpoptimize_table_list #the-list tr");k(e).each(function(i){var e=k(this).find("td");if(table_type=e.eq(5).text(),table=e.eq(1).text(),optimizable=e.eq(5).data("optimizable"),""!=table&&("1"==optimizable||R)){var o={optimization_id:t,optimization_table:e.eq(1).text(),optimization_table_type:table_type,optimization_force:R};j.enqueue(o)}})}else j.enqueue(t);s()}}function r(i){k("#wpo_settings_sites_list").length?t("save_site_settings",{"wpo-sites":_()},function(){i&&i()}):i&&i()}function _(){var t=[];return k('#wpo_settings_sites_list input[type="checkbox"]').each(function(){var i=k(this);i.is(":checked")&&t.push(i.attr("value"))}),t}function l(){var t=!1;k("#enable-auto-backup").is(":checked")&&(t=!0),u(),1==t?c(f):f()}function c(t){"function"==typeof updraft_backupnow_inpage_go?updraft_backupnow_inpage_go(function(){k("#updraft-backupnow-inpage-modal").dialog("close"),t&&t()},"","autobackup",0,1,0,wpoptimize.automatic_backup_before_optimizations):t&&t()}function u(){var i=n("object");i.auto_backup=k("#enable-auto-backup").is(":checked"),t("save_auto_backup_option",i)}function d(t,i,e,o){t.on("click",function(){return i.hasClass("wpo_always_visible")||i.toggleClass("wpo_hidden"),!1}),e.on("change",function(){e.is(":checked")?o.prop("checked",!0):o.prop("checked",!1),m(e,o)}),o.on("change",function(){m(e,o)}),m(e,o)}function m(t,i){var e=0,o=0;if(i.each(function(){k(this).is(":checked")&&o++,e++}),t.next().is("label")&&t.next().data("label")){var n=t.next(),a=n.data("label");e==o?n.text(a):n.text(a.replace("all",[o," of ",e].join("")))}e==o?t.prop("checked",!0):t.prop("checked",!1)}function f(){$optimizations=k("#optimizations_list .optimization_checkbox:checked"),$optimizations.sort(function(t,i){return t=k(t).closest(".wp-optimize-settings").data("optimization_run_sort_order"),i=k(i).closest(".wp-optimize-settings").data("optimization_run_sort_order"),t>i?1:t<i?-1:0});var i={};$optimizations.each(function(t){var e=k(this).closest(".wp-optimize-settings").data("optimization_id");return e?(i[e]={active:1},void p(e)):void console.log("Optimization ID corresponding to pressed button not found")}),t("save_manual_run_optimization_options",i)}function g(t){k(".run-single-table-optimization").each(function(){var i=k(this);i.data("disabled")&&(t?i.prop("disabled",!1):i.prop("disabled",!0))})}function w(t){var i,e,o;if(t)for(i in t)t.hasOwnProperty(i)&&(e=["#wp-optimize-settings-",t[i].dom_id].join(""),o=t[i].info?t[i].info.join("<br>"):"",k(e+" .wp-optimize-settings-optimization-info").html(o))}function b(){var i=["",_().join("_")].join("");Y.hasOwnProperty(i)?w(Y[i]):t("get_optimizations_info",{"wpo-sites":_()},function(t){t&&(Y[i]=t,w(t))})}function h(i){var e=k("#wpo_import_spinner"),o=k("#wpo_import_success_message"),n=k("#wpo_import_error_message");e.show(),t("import_settings",{settings:i},function(t){e.hide(),t&&t.errors&&t.errors.length?(n.text(t.errors.join("<br>")),n.slideDown()):t&&t.messages&&t.messages.length&&(o.text(t.messages.join("<br>")),o.slideDown(),setTimeout(function(){window.location.reload()},500)),k("#wpo_import_settings_btn").prop("disabled",!1)})}function z(t,i){var e=document.body.appendChild(document.createElement("a")),o=new Date,n=o.getFullYear(),a=o.getMonth()<10?["0",o.getMonth()].join(""):o.getMonth(),s=o.getDay()<10?["0",o.getDay()].join(""):o.getDay();i=i?i:["wpo-settings-",n,"-",a,"-",s,".json"].join(""),e.setAttribute("download",i),e.setAttribute("style","display:none;"),e.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(JSON.stringify(t))),e.click()}function v(){var t=!0;return k(".wpo_logger_addition_option, .wpo_logger_type").each(function(){y(k(this),!0)?k(this).removeClass("wpo_error_field"):(t=!1,k(this).addClass("wpo_error_field"))}),t?k("#wp-optimize-logger-settings .save_settings_reminder").slideUp():k("#wp-optimize-settings-save-results").show().addClass("wpo_alert_notice").text(wpoptimize.fill_all_settings_fields).delay(5e3).fadeOut(3e3,function(){k(this).removeClass("wpo_alert_notice")}),t}function y(t,i){var e=t.val(),o=t.data("validate");if(!o&&i)return""!=k.trim(e);if(o&&!i&&""==k.trim(e))return!0;var n=!0;switch(o){case"email":for(var a=/\S+@\S+\.\S+/,s=e.split(","),p="",r=0;r<s.length;r++)p=k.trim(s[r]),""!=p&&a.test(p)||(n=!1);break;case"url":var a=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i;n=a.test(e)}return n}var k=jQuery,x=0,j=new Updraft_Queue;i(),k("#enable-schedule").change(function(){i()});var O=k("#wpoptimize_table_list_filter"),P=k("#wpoptimize_table_list"),D=k("#wpoptimize_table_list tbody:last"),q=k("#wpoptimize_table_list_tables_not_found");k(function(){P.tablesorter({theme:"default",widgets:["zebra","rows","filter"],cssInfoBlock:"tablesorter-no-sort",headers:{7:{sorter:!1}},widgetOptions:{filter_external:O,filter_defaultFilter:{2:"~{query}"}}}),P.on("filterEnd",function(){var t=k.trim(O.val());""==t?D.show():D.hide(),0==k("#the-list tr:visible",P).length?q.show():q.hide()})}),k("#wp-optimize-disable-enable-trackbacks-enable").click(function(){o("trackbacks",!0)}),k("#wp-optimize-disable-enable-trackbacks-disable").click(function(){o("trackbacks",!1)}),k("#wp-optimize-disable-enable-comments-enable").click(function(){o("comments",!0)}),k("#wp-optimize-disable-enable-comments-disable").click(function(){o("comments",!1)}),k("#wp-optimize-nav-tab-wrapper .nav-tab").click(function(t){var i=k(this).attr("id");if(i&&"wp-optimize-nav-tab-"==i.substring(0,20)){var i=i.substring(20);t.preventDefault(),k("#wp-optimize-nav-tab-wrapper .nav-tab:not(#wp-optimize-nav-tab-"+i+")").removeClass("nav-tab-active"),k(this).addClass("nav-tab-active"),k("#wp-optimize-wrap .wp-optimize-nav-tab-contents:not(#wp-optimize-nav-tab-contents-"+i+")").hide(),k("#wp-optimize-nav-tab-contents-"+i).show(),"tables"==i&&k("#wpoptimize_table_list").trigger("applyWidgets")}}),k("#wp-optimize-nav-tab-contents-optimize").on("click","button.wp-optimize-settings-optimization-run-button",function(){var t=k(this).closest(".wp-optimize-settings").data("optimization_id");return t?void(1!=k(".optimization_button_"+t).prop("disabled")&&(k(".optimization_button_"+t).prop("disabled",!0),r(function(){k(".optimization_button_"+t).prop("disabled",!1),p(t)}))):void console.log("Optimization ID corresponding to pressed button not found")}),k("#wp-optimize-nav-tab-contents-optimize").on("click","#wp-optimize",function(t){var i=k(this);t.preventDefault(),i.prop("disabled",!0),r(function(){i.prop("disabled",!1),l()})});var C=k("#wpo_settings_sites_list"),S=C.find("ul").first(),T=k('input[type="checkbox"]',S),W=C.find("#wpo_all_sites"),A=k("#wpo_sitelist_show_moreoptions"),I=k("#wpo_sitelist_moreoptions"),U=k("#wpo_settings_sites_list_cron"),Q=U.find("ul").first(),$=k('input[type="checkbox"]',Q),F=U.find("#wpo_all_sites_cron"),J=k("#wpo_sitelist_show_moreoptions_cron"),M=k("#wpo_sitelist_moreoptions_cron");d(A,I,W,T);var N=0;k([W,T]).each(function(){k(this).on("change",function(){N++,setTimeout(function(){N--,0==N&&b()},1e3)})}),d(J,M,F,$),k("#wp_optimize_table_list_refresh").click(function(){k("#wpoptimize_table_list tbody").css("opacity","0.5"),t("get_table_list",!1,function(t){if(t.hasOwnProperty("table_list")){var i=!0,e=function(t){k("#wpoptimize_table_list tbody").css("opacity","1")};k("#wpoptimize_table_list").trigger("updateAll",[i,e])}t.hasOwnProperty("total_size")&&k("#optimize_current_db_size").html(t.total_size),g(K.is(":checked"))})}),k("#settings_form").on("click","#wp-optimize-settings-save",function(i){if(!v())return!1;i.preventDefault(),k("#save_spinner").show();var o=n();t("save_settings",o,function(t){if(k("#save_spinner").hide(),k("#save_done").show().delay(5e3).fadeOut(),t&&t.hasOwnProperty("save_results")&&t.save_results&&t.save_results.hasOwnProperty("errors")){for(var i=0,o=t.save_results.errors.length;i<o;i++){var n='<div class="error">'+t.errors[i]+"</div>";e(n,"#wp-optimize-settings-save-results")}console.log(t.save_results.messages)}t&&t.hasOwnProperty("status_box_contents")&&k("#wp_optimize_status_box .inside").html(t.status_box_contents),t&&t.hasOwnProperty("optimizations_table")&&k("#optimizations_list").replaceWith(t.optimizations_table),t.save_results.refresh&&location.reload()})}),k("#wp_optimize_status_box").on("click","#wp_optimize_status_box_refresh",function(i){i.preventDefault(),k("#wp_optimize_status_box").css("opacity","0.5"),t("get_status_box_contents",null,function(t){k("#wp_optimize_status_box").css("opacity","1").find(".inside").html(t)})});var E=k("#innodb_force_optimize"),R=E.is(":checked"),B=E.closest("tr"),K=k("#innodb_force_optimize_single");E.on("change",function(){k('button, input[type="checkbox"]',B).each(function(){R=E.is(":checked");var t=k(this);t.data("disabled")&&(R?t.prop("disabled",!1):t.prop("disabled",!0))})}),k("#wpoptimize_table_list").on("click",".run-single-table-optimization",function(){var i=k(this),e=i.next(),o=e.next(),n=i.data("table"),a=i.data("type"),s={optimization_id:"optimizetables",optimization_table:n,optimization_table_type:a};K.is(":checked")&&(s.optimization_force=!0),e.removeClass("visibility-hidden"),t("do_optimization",{optimization_id:"optimizetables",data:s},function(){i.prop("disabled",!1),e.addClass("visibility-hidden"),o.show().removeClass("visibility-hidden").delay(3e3).fadeOut("slow")})}),K.change(function(){g(K.is(":checked"))}),g(K.is(":checked"));var Y={};setTimeout(function(){t("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&k("#wpo_settings_warnings").append(t.m)})},11e3),k("#wpo_import_settings_btn").on("click",function(t){var i=k("#wpo_import_settings_file"),e=i.val(),o=i[0].files[0],n=new FileReader;return k("#wpo_import_settings_btn").prop("disabled",!0),/\.json$/.test(e)?(n.onload=function(){h(this.result)},n.readAsText(o),!1):(t.preventDefault(),k("#wpo_import_settings_btn").prop("disabled",!1),k("#wpo_import_error_message").text(wpoptimize.please_select_settings_file).slideDown(),!1)}),k("#wpo_import_settings_file").on("change",function(){k("#wpo_import_error_message").slideUp()}),k("#wpo_export_settings_btn").on("click",function(t){return z(n("object")),!1});var G=function(i,e,o){t("get_optimization_info",{optimization_id:e,data:o},function(t){var o=t&&t.result&&t.result.meta?t.result.meta:{},n=t&&t.result&&t.result.output?t.result.output.join("<br>"):"...";k(document).trigger(["optimization_get_info_",e].join(""),n),i.html(n),o.finished?k(document).trigger(["optimization_get_info_",e,"_done"].join(""),t):setTimeout(function(){G(i,e,o)},1)})};return k(document).ready(function(){k(".wp-optimize-optimization-info-ajax").each(function(){var t=k(this),i=t.parent(),e=t.data("id");k(document).trigger(["optimization_get_info_",e,"_start"].join("")),G(i,e,{support_ajax_get_info:!0})})}),setTimeout(function(){t("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&k("#wpo_settings_warnings").append(t.m)})},11e3),{send_command:t,optimization_get_info:G,take_a_backup_with_updraftplus:c,save_auto_backup_options:u}};jQuery(document).ready(function(t){function i(i){var e=["#",i.data("additional")].join("");i.is(":checked")?t(e).show():t(e).hide()}function e(){var i=t("#wp-optimize-logger-settings .save_settings_reminder");i.is(":visible")||i.slideDown("normal")}function o(){t(".wpo_logger_type").each(function(){n(t(this))})}function n(i){var e,o,n=a();for(e in n)o=n[e],wpoptimize.loggers_classes_info[o].allow_multiple?t('option[value="'+o+'"]',i).show():t('option[value="'+o+'"]',i).hide()}function a(){var i=[];return t(".wpo_logging_row, .wpo_logger_type").each(function(){var e=t(this).is("select")?t(this).val():t(this).data("id");e&&i.push(e)}),i}function s(){var t,i=['<option value="">Select destination</option>'];for(t in wpoptimize.loggers_classes_info)wpoptimize.loggers_classes_info.hasOwnProperty(t)&&i.push(['<option value="',t,'">',wpoptimize.loggers_classes_info[t].description,"</option>"].join(""));return['<div class="wpo_add_logger_form">','<select class="wpo_logger_type" name="wpo-logger-type[]">',i.join(""),"<select>",'<a href="#" class="wpo_delete_logger dashicons dashicons-no-alt"></a>','<div class="wpo_additional_logger_options"></div>',"</div>"].join("")}function p(i){if(!wpoptimize.loggers_classes_info[i].options)return"";var e,o=wpoptimize.loggers_classes_info[i].options,n=[],a="",s="";for(e in o)o.hasOwnProperty(e)&&(t.isArray(o[e])?(a=t.trim(o[e][0]),s=t.trim(o[e][1])):(a=t.trim(o[e]),s=""),n.push(['<input class="wpo_logger_addition_option" type="text" name="wpo-logger-options[',e,'][]" value="" ','placeholder="',a,'" ',""!==s?'data-validate="'+s+'"':"","/>"].join("")));return n.push('<input type="hidden" name="wpo-logger-options[active][]" value="1" />'),n.join("")}t(".wp-optimize-logging-settings").each(function(){var e=t(this);i(e),e.on("change",function(){i(e)})});var r=t("#wpo_add_logger_link");r.on("click",function(){t("#wp-optimize-logger-settings .save_settings_reminder").after(s()),n(t(".wpo_logger_type").first())}),t("#wp-optimize-nav-tab-contents-settings").on("change",".wpo_logger_type",function(){var i=t(this),o=i.val(),n=i.parent().find(".wpo_additional_logger_options");n.html(p(o)),i.val()&&e()}),t(".wpo_logging_actions_row .dashicons-edit").on("click",function(){var i=t(this),e=i.closest(".wpo_logging_row");return t(".wpo_additional_logger_options",e).removeClass("wpo_hidden"),t(".wpo_logging_options_row",e).text(""),t(".wpo_logging_status_row",e).text(""),i.hide(),!1}),t("#wp-optimize-logger-settings").on("change",".wpo_logger_addition_option",function(){e()}),t(".wpo_logger_active_checkbox").on("change",function(){var i=t(this),e=i.closest("label").find('input[type="hidden"]');e.val(i.is(":checked")?"1":"0")}),t("#wp-optimize-nav-tab-contents-settings").on("click",".wpo_delete_logger",function(){if(!confirm(wpoptimize.are_you_sure_you_want_to_remove_logging_destination))return!1;var i=t(this);return i.closest(".wpo_logging_row, .wpo_add_logger_form").remove(),o(),0==t("#wp-optimize-logging-options .wpo_logging_row").length&&t("#wp-optimize-logging-options").hide(),e(),!1})});
|
languages/wp-optimize.pot
CHANGED
@@ -25,10 +25,18 @@ msgstr ""
|
|
25 |
msgid "Please upload a valid settings file."
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: src/includes/class-updraft-
|
|
|
|
|
|
|
|
|
29 |
msgid "Log events to email"
|
30 |
msgstr ""
|
31 |
|
|
|
|
|
|
|
|
|
32 |
#: src/includes/class-updraft-php-logger.php:24
|
33 |
msgid "Log events into the PHP error log"
|
34 |
msgstr ""
|
@@ -37,11 +45,15 @@ msgstr ""
|
|
37 |
msgid "Store the most recent log entries in the WordPress database"
|
38 |
msgstr ""
|
39 |
|
|
|
|
|
|
|
|
|
40 |
#: src/includes/class-wp-optimize-options.php:142
|
41 |
msgid "Auto backup option updated."
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: src/includes/class-wp-optimize-options.php:
|
45 |
msgid "Settings updated."
|
46 |
msgstr ""
|
47 |
|
@@ -251,23 +263,23 @@ msgstr ""
|
|
251 |
msgid "Total gain:"
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: src/optimizations/optimizetables.php:
|
255 |
-
msgid "
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: src/optimizations/optimizetables.php:
|
259 |
msgid "Optimize InnoDB tables anyway."
|
260 |
msgstr ""
|
261 |
|
262 |
-
#: src/optimizations/optimizetables.php:
|
263 |
msgid "Warning: you should read the FAQ on the risks of this operation first."
|
264 |
msgstr ""
|
265 |
|
266 |
-
#: src/optimizations/optimizetables.php:
|
267 |
msgid "Tables will be optimized (%s)."
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: src/optimizations/optimizetables.php:
|
271 |
msgid "Optimize database tables"
|
272 |
msgstr ""
|
273 |
|
@@ -555,27 +567,31 @@ msgstr ""
|
|
555 |
msgid "Scheduled clean-up settings"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: src/templates/admin-settings-auto-cleanup.php:
|
|
|
|
|
|
|
|
|
559 |
msgid "Enable scheduled clean-up and optimization (Beta feature)"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: src/templates/admin-settings-auto-cleanup.php:
|
563 |
msgid "Select schedule type (default is Weekly)"
|
564 |
msgstr ""
|
565 |
|
566 |
-
#: src/templates/admin-settings-auto-cleanup.php:
|
567 |
msgid "Daily"
|
568 |
msgstr ""
|
569 |
|
570 |
-
#: src/templates/admin-settings-auto-cleanup.php:
|
571 |
msgid "Weekly"
|
572 |
msgstr ""
|
573 |
|
574 |
-
#: src/templates/admin-settings-auto-cleanup.php:
|
575 |
msgid "Fortnightly"
|
576 |
msgstr ""
|
577 |
|
578 |
-
#: src/templates/admin-settings-auto-cleanup.php:
|
579 |
msgid "Monthly (approx. - every 30 days)"
|
580 |
msgstr ""
|
581 |
|
@@ -615,7 +631,39 @@ msgstr ""
|
|
615 |
msgid "Logging settings"
|
616 |
msgstr ""
|
617 |
|
618 |
-
#: src/templates/admin-settings-logging.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
619 |
msgid "Save settings"
|
620 |
msgstr ""
|
621 |
|
@@ -1013,10 +1061,6 @@ msgstr ""
|
|
1013 |
msgid "You may wish to run a backup before optimizing."
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: src/templates/status-box-contents.php:11
|
1017 |
-
msgid "Status"
|
1018 |
-
msgstr ""
|
1019 |
-
|
1020 |
#: src/templates/status-box-contents.php:16
|
1021 |
msgid "running on:"
|
1022 |
msgstr ""
|
@@ -1102,14 +1146,14 @@ msgid "Total:"
|
|
1102 |
msgstr ""
|
1103 |
|
1104 |
#: src/templates/tables-body.php:68
|
1105 |
-
msgid "%
|
1106 |
-
msgid_plural "%
|
1107 |
msgstr[0] ""
|
1108 |
msgstr[1] ""
|
1109 |
|
1110 |
#: src/templates/tables-body.php:69
|
1111 |
-
msgid "%
|
1112 |
-
msgid_plural "%
|
1113 |
msgstr[0] ""
|
1114 |
msgstr[1] ""
|
1115 |
|
@@ -1201,7 +1245,7 @@ msgstr ""
|
|
1201 |
msgid "Table information"
|
1202 |
msgstr ""
|
1203 |
|
1204 |
-
#: src/wp-optimize.php:387, src/wp-optimize.php:
|
1205 |
msgid "Settings"
|
1206 |
msgstr ""
|
1207 |
|
@@ -1209,106 +1253,106 @@ msgstr ""
|
|
1209 |
msgid "Premium / Plugin family"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
-
#: src/wp-optimize.php:
|
1213 |
msgid "Automatic backup before optimizations"
|
1214 |
msgstr ""
|
1215 |
|
1216 |
-
#: src/wp-optimize.php:
|
1217 |
msgid "An unexpected response was received."
|
1218 |
msgstr ""
|
1219 |
|
1220 |
-
#: src/wp-optimize.php:
|
1221 |
msgid "Optimization complete"
|
1222 |
msgstr ""
|
1223 |
|
1224 |
-
#: src/wp-optimize.php:
|
1225 |
msgid "Run optimizations"
|
1226 |
msgstr ""
|
1227 |
|
1228 |
-
#: src/wp-optimize.php:
|
1229 |
msgid "Cancel"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
-
#: src/wp-optimize.php:
|
1233 |
msgid "Please, select settings file."
|
1234 |
msgstr ""
|
1235 |
|
1236 |
-
#: src/wp-optimize.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1237 |
msgid "Optimize"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
-
#: src/wp-optimize.php:
|
1241 |
msgid "Optimizer"
|
1242 |
msgstr ""
|
1243 |
|
1244 |
-
#: src/wp-optimize.php:
|
1245 |
msgid "Warning"
|
1246 |
msgstr ""
|
1247 |
|
1248 |
-
#: src/wp-optimize.php:
|
1249 |
msgid "WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working."
|
1250 |
msgstr ""
|
1251 |
|
1252 |
-
#: src/wp-optimize.php:
|
1253 |
msgid "Read this page for a guide to possible causes and how to fix it."
|
1254 |
msgstr ""
|
1255 |
|
1256 |
-
#: src/wp-optimize.php:
|
1257 |
msgid "Error:"
|
1258 |
msgstr ""
|
1259 |
|
1260 |
-
#: src/wp-optimize.php:
|
1261 |
msgid "template not found"
|
1262 |
msgstr ""
|
1263 |
|
1264 |
-
#: src/wp-optimize.php:
|
1265 |
msgid "Automatic Operation Completed"
|
1266 |
msgstr ""
|
1267 |
|
1268 |
-
#: src/wp-optimize.php:
|
1269 |
msgid "Scheduled optimization was executed at"
|
1270 |
msgstr ""
|
1271 |
|
1272 |
-
#: src/wp-optimize.php:
|
1273 |
msgid "You can safely delete this email."
|
1274 |
msgstr ""
|
1275 |
|
1276 |
-
#: src/wp-optimize.php:
|
1277 |
msgid "Regards,"
|
1278 |
msgstr ""
|
1279 |
|
1280 |
-
#: src/wp-optimize.php:
|
1281 |
msgid "WP-Optimize Plugin"
|
1282 |
msgstr ""
|
1283 |
|
1284 |
-
#: src/wp-optimize.php:
|
1285 |
msgid "GB"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
-
#: src/wp-optimize.php:
|
1289 |
msgid "MB"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
-
#: src/wp-optimize.php:
|
1293 |
msgid "KB"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
-
#: src/wp-optimize.php:
|
1297 |
msgid "bytes"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
-
#: src/wp-optimize.php:
|
1301 |
-
msgid "Store the last %s entries"
|
1302 |
-
msgstr ""
|
1303 |
-
|
1304 |
-
#: src/wp-optimize.php:926
|
1305 |
-
msgid "Ring logger limit"
|
1306 |
-
msgstr ""
|
1307 |
-
|
1308 |
-
#: src/wp-optimize.php:1128
|
1309 |
msgid "Only Network Administrator can activate WP-Optimize plugin."
|
1310 |
msgstr ""
|
1311 |
|
1312 |
-
#: src/wp-optimize.php:
|
1313 |
msgid "go back"
|
1314 |
msgstr ""
|
25 |
msgid "Please upload a valid settings file."
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: src/includes/class-updraft-abstract-logger.php:55
|
29 |
+
msgid "Placeholder"
|
30 |
+
msgstr ""
|
31 |
+
|
32 |
+
#: src/includes/class-updraft-email-logger.php:26
|
33 |
msgid "Log events to email"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: src/includes/class-updraft-email-logger.php:37
|
37 |
+
msgid "Enter email for logs here"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
#: src/includes/class-updraft-php-logger.php:24
|
41 |
msgid "Log events into the PHP error log"
|
42 |
msgstr ""
|
45 |
msgid "Store the most recent log entries in the WordPress database"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: src/includes/class-updraft-ring-logger.php:34
|
49 |
+
msgid "How many last records store?"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/includes/class-wp-optimize-options.php:142
|
53 |
msgid "Auto backup option updated."
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: src/includes/class-wp-optimize-options.php:248
|
57 |
msgid "Settings updated."
|
58 |
msgstr ""
|
59 |
|
263 |
msgid "Total gain:"
|
264 |
msgstr ""
|
265 |
|
266 |
+
#: src/optimizations/optimizetables.php:88
|
267 |
+
msgid "Other tables will be optimized (%s)."
|
268 |
msgstr ""
|
269 |
|
270 |
+
#: src/optimizations/optimizetables.php:93
|
271 |
msgid "Optimize InnoDB tables anyway."
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: src/optimizations/optimizetables.php:93
|
275 |
msgid "Warning: you should read the FAQ on the risks of this operation first."
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: src/optimizations/optimizetables.php:96
|
279 |
msgid "Tables will be optimized (%s)."
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: src/optimizations/optimizetables.php:101, src/optimizations/optimizetables.php:105
|
283 |
msgid "Optimize database tables"
|
284 |
msgstr ""
|
285 |
|
567 |
msgid "Scheduled clean-up settings"
|
568 |
msgstr ""
|
569 |
|
570 |
+
#: src/templates/admin-settings-auto-cleanup.php:6
|
571 |
+
msgid "Take control of clean-ups: Upgrade to Premium for a more powerful and flexible scheduler"
|
572 |
+
msgstr ""
|
573 |
+
|
574 |
+
#: src/templates/admin-settings-auto-cleanup.php:12
|
575 |
msgid "Enable scheduled clean-up and optimization (Beta feature)"
|
576 |
msgstr ""
|
577 |
|
578 |
+
#: src/templates/admin-settings-auto-cleanup.php:20
|
579 |
msgid "Select schedule type (default is Weekly)"
|
580 |
msgstr ""
|
581 |
|
582 |
+
#: src/templates/admin-settings-auto-cleanup.php:25
|
583 |
msgid "Daily"
|
584 |
msgstr ""
|
585 |
|
586 |
+
#: src/templates/admin-settings-auto-cleanup.php:26
|
587 |
msgid "Weekly"
|
588 |
msgstr ""
|
589 |
|
590 |
+
#: src/templates/admin-settings-auto-cleanup.php:27
|
591 |
msgid "Fortnightly"
|
592 |
msgstr ""
|
593 |
|
594 |
+
#: src/templates/admin-settings-auto-cleanup.php:28
|
595 |
msgid "Monthly (approx. - every 30 days)"
|
596 |
msgstr ""
|
597 |
|
631 |
msgid "Logging settings"
|
632 |
msgstr ""
|
633 |
|
634 |
+
#: src/templates/admin-settings-logging.php:7
|
635 |
+
msgid "Add logging destination"
|
636 |
+
msgstr ""
|
637 |
+
|
638 |
+
#: src/templates/admin-settings-logging.php:11
|
639 |
+
msgid "Remember to save your settings so that your changes take effect."
|
640 |
+
msgstr ""
|
641 |
+
|
642 |
+
#: src/templates/admin-settings-logging.php:22
|
643 |
+
msgid "Destination"
|
644 |
+
msgstr ""
|
645 |
+
|
646 |
+
#: src/templates/admin-settings-logging.php:23
|
647 |
+
msgid "Options"
|
648 |
+
msgstr ""
|
649 |
+
|
650 |
+
#: src/templates/admin-settings-logging.php:24, src/templates/status-box-contents.php:11
|
651 |
+
msgid "Status"
|
652 |
+
msgstr ""
|
653 |
+
|
654 |
+
#: src/templates/admin-settings-logging.php:25
|
655 |
+
msgid "Actions"
|
656 |
+
msgstr ""
|
657 |
+
|
658 |
+
#: src/templates/admin-settings-logging.php:39, src/templates/admin-settings-logging.php:79
|
659 |
+
msgid "Active"
|
660 |
+
msgstr ""
|
661 |
+
|
662 |
+
#: src/templates/admin-settings-logging.php:39
|
663 |
+
msgid "Inactive"
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: src/templates/admin-settings-logging.php:96
|
667 |
msgid "Save settings"
|
668 |
msgstr ""
|
669 |
|
1061 |
msgid "You may wish to run a backup before optimizing."
|
1062 |
msgstr ""
|
1063 |
|
|
|
|
|
|
|
|
|
1064 |
#: src/templates/status-box-contents.php:16
|
1065 |
msgid "running on:"
|
1066 |
msgstr ""
|
1146 |
msgstr ""
|
1147 |
|
1148 |
#: src/templates/tables-body.php:68
|
1149 |
+
msgid "%s Table"
|
1150 |
+
msgid_plural "%s Tables"
|
1151 |
msgstr[0] ""
|
1152 |
msgstr[1] ""
|
1153 |
|
1154 |
#: src/templates/tables-body.php:69
|
1155 |
+
msgid "%s Record"
|
1156 |
+
msgid_plural "%s Records"
|
1157 |
msgstr[0] ""
|
1158 |
msgstr[1] ""
|
1159 |
|
1245 |
msgid "Table information"
|
1246 |
msgstr ""
|
1247 |
|
1248 |
+
#: src/wp-optimize.php:387, src/wp-optimize.php:572
|
1249 |
msgid "Settings"
|
1250 |
msgstr ""
|
1251 |
|
1253 |
msgid "Premium / Plugin family"
|
1254 |
msgstr ""
|
1255 |
|
1256 |
+
#: src/wp-optimize.php:516
|
1257 |
msgid "Automatic backup before optimizations"
|
1258 |
msgstr ""
|
1259 |
|
1260 |
+
#: src/wp-optimize.php:517
|
1261 |
msgid "An unexpected response was received."
|
1262 |
msgstr ""
|
1263 |
|
1264 |
+
#: src/wp-optimize.php:518
|
1265 |
msgid "Optimization complete"
|
1266 |
msgstr ""
|
1267 |
|
1268 |
+
#: src/wp-optimize.php:519
|
1269 |
msgid "Run optimizations"
|
1270 |
msgstr ""
|
1271 |
|
1272 |
+
#: src/wp-optimize.php:520
|
1273 |
msgid "Cancel"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
+
#: src/wp-optimize.php:521
|
1277 |
msgid "Please, select settings file."
|
1278 |
msgstr ""
|
1279 |
|
1280 |
+
#: src/wp-optimize.php:522
|
1281 |
+
msgid "Are you sure you want to remove this logging destination?"
|
1282 |
+
msgstr ""
|
1283 |
+
|
1284 |
+
#: src/wp-optimize.php:523
|
1285 |
+
msgid "Before saving, you need to complete the currently incomplete settings (or remove them)."
|
1286 |
+
msgstr ""
|
1287 |
+
|
1288 |
+
#: src/wp-optimize.php:553
|
1289 |
msgid "Optimize"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
#: src/wp-optimize.php:575
|
1293 |
msgid "Optimizer"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: src/wp-optimize.php:678
|
1297 |
msgid "Warning"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
+
#: src/wp-optimize.php:678
|
1301 |
msgid "WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working."
|
1302 |
msgstr ""
|
1303 |
|
1304 |
+
#: src/wp-optimize.php:678
|
1305 |
msgid "Read this page for a guide to possible causes and how to fix it."
|
1306 |
msgstr ""
|
1307 |
|
1308 |
+
#: src/wp-optimize.php:745
|
1309 |
msgid "Error:"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
+
#: src/wp-optimize.php:745
|
1313 |
msgid "template not found"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
+
#: src/wp-optimize.php:797
|
1317 |
msgid "Automatic Operation Completed"
|
1318 |
msgstr ""
|
1319 |
|
1320 |
+
#: src/wp-optimize.php:799
|
1321 |
msgid "Scheduled optimization was executed at"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: src/wp-optimize.php:800
|
1325 |
msgid "You can safely delete this email."
|
1326 |
msgstr ""
|
1327 |
|
1328 |
+
#: src/wp-optimize.php:802
|
1329 |
msgid "Regards,"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: src/wp-optimize.php:803
|
1333 |
msgid "WP-Optimize Plugin"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: src/wp-optimize.php:825
|
1337 |
msgid "GB"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
+
#: src/wp-optimize.php:827
|
1341 |
msgid "MB"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
+
#: src/wp-optimize.php:829
|
1345 |
msgid "KB"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
+
#: src/wp-optimize.php:831
|
1349 |
msgid "bytes"
|
1350 |
msgstr ""
|
1351 |
|
1352 |
+
#: src/wp-optimize.php:1210
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1353 |
msgid "Only Network Administrator can activate WP-Optimize plugin."
|
1354 |
msgstr ""
|
1355 |
|
1356 |
+
#: src/wp-optimize.php:1211
|
1357 |
msgid "go back"
|
1358 |
msgstr ""
|
optimizations/optimizetables.php
CHANGED
@@ -29,7 +29,7 @@ class WP_Optimization_optimizetables extends WP_Optimization {
|
|
29 |
*/
|
30 |
public function optimize() {
|
31 |
// check if force optimize sent.
|
32 |
-
$force = (isset($this->data['
|
33 |
|
34 |
// check if single table name posted or optimize all tables.
|
35 |
if (isset($this->data['optimization_table']) && '' != $this->data['optimization_table']) {
|
@@ -82,7 +82,11 @@ class WP_Optimization_optimizetables extends WP_Optimization {
|
|
82 |
|
83 |
if ($tablesstatus['inno_db_tables'] > 0) {
|
84 |
// Output message for how many InnoDB tables will not be optimized.
|
85 |
-
$this->register_output(sprintf(__('Tables using the InnoDB engine (%d) will not be optimized.
|
|
|
|
|
|
|
|
|
86 |
|
87 |
$faq_url = apply_filters('wpo_faq_url', 'https://wordpress.org/plugins/wp-optimize/#faq');
|
88 |
$force_db_option = $this->options->get_option('innodb-force-optimize', 'false');
|
29 |
*/
|
30 |
public function optimize() {
|
31 |
// check if force optimize sent.
|
32 |
+
$force = (isset($this->data['optimization_force']) && $this->data['optimization_force']) ? true : false;
|
33 |
|
34 |
// check if single table name posted or optimize all tables.
|
35 |
if (isset($this->data['optimization_table']) && '' != $this->data['optimization_table']) {
|
82 |
|
83 |
if ($tablesstatus['inno_db_tables'] > 0) {
|
84 |
// Output message for how many InnoDB tables will not be optimized.
|
85 |
+
$this->register_output(sprintf(__('Tables using the InnoDB engine (%d) will not be optimized.'), $tablesstatus['inno_db_tables']));
|
86 |
+
|
87 |
+
if ($tablesstatus['non_inno_db_tables'] > 0) {
|
88 |
+
$this->register_output(sprintf(__('Other tables will be optimized (%s).', 'wp-optimize'), $tablesstatus['non_inno_db_tables']));
|
89 |
+
}
|
90 |
|
91 |
$faq_url = apply_filters('wpo_faq_url', 'https://wordpress.org/plugins/wp-optimize/#faq');
|
92 |
$force_db_option = $this->options->get_option('innodb-force-optimize', 'false');
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://david.dw-perspective.org.uk/donate
|
|
4 |
Tags: comments, spam, optimize, database, revisions, users, posts, trash, schedule, automatic, clean, phpmyadmin, meta, postmeta, responsive, mobile
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.9
|
7 |
-
Stable tag: 2.2.
|
8 |
License: GPLv2+
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -22,7 +22,7 @@ WP-Optimize is an effective tool for automatically cleaning your WordPress datab
|
|
22 |
* Carries out automatic weekly (or otherwise) clean-ups
|
23 |
* Retains a set number of weeks' data during clean-ups
|
24 |
* Performs optimizations without the need for running manual queries
|
25 |
-
* Automatically trigger a pre-optimize backup via
|
26 |
* Show database statistics and potential savings
|
27 |
* Mobile friendly and easy-to-use
|
28 |
* Translated into several languages
|
@@ -50,10 +50,6 @@ When you use this plugin for the first time or just updated to major version, ma
|
|
50 |
|
51 |
* Automatically cleans database every week and respects the "Keeps selected number of weeks data" option.
|
52 |
|
53 |
-
= Developers =
|
54 |
-
|
55 |
-
If you interested in the development of this plugin, join with us at our GitLab: https://source.updraftplus.com/team-updraft/wp-optimize/ (but please file all support questions in the wordpress.org system).
|
56 |
-
|
57 |
= WP-Optimize Premium =
|
58 |
|
59 |
<strong>Our free version of WP-Optimize is great, but we also have a more powerful Premium version with extra features that offer the ultimate in freedom and flexibility:</strong>
|
@@ -142,6 +138,12 @@ Please check your database for corrupted tables. That can happen, usually your w
|
|
142 |
|
143 |
== Changelog ==
|
144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
= 2.2.0 - 19/Feb/2018 =
|
146 |
|
147 |
* FEATURE: Added the ability to export/import WP-Optimize settings
|
@@ -382,4 +384,4 @@ Please check your database for corrupted tables. That can happen, usually your w
|
|
382 |
* Fix Interface
|
383 |
|
384 |
== Upgrade Notice ==
|
385 |
-
* 2.2.
|
4 |
Tags: comments, spam, optimize, database, revisions, users, posts, trash, schedule, automatic, clean, phpmyadmin, meta, postmeta, responsive, mobile
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.9
|
7 |
+
Stable tag: 2.2.1
|
8 |
License: GPLv2+
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
22 |
* Carries out automatic weekly (or otherwise) clean-ups
|
23 |
* Retains a set number of weeks' data during clean-ups
|
24 |
* Performs optimizations without the need for running manual queries
|
25 |
+
* Automatically trigger a pre-optimize backup via <a href="https://updraftplus.com">UpdraftPlus</a>
|
26 |
* Show database statistics and potential savings
|
27 |
* Mobile friendly and easy-to-use
|
28 |
* Translated into several languages
|
50 |
|
51 |
* Automatically cleans database every week and respects the "Keeps selected number of weeks data" option.
|
52 |
|
|
|
|
|
|
|
|
|
53 |
= WP-Optimize Premium =
|
54 |
|
55 |
<strong>Our free version of WP-Optimize is great, but we also have a more powerful Premium version with extra features that offer the ultimate in freedom and flexibility:</strong>
|
138 |
|
139 |
== Changelog ==
|
140 |
|
141 |
+
= 2.2.1 - 28/Feb/2018 =
|
142 |
+
|
143 |
+
* FIX: Fix number counting in Table information tab
|
144 |
+
* FIX: Fix InnoDB optimization UI
|
145 |
+
* TWEAK: Removed orphaned attachment optimization from optimizations UI list
|
146 |
+
|
147 |
= 2.2.0 - 19/Feb/2018 =
|
148 |
|
149 |
* FEATURE: Added the ability to export/import WP-Optimize settings
|
384 |
* Fix Interface
|
385 |
|
386 |
== Upgrade Notice ==
|
387 |
+
* 2.2.1 : 2.2 has lots of new features, tweaks and fixes; including the introduction of a Premium version with even more features. 2.2.1 fixes bugs in the initial 2.2.0 release.
|
templates/admin-settings-auto-cleanup.php
CHANGED
@@ -2,6 +2,10 @@
|
|
2 |
|
3 |
<h3><?php _e('Scheduled clean-up settings', 'wp-optimize'); ?></h3>
|
4 |
|
|
|
|
|
|
|
|
|
5 |
<p>
|
6 |
|
7 |
<input name="enable-schedule" id="enable-schedule" type="checkbox" value ="true" <?php checked($options->get_option('schedule'), 'true'); ?>>
|
2 |
|
3 |
<h3><?php _e('Scheduled clean-up settings', 'wp-optimize'); ?></h3>
|
4 |
|
5 |
+
<p>
|
6 |
+
<a href="<?php echo WP_Optimize()->premium_version_link; ?>" target="_blank"><?php _e('Take control of clean-ups: Upgrade to Premium for a more powerful and flexible scheduler', 'wp-optimize'); ?></a>
|
7 |
+
</p>
|
8 |
+
|
9 |
<p>
|
10 |
|
11 |
<input name="enable-schedule" id="enable-schedule" type="checkbox" value ="true" <?php checked($options->get_option('schedule'), 'true'); ?>>
|
templates/admin-settings-logging.php
CHANGED
@@ -2,45 +2,93 @@
|
|
2 |
|
3 |
<h3><?php _e('Logging settings', 'wp-optimize'); ?></h3>
|
4 |
|
5 |
-
<
|
|
|
|
|
6 |
|
7 |
-
|
|
|
|
|
|
|
|
|
8 |
<?php
|
9 |
-
|
10 |
-
$wpo_logging_additional_options = $options->get_option('logging-additional');
|
11 |
$loggers = $wp_optimize->get_logger()->get_loggers();
|
12 |
|
13 |
-
|
14 |
-
$logger_id = strtolower(get_class($logger));
|
15 |
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
-
|
|
|
19 |
|
20 |
-
|
21 |
-
$additional_options_details = (empty($wpo_logging_additional_options[$logger_id])) ? null : $wpo_logging_additional_options[$logger_id];
|
22 |
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
<?php
|
37 |
-
}
|
38 |
-
?>
|
39 |
-
<?php
|
40 |
}
|
41 |
?>
|
|
|
42 |
</div>
|
43 |
-
|
44 |
<hr>
|
45 |
|
46 |
<div id="wp-optimize-settings-save-results"></div>
|
2 |
|
3 |
<h3><?php _e('Logging settings', 'wp-optimize'); ?></h3>
|
4 |
|
5 |
+
<div id="wp-optimize-logger-settings">
|
6 |
+
<p>
|
7 |
+
<a id="wpo_add_logger_link">+ <?php _e('Add logging destination', 'wp-optimize'); ?></a>
|
8 |
|
9 |
+
</p>
|
10 |
+
|
11 |
+
<div class="save_settings_reminder"><?php _e('Remember to save your settings so that your changes take effect.', 'wp-optimize');?></div>
|
12 |
+
|
13 |
+
<div id="wp-optimize-logging-options">
|
14 |
<?php
|
15 |
+
|
|
|
16 |
$loggers = $wp_optimize->get_logger()->get_loggers();
|
17 |
|
18 |
+
if (count($loggers) > 0) {
|
|
|
19 |
|
20 |
+
?>
|
21 |
+
<div class="wpo_logging_header">
|
22 |
+
<div class="wpo_logging_logger_title"><?php _e('Destination', 'wp-optimize'); ?></div>
|
23 |
+
<div class="wpo_logging_options_title"><?php _e('Options', 'wp-optimize'); ?></div>
|
24 |
+
<div class="wpo_logging_status_title"><?php _e('Status', 'wp-optimize'); ?></div>
|
25 |
+
<div class="wpo_logging_actions_title"><?php _e('Actions', 'wp-optimize'); ?></div>
|
26 |
+
</div>
|
27 |
+
<?php
|
28 |
|
29 |
+
foreach ($loggers as $logger) {
|
30 |
+
$logger_id = strtolower(get_class($logger));
|
31 |
|
32 |
+
?>
|
|
|
33 |
|
34 |
+
<div class="wpo_logging_row" data-id="<?php echo $logger_id; ?>">
|
35 |
+
<div class="wpo_logging_logger_row"><span
|
36 |
+
class="dashicons dashicons-arrow-right"></span><?php echo $logger->get_description(); ?>
|
37 |
+
</div>
|
38 |
+
<div class="wpo_logging_options_row"><?php echo $logger->get_options_text(); ?></div>
|
39 |
+
<div class="wpo_logging_status_row"><?php echo ($logger->is_enabled()) ? __('Active', 'wp-optimize') : __('Inactive', 'wp-optimize'); ?></div>
|
40 |
+
<div class="wpo_logging_actions_row"><a href="#" class="dashicons dashicons-edit"></a><a
|
41 |
+
href="#" class="wpo_delete_logger dashicons dashicons-no-alt"></a></div>
|
42 |
+
|
43 |
+
<input class="wpo_hidden" type="text" name="wpo-logger-type[]"
|
44 |
+
value="<?php echo $logger_id; ?>"/>
|
45 |
+
|
46 |
+
<div class="wpo_additional_logger_options wpo_hidden">
|
47 |
+
|
48 |
+
<?php
|
49 |
+
$options_list = $logger->get_options_list();
|
50 |
+
$options_values = $logger->get_options_values();
|
51 |
+
|
52 |
+
if (!empty($options_list)) {
|
53 |
+
foreach ($options_list as $option_name => $placeholder) {
|
54 |
+
// check if settings item defined as array.
|
55 |
+
if (is_array($placeholder)) {
|
56 |
+
$validate = $placeholder[1];
|
57 |
+
$placeholder = $placeholder[0];
|
58 |
+
} else {
|
59 |
+
$validate = '';
|
60 |
+
}
|
61 |
+
|
62 |
+
$data_validate_attr = ('' !== $validate ? 'data-validate="'.esc_attr($validate).'"' : '');
|
63 |
+
|
64 |
+
?>
|
65 |
+
<input class="wpo_logger_addition_option" type="text"
|
66 |
+
name="wpo-logger-options[<?php echo $option_name; ?>][]"
|
67 |
+
value="<?php echo $options_values[$option_name]; ?>"
|
68 |
+
placeholder="<?php echo $placeholder; ?>"
|
69 |
+
<?php echo $data_validate_attr; ?> "/>
|
70 |
+
<?php
|
71 |
+
}
|
72 |
+
}
|
73 |
+
?>
|
74 |
+
<label>
|
75 |
+
<input class="wpo_logger_active_checkbox"
|
76 |
+
type="checkbox" <?php checked($logger->is_enabled()); ?>>
|
77 |
+
<input type="hidden" name="wpo-logger-options[active][]"
|
78 |
+
value="<?php echo $logger->is_enabled() ? '1' : '0'; ?>"/>
|
79 |
+
<?php _e('Active', 'wp-optimize'); ?>
|
80 |
+
</label>
|
81 |
+
</div>
|
82 |
+
|
83 |
+
</div>
|
84 |
+
<?php
|
85 |
+
}
|
86 |
+
?>
|
87 |
<?php
|
|
|
|
|
|
|
88 |
}
|
89 |
?>
|
90 |
+
</div>
|
91 |
</div>
|
|
|
92 |
<hr>
|
93 |
|
94 |
<div id="wp-optimize-settings-save-results"></div>
|
templates/optimizations-table.php
CHANGED
@@ -13,7 +13,7 @@
|
|
13 |
<tbody>
|
14 |
<?php
|
15 |
$optimizations = $optimizer->sort_optimizations($optimizer->get_optimizations());
|
16 |
-
$hidden_in_optimizations_list = apply_filters('wpo_hidden_in_optimizations_list', array('images'));
|
17 |
|
18 |
foreach ($optimizations as $id => $optimization) {
|
19 |
// If we don't want to show optimization on the first tab.
|
@@ -30,7 +30,7 @@
|
|
30 |
$table_list = $optimizer->get_table_information();
|
31 |
|
32 |
// Make sure that optimization_table_inno_db is set.
|
33 |
-
if ($table_list['inno_db_tables'] > 0 && 0 == $table_list['is_optimizable']) {
|
34 |
$optimize_table_list_disabled .= 'disabled';
|
35 |
$optimize_table_list_data_disabled = 'data-disabled="1"';
|
36 |
$html['activated'] = '';
|
13 |
<tbody>
|
14 |
<?php
|
15 |
$optimizations = $optimizer->sort_optimizations($optimizer->get_optimizations());
|
16 |
+
$hidden_in_optimizations_list = apply_filters('wpo_hidden_in_optimizations_list', array('images', 'attachments'));
|
17 |
|
18 |
foreach ($optimizations as $id => $optimization) {
|
19 |
// If we don't want to show optimization on the first tab.
|
30 |
$table_list = $optimizer->get_table_information();
|
31 |
|
32 |
// Make sure that optimization_table_inno_db is set.
|
33 |
+
if ($table_list['inno_db_tables'] > 0 && 0 == $table_list['is_optimizable'] && 0 == $table_list['non_inno_db_tables']) {
|
34 |
$optimize_table_list_disabled .= 'disabled';
|
35 |
$optimize_table_list_data_disabled = 'data-disabled="1"';
|
36 |
$html['activated'] = '';
|
templates/tables-body.php
CHANGED
@@ -65,8 +65,8 @@
|
|
65 |
|
66 |
echo '<tr class="thead">'."\n";
|
67 |
echo '<th>'.__('Total:', 'wp-optimize').'</th>'."\n";
|
68 |
-
echo '<th>'.sprintf(_n('%
|
69 |
-
echo '<th>'.sprintf(_n('%
|
70 |
echo '<th>'.$wp_optimize->format_size($data_usage).'</th>'."\n";
|
71 |
echo '<th>'.$wp_optimize->format_size($index_usage).'</th>'."\n";
|
72 |
echo '<th>'.'-'.'</th>'."\n";
|
65 |
|
66 |
echo '<tr class="thead">'."\n";
|
67 |
echo '<th>'.__('Total:', 'wp-optimize').'</th>'."\n";
|
68 |
+
echo '<th>'.sprintf(_n('%s Table', '%s Tables', $no, 'wp-optimize'), number_format_i18n($no)).'</th>'."\n";
|
69 |
+
echo '<th>'.sprintf(_n('%s Record', '%s Records', $row_usage, 'wp-optimize'), number_format_i18n($row_usage)).'</th>'."\n";
|
70 |
echo '<th>'.$wp_optimize->format_size($data_usage).'</th>'."\n";
|
71 |
echo '<th>'.$wp_optimize->format_size($index_usage).'</th>'."\n";
|
72 |
echo '<th>'.'-'.'</th>'."\n";
|
wp-optimize.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: WP-Optimize
|
4 |
Plugin URI: https://getwpo.com
|
5 |
Description: WP-Optimize is WordPress's #1 most installed optimization plugin. With it, you can clean up your database easily and safely, without manual queries.
|
6 |
-
Version: 2.2.
|
7 |
Author: David Anderson, Ruhani Rabin, Team Updraft
|
8 |
Author URI: https://updraftplus.com
|
9 |
Text Domain: wp-optimize
|
@@ -15,14 +15,14 @@ if (!defined('ABSPATH')) die('No direct access allowed');
|
|
15 |
|
16 |
// Check to make sure if WP_Optimize is already call and returns.
|
17 |
if (!class_exists('WP_Optimize')) :
|
18 |
-
define('WPO_VERSION', '2.2.
|
19 |
define('WPO_PLUGIN_URL', plugin_dir_url(__FILE__));
|
20 |
define('WPO_PLUGIN_MAIN_PATH', plugin_dir_path(__FILE__));
|
21 |
define('WPO_PREMIUM_NOTIFICATION', false);
|
22 |
|
23 |
class WP_Optimize {
|
24 |
|
25 |
-
public $premium_version_link = 'https://getwpo.com';
|
26 |
|
27 |
private $template_directories;
|
28 |
|
@@ -411,7 +411,12 @@ class WP_Optimize {
|
|
411 |
|
412 |
wp_enqueue_style('tablesorter-css', WPO_PLUGIN_URL.'css/tablesorter/theme.default.min.css', array(), $enqueue_version);
|
413 |
|
414 |
-
|
|
|
|
|
|
|
|
|
|
|
415 |
|
416 |
do_action('wpo_premium_scripts_styles', $min_or_not, $enqueue_version);
|
417 |
|
@@ -513,7 +518,9 @@ class WP_Optimize {
|
|
513 |
'optimization_complete' => __('Optimization complete', 'wp-optimize'),
|
514 |
'run_optimizations' => __('Run optimizations', 'wp-optimize'),
|
515 |
'cancel' => __('Cancel', 'wp-optimize'),
|
516 |
-
'please_select_settings_file' => __('Please, select settings file.', 'wp-optimize')
|
|
|
|
|
517 |
));
|
518 |
}
|
519 |
|
@@ -892,7 +899,6 @@ class WP_Optimize {
|
|
892 |
}
|
893 |
|
894 |
add_action('wp_optimize_after_optimizations', array($this, 'after_optimizations_logger_action'));
|
895 |
-
add_filter('additional_options_updraft_ring_logger', array($this, 'additional_options_updraft_ring_logger'), 20, 4);
|
896 |
}
|
897 |
|
898 |
/**
|
@@ -910,33 +916,103 @@ class WP_Optimize {
|
|
910 |
}
|
911 |
|
912 |
/**
|
913 |
-
*
|
|
|
914 |
*
|
915 |
-
* @
|
916 |
-
* @param string $logger_form_name The prefix being used in the options form for this logger.
|
917 |
-
* @param array $logger_additional_options Any saved options.
|
918 |
-
* @param Updraft_Logger_Interface $logger_class The logger that the additional options are for.
|
919 |
-
* @return string
|
920 |
*/
|
921 |
-
public function
|
922 |
|
923 |
-
$
|
|
|
|
|
924 |
|
925 |
-
|
926 |
-
|
927 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
928 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
929 |
|
930 |
/**
|
931 |
-
* Returns
|
932 |
-
* Apply filter wp_optimize_loggers
|
933 |
*
|
934 |
-
* @return array
|
935 |
*/
|
936 |
-
public function
|
937 |
-
|
938 |
-
$loggers = array();
|
939 |
-
|
940 |
$loggers_classes = array(
|
941 |
'Updraft_PHP_Logger' => WPO_PLUGIN_MAIN_PATH . 'includes/class-updraft-php-logger.php',
|
942 |
'Updraft_Email_Logger' => WPO_PLUGIN_MAIN_PATH . 'includes/class-updraft-email-logger.php',
|
@@ -952,33 +1028,39 @@ class WP_Optimize {
|
|
952 |
include_once($logger_file);
|
953 |
}
|
954 |
}
|
955 |
-
|
956 |
-
if (class_exists($logger_class)) {
|
957 |
-
$loggers[] = new $logger_class();
|
958 |
-
}
|
959 |
}
|
960 |
}
|
961 |
|
962 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
963 |
|
964 |
-
|
965 |
|
966 |
-
|
967 |
-
|
968 |
|
969 |
-
|
970 |
-
$logger_class_name = get_class($logger);
|
971 |
-
$logger_id = strtolower($logger_class_name);
|
972 |
-
if (empty($logger_options[$logger_id])) {
|
973 |
-
$logger->disable();
|
974 |
-
}
|
975 |
|
976 |
-
|
977 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
978 |
}
|
979 |
}
|
980 |
|
981 |
-
return $
|
982 |
}
|
983 |
|
984 |
/**
|
3 |
Plugin Name: WP-Optimize
|
4 |
Plugin URI: https://getwpo.com
|
5 |
Description: WP-Optimize is WordPress's #1 most installed optimization plugin. With it, you can clean up your database easily and safely, without manual queries.
|
6 |
+
Version: 2.2.1
|
7 |
Author: David Anderson, Ruhani Rabin, Team Updraft
|
8 |
Author URI: https://updraftplus.com
|
9 |
Text Domain: wp-optimize
|
15 |
|
16 |
// Check to make sure if WP_Optimize is already call and returns.
|
17 |
if (!class_exists('WP_Optimize')) :
|
18 |
+
define('WPO_VERSION', '2.2.1');
|
19 |
define('WPO_PLUGIN_URL', plugin_dir_url(__FILE__));
|
20 |
define('WPO_PLUGIN_MAIN_PATH', plugin_dir_path(__FILE__));
|
21 |
define('WPO_PREMIUM_NOTIFICATION', false);
|
22 |
|
23 |
class WP_Optimize {
|
24 |
|
25 |
+
public $premium_version_link = 'https://getwpo.com/buy/';
|
26 |
|
27 |
private $template_directories;
|
28 |
|
411 |
|
412 |
wp_enqueue_style('tablesorter-css', WPO_PLUGIN_URL.'css/tablesorter/theme.default.min.css', array(), $enqueue_version);
|
413 |
|
414 |
+
$js_variables = $this->wpo_js_translations();
|
415 |
+
$js_variables['loggers_classes_info'] = $this->get_loggers_classes_info();
|
416 |
+
|
417 |
+
wp_localize_script('wp-optimize-admin-js', 'wpoptimize', $js_variables);
|
418 |
+
|
419 |
+
do_action('wpo_premium_scripts_styles', $min_or_not, $enqueue_version);
|
420 |
|
421 |
do_action('wpo_premium_scripts_styles', $min_or_not, $enqueue_version);
|
422 |
|
518 |
'optimization_complete' => __('Optimization complete', 'wp-optimize'),
|
519 |
'run_optimizations' => __('Run optimizations', 'wp-optimize'),
|
520 |
'cancel' => __('Cancel', 'wp-optimize'),
|
521 |
+
'please_select_settings_file' => __('Please, select settings file.', 'wp-optimize'),
|
522 |
+
'are_you_sure_you_want_to_remove_logging_destination' => __('Are you sure you want to remove this logging destination?', 'wp-optimize'),
|
523 |
+
'fill_all_settings_fields' => __('Before saving, you need to complete the currently incomplete settings (or remove them).', 'wp-optimize'),
|
524 |
));
|
525 |
}
|
526 |
|
899 |
}
|
900 |
|
901 |
add_action('wp_optimize_after_optimizations', array($this, 'after_optimizations_logger_action'));
|
|
|
902 |
}
|
903 |
|
904 |
/**
|
916 |
}
|
917 |
|
918 |
/**
|
919 |
+
* Returns list of WPO loggers instances
|
920 |
+
* Apply filter wp_optimize_loggers
|
921 |
*
|
922 |
+
* @return array
|
|
|
|
|
|
|
|
|
923 |
*/
|
924 |
+
public function wpo_loggers() {
|
925 |
|
926 |
+
$loggers = array();
|
927 |
+
$loggers_classes_by_id = array();
|
928 |
+
$options_keys = array();
|
929 |
|
930 |
+
$loggers_classes = $this->get_loggers_classes();
|
931 |
+
|
932 |
+
foreach ($loggers_classes as $logger_class => $source) {
|
933 |
+
$loggers_classes_by_id[strtolower($logger_class)] = $logger_class;
|
934 |
+
}
|
935 |
+
|
936 |
+
$saved_loggers = $this->get_options()->get_option('logging');
|
937 |
+
$logger_additional_options = $this->get_options()->get_option('logging-additional');
|
938 |
+
|
939 |
+
// create loggers classes instances.
|
940 |
+
if (!empty($saved_loggers)) {
|
941 |
+
// check for previous version options format.
|
942 |
+
$keys = array_keys($saved_loggers);
|
943 |
+
|
944 |
+
// if options stored in old format then reformat it.
|
945 |
+
if (false == is_numeric($keys[0])) {
|
946 |
+
$_saved_loggers = array();
|
947 |
+
foreach ($saved_loggers as $logger_id => $enabled) {
|
948 |
+
if ($enabled) {
|
949 |
+
$_saved_loggers[] = $logger_id;
|
950 |
+
}
|
951 |
+
}
|
952 |
+
|
953 |
+
// fill email with admin.
|
954 |
+
if (array_key_exists('updraft_email_logger', $saved_loggers) && $saved_loggers['updraft_email_logger']) {
|
955 |
+
$logger_additional_options['updraft_email_logger'] = array(
|
956 |
+
get_option('admin_email')
|
957 |
+
);
|
958 |
+
}
|
959 |
+
|
960 |
+
$saved_loggers = $_saved_loggers;
|
961 |
+
}
|
962 |
+
|
963 |
+
foreach ($saved_loggers as $i => $logger_id) {
|
964 |
+
|
965 |
+
if (!array_key_exists($logger_id, $loggers_classes_by_id)) continue;
|
966 |
+
|
967 |
+
$logger_class = $loggers_classes_by_id[$logger_id];
|
968 |
+
|
969 |
+
$logger = new $logger_class();
|
970 |
+
|
971 |
+
$logger_options = $logger->get_options_list();
|
972 |
+
|
973 |
+
if (!empty($logger_options)) {
|
974 |
+
foreach (array_keys($logger_options) as $option_name) {
|
975 |
+
if (array_key_exists($option_name, $options_keys)) {
|
976 |
+
$options_keys[$option_name]++;
|
977 |
+
} else {
|
978 |
+
$options_keys[$option_name] = 0;
|
979 |
+
}
|
980 |
+
|
981 |
+
$option_value = isset($logger_additional_options[$option_name][$options_keys[$option_name]]) ? $logger_additional_options[$option_name][$options_keys[$option_name]] : '';
|
982 |
+
|
983 |
+
// if options in old format then get correct value.
|
984 |
+
if ('' === $option_value && array_key_exists($logger_id, $logger_additional_options)) {
|
985 |
+
$option_value = array_shift($logger_additional_options[$logger_id]);
|
986 |
+
}
|
987 |
+
|
988 |
+
$logger->set_option($option_name, $option_value);
|
989 |
+
}
|
990 |
+
}
|
991 |
+
|
992 |
+
// check if logger is active.
|
993 |
+
$active = (!is_array($logger_additional_options) || (array_key_exists('active', $logger_additional_options) && empty($logger_additional_options['active'][$i]))) ? false : true;
|
994 |
+
|
995 |
+
if ($active) {
|
996 |
+
$logger->enable();
|
997 |
+
} else {
|
998 |
+
$logger->disable();
|
999 |
+
}
|
1000 |
|
1001 |
+
$loggers[] = $logger;
|
1002 |
+
}
|
1003 |
+
}
|
1004 |
+
|
1005 |
+
$loggers = apply_filters('wp_optimize_loggers', $loggers);
|
1006 |
+
|
1007 |
+
return $loggers;
|
1008 |
+
}
|
1009 |
|
1010 |
/**
|
1011 |
+
* Returns associative array with logger class name in a key and path to class file in a value.
|
|
|
1012 |
*
|
1013 |
+
* @return array
|
1014 |
*/
|
1015 |
+
public function get_loggers_classes() {
|
|
|
|
|
|
|
1016 |
$loggers_classes = array(
|
1017 |
'Updraft_PHP_Logger' => WPO_PLUGIN_MAIN_PATH . 'includes/class-updraft-php-logger.php',
|
1018 |
'Updraft_Email_Logger' => WPO_PLUGIN_MAIN_PATH . 'includes/class-updraft-email-logger.php',
|
1028 |
include_once($logger_file);
|
1029 |
}
|
1030 |
}
|
|
|
|
|
|
|
|
|
1031 |
}
|
1032 |
}
|
1033 |
|
1034 |
+
return $loggers_classes;
|
1035 |
+
}
|
1036 |
+
|
1037 |
+
/**
|
1038 |
+
* Returns information about all loggers classes.
|
1039 |
+
*
|
1040 |
+
* @return array
|
1041 |
+
*/
|
1042 |
+
public function get_loggers_classes_info() {
|
1043 |
+
$loggers_classes = $this->get_loggers_classes();
|
1044 |
|
1045 |
+
$loggers_classes_info = array();
|
1046 |
|
1047 |
+
if (!empty($loggers_classes)) {
|
1048 |
+
foreach (array_keys($loggers_classes) as $logger_class_name) {
|
1049 |
|
1050 |
+
if (!class_exists($logger_class_name)) continue;
|
|
|
|
|
|
|
|
|
|
|
1051 |
|
1052 |
+
$logger_id = strtolower($logger_class_name);
|
1053 |
+
$logger_class = new $logger_class_name();
|
1054 |
+
|
1055 |
+
$loggers_classes_info[$logger_id] = array(
|
1056 |
+
'description' => $logger_class->get_description(),
|
1057 |
+
'allow_multiple' => $logger_class->is_allow_multiple(),
|
1058 |
+
'options' => $logger_class->get_options_list()
|
1059 |
+
);
|
1060 |
}
|
1061 |
}
|
1062 |
|
1063 |
+
return $loggers_classes_info;
|
1064 |
}
|
1065 |
|
1066 |
/**
|