Anti-spam - Version 7.0.1

Version Description

  • Removed https notice.
Download this release

Release Info

Developer alexkovalevv
Plugin Icon 128x128 Anti-spam
Version 7.0.1
Comparing to
See all releases

Code changes from version 6.5.4 to 7.0.1

Files changed (151) hide show
  1. admin/ajax/logs.php +14 -14
  2. admin/assets/css/about-premium.css +69 -69
  3. admin/assets/css/about-premium.css.map +0 -1
  4. admin/assets/css/dashboard-dashboard.css +302 -0
  5. admin/assets/css/firewall/firewall-attacks-log.css +68 -0
  6. admin/assets/css/firewall/firewall-attacks-log.less +86 -0
  7. admin/assets/css/firewall/firewall-dashboard.css +83 -0
  8. admin/assets/css/firewall/firewall-dashboard.less +91 -0
  9. admin/assets/css/firewall/firewall-ips-blocking.css +98 -0
  10. admin/assets/css/firewall/firewall-ips-blocking.less +121 -0
  11. admin/assets/css/firewall/firewall-settings.css +205 -0
  12. admin/assets/css/firewall/firewall-settings.less +211 -0
  13. admin/assets/css/libs/jquery.datetimepicker.min.css +1 -0
  14. admin/assets/css/quick-dashboard.css +266 -0
  15. admin/assets/css/settings.css.map +0 -1
  16. admin/assets/css/sweetalert-custom.css +152 -78
  17. admin/assets/css/sweetalert-custom.css.map +1 -1
  18. admin/assets/css/sweetalert-custom.less +85 -4
  19. admin/assets/css/titan-security.css +213 -0
  20. admin/assets/img/check.png +0 -0
  21. admin/assets/img/clock.png +0 -0
  22. admin/assets/img/firewall-modal-preloader.gif +0 -0
  23. admin/assets/img/icon.png +0 -0
  24. admin/assets/img/loader.gif +0 -0
  25. admin/assets/img/titan-icon.png +0 -0
  26. admin/assets/img/x.png +0 -0
  27. admin/assets/js/dashboard.js +215 -0
  28. admin/assets/js/firewall/firewall-block-ip.js +126 -0
  29. admin/assets/js/firewall/firewall-dashboard.js +289 -0
  30. admin/assets/js/firewall/firewall-settings.js +20 -0
  31. admin/assets/js/import.js +103 -0
  32. admin/assets/js/libs/circular-progress.js +140 -0
  33. admin/assets/js/libs/jquery.datetimepicker.full.min.js +1 -0
  34. admin/assets/js/libs/popover.min.js +1 -0
  35. admin/assets/js/quickstart.js +16 -0
  36. admin/assets/js/settings.js +127 -18
  37. admin/assets/js/trial-popup.js +30 -4
  38. admin/boot.php +51 -106
  39. admin/class-activation.php +21 -25
  40. admin/class-page-titan-basic.php +119 -0
  41. admin/index.php +0 -0
  42. admin/pages/class-pages-about.php +0 -205
  43. admin/pages/{class-pages-settings.php → class-pages-antispam.php} +71 -52
  44. admin/pages/class-pages-check.php +386 -0
  45. admin/pages/class-pages-dashboard.php +380 -0
  46. admin/pages/class-pages-license.php +199 -121
  47. admin/pages/class-pages-logs.php +63 -44
  48. admin/pages/class-pages-plugin-settings.php +511 -0
  49. admin/pages/class-pages-scanner.php +114 -0
  50. admin/pages/class-pages-sitechecker.php +129 -0
  51. admin/pages/class-pages-tweaks.php +297 -0
  52. admin/pages/firewall/class-pages-bruteforce.php +309 -0
  53. admin/pages/firewall/class-pages-firewall-attacks-log.php +138 -0
  54. admin/pages/firewall/class-pages-firewall-blocking.php +152 -0
  55. admin/pages/firewall/class-pages-firewall-login-attempts.php +162 -0
  56. admin/pages/firewall/class-pages-firewall-settings.php +729 -0
  57. admin/pages/firewall/class-pages-firewall.php +107 -0
  58. anti-spam.php +92 -73
  59. assets/css/admin-bar.css +55 -0
  60. assets/img/titan-icon.png +0 -0
  61. {admin → includes/antispam}/assets/css/settings.css +56 -56
  62. {admin → includes/antispam}/assets/css/settings.less +0 -0
  63. includes/antispam/assets/js/settings.js +24 -0
  64. includes/antispam/boot.php +12 -0
  65. includes/antispam/classes/class-antispam.php +143 -0
  66. includes/{class-protector.php → antispam/classes/class-protector.php} +9 -8
  67. includes/antispam/functions.php +261 -0
  68. includes/audit/assets/css/audit-dashboard.css +16 -0
  69. includes/audit/assets/js/audit.js +3 -0
  70. includes/audit/assets/js/audit_ajax.js +40 -0
  71. includes/audit/boot.php +15 -0
  72. includes/audit/classes/class.audit.php +504 -0
  73. includes/audit/classes/class.auditresult.php +75 -0
  74. includes/audit/classes/class.cert.php +187 -0
  75. includes/audit/views/all-audit.php +73 -0
  76. includes/bruteforce/class-helpers.php +65 -0
  77. includes/bruteforce/class-limit-login-attempts.php +1086 -0
  78. includes/bruteforce/const.php +6 -0
  79. includes/bruteforce/do_activate.php +17 -0
  80. includes/check/assets/css/check-dashboard.css +148 -0
  81. includes/check/assets/img/ajax-loader-big.gif +0 -0
  82. includes/check/assets/img/close.svg +5 -0
  83. includes/check/assets/img/error.png +0 -0
  84. includes/check/assets/img/loader.gif +0 -0
  85. includes/check/assets/img/none.png +0 -0
  86. includes/check/assets/img/off.png +0 -0
  87. includes/check/assets/img/ok.png +0 -0
  88. includes/check/assets/img/warning.png +0 -0
  89. includes/check/assets/js/check.js +51 -0
  90. includes/check/boot.php +19 -0
  91. includes/check/classes/class.check.php +207 -0
  92. includes/check/views/check.php +25 -0
  93. includes/check/views/hided.php +70 -0
  94. includes/check/views/main.php +50 -0
  95. includes/class-anti-spam-plugin.php +0 -143
  96. includes/class-titan-security-plugin.php +315 -0
  97. includes/class-views.php +112 -0
  98. includes/class.module-base.php +100 -0
  99. includes/functions.php +406 -115
  100. includes/helpers.php +237 -0
  101. includes/index.php +2 -0
  102. includes/logger/assets/css/base.css +19 -19
  103. includes/logger/assets/js/base.js +5 -6
  104. includes/logger/class-logger-export.php +78 -72
  105. includes/logger/class-logger-reader.php +9 -9
  106. includes/logger/class-logger-writter.php +311 -292
  107. includes/scanner/assets/css/base-statistic.css +473 -0
  108. includes/scanner/assets/css/scanner-dashboard.css +47 -0
  109. includes/scanner/assets/js/Chart.min.js +10 -0
  110. includes/scanner/assets/js/scanner.js +107 -0
  111. includes/scanner/assets/js/statistic.js +34 -0
  112. includes/scanner/boot.php +12 -0
  113. includes/scanner/classes/class.scanner.php +166 -0
  114. includes/scanner/classes/scanner/File.php +118 -0
  115. includes/scanner/classes/scanner/HashListPool.php +61 -0
  116. includes/scanner/classes/scanner/Match.php +82 -0
  117. includes/scanner/classes/scanner/Scanner.php +207 -0
  118. includes/scanner/classes/scanner/Signature.php +177 -0
  119. includes/scanner/classes/scanner/SignaturePool.php +190 -0
  120. includes/scanner/classes/scanner/boot.php +13 -0
  121. includes/scanner/test.php +55 -0
  122. includes/scanner/views/results.php +87 -0
  123. includes/scanner/views/scanner.php +76 -0
  124. includes/sitechecker/assets/css/sitechecker-dashboard.css +180 -0
  125. includes/sitechecker/assets/img/delete.png +0 -0
  126. includes/sitechecker/assets/img/loader.gif +0 -0
  127. includes/sitechecker/assets/js/app.js +234 -0
  128. includes/sitechecker/assets/js/firebase-messaging-sw.js +46 -0
  129. includes/sitechecker/assets/js/firebase.min.js +5 -0
  130. includes/sitechecker/assets/js/sitechecker.js +83 -0
  131. includes/sitechecker/boot.php +14 -0
  132. includes/sitechecker/classes/class.sitechecker.php +238 -0
  133. includes/sitechecker/views/sitechecker.php +87 -0
  134. includes/tweaks/class-security-tweaks.php +361 -0
  135. includes/tweaks/password-requirements/assets/js/login-interstitial-util.js +131 -0
  136. includes/tweaks/password-requirements/assets/js/script.js +3 -0
  137. includes/tweaks/password-requirements/boot.php +13 -0
  138. includes/tweaks/password-requirements/class-canonical-roles.php +423 -0
  139. includes/tweaks/password-requirements/class-password-requirements-base.php +371 -0
  140. includes/tweaks/password-requirements/class-password-requirements.php +509 -0
  141. includes/tweaks/password-requirements/class-strong-passwords.php +260 -0
  142. includes/tweaks/password-requirements/libs/zxcvbn-php/index.php +1 -0
  143. includes/tweaks/password-requirements/libs/zxcvbn-php/matcher.php +103 -0
  144. includes/tweaks/password-requirements/libs/zxcvbn-php/matchers/adjacency_graphs.json +1 -0
  145. includes/tweaks/password-requirements/libs/zxcvbn-php/matchers/bruteforce.php +72 -0
  146. includes/tweaks/password-requirements/libs/zxcvbn-php/matchers/date.php +319 -0
  147. includes/tweaks/password-requirements/libs/zxcvbn-php/matchers/dictionary-l33t.php +114 -0
  148. includes/tweaks/password-requirements/libs/zxcvbn-php/matchers/dictionary-reverse.php +44 -0
  149. includes/tweaks/password-requirements/libs/zxcvbn-php/matchers/dictionary.php +211 -0
  150. includes/tweaks/password-requirements/libs/zxcvbn-php/matchers/index.php +1 -0
  151. includes/tweaks/password-requirements/libs/zxcvbn-php/matchers/ranked_frequency_list-english_wikipedia.json +1 -0
