diff --git a/changelog.txt b/changelog.txt index ee0857379..c982d22ca 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,25 @@ == Changelog == += 2.142 Sep 16 2024 +* Upd. Settings. Modal window common style updated. +* Mod. Settings. Scanner tab. Quarantine action text updated. +* Mod. Scanner. Accordion actions. Approve action is require active license now. No confirmation requested for restricted actions. +* Fix. Scanner. Accordion actions. Bulk action confirm fixed. +* Upd. Code. Security logs DTO classes implemented. +* Fix. CSS. Adaptive content. Nav wrapper flex direction. +* Fix. CSS. Adaptive content. Long description places. +* Fix. CSS. Adaptive content. Get more details clicks. +* Fix. CSS. Adaptive content. Scanner legend. +* Fix. CSS. Adaptive content. Path full description. +* Upd. SQL schema. The column "view" of spbc_auth_log table set to varchar(16). +* Fix. CSS. Adaptive content. Malware removal top settings banner adapted. +* Upd. Modal window. Support link removed from restricted actions notice. +* Upd. Auth. Open 2fa support link in new page. +* Fix. Code. Get admin email call moved. +* Fix. Security log. Parse URL. Fix for wptexturize. +* Fix. Settings. Unknown accordion description fixed. +* Fix. FSwatcher. Skip init on WP_Estimation_Form + = 2.140 Aug 19 2024 * Upd. WAR. Analysis php://input * Fix. FSWatcher. Added exclusion for NotifierForPhone. diff --git a/css/spbc-settings.min.css b/css/spbc-settings.min.css index a566666e3..2ada6679c 100644 --- a/css/spbc-settings.min.css +++ b/css/spbc-settings.min.css @@ -1 +1 @@ -.circle{border-radius:50%;align-items:center;justify-content:center;position:relative;background-color:#03A9F4;clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,50% 0,50% 50%,50% 50%)}.circle-inner{width:100%;height:100%;border-radius:50%;background:#f7f7f7;transform:scale(.7)}.circle--small{width:16px;height:16px}.circle--mid{width:30px;height:30px}.-animation--circle{animation:animation-circle 2s linear forwards}.-animation--30s{animation-duration:30s!important}.-animation--2min{animation-duration:120s!important}@keyframes animation-circle{12.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,0 0,50% 50%,50% 50%)}25%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 50%,0 50%,50% 50%,50% 50%)}37.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 100%,0 100%,50% 50%,50% 50%)}50%{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%,50% 100%,50% 100%,50% 100%,50% 50%,50% 50%)}62.5%{clip-path:polygon(50% 0,100% 0,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,50% 50%,50% 50%)}75%{clip-path:polygon(50% 0,100% 0,100% 50%,100% 50%,100% 50%,100% 50%,100% 50%,50% 50%,50% 50%)}87.5%{clip-path:polygon(50% 0,100% 0,100% 0,100% 0,100% 0,100% 0,100% 0,50% 50%,50% 50%)}100%{clip-path:polygon(50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 50%,50% 50%)}}#confirmation-code--resend .circle{margin-left:5px;display:inline-block;vertical-align:text-bottom}.spbc---hidden,.spbc_waf_reason{display:none}#spbcTopWarning{margin-bottom:5px}#spbcTopWarning h3{margin:10px 0 5px}#spbcTopWarning h4{margin:10px}#spbcTopWarning h4 span{margin-top:5px}#spbc_gdpr_open_modal:hover{cursor:pointer}.spbc---gray{color:gray}.spbc---red{color:red}.spbc_bold{font-weight:800}.spbc---top{z-index:9999!important}.spbc_waf_reason_title{text-decoration:underline}.spbc_waf_reason_title:hover+.spbc_waf_reason{display:inline}.spbc_warning_counter{margin:0 5px;padding:0 7px;font-size:14px;height:23px;display:inline-block;text-align:center;border-radius:3px}.spbc_sub_setting{margin-left:30px!important}.spbc_sub2_setting{margin-left:60px!important}.spbc_affiliate_shortcode{width:inherit!important;min-width:inherit!important}.spbc_warning_counter--black{color:#fff;background-color:#000}.spbc_warning_counter--red{color:#000;background-color:red}.spbc_warning_counter--orange{color:#000;background-color:orange}.spbc_warning_counter--green{color:#000;background-color:green}.spbc_highlighted{outline-offset:5px;outline-color:red;outline-width:3px!important;outline-style:solid!important}.spbc_status_icon{vertical-align:text-bottom;margin:0 5px}.spbc_progressbar_counter{position:absolute;height:22px;width:100%;left:0;top:0;text-align:center}.spbc_progressbar_counter span{vertical-align:sub;line-height:22px;font-weight:600;font-size:18px}.spbc_preloader,.spbc_preloader_button{margin-left:5px;vertical-align:text-top;display:none}.spbc_compare_file_row_wrapper,.spbc_view_file_row,.spbc_view_file_row_wrapper{line-height:19px}.ui-progressbar-value{background-image:url(../images/pbar-ani.gif)!important}.spbc_preloader{width:20px}.spbc_preloader_button{height:15px}.spbc_spinner_big{display:block;margin:40px auto}.spbc_scan_result_row td{text-align:center}.spbc_scan_result_row td:nth-child(1){text-align:left}.spbc_scan_result_row td:nth-child(2){text-align:right}.spbc_scan_result_row td:last-child button{margin-left:3px}.spbc_view_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_view_file_row_wrapper:nth-child(even){background:#ddd}.spbc_view_file_row_num{display:inline-block;width:30px;margin:0 0 0 5px;border-right:1px solid #000}.spbc_view_file_row{display:inline;margin:0 0 0 5px;font-size:1em;word-break:break-all}.spbc_compare_file_headings{text-align:center;width:100%;display:inline-block;font-weight:700}.spbc_compare_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_compare_file_row_wrapper:nth-child(even){background:#ddd}.spbc_compare_file_row_num{display:inline-block;width:20px;box-shadow:-2px 0 0 0 #000,2px 0 0 0 #000;padding:0 1%}.spbc_compare_file_row{display:inline-block;width:45%;margin:0;padding:0 1%}table.spbc_table_general{width:100%;border:0;border-spacing:0;border-collapse:collapse}table.spbc_table_general td,table.spbc_table_general th{position:relative;border:1px solid #666;padding:2px 10px}.spbcShortText{display:inline-block;width:100%}.spbcFullText,.spbcFullText-right{display:none;position:absolute;background:rgba(150,150,150,.9);padding:7px;z-index:20;color:#fff}.spbcFullText{top:-5px;border:1px solid #333;border-radius:5px}.spbcFullText-right{top:0;right:0;border:1px solid #333;border-radius:5px}.spbcFullText a{color:#fff}.spbcFullText a:hover{color:#ddd}#spbc_scan_accordion .column-primary{position:initial}#spbc_scan_accordion tbody tr{position:relative}.spbc_accordion_category_wrapper{padding:0 5px 10px;border:1px solid #d3d3d3;border-radius:3px;margin-bottom:5px}.spbc_accordion_category_header{color:#026E88;font-weight:800;margin-left:10px!important}div.pagination{margin:10px}ul.pagination{display:inline-block;margin:0}li.pagination{display:inline-block;margin-left:10px}span.current_page{font-size:1.3em;font-weight:600}.spbc_new{color:red;position:relative;font-size:10px;vertical-align:bottom;top:-8px}.spbc_wrapper_settings{margin:10px 0 0}.spbc_page_header_info_common_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:1%}.spbc_page_header_info__block_label{top:3px;left:3px;position:relative;background:#f4f4f4;border:1px solid #DDD;border-radius:3px;padding:2px 5px;font-size:10px;color:gray}.spbc_page_header_info__block_body{border:1px solid #DDD;background:#f4f4f4;padding:1%}.spbc_page_header_info__block_row{overflow-wrap:anywhere;font-size:13px}.spbc_page_header_info_left_column{width:66%}.spbc_page_header_info__state_block{width:60%}.spbc_page_header_info_right_column{width:33%}.spbc_page_header_info__about_block{width:100%;height:auto}.spbc_page_header_info__about_block__divider{padding:5px}.spbc_page_header_info__error_block{width:100%}.spbc_page_buttons_wrapper{display:flex;margin-bottom:-10px}.spbc_page_buttons_header{display:inline-block;margin-right:7px}.spbc_page_mob_info__about_block{display:none}.spbc_tabs_nav_wrapper{display:flex;background-color:#fff;margin:15px 15px 0 0;overflow-x:auto}.spbc_tab_nav{display:inline-block;margin:10px 0 0 .5em;padding:5px 10px;height:24px;font-size:14px;line-height:24px;color:#555;cursor:pointer;font-weight:400}.spbc_tab_nav--active,.spbc_tab_nav:hover{margin-bottom:-1px;border-bottom:2px solid #026E88}.spbc_tab_nav svg{stroke:#000;stroke-width:.5}.spbc_tab_nav--active{color:#026E88;font-weight:800}.spbc_tab_nav--active svg{stroke:#026E88;stroke-width:1}.spbc_tab_nav-title{margin-left:5px;width:max-content}.spbc_tabs_nav_wrapper::-webkit-scrollbar{display:none}.spbc_tab{display:none;margin:0;background-color:#fff}.spbc_tab--active{display:block}.spbc_tab_fields_group{position:relative;min-width:255px;margin:10px auto;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fdfdfd}.spbc_group_header{margin:0 0 10px;padding:10px;border-bottom:1px solid #eee}.spbc_group_header>h3{margin:0}.spbc_group_header>h3>a{color:#1d2327;text-decoration:none}.spbc_wrapper_field{margin:0 15px 15px}.spbc_long_description__show:hover{color:#aaa;cursor:pointer}.spbc_settings_description{font-size:9pt;color:#888}.spbc_settings_description select{display:inline;position:relative;transform:scale(.7);left:-50px}.spbc_tab-settings_general input[type=text]{min-width:255px;width:100%}.spbc_short_text_field input{min-width:70px!important;width:70px!important}.spbc_middle_text_field input{min-width:200px!important;width:200px!important}.spbc_long_text_field input[type=text]{min-width:200px;width:500px}.spbc_wrapper_field label{vertical-align:baseline}.spbc_wrapper_field h4{margin:10px 15px 5px}.spbc_wrapper_footer{margin:15px}#spbc_wrapper_error{margin:0;padding:5px}#spbc_wrapper_error h3,#spbc_wrapper_error h4{margin:5px}#showHideLink{display:inline-block;margin-top:5px;color:#777}.spbc__wrapper--center{margin:10px 0;text-align:center}.spbc__show_more_logs{display:none}.spbc_settings_banner{display:inline-block;margin:1em 0;vertical-align:top;text-align:center}#spbc_translate_plugin{margin-left:10px}.spbc_rate_block{border:1px dashed #666;width:400px;padding:.2em}#spbc_translate_plugin .spbc_button_rate{margin-bottom:10px}.spbc_button_rate{display:inline-block;text-align:center;vertical-align:middle;padding:12px 24px;border:1px solid #216298;border-radius:8px;background:#35a0f7;background:-webkit-gradient(linear,left top,left bottom,from(#35a0f7),to(#216298));background:-moz-linear-gradient(top,#35a0f7,#216298);background:linear-gradient(to bottom,#35a0f7,#216298);text-shadow:#153e5f 1px 1px 1px;font:normal normal bold 16px verdana;color:#fff;text-decoration:none}.spbc_button_rate:focus,.spbc_button_rate:hover{border:1px solid #297bbe;background:#40c0ff;background:-webkit-gradient(linear,left top,left bottom,from(#40c0ff),to(#2876b6));background:-moz-linear-gradient(top,#40c0ff,#2876b6);background:linear-gradient(to bottom,#40c0ff,#2876b6);color:#fff;text-decoration:none}.spbc_button_rate:active{background:#216298;background:-webkit-gradient(linear,left top,left bottom,from(#216298),to(#216298));background:-moz-linear-gradient(top,#216298,#216298);background:linear-gradient(to bottom,#216298,#216298)}#spbc_rate_plugin .spbc_button_rate:before{content:"\0000a0";display:inline-block;height:24px;width:24px;line-height:24px;margin:0 4px -6px -4px;position:relative;top:0;left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACjElEQVRIie1UTWsTURQ9dzKpofQLobQFlxqENF1JG0GE6sKuRLDtTKaBkJUIRdwpba2g9ge48gMEUUyTbrUutFmk1X6Q7kxDgi1YUSmlpsGYiTXtuy7GCYnaSRu3PczAfe/dd8695z0ecIAKsFVK0DQNLpcL8Xi8KgHZalFRNWe7uyMs2+RtkBQIjQerU/k3uVceHhmdyed/8NbWFg8OXrlXDY+020JdXf2NQMB/yuE4hHw+j5yur1df7h9QvQMXpiKRHSEECyF4cvJlQVG149VwlZ1BX58fsn1H7e29+OhMd7cEAMyM6PTMNAgfFUWrJSIAQgCAYAKIAECABACABGFt7fPPaDRqjItVqyrqG5vGAn7/kMfTBYMIyGQyeD0VMZKYweYGM2ZjpnR+eWVl8V08fnYiNP6t1Jbzc3PzbNryP38stsiKqp0uWuTz+eBqd9/s6uo02vpdPTOXxZuZDB7cfwgQGa0TIEmS7nA4PhhDkgBgdXV1FkTzRYHCtjjS4XZ3mGQmSsdEhKbGRqhqPwRz0ZOlRKImGBy/FA4F31gd8tG2tjaZmf+VUybS2tpaNpfeTMsADu+2xxRw2O12ENFftpTG6XQat26PQZIIzEA2m/1SKBSGGXhhWZmiaifezs7yfhGdnmFF1TqtuM0OksvvlzMnPZ4mq+RkMoVsNlu83ImlxDqATxUFwqHg94aGhsc9PeeuNjc372pRMpnExsZX5HI5xBZjd3aEuBsOBTcs7TGherXaa9eHIqlUioUQltYIIXhkZPT5XnjL7qXi1Wpkm6w5nccGWlpanLJNlkGQyEw1Pui6rs8tLFx+9vTJq30JlKK/3ycRCQkSFZ8Dcwszi4lwUOylgwNUxC8cBKAS7hIWzwAAAABJRU5ErkJggg==) left center no-repeat;background-size:100% 100%}.spbc_rate_block_stars{margin:1em 0}.star-icon{color:#ddd;font-size:18px;position:relative}.star-icon.full:before{color:#FDE16D;content:'\2605';position:absolute;left:0;text-shadow:0 0 2px rgba(0,0,0,.7)}.spbc_hint{color:#666}p.spbc_hint{margin:0}.spbc_hint_warning{font-size:17px;font-weight:600;text-align:center;color:#eb8f00}.spbc_auto_link,.spbc_manual_link,.spbc_manual_link_scan{font-size:13px;line-height:26px;height:28px;padding:0 10px 1px;border-width:1px;border-style:solid;-webkit-appearance:none;white-space:nowrap;display:inline-block;margin:0;cursor:pointer}.spbc_hint--link{color:#aaa;text-decoration:underline;cursor:pointer}.spbc_hint--top_right{position:relative;float:right;top:0;right:10px}.spbc_auto_link{background:#ccc;border-color:#999;-webkit-box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);color:#000;text-decoration:none;-webkit-border-radius:2px;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_auto_link:hover{color:#fff}.spbc_manual_link_scan{color:#fff;background:#026E88;border-color:#026E88;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);text-decoration:none;border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_manual_link{background:#fff;border-color:#026E88;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#026E88!important;text-decoration:none;border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_manual_link:hover,button.ct_support_link{text-decoration:underline}.spbc_page_buttons_links_basic_align{display:flex;align-items:center;justify-content:center;gap:5px}.spbc-btn-as-link{padding:0;margin:0;vertical-align:baseline;color:gray;border:0;border-bottom:1px solid;cursor:pointer}#spbc-account-email[contenteditable=true]{padding:6px;background-color:#fff;border:1px solid #ccc}.spbc_long_desc,.spbc_popup_tip--wrapper{min-width:80px;min-height:80px;padding:10px;z-index:10}.spbc_dismiss{width:20px;height:20px;border-radius:5px}.spbc-links:visited{color:#fff}.spbc_long_desc{position:absolute;background:#5a5a5a;max-width:500px;color:#fff}.spbc_long_desc p{color:#fff!important}i.animate-spin{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block;font-size:25px;line-height:20px;color:rgba(120,200,230,1);margin:25px}@keyframes spin{to{transform:rotate(359deg)}}.spbc_long_desc__angle,.spbc_long_desc__angle_top_left{width:10px;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);position:absolute;height:10px;background:#5a5a5a}.spbc_long_desc__cancel{position:absolute;top:5px;right:5px;color:rgba(255,255,255,.5)}.spbc_long_desc__cancel:hover{color:#fff}.spbc_long_desc__link,.spbc_long_desc__title{color:rgba(120,200,230,1)}.spbc_long_desc__angle{top:5px;left:-17px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__angle_top_left{top:-10px;left:-9px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__title{margin:0}.spbc_long_desc__link:hover{color:rgba(140,220,250,1)}.spbc_long_desc h4{color:#50a0be;margin:10px 0 3px}.spbc_long_desc span{margin:0 0 0 10px;display:inline-block}.spbc_long_desc img{width:300px}.spbc_popup_tip--icon---show:hover{color:#aaa;cursor:pointer}.spbc_popup_tip--wrapper{position:absolute;background:#5a5a5a;max-width:500px;color:#fff}.spbc_popup_tip--icon---cancel{position:absolute;top:0;right:5px;color:rgba(255,255,255,.5)}.spbc_popup_tip--icon---cancel:hover{color:#fff}.spbc_popup_tip--angle{position:absolute;top:5px;left:-17px;width:10px;height:10px;background:#5a5a5a;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_popup_tip--title{color:rgba(120,200,230,1);margin:0}.spbc_popup_tip--text{color:#fff!important}tr:hover .spbc_hint--wrapper{display:none}.spbc_log-wrapper{padding:5px;border:1px solid #000;width:98%;min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}.spbc_log-wrapper .panel-body{height:100%;overflow-y:auto}.spbc_log-line{margin:0;padding:0 5px}.spbc_log-line:nth-child(odd){background:#d3d3d3}.spbc_log-block_header{margin:10px 0}.spbc_log-input--checkbox,.spbc_log-label--checkbox{width:auto}button.ct_support_link{border:none;background:0 0;color:#666;cursor:pointer}#spbc-modal-content{text-align:center}#spbc-modal-content>*{display:block;width:100%}.spbc-modal-header{font-size:15px;font-weight:500}.spbc-modal-buttons-block{display:flex!important;gap:10px;justify-content:center}.spbc-modal-button{width:40%;height:35px;font-size:14px;font-weight:500;border:1px solid #60656b;background:#fff;border-radius:5px;cursor:pointer}.spbc-modal-button:hover{background:#2ea2cc;color:#fff;border:1px solid #2ea2cc}.spbc-popup-msg{width:98%;height:15px;text-align:center;padding:4px;border-radius:7px;position:relative;top:0;right:0;bottom:0;left:0;margin:auto}.popup--green{background:#DFD;color:#060;border:1px solid #060}.popup--red{background:#FDD;color:#600;border:1px solid #600}#spbcscan-results-log-module{min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}#spbcscan-results-log-module .panel-body{height:100%;overflow-y:auto}#spbcscan-scanner-caption h4{margin:10px 0;font-size:14px}#spbcscan-results-log-caption p{font-size:13px;margin:0 0 6px}#spbcscan-scanner-caption{display:flex;flex-wrap:wrap;flex-direction:row-reverse}#spbcscan-scanner-caption .column:first-child{width:75%;flex:0 0 75%}#spbcscan-scanner-caption .column:last-child{width:25%;flex:0 0 25%;padding-right:10px;box-sizing:border-box}.spbc-scan-log-title{color:#1d2327;font-size:1.3em;margin:0 0 15px!important;font-weight:600}.spbc--status{position:relative;padding-left:26px}.spbc--marker-green::before,.spbc--marker-red::before,.spbc--marker-yellow::before{content:'';position:absolute;width:10px;height:10px;border-radius:50%;left:10px;top:4px}.spbc--marker-green::before{background:#1dda23}.spbc--marker-yellow::before{background:#ffb000}.spbc--marker-red::before{background:#d63638}button#spbc_setting_get_key_auto:disabled{background:#ccc;color:#111;text-decoration:none}.spbc_critical_updates-names{text-transform:uppercase;font-weight:500}.spbc_critical_updates-h_names{font-size:15px}.spbc_critical_updates-legend{border:1px solid #eee;padding:0 0 0 10px;margin:5px 0 0;color:#666}.spbc_critical_updates-no_vulnerabilities{color:green;font-size:15px;font-weight:500;margin:5px 0 0 30px}.spbct_notice{display:flex;justify-content:space-between}.spbct_notice-dismiss{position:relative;top:0;right:1px;border:none;margin:0;padding:9px;background:0 0;color:#787c82;cursor:pointer}.spbc_accordion_header_caption__update_status{display:inline-flex;flex-direction:row;flex-wrap:nowrap;width:45%;align-items:flex-end;justify-content:flex-end}.spbc_accordion_header_caption__updated{display:inline;color:#FFF;font-weight:700}.spbc_setting__textarea{width:400px;height:150px} \ No newline at end of file +.circle{border-radius:50%;align-items:center;justify-content:center;position:relative;background-color:#03A9F4;clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,50% 0,50% 50%,50% 50%)}.circle-inner{width:100%;height:100%;border-radius:50%;background:#f7f7f7;transform:scale(.7)}.circle--small{width:16px;height:16px}.circle--mid{width:30px;height:30px}.-animation--circle{animation:animation-circle 2s linear forwards}.-animation--30s{animation-duration:30s!important}.-animation--2min{animation-duration:120s!important}@keyframes animation-circle{12.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 0,0 0,50% 50%,50% 50%)}25%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 50%,0 50%,50% 50%,50% 50%)}37.5%{clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 100%,0 100%,0 100%,50% 50%,50% 50%)}50%{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%,50% 100%,50% 100%,50% 100%,50% 50%,50% 50%)}62.5%{clip-path:polygon(50% 0,100% 0,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,50% 50%,50% 50%)}75%{clip-path:polygon(50% 0,100% 0,100% 50%,100% 50%,100% 50%,100% 50%,100% 50%,50% 50%,50% 50%)}87.5%{clip-path:polygon(50% 0,100% 0,100% 0,100% 0,100% 0,100% 0,100% 0,50% 50%,50% 50%)}100%{clip-path:polygon(50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 0,50% 50%,50% 50%)}}#confirmation-code--resend .circle{margin-left:5px;display:inline-block;vertical-align:text-bottom}.spbc---hidden,.spbc_waf_reason{display:none}#spbcTopWarning{margin-bottom:5px}#spbcTopWarning h3{margin:10px 0 5px}#spbcTopWarning h4{margin:10px}#spbcTopWarning h4 span{margin-top:5px}#spbc_gdpr_open_modal:hover{cursor:pointer}.spbc---gray{color:gray}.spbc---red{color:red}.spbc_bold{font-weight:800}.spbc---top{z-index:9999!important}.spbc_waf_reason_title{text-decoration:underline}.spbc_waf_reason_title:hover+.spbc_waf_reason{display:inline}.spbc_warning_counter{margin:0 5px;padding:0 7px;font-size:14px;height:23px;display:inline-block;text-align:center;border-radius:3px}.spbc_sub_setting{margin-left:30px!important}.spbc_sub2_setting{margin-left:60px!important}.spbc_affiliate_shortcode{width:inherit!important;min-width:inherit!important}.spbc_warning_counter--black{color:#fff;background-color:#000}.spbc_warning_counter--red{color:#000;background-color:red}.spbc_warning_counter--orange{color:#000;background-color:orange}.spbc_warning_counter--green{color:#000;background-color:green}.spbc_highlighted{outline-offset:5px;outline-color:red;outline-width:3px!important;outline-style:solid!important}.spbc_status_icon{vertical-align:text-bottom;margin:0 5px}.spbc_progressbar_counter{position:absolute;height:22px;width:100%;left:0;top:0;text-align:center}.spbc_progressbar_counter span{vertical-align:sub;line-height:22px;font-weight:600;font-size:18px}.spbc_preloader,.spbc_preloader_button{margin-left:5px;vertical-align:text-top;display:none}.spbc_compare_file_row_wrapper,.spbc_view_file_row,.spbc_view_file_row_wrapper{line-height:19px}.ui-progressbar-value{background-image:url(../images/pbar-ani.gif)!important}.spbc_preloader{width:20px}.spbc_preloader_button{height:15px}.spbc_spinner_big{display:block;margin:40px auto}.spbc_scan_result_row td{text-align:center}.spbc_scan_result_row td:nth-child(1){text-align:left}.spbc_scan_result_row td:nth-child(2){text-align:right}.spbc_scan_result_row td:last-child button{margin-left:3px}.spbc_view_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_view_file_row_wrapper:nth-child(even){background:#ddd}.spbc_view_file_row_num{display:inline-block;width:30px;margin:0 0 0 5px;border-right:1px solid #000}.spbc_view_file_row{display:inline;margin:0 0 0 5px;font-size:1em;word-break:break-all}.spbc_compare_file_headings{text-align:center;width:100%;display:inline-block;font-weight:700}.spbc_compare_file_row_wrapper:nth-child(odd){background:#ccc}.spbc_compare_file_row_wrapper:nth-child(even){background:#ddd}.spbc_compare_file_row_num{display:inline-block;width:20px;box-shadow:-2px 0 0 0 #000,2px 0 0 0 #000;padding:0 1%}.spbc_compare_file_row{display:inline-block;width:45%;margin:0;padding:0 1%}table.spbc_table_general{width:100%;border:0;border-spacing:0;border-collapse:collapse}table.spbc_table_general td,table.spbc_table_general th{position:relative;border:1px solid #666;padding:2px 10px}.spbcShortText{display:inline-block;width:100%}.spbcFullText,.spbcFullText-right{display:none;position:absolute;background:rgba(150,150,150,.9);padding:7px;z-index:20;color:#fff}.spbcFullText{top:-5px;border:1px solid #333;border-radius:5px}.spbcFullText-right{top:0;right:0;border:1px solid #333;border-radius:5px}.spbcFullText a{color:#fff}.spbcFullText a:hover{color:#ddd}#spbc_scan_accordion .column-primary{position:initial}#spbc_scan_accordion tbody tr{position:relative}.spbc_accordion_category_wrapper{padding:0 5px 10px;border:1px solid #d3d3d3;border-radius:3px;margin-bottom:5px}.spbc_accordion_category_header{color:#026E88;font-weight:800;margin-left:10px!important}div.pagination{margin:10px}ul.pagination{display:inline-block;margin:0}li.pagination{display:inline-block;margin-left:10px}span.current_page{font-size:1.3em;font-weight:600}.spbc_new{color:red;position:relative;font-size:10px;vertical-align:bottom;top:-8px}.spbc-btn-as-link,.spbc_wrapper_field label{vertical-align:baseline}.spbc_wrapper_settings{margin:10px 0 0}.spbc_page_header_info_common_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:1%}.spbc_page_header_info__block_label{top:3px;left:3px;position:relative;background:#f4f4f4;border:1px solid #DDD;border-radius:3px;padding:2px 5px;font-size:10px;color:gray}.spbc_page_header_info__block_body{border:1px solid #DDD;background:#f4f4f4;padding:1%}.spbc_page_header_info__block_row{overflow-wrap:anywhere;font-size:13px}.spbc_page_header_info_left_column{width:66%}.spbc_page_header_info__state_block{width:60%}.spbc_page_header_info_right_column{width:33%}.spbc_page_header_info__about_block{width:100%;height:auto}.spbc_page_header_info__about_block__divider{padding:5px}.spbc_page_header_info__error_block{width:100%}.spbc_page_buttons_wrapper{display:flex;margin-bottom:-10px}.spbc_page_buttons_header{display:inline-block;margin-right:7px}.spbc_page_mob_info__about_block{display:none}.spbc_tabs_nav_wrapper{display:flex;background-color:#fff;margin:15px 15px 0 0;overflow-x:auto}@media screen and (max-width:1200px){.spbc_tabs_nav_wrapper{flex-direction:column}}.spbc_tab_nav{display:inline-block;margin:10px 0 0 .5em;padding:5px 10px;height:24px;font-size:14px;line-height:24px;color:#555;cursor:pointer;font-weight:400}.spbc_tab_nav--active,.spbc_tab_nav:hover{margin-bottom:-1px;border-bottom:2px solid #026E88}.spbc_tab_nav svg{stroke:#000;stroke-width:.5}.spbc_tab_nav--active{color:#026E88;font-weight:800}.spbc_tab_nav--active svg{stroke:#026E88;stroke-width:1}.spbc_tab_nav-title{margin-left:5px;width:max-content}.spbc_tabs_nav_wrapper::-webkit-scrollbar{display:none}.spbc_tab{display:none;margin:0;background-color:#fff}.spbc_tab--active{display:block}.spbc_tab_fields_group{position:relative;min-width:255px;margin:10px auto;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fdfdfd}.spbc_group_header{margin:0 0 10px;padding:10px;border-bottom:1px solid #eee}.spbc_group_header>h3{margin:0}.spbc_group_header>h3>a{color:#1d2327;text-decoration:none}.spbc_wrapper_field{margin:0 15px 15px}.spbc_long_description__show:hover{color:#aaa;cursor:pointer}.spbc_settings_description{font-size:9pt;color:#888}.spbc_settings_description select{display:inline;position:relative;transform:scale(.7);left:-50px}.spbc_tab-settings_general input[type=text]{min-width:255px;width:100%}.spbc_short_text_field input{min-width:70px!important;width:70px!important}.spbc_middle_text_field input{min-width:200px!important;width:200px!important}.spbc_long_text_field input[type=text]{min-width:200px;width:500px}.spbc_wrapper_field h4{margin:10px 15px 5px}.spbc_wrapper_footer{margin:15px}#spbc_wrapper_error{margin:0;padding:5px}#spbc_wrapper_error h3,#spbc_wrapper_error h4{margin:5px}#showHideLink{display:inline-block;margin-top:5px;color:#777}.spbc__wrapper--center{margin:10px 0;text-align:center}.spbc__show_more_logs{display:none}.spbc_settings_banner{display:inline-block;margin:1em 0;vertical-align:top;text-align:center}#spbc_translate_plugin{margin-left:10px}.spbc_rate_block{border:1px dashed #666;width:400px;padding:.2em}#spbc_translate_plugin .spbc_button_rate{margin-bottom:10px}.spbc_button_rate{display:inline-block;text-align:center;vertical-align:middle;padding:12px 24px;border:1px solid #216298;border-radius:8px;background:#35a0f7;background:-webkit-gradient(linear,left top,left bottom,from(#35a0f7),to(#216298));background:-moz-linear-gradient(top,#35a0f7,#216298);background:linear-gradient(to bottom,#35a0f7,#216298);text-shadow:#153e5f 1px 1px 1px;font:normal normal bold 16px verdana;color:#fff;text-decoration:none}.spbc_button_rate:focus,.spbc_button_rate:hover{border:1px solid #297bbe;background:#40c0ff;background:-webkit-gradient(linear,left top,left bottom,from(#40c0ff),to(#2876b6));background:-moz-linear-gradient(top,#40c0ff,#2876b6);background:linear-gradient(to bottom,#40c0ff,#2876b6);color:#fff;text-decoration:none}.spbc_button_rate:active{background:#216298;background:-webkit-gradient(linear,left top,left bottom,from(#216298),to(#216298));background:-moz-linear-gradient(top,#216298,#216298);background:linear-gradient(to bottom,#216298,#216298)}#spbc_rate_plugin .spbc_button_rate:before{content:"\0000a0";display:inline-block;height:24px;width:24px;line-height:24px;margin:0 4px -6px -4px;position:relative;top:0;left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAACjElEQVRIie1UTWsTURQ9dzKpofQLobQFlxqENF1JG0GE6sKuRLDtTKaBkJUIRdwpba2g9ge48gMEUUyTbrUutFmk1X6Q7kxDgi1YUSmlpsGYiTXtuy7GCYnaSRu3PczAfe/dd8695z0ecIAKsFVK0DQNLpcL8Xi8KgHZalFRNWe7uyMs2+RtkBQIjQerU/k3uVceHhmdyed/8NbWFg8OXrlXDY+020JdXf2NQMB/yuE4hHw+j5yur1df7h9QvQMXpiKRHSEECyF4cvJlQVG149VwlZ1BX58fsn1H7e29+OhMd7cEAMyM6PTMNAgfFUWrJSIAQgCAYAKIAECABACABGFt7fPPaDRqjItVqyrqG5vGAn7/kMfTBYMIyGQyeD0VMZKYweYGM2ZjpnR+eWVl8V08fnYiNP6t1Jbzc3PzbNryP38stsiKqp0uWuTz+eBqd9/s6uo02vpdPTOXxZuZDB7cfwgQGa0TIEmS7nA4PhhDkgBgdXV1FkTzRYHCtjjS4XZ3mGQmSsdEhKbGRqhqPwRz0ZOlRKImGBy/FA4F31gd8tG2tjaZmf+VUybS2tpaNpfeTMsADu+2xxRw2O12ENFftpTG6XQat26PQZIIzEA2m/1SKBSGGXhhWZmiaifezs7yfhGdnmFF1TqtuM0OksvvlzMnPZ4mq+RkMoVsNlu83ImlxDqATxUFwqHg94aGhsc9PeeuNjc372pRMpnExsZX5HI5xBZjd3aEuBsOBTcs7TGherXaa9eHIqlUioUQltYIIXhkZPT5XnjL7qXi1Wpkm6w5nccGWlpanLJNlkGQyEw1Pui6rs8tLFx+9vTJq30JlKK/3ycRCQkSFZ8Dcwszi4lwUOylgwNUxC8cBKAS7hIWzwAAAABJRU5ErkJggg==) left center no-repeat;background-size:100% 100%}.spbc_rate_block_stars{margin:1em 0}.star-icon{color:#ddd;font-size:18px;position:relative}.star-icon.full:before{color:#FDE16D;content:'\2605';position:absolute;left:0;text-shadow:0 0 2px rgba(0,0,0,.7)}.spbc_hint{color:#666}p.spbc_hint{margin:0}.spbc_hint_warning{font-size:17px;font-weight:600;text-align:center;color:#eb8f00}.spbc_hint--link{color:#aaa;text-decoration:underline;cursor:pointer}.spbc_hint--top_right{position:relative;float:right;top:0;right:10px}.spbc_auto_link{background:#ccc;border-color:#999;-webkit-box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(200,200,200,.5),0 1px 0 rgba(0,0,0,.15);color:#000;display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:2px;border-radius:2px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_manual_link,.spbc_manual_link_scan{border-color:#026E88;display:inline-block;font-size:13px;line-height:26px;height:28px;padding:0 10px 1px;border-width:1px;border-style:solid;-webkit-appearance:none;white-space:nowrap;margin:0;text-decoration:none;cursor:pointer}.spbc_auto_link:hover{color:#fff}.spbc_manual_link_scan{color:#fff;background:#026E88;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_manual_link{background:#fff;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#026E88!important;border-radius:3px;-webkit-border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.spbc_manual_link:hover,button.ct_support_link{text-decoration:underline}.spbc_page_buttons_links_basic_align{display:flex;align-items:center;justify-content:center;gap:5px}.spbc-btn-as-link{padding:0;margin:0;color:gray;border:0;border-bottom:1px solid;cursor:pointer}#spbc-account-email[contenteditable=true]{padding:6px;background-color:#fff;border:1px solid #ccc}.spbc_long_desc,.spbc_popup_tip--wrapper{min-width:80px;min-height:80px;max-width:500px;padding:10px;z-index:10}.spbc_dismiss{width:20px;height:20px;border-radius:5px}.spbc-links:visited{color:#fff}.spbc_long_desc{position:absolute;background:#5a5a5a;color:#fff}@media screen and (max-width:900px){.spbc_long_desc{left:inherit!important}.spbc_long_desc__angle_top_left{display:none}}.spbc_long_desc p{color:#fff!important}i.animate-spin{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block;font-size:25px;line-height:20px;color:rgba(120,200,230,1);margin:25px}@keyframes spin{to{transform:rotate(359deg)}}.spbc_long_desc__angle,.spbc_long_desc__angle_top_left{-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);position:absolute;width:10px;background:#5a5a5a}.spbc_long_desc__cancel{position:absolute;top:5px;right:5px;color:rgba(255,255,255,.5)}.spbc_long_desc__cancel:hover{color:#fff}.spbc_long_desc__link,.spbc_long_desc__title{color:rgba(120,200,230,1)}.spbc_long_desc__angle{top:5px;left:-17px;height:10px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__angle_top_left{top:-10px;left:-9px;height:10px;transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_long_desc__title{margin:0}.spbc_long_desc__link:hover{color:rgba(140,220,250,1)}.spbc_long_desc h4{color:#50a0be;margin:10px 0 3px}.spbc_long_desc span{margin:0 0 0 10px;display:inline-block}.spbc_long_desc img{width:300px}.spbc_popup_tip--icon---show:hover{color:#aaa;cursor:pointer}.spbc_popup_tip--wrapper{position:absolute;background:#5a5a5a;color:#fff}.spbc_popup_tip--icon---cancel{position:absolute;top:0;right:5px;color:rgba(255,255,255,.5)}.spbc_popup_tip--icon---cancel:hover{color:#fff}.spbc_popup_tip--angle{position:absolute;top:5px;left:-17px;width:10px;height:10px;background:#5a5a5a;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.spbc_popup_tip--title{color:rgba(120,200,230,1);margin:0}.spbc_popup_tip--text{color:#fff!important}tr:hover .spbc_hint--wrapper{display:none}.spbc_log-wrapper{padding:5px;border:1px solid #000;width:98%;min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}.spbc_log-wrapper .panel-body{height:100%;overflow-y:auto}.spbc_log-line{margin:0;padding:0 5px}.spbc_log-line:nth-child(odd){background:#d3d3d3}.spbc_log-block_header{margin:10px 0}.spbc_log-input--checkbox,.spbc_log-label--checkbox{width:auto}button.ct_support_link{border:none;background:0 0;color:#666;cursor:pointer}#spbc-modal-content{text-align:center}#spbc-modal-content>*{display:block;width:100%}.spbc-modal-header{font-size:15px;font-weight:500}.spbc-modal-buttons-block{display:flex!important;gap:10px;justify-content:center}.spbc-modal-button{width:40%;height:35px;font-size:14px;font-weight:500;border:1px solid #60656b;background:#fff;border-radius:5px;cursor:pointer}.spbc-modal-button:hover{background:#2ea2cc;color:#fff;border:1px solid #2ea2cc}.spbc-modal-file_path{color:#026E88}.spbc-modal-file_path_wrapper{margin:4% 0 1%;padding:5px;border:1px solid #F5F5FD;border-radius:4px}.spbc-popup-msg{width:98%;height:15px;text-align:center;padding:4px;border-radius:7px;position:relative;top:0;right:0;bottom:0;left:0;margin:auto}.popup--green{background:#DFD;color:#060;border:1px solid #060}.popup--red{background:#FDD;color:#600;border:1px solid #600}#spbcscan-results-log-module{min-height:300px;height:300px;border-bottom:5px dashed #5a5a5a}#spbcscan-results-log-module .panel-body{height:100%;overflow-y:auto}#spbcscan-scanner-caption h4{margin:10px 0;font-size:14px}#spbcscan-results-log-caption p{font-size:13px;margin:0 0 6px}#spbcscan-scanner-caption{display:flex;flex-wrap:wrap;flex-direction:row-reverse}#spbcscan-scanner-caption .column:first-child{width:75%;flex:0 0 75%}#spbcscan-scanner-caption .column:last-child{width:25%;flex:0 0 25%;padding-right:10px;box-sizing:border-box}.spbc-scan-log-title{color:#1d2327;font-size:1.3em;margin:0 0 15px!important;font-weight:600}.spbc--status{position:relative;padding-left:26px}.spbc--marker-green::before,.spbc--marker-red::before,.spbc--marker-yellow::before{content:'';position:absolute;width:10px;height:10px;border-radius:50%;left:10px;top:4px}.spbc--marker-green::before{background:#1dda23}.spbc--marker-yellow::before{background:#ffb000}.spbc--marker-red::before{background:#d63638}button#spbc_setting_get_key_auto:disabled{background:#ccc;color:#111;text-decoration:none}.spbc_critical_updates-names{text-transform:uppercase;font-weight:500}.spbc_critical_updates-h_names{font-size:15px}.spbc_critical_updates-legend{border:1px solid #eee;padding:0 0 0 10px;margin:5px 0 0;color:#666}.spbc_critical_updates-no_vulnerabilities{color:green;font-size:15px;font-weight:500;margin:5px 0 0 30px}.spbct_notice{display:flex;justify-content:space-between}.spbct_notice-dismiss{position:relative;top:0;right:1px;border:none;margin:0;padding:9px;background:0 0;color:#787c82;cursor:pointer}.spbc_accordion_header_caption__update_status{display:inline-flex;flex-direction:row;flex-wrap:nowrap;width:45%;align-items:flex-end;justify-content:flex-end}.spbc_accordion_header_caption__updated{display:inline;color:#FFF;font-weight:700}.spbc_setting__textarea{width:400px;height:150px} \ No newline at end of file diff --git a/css/spbc-table.min.css b/css/spbc-table.min.css index fa95c1620..dc921d243 100644 --- a/css/spbc-table.min.css +++ b/css/spbc-table.min.css @@ -1 +1,13 @@ -#spbc_tbl__scanner_frontend_malware th,tbody td{position:relative}[disabled]:hover{cursor:not-allowed}.tbl-width--50px{width:50px}.tbl-width--100px{width:100px}.tbl-width--sma{width:7em}.tbl-widtqh--mid{width:6em}.tbl-min_width--big{width:12em}tr .row-actions{left:0}.tbl-row_action:hover{cursor:pointer;text-decoration:underline}tr .row-actions span{color:gray}tr:hover .row-actions span.tbl-row_action{color:#0073aa}tr:hover .row-actions span.tbl-row_action--delete,tr:hover .row-actions span.tbl-row_action--replace{color:#a00}tr:hover .row-actions span.tbl-row_action--approve{color:#0a0}.tbl-row_action--hide{color:gray}.tbl-sorting_indicator{margin-left:10px;visibility:hidden}.tbl-sorting_indicator--sorted{color:rgba(0,0,0,.6);visibility:visible}.tbl-column-sortable:hover{cursor:pointer}.tbl-column-sortable:hover .tbl-sorting_indicator{visibility:visible;color:rgba(0,0,0,1)}.spbc_hint--icon{color:#999}.spbc_hint--icon:hover{color:#000}.spbc_hint--icon:hover+.spbc_hint--text{display:block}.spbc_hint--text{display:none;color:#999}.tbl-button{display:inline-block;line-height:20px;height:30px;margin:0;padding:0 10px 1px;cursor:pointer;border:1px solid #ccc;border-radius:3px;color:#555;background:#f7f7f7;vertical-align:top}.tbl-button---white_blue{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff}.tbl-select{padding:2px;line-height:20px!important;height:25px!important}.tbl-preloader--small{display:none;width:15px;height:15px;margin:0 5px;vertical-align:middle}.tbl-preloader--tiny{display:none;width:10px;height:10px;margin:0 5px}.tbl-preloader--in_button{margin:0 0 0 8px}.tbl-bulk_actions--wrapper{display:inline-block;margin:5px 0}.tbl-bulk_actions--apply,.tbl-pagination--button,.tbl-pagination--total{margin:0 5px}.tbl-pagination--wrapper{display:inline-block;padding:5px 0;vertical-align:middle}.tbl-pagination--total{vertical-align:baseline}.tbl-pagination--curr_page{width:36px;padding:3px 5px;font-size:13px;text-align:center}@media screen and (max-width:782px){#spbc_settings_form .wp-list-table,#spbc_settings_form .wp-list-table thead,tbody,td,tr{display:block}#spbc_settings_form .wp-list-table thead tr{position:absolute;top:-9999px;left:-9999px}#spbc_settings_form .wp-list-table tr{margin:0 0 1rem}#spbc_settings_form .wp-list-table td{display:block;position:relative;height:100%;padding:10px 0 10px 35%}#spbc_settings_form .wp-list-table tbody td:before{content:attr(data-before)!important;position:absolute;left:10px}#spbc_settings_form .spbcShortTextBlock{width:100%}#spbc_settings_form .wp-list-table tbody .mob_entries{display:none}#spbc_settings_form .wp-list-table tbody .mob_table_active{display:block}.tbl-pagination--wrapper input[type=text]{min-height:30px;height:auto;padding:0 10px}} \ No newline at end of file +#spbc_tbl__scanner_frontend_malware th,tbody td{position:relative}[disabled]:hover{cursor:not-allowed}.tbl-width--50px{width:50px}.tbl-width--100px{width:100px}.tbl-width--sma{width:7em}.tbl-widtqh--mid{width:6em}.tbl-min_width--big{width:12em}tr .row-actions{left:0}.tbl-row_action:hover{cursor:pointer;text-decoration:underline}tr .row-actions span{color:gray}tr:hover .row-actions span.tbl-row_action{color:#0073aa}tr:hover .row-actions span.tbl-row_action--delete,tr:hover .row-actions span.tbl-row_action--replace{color:#a00}tr:hover .row-actions span.tbl-row_action--approve{color:#0a0}.tbl-row_action--hide{color:gray}.tbl-sorting_indicator{margin-left:10px;visibility:hidden}.tbl-sorting_indicator--sorted{color:rgba(0,0,0,.6);visibility:visible}.tbl-column-sortable:hover{cursor:pointer}.tbl-column-sortable:hover .tbl-sorting_indicator{visibility:visible;color:rgba(0,0,0,1)}.spbc_hint--icon{color:#999}.spbc_hint--icon:hover{color:#000}.spbc_hint--icon:hover+.spbc_hint--text{display:block}.spbc_hint--text{display:none;color:#999}.tbl-button{display:inline-block;line-height:20px;height:30px;margin:0;padding:0 10px 1px;cursor:pointer;border:1px solid #ccc;border-radius:3px;color:#555;background:#f7f7f7;vertical-align:top}.tbl-button---white_blue{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff}.tbl-select{padding:2px;line-height:20px!important;height:25px!important;min-height:30px!important}.tbl-preloader--small{display:none;width:15px;height:15px;margin:0 5px;vertical-align:middle}.tbl-preloader--tiny{display:none;width:10px;height:10px;margin:0 5px}.tbl-preloader--in_button{margin:0 0 0 8px}.tbl-bulk_actions--wrapper{display:inline-block;margin:5px 0}.tbl-bulk_actions--apply,.tbl-pagination--button,.tbl-pagination--total{margin:0 5px}.tbl-pagination--wrapper{display:inline-block;padding:5px 0;vertical-align:middle}.tbl-pagination--total{vertical-align:baseline}.tbl-pagination--curr_page{width:36px;padding:3px 5px;font-size:13px;text-align:center}#spbc_scan_accordion_tab_outbound_links,#spbc_scan_accordion_tab_unsafe_permissions{@media screen and (max-width: 782px) { + .toggle-row { + top: 5px !important; + } + };}#spbc_scan_accordion_tab_files_listing,#spbc_tab-security_log,#spbc_tab-traffic_control{@media screen and (max-width: 782px) { + .toggle-row { + top: 12px !important; + left: 30px !important; + } + .toggle-row::after { + content: ""; + } + };}@media screen and (max-width:782px){#spbc_settings_form .wp-list-table,#spbc_settings_form .wp-list-table thead,tbody,td,tr{display:block}#spbc_settings_form .wp-list-table thead tr{position:absolute;top:-9999px;left:-9999px}#spbc_settings_form .wp-list-table tr{margin:0 0 1rem}#spbc_settings_form .wp-list-table td{display:block;position:relative;height:100%;padding:10px 0 10px 35%}#spbc_settings_form .wp-list-table tbody td:before{content:attr(data-before)!important;position:absolute;left:10px}#spbc_settings_form .spbcShortTextBlock{width:100%}#spbc_settings_form .wp-list-table tbody .mob_entries{display:none}#spbc_settings_form .wp-list-table tbody .mob_table_active{display:block}.tbl-pagination--wrapper input[type=text]{min-height:30px;height:auto;padding:0 10px}#spbc_scan_accordion_tab_frontend_malware .wp-list-table tbody td:before{content:attr(data-defore-no-code)!important}.tbl-bulk_actions--apply{width:100px;font-size:smaller!important;line-height:normal}.path{padding-left:15%!important}.toggle-row{top:-20px!important}.toggle-row::after{content:"Details";left:-34px;position:relative;top:-14px;color:#50575e;text-decoration:underline}#spbcscan-scanner-caption{flex-direction:column}#spbcscan-scanner-caption .column:last-child{width:100%}.spbc_hide_table_cell_desc{max-width:70%}.spbct_notice-found_critical_files{flex-direction:column}.spbct_notice-found_critical_files div{text-align:center;width:-webkit-fill-available}.spbct_notice-found_critical_files button::before{position:relative}.spbct_notice-found_critical_files button{display:flex;justify-content:center;margin-top:-10px}.spbct_notice-found_critical_files button .screen-reader-text{clip:unset;clip-path:unset;position:unset;display:contents;font-size:small}} \ No newline at end of file diff --git a/css/src/spbc-settings-media.css b/css/src/spbc-settings-media.css index 211f18e2f..535f847ca 100644 --- a/css/src/spbc-settings-media.css +++ b/css/src/spbc-settings-media.css @@ -1,6 +1,6 @@ @media screen and (max-width: 782px) { .spbc_page_header_info_left_column, - .spbc_page_header_info_right_column, + .spbc_page_header_info_right_column, .spbc_page_header_info__state_block, .spbc_manual_link { width: 100%; @@ -15,10 +15,6 @@ gap: 10px; } - .spbc_tabs_nav_wrapper { - - } - .spbc_page_mob_info__about_block { display: block; } @@ -39,4 +35,4 @@ .wp-list-table tfoot { display: none; } -} \ No newline at end of file +} diff --git a/css/src/spbc-settings.css b/css/src/spbc-settings.css index 4fe4be047..15f40b574 100644 --- a/css/src/spbc-settings.css +++ b/css/src/spbc-settings.css @@ -305,6 +305,12 @@ div.pagination{ margin: 15px 15px 0px 0px; overflow-x: auto; } + +@media screen and (max-width: 1200px) { + .spbc_tabs_nav_wrapper { + flex-direction: column; + } +} .spbc_tab_nav{ display: inline-block; margin: 10px 0 0 .5em; @@ -654,6 +660,15 @@ p.spbc_hint { margin: 0px; } color: white; z-index: 10; } + + @media screen and (max-width: 900px) { + .spbc_long_desc { + left: inherit !important; + } + .spbc_long_desc__angle_top_left { + display: none; + } + } .spbc_long_desc p{ color: white !important; } @@ -846,6 +861,17 @@ button.ct_support_link{ border: 1px solid #2ea2cc; } +.spbc-modal-file_path { + color:#026E88; +} + +.spbc-modal-file_path_wrapper { + margin: 4% 0 1% 0; + padding: 5px; + border: 1px solid #F5F5FD; + border-radius: 4px; +} + .spbc-popup-msg{ width: 98%; height: 15px; @@ -1010,4 +1036,4 @@ button#spbc_setting_get_key_auto:disabled { .spbc_setting__textarea { width: 400px; height: 150px; -} \ No newline at end of file +} diff --git a/css/src/spbc-table.css b/css/src/spbc-table.css index 0a99df70b..0a15dc411 100644 --- a/css/src/spbc-table.css +++ b/css/src/spbc-table.css @@ -59,6 +59,7 @@ tr:hover .row-actions span.tbl-row_action--approve{color: #0a0;} padding: 2px; line-height: 20px !important; height: 25px !important; + min-height: 30px !important; } .tbl-preloader--small{display: none; width: 15px; height: 15px; margin: 0 5px; vertical-align: middle;} .tbl-preloader--tiny {display: none; width: 10px; height: 10px; margin: 0 5px;} @@ -67,7 +68,6 @@ tr:hover .row-actions span.tbl-row_action--approve{color: #0a0;} .tbl-bulk_actions--wrapper{display: inline-block; margin: 5px 0 5px;} .tbl-bulk_actions--apply{margin: 0 5px;} - .tbl-pagination--wrapper{display: inline-block; padding: 5px 0; vertical-align: middle;} .tbl-pagination--total{vertical-align: baseline; margin: 0 5px;} .tbl-pagination--curr_page{ @@ -83,8 +83,27 @@ tr:hover .row-actions span.tbl-row_action--approve{color: #0a0;} position: relative; } +#spbc_scan_accordion_tab_unsafe_permissions, #spbc_scan_accordion_tab_outbound_links { + @media screen and (max-width: 782px) { + .toggle-row { + top: 5px !important; + } + } +} +#spbc_scan_accordion_tab_files_listing, #spbc_tab-traffic_control, #spbc_tab-security_log { + @media screen and (max-width: 782px) { + .toggle-row { + top: 12px !important; + left: 30px !important; + } + .toggle-row::after { + content: ""; + } + } +} + @media screen and (max-width: 782px) { - #spbc_settings_form .wp-list-table { + #spbc_settings_form .wp-list-table { display: block; } #spbc_settings_form .wp-list-table thead, tbody, td, tr { @@ -104,11 +123,13 @@ tr:hover .row-actions span.tbl-row_action--approve{color: #0a0;} height: 100%; padding: 10px 0 10px 35%; } + #spbc_settings_form .wp-list-table tbody td:before { content: attr(data-before) !important; position: absolute; left: 10px; } + #spbc_settings_form .spbcShortTextBlock { width: 100%; } @@ -125,4 +146,68 @@ tr:hover .row-actions span.tbl-row_action--approve{color: #0a0;} height: auto; padding: 0 10px; } -} \ No newline at end of file + + #spbc_scan_accordion_tab_frontend_malware .wp-list-table tbody td:before { + content: attr(data-defore-no-code) !important; + } + + .tbl-bulk_actions--apply { + width: 100px; + font-size: smaller !important; + line-height: normal; + } + /*.row-actions {*/ + /* scale: 90%;*/ + /*}*/ + .path { + padding-left: 15% !important; + } + .toggle-row { + top: -20px !important; + } + .toggle-row::after { + content: "Details"; + left: -34px; + position: relative; + top: -14px; + color: #50575e; + text-decoration: underline; + } + + #spbcscan-scanner-caption { + flex-direction: column; + } + #spbcscan-scanner-caption .column:last-child { + width: 100%; + } + .spbc_hide_table_cell_desc { + max-width: 70%; + } + + .spbct_notice-found_critical_files { + flex-direction: column; + } + + .spbct_notice-found_critical_files div{ + text-align: center; + width: -webkit-fill-available; + } + + .spbct_notice-found_critical_files button::before{ + position:relative; + } + + .spbct_notice-found_critical_files button{ + display:flex; + justify-content: center; + margin-top: -10px; + } + + .spbct_notice-found_critical_files button .screen-reader-text{ + clip: unset; + clip-path: unset; + position: unset; + display: contents; + font-size: small; + } +} diff --git a/inc/spbc-admin.php b/inc/spbc-admin.php index 0cd6f5281..73d03b180 100644 --- a/inc/spbc-admin.php +++ b/inc/spbc-admin.php @@ -440,7 +440,10 @@ function spbc_enqueue_scripts($hook) )); wp_enqueue_script('spbc_cookie', SPBC_PATH . '/js/spbc-cookie.min.js', array('jquery'), SPBC_VERSION, false /*in header*/); - wp_localize_script('spbc_cookie', 'spbcPublic', array( + wp_localize_script( + 'spbc_cookie', + 'spbcPublic', + array ( '_ajax_nonce' => wp_create_nonce('ct_secret_stuff'), '_rest_nonce' => wp_create_nonce('wp_rest'), '_ajax_url' => admin_url('admin-ajax.php', 'relative'), @@ -448,7 +451,9 @@ function spbc_enqueue_scripts($hook) // '_apbct_ajax_url' => APBCT_URL_PATH . '/lib/Cleantalk/ApbctWP/Ajax.php', 'data__set_cookies' => $spbc->settings['data__set_cookies'], 'data__set_cookies__alt_sessions_type' => $spbc->settings['data__set_cookies__alt_sessions_type'], - )); + 'no_confirm_row_actions' => spbc_get_no_confirm_row_actions(), + ) + ); if ($spbc->settings['upload_checker__file_check'] && in_array($hook, array('upload.php', 'media-new.php'))) { wp_enqueue_script('spbc-upload-js', SPBC_PATH . '/js/spbc-upload.min.js', array('jquery'), SPBC_VERSION, false); @@ -510,19 +515,19 @@ function spbc_enqueue_scripts($hook) 'warning_default' => __('Do you want to proceed?', 'security-malware-firewall'), 'warning_h_approve' => __('Do you want to approve this file?', 'security-malware-firewall'), - 'warning_t_approve' => __('If you agree, the file {filePath} will be approved', 'security-malware-firewall'), + 'warning_t_approve' => __('If you agree, this file will be approved.', 'security-malware-firewall'), 'warning_h_send' => __('Do you want to proceed?', 'security-malware-firewall'), - 'warning_t_send' => __('The file {filePath} will be sent in the Cloud to analyze for a malware, usually processing takes up to 1 minute. The result will be shown in the Analysis log.', 'security-malware-firewall'), + 'warning_t_send' => __('This file will be sent to the Cloud to analyze for a malware, usually processing takes up to 1 minute. The result will be shown in the Analysis log.', 'security-malware-firewall'), 'warning_h_delete' => __('This can\'t be undone and could damage your website. Are you sure?', 'security-malware-firewall'), - 'warning_t_delete' => __('If you agree, the file {filePath} will be deleted', 'security-malware-firewall'), + 'warning_t_delete' => __('If you agree, this file will be deleted.', 'security-malware-firewall'), 'warning_h_replace' => __('This can\'t be undone. Are you sure?', 'security-malware-firewall'), - 'warning_t_replace' => __('If you agree, the file {filePath} will be replaced', 'security-malware-firewall'), + 'warning_t_replace' => __('If you agree, this file will be replaced.', 'security-malware-firewall'), 'warning_h_quarantine' => __('This can\'t be undone and could damage your website. Are you sure?', 'security-malware-firewall'), - 'warning_t_quarantine' => __('If you agree, the file {filePath} will be quarantined', 'security-malware-firewall'), + 'warning_t_quarantine' => __('If you agree, this file will be quarantined.', 'security-malware-firewall'), )); // Getting scanner settings diff --git a/inc/spbc-auth.php b/inc/spbc-auth.php index 7d1ce684e..e72e0e038 100644 --- a/inc/spbc-auth.php +++ b/inc/spbc-auth.php @@ -439,7 +439,7 @@ function spbc_2fa__show_field() } if ( $tech_support_url ) { - $tech_support_url = 'tech support'; + $tech_support_url = 'tech support'; } else { $tech_support_url = 'tech support'; } diff --git a/inc/spbc-scanner.php b/inc/spbc-scanner.php index 5aeaa60c9..85a27619c 100644 --- a/inc/spbc-scanner.php +++ b/inc/spbc-scanner.php @@ -518,7 +518,7 @@ function spbc_scanner_file_delete($direct_call = false, $file_id = null) } if ( $spbc->data['license_trial'] == 1 ) { - wp_send_json(['error' => spbc_get_trial_restriction_notice()]); + wp_send_json(['error' => spbc_get_trial_restriction_notice(), 'hide_support_link' => '1']); } $time_start = microtime(true); @@ -655,10 +655,14 @@ function spbc_scanner_file_approve($direct_call = false, $file_id = null) spbc_check_ajax_referer('spbc_secret_nonce', 'security'); } - $time_start = microtime(true); - global $spbc, $wpdb; + if ( $spbc->data['license_trial'] == 1 ) { + wp_send_json(['error' => spbc_get_trial_restriction_notice(), 'hide_support_link' => '1']); + } + + $time_start = microtime(true); + $root_path = spbc_get_root_path(); $file_id = $direct_call ? $file_id @@ -1759,7 +1763,7 @@ function spbc_scanner_file_quarantine($direct_call = false, $file_id = null) } if ( $spbc->data['license_trial'] == 1 ) { - wp_send_json(['error' => spbc_get_trial_restriction_notice()]); + wp_send_json(['error' => spbc_get_trial_restriction_notice(), 'hide_support_link' => '1']); } $root_path = spbc_get_root_path(); @@ -2317,7 +2321,7 @@ function spbc_get_trial_restriction_notice() global $spbc; $html = '