admin/ajax/logs.php CHANGED
@@ -3,22 +3,22 @@
3
  /**
4
  * Used to clean-up logs.
5
  */
6
- add_action( 'wp_ajax_wlogger-logs-cleanup', function () {
7
- check_admin_referer( 'wlogger_clean_logs', 'nonce' );
8
 
9
- if ( ! current_user_can( 'manage_options' ) ) {
10
- wp_die( - 1 );
11
  }
12
 
13
- if ( ! \WBCR\Logger\Writter::clean_up() ) {
14
- wp_send_json_error( [
15
- 'message' => esc_html__( 'Failed to clean-up logs. Please try again later.', 'robin-image-optimizer' ),
16
- 'type' => 'danger',
17
- ] );
18
  }
19
 
20
- wp_send_json( [
21
- 'message' => esc_html__( 'Logs clean-up successfully', 'robin-image-optimizer' ),
22
- 'type' => 'success',
23
- ] );
24
- } );
3
  /**
4
  * Used to clean-up logs.
5
  */
6
+ add_action('wp_ajax_wtitan-logger-logs-cleanup', function () {
7
+ check_admin_referer('wlogger_clean_logs', 'nonce');
8
 
9
+ if( !current_user_can('manage_options') ) {
10
+ wp_die(-1);
11
  }
12
 
13
+ if( !\WBCR\Titan\Logger\Writter::clean_up() ) {
14
+ wp_send_json_error([
15
+ 'message' => esc_html__('Failed to clean-up logs. Please try again later.', 'robin-image-optimizer'),
16
+ 'type' => 'danger',
17
+ ]);
18
  }
19
 
20
+ wp_send_json([
21
+ 'message' => esc_html__('Logs clean-up successfully', 'robin-image-optimizer'),
22
+ 'type' => 'success',
23
+ ]);
24
+ });
admin/assets/css/about-premium.css CHANGED
@@ -1,70 +1,70 @@
1
- #WBCR .wantispam-about-premium h1 {
2
- font-size: 35px;
3
- }
4
- #WBCR .wantispam-about-premium__title {
5
- text-align: left;
6
- margin-bottom: 20px;
7
- }
8
- #WBCR .wantispam-about-premium__title--h2 {
9
- margin-top: 60px;
10
- }
11
- #WBCR .wantispam-about-premium__headline-title {
12
- font-size: 15px;
13
- background: #fff;
14
- padding: 20px;
15
- text-align: left;
16
- }
17
- #WBCR .wantispam-about-premium__columns {
18
- margin: 40px 0;
19
- }
20
- #WBCR .wantispam-about-premium__column {
21
- text-align: center;
22
- background: #fff;
23
- margin-left: 5px;
24
- padding: 20px 0;
25
- }
26
- #WBCR .wantispam-about-premium__column .dashicons {
27
- color: #ffc107;
28
- font-size: 106px;
29
- width: 106px;
30
- height: 106px;
31
- }
32
- #WBCR .wantispam-about-premium__column p {
33
- font-size: 13px;
34
- color: #909090;
35
- padding: 6px;
36
- }
37
- #WBCR .wantispam-about-premium__activate-trial {
38
- text-align: center;
39
- padding: 30px;
40
- background: #fff;
41
- border: 1px dashed #d0a295;
42
- margin-top: 60px;
43
- }
44
- #WBCR .wantispam-about-premium__activate-trial p {
45
- font-size: 13px;
46
- color: #909090;
47
- margin-top: 20px;
48
- }
49
- #WBCR .wantispam-about-premium__activate-trial-button {
50
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1), inset 0 1px 1px rgba(255, 255, 255, 0.7);
51
- color: #ffffff;
52
- border: 1px solid #fe5421;
53
- background: #fe5421;
54
- text-transform: uppercase;
55
- }
56
- #WBCR .wantispam-about-premium ul {
57
- padding-left: 60px;
58
- list-style: square;
59
- }
60
- #WBCR .wantispam-about-premium ul li {
61
- font-size: 17px;
62
- margin-bottom: 10px;
63
- }
64
- #WBCR .wantispam-about-premium ul li p {
65
- font-size: 13px;
66
- color: #909090;
67
- background: #fff;
68
- padding: 6px;
69
- }
70
  /*# sourceMappingURL=about-premium.css.map */