' . esc_html__('Just one step before remove malware', 'security-malware-firewall') . '

'; - $html .= esc_html__('Please upgrade your account to premium Security license to Cure, Remove and Quarantine viruses and malware. As well as using 1600+ viruses signatures by now.', 'security-malware-firewall'); + $html .= esc_html__('Please upgrade your account to premium Security license to Cure, Approve, Remove and Quarantine viruses and malware. As well as using 1600+ viruses signatures by now.', 'security-malware-firewall'); $html .= linkConstructor::buildRenewalLinkATag( $spbc->user_token, '', @@ -2326,3 +2330,31 @@ function spbc_get_trial_restriction_notice() ); return $html; } + +/** + * Get JSON string of accordion row actions that do not need to be confirmed. + * @return string + */ +function spbc_get_no_confirm_row_actions() +{ + global $spbc; + // by defaults + $actions = array ( + 'defaults' => array( + 'copy_file_info', + 'check_analysis_status', + ), + 'restricted' => array(), + ); + // if license is trial + if ($spbc->data['license_trial']) { + $actions['restricted'][] = 'delete'; + $actions['restricted'][] = 'quarantine'; + $actions['restricted'][] = 'approve'; + } + + $actions['any'] = array_merge($actions['restricted'], $actions['defaults']); + + $actions = json_encode($actions); + return is_string($actions) ? $actions : '{[]}'; +} diff --git a/inc/spbc-settings.php b/inc/spbc-settings.php index c0e8b1375..011f14736 100644 --- a/inc/spbc-settings.php +++ b/inc/spbc-settings.php @@ -1964,30 +1964,6 @@ function spbc_field_key() echo ''; } -/** - * Current site admin e-mail - * @return string Admin e-mail - */ -function spbc_get_admin_email() -{ - global $spbc; - - if ( ! is_multisite() ) { - $admin_email = get_option('admin_email'); - } else { - $admin_email = get_blog_option(get_current_blog_id(), 'admin_email'); - } - - if ( $spbc->data['account_email'] ) { - add_filter('spbc_get_api_key_email', function () { - global $spbc; - return $spbc->data['account_email']; - }); - } - - return $admin_email; -} - /** * Show button for changed account email */ @@ -2170,11 +2146,11 @@ function spbc_field_security_logs__prepare_data(&$table) $event = __('Viewing admin page ', 'security-malware-firewall'); $event .= $is_add_time ? $time : ''; break; - case 'viewing_posts_list': + case 'view_posts_list': $event = __('Viewing the posts list', 'security-malware-firewall'); $event .= $is_add_time ? $time : ''; break; - case 'viewing_pages_list': + case 'view_pages_list': $event = __('Viewing the pages list', 'security-malware-firewall'); $event .= $is_add_time ? $time : ''; break; @@ -2189,14 +2165,14 @@ function spbc_field_security_logs__prepare_data(&$table) ); $event .= $is_add_time ? $time : ''; break; - case 'activate_plugin_name': + case 'activate_plugin': $event = sprintf( __('Activate plugin %s', 'security-malware-firewall'), '"' . $parse_action['plugin_name'] . '"' ); $event .= $is_add_time ? $time : ''; break; - case 'deactivate_plugin_name': + case 'deact_plugin': $event = sprintf( __('Deactivate plugin %s', 'security-malware-firewall'), '"' . $parse_action['plugin_name'] . '"' @@ -2508,17 +2484,18 @@ function spbc_settings__create_notice_on_tab($flag_text_banner) } if ($text != false) { - echo ' + $template = '
-
-

' . $text . '

+
+

%s

'; + printf($template, $flag_text_banner, $text); } else { return; } @@ -3659,9 +3636,10 @@ function spbc_list_table__get_args_by_type($table_type) 'columns' => array( 'link_id' => array( 'heading' => __('Number', 'security-malware-firewall'), - 'class' => ' tbl-width--50px' + 'class' => ' tbl-width--50px', + 'primary' => true ), - 'link' => array('heading' => __('Link', 'security-malware-firewall'), 'primary' => true,), + 'link' => array('heading' => __('Link', 'security-malware-firewall')), 'page_url' => array('heading' => __('Post Page', 'security-malware-firewall'),), 'link_text' => array('heading' => __('Link Text', 'security-malware-firewall'),), ), @@ -3693,9 +3671,10 @@ function spbc_list_table__get_args_by_type($table_type) 'columns' => array( 'num' => array( 'heading' => __('Number', 'security-malware-firewall'), - 'class' => ' tbl-width--50px' + 'class' => ' tbl-width--50px', + 'primary' => true ), - 'domain' => array('heading' => __('Domain', 'security-malware-firewall'), 'primary' => true,), + 'domain' => array('heading' => __('Domain', 'security-malware-firewall')), 'spam_active' => array( 'heading' => __('Spam-active', 'security-malware-firewall'), 'hint' => __('Does link spotted in spam?', 'security-malware-firewall'), @@ -3833,7 +3812,7 @@ function spbc_list_table__get_args_by_type($table_type) 'tip' => 'Send file to the CleanTalk Cloud for analysis' ), 'approve' => array('name' => 'Approve', 'tip' => 'Approved file will not be scanned again'), - 'quarantine' => array('name' => 'Quarantine it', 'tip' => 'Place file to quarantine'), + 'quarantine' => array('name' => 'Quarantine', 'tip' => 'Place file to quarantine'), 'replace' => array( 'name' => 'Replace with Original', 'tip' => 'Restore the initial state of file' @@ -3857,7 +3836,7 @@ function spbc_list_table__get_args_by_type($table_type) 'approve' => array('name' => 'Approve',), 'delete' => array('name' => 'Delete',), 'replace' => array('name' => 'Replace with original',), - 'quarantine' => array('name' => 'Quarantine it',), + 'quarantine' => array('name' => 'Quarantine',), ), 'sql' => array( 'where' => spbc_get_sql_where_addiction_for_table_of_category('critical'), @@ -3891,7 +3870,7 @@ function spbc_list_table__get_args_by_type($table_type) 'tip' => 'Send file to the CleanTalk Cloud for analysis' ), 'approve' => array('name' => 'Approve', 'tip' => 'Approved file will not be scanned again'), - 'quarantine' => array('name' => 'Quarantine it', 'tip' => 'Place file to quarantine'), + 'quarantine' => array('name' => 'Quarantine', 'tip' => 'Place file to quarantine'), 'replace' => array( 'name' => 'Replace with Original', 'tip' => 'Restore the initial state of file' @@ -3915,7 +3894,7 @@ function spbc_list_table__get_args_by_type($table_type) 'approve' => array('name' => 'Approve',), 'delete' => array('name' => 'Delete',), 'replace' => array('name' => 'Replace with original',), - 'quarantine' => array('name' => 'Quarantine it',), + 'quarantine' => array('name' => 'Quarantine',), ), 'sql' => array( 'where' => spbc_get_sql_where_addiction_for_table_of_category('suspicious'), @@ -4125,9 +4104,10 @@ function spbc_list_table__get_args_by_type($table_type) 'columns' => array( 'num' => array( 'heading' => __('Number', 'security-malware-firewall'), - 'class' => ' tbl-width--50px' + 'class' => ' tbl-width--50px', + 'primary' => true ), - 'domain' => array('heading' => __('Domain', 'security-malware-firewall'), 'primary' => true,), + 'domain' => array('heading' => __('Domain', 'security-malware-firewall')), 'link_count' => array( 'heading' => __('Links of domain', 'security-malware-firewall'), 'hint' => __('Number of found links to the domain on site.', 'security-malware-firewall'), @@ -4167,11 +4147,11 @@ function spbc_list_table__get_args_by_type($table_type) 'if_empty_items' => __('No malware found', 'security-malware-firewall'), 'columns' => array( 'cb' => array('heading' => '', 'class' => 'check-column', 'width_percent' => 2), - 'url' => array('heading' => 'Page', 'primary' => true, 'width_percent' => 38), - 'dbd_found' => array('heading' => 'Drive by Download', 'width_percent' => 15), - 'redirect_found' => array('heading' => 'Redirects', 'width_percent' => 15), - 'csrf' => array('heading' => 'CSRF', 'width_percent' => 15), - 'signature' => array('heading' => 'Signatures', 'width_percent' => 15), + 'url' => array('heading' => 'Page', 'primary' => true, 'width_percent' => 38, 'no_code_header' => 'Page'), + 'dbd_found' => array('heading' => 'Drive by Download', 'width_percent' => 15, 'no_code_header' => 'Drive by Download'), + 'redirect_found' => array('heading' => 'Redirects', 'width_percent' => 15, 'no_code_header' => 'Redirects'), + 'csrf' => array('heading' => 'CSRF', 'width_percent' => 15, 'no_code_header' => 'CSRF'), + 'signature' => array('heading' => 'Signatures', 'width_percent' => 15, 'no_code_header' => 'Signatures'), ), 'order_by' => array('url' => 'asc'), 'sortable' => array('url', 'dbd_found', 'redirect_found', 'signature', 'csrf'), @@ -5212,7 +5192,7 @@ function spbc_settings__get_description() 'hash_denied_hash' => array( 'title' => 'denied_hash', 'desc' => __('The file hash is in denied list. It means that the Security analysts have marked this file - as critically dangerous early. We do recommend you to order the Security Audit service.', 'security-malware-firewall') + as critically dangerous early.', 'security-malware-firewall') ), 'secfw__get_ip' => array( 'title' => IP::getOptionLongDescriptionArray()['title'], @@ -5396,6 +5376,13 @@ function spbc_bulk_actions_description() { global $spbc; + $guide_link = LinkConstructor::buildSimpleLink('https://research.cleantalk.org', 'major-signs-of-malware-on-an-infected-wordpress-site'); + $guide_text = sprintf( + esc_html__('Check %s this guide %s out, it helps to identify a malware.', 'security-malware-firewall'), + '', + '' + ); + $actions = array( 'delete' => array( 'title' => esc_html__('Delete', 'security-malware-firewall'), @@ -5465,6 +5452,7 @@ function spbc_bulk_actions_description() $description .= '
'; $description .= ''; + $description .= $guide_text; $description .= '

'; $description .= '*
'; $description .= esc_html__('Website total files - only executable files (*.php, *.html, *.htm, *.phtml, *.shtml, *.phar, *.odf) except for the quarantined files, files of zero size and files larger than the acceptable size (2 MB).', 'security-malware-firewall'); @@ -5823,12 +5811,13 @@ function spbc__get_accordion_tab_info_block_html($for) '; $main_text = __('If you are not sure about these files, you have two options,', 'security-malware-firewall'); - $option1 = __('Send it to the cloud where files will be passed through additional tests (Send for Analysis).', 'security-malware-firewall'); - $option2 = sprintf( - __('Request the %sSecurity Audit%s of your website by our Research team. A researcher checks the site among most common security threats, as well as all Unknown files and gives you detailed report. As a promotion, you have annual Security license for one website for free.', 'security-malware-firewall'), - "", - "" + $guide_link = LinkConstructor::buildSimpleLink('https://research.cleantalk.org', 'major-signs-of-malware-on-an-infected-wordpress-site'); + $option1 = sprintf( + esc_html__('Check %s this guide %s out, it helps to identify a malware.', 'security-malware-firewall'), + '', + '' ); + $option2 = __('Send it to the cloud where files will be passed through additional tests (Send for Analysis).', 'security-malware-firewall'); $template = str_replace('%MAIN_TEXT%', $main_text, $template); $template = str_replace('%OPTION_1%', $option1, $template); $template = str_replace('%OPTION_2%', $option2, $template); diff --git a/inc/spbc-tools.php b/inc/spbc-tools.php index 22aef1a1e..681c5909a 100644 --- a/inc/spbc-tools.php +++ b/inc/spbc-tools.php @@ -799,6 +799,21 @@ function spbc_get_brief_data_for_firewalls($current_fw_data, $current_bfp_data, */ function spbc_parse_action_from_admin_page_uri($url, $post_id = null) { + $out = array( + // !important! - length of the action event is restricted by 16 symbols on API + 'action_event' => 'empty_url', + 'add_time' => true, + 'post_id' => null, + 'page_action' => 'unknown', + 'plugin_name' => null, + ); + // fix for wptexturize hook + if (empty($url) && !is_string($url)) { + return $out; + } + $url = str_replace('#038;', '&', $url); + $url = str_replace('&&', '&', $url); + // parse url then $parsed_url = parse_url($url); $parsed_query = []; $plugin_name = ''; @@ -815,103 +830,99 @@ function spbc_parse_action_from_admin_page_uri($url, $post_id = null) $plugin_name = explode('/', $parsed_query['plugin'])[0]; } } - $out = array( - 'action_event' => 'Action of empty URL', - 'add_time' => true, - 'post_id' => null, - 'page_action' => null, - 'plugin_name' => null, - ); - if (!is_null($url)) { - switch ($url) { - case ('/wp-admin/edit.php' == $url - || '/wp-admin/network/edit.php' == $url - ? true - : false): - $out['action_event'] = 'viewing_posts_list'; - break; - case ('/wp-admin/edit.php?post_type=page' == $url - || '/wp-admin/network/edit.php?post_type=page' == $url - ? true - : false): - $out['action_event'] = 'viewing_pages_list'; - break; - case (preg_match('#/wp-admin/post.php\?post=[\d\w]+&action=edit#', $url) - || preg_match('#/wp-admin/network/post.php\?post=[\d\w]+&action=edit#', $url) - ? true - : false): - $post_id = is_null($post_id) && isset($parsed_query['post']) ? (int)$parsed_query['post'] : null; - $page_action = ''; - if (strpos($url, 'message=6') !== false) { - $page_action = ': ' . __('publish', 'security-malware-firewall'); - } - if (strpos($url, 'message=3') !== false) { - $page_action = ': ' . __('field remove', 'security-malware-firewall'); - } - if (strpos($url, 'message=2') !== false) { - $page_action = ': ' . __('field add', 'security-malware-firewall'); - } - if (strpos($url, 'message=4') !== false || strpos($url, 'message=1') !== false) { - $page_action = ': ' . __('update', 'security-malware-firewall'); - } - if (strpos($url, 'message=7') !== false) { - $page_action = ': ' . __('save', 'security-malware-firewall'); - } - if (strpos($url, 'message=10') !== false) { - $page_action = ': ' . __('draft update', 'security-malware-firewall'); - } - if ( is_int($post_id) ) { - $out['action_event'] = 'editing_post_id'; - $out['post_id'] = $post_id; - $out['page_action'] = $page_action; - } else { - $out['action_event'] = 'editing_post'; - } - break; - case (preg_match('#/wp-admin/plugins.php\?.*action=activate#', $url) - || preg_match('#/wp-admin/network/plugins.php\?.*action=activate#', $url) - ? true - : false): - $out['action_event'] = 'activate_plugin_name'; - $out['plugin_name'] = $plugin_name; - $out['add_time'] = false; - break; - case (preg_match('#/wp-admin/plugins.php\?.*action=deactivate#', $url) - || preg_match('#/wp-admin/network/plugins.php\?.*action=deactivate#', $url) - ? true - : false): - $out['action_event'] = 'deactivate_plugin_name'; - $out['plugin_name'] = $plugin_name; - $out['add_time'] = false; - break; - case (preg_match('#/wp-admin/update.php\?.*action=upload-plugin#', $url) - || preg_match('#/wp-admin/network/update.php\?.*action=upload-plugin#', $url) - ? true - : false): - $out['action_event'] = 'uploading_plugin'; - $out['add_time'] = false; - break; - case (preg_match('#/wp-admin/users.php\?.*update=add#', $url) - || preg_match('#/wp-admin/network/users.php\?.*update=add#', $url) - ? true - : false): - $out['action_event'] = 'adding_user'; - $out['add_time'] = false; - break; - case (preg_match('#/wp-admin/users.php\?.*delete_count#', $url) - || preg_match('#/wp-admin/network/users.php\?.*delete_count#', $url) - ? true - : false): - $out['action_event'] = 'deleting_user'; - $out['add_time'] = false; - break; - default: - preg_match_all('/\/wp-admin\/(.+\.php)\?(action=.+?)&/', $url, $matches); - $file = !empty($matches[1]) && !empty($matches[1][0]) ? $matches[1][0] : ''; - $the_action = !empty($matches[2]) && !empty($matches[2][0]) ? $matches[2][0] : ''; - $out['action_event'] = !empty($file) && !empty($the_action) ? $file . '...' . $the_action : 'view'; - $out['add_time'] = false; - } + switch ($url) { + case ('/wp-admin/edit.php' == $url + || '/wp-admin/network/edit.php' == $url + ? true + : false): + $out['action_event'] = 'view_posts_list'; + break; + case ('/wp-admin/edit.php?post_type=page' == $url + || '/wp-admin/network/edit.php?post_type=page' == $url + ? true + : false): + $out['action_event'] = 'view_pages_list'; + break; + case (preg_match('#/wp-admin/post.php\?post=[\d\w]+&action=edit#', $url) + || preg_match('#/wp-admin/network/post.php\?post=[\d\w]+&action=edit#', $url) + ? true + : false): + $post_id = is_null($post_id) && isset($parsed_query['post']) ? (int)$parsed_query['post'] : null; + $page_action = ''; + if (strpos($url, 'message=6') !== false) { + $page_action = ': ' . __('publish', 'security-malware-firewall'); + } + if (strpos($url, 'message=3') !== false) { + $page_action = ': ' . __('field remove', 'security-malware-firewall'); + } + if (strpos($url, 'message=2') !== false) { + $page_action = ': ' . __('field add', 'security-malware-firewall'); + } + if (strpos($url, 'message=4') !== false || strpos($url, 'message=1') !== false) { + $page_action = ': ' . __('update', 'security-malware-firewall'); + } + if (strpos($url, 'message=7') !== false) { + $page_action = ': ' . __('save', 'security-malware-firewall'); + } + if (strpos($url, 'message=10') !== false) { + $page_action = ': ' . __('draft update', 'security-malware-firewall'); + } + if ( is_int($post_id) ) { + $out['action_event'] = 'editing_post_id'; + $out['post_id'] = $post_id; + $out['page_action'] = $page_action; + } else { + $out['action_event'] = 'editing_post'; + } + break; + case (preg_match('#/wp-admin/plugins.php\?.*action=activate#', $url) + || preg_match('#/wp-admin/network/plugins.php\?.*action=activate#', $url) + ? true + : false): + $out['action_event'] = 'activate_plugin'; + $out['plugin_name'] = $plugin_name; + $out['add_time'] = false; + break; + case (preg_match('#/wp-admin/plugins.php\?.*action=deactivate#', $url) + || preg_match('#/wp-admin/network/plugins.php\?.*action=deactivate#', $url) + ? true + : false): + $out['action_event'] = 'deact_plugin'; + $out['plugin_name'] = $plugin_name; + $out['add_time'] = false; + break; + case (preg_match('#/wp-admin/update.php\?.*action=upload-plugin#', $url) + || preg_match('#/wp-admin/network/update.php\?.*action=upload-plugin#', $url) + ? true + : false): + $out['action_event'] = 'uploading_plugin'; + $out['add_time'] = false; + break; + case (preg_match('#/wp-admin/users.php\?.*update=add#', $url) + || preg_match('#/wp-admin/network/users.php\?.*update=add#', $url) + ? true + : false): + $out['action_event'] = 'adding_user'; + $out['add_time'] = false; + break; + case (preg_match('#/wp-admin/users.php\?.*delete_count#', $url) + || preg_match('#/wp-admin/network/users.php\?.*delete_count#', $url) + ? true + : false): + $out['action_event'] = 'deleting_user'; + $out['add_time'] = false; + break; + default: + preg_match_all('/\/wp-admin\/(.+\.php)\?(action=.+?)&/', $url, $matches); + $file = !empty($matches[1]) && !empty($matches[1][0]) ? $matches[1][0] : ''; + $the_action = !empty($matches[2]) && !empty($matches[2][0]) ? $matches[2][0] : ''; + $event = !empty($file) && !empty($the_action) ? $file . '...' . $the_action : 'view'; + // shortening to 16 symbols + $event = strlen($event) > 16 + ? '..' . substr($event, -14, -14) + : $event; + $out['action_event'] = $event; + $out['add_time'] = false; } return $out; } diff --git a/js/spbc-common.min.js b/js/spbc-common.min.js index d40b62b1f..ca9cdd821 100644 --- a/js/spbc-common.min.js +++ b/js/spbc-common.min.js @@ -1,2 +1,2 @@ -function spbcTimestamp(){return Math.floor(+new Date/1e3)}function spbcHighlightElement(e,r){r=r-1||0,jQuery("html, body").animate({scrollTop:jQuery(jQuery("#"+e)).offset().top-100},"slow"),jQuery("#"+e).addClass("spbc_highlighted"),jQuery("#"+e).animate({outlineColor:"rgba(255, 0, 0, 1.0)"},400,"linear",function(){jQuery("#"+e).animate({outlineColor:"rgba(255, 0, 0, 0.0)"},400,"linear",function(){00) {\n spbcHighlightElement(id, times);\n } else {\n jQuery('#'+id).removeClass('spbc_highlighted');\n }\n });\n });\n}\n\n/**\n * Send AJAX Request\n *\n * @param {obj} data\n * @param {obj} params\n * @param {obj} obj\n */\nfunction spbcSendAJAXRequest(data, params, obj) {/* eslint-disable-line no-unused-vars */\n let dataType = params.notJson ? 'text' : 'json';\n\n // Default params\n let button = params.button || null;\n let spinner = params.spinner || null;\n let progressbar = params.progressbar || null;\n let callback = params.callback || null;\n let notJson = params.notJson || null;\n let timeout = params.timeout || 15000;\n obj = obj || null;\n let context = params.context || this;\n\n // Button and spinner\n if (button) {\n button.setAttribute('disabled', 'disabled'); button.style.cursor = 'not-allowed';\n }\n if (spinner) {\n if (Array.isArray(spinner)) {\n spinner.forEach(function(el) {\n jQuery(el).css('display', 'inline');\n });\n } else {\n jQuery(spinner).css('display', 'inline');\n }\n }\n\n // Adding security code\n data.security = spbcSettings.ajax_nonce;\n data.no_cache = Math.random();\n\n // Using passed successCallback() or default\n let success = params.success || function(result) {\n if (button) {\n button.removeAttribute('disabled');\n button.style.cursor = 'pointer';\n }\n\n if (spinner) {\n if (Array.isArray(spinner)) {\n spinner.forEach(function(el) {\n jQuery(el).css('display', 'none');\n });\n } else {\n jQuery(spinner).css('display', 'none');\n }\n }\n\n if (!notJson && typeof result !== 'object') {\n result = JSON.parse(result);\n }\n\n if (result.error) {\n setTimeout(function() {\n if (progressbar) progressbar.fadeOut('slow');\n }, 1000);\n let errorComment = typeof result.error_comment !== 'undefined' ? result.error_comment : null;\n errorOutput( result.error, errorComment );\n } else if (callback) {\n callback(result, data, params, obj);\n }\n };\n\n // Using passed successCallback() or default\n let error = params.error || function(jqXHR, textStatus, errorThrown) {\n if (button) {\n button.removeAttribute('disabled');\n button.style.cursor = 'pointer';\n }\n if (spinner) {\n if (Array.isArray(spinner)) {\n spinner.forEach(function(el) {\n jQuery(el).css('display', 'none');\n });\n } else {\n jQuery(spinner).css('display', 'none');\n }\n }\n\n console.log( '%c APBCT_AJAX_ERROR', 'color: red;' );\n console.log( textStatus );\n console.log( errorThrown );\n console.log( jqXHR );\n\n errorOutput( textStatus );\n };\n\n var errorOutput = params.errorOutput || function( msg ) {};/* eslint-disable-line no-var */\n\n jQuery.ajax({\n context: context,\n type: 'POST',\n url: spbcSettings.ajaxurl,\n data: data,\n dataType: dataType,\n success: success,\n error: error,\n timeout: timeout,\n });\n}\n"],"names":["spbcTimestamp","Math","floor","Date","spbcHighlightElement","id","times","jQuery","animate","scrollTop","offset","top","addClass","outlineColor","removeClass","spbcSendAJAXRequest","data","params","obj","let","dataType","notJson","button","spinner","progressbar","callback","timeout","context","this","success","setAttribute","style","cursor","Array","isArray","forEach","el","css","security","spbcSettings","ajax_nonce","no_cache","random","result","errorComment","removeAttribute","JSON","parse","error","setTimeout","fadeOut","error_comment","errorOutput","jqXHR","textStatus","errorThrown","console","log","msg","ajax","type","url","ajaxurl"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spbc-common.min.js","sources":["spbc-common.js"],"sourcesContent":["/**\n * Timestamp\n *\n * @return {number}\n */\nfunction spbcTimestamp() {/* eslint-disable-line no-unused-vars */\n return Math.floor(+new Date() / 1000);\n}\n\n/**\n * Hightlights element\n *\n * @param {number|string} id\n * @param {number} times\n */\nfunction spbcHighlightElement(id, times) {/* eslint-disable-line no-unused-vars */\n times = times-1 || 0;\n jQuery('html, body').animate({scrollTop: jQuery(jQuery('#'+id)).offset().top - 100}, 'slow');\n jQuery('#'+id).addClass('spbc_highlighted');\n jQuery('#'+id).animate({outlineColor: 'rgba(255, 0, 0, 1.0)'}, 400, 'linear', function() {\n jQuery('#'+id).animate({outlineColor: 'rgba(255, 0, 0, 0.0)'}, 400, 'linear', function() {\n if (times>0) {\n spbcHighlightElement(id, times);\n } else {\n jQuery('#'+id).removeClass('spbc_highlighted');\n }\n });\n });\n}\n\n/**\n * Send AJAX Request\n *\n * @param {obj} data\n * @param {obj} params\n * @param {obj} obj\n */\nfunction spbcSendAJAXRequest(data, params, obj) {/* eslint-disable-line no-unused-vars */\n let dataType = params.notJson ? 'text' : 'json';\n\n // Default params\n let button = params.button || null;\n let spinner = params.spinner || null;\n let progressbar = params.progressbar || null;\n let callback = params.callback || null;\n let notJson = params.notJson || null;\n let timeout = params.timeout || 15000;\n obj = obj || null;\n let context = params.context || this;\n\n // Button and spinner\n if (button) {\n button.setAttribute('disabled', 'disabled'); button.style.cursor = 'not-allowed';\n }\n if (spinner) {\n if (Array.isArray(spinner)) {\n spinner.forEach(function(el) {\n jQuery(el).css('display', 'inline');\n });\n } else {\n jQuery(spinner).css('display', 'inline');\n }\n }\n\n // Adding security code\n data.security = spbcSettings.ajax_nonce;\n data.no_cache = Math.random();\n\n // Using passed successCallback() or default\n let success = params.success || function(result) {\n if (button) {\n button.removeAttribute('disabled');\n button.style.cursor = 'pointer';\n }\n\n if (spinner) {\n if (Array.isArray(spinner)) {\n spinner.forEach(function(el) {\n jQuery(el).css('display', 'none');\n });\n } else {\n jQuery(spinner).css('display', 'none');\n }\n }\n\n if (!notJson && typeof result !== 'object') {\n result = JSON.parse(result);\n }\n\n if (result.error) {\n setTimeout(function() {\n if (progressbar) progressbar.fadeOut('slow');\n }, 1000);\n let errorComment = typeof result.error_comment !== 'undefined' ? result.error_comment : null;\n const hideSupportLink = typeof result.hide_support_link !== 'undefined';\n errorOutput( result.error, errorComment, hideSupportLink );\n jQuery('.tbl-preloader--in_button').css('display', 'none');\n } else if (callback) {\n callback(result, data, params, obj);\n }\n };\n\n // Using passed successCallback() or default\n let error = params.error || function(jqXHR, textStatus, errorThrown) {\n if (button) {\n button.removeAttribute('disabled');\n button.style.cursor = 'pointer';\n }\n if (spinner) {\n if (Array.isArray(spinner)) {\n spinner.forEach(function(el) {\n jQuery(el).css('display', 'none');\n });\n } else {\n jQuery(spinner).css('display', 'none');\n }\n }\n\n console.log( '%c APBCT_AJAX_ERROR', 'color: red;' );\n console.log( textStatus );\n console.log( errorThrown );\n console.log( jqXHR );\n\n errorOutput( textStatus );\n };\n\n var errorOutput = params.errorOutput || function( msg ) {};/* eslint-disable-line no-var */\n\n jQuery.ajax({\n context: context,\n type: 'POST',\n url: spbcSettings.ajaxurl,\n data: data,\n dataType: dataType,\n success: success,\n error: error,\n timeout: timeout,\n });\n}\n"],"names":["spbcTimestamp","Math","floor","Date","spbcHighlightElement","id","times","jQuery","animate","scrollTop","offset","top","addClass","outlineColor","removeClass","spbcSendAJAXRequest","data","params","obj","let","dataType","notJson","button","spinner","progressbar","callback","timeout","context","this","success","setAttribute","style","cursor","Array","isArray","forEach","el","css","security","spbcSettings","ajax_nonce","no_cache","random","result","errorComment","hideSupportLink","removeAttribute","JSON","parse","error","setTimeout","fadeOut","error_comment","hide_support_link","errorOutput","msg","ajax","type","url","ajaxurl","jqXHR","textStatus","errorThrown","console","log"],"mappings":"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"} \ No newline at end of file diff --git a/js/spbc-cookie.min.js b/js/spbc-cookie.min.js index f389feeab..b10093e9e 100644 --- a/js/spbc-cookie.min.js +++ b/js/spbc-cookie.min.js @@ -1,2 +1,2 @@ -function spbcSetCookie(e,o,t){"string"!=typeof e||"string"!=typeof o&&"number"!=typeof o||(e=[[e,o,t]]),0!=+spbcPublic.data__set_cookies&&(1==+spbcPublic.data__set_cookies?e.forEach(function(e,o,t){var s=void 0!==e[2]?"expires="+e[2]+"; ":"",c="https:"===location.protocol?"; secure":"";document.cookie=e[0]+"="+encodeURIComponent(e[1])+"; "+s+"path=/; samesite=lax"+c}):2==+spbcPublic.data__set_cookies&&1==+spbcPublic.data__set_cookies__alt_sessions_type&&spbcSendRESTRequest("alt_sessions",{method:"POST",data:{cookies:e}}))}function spbcSendRESTRequest(o,t){let s=t.callback||null;var e=t.data||[],c=t.method||"POST";jQuery.ajax({type:c,url:spbcPublic._rest_url+"cleantalk-security/v1/"+o,data:e,beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",spbcPublic._rest_nonce),e.setRequestHeader("X-Robots-Tag","noindex, nofollow")},success:function(e){e.error?console.log("Security by Cleantalk. Error: "+(e.error||"Unknown")):s&&s(e,o,t,null)},error:function(e,o,t){t&&(console.log("SPBCT_REST_ERROR"),console.log(e),console.log(o),console.log("Security by Cleantalk plugin REST API error: "+t+" Please, contact Cleantalk tech support https://wordpress.org/support/plugin/security-malware-firewall/"))}})} +function spbcSetCookie(e,o,t){"string"!=typeof e||"string"!=typeof o&&"number"!=typeof o||(e=[[e,o,t]]),0!=+spbcPublic.data__set_cookies&&(1==+spbcPublic.data__set_cookies?e.forEach(function(e,o,t){var s=void 0!==e[2]?"expires="+e[2]+"; ":"",c="https:"===location.protocol?"; secure":"";document.cookie=e[0]+"="+encodeURIComponent(e[1])+"; "+s+"path=/; samesite=lax"+c}):2==+spbcPublic.data__set_cookies&&1==+spbcPublic.data__set_cookies__alt_sessions_type&&spbcSendRESTRequest("alt_sessions",{method:"POST",data:{cookies:e}}))}function spbcSendRESTRequest(o,t){let s=t.callback||null;jQuery.ajax({type:t.method||"POST",url:spbcPublic._rest_url+"cleantalk-security/v1/"+o,data:t.data||[],beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",spbcPublic._rest_nonce),e.setRequestHeader("X-Robots-Tag","noindex, nofollow")},success:function(e){e.error?console.log("Security by Cleantalk. Error: "+(e.error||"Unknown")):s&&s(e,o,t,null)},error:function(e,o,t){t&&(console.log("SPBCT_REST_ERROR"),console.log(e),console.log(o),console.log("Security by Cleantalk plugin REST API error: "+t+" Please, contact Cleantalk tech support https://wordpress.org/support/plugin/security-malware-firewall/"))}})} //# sourceMappingURL=spbc-cookie.min.js.map diff --git a/js/spbc-cookie.min.js.map b/js/spbc-cookie.min.js.map index a38e945df..b908033db 100644 --- a/js/spbc-cookie.min.js.map +++ b/js/spbc-cookie.min.js.map @@ -1 +1 @@ -{"version":3,"file":"spbc-cookie.min.js","sources":["spbc-cookie.js"],"sourcesContent":["/**\n * Set Cookie\n * @param {string} cookies\n * @param {string} value\n * @param {number} expires\n */\nfunction spbcSetCookie( cookies, value, expires ) {/* eslint-disable-line no-unused-vars */\n if ( typeof cookies === 'string' && ( typeof value === 'string' || typeof value === 'number' ) ) {\n cookies = [[cookies, value, expires]];\n }\n\n // Cookies disabled\n if ( +spbcPublic.data__set_cookies === 0 ) {\n return;\n\n // Using traditional cookies\n } else if ( +spbcPublic.data__set_cookies === 1 ) {\n cookies.forEach( function(item, i, arr) {\n let expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : '';\n let ctSecure = location.protocol === 'https:' ? '; secure' : '';\n document.cookie = item[0] +\n '=' + encodeURIComponent(item[1]) +\n '; ' + expires + 'path=/; samesite=lax' +\n ctSecure;\n });\n\n // Using alternative cookies\n } else if ( +spbcPublic.data__set_cookies === 2 ) {\n // Using REST API handler\n if ( +spbcPublic.data__set_cookies__alt_sessions_type === 1 ) {\n spbcSendRESTRequest(\n 'alt_sessions',\n {\n method: 'POST',\n data: {cookies: cookies},\n },\n );\n }\n // Using AJAX request and handler\n // }else if( +spbcPublic.data__set_cookies__alt_sessions_type === 2 ) {\n // apbct_public_sendAJAX(\n // {\n // action: 'apbct_alt_session__save__AJAX',\n // cookies: cookies,\n // },\n // {\n // apbct_ajax: 1,\n // notJson: 1,\n // }\n // );\n // }\n }\n}\n\n/**\n * Send REST Request\n * @param {string} route\n * @param {obj} params\n */\nfunction spbcSendRESTRequest( route, params ) {\n let callback = params.callback || null;\n let data = params.data || [];\n let method = params.method || 'POST';\n\n jQuery.ajax({\n type: method,\n url: spbcPublic._rest_url + 'cleantalk-security/v1/' + route,\n data: data,\n beforeSend: function( xhr ) {\n xhr.setRequestHeader( 'X-WP-Nonce', spbcPublic._rest_nonce );\n xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow');\n },\n success: function(result) {\n if (result.error) {\n console.log('Security by Cleantalk. Error: ' + (result.error || 'Unknown'));\n } else {\n if (callback) {\n let obj = null;\n callback(result, route, params, obj);\n }\n }\n },\n error: function(jqXHR, textStatus, errorThrown) {\n if ( errorThrown ) {\n console.log('SPBCT_REST_ERROR');\n console.log(jqXHR);\n console.log(textStatus);\n console.log('Security by Cleantalk plugin REST API error: ' +\n errorThrown +\n ' Please, contact Cleantalk tech support ' +\n 'https://wordpress.org/support/plugin/security-malware-firewall/');\n }\n },\n });\n}\n"],"names":["spbcSetCookie","cookies","value","expires","spbcPublic","data__set_cookies","forEach","item","i","arr","let","ctSecure","location","protocol","document","cookie","encodeURIComponent","data__set_cookies__alt_sessions_type","spbcSendRESTRequest","method","data","route","params","callback","jQuery","ajax","type","url","_rest_url","beforeSend","xhr","setRequestHeader","_rest_nonce","success","result","error","console","log","jqXHR","textStatus","errorThrown"],"mappings":"AAMA,SAASA,cAAeC,EAASC,EAAOC,GACZ,UAAnB,OAAOF,GAA2C,UAAjB,OAAOC,GAAuC,UAAjB,OAAOA,IACtED,EAAU,CAAC,CAACA,EAASC,EAAOC,KAIO,GAAlC,CAACC,WAAWC,oBAI6B,GAAlC,CAACD,WAAWC,kBACpBJ,EAAQK,QAAS,SAASC,EAAMC,EAAGC,GAC/BC,IAAIP,EAA6B,KAAA,IAAZI,EAAK,GAAqB,WAAaA,EAAK,GAAK,KAAO,GACzEI,EAAiC,WAAtBC,SAASC,SAAwB,WAAa,GAC7DC,SAASC,OAASR,EAAK,GACnB,IAAMS,mBAAmBT,EAAK,EAAE,EAChC,KAAOJ,EAAU,uBACjBQ,CACR,CAAC,EAGyC,GAAlC,CAACP,WAAWC,mBAEsC,GAArD,CAACD,WAAWa,sCACbC,oBACI,eACA,CACIC,OAAQ,OACRC,KAAM,CAACnB,QAASA,CAAO,CAC3B,CACJ,EAgBZ,CAOA,SAASiB,oBAAqBG,EAAOC,GACjCZ,IAAIa,EAAWD,EAAOC,UAAY,KAClCb,IAAIU,EAAOE,EAAOF,MAAQ,GACtBD,EAASG,EAAOH,QAAU,OAE9BK,OAAOC,KAAK,CACRC,KAAMP,EACNQ,IAAKvB,WAAWwB,UAAY,yBAA2BP,EACvDD,KAAMA,EACNS,WAAY,SAAUC,GAClBA,EAAIC,iBAAkB,aAAc3B,WAAW4B,WAAY,EAC3DF,EAAIC,iBAAiB,eAAgB,mBAAmB,CAC5D,EACAE,QAAS,SAASC,GACVA,EAAOC,MACPC,QAAQC,IAAI,kCAAoCH,EAAOC,OAAS,UAAU,EAEtEZ,GAEAA,EAASW,EAAQb,EAAOC,EADd,IACyB,CAG/C,EACAa,MAAO,SAASG,EAAOC,EAAYC,GAC1BA,IACDJ,QAAQC,IAAI,kBAAkB,EAC9BD,QAAQC,IAAIC,CAAK,EACjBF,QAAQC,IAAIE,CAAU,EACtBH,QAAQC,IAAI,gDACRG,EAEA,yGAAiE,EAE7E,CACJ,CAAC,CACL"} \ No newline at end of file +{"version":3,"file":"spbc-cookie.min.js","sources":["spbc-cookie.js"],"sourcesContent":["/**\n * Set Cookie\n * @param {string} cookies\n * @param {string} value\n * @param {number} expires\n */\nfunction spbcSetCookie( cookies, value, expires ) {/* eslint-disable-line no-unused-vars */\n if ( typeof cookies === 'string' && ( typeof value === 'string' || typeof value === 'number' ) ) {\n cookies = [[cookies, value, expires]];\n }\n\n // Cookies disabled\n if ( +spbcPublic.data__set_cookies === 0 ) {\n return;\n\n // Using traditional cookies\n } else if ( +spbcPublic.data__set_cookies === 1 ) {\n cookies.forEach( function(item, i, arr) {\n let expires = typeof item[2] !== 'undefined' ? 'expires=' + item[2] + '; ' : '';\n let ctSecure = location.protocol === 'https:' ? '; secure' : '';\n document.cookie = item[0] +\n '=' + encodeURIComponent(item[1]) +\n '; ' + expires + 'path=/; samesite=lax' +\n ctSecure;\n });\n\n // Using alternative cookies\n } else if ( +spbcPublic.data__set_cookies === 2 ) {\n // Using REST API handler\n if ( +spbcPublic.data__set_cookies__alt_sessions_type === 1 ) {\n spbcSendRESTRequest(\n 'alt_sessions',\n {\n method: 'POST',\n data: {cookies: cookies},\n },\n );\n }\n // Using AJAX request and handler\n // }else if( +spbcPublic.data__set_cookies__alt_sessions_type === 2 ) {\n // apbct_public_sendAJAX(\n // {\n // action: 'apbct_alt_session__save__AJAX',\n // cookies: cookies,\n // },\n // {\n // apbct_ajax: 1,\n // notJson: 1,\n // }\n // );\n // }\n }\n}\n\n/**\n * Send REST Request\n * @param {string} route\n * @param {obj} params\n */\nfunction spbcSendRESTRequest( route, params ) {\n let callback = params.callback || null;\n let data = params.data || [];\n let method = params.method || 'POST';\n\n jQuery.ajax({\n type: method,\n url: spbcPublic._rest_url + 'cleantalk-security/v1/' + route,\n data: data,\n beforeSend: function( xhr ) {\n xhr.setRequestHeader( 'X-WP-Nonce', spbcPublic._rest_nonce );\n xhr.setRequestHeader('X-Robots-Tag', 'noindex, nofollow');\n },\n success: function(result) {\n if (result.error) {\n console.log('Security by Cleantalk. Error: ' + (result.error || 'Unknown'));\n } else {\n if (callback) {\n let obj = null;\n callback(result, route, params, obj);\n }\n }\n },\n error: function(jqXHR, textStatus, errorThrown) {\n if ( errorThrown ) {\n console.log('SPBCT_REST_ERROR');\n console.log(jqXHR);\n console.log(textStatus);\n console.log('Security by Cleantalk plugin REST API error: ' +\n errorThrown +\n ' Please, contact Cleantalk tech support ' +\n 'https://wordpress.org/support/plugin/security-malware-firewall/');\n }\n },\n });\n}\n"],"names":["spbcSetCookie","cookies","value","expires","spbcPublic","data__set_cookies","forEach","item","i","arr","let","ctSecure","location","protocol","document","cookie","encodeURIComponent","data__set_cookies__alt_sessions_type","spbcSendRESTRequest","method","data","route","params","callback","jQuery","ajax","type","url","_rest_url","beforeSend","xhr","setRequestHeader","_rest_nonce","success","result","error","console","log","jqXHR","textStatus","errorThrown"],"mappings":"AAMA,SAASA,cAAeC,EAASC,EAAOC,GACZ,UAAnB,OAAOF,GAA2C,UAAjB,OAAOC,GAAuC,UAAjB,OAAOA,IACtED,EAAU,CAAC,CAACA,EAASC,EAAOC,KAIO,GAAlC,CAACC,WAAWC,oBAI6B,GAAlC,CAACD,WAAWC,kBACpBJ,EAAQK,QAAS,SAASC,EAAMC,EAAGC,GAC/BC,IAAIP,EAA6B,KAAA,IAAZI,EAAK,GAAqB,WAAaA,EAAK,GAAK,KAAO,GACzEI,EAAiC,WAAtBC,SAASC,SAAwB,WAAa,GAC7DC,SAASC,OAASR,EAAK,GACnB,IAAMS,mBAAmBT,EAAK,EAAE,EAChC,KAAOJ,EAAU,uBACjBQ,CACR,CAAC,EAGyC,GAAlC,CAACP,WAAWC,mBAEsC,GAArD,CAACD,WAAWa,sCACbC,oBACI,eACA,CACIC,OAAQ,OACRC,KAAM,CAACnB,QAASA,CAAO,CAC3B,CACJ,EAgBZ,CAOA,SAASiB,oBAAqBG,EAAOC,GACjCZ,IAAIa,EAAWD,EAAOC,UAAY,KAIlCC,OAAOC,KAAK,CACRC,KAHSJ,EAAOH,QAAU,OAI1BQ,IAAKvB,WAAWwB,UAAY,yBAA2BP,EACvDD,KANOE,EAAOF,MAAQ,GAOtBS,WAAY,SAAUC,GAClBA,EAAIC,iBAAkB,aAAc3B,WAAW4B,WAAY,EAC3DF,EAAIC,iBAAiB,eAAgB,mBAAmB,CAC5D,EACAE,QAAS,SAASC,GACVA,EAAOC,MACPC,QAAQC,IAAI,kCAAoCH,EAAOC,OAAS,UAAU,EAEtEZ,GAEAA,EAASW,EAAQb,EAAOC,EADd,IACyB,CAG/C,EACAa,MAAO,SAASG,EAAOC,EAAYC,GAC1BA,IACDJ,QAAQC,IAAI,kBAAkB,EAC9BD,QAAQC,IAAIC,CAAK,EACjBF,QAAQC,IAAIE,CAAU,EACtBH,QAAQC,IAAI,gDACRG,EAEA,yGAAiE,EAE7E,CACJ,CAAC,CACL"} \ No newline at end of file diff --git a/js/spbc-modal.min.js b/js/spbc-modal.min.js index da41c0cdc..72ade778c 100644 --- a/js/spbc-modal.min.js +++ b/js/spbc-modal.min.js @@ -1,2 +1,2 @@ -spbcModal={loaded:!1,loading:!1,opened:!1,opening:!1,load:function(e){this.loaded||(this.loading=!0,callback=function(e,t,o,n){spbcModal.loading=!1,spbcModal.loaded=e,document.dispatchEvent(new CustomEvent("spbcModalContentLoaded",{bubbles:!0}))},"function"==typeof spbcSendAJAXRequest&&spbcSendAJAXRequest({action:e},{callback:callback,notJson:!0}))},putError:function(e){this.put("

An error

"+e+'

Contact tech support')},put:function(e){spbcModal.loading=!1,spbcModal.loaded=e,document.dispatchEvent(new CustomEvent("spbcModalContentLoaded",{bubbles:!0}))},confirm:function(e,t="",o="",n){spbcModal.loading=!1;var d,a=document.getElementById("spbc-modal-content");a&&(a.innerHTML="",(d=document.createElement("div")).className="spbc-modal-header",d.textContent=e,a.append(d),(e=document.createElement("div")).className="spbc-modal-text-block",a.append(e),o&&80";t||(o+='Contact tech support'),this.put(o)},put:function(e){spbcModal.loading=!1,spbcModal.loaded=e,document.dispatchEvent(new CustomEvent("spbcModalContentLoaded",{bubbles:!0}))},confirm:function(e,t="",o="",n){spbcModal.loading=!1;var d,a,s=document.getElementById("spbc-modal-content");s&&(s.innerHTML="",(a=document.createElement("div")).className="spbc-modal-header",a.textContent=e,s.append(a),(e=document.createElement("div")).className="spbc-modal-text-block",s.append(e),(a=o)&&60' + errorText + '

' +\n 'Contact tech support';\n this.put(html);\n },\n\n put: function( html ) {\n spbcModal.loading = false;\n spbcModal.loaded = html;\n document.dispatchEvent(\n new CustomEvent( 'spbcModalContentLoaded', {\n bubbles: true,\n } ),\n );\n },\n\n confirm: function(header, text = '', filePath = '', callback) {\n spbcModal.loading = false;\n let contentBlock = document.getElementById('spbc-modal-content');\n if (contentBlock) {\n contentBlock.innerHTML = '';\n\n const headerBlock = document.createElement('div');\n headerBlock.className = 'spbc-modal-header';\n headerBlock.textContent = header;\n contentBlock.append(headerBlock);\n\n // Create text block\n const textBlock = document.createElement('div');\n textBlock.className = 'spbc-modal-text-block';\n contentBlock.append(textBlock);\n\n if (filePath && filePath.length > 80) {\n filePath = '...' + filePath.slice(filePath.length-80);\n }\n if (text && filePath) {\n text = text.replace('{filePath}', filePath);\n } else if (text && !filePath) {\n text = text.replace('{filePath}', '');\n }\n\n const textElem = document.createElement('div');\n textElem.className = 'spbc-modal-text';\n textElem.textContent = text;\n textBlock.append(textElem);\n\n // Create buttons block\n const buttonsBlock = document.createElement('div');\n buttonsBlock.className = 'spbc-modal-buttons-block';\n contentBlock.append(buttonsBlock);\n\n const yesButton = document.createElement('button');\n yesButton.className = 'spbc-modal-button';\n yesButton.textContent = 'Yes';\n yesButton.onclick = function() {\n callback(true);\n spbcModal.close();\n };\n buttonsBlock.append(yesButton);\n\n const noButton = document.createElement('button');\n noButton.className = 'spbc-modal-button';\n noButton.textContent = 'No';\n noButton.onclick = function() {\n spbcModal.close();\n };\n buttonsBlock.append(noButton);\n }\n document.dispatchEvent(\n new CustomEvent( 'spbcModalContentLoaded', {\n bubbles: true,\n } ),\n );\n },\n\n open: function() {\n /* Cleantalk Modal CSS start */\n let renderCss = function() {\n let cssStr = '';\n for ( key in this.styles ) {\n if (key) {\n cssStr += key + ':' + this.styles[key] + ';';\n }\n }\n return cssStr;\n };\n let overlayCss = {\n styles: {\n 'z-index': '9999',\n 'position': 'fixed',\n 'top': '0',\n 'left': '0',\n 'width': '100%',\n 'height': '100%',\n 'background': 'rgba(0,0,0,0.5)',\n 'display': 'flex',\n 'justify-content': 'center',\n 'align-items': 'center',\n },\n toString: renderCss,\n };\n let innerCss = {\n styles: {\n 'position': 'relative',\n 'padding': '20px',\n 'margin': '10px',\n 'max-width': '550px',\n 'max-height': '500px',\n 'background': '#FFF',\n 'border': '1px solid rgba(0,0,0,0.75)',\n 'border-radius': '4px',\n 'box-shadow': '7px 7px 5px 0px rgba(50,50,50,0.75)',\n },\n toString: renderCss,\n };\n let closeCss = {\n styles: {\n 'position': 'absolute',\n 'background': '#FFF',\n 'width': '20px',\n 'height': '20px',\n 'border': '2px solid rgba(0,0,0,0.75)',\n 'border-radius': '15px',\n 'cursor': 'pointer',\n 'top': '-8px',\n 'right': '-8px',\n },\n toString: renderCss,\n };\n let closeCssBefore = {\n styles: {\n 'content': '\"\"',\n 'display': 'block',\n 'position': 'absolute',\n 'background': '#000',\n 'border-radius': '1px',\n 'width': '2px',\n 'height': '16px',\n 'top': '2px',\n 'left': '9px',\n 'transform': 'rotate(45deg)',\n },\n toString: renderCss,\n };\n let closeCssAfter = {\n styles: {\n 'content': '\"\"',\n 'display': 'block',\n 'position': 'absolute',\n 'background': '#000',\n 'border-radius': '1px',\n 'width': '2px',\n 'height': '16px',\n 'top': '2px',\n 'left': '9px',\n 'transform': 'rotate(-45deg)',\n },\n toString: renderCss,\n };\n let contentCss = {\n styles: {\n 'display': 'grid',\n 'gap': '20px',\n 'overflow-y': 'auto',\n 'max-height': '460px',\n 'overflow-x': 'hidden',\n },\n toString: renderCss,\n };\n let bodyCss = {\n styles: {\n 'overflow': 'hidden',\n },\n toString: renderCss,\n };\n let spbcModalStyle = document.createElement( 'style' );\n spbcModalStyle.setAttribute( 'id', 'spbc-modal-styles' );\n spbcModalStyle.innerHTML = 'body.spbc-modal-opened{' + bodyCss + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-overlay{' + overlayCss + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-close{' + closeCss + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-close:before{' + closeCssBefore + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-close:after{' + closeCssAfter + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-content{' + contentCss + '}';\n document.body.append( spbcModalStyle );\n /* Cleantalk Modal CSS end */\n\n let overlay = document.createElement( 'div' );\n overlay.setAttribute( 'id', 'spbc-modal-overlay' );\n document.body.append( overlay );\n\n document.body.classList.add( 'spbc-modal-opened' );\n\n let inner = document.createElement( 'div' );\n inner.setAttribute( 'id', 'spbc-modal-inner' );\n inner.setAttribute( 'style', innerCss );\n overlay.append( inner );\n\n let close = document.createElement( 'div' );\n close.setAttribute( 'id', 'spbc-modal-close' );\n inner.append( close );\n\n let content = document.createElement( 'div' );\n if ( this.loaded ) {\n content.innerHTML = this.loaded;\n } else {\n content.innerHTML = 'Loading...';\n }\n content.setAttribute( 'id', 'spbc-modal-content' );\n inner.append( content );\n\n this.opened = true;\n\n return this;\n },\n\n close: function() {\n spbcModal.loaded = '';\n spbcModal.loading = false;\n document.body.classList.remove( 'spbc-modal-opened' );\n document.getElementById( 'spbc-modal-overlay' ).remove();\n document.getElementById( 'spbc-modal-styles' ).remove();\n document.dispatchEvent(\n new CustomEvent( 'spbcModalClosed', {\n bubbles: true,\n } ),\n );\n },\n\n};\n\n/* Cleantalk Modal helpers */\ndocument.addEventListener('click', function( e ) {\n if ( e.target && e.target.id === 'spbc-modal-overlay' || e.target.id === 'spbc-modal-close' ) {\n spbcModal.close();\n }\n});\ndocument.addEventListener('spbcModalContentLoaded', function( e ) {\n if ( spbcModal.opened && spbcModal.loaded ) {\n document.getElementById( 'spbc-modal-content' ).innerHTML = spbcModal.loaded;\n }\n});\n"],"names":["spbcModal","loaded","loading","opened","opening","load","action","this","callback","result","data","params","obj","document","dispatchEvent","CustomEvent","bubbles","spbcSendAJAXRequest","notJson","putError","errorText","put","html","confirm","header","text","filePath","let","textElem","contentBlock","getElementById","innerHTML","headerBlock","createElement","className","textContent","append","textBlock","length","slice","replace","buttonsBlock","yesButton","onclick","close","noButton","open","renderCss","cssStr","key","styles","overlayCss","z-index","position","top","left","width","height","background","display","justify-content","align-items","toString","innerCss","padding","margin","max-width","max-height","border","border-radius","box-shadow","closeCss","cursor","right","closeCssBefore","content","transform","closeCssAfter","contentCss","gap","overflow-y","overflow-x","bodyCss","overflow","spbcModalStyle","overlay","setAttribute","body","inner","classList","add","remove","addEventListener","e","target","id"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"spbc-modal.min.js","sources":["spbc-modal.js"],"sourcesContent":["/* Cleantalk Modal object */\nspbcModal = {\n\n // Flags\n loaded: false,\n loading: false,\n opened: false,\n opening: false,\n\n // Methods\n load: function( action ) {\n if ( ! this.loaded ) {\n this.loading = true;\n callback = function( result, data, params, obj ) {\n spbcModal.loading = false;\n spbcModal.loaded = result;\n document.dispatchEvent(\n new CustomEvent( 'spbcModalContentLoaded', {\n bubbles: true,\n } ),\n );\n };\n if ( typeof spbcSendAJAXRequest === 'function' ) {\n spbcSendAJAXRequest( {'action': action}, {'callback': callback, 'notJson': true} );\n }\n }\n },\n\n putError: function( errorText, hideSupportLink = false) {\n let html = '

An error

' +\n '

' + errorText + '

';\n if (!hideSupportLink) {\n html += 'Contact tech support';\n }\n this.put(html);\n },\n\n put: function( html ) {\n spbcModal.loading = false;\n spbcModal.loaded = html;\n document.dispatchEvent(\n new CustomEvent( 'spbcModalContentLoaded', {\n bubbles: true,\n } ),\n );\n },\n\n confirm: function(header, text = '', filePath = '', callback) {\n spbcModal.loading = false;\n let contentBlock = document.getElementById('spbc-modal-content');\n if (contentBlock) {\n contentBlock.innerHTML = '';\n\n const headerBlock = document.createElement('div');\n headerBlock.className = 'spbc-modal-header';\n headerBlock.textContent = header;\n contentBlock.append(headerBlock);\n\n // Create text block\n const textBlock = document.createElement('div');\n textBlock.className = 'spbc-modal-text-block';\n contentBlock.append(textBlock);\n\n const fullLinkPath = filePath;\n\n if (filePath && filePath.length > 60) {\n filePath = '...' + filePath.slice(filePath.length - 60);\n }\n\n const textElem = document.createElement('div');\n textElem.className = 'spbc-modal-text';\n textElem.textContent = text;\n textBlock.append(textElem);\n\n const pathElemWrapper = document.createElement('div');\n pathElemWrapper.className = 'spbc-modal-file_path_wrapper';\n textBlock.append(pathElemWrapper);\n const pathElem = document.createElement('span');\n pathElem.className = 'spbc-modal-file_path';\n pathElem.textContent = filePath ? filePath : '';\n pathElem.title = fullLinkPath;\n pathElemWrapper.append(pathElem);\n\n // Create buttons block\n const buttonsBlock = document.createElement('div');\n buttonsBlock.className = 'spbc-modal-buttons-block';\n contentBlock.append(buttonsBlock);\n\n const yesButton = document.createElement('button');\n yesButton.className = 'spbc-modal-button spbc_manual_link';\n yesButton.textContent = 'Yes';\n yesButton.onclick = function() {\n callback(true);\n spbcModal.close();\n };\n buttonsBlock.append(yesButton);\n\n const noButton = document.createElement('button');\n noButton.className = 'spbc-modal-button spbc_manual_link';\n noButton.textContent = 'No';\n noButton.onclick = function() {\n spbcModal.close();\n };\n buttonsBlock.append(noButton);\n }\n document.dispatchEvent(\n new CustomEvent( 'spbcModalContentLoaded', {\n bubbles: true,\n } ),\n );\n },\n\n open: function() {\n /* Cleantalk Modal CSS start */\n let renderCss = function() {\n let cssStr = '';\n for ( key in this.styles ) {\n if (key) {\n cssStr += key + ':' + this.styles[key] + ';';\n }\n }\n return cssStr;\n };\n let overlayCss = {\n styles: {\n 'z-index': '9999',\n 'position': 'fixed',\n 'top': '0',\n 'left': '0',\n 'width': '100%',\n 'height': '100%',\n 'background': 'rgba(0,0,0,0.5)',\n 'display': 'flex',\n 'justify-content': 'center',\n 'align-items': 'center',\n },\n toString: renderCss,\n };\n let innerCss = {\n styles: {\n 'position': 'relative',\n 'padding': '20px',\n 'margin': '10px',\n 'max-width': '550px',\n 'max-height': '500px',\n 'background': '#FFF',\n 'border': '1px solid rgba(0,0,0,0.75)',\n 'border-radius': '4px',\n 'box-shadow': '7px 7px 5px 0px rgba(50,50,50,0.75)',\n },\n toString: renderCss,\n };\n let closeCss = {\n styles: {\n 'position': 'absolute',\n 'background': '#FFF',\n 'width': '20px',\n 'height': '20px',\n 'border': '2px solid rgba(0,0,0,0.75)',\n 'border-radius': '15px',\n 'cursor': 'pointer',\n 'top': '-8px',\n 'right': '-8px',\n },\n toString: renderCss,\n };\n let closeCssBefore = {\n styles: {\n 'content': '\"\"',\n 'display': 'block',\n 'position': 'absolute',\n 'background': '#000',\n 'border-radius': '1px',\n 'width': '2px',\n 'height': '16px',\n 'top': '2px',\n 'left': '9px',\n 'transform': 'rotate(45deg)',\n },\n toString: renderCss,\n };\n let closeCssAfter = {\n styles: {\n 'content': '\"\"',\n 'display': 'block',\n 'position': 'absolute',\n 'background': '#000',\n 'border-radius': '1px',\n 'width': '2px',\n 'height': '16px',\n 'top': '2px',\n 'left': '9px',\n 'transform': 'rotate(-45deg)',\n },\n toString: renderCss,\n };\n let contentCss = {\n styles: {\n 'display': 'grid',\n 'gap': '20px',\n 'overflow-y': 'auto',\n 'max-height': '460px',\n 'overflow-x': 'hidden',\n },\n toString: renderCss,\n };\n let bodyCss = {\n styles: {\n 'overflow': 'hidden',\n },\n toString: renderCss,\n };\n let spbcModalStyle = document.createElement( 'style' );\n spbcModalStyle.setAttribute( 'id', 'spbc-modal-styles' );\n spbcModalStyle.innerHTML = 'body.spbc-modal-opened{' + bodyCss + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-overlay{' + overlayCss + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-close{' + closeCss + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-close:before{' + closeCssBefore + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-close:after{' + closeCssAfter + '}';\n spbcModalStyle.innerHTML += '#spbc-modal-content{' + contentCss + '}';\n document.body.append( spbcModalStyle );\n /* Cleantalk Modal CSS end */\n\n let overlay = document.createElement( 'div' );\n overlay.setAttribute( 'id', 'spbc-modal-overlay' );\n document.body.append( overlay );\n\n document.body.classList.add( 'spbc-modal-opened' );\n\n let inner = document.createElement( 'div' );\n inner.setAttribute( 'id', 'spbc-modal-inner' );\n inner.setAttribute( 'style', innerCss );\n overlay.append( inner );\n\n let close = document.createElement( 'div' );\n close.setAttribute( 'id', 'spbc-modal-close' );\n inner.append( close );\n\n let content = document.createElement( 'div' );\n if ( this.loaded ) {\n content.innerHTML = this.loaded;\n } else {\n content.innerHTML = 'Loading...';\n }\n content.setAttribute( 'id', 'spbc-modal-content' );\n inner.append( content );\n\n this.opened = true;\n\n return this;\n },\n\n close: function() {\n spbcModal.loaded = '';\n spbcModal.loading = false;\n document.body.classList.remove( 'spbc-modal-opened' );\n document.getElementById( 'spbc-modal-overlay' ).remove();\n document.getElementById( 'spbc-modal-styles' ).remove();\n document.dispatchEvent(\n new CustomEvent( 'spbcModalClosed', {\n bubbles: true,\n } ),\n );\n },\n\n};\n\n/* Cleantalk Modal helpers */\ndocument.addEventListener('click', function( e ) {\n if ( e.target && e.target.id === 'spbc-modal-overlay' || e.target.id === 'spbc-modal-close' ) {\n spbcModal.close();\n }\n});\ndocument.addEventListener('spbcModalContentLoaded', function( e ) {\n if ( spbcModal.opened && spbcModal.loaded ) {\n document.getElementById( 'spbc-modal-content' ).innerHTML = spbcModal.loaded;\n }\n});\n"],"names":["spbcModal","loaded","loading","opened","opening","load","action","this","callback","result","data","params","obj","document","dispatchEvent","CustomEvent","bubbles","spbcSendAJAXRequest","notJson","putError","errorText","hideSupportLink","let","html","put","confirm","header","text","filePath","pathElem","noButton","contentBlock","getElementById","innerHTML","headerBlock","createElement","className","textContent","append","textBlock","fullLinkPath","length","slice","textElem","pathElemWrapper","title","buttonsBlock","yesButton","onclick","close","open","renderCss","cssStr","key","styles","overlayCss","z-index","position","top","left","width","height","background","display","justify-content","align-items","toString","innerCss","padding","margin","max-width","max-height","border","border-radius","box-shadow","closeCss","cursor","right","closeCssBefore","content","transform","closeCssAfter","contentCss","gap","overflow-y","overflow-x","bodyCss","overflow","spbcModalStyle","overlay","setAttribute","body","inner","classList","add","remove","addEventListener","e","target","id"],"mappings":"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"} \ No newline at end of file diff --git a/js/spbc-react-bundle.js b/js/spbc-react-bundle.js index 532ce2c2f..c848a22c5 100644 --- a/js/spbc-react-bundle.js +++ b/js/spbc-react-bundle.js @@ -16,7 +16,7 @@ \*************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nclass SpbctAboutCT extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {\n constructor(props) {\n super(props);\n this.state = {\n date: new Date()\n };\n }\n render() {\n const data = this.props.data;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", {\n htmlFor: \"spbc_page_header_about_block\",\n className: \"spbc_page_header_info__block_label\"\n }, \"About CleanTalk\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n id: \"spbc_page_header_about_block\",\n className: \"spbc_page_header_info__block_body\",\n style: {\n height: \"100%\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block__divider\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.supportLink\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.homepage\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.malwareCleaning\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.websiteSecurityAudit\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.gdprComplianceLink\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block__divider\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.trademark\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block__divider\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.feedback\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block__divider\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.premium\n }\n }))));\n }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SpbctAboutCT);\n\n//# sourceURL=webpack:///./js/src/react/components/SpbctAboutCT.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nclass SpbctAboutCT extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {\n constructor(props) {\n super(props);\n this.state = {\n date: new Date()\n };\n }\n render() {\n const data = this.props.data;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", {\n htmlFor: \"spbc_page_header_about_block\",\n className: \"spbc_page_header_info__block_label\"\n }, \"About CleanTalk\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n id: \"spbc_page_header_about_block\",\n className: \"spbc_page_header_info__block_body\",\n style: {\n height: \"100%\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block__divider\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.supportLink\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.homepage\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.malwareCleaning\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.gdprComplianceLink\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block__divider\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.trademark\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block__divider\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.feedback\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__about_block__divider\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"spbc_page_header_info__block_row\",\n dangerouslySetInnerHTML: {\n __html: data.premium\n }\n }))));\n }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SpbctAboutCT);\n\n//# sourceURL=webpack:///./js/src/react/components/SpbctAboutCT.js?"); /***/ }), @@ -66,7 +66,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac \*************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { -eval("/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */if(true){(function(){'use strict';/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!=='undefined'&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==='function'){__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());}var React=__webpack_require__(/*! react */ \"./node_modules/react/index.js\");var Scheduler=__webpack_require__(/*! scheduler */ \"./node_modules/scheduler/index.js\");var ReactSharedInternals=React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;var suppressWarning=false;function setSuppressWarning(newSuppressWarning){{suppressWarning=newSuppressWarning;}}// In DEV, calls to console.warn and console.error get replaced\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\nfunction warn(format){{if(!suppressWarning){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];}printWarning('warn',format,args);}}}function error(format){{if(!suppressWarning){for(var _len2=arguments.length,args=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2];}printWarning('error',format,args);}}}function printWarning(level,format,args){// When changing this logic, you might want to also\n// update consoleWithStackDev.www.js as well.\n{var ReactDebugCurrentFrame=ReactSharedInternals.ReactDebugCurrentFrame;var stack=ReactDebugCurrentFrame.getStackAddendum();if(stack!==''){format+='%s';args=args.concat([stack]);}// eslint-disable-next-line react-internal/safe-string-coercion\nvar argsWithFormat=args.map(function(item){return String(item);});// Careful: RN currently depends on this prefix\nargsWithFormat.unshift('Warning: '+format);// We intentionally don't use spread (or .apply) directly because it\n// breaks IE9: https://github.com/facebook/react/issues/13610\n// eslint-disable-next-line react-internal/no-production-logging\nFunction.prototype.apply.call(console[level],console,argsWithFormat);}}var FunctionComponent=0;var ClassComponent=1;var IndeterminateComponent=2;// Before we know whether it is function or class\nvar HostRoot=3;// Root of a host tree. Could be nested inside another node.\nvar HostPortal=4;// A subtree. Could be an entry point to a different renderer.\nvar HostComponent=5;var HostText=6;var Fragment=7;var Mode=8;var ContextConsumer=9;var ContextProvider=10;var ForwardRef=11;var Profiler=12;var SuspenseComponent=13;var MemoComponent=14;var SimpleMemoComponent=15;var LazyComponent=16;var IncompleteClassComponent=17;var DehydratedFragment=18;var SuspenseListComponent=19;var ScopeComponent=21;var OffscreenComponent=22;var LegacyHiddenComponent=23;var CacheComponent=24;var TracingMarkerComponent=25;// -----------------------------------------------------------------------------\nvar enableClientRenderFallbackOnTextMismatch=true;// TODO: Need to review this code one more time before landing\n// the react-reconciler package.\nvar enableNewReconciler=false;// Support legacy Primer support on internal FB www\nvar enableLazyContextPropagation=false;// FB-only usage. The new API has different semantics.\nvar enableLegacyHidden=false;// Enables unstable_avoidThisFallback feature in Fiber\nvar enableSuspenseAvoidThisFallback=false;// Enables unstable_avoidThisFallback feature in Fizz\n// React DOM Chopping Block\n//\n// Similar to main Chopping Block but only flags related to React DOM. These are\n// grouped because we will likely batch all of them into a single major release.\n// -----------------------------------------------------------------------------\n// Disable support for comment nodes as React DOM containers. Already disabled\n// in open source, but www codebase still relies on it. Need to remove.\nvar disableCommentsAsDOMContainers=true;// Disable javascript: URL strings in href for XSS protection.\n// and client rendering, mostly to allow JSX attributes to apply to the custom\n// element's object properties instead of only HTML attributes.\n// https://github.com/facebook/react/issues/11347\nvar enableCustomElementPropertySupport=false;// Disables children for