1
+ #WBCR .wantispam-about-premium h1 {
2
+ font-size: 35px;
3
+ }
4
+ #WBCR .wantispam-about-premium__title {
5
+ text-align: left;
6
+ margin-bottom: 20px;
7
+ }
8
+ #WBCR .wantispam-about-premium__title--h2 {
9
+ margin-top: 60px;
10
+ }
11
+ #WBCR .wantispam-about-premium__headline-title {
12
+ font-size: 15px;
13
+ background: #fff;
14
+ padding: 20px;
15
+ text-align: left;
16
+ }
17
+ #WBCR .wantispam-about-premium__columns {
18
+ margin: 40px 0;
19
+ }
20
+ #WBCR .wantispam-about-premium__column {
21
+ text-align: center;
22
+ background: #fff;
23
+ margin-left: 5px;
24
+ padding: 20px 0;
25
+ }
26
+ #WBCR .wantispam-about-premium__column .dashicons {
27
+ color: #ffc107;
28
+ font-size: 106px;
29
+ width: 106px;
30
+ height: 106px;
31
+ }
32
+ #WBCR .wantispam-about-premium__column p {
33
+ font-size: 13px;
34
+ color: #909090;
35
+ padding: 6px;
36
+ }
37
+ #WBCR .wantispam-about-premium__activate-trial {
38
+ text-align: center;
39
+ padding: 30px;
40
+ background: #fff;
41
+ border: 1px dashed #d0a295;
42
+ margin-top: 60px;
43
+ }
44
+ #WBCR .wantispam-about-premium__activate-trial p {
45
+ font-size: 13px;
46
+ color: #909090;
47
+ margin-top: 20px;
48
+ }
49
+ #WBCR .wantispam-about-premium__activate-trial-button {
50
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1), inset 0 1px 1px rgba(255, 255, 255, 0.7);
51
+ color: #ffffff;
52
+ border: 1px solid #fe5421;
53
+ background: #fe5421;
54
+ text-transform: uppercase;
55
+ }
56
+ #WBCR .wantispam-about-premium ul {
57
+ padding-left: 60px;
58
+ list-style: square;
59
+ }
60
+ #WBCR .wantispam-about-premium ul li {
61
+ font-size: 17px;
62
+ margin-bottom: 10px;
63
+ }
64
+ #WBCR .wantispam-about-premium ul li p {
65
+ font-size: 13px;
66
+ color: #909090;
67
+ background: #fff;
68
+ padding: 6px;
69
+ }
70
  /*# sourceMappingURL=about-premium.css.map */
admin/assets/css/about-premium.css.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["about-premium.less"],"names":[],"mappings":"AAAA,KACE,yBACE;EACE,eAAA;;AAGF,KALF,yBAKG;EACC,gBAAA;EACA,mBAAA;;AAEA,KATJ,yBAKG,OAIE;EACC,gBAAA;;AAIJ,KAdF,yBAcG;EACC,eAAA;EACA,gBAAA;EACA,aAAA;EACA,gBAAA;;AAGF,KArBF,yBAqBG;EACC,cAAA;;AAGF,KAzBF,yBAyBG;EACC,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,eAAA;;AAJF,KAzBF,yBAyBG,QAMC;EACE,cAAA;EACA,gBAAA;EACA,YAAA;EACA,aAAA;;AAVJ,KAzBF,yBAyBG,QAaC;EACE,eAAA;EACA,cAAA;EACA,YAAA;;AAKJ,KA9CF,yBA8CG;EACC,kBAAA;EACA,aAAA;EACA,gBAAA;EACA,0BAAA;EACA,gBAAA;;AALF,KA9CF,yBA8CG,gBAOC;EACE,eAAA;EACA,cAAA;EACA,gBAAA;;AAGF,KA3DJ,yBA8CG,gBAaE;EACC,0FAAA;EACA,cAAA;EACA,yBAAA;EACA,mBAAA;EACA,yBAAA;;AAjER,KACE,yBAqEE;EACE,kBAAA;EACA,kBAAA;;AAxEN,KACE,yBAqEE,GAIE;EACE,eAAA;EACA,mBAAA;;AA5ER,KACE,yBAqEE,GAIE,GAIE;EACE,eAAA;EACA,cAAA;EACA,gBAAA;EACA,YAAA","file":"about-premium.css"}
 
admin/assets/css/dashboard-dashboard.css ADDED
@@ -0,0 +1,302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #wpfooter {
2
+ position: initial !important;
3
+ /*display: inline;*/
4
+ }
5
+
6
+ .wt-dashboard-container {
7
+ margin: 10px 5px 10px 5px;
8
+ /*display: inline-block;*/
9
+ }
10
+
11
+ .wt-dashboard-block {
12
+ /*width: 100%;*/
13
+ border: 1px solid #d6d6d6;
14
+ background: #fff;
15
+ text-align: center;
16
+ border-radius: 5px;
17
+ min-height: 16em !important;
18
+ }
19
+
20
+ .wt-row {
21
+ width: 100%;
22
+ display: inline-block;
23
+ }
24
+
25
+ .wt-dashboard-block div.row {
26
+ padding: 0 15px 0 15px;
27
+ }
28
+
29
+ .wt-block-gutter {
30
+ padding: 0 10px 0 5px !important;
31
+ }
32
+
33
+ .wt-dashboard-block-header {
34
+ text-align: left;
35
+ padding: 0 !important;
36
+ }
37
+
38
+ .wt-dashboard-block-header h4 {
39
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
40
+ font-size: 12px;
41
+ font-weight: 600;
42
+ margin: 10px;
43
+ color: #868686;
44
+ text-transform: uppercase;
45
+ }
46
+
47
+ .wt-dashboard-block-header-right {
48
+ text-align: right;
49
+ }
50
+
51
+ .wt-dashboard-block-content {
52
+ margin: 10px -20px 10px 20px;
53
+ text-align: left;
54
+ }
55
+
56
+ .wt-dashboard-block-content-right {
57
+ margin: 10px 20px 10px -20px;
58
+ text-align: right;
59
+ }
60
+
61
+ .wt-block-description {
62
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
63
+ font-size: 12px;
64
+ margin-top: 10px;
65
+ color: #868686;
66
+ }
67
+
68
+ .wt-firewall-icon-ok, .wt-firewall-icon-clock, .wt-firewall-icon-dissmiss, .wt-dashboard-icon-loader {
69
+ width: 50px;
70
+ height: 60px;
71
+ display: inline-block;
72
+ }
73
+
74
+ .wt-firewall-icon-ok {
75
+ background: url('../img/check.png') no-repeat center bottom;
76
+ background-size: contain;
77
+ }
78
+
79
+ .wt-firewall-icon-clock {
80
+ background: url('../img/clock.png') no-repeat center bottom;
81
+ background-size: contain;
82
+ }
83
+
84
+ .wt-firewall-icon-dissmiss {
85
+ background: url('../img/x.png') no-repeat center bottom;
86
+ background-size: contain;
87
+ }
88
+
89
+ .wt-dashboard-icon-loader {
90
+ background: transparent url("../img/loader.gif") no-repeat center bottom;
91
+ background-size: contain;
92
+ }
93
+
94
+ .wt-block-loading {
95
+ opacity: 0.5;
96
+ }
97
+
98
+ .wt-checkbox {
99
+ background-color: #5d05b7 !important;
100
+ border: 2px solid #5d05b7 !important;
101
+ border-radius: 5px !important;
102
+ }
103
+
104
+ .factory-bootstrap-427 .factory-buttons-way .factory-on.active {
105
+ background-color: #5d05b7 !important;
106
+ box-shadow: none !important;
107
+ border: none !important;
108
+ }
109
+
110
+ .factory-bootstrap-427 .factory-buttons-way .factory-off.active {
111
+ background-color: #5d05b7 !important;
112
+ box-shadow: none !important;
113
+ border: none !important;
114
+ }
115
+
116
+ .wt-scanner-tabs-container {
117
+ background: #fff !important;
118
+ }
119
+
120
+ .factory-bootstrap-427 .nav-tabs > li.active > a, .factory-bootstrap-427 .nav-tabs > li.active > a:focus, .factory-bootstrap-427 .nav-tabs > li.active > a:hover {
121
+ background-color: #efefef !important;
122
+ }
123
+
124
+ .wtitan-tab-table-container {
125
+ background-color: #efefef !important;
126
+ }
127
+
128
+ .wtitan-scanner-vulner-table-container table thead td {
129
+ background-color: #efefef !important;
130
+ }
131
+ .wtitan-scanner-results table td
132
+ {
133
+ word-break: break-word;
134
+ }
135
+ .wtitan-scanner-results table td code
136
+ {
137
+ word-break: break-word;
138
+ white-space: normal;
139
+ }
140
+ /*----------------*/
141
+ li.wt-tabs-pro a:after {
142
+ display: inline-block;
143
+ position: relative;
144
+ content: 'PRO';
145
+ background: #f6065b;
146
+ border-radius: 4px;
147
+ color: #fff;
148
+ font-size: 10px;
149
+ line-height: 1;
150
+ font-style: normal;
151
+ padding: 4px 6px;
152
+ margin-left: 4px;
153
+ vertical-align: top;
154
+ top: 0;
155
+ left: 5px;
156
+ right: 0;
157
+ z-index: 11;
158
+ cursor: pointer;
159
+ }
160
+
161
+ .wt-dashboard-pro-span {
162
+ background: #f6065b;
163
+ border-radius: 4px;
164
+ color: #fff;
165
+ font-size: 10px;
166
+ line-height: 1;
167
+ font-style: normal;
168
+ padding: 4px 6px;
169
+ margin-left: 4px;
170
+ }
171
+
172
+ .wt-scan-icon-loader {
173
+ height: 55px;
174
+ background: transparent url("../img/loader.gif");
175
+ background-repeat: no-repeat;
176
+ background-position: center center;
177
+ background-size: 60px;
178
+ }
179
+
180
+ .wt-magenta-text {
181
+ color: #5d05b7;
182
+ font-weight: 500;
183
+ }
184
+
185
+ .wt-dashboard-audit-button, .wt-dashboard-scan-button {
186
+ font-size: 16px !important;
187
+ }
188
+
189
+ .wt-dashboard-audit-button {
190
+ margin: 20px 10px 0 0 !important;
191
+ }
192
+
193
+ /*--- Scanner -------*/
194
+ .wt-dashboard-scan-button-loader, .wt-scan-icon-loader {
195
+ display: inline-block;
196
+ height: 34px;
197
+ width: 34px;
198
+ background: transparent url("../img/loader.gif") no-repeat center bottom;
199
+ background-size: contain;
200
+ vertical-align: bottom;
201
+
202
+ }
203
+
204
+ .wt-scanner-chart, .wt-scanner-legend {
205
+ border-radius: 5px;
206
+ margin: 0 10px 10px 10px;
207
+ }
208
+
209
+ .wt-scanner-chart-clean[style*="width: 0%"],
210
+ .wt-scanner-chart-suspicious[style*="width: 0%"],
211
+ .wt-scanner-chart-notverified[style*="width: 0%"] {
212
+ display: none !important;
213
+ }
214
+
215
+ .wt-scanner-chart-clean, .wt-scanner-chart-suspicious, .wt-scanner-chart-notverified {
216
+ border: 1px solid #c1c1c1;
217
+ border-radius: 5px;
218
+ display: inline-block !important;
219
+ content: "";
220
+ height: 30px;
221
+ margin: 0 -5px;
222
+ position: relative;
223
+ }
224
+
225
+ .wt-scanner-chart-clean {
226
+ background-color: #5d05b7;
227
+ z-index: 10;
228
+ border-right: 0;
229
+ }
230
+
231
+ .wt-scanner-chart-suspicious {
232
+ background-color: #f6065b;
233
+ z-index: 9;
234
+ border-right: 0;
235
+ }
236
+
237
+ .wt-scanner-chart-notverified {
238
+ background-color: #dadada;
239
+ z-index: 8;
240
+ }
241
+
242
+ .wt-scanner-legend td {
243
+ padding: 0 0 0 10px;
244
+ font-size: 12px;
245
+ -webkit-transition: background-color 200ms ease-in-out;
246
+ -moz-transition: background-color 200ms ease-in-out;
247
+ -o-transition: background-color 200ms ease-in-out;
248
+ transition: background-color 200ms ease-in-out;
249
+ }
250
+
251
+ span.wt-legend-item {
252
+ display: inline-block;
253
+ width: 30px;
254
+ height: 30px;
255
+ border-radius: 50%;
256
+ padding-top: 6px;
257
+ }
258
+
259
+ .wt-scanner-legend td:nth-child(odd) {
260
+ padding: 0 0 0 20px !important;
261
+ }
262
+
263
+ .wbcr-titan-content {
264
+ overflow: auto;
265
+ height: 500px;
266
+ }
267
+
268
+ .wbcr-titan-content table thead th {
269
+ text-align: center;
270
+ }
271
+
272
+ .wbcr-titan-content table tbody td {
273
+ word-break: break-word;
274
+ text-align: left;
275
+ padding: 10px 20px;
276
+ }
277
+
278
+ .wbcr-titan-content table tbody td:first-child {
279
+ width: 50%;
280
+ }
281
+
282
+ .wt-nobutton {
283
+ cursor: inherit !important;
284
+ margin: 0 5px;
285
+ }
286
+
287
+ .wt-dashboard-form-label {
288
+ width: unset;
289
+ float: unset;
290
+ display: block;
291
+ vertical-align: middle;
292
+ font-size: 16px;
293
+ margin-right: 10px;
294
+ }
295
+
296
+ .wt-dashboard-block-content .factory-buttons-group .btn-default {
297
+ font-size: 16px;
298
+ }
299
+
300
+ .factory-hints {
301
+ text-align: left !important;
302
+ }
admin/assets/css/firewall/firewall-attacks-log.css ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wtitan-attacks-log {
2
+ padding: 0 20px;
3
+ }
4
+ .wtitan-attacks-log.wtitan-section-disabled {
5
+ opacity: 0.4;
6
+ }
7
+ .wtitan-attacks-log.wtitan-section-disabled select,
8
+ .wtitan-attacks-log.wtitan-section-disabled button,
9
+ .wtitan-attacks-log.wtitan-section-disabled a {
10
+ pointer-events: none;
11
+ cursor: not-allowed;
12
+ opacity: 0.65;
13
+ filter: alpha(opacity=65);
14
+ -webkit-box-shadow: none;
15
+ box-shadow: none;
16
+ }
17
+ .wtitan-attacks-log__nav {
18
+ padding: 15px;
19
+ text-align: right;
20
+ }
21
+ .wtitan-attacks-log__pages {
22
+ display: inline-block;
23
+ }
24
+ .wtitan-attacks-log__pages .page-numbers {
25
+ display: inline-block;
26
+ vertical-align: baseline;
27
+ text-decoration: none;
28
+ min-width: 30px;
29
+ min-height: 30px;
30
+ margin: 0;
31
+ padding: 0 4px;
32
+ font-size: 13px;
33
+ line-height: 2.1;
34
+ text-align: center;
35
+ box-shadow: 0 0 0 transparent;
36
+ border-radius: 4px;
37
+ border: 1px solid #e6e6e6;
38
+ background-color: #efefef;
39
+ color: #424242;
40
+ }
41
+ .wtitan-attacks-log__pages .page-numbers.current {
42
+ background-color: #fff;
43
+ }
44
+ .wtitan-attacks-log__table td,
45
+ .wtitan-attacks-log__table th {
46
+ padding: 10px 20px !important;
47
+ }
48
+ .wtitan-attacks-log__table-column-event ul {
49
+ margin: 0;
50
+ padding: 0;
51
+ }
52
+ .wtitan-attacks-log__table-column-event ul li {
53
+ display: block;
54
+ margin: 0;
55
+ padding: 3px 0;
56
+ }
57
+ .wtitan-attacks-log__table-label--red {
58
+ background: #dc7a7a;
59
+ color: #fff;
60
+ padding: 3px;
61
+ }
62
+ .wtitan-ip-blocking__form {
63
+ margin: 0 auto;
64
+ }
65
+ .wtitan-ip-blocking__form__form-label {
66
+ display: block;
67
+ }
68
+ /*# sourceMappingURL=firewall-attacks-log.css.map */
admin/assets/css/firewall/firewall-attacks-log.less ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wtitan-attacks-log {
2
+ padding: 0 20px;
3
+
4
+ &.wtitan-section-disabled {
5
+ opacity: 0.4;
6
+
7
+ select, button, a {
8
+ pointer-events: none;
9
+ cursor: not-allowed;
10
+ opacity: 0.65;
11
+ filter: alpha(opacity=65);
12
+ -webkit-box-shadow: none;
13
+ box-shadow: none;
14
+ }
15
+ }
16
+
17
+ &__nav {
18
+ padding: 15px;
19
+ text-align: right;
20
+ }
21
+
22
+ &__pages {
23
+ display: inline-block;
24
+
25
+ .page-numbers {
26
+ display: inline-block;
27
+ vertical-align: baseline;
28
+ text-decoration: none;
29
+ min-width: 30px;
30
+ min-height: 30px;
31
+ margin: 0;
32
+ padding: 0 4px;
33
+ font-size: 13px;
34
+ line-height: 2.1;
35
+ text-align: center;
36
+ box-shadow: 0 0 0 transparent;
37
+ border-radius: 4px;
38
+ border: 1px solid #e6e6e6;
39
+ background-color: #efefef;
40
+ color: #424242;
41
+
42
+ &.current {
43
+ background-color: #fff;
44
+ }
45
+ }
46
+ }
47
+
48
+ &__form {
49
+
50
+ }
51
+
52
+ &__table {
53
+ td, th {
54
+ padding: 10px 20px !important;
55
+ }
56
+
57
+ &-column-event {
58
+ ul {
59
+ margin: 0;
60
+ padding: 0;
61
+
62
+ li {
63
+ display: block;
64
+ margin: 0;
65
+ padding: 3px 0;
66
+ }
67
+ }
68
+ }
69
+
70
+ &-label--red {
71
+ background: #dc7a7a;
72
+ color: #fff;
73
+ padding: 3px;
74
+ }
75
+ }
76
+ }
77
+
78
+ .wtitan-ip-blocking {
79
+ &__form {
80
+ margin: 0 auto;
81
+
82
+ &__form-label {
83
+ display: block;
84
+ }
85
+ }
86
+ }
admin/assets/css/firewall/firewall-dashboard.css ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #wtitan-firewall-dashboard-top-section table {
2
+ width: 100%;
3
+ table-layout: fixed;
4
+ }
5
+ #wtitan-firewall-dashboard-top-section table td {
6
+ border: 1px solid #efefef;
7
+ background: #fff;
8
+ text-align: center;
9
+ padding: 20px;
10
+ }
11
+ #wtitan-firewall-dashboard-top-section table td h4 {
12
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
13
+ font-size: 16px;
14
+ }
15
+ .wtitan-status-circular {
16
+ position: relative;
17
+ margin: 0 auto;
18
+ }
19
+ .wtitan-status-circular-text {
20
+ position: absolute;
21
+ left: 50%;
22
+ top: 50%;
23
+ padding: 0;
24
+ margin: 0;
25
+ transform: translate(-50%, -50%);
26
+ color: #aaa;
27
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
28
+ font-size: 1.3125rem;
29
+ font-weight: 300;
30
+ line-height: 1.5;
31
+ }
32
+ .wtitan-status-circular .wf-status-overlay-text {
33
+ position: absolute;
34
+ left: 50%;
35
+ top: 50%;
36
+ padding: 0;
37
+ margin: 0;
38
+ width: 200%;
39
+ text-align: center;
40
+ transform: translate(-50%, -50%);
41
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
42
+ font-size: 0.875rem;
43
+ font-weight: normal;
44
+ line-height: 1.3125;
45
+ opacity: 0;
46
+ color: #777;
47
+ }
48
+ .wf-status-warning,
49
+ .wf-status-critical,
50
+ .wf-status-payment-expiring,
51
+ .wf-status-renewing {
52
+ width: 100px;
53
+ height: 100px;
54
+ margin-bottom: 1rem;
55
+ }
56
+ .wf-status-warning svg path {
57
+ fill: #fcb214;
58
+ }
59
+ .wf-status-critical svg path {
60
+ fill: #930000;
61
+ }
62
+ .wf-status-payment-expiring svg rect,
63
+ .wf-status-payment-expiring svg path {
64
+ fill: #930000;
65
+ }
66
+ .wf-status-renewing svg rect,
67
+ .wf-status-renewing svg path {
68
+ fill: #11967a;
69
+ }
70
+ .wtitan-section-disabled {
71
+ opacity: 0.4;
72
+ }
73
+ .wtitan-section-disabled select,
74
+ .wtitan-section-disabled button,
75
+ .wtitan-section-disabled a {
76
+ pointer-events: none;
77
+ cursor: not-allowed;
78
+ opacity: 0.65;
79
+ filter: alpha(opacity=65);
80
+ -webkit-box-shadow: none;
81
+ box-shadow: none;
82
+ }
83
+ /*# sourceMappingURL=firewall-dashboard.css.map */
admin/assets/css/firewall/firewall-dashboard.less ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ #wtitan-firewall-dashboard-top-section {
3
+ table {
4
+ width: 100%;
5
+ table-layout: fixed;
6
+
7
+
8
+ td {
9
+ border: 1px solid #efefef;
10
+ background: #fff;
11
+ text-align: center;
12
+ padding: 20px;
13
+
14
+ h4 {
15
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
16
+ font-size: 16px;
17
+ }
18
+ }
19
+ }
20
+ }
21
+
22
+ .wtitan-status-circular {
23
+ position: relative;
24
+ margin: 0 auto;
25
+ }
26
+
27
+ .wtitan-status-circular-text {
28
+ position: absolute;
29
+ left: 50%;
30
+ top: 50%;
31
+ padding: 0;
32
+ margin: 0;
33
+ transform: translate(-50%, -50%);
34
+ color: #aaa;
35
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
36
+ font-size: 1.3125rem;
37
+ font-weight: 300;
38
+ line-height: 1.5
39
+ }
40
+
41
+ .wtitan-status-circular .wf-status-overlay-text {
42
+ position: absolute;
43
+ left: 50%;
44
+ top: 50%;
45
+ padding: 0;
46
+ margin: 0;
47
+ width: 200%;
48
+ text-align: center;
49
+ transform: translate(-50%, -50%);
50
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
51
+ font-size: .875rem;
52
+ font-weight: normal;
53
+ line-height: 1.3125;
54
+ opacity: 0.0;
55
+ color: #777
56
+ }
57
+
58
+ .wf-status-warning, .wf-status-critical, .wf-status-payment-expiring, .wf-status-renewing {
59
+ width: 100px;
60
+ height: 100px;
61
+ margin-bottom: 1rem
62
+ }
63
+
64
+ .wf-status-warning svg path {
65
+ fill: #fcb214
66
+ }
67
+
68
+ .wf-status-critical svg path {
69
+ fill: #930000
70
+ }
71
+
72
+ .wf-status-payment-expiring svg rect, .wf-status-payment-expiring svg path {
73
+ fill: #930000
74
+ }
75
+
76
+ .wf-status-renewing svg rect, .wf-status-renewing svg path {
77
+ fill: #11967a
78
+ }
79
+
80
+ .wtitan-section-disabled {
81
+ opacity: 0.4;
82
+
83
+ select, button, a {
84
+ pointer-events: none;
85
+ cursor: not-allowed;
86
+ opacity: 0.65;
87
+ filter: alpha(opacity=65);
88
+ -webkit-box-shadow: none;
89
+ box-shadow: none;
90
+ }
91
+ }
admin/assets/css/firewall/firewall-ips-blocking.css ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wtitan-ips-blocking {
2
+ padding: 5px 20px;
3
+ }
4
+ .wtitan-ips-blocking.wtitan-section-disabled {
5
+ opacity: 0.4;
6
+ }
7
+ .wtitan-ips-blocking.wtitan-section-disabled select,
8
+ .wtitan-ips-blocking.wtitan-section-disabled button,
9
+ .wtitan-ips-blocking.wtitan-section-disabled a {
10
+ pointer-events: none;
11
+ cursor: not-allowed;
12
+ opacity: 0.65;
13
+ filter: alpha(opacity=65);
14
+ -webkit-box-shadow: none;
15
+ box-shadow: none;
16
+ }
17
+ .wtitan-ips-blocking__controls {
18
+ display: flex;
19
+ flex-direction: row;
20
+ }
21
+ .wtitan-ips-blocking__controls-left {
22
+ flex-grow: 0 !important;
23
+ }
24
+ .wtitan-ips-blocking__controls-right {
25
+ flex-grow: 1 !important;
26
+ text-align: right;
27
+ }
28
+ .wtitan-ips-blocking__controls li {
29
+ display: block;
30
+ }
31
+ .wtitan-ips-blocking__table th,
32
+ .wtitan-ips-blocking__table td {
33
+ padding: 20px;
34
+ }
35
+ .wtitan-ips-blocking__table th {
36
+ background-color: #ebebeb;
37
+ color: #777;
38
+ font-weight: bold;
39
+ text-align: left;
40
+ border-left: 1px solid #bdbdbd;
41
+ }
42
+ .wtitan-ips-blocking__table th:first-child {
43
+ border: 0;
44
+ }
45
+ .wtitan-ips-blocking-modal__tabs {
46
+ border-bottom: 1px solid #d0d0d0;
47
+ }
48
+ .wtitan-ips-blocking-modal__tab {
49
+ display: inline-block;
50
+ border: 1px solid #ccc;
51
+ border-bottom: none;
52
+ margin: 0;
53
+ padding: 5px 10px;
54
+ font-size: 14px;
55
+ line-height: 1.71428571;
56
+ font-weight: 600;
57
+ background: #e5e5e5;
58
+ color: #555;
59
+ text-decoration: none;
60
+ white-space: nowrap;
61
+ }
62
+ .wtitan-ips-blocking-modal__tab a {
63
+ color: #555;
64
+ text-decoration: none;
65
+ font-size: 13px;
66
+ }
67
+ .wtitan-ips-blocking-modal__tab a:active,
68
+ .wtitan-ips-blocking-modal__tab a:focus {
69
+ outline: none;
70
+ box-shadow: none;
71
+ }
72
+ .wtitan-ips-blocking-modal__tab--active {
73
+ background: #ffffff;
74
+ box-shadow: 0 2px 0 #efefef;
75
+ }
76
+ .wtitan-ips-blocking-modal__tab-content {
77
+ display: none;
78
+ }
79
+ .wtitan-ips-blocking-modal__tab-content--active {
80
+ display: block;
81
+ }
82
+ .wtitan-ips-blocking-modal__form {
83
+ margin: 0 auto;
84
+ }
85
+ .wtitan-ips-blocking-modal__form-label {
86
+ display: block;
87
+ font-size: 14px;
88
+ font-weight: 600;
89
+ }
90
+ .wtitan-ips-blocking-modal__form input[type="text"] {
91
+ width: 100%;
92
+ height: 40px;
93
+ }
94
+ .wtitan-ips-blocking-modal__form textarea {
95
+ width: 100%;
96
+ height: 100px;
97
+ }
98
+ /*# sourceMappingURL=firewall-ips-blocking.css.map */
admin/assets/css/firewall/firewall-ips-blocking.less ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wtitan-ips-blocking {
2
+ padding: 5px 20px;
3
+
4
+ &.wtitan-section-disabled {
5
+ opacity: 0.4;
6
+
7
+ select, button, a {
8
+ pointer-events: none;
9
+ cursor: not-allowed;
10
+ opacity: 0.65;
11
+ filter: alpha(opacity=65);
12
+ -webkit-box-shadow: none;
13
+ box-shadow: none;
14
+ }
15
+ }
16
+
17
+
18
+ &__controls {
19
+ display: flex;
20
+ flex-direction: row;
21
+
22
+ &-left {
23
+ flex-grow: 0 !important;
24
+ }
25
+
26
+ &-right {
27
+ flex-grow: 1 !important;
28
+ text-align: right;
29
+ }
30
+
31
+ li {
32
+ display: block;
33
+ }
34
+ }
35
+
36
+ &__table {
37
+ th, td {
38
+ padding: 20px;
39
+ }
40
+
41
+ th {
42
+ background-color: #ebebeb;
43
+ color: #777;
44
+ font-weight: bold;
45
+ text-align: left;
46
+ border-left: 1px solid #bdbdbd;
47
+
48
+ &:first-child {
49
+ border: 0;
50
+ }
51
+ }
52
+ }
53
+ }
54
+
55
+ .wtitan-ips-blocking-modal {
56
+ &__tabs {
57
+ border-bottom: 1px solid #d0d0d0;
58
+ }
59
+
60
+ &__tab {
61
+ display: inline-block;
62
+ border: 1px solid #ccc;
63
+ border-bottom: none;
64
+ margin: 0;
65
+ padding: 5px 10px;
66
+ font-size: 14px;
67
+ line-height: 1.71428571;
68
+ font-weight: 600;
69
+ background: #e5e5e5;
70
+ color: #555;
71
+ text-decoration: none;
72
+ white-space: nowrap;
73
+
74
+ a {
75
+ color: #555;
76
+ text-decoration: none;
77
+ font-size: 13px;
78
+
79
+ &:active, &:focus {
80
+ outline: none;
81
+ box-shadow: none;
82
+ }
83
+ }
84
+
85
+ &--active {
86
+ background: #ffffff;
87
+ box-shadow: 0 2px 0 #efefef;
88
+ }
89
+
90
+ &-content {
91
+ display: none;
92
+
93
+ &--active {
94
+ display: block;
95
+ }
96
+ }
97
+ }
98
+
99
+
100
+ &__form {
101
+ margin: 0 auto;
102
+
103
+ &-label {
104
+ display: block;
105
+ font-size: 14px;
106
+ font-weight: 600;
107
+ }
108
+
109
+ input[type="text"] {
110
+ width: 100%;
111
+ height: 40px;
112
+ }
113
+
114
+ textarea {
115
+ width: 100%;
116
+ height: 100px;
117
+ }
118
+ }
119
+ }
120
+
121
+
admin/assets/css/firewall/firewall-settings.css ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #WBCR .factory-textarea.factory-control-premium-label:before {
2
+ border: 1px solid red;
3
+ display: inline-block;
4
+ position: absolute;
5
+ content: 'PRO';
6
+ background: #f6065b;
7
+ border-radius: 4px;
8
+ color: #fff;
9
+ font-size: 10px;
10
+ line-height: 1;
11
+ font-style: normal;
12
+ padding: 4px 6px;
13
+ margin-left: 4px;
14
+ vertical-align: top;
15
+ top: 0px;
16
+ left: -5px;
17
+ right: auto;
18
+ bottom: auto;
19
+ z-index: 11;
20
+ cursor: pointer;
21
+ }
22
+ #WBCR .factory-list.factory-control-premium-label {
23
+ box-shadow: 20px 20px 20px #222;
24
+ }
25
+ #WBCR .factory-list.factory-control-premium-label:before {
26
+ display: inline-block;
27
+ position: absolute;
28
+ content: 'PRO';
29
+ background: #f6065b;
30
+ border-radius: 4px;
31
+ color: #fff;
32
+ font-size: 10px;
33
+ line-height: 1;
34
+ font-style: normal;
35
+ padding: 4px 6px;
36
+ margin-left: 4px;
37
+ vertical-align: top;
38
+ top: 0px;
39
+ left: 70px;
40
+ right: auto;
41
+ bottom: auto;
42
+ z-index: 11;
43
+ cursor: pointer;
44
+ }
45
+ #WBCR .factory-checkbox.factory-control-premium-label:after {
46
+ display: inline-block;
47
+ position: absolute;
48
+ content: 'PRO';
49
+ background: #f6065b;
50
+ border-radius: 4px;
51
+ color: #fff;
52
+ font-size: 10px;
53
+ line-height: 1;
54
+ font-style: normal;
55
+ padding: 4px 6px;
56
+ margin-left: 4px;
57
+ vertical-align: top;
58
+ top: -10px;
59
+ left: auto;
60
+ right: -15px;
61
+ bottom: auto;
62
+ z-index: 11;
63
+ cursor: pointer;
64
+ }
65
+ #WBCR .factory-dropdown.factory-control-premium-label .factory-buttons-group:after {
66
+ display: inline-block;
67
+ position: absolute;
68
+ content: 'PRO';
69
+ background: #f6065b;
70
+ border-radius: 4px;
71
+ color: #fff;
72
+ font-size: 10px;
73
+ line-height: 1;
74
+ font-style: normal;
75
+ padding: 4px 6px;
76
+ margin-left: 4px;
77
+ vertical-align: top;
78
+ top: -10px;
79
+ left: auto;
80
+ right: -15px;
81
+ bottom: auto;
82
+ z-index: 11;
83
+ cursor: pointer;
84
+ }
85
+ #WBCR .factory-checkbox.factory-control--disabled,
86
+ #WBCR .factory-dropdown.factory-control--disabled,
87
+ #WBCR .factory-textarea.factory-control--disabled,
88
+ #WBCR .factory-list.factory-control--disabled,
89
+ #WBCR .factory-checkbox.factory-control--disabled input,
90
+ #WBCR .factory-dropdown.factory-control--disabled input,
91
+ #WBCR .factory-textarea.factory-control--disabled input,
92
+ #WBCR .factory-list.factory-control--disabled input,
93
+ #WBCR .factory-checkbox.factory-control--disabled button,
94
+ #WBCR .factory-dropdown.factory-control--disabled button,
95
+ #WBCR .factory-textarea.factory-control--disabled button,
96
+ #WBCR .factory-list.factory-control--disabled button {
97
+ pointer-events: none;
98
+ cursor: not-allowed;
99
+ opacity: 0.65;
100
+ filter: alpha(opacity=65);
101
+ -webkit-box-shadow: none;
102
+ box-shadow: none;
103
+ }
104
+ #WBCR .wtitan-section-disabled {
105
+ opacity: 0.4;
106
+ }
107
+ #WBCR .wtitan-section-disabled select,
108
+ #WBCR .wtitan-section-disabled button,
109
+ #WBCR .wtitan-section-disabled a {
110
+ pointer-events: none;
111
+ cursor: not-allowed;
112
+ opacity: 0.65;
113
+ filter: alpha(opacity=65);
114
+ -webkit-box-shadow: none;
115
+ box-shadow: none;
116
+ }
117
+ .wtitan-excluded-rules {
118
+ height: 150px;
119
+ width: 100%;
120
+ padding: 10px 10px 0;
121
+ background: #fff;
122
+ border: 1px solid #ccc;
123
+ overflow-y: scroll;
124
+ overflow-x: hidden;
125
+ }
126
+ .wtitan-rate-limit-settings__control li {
127
+ display: inline-block;
128
+ width: 49%;
129
+ }
130
+ .wtitan-rate-limit-settings__control-title {
131
+ padding: 0 40px;
132
+ font-size: 13px;
133
+ }
134
+ .wtitan-rate-limit-settings__control-subtitle {
135
+ display: block;
136
+ font-size: 12px;
137
+ color: #afafaf;
138
+ }
139
+ .wtitan-rate-limit-settings__control-block-time-select {
140
+ width: 200px;
141
+ }
142
+ .wtitan-rate-limit-settings__control-action-select {
143
+ width: 168px;
144
+ }
145
+ .wtitan-rate-limit-settings__control-allowed404s-textarea {
146
+ width: 100%;
147
+ height: 100px;
148
+ }
149
+ .wtitan-whitelist {
150
+ padding: 0 20px;
151
+ }
152
+ .wtitan-whitelist__hint {
153
+ display: block;
154
+ font-size: 12px;
155
+ color: #afafaf;
156
+ }
157
+ .wtitan-whitelist__form-group {
158
+ display: inline-block;
159
+ vertical-align: middle;
160
+ }
161
+ .wtitan-whitelist__table-controls {
162
+ display: flex;
163
+ flex-direction: row;
164
+ }
165
+ .wtitan-whitelist__table-controls-left {
166
+ flex-grow: 0 !important;
167
+ }
168
+ .wtitan-whitelist__table-controls-right {
169
+ text-align: right;
170
+ flex-grow: 1 !important;
171
+ }
172
+ .wtitan-whitelist__table-controls-right select,
173
+ .wtitan-whitelist__table-controls-right input,
174
+ .wtitan-whitelist__table-controls-right a {
175
+ display: inline-block;
176
+ vertical-align: middle;
177
+ }
178
+ .wtitan-whitelist__table th,
179
+ .wtitan-whitelist__table td {
180
+ padding: 20px;
181
+ }
182
+ .wtitan-whitelist__table th {
183
+ background-color: #ebebeb;
184
+ color: #777;
185
+ font-weight: bold;
186
+ text-align: left;
187
+ border-left: 1px solid #bdbdbd;
188
+ }
189
+ .wtitan-whitelist__table th:first-child {
190
+ border: 0;
191
+ }
192
+ .wtitan-whitelist__table td {
193
+ background-color: #fafafa;
194
+ }
195
+ .wtitan-whitelist__bg-requests-controls ul > li {
196
+ display: inline-block;
197
+ margin-right: 20px;
198
+ }
199
+ .wtitan-whitelist__bg-requests-controls ul > li label {
200
+ font-weight: normal;
201
+ }
202
+ .wtitan-whitelist__bg-requests-controls ul > li input[type="checkbox"] {
203
+ margin: 0;
204
+ }
205
+ /*# sourceMappingURL=firewall-settings.css.map */
admin/assets/css/firewall/firewall-settings.less ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #WBCR {
2
+ .premium-label(@labelPositionTop:-8px, @labelPositionRight:auto, @labelPositionBottom:auto, @labelPositionLeft:-10px) {
3
+ display: inline-block;
4
+ position: absolute;
5
+ content: 'PRO';
6
+ background: #f6065b;
7
+ border-radius: 4px;
8
+ color: #fff;
9
+ font-size: 10px;
10