Wordfence Security – Firewall & Malware Scan - Version 6.1.1

Version Description

  • Enhancement: Added Web Application Firewall
  • Enhancement: Added Diagnostics page
  • Enhancement: Added new scans:
    • Admins created outside of WordPress
    • Publicly accessible common (database or wp-config.php) backup files
  • Improvement: Updated Live Traffic with filters and to include blocked requests in the feed.
Download this release

Release Info

Developer wfmatt
Plugin Icon 128x128 Wordfence Security – Firewall & Malware Scan
Version 6.1.1
Comparing to
See all releases

Code changes from version 6.0.25 to 6.1.1

Files changed (86) hide show
  1. css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  2. css/images/ui-bg_flat_100_1997c7_40x100.png +0 -0
  3. css/images/ui-bg_flat_100_222_40x100.png +0 -0
  4. css/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  5. css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  6. css/images/ui-bg_highlight-soft_75_a5a5a5_1x100.png +0 -0
  7. css/images/ui-icons_222222_256x240.png +0 -0
  8. css/images/ui-icons_cd0a0a_256x240.png +0 -0
  9. css/images/ui-icons_fbe569_256x240.png +0 -0
  10. css/images/ui-icons_fff_256x240.png +0 -0
  11. css/jquery-ui-timepicker-addon.css +27 -0
  12. css/jquery-ui.min.css +7 -0
  13. css/jquery-ui.structure.min.css +5 -0
  14. css/jquery-ui.theme.min.css +5 -0
  15. css/main.css +489 -5
  16. css/select2.min.css +1 -0
  17. js/admin.js +455 -39
  18. js/admin.liveTraffic.js +680 -0
  19. js/jquery-ui-timepicker-addon.js +2245 -0
  20. js/knockout-3.3.0.js +115 -0
  21. js/select2.min.js +2 -0
  22. lib/compat.php +17 -0
  23. lib/dashboard.php +0 -1
  24. lib/email_newIssues.php +11 -3
  25. lib/menu_activity.php +416 -209
  26. lib/menu_countryBlocking.php +7 -7
  27. lib/menu_diagnostic.php +404 -0
  28. lib/menu_options.php +61 -112
  29. lib/menu_passwd.php +5 -4
  30. lib/menu_scan.php +201 -18
  31. lib/menu_scanSchedule.php +6 -9
  32. lib/menu_twoFactor.php +7 -8
  33. lib/menu_waf.php +472 -0
  34. lib/sysinfo.php +1 -1
  35. lib/wf503.php +2 -2
  36. lib/wfAPI.php +6 -5
  37. lib/wfConfig.php +36 -11
  38. lib/wfCrawl.php +9 -11
  39. lib/wfDB.php +159 -0
  40. lib/wfDiagnostic.php +245 -0
  41. lib/wfIssues.php +5 -2
  42. lib/wfLog.php +979 -31
  43. lib/wfScanEngine.php +524 -87
  44. lib/wfSchema.php +2 -2
  45. lib/wfUtils.php +306 -19
  46. lib/wfView.php +2 -2
  47. lib/wordfenceClass.php +1794 -78
  48. lib/wordfenceConstants.php +3 -1
  49. lib/wordfenceHash.php +9 -14
  50. lib/wordfenceScanner.php +111 -96
  51. readme.txt +17 -4
  52. vendor/autoload.php +7 -0
  53. vendor/composer/ClassLoader.php +413 -0
  54. vendor/composer/LICENSE +21 -0
  55. vendor/composer/autoload_classmap.php +9 -0
  56. vendor/composer/autoload_namespaces.php +9 -0
  57. vendor/composer/autoload_psr4.php +9 -0
  58. vendor/composer/autoload_real.php +45 -0
  59. vendor/composer/installed.json +20 -0
  60. vendor/wordfence/wf-waf/src/baseRules.rules +187 -0
  61. vendor/wordfence/wf-waf/src/bootstrap-sample.php +57 -0
  62. vendor/wordfence/wf-waf/src/init.php +28 -0
  63. vendor/wordfence/wf-waf/src/lib/config.php +2 -0
  64. vendor/wordfence/wf-waf/src/lib/http.php +438 -0
  65. vendor/wordfence/wf-waf/src/lib/parser/lexer.php +667 -0
  66. vendor/wordfence/wf-waf/src/lib/parser/parser.php +754 -0
  67. vendor/wordfence/wf-waf/src/lib/parser/sqli.php +2971 -0
  68. vendor/wordfence/wf-waf/src/lib/request.php +816 -0
  69. vendor/wordfence/wf-waf/src/lib/rules.php +1229 -0
  70. vendor/wordfence/wf-waf/src/lib/storage.php +62 -0
  71. vendor/wordfence/wf-waf/src/lib/storage/file.php +1320 -0
  72. vendor/wordfence/wf-waf/src/lib/utils.php +321 -0
  73. vendor/wordfence/wf-waf/src/lib/view.php +127 -0
  74. vendor/wordfence/wf-waf/src/lib/waf.php +1545 -0
  75. vendor/wordfence/wf-waf/src/logs/.htaccess +7 -0
  76. vendor/wordfence/wf-waf/src/logs/attack-data.php +1 -0
  77. vendor/wordfence/wf-waf/src/logs/config.php +0 -0
  78. vendor/wordfence/wf-waf/src/logs/ips.php +1 -0
  79. vendor/wordfence/wf-waf/src/rules.key +9 -0
  80. vendor/wordfence/wf-waf/src/rules.php +185 -0
  81. vendor/wordfence/wf-waf/src/views/403-roadblock.php +110 -0
  82. vendor/wordfence/wf-waf/src/views/403.php +14 -0
  83. views/waf/debug.php +225 -0
  84. waf/bootstrap.php +249 -0
  85. waf/wfWAFUserIPRange.php +224 -0
  86. wordfence.php +37 -2
css/images/ui-bg_flat_0_aaaaaa_40x100.png ADDED
Binary file
css/images/ui-bg_flat_100_1997c7_40x100.png ADDED
Binary file
css/images/ui-bg_flat_100_222_40x100.png ADDED
Binary file
css/images/ui-bg_flat_75_ffffff_40x100.png ADDED
Binary file
css/images/ui-bg_glass_95_fef1ec_1x400.png ADDED
Binary file
css/images/ui-bg_highlight-soft_75_a5a5a5_1x100.png ADDED
Binary file
css/images/ui-icons_222222_256x240.png ADDED
Binary file
css/images/ui-icons_cd0a0a_256x240.png ADDED
Binary file
css/images/ui-icons_fbe569_256x240.png ADDED
Binary file
css/images/ui-icons_fff_256x240.png ADDED
Binary file
css/jquery-ui-timepicker-addon.css ADDED
@@ -0,0 +1,27 @@
1
+ .ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
2
+ .ui-timepicker-div dl { text-align: left; }
3
+ .ui-timepicker-div dl dt { float: left; clear:left; padding: 0 0 0 5px; }
4
+ .ui-timepicker-div dl dd { margin: 0 10px 10px 40%; }
5
+ .ui-timepicker-div td { font-size: 90%; }
6
+ .ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
7
+ .ui-timepicker-div .ui_tpicker_unit_hide{ display: none; }
8
+
9
+ .ui-timepicker-rtl{ direction: rtl; }
10
+ .ui-timepicker-rtl dl { text-align: right; padding: 0 5px 0 0; }
11
+ .ui-timepicker-rtl dl dt{ float: right; clear: right; }
12
+ .ui-timepicker-rtl dl dd { margin: 0 40% 10px 10px; }
13
+
14
+ /* Shortened version style */
15
+ .ui-timepicker-div.ui-timepicker-oneLine { padding-right: 2px; }
16
+ .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time,
17
+ .ui-timepicker-div.ui-timepicker-oneLine dt { display: none; }
18
+ .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label { display: block; padding-top: 2px; }
19
+ .ui-timepicker-div.ui-timepicker-oneLine dl { text-align: right; }
20
+ .ui-timepicker-div.ui-timepicker-oneLine dl dd,
21
+ .ui-timepicker-div.ui-timepicker-oneLine dl dd > div { display:inline-block; margin:0; }
22
+ .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before,
23
+ .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before { content:':'; display:inline-block; }
24
+ .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before,
25
+ .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before { content:'.'; display:inline-block; }
26
+ .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide,
27
+ .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{ display: none; }
css/jquery-ui.min.css ADDED
@@ -0,0 +1,7 @@
1
+ /*! jQuery UI - v1.11.4 - 2015-10-13
2
+ * http://jqueryui.com
3
+ * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=3px&bgColorHeader=%23222&bgTextureHeader=flat&bgImgOpacityHeader=100&borderColorHeader=%23474747&fcHeader=%23fff&iconColorHeader=%23fff&bgColorContent=%23ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=%23aaaaaa&fcContent=%23222222&iconColorContent=%23222222&bgColorDefault=%23a5a5a5&bgTextureDefault=highlight_soft&bgImgOpacityDefault=75&borderColorDefault=%239f9f9f&fcDefault=%23fff&iconColorDefault=%23fff&bgColorHover=%231997c7&bgTextureHover=flat&bgImgOpacityHover=100&borderColorHover=%23198cb7&fcHover=%23fff&iconColorHover=%23fff&bgColorActive=%231997c7&bgTextureActive=flat&bgImgOpacityActive=100&borderColorActive=%23198cb7&fcActive=%23fff&iconColorActive=%23fff&bgColorHighlight=%23fffaba&bgTextureHighlight=flat&bgImgOpacityHighlight=100&borderColorHighlight=%23eac500&fcHighlight=%23222222&iconColorHighlight=%23ec882f&bgColorError=%23fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=%23cd0a0a&fcError=%23cd0a0a&iconColorError=%23cd0a0a&bgColorOverlay=%23aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=%23aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #474747;background:#222 url("images/ui-bg_flat_100_222_40x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #9f9f9f;background:#a5a5a5 url("images/ui-bg_highlight-soft_75_a5a5a5_1x100.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#fff;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #198cb7;background:#1997c7 url("images/ui-bg_flat_100_1997c7_40x100.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#fff;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #198cb7;background:#1997c7 url("images/ui-bg_flat_100_1997c7_40x100.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #eac500;background:#fffaba url("images/ui-bg_flat_100_fffaba_40x100.png") 50% 50% repeat-x;color:#222}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#222}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_fff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_fff_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_fff_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_fff_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_ec882f_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
css/jquery-ui.structure.min.css ADDED
@@ -0,0 +1,5 @@
1
+ /*! jQuery UI - v1.11.4 - 2015-10-11
2
+ * http://jqueryui.com
3
+ * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
4
+
5
+ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}
css/jquery-ui.theme.min.css ADDED
@@ -0,0 +1,5 @@
1
+ /*! jQuery UI - v1.11.4 - 2015-10-13
2
+ * http://jqueryui.com
3
+ * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
4
+
5
+ .ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #474747;background:#222 url("images/ui-bg_flat_100_222_40x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #9f9f9f;background:#a5a5a5 url("images/ui-bg_highlight-soft_75_a5a5a5_1x100.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#fff;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #198cb7;background:#1997c7 url("images/ui-bg_flat_100_1997c7_40x100.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#fff;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #198cb7;background:#1997c7 url("images/ui-bg_flat_100_1997c7_40x100.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #eac500;background:#fffaba url("images/ui-bg_flat_100_fffaba_40x100.png") 50% 50% repeat-x;color:#222}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#222}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_fff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_fff_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_fff_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_fff_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_ec882f_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
css/main.css CHANGED
@@ -18,6 +18,9 @@ div.wordfenceLive {
18
font-size: 14px;
19
-webkit-font-smoothing: antialiased;
20
}
21
div.wordfenceLive h2 {
22
font-weight: bold;
23
color: #888;
@@ -46,6 +49,13 @@ div.wordfenceLive p {
46
#wfHeading {
47
white-space: nowrap;
48
}
49
div.wordfence-lock-icon {
50
background-image: url(../images/wordfence-logo-32x32.png);
51
}
@@ -170,6 +180,9 @@ div.wfIssue table.wfIssueLinks td { border-width: 0; text-align: left; padding-r
170
display: block;
171
width: 60px;
172
}
173
.wfProbSev1, .wfProbSev2, .wfAjaxLight128, .wfResolved {
174
width: 128px;
175
height: 128px;
@@ -191,7 +204,77 @@ div.wfIssue table.wfIssueLinks td { border-width: 0; text-align: left; padding-r
191
img.wfFlag { vertical-align: middle; margin: -3px 4px 0 0; }
192
.wfHitTime { font-style: italic; }
193
.wfAvatar img { vertical-align: middle; }
194
- .wfActEvent { border-bottom: 1px solid #CCC; margin: 0 0 10px 0; padding: 0 0 10px 0; }
195
.wfTimeAgo { font-family: Georgia, times; color: #999; font-weight: bold; font-style: italic; }
196
table.wfConfigForm th {
197
font-weight: normal;
@@ -284,7 +367,11 @@ h3.wfConfigHeading {
284
font-weight: bold;
285
color: #555;
286
}
287
- input.wfStartScanButton { width: 160px; text-align: left; padding-left: 20px; }
288
.wferror {
289
color: #F00;
290
}
@@ -447,7 +534,9 @@ table.wf-table td {
447
border: 1px solid #ccc;
448
}
449
table.wf-table thead th,
450
- table.wf-table thead td {
451
background-color: #222;
452
color: #fff;
453
font-weight: bold;
@@ -461,9 +550,14 @@ table.wf-table tbody tr.even td,
461
table.wf-table tbody tr:nth-child(2n) td {
462
background-color: #eee;
463
}
464
- table.wf-table tbody tr:hover td {
465
background-color: #fffbd8;
466
}
467
468
table.block-ranges-table {
469
border-collapse: collapse;
@@ -482,6 +576,13 @@ table.block-ranges-table tr td {
482
border: 1px solid #ffd975;
483
border-width: 1px 1px 1px 10px;
484
}
485
486
.wf-premium-callout {
487
border: 1px solid #00709E;
@@ -512,4 +613,387 @@ table.block-ranges-table tr td {
512
text-transform: uppercase;
513
font-weight: bold;
514
background-color: #00709E;
515
- }
18
font-size: 14px;
19
-webkit-font-smoothing: antialiased;
20
}
21
+ .branch-4-4 div.wordfenceLive td {
22
+ padding: 5px 0px 0px;
23
+ }
24
div.wordfenceLive h2 {
25
font-weight: bold;
26
color: #888;
49
#wfHeading {
50
white-space: nowrap;
51
}
52
+ #wfHeading:after {
53
+ content: '.';
54
+ visibility: hidden;
55
+ display: block;
56
+ clear: both;
57
+ height: 0px;
58
+ }
59
div.wordfence-lock-icon {
60
background-image: url(../images/wordfence-logo-32x32.png);
61
}
180
display: block;
181
width: 60px;
182
}
183
+ .wfIssueOptions p {
184
+ margin:6px 0px 0px;
185
+ }
186
.wfProbSev1, .wfProbSev2, .wfAjaxLight128, .wfResolved {
187
width: 128px;
188
height: 128px;
204
img.wfFlag { vertical-align: middle; margin: -3px 4px 0 0; }
205
.wfHitTime { font-style: italic; }
206
.wfAvatar img { vertical-align: middle; }
207
+ .wfActEvent {
208
+ border-bottom: 1px solid #CCC;
209
+ padding: 10px 20px;
210
+ overflow: auto;
211
+ }
212
+ #wf-lt-listings .wfActEvent {
213
+ padding-left: 15px;
214
+ border-left: 5px solid #cccccc;
215
+ }
216
+ #wf-lt-listings .wfActEvent.wfHuman {
217
+ border-left: 5px solid #74cb76;
218
+ }
219
+ #wf-lt-listings .wfActEvent.wfActionBlocked {
220
+ border-left: 5px solid #d03935;
221
+ }
222
+ #wf-lt-listings .wfActEvent.wfNotice,
223
+ #wf-lt-listings .wfActEvent.wf404 {
224
+ border-left: 5px solid #ffeaa0;
225
+ }
226
+ #wf-lt-listings .wfActEvent.wfWarning {
227
+ border-left: 5px solid #ffa13f;
228
+ }
229
+ #wf-lt-listings .wfActEvent:hover {
230
+ background-color: #fff9e9 !important;
231
+ }
232
+ #wf-live-traffic {
233
+ position: relative;
234
+ overflow: visible;
235
+ }
236
+ #wf-live-traffic-legend {
237
+ position: absolute;
238
+ top: -1px;
239
+ left: auto;
240
+ right: -108px;
241
+ bottom: 100%;
242
+ }
243
+ #wf-live-traffic-legend.sticky {
244
+ position: fixed;
245
+ top: 51px;
246
+ right: auto;
247
+ left: 1150px;
248
+ }
249
+ #wf-live-traffic-legend ul {
250
+ margin: 0;
251
+ padding: 10px;
252
+ background-color: #fff;
253
+ border: 1px solid #CCC;
254
+ }
255
+ #wf-live-traffic-legend ul li {
256
+ margin: 0;
257
+ padding: 0;
258
+ }
259
+ #wf-live-traffic-legend ul li:before {
260
+ content: '';
261
+ display: block;
262
+ float: left;
263
+ margin: 3px 6px 0 0;
264
+ width: 12px;
265
+ height: 12px;
266
+ background-color: #CCC;
267
+ }
268
+ #wf-live-traffic-legend ul li.wfHuman:before {
269
+ background-color: #74cb76;
270
+ }
271
+ #wf-live-traffic-legend ul li.wfNotice:before {
272
+ background-color: #ffeaa0;
273
+ }
274
+ #wf-live-traffic-legend ul li.wfBlocked:before {
275
+ background-color: #d03935;
276
+ }
277
+
278
.wfTimeAgo { font-family: Georgia, times; color: #999; font-weight: bold; font-style: italic; }
279
table.wfConfigForm th {
280
font-weight: normal;
367
font-weight: bold;
368
color: #555;
369
}
370
+ .wfStartScanButton { text-align: center; }
371
+ .wf-spinner {
372
+ display: inline-block;
373
+ width: 4px;
374
+ }
375
.wferror {
376
color: #F00;
377
}
534
border: 1px solid #ccc;
535
}
536
table.wf-table thead th,
537
+ table.wf-table thead td,
538
+ table.wf-table tbody.thead th,
539
+ table.wf-table tbody.thead td {
540
background-color: #222;
541
color: #fff;
542
font-weight: bold;
550
table.wf-table tbody tr:nth-child(2n) td {
551
background-color: #eee;
552
}
553
+ table.wf-table tbody tr:hover > td {
554
background-color: #fffbd8;
555
}
556
+ table.wf-table tbody.empty-row tr td {
557
+ border-width: 0;
558
+ padding: 8px 0;
559
+ background-color: transparent;
560
+ }
561
562
table.block-ranges-table {
563
border-collapse: collapse;
576
border: 1px solid #ffd975;
577
border-width: 1px 1px 1px 10px;
578
}
579
+ .wf-success {
580
+ margin: 12px 0;
581
+ padding: 8px;
582
+ background-color: #ffffff;
583
+ border: 1px solid #74cb76;
584
+ border-width: 1px 1px 1px 10px;
585
+ }
586
587
.wf-premium-callout {
588
border: 1px solid #00709E;
613
text-transform: uppercase;
614
font-weight: bold;
615
background-color: #00709E;
616
+ }
617
+
618
+
619
+ .wf-table td.error {
620
+ color: #d0514c;
621
+ font-weight: bold;
622
+ }
623
+ .wf-table td.success:before,
624
+ .wf-table td.error:before {
625
+ font-size: 16px;
626
+ display: inline-block;
627
+ margin: 0px 8px 0px 0px;
628
+ }
629
+ .wf-table td.error:before {
630
+ content: "\2718";
631
+ }
632
+ .wf-table td.success {
633
+ color: #008c10;
634
+ font-weight: bold;
635
+
636
+ max-width: 20%;
637
+ }
638
+ .wf-table td.success:before {
639
+ content: "\2713";
640
+ }
641
+ .wf-table td.inactive {
642
+ font-weight: bold;
643
+ color: #666666;
644
+ }
645
+
646
+ table.whitelist-table {
647
+
648
+ }
649
+ table.whitelist-table .whitelist-edit {
650
+ display: none;
651
+ }
652
+ table.whitelist-table .edit-mode .whitelist-display {
653
+ display: none;
654
+ }
655
+ table.whitelist-table .edit-mode .whitelist-edit {
656
+ display: block;
657
+ }
658
+ table.whitelist-table .edit-mode span.whitelist-edit,
659
+ table.whitelist-table .edit-mode input.whitelist-edit {
660
+ display: inline;
661
+ }
662
+
663
+ .wf-pad-small {
664
+ margin:8px 0;
665
+ }
666
+ #wf-lt-listings {
667
+ margin:0 0 0;
668
+ }
669
+ #wf-lt-listings a {
670
+ cursor: pointer;
671
+ text-decoration: underline;
672
+ }
673
+ .wfActionBlocked {
674
+ background-color: #fff6f6;
675
+ }
676
+
677
+ [class*="span"] {
678
+ float: left;
679
+ min-height: 1px;
680
+ margin-left: 30px;
681
+ }
682
+ .row-fluid {
683
+ width: 100%;
684
+ *zoom: 1;
685
+ }
686
+ .row-fluid:before,
687
+ .row-fluid:after {
688
+ display: table;
689
+ line-height: 0;
690
+ content: "";
691
+ }
692
+ .row-fluid:after {
693
+ clear: both;
694
+ }
695
+ .row-fluid [class*="span"] {
696
+ display: block;
697
+ float: left;
698
+ width: 100%;
699
+ min-height: 30px;
700
+ margin-left: 2.564102564102564%;
701
+ *margin-left: 2.5109110747408616%;
702
+ -webkit-box-sizing: border-box;
703
+ -moz-box-sizing: border-box;
704
+ box-sizing: border-box;
705
+ }
706
+ .row-fluid [class*="span"]:first-child {
707
+ margin-left: 0;
708
+ }
709
+ .row-fluid .controls-row [class*="span"] + [class*="span"] {
710
+ margin-left: 2.564102564102564%;
711
+ }
712
+ .row-fluid .span12 {
713
+ width: 100%;
714
+ *width: 99.94680851063829%;
715
+ }
716
+ .row-fluid .span11 {
717
+ width: 91.45299145299145%;
718
+ *width: 91.39979996362975%;
719
+ }
720
+ .row-fluid .span10 {
721
+ width: 82.90598290598291%;
722
+ *width: 82.8527914166212%;
723
+ }
724
+ .row-fluid .span9 {
725
+ width: 74.35897435897436%;
726
+ *width: 74.30578286961266%;
727
+ }
728
+ .row-fluid .span8 {
729
+ width: 65.81196581196582%;
730
+ *width: 65.75877432260411%;
731
+ }
732
+ .row-fluid .span7 {
733
+ width: 57.26495726495726%;
734
+ *width: 57.21176577559556%;
735
+ }
736
+ .row-fluid .span6 {
737
+ width: 48.717948717948715%;
738
+ *width: 48.664757228587014%;
739
+ }
740
+ .row-fluid .span5 {
741
+ width: 40.17094017094017%;
742
+ *width: 40.11774868157847%;
743
+ }
744
+ .row-fluid .span4 {
745
+ width: 31.623931623931625%;
746
+ *width: 31.570740134569924%;
747
+ }
748
+ .row-fluid .span3 {
749
+ width: 23.076923076923077%;
750
+ *width: 23.023731587561375%;
751
+ }
752
+ .row-fluid .span2 {
753
+ width: 14.52991452991453%;
754
+ *width: 14.476723040552828%;
755
+ }
756
+ .row-fluid .span1 {
757
+ width: 5.982905982905983%;
758
+ *width: 5.929714493544281%;
759
+ }
760
+ .row-fluid .offset12 {
761
+ margin-left: 105.12820512820512%;
762
+ *margin-left: 105.02182214948171%;
763
+ }
764
+ .row-fluid .offset12:first-child {
765
+ margin-left: 102.56410256410257%;
766
+ *margin-left: 102.45771958537915%;
767
+ }
768
+ .row-fluid .offset11 {
769
+ margin-left: 96.58119658119658%;
770
+ *margin-left: 96.47481360247316%;
771
+ }
772
+ .row-fluid .offset11:first-child {
773
+ margin-left: 94.01709401709402%;
774
+ *margin-left: 93.91071103837061%;
775
+ }
776
+ .row-fluid .offset10 {
777
+ margin-left: 88.03418803418803%;
778
+ *margin-left: 87.92780505546462%;
779
+ }
780
+ .row-fluid .offset10:first-child {
781
+ margin-left: 85.47008547008548%;
782
+ *margin-left: 85.36370249136206%;
783
+ }
784
+ .row-fluid .offset9 {
785
+ margin-left: 79.48717948717949%;
786
+ *margin-left: 79.38079650845607%;
787
+ }
788
+ .row-fluid .offset9:first-child {
789
+ margin-left: 76.92307692307693%;
790
+ *margin-left: 76.81669394435352%;
791
+ }
792
+ .row-fluid .offset8 {
793
+ margin-left: 70.94017094017094%;
794
+ *margin-left: 70.83378796144753%;
795
+ }
796
+ .row-fluid .offset8:first-child {
797
+ margin-left: 68.37606837606839%;
798
+ *margin-left: 68.26968539734497%;
799
+ }
800
+ .row-fluid .offset7 {
801
+ margin-left: 62.393162393162385%;
802
+ *margin-left: 62.28677941443899%;
803
+ }
804
+ .row-fluid .offset7:first-child {
805
+ margin-left: 59.82905982905982%;
806
+ *margin-left: 59.72267685033642%;
807
+ }
808
+ .row-fluid .offset6 {
809
+ margin-left: 53.84615384615384%;
810
+ *margin-left: 53.739770867430444%;
811
+ }
812
+ .row-fluid .offset6:first-child {
813
+ margin-left: 51.28205128205128%;
814
+ *margin-left: 51.175668303327875%;
815
+ }
816
+ .row-fluid .offset5 {
817
+ margin-left: 45.299145299145295%;
818
+ *margin-left: 45.1927623204219%;
819
+ }
820
+ .row-fluid .offset5:first-child {
821
+ margin-left: 42.73504273504273%;
822
+ *margin-left: 42.62865975631933%;
823
+ }
824
+ .row-fluid .offset4 {
825
+ margin-left: 36.75213675213675%;
826
+ *margin-left: 36.645753773413354%;
827
+ }
828
+ .row-fluid .offset4:first-child {
829
+ margin-left: 34.18803418803419%;
830
+ *margin-left: 34.081651209310785%;
831
+ }
832
+ .row-fluid .offset3 {
833
+ margin-left: 28.205128205128204%;
834
+ *margin-left: 28.0987452264048%;
835
+ }
836
+ .row-fluid .offset3:first-child {
837
+ margin-left: 25.641025641025642%;
838
+ *margin-left: 25.53464266230224%;
839
+ }
840
+ .row-fluid .offset2 {
841
+ margin-left: 19.65811965811966%;
842
+ *margin-left: 19.551736679396257%;
843
+ }
844
+ .row-fluid .offset2:first-child {
845
+ margin-left: 17.094017094017094%;
846
+ *margin-left: 16.98763411529369%;
847
+ }
848
+ .row-fluid .offset1 {
849
+ margin-left: 11.11111111111111%;
850
+ *margin-left: 11.004728132387708%;
851
+ }
852
+ .row-fluid .offset1:first-child {
853
+ margin-left: 8.547008547008547%;
854
+ *margin-left: 8.440625568285142%;
855
+ }
856
+
857
+
858
+ .highlighted {
859
+ -webkit-animation-duration: 1s;
860
+ animation-duration: 1s;
861
+ -webkit-animation-fill-mode: both;
862
+ animation-fill-mode: both;
863
+ -webkit-animation-timing-function: ease-out;
864
+ animation-timing-function: ease-out;
865
+ }
866
+
867
+ @-webkit-keyframes highlighted {
868
+ 0% {
869
+ opacity: 0;
870
+ background-color: #ffeaa0;
871
+ }
872
+ 100% {
873
+ opacity: 1;
874
+ background-color: #ffffff;
875
+ }
876
+ }
877
+ @keyframes highlighted {
878
+ 0% {
879
+ opacity: 0;
880
+ background-color: #ffeaa0;
881
+ }
882
+ 100% {
883
+ opacity: 1;
884
+ background-color: #ffffff;
885
+ }
886
+ }
887
+ @-webkit-keyframes highlightedBlocked {
888
+ 0% {
889
+ opacity: 0;
890
+ background-color: #ffeaa0;
891
+ }
892
+ 100% {
893
+ opacity: 1;
894
+ background-color: #fff6f6;
895
+ }
896
+ }
897
+ @keyframes highlightedBlocked {
898
+ 0% {
899
+ opacity: 0;
900
+ background-color: #ffeaa0;
901
+ }
902
+ 100% {
903
+ opacity: 1;
904
+ background-color: #fff6f6;
905
+ }
906
+ }
907
+ .highlighted {
908
+ -webkit-animation-name: highlighted;
909
+ animation-name: highlighted;
910
+ }
911
+ .highlighted.wfActionBlocked {
912
+ -webkit-animation-name: highlightedBlocked;
913
+ animation-name: highlightedBlocked;
914
+ }
915
+
916
+ #wf-lt-preset-filters {
917
+ min-width: 250px;
918
+ }
919
+ #wf-lt-advanced-filters > table {
920
+ width: 100%;
921
+ }
922
+ #wf-lt-advanced-filters > table > tr > td {
923
+ vertical-align: top;
924
+ }
925
+ .wf-lt-url {
926
+ white-space: nowrap;
927
+ }
928
+
929
+ #input-wafStatus,
930
+ #input-wafStatus option,
931
+ .select2-container--default {
932
+ font-size: 18px;
933
+ }
934
+ .wafStatus-enabled,
935
+ .wafStatus-learning-mode,
936
+ .wafStatus-disabled,
937
+ .wafStatus-enabled.select2-container--default .select2-selection--single .select2-selection__rendered,
938
+ .wafStatus-learning-mode.select2-container--default .select2-selection--single .select2-selection__rendered,
939
+ .wafStatus-disabled.select2-container--default .select2-selection--single .select2-selection__rendered {
940
+ color: #ffffff;
941
+ }
942
+ .wafStatus-learning-mode.select2-container--default .select2-selection--single .select2-selection__rendered {
943
+ /*color: #484d6a;*/
944
+ }
945
+ #waf-config-form .select2-container--default .select2-selection--single {
946
+ padding: 4px;
947
+ text-shadow: 0 0 3px #000000;
948
+ font-weight: bold;
949
+ border-radius: 3px;
950
+ }
951
+ #waf-config-form .select2-container .select2-selection--single {
952
+ height: auto;
953
+ }
954
+ /*.wafStatus-enabled,*/
955
+ .wafStatus-enabled.select2-container--default .select2-selection--single {
956
+ background-color: #61e157;
957
+ border-color: #43ad3f;
958
+ }
959
+ /*.wafStatus-learning-mode,*/
960
+ .wafStatus-learning-mode.select2-container--default .select2-selection--single {
961
+ background-color: #ffe674;
962
+ border-color: #e5ae35;
963
+ }
964
+ /*.wafStatus-disabled,*/
965
+ .wafStatus-disabled.select2-container--default .select2-selection--single {
966
+ background-color: #ff6d69;
967
+ border-color: #dd422c;
968
+ }
969
+ #waf-config-form .select2-container--default .select2-selection--single .select2-selection__arrow {
970
+ height: 100%;
971
+ top: 0;
972
+ }
973
+ .wafStatus-enabled.select2-container--default .select2-selection--single .select2-selection__arrow b,
974
+ .wafStatus-learning-mode.select2-container--default .select2-selection--single .select2-selection__arrow b,
975
+ .wafStatus-disabled.select2-container--default .select2-selection--single .select2-selection__arrow b {
976
+ border-color: #ffffff transparent transparent;
977
+ }
978
+ .wafStatus-enabled.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,
979
+ .wafStatus-learning-mode.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,
980
+ .wafStatus-disabled.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
981
+ border-color: transparent transparent #ffffff;
982
+ }
983
+ .wafStatus-description {
984
+ display:none;
985
+ max-width: 500px;
986
+ font-style: italic;
987
+ font-size: 14px;
988
+ line-height: 1.3;
989
+ }
990
+
991
+ pre.wf-pre {
992
+ margin:8px 0 20px;
993
+ }
994
+ pre.wf-pre {
995
+ padding: 12px;
996
+ background: #ffffff;
997
+ border: 1px solid #999999;
998
+ overflow: auto;
999
+ }
css/select2.min.css ADDED
@@ -0,0 +1 @@
1
+ .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle;}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none;}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px;}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none;}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap;}.select2-container .select2-search--inline{float:left;}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none;}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051;}.select2-results{display:block;}.select2-results__options{list-style:none;margin:0;padding:0;}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none;}.select2-results__option[aria-selected]{cursor:pointer;}.select2-container--open .select2-dropdown{left:0;}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0;}.select2-search--dropdown{display:block;padding:4px;}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box;}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none;}.select2-search--dropdown.select2-search--hide{display:none;}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0);}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px;}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px;}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999;}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px;}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0;}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left;}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto;}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default;}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none;}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px;}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%;}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left;}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px;}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px;}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333;}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder{float:right;}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto;}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto;}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0;}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default;}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none;}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0;}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0;}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa;}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto;}.select2-container--default .select2-results__option[role=group]{padding:0;}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999;}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd;}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em;}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white;}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px;}.select2-container--classic .select2-selection--single{background-color:#f6f6f6;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #ffffff 50%, #eeeeee 100%);background-image:-o-linear-gradient(top, #ffffff 50%, #eeeeee 100%);background-image:linear-gradient(to bottom, #ffffff 50%, #eeeeee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb;}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px;}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px;}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999;}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);background-image:-o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);background-image:linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0);}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0;}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left;}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto;}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb;}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none;}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px;}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #ffffff 0%, #eeeeee 50%);background-image:-o-linear-gradient(top, #ffffff 0%, #eeeeee 50%);background-image:linear-gradient(to bottom, #ffffff 0%, #eeeeee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eeeeee 50%, #ffffff 100%);background-image:-o-linear-gradient(top, #eeeeee 50%, #ffffff 100%);background-image:linear-gradient(to bottom, #eeeeee 50%, #ffffff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb;}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px;}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none;}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px;}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px;}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto;}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto;}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb;}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0;}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0;}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;}.select2-container--classic .select2-dropdown{background-color:white;border:1px solid transparent;}.select2-container--classic .select2-dropdown--above{border-bottom:none;}.select2-container--classic .select2-dropdown--below{border-top:none;}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto;}.select2-container--classic .select2-results__option[role=group]{padding:0;}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey;}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:white;}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px;}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb;}
js/admin.js CHANGED
@@ -40,6 +40,8 @@
40
passwdAuditUpdateInt: false,
41
_windowHasFocus: true,
42
serverTimestampOffset: 0,
43
44
init: function() {
45
this.nonce = WordfenceAdminVars.firstNonce;
@@ -55,6 +57,28 @@
55
self._windowHasFocus = true;
56
}).focus();
57
58
$(document).focus();
59
60
// (docs|support).wordfence.com GA links
@@ -87,6 +111,12 @@
87
if (this.needTour()) {
88
this.scanTourStart();
89
}
90
} else if (jQuery('#wordfenceMode_activity').length > 0) {
91
this.mode = 'activity';
92
this.setupSwitches('wfLiveTrafficOnOff', 'liveTrafficEnabled', function() {
@@ -126,7 +156,7 @@
126
if (this.needTour()) {
127
this.tour('wfContentBasicOptions', 'wfMarkerBasicOptions', 'top', 'left', "Learn about Live Traffic Options", function() {
128
self.tour('wfContentLiveTrafficOptions', 'wfMarkerLiveTrafficOptions', 'bottom', 'left', "Learn about Scanning Options", function() {
129
- self.tour('wfContentScansToInclude', 'wfMarkerScansToInclude', 'bottom', 'left', "Learn about Firewall Rules", function() {
130
self.tour('wfContentFirewallRules', 'wfMarkerFirewallRules', 'bottom', 'left', "Learn about Login Security", function() {
131
self.tour('wfContentLoginSecurity', 'wfMarkerLoginSecurity', 'bottom', 'left', "Learn about Other Options", function() {
132
self.tour('wfContentOtherOptions', 'wfMarkerOtherOptions', 'bottom', 'left', false, false);
@@ -240,7 +270,7 @@
240
this.ajax('wordfence_sendTestEmail', {email: email}, function(res) {
241
if (res.result) {
242
self.colorbox('400px', "Test Email Sent", "Your test email was sent to the requested email address. The result we received from the WordPress wp_mail() function was: " +
243
- res.result + "<br /><br />A 'True' result means WordPress thinks the mail was sent without errors. A 'False' result means that WordPress encountered an error sending your mail. Note that it's possible to get a 'True' response with an error elsewhere in your mail system that may cause emails to not be delivered.");
244
}
245
});
246
},
@@ -278,8 +308,8 @@
278
var self = this;
279
this.tour('wfWelcomeContent1', 'wfHeading', 'top', 'left', "Continue the Tour", function() {
280
self.tour('wfWelcomeContent2', 'wfHeading', 'top', 'left', "Learn how to use Wordfence", function() {
281
- self.tour('wfWelcomeContent3', 'wfHeading', 'top', 'left', "Learn about Live Traffic", function() {
282
- self.tourRedir('WordfenceActivity');
283
});
284
});
285
});
@@ -388,9 +418,34 @@
388
this.lastALogCtime = res.items[res.items.length - 1].ctime;
389
this.processActQueue(res.currentScanID);
390
}
391
}
392
this.activityLogUpdatePending = false;
393
},
394
processActQueue: function(currentScanID) {
395
if (this.activityQueue.length > 0) {
396
this.addActItem(this.activityQueue.shift());
@@ -527,17 +582,23 @@
527
var self = this;
528
var alsoGet = '';
529
var otherParams = '';
530
- if (this.mode == 'activity' && /^(?:404|hit|human|ruser|gCrawler|crawler|loginLogout)#x2F;.test(this.activityMode)) {
531
alsoGet = 'logList_' + this.activityMode;
532
otherParams = this.newestActivityTime;
533
} else if (this.mode == 'perfStats') {
534
alsoGet = 'perfStats';
535
otherParams = this.newestActivityTime;
536
}
537
- this.ajax('wordfence_ticker', {
538
- alsoGet: alsoGet,
539
- otherParams: otherParams
540
- }, function(res) {
541
self.handleTickerReturn(res);
542
}, function() {
543
self.tickerUpdatePending = false;
@@ -557,8 +618,19 @@
557
}
558
var haveEvents, newElem;
559
this.serverTimestampOffset = (new Date().getTime() / 1000) - res.serverTime;
560
561
- if (this.mode == 'activity') {
562
if (res.alsoGet != 'logList_' + this.activityMode) {
563
return;
564
} //user switched panels since ajax request started
@@ -624,6 +696,7 @@
624
}
625
},
626
reverseLookupIPs: function() {
627
var ips = [];
628
jQuery('.wfReverseLookup').each(function(idx, elem) {
629
var txt = jQuery(elem).text();
@@ -653,7 +726,7 @@
653
for (var ip in res.ips) {
654
if (txt == ip) {
655
if (res.ips[ip]) {
656
- jQuery(elem).html('<strong>Hostname:</strong>&nbsp;' + res.ips[ip]);
657
} else {
658
jQuery(elem).html('');
659
}
@@ -674,31 +747,20 @@
674
});
675
},
676
startScan: function() {
677
var scanReqAnimation = setInterval(function() {
678
- var str = jQuery('#wfStartScanButton1').prop('value');
679
- var ch = str.charAt(str.length - 1);
680
- if (ch == '/') {
681
- ch = '-';
682
- }
683
- else if (ch == '-') {
684
- ch = '\\';
685
- }
686
- else if (ch == '\\') {
687
- ch = '|';
688
- }
689
- else if (ch == '|') {
690
- ch = '/';
691
- }
692
- else {
693
- ch = '/';
694
- }
695
- jQuery('#wfStartScanButton1,#wfStartScanButton2').prop('value', "Requesting a New Scan " + ch);
696
}, 100);
697
setTimeout(function(res) {
698
clearInterval(scanReqAnimation);
699
- jQuery('#wfStartScanButton1,#wfStartScanButton2').prop('value', "Start a Wordfence Scan");
700
}, 3000);
701
this.ajax('wordfence_scan', {}, function(res) {
702
});
703
},
704
displayPWAuditJobs: function(res) {
@@ -833,6 +895,16 @@
833
data += '&';
834
}
835
data += 'action=' + action + '&nonce=' + this.nonce;
836
} else if (typeof(data) == 'object') {
837
data['action'] = action;
838
data['nonce'] = this.nonce;
@@ -885,8 +957,19 @@
885
this.colorboxOpen(elem[0], elem[1], elem[2]);
886
},
887
colorboxOpen: function(width, heading, body) {
888
this.colorboxIsOpen = true;
889
- jQuery.colorbox({width: width, html: "<h3>" + heading + "</h3><p>" + body + "</p>"});
890
},
891
scanRunningMsg: function() {
892
this.colorbox('400px', "A scan is running", "A scan is currently in progress. Please wait until it finishes before starting another scan.");
@@ -979,6 +1062,88 @@
979
});
980
}
981
},
982
restoreFile: function(issueID) {
983
var self = this;
984
this.ajax('wordfence_restoreFile', {
@@ -999,6 +1164,46 @@
999
});
1000
}
1001
},
1002
deleteIssue: function(id) {
1003
var self = this;
1004
this.ajax('wordfence_deleteIssue', {id: id}, function(res) {
@@ -1475,7 +1680,7 @@
1475
self.loadBlockRanges();
1476
});
1477
},
1478
- blockIP: function(IP, reason) {
1479
var self = this;
1480
this.ajax('wordfence_blockIP', {
1481
IP: IP,
@@ -1485,6 +1690,7 @@
1485
return;
1486
} else {
1487
self.reloadActivities();
1488
}
1489
});
1490
},
@@ -1510,12 +1716,13 @@
1510
self.staticTabChanged();
1511
});
1512
},
1513
- unblockIP: function(IP) {
1514
var self = this;
1515
this.ajax('wordfence_unblockIP', {
1516
IP: IP
1517
}, function(res) {
1518
self.reloadActivities();
1519
});
1520
},
1521
unblockNetwork: function(id) {
@@ -1646,6 +1853,22 @@
1646
}
1647
});
1648
},
1649
changeSecurityLevel: function() {
1650
var level = jQuery('#securityLevel').val();
1651
for (var k in WFSLevels[level].checkboxes) {
@@ -1668,8 +1891,8 @@
1668
return;
1669
}
1670
this.colorbox('450px', "Please confirm", body +
1671
- '<br /><br /><center><input type="button" name="but1" value="Cancel" onclick="jQuery.colorbox.close();" />&nbsp;&nbsp;&nbsp;' +
1672
- '<input type="button" name="but2" value="Yes I\'m sure" onclick="jQuery.colorbox.close(); WFAD.confirmClearAllBlocked(\'' + op + '\');"><br />');
1673
},
1674
confirmClearAllBlocked: function(op) {
1675
var self = this;
@@ -1735,7 +1958,7 @@
1735
this.countryCodesToSave = codesArr.join(',');
1736
if (ownCountryBlocked) {
1737
this.colorbox('400px', "Please confirm blocking yourself", "You are about to block your own country. This could lead to you being locked out. Please make sure that your user profile on this machine has a current and valid email address and make sure you know what it is. That way if you are locked out, you can send yourself an unlock email. If you're sure you want to block your own country, click 'Confirm' below, otherwise click 'Cancel'.<br />" +
1738
- '<input type="button" name="but1" value="Confirm" onclick="jQuery.colorbox.close(); WFAD.confirmSaveCountryBlocking();" />&nbsp;<input type="button" name="but1" value="Cancel" onclick="jQuery.colorbox.close();" />');
1739
} else {
1740
this.confirmSaveCountryBlocking();
1741
}
@@ -1908,7 +2131,7 @@
1908
if (res.users && res.users.length > 0) {
1909
for (var i = 0; i < res.users.length; i++) {
1910
jQuery('<div id="twoFacCont_' + res.users[i].userID + '">' +
1911
- jQuery('#wfTwoFacUserTmpl').tmpl(res.users[i]).html() + '</div>').appendTo(jQuery('#wfTwoFacUsers'));
1912
}
1913
}
1914
});
@@ -2083,6 +2306,43 @@
2083
}
2084
});
2085
},
2086
windowHasFocus: function() {
2087
if (typeof document.hasFocus === 'function') {
2088
return document.hasFocus();
@@ -2128,17 +2388,173 @@
2128
if (!timestamp) {
2129
timestamp = el.attr('data-timestamp');
2130
}
2131
- var serverTime = (new Date().getTime() / 1000) - self.serverTimestampOffset;
2132
var format = el.data('wfformat');
2133
if (!format) {
2134
format = el.attr('data-format');
2135
}
2136
el.html(self.showTimestamp(timestamp, serverTime, format));
2137
});
2138
}
2139
};
2140
- window['WFAD'] = window['wordfenceAdmin'];
2141
2142
setInterval(function() {
2143
WFAD.updateTimeAgo();
2144
}, 1000);
40
passwdAuditUpdateInt: false,
41
_windowHasFocus: true,
42
serverTimestampOffset: 0,
43
+ serverMicrotime: 0,
44
+ wfLiveTraffic: null,
45
46
init: function() {
47
this.nonce = WordfenceAdminVars.firstNonce;
57
self._windowHasFocus = true;
58
}).focus();
59
60
+ $('.do-show').click(function() {
61
+ var $this = $(this);
62
+ $this.hide();
63
+ $($this.data('selector')).show();
64
+ return false;
65
+ });
66
+
67
+ $('#doSendEmail').click(function() {
68
+ WFAD.ajax('wordfence_sendDiagnostic', {email: $('#_email').val()}, function(res) {
69
+ if (res.result) {
70
+ self.colorbox('400px', "Email Diagnostic Report", "Diagnostic report has been sent successfully.");
71
+ } else {
72
+ self.colorbox('400px', "Error", "There was an error while sending the email.");
73
+ }
74
+ });
75
+ });
76
+
77
+ $('#sendByEmail').click(function() {
78
+ $('#sendByEmailForm').removeClass('hidden');
79
+ $(this).hide();
80
+ });
81
+
82
$(document).focus();
83
84
// (docs|support).wordfence.com GA links
111
if (this.needTour()) {
112
this.scanTourStart();
113
}
114
+ } else if (jQuery('#wordfenceMode_waf').length > 0) {
115
+ if (this.needTour()) {
116
+ this.tour('wfWAFTour', 'wfHeading', 'top', 'left', "Learn about Live Traffic", function() {
117
+ self.tourRedir('WordfenceActivity');
118
+ });
119
+ }
120
} else if (jQuery('#wordfenceMode_activity').length > 0) {
121
this.mode = 'activity';
122
this.setupSwitches('wfLiveTrafficOnOff', 'liveTrafficEnabled', function() {
156
if (this.needTour()) {
157
this.tour('wfContentBasicOptions', 'wfMarkerBasicOptions', 'top', 'left', "Learn about Live Traffic Options", function() {
158
self.tour('wfContentLiveTrafficOptions', 'wfMarkerLiveTrafficOptions', 'bottom', 'left', "Learn about Scanning Options", function() {
159
+ self.tour('wfContentScansToInclude', 'wfMarkerScansToInclude', 'bottom', 'left', "Learn about Rate Limiting Rules", function() {
160
self.tour('wfContentFirewallRules', 'wfMarkerFirewallRules', 'bottom', 'left', "Learn about Login Security", function() {
161
self.tour('wfContentLoginSecurity', 'wfMarkerLoginSecurity', 'bottom', 'left', "Learn about Other Options", function() {
162
self.tour('wfContentOtherOptions', 'wfMarkerOtherOptions', 'bottom', 'left', false, false);
270
this.ajax('wordfence_sendTestEmail', {email: email}, function(res) {
271
if (res.result) {
272
self.colorbox('400px', "Test Email Sent", "Your test email was sent to the requested email address. The result we received from the WordPress wp_mail() function was: " +
273
+ res.result + "<br /><br />A 'True' result means WordPress thinks the mail was sent without errors. A 'False' result means that WordPress encountered an error sending your mail. Note that it's possible to get a 'True' response with an error elsewhere in your mail system that may cause emails to not be delivered.");
274
}
275
});
276
},
308
var self = this;
309
this.tour('wfWelcomeContent1', 'wfHeading', 'top', 'left', "Continue the Tour", function() {
310
self.tour('wfWelcomeContent2', 'wfHeading', 'top', 'left', "Learn how to use Wordfence", function() {
311
+ self.tour('wfWelcomeContent3', 'wfHeading', 'top', 'left', "Learn about the Firewall", function() {
312
+ self.tourRedir('WordfenceWAF');
313
});
314
});
315
});
418
this.lastALogCtime = res.items[res.items.length - 1].ctime;
419
this.processActQueue(res.currentScanID);
420
}
421
+ if (res.signatureUpdateTime) {
422
+ this.updateSignaturesTimestamp(res.signatureUpdateTime);
423
+ }
424
}
425
this.activityLogUpdatePending = false;
426
},
427
+
428
+ updateSignaturesTimestamp: function(signatureUpdateTime) {
429
+ var date = new Date(signatureUpdateTime * 1000);
430
+
431
+ var dateString = date.toString();
432
+ if (date.toLocaleString) {
433
+ dateString = date.toLocaleString();
434
+ }
435
+
436
+ var sigTimestampEl = $('#wf-scan-sigs-last-update');
437
+ var newText = 'Last Updated: ' + dateString;
438
+ if (sigTimestampEl.text() !== newText) {
439
+ sigTimestampEl.text(newText)
440
+ .css({
441
+ 'opacity': 0
442
+ })
443
+ .animate({
444
+ 'opacity': 1
445
+ }, 500);
446
+ }
447
+ },
448
+
449
processActQueue: function(currentScanID) {
450
if (this.activityQueue.length > 0) {
451
this.addActItem(this.activityQueue.shift());
582
var self = this;
583
var alsoGet = '';
584
var otherParams = '';
585
+ var data = '';
586
+ if (this.mode == 'liveTraffic') {
587
+ alsoGet = 'liveTraffic';
588
+ otherParams = this.newestActivityTime;
589
+ data += this.wfLiveTraffic.getCurrentQueryString({
590
+ since: this.newestActivityTime
591
+ });
592
+
593
+ } else if (this.mode == 'activity' && /^(?:404|hit|human|ruser|gCrawler|crawler|loginLogout)#x2F;.test(this.activityMode)) {
594
alsoGet = 'logList_' + this.activityMode;
595
otherParams = this.newestActivityTime;
596
} else if (this.mode == 'perfStats') {
597
alsoGet = 'perfStats';
598
otherParams = this.newestActivityTime;
599
}
600
+ data += '&alsoGet=' + encodeURIComponent(alsoGet) + '&otherParams=' + encodeURIComponent(otherParams);
601
+ this.ajax('wordfence_ticker', data, function(res) {
602
self.handleTickerReturn(res);
603
}, function() {
604
self.tickerUpdatePending = false;
618
}
619
var haveEvents, newElem;
620
this.serverTimestampOffset = (new Date().getTime() / 1000) - res.serverTime;
621
+ this.serverMicrotime = res.serverMicrotime;
622
623
+ if (this.mode == 'liveTraffic') {
624
+ if (res.events.length > 0) {
625
+ this.newestActivityTime = res.events[0]['ctime'];
626
+ }
627
+ if (typeof WFAD.wfLiveTraffic !== undefined) {
628
+ WFAD.wfLiveTraffic.prependListings(res.events, res);
629
+ this.reverseLookupIPs();
630
+ this.updateTimeAgo();
631
+ }
632
+
633
+ } else if (this.mode == 'activity') { // This mode is deprecated as of 6.1.0
634
if (res.alsoGet != 'logList_' + this.activityMode) {
635
return;
636
} //user switched panels since ajax request started
696
}
697
},
698
reverseLookupIPs: function() {
699
+ var self = this;
700
var ips = [];
701
jQuery('.wfReverseLookup').each(function(idx, elem) {
702
var txt = jQuery(elem).text();
726
for (var ip in res.ips) {
727
if (txt == ip) {
728
if (res.ips[ip]) {
729
+ jQuery(elem).html('<strong>Hostname:</strong>&nbsp;' + self.htmlEscape(res.ips[ip]));
730
} else {
731
jQuery(elem).html('');
732
}
747
});
748
},
749
startScan: function() {
750
+ var spinnerValues = [
751
+ '|', '/', '-', '\\'
752
+ ];
753
+ var count = 0;
754
var scanReqAnimation = setInterval(function() {
755
+ var ch = spinnerValues[count++ % spinnerValues.length];
756
+ jQuery('#wfStartScanButton1,#wfStartScanButton2').html("Requesting a New Scan <span class='wf-spinner'>" + ch + "</span>");
757
}, 100);
758
setTimeout(function(res) {
759
clearInterval(scanReqAnimation);
760
+ jQuery('#wfStartScanButton1,#wfStartScanButton2').text("Start a Wordfence Scan");
761
}, 3000);
762
this.ajax('wordfence_scan', {}, function(res) {
763
+
764
});
765
},
766
displayPWAuditJobs: function(res) {
895
data += '&';
896
}
897
data += 'action=' + action + '&nonce=' + this.nonce;
898
+ } else if (typeof(data) == 'object' && data instanceof Array) {
899
+ // jQuery serialized form data
900
+ data.push({
901
+ name: 'action',
902
+ value: action
903
+ });
904
+ data.push({
905
+ name: 'nonce',
906
+ value: this.nonce
907
+ });
908
} else if (typeof(data) == 'object') {
909
data['action'] = action;
910
data['nonce'] = this.nonce;
957
this.colorboxOpen(elem[0], elem[1], elem[2]);
958
},
959
colorboxOpen: function(width, heading, body) {
960
+ var self = this;
961
this.colorboxIsOpen = true;
962
+ jQuery.colorbox({
963
+ width: width,
964
+ html: "<h3>" + heading + "</h3><p>" + body + "</p>",
965
+ onClosed: function() {
966
+ self.colorboxClose();
967
+ }
968
+ });
969
+ },
970
+ colorboxClose: function() {
971
+ this.colorboxIsOpen = false;
972
+ jQuery.colorbox.close();
973
},
974
scanRunningMsg: function() {
975
this.colorbox('400px', "A scan is running", "A scan is currently in progress. Please wait until it finishes before starting another scan.");
1062
});
1063
}
1064
},
1065
+ fixFPD: function(issueID) {
1066
+ var self = this;
1067
+ var title = "Full Path Disclosure";
1068
+ issueID = parseInt(issueID);
1069
+
1070
+ this.ajax('wordfence_checkFalconHtaccess', {}, function(res) {
1071
+ if (res.ok) {
1072
+ self.colorbox("400px", title, 'We are about to change your <em>.htaccess</em> file. Please make a backup of this file proceeding'
1073
+ + '<br/>'
1074
+ + '<a href="' + WordfenceAdminVars.ajaxURL + '?action=wordfence_downloadHtaccess&nonce=' + self.nonce + '" onclick="jQuery(\'#wfFPDNextBut\').prop(\'disabled\', false); return true;">Click here to download a backup copy of your .htaccess file now</a><br /><br /><input type="button" name="but1" id="wfFPDNextBut" value="Click to fix .htaccess" disabled="disabled" onclick="WFAD.fixFPD_WriteHtAccess(' + issueID + ');" />');
1075
+ } else if (res.nginx) {
1076
+ self.colorbox("400px", title, 'You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. You will need to manually modify your php.ini to disable <em>display_error</em>');
1077
+ } else if (res.err) {
1078
+ self.colorbox('400px', "We encountered a problem", "We can't modify your .htaccess file for you because: " + res.err);
1079
+ }
1080
+ });
1081
+ },
1082
+ fixFPD_WriteHtAccess: function(issueID) {
1083
+ var self = this;
1084
+ self.colorboxClose();
1085
+ this.ajax('wordfence_fixFPD', {
1086
+ issueID: issueID
1087
+ }, function(res) {
1088
+ if (res.ok) {
1089
+ self.loadIssues(function() {
1090
+ self.colorbox("400px", "File restored OK", "The Full Path disclosure issue has been fixed");
1091
+ });
1092
+ } else {
1093
+ self.loadIssues(function() {
1094
+ self.colorbox('400px', 'An error occurred', res.cerrorMsg);
1095
+ });
1096
+ }
1097
+ });
1098
+ },
1099
+
1100
+ _handleHtAccess: function(issueID, callback, title, nginx) {
1101
+ var self = this;
1102
+ return function(res) {
1103
+ if (res.ok) {
1104
+ self.colorbox("400px", title, 'We are about to change your <em>.htaccess</em> file. Please make a backup of this file proceeding'
1105
+ + '<br/>'
1106
+ + '<a id="dlButton" href="' + WordfenceAdminVars.ajaxURL + '?action=wordfence_downloadHtaccess&nonce=' + self.nonce + '">Click here to download a backup copy of your .htaccess file now</a>'
1107
+ + '<br /><br /><input type="button" name="but1" id="wfFPDNextBut" value="Click to fix .htaccess" disabled="disabled" />'
1108
+ );
1109
+ jQuery('#dlButton').click('click', function() {
1110
+ jQuery('#wfFPDNextBut').prop('disabled', false);
1111
+ });
1112
+ jQuery('#wfFPDNextBut').one('click', function() {
1113
+ self[callback](issueID);
1114
+ });
1115
+ } else if (res.nginx) {
1116
+ self.colorbox("400px", title, 'You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. ' + nginx);
1117
+ } else if (res.err) {
1118
+ self.colorbox('400px', "We encountered a problem", "We can't modify your .htaccess file for you because: " + res.err);
1119
+ }
1120
+ };
1121
+ },
1122
+ _hideFile: function(issueID) {
1123
+ var self = this;
1124
+ var title = 'Modifying .htaccess';
1125
+ this.ajax('wordfence_hideFileHtaccess', {
1126
+ issueID: issueID
1127
+ }, function(res) {
1128
+ jQuery.colorbox.close();
1129
+ self.loadIssues(function() {
1130
+ if (res.ok) {
1131
+ self.colorbox("400px", title, 'Your .htaccess file has been updated successfully.');
1132
+ } else {
1133
+ self.colorbox("400px", title, 'We encountered a problem while trying to update your .htaccess file.');
1134
+ }
1135
+ });
1136
+ });
1137
+ },
1138
+ hideFile: function(issueID) {
1139
+ var self = this;
1140
+ var title = "Backup your .htaccess file";
1141
+ var nginx = "You will need to manually delete those files";
1142
+ issueID = parseInt(issueID, 10);
1143
+
1144
+ this.ajax('wordfence_checkFalconHtaccess', {}, this._handleHtAccess(issueID, '_hideFile', title, nginx));
1145
+ },
1146
+
1147
restoreFile: function(issueID) {
1148
var self = this;
1149
this.ajax('wordfence_restoreFile', {
1164
});
1165
}
1166
},
1167
+
1168
+ disableDirectoryListing: function(issueID) {
1169
+ var self = this;
1170
+ var title = "Disable Directory Listing";
1171
+ issueID = parseInt(issueID);
1172
+
1173
+ this.ajax('wordfence_checkFalconHtaccess', {}, function(res) {
1174
+ if (res.ok) {
1175
+ self.colorbox("400px", title, 'We are about to change your <em>.htaccess</em> file. Please make a backup of this file proceeding'
1176
+ + '<br/>'
1177
+ + '<a href="' + WordfenceAdminVars.ajaxURL + '?action=wordfence_downloadHtaccess&nonce=' + self.nonce + '" onclick="jQuery(\'#wf-htaccess-confirm\').prop(\'disabled\', false); return true;">Click here to download a backup copy of your .htaccess file now</a>' +
1178
+ '<br /><br />' +
1179
+ '<button class="button" type="button" id="wf-htaccess-confirm" disabled="disabled" onclick="WFAD.confirmDisableDirectoryListing(' + issueID + ');">Add code to .htaccess</button>');
1180
+ } else if (res.nginx) {
1181
+ self.colorbox('400px', "You are using Nginx as your web server. " +
1182
+ "You'll need to disable autoindexing in your nginx.conf. " +
1183
+ "See the <a target='_blank' href='http://nginx.org/en/docs/http/ngx_http_autoindex_module.html'>Nginx docs for more info</a> on how to do this.");
1184
+ } else if (res.err) {
1185
+ self.colorbox('400px', "We encountered a problem", "We can't modify your .htaccess file for you because: " + res.err);
1186
+ }
1187
+ });
1188
+ },
1189
+ confirmDisableDirectoryListing: function(issueID) {
1190
+ var self = this;
1191
+ this.colorboxClose();
1192
+ this.ajax('wordfence_disableDirectoryListing', {
1193
+ issueID: issueID
1194
+ }, function(res) {
1195
+ if (res.ok) {
1196
+ self.loadIssues(function() {
1197
+ self.colorbox("400px", "Directory Listing Disabled", "Directory listing has been disabled on your server.");
1198
+ });
1199
+ } else {
1200
+ //self.loadIssues(function() {
1201
+ // self.colorbox('400px', 'An error occurred', res.errorMsg);
1202
+ //});
1203
+ }
1204
+ });
1205
+ },
1206
+
1207
deleteIssue: function(id) {
1208
var self = this;
1209
this.ajax('wordfence_deleteIssue', {id: id}, function(res) {
1680
self.loadBlockRanges();
1681
});
1682
},
1683
+ blockIP: function(IP, reason, callback) {
1684
var self = this;
1685
this.ajax('wordfence_blockIP', {
1686
IP: IP,
1690
return;
1691
} else {
1692
self.reloadActivities();
1693
+ typeof callback === 'function' && callback();
1694
}
1695
});
1696
},
1716
self.staticTabChanged();
1717
});
1718
},
1719
+ unblockIP: function(IP, callback) {
1720
var self = this;
1721
this.ajax('wordfence_unblockIP', {
1722
IP: IP
1723
}, function(res) {
1724
self.reloadActivities();
1725
+ typeof callback === 'function' && callback();
1726
});
1727
},
1728
unblockNetwork: function(id) {
1853
}
1854
});
1855
},
1856
+ saveDebuggingConfig: function() {
1857
+ var qstr = jQuery('#wfDebuggingConfigForm').serialize();
1858
+ var self = this;
1859
+ jQuery('.wfSavedMsg').hide();
1860
+ jQuery('.wfAjax24').show();
1861
+ this.ajax('wordfence_saveDebuggingConfig', qstr, function(res) {
1862
+ jQuery('.wfAjax24').hide();
1863
+ if (res.ok) {
1864
+ self.pulse('.wfSavedMsg');
1865
+ } else if (res.errorMsg) {
1866
+ return;
1867
+ } else {
1868
+ self.colorbox('400px', 'An error occurred', 'We encountered an error trying to save your changes.');
1869
+ }
1870
+ });
1871
+ },
1872
changeSecurityLevel: function() {
1873
var level = jQuery('#securityLevel').val();
1874
for (var k in WFSLevels[level].checkboxes) {
1891
return;
1892
}
1893
this.colorbox('450px', "Please confirm", body +
1894
+ '<br /><br /><center><input type="button" name="but1" value="Cancel" onclick="jQuery.colorbox.close();" />&nbsp;&nbsp;&nbsp;' +
1895
+ '<input type="button" name="but2" value="Yes I\'m sure" onclick="jQuery.colorbox.close(); WFAD.confirmClearAllBlocked(\'' + op + '\');"><br />');
1896
},
1897
confirmClearAllBlocked: function(op) {
1898
var self = this;
1958
this.countryCodesToSave = codesArr.join(',');
1959
if (ownCountryBlocked) {
1960
this.colorbox('400px', "Please confirm blocking yourself", "You are about to block your own country. This could lead to you being locked out. Please make sure that your user profile on this machine has a current and valid email address and make sure you know what it is. That way if you are locked out, you can send yourself an unlock email. If you're sure you want to block your own country, click 'Confirm' below, otherwise click 'Cancel'.<br />" +
1961
+ '<input type="button" name="but1" value="Confirm" onclick="jQuery.colorbox.close(); WFAD.confirmSaveCountryBlocking();" />&nbsp;<input type="button" name="but1" value="Cancel" onclick="jQuery.colorbox.close();" />');
1962
} else {
1963
this.confirmSaveCountryBlocking();
1964
}
2131
if (res.users && res.users.length > 0) {
2132
for (var i = 0; i < res.users.length; i++) {
2133
jQuery('<div id="twoFacCont_' + res.users[i].userID + '">' +
2134
+ jQuery('#wfTwoFacUserTmpl').tmpl(res.users[i]).html() + '</div>').appendTo(jQuery('#wfTwoFacUsers'));
2135
}
2136
}
2137
});
2306
}
2307
});
2308
},
2309
+
2310
+ deleteAdminUser: function(issueID) {
2311
+ var self = this;
2312
+ this.ajax('wordfence_deleteAdminUser', {
2313
+ issueID: issueID
2314
+ }, function(res) {
2315
+ if (res.ok) {
2316
+ self.loadIssues(function() {
2317
+ self.colorbox('400px', "Successfully deleted admin", "The admin user " +
2318
+ self.htmlEscape(res.user_login) + " was successfully deleted.");
2319
+ });
2320
+ } else if (res.errorMsg) {
2321
+ self.loadIssues(function() {
2322
+ self.colorbox('400px', 'An error occurred', res.errorMsg);
2323
+ });
2324
+ }
2325
+ });
2326
+ },
2327
+
2328
+ revokeAdminUser: function(issueID) {
2329
+ var self = this;
2330
+ this.ajax('wordfence_revokeAdminUser', {
2331
+ issueID: issueID
2332
+ }, function(res) {
2333
+ if (res.ok) {
2334
+ self.loadIssues(function() {
2335
+ self.colorbox('400px', "Successfully revoked admin", "All capabilties of admin user " +
2336
+ self.htmlEscape(res.user_login) + " were successfully revoked.");
2337
+ });
2338
+ } else if (res.errorMsg) {
2339
+ self.loadIssues(function() {
2340
+ self.colorbox('400px', 'An error occurred', res.errorMsg);
2341
+ });
2342
+ }
2343
+ });
2344
+ },
2345
+
2346
windowHasFocus: function() {
2347
if (typeof document.hasFocus === 'function') {
2348
return document.hasFocus();
2388
if (!timestamp) {
2389
timestamp = el.attr('data-timestamp');
2390
}
2391
+ var serverTime = self.serverMicrotime;
2392
var format = el.data('wfformat');
2393
if (!format) {
2394
format = el.attr('data-format');
2395
}
2396
el.html(self.showTimestamp(timestamp, serverTime, format));
2397
});
2398
+ },
2399
+
2400
+ wafData: {
2401
+ whitelistedURLParams: []
2402
+ },
2403
+
2404
+ wafConfigSave: function(action, data, onSuccess) {
2405
+ var self = this;
2406
+ if (typeof(data) == 'string') {
2407
+ if (data.length > 0) {
2408
+ data += '&';
2409
+ }
2410
+ data += 'wafConfigAction=' + action;
2411
+ } else if (typeof(data) == 'object' && data instanceof Array) {
2412
+ // jQuery serialized form data
2413
+ data.push({
2414
+ name: 'wafConfigAction',
2415
+ value: action
2416
+ });
2417
+ } else if (typeof(data) == 'object') {
2418
+ data['wafConfigAction'] = action;
2419
+ }
2420
+
2421
+ this.ajax('wordfence_saveWAFConfig', data, function(res) {
2422
+ if (typeof res === 'object' && res.success) {
2423
+ self.colorbox('400px', 'Firewall Configuration', 'The Wordfence Web Application Firewall ' +
2424
+ 'configuration was saved successfully.');
2425
+ self.wafData = res.data;
2426
+ self.wafConfigPageRender();
2427
+ if (typeof onSuccess === 'function') {
2428
+ return onSuccess.apply(this, arguments);
2429
+ }
2430
+ } else {
2431
+ self.colorbox('400px', 'Error saving Firewall configuration', 'There was an error saving the ' +
2432
+ 'Web Application Firewall configuration settings.');
2433
+ }
2434
+ });
2435
+ },
2436
+
2437
+ wafWhitelistURLAdd: function(url, param, onSuccess) {
2438
+ this.wafData.whitelistedURLParams.push({
2439
+ 'path': url,
2440
+ 'paramKey': param,
2441
+ 'ruleID': ['all']
2442
+ });
2443
+ var index = this.wafData.whitelistedURLParams.length;
2444
+ var inputPath = $('<input name="whitelistedURLParams[' + index + '][path]" type="hidden" />');
2445
+ var inputParam = $('<input name="whitelistedURLParams[' + index + '][paramKey]" type="hidden" />');
2446
+ var inputEnabled = $('<input name="whitelistedURLParams[' + index + '][enabled]" type="hidden" value="1" />');
2447
+ inputPath.val(url);
2448
+ inputParam.val(param);
2449
+ $('#waf-config-form').append(inputPath)
2450
+ .append(inputParam)
2451
+ .append(inputEnabled);
2452
+ this.wafConfigSave(onSuccess);
2453
+ inputPath.remove();
2454
+ inputParam.remove();
2455
+ inputEnabled.remove();
2456
+ },
2457
+
2458
+ wafConfigPageRender: function() {
2459
+ var whitelistedIPsEl = $('#waf-whitelisted-urls-tmpl').tmpl(this.wafData);
2460
+ $('#waf-whitelisted-urls-wrapper').html(whitelistedIPsEl);
2461
+
2462
+ var rulesEl = $('#waf-rules-tmpl').tmpl(this.wafData);
2463
+ $('#waf-rules-wrapper').html(rulesEl);
2464
+
2465
+ if (this.wafData['rulesLastUpdated']) {
2466
+ var date = new Date(this.wafData['rulesLastUpdated'] * 1000);
2467
+ this.renderWAFRulesLastUpdated(date);
2468
+ }
2469
+ },
2470
+
2471
+ renderWAFRulesLastUpdated: function(date) {
2472
+ var dateString = date.toString();
2473
+ if (date.toLocaleString) {
2474
+ dateString = date.toLocaleString();
2475
+ }
2476
+ $('#waf-rules-last-updated').text('Last Updated: ' + dateString)
2477
+ .css({
2478
+ 'opacity': 0
2479
+ })
2480
+ .animate({
2481
+ 'opacity': 1
2482
+ }, 500);
2483
+ },
2484
+
2485
+ wafUpdateRules: function(onSuccess) {
2486
+ var self = this;
2487
+ this.ajax('wordfence_updateWAFRules', {}, function(res) {
2488
+ self.wafData = res;
2489
+ self.wafConfigPageRender();
2490
+ if (!self.wafData['isPaid']) {
2491
+ self.colorbox('400px', 'Rules Updated', 'Your rules have been updated successfully. You are ' +
2492
+ 'currently using the the free version of Wordfence. ' +
2493
+ 'Upgrade to Wordfence premium to have your rules updated automatically as new threats emerge. ' +
2494
+ '<a href="https://www.wordfence.com/wafUpdateRules1/wordfence-signup/">Click here to purchase a premium API key</a>. ' +
2495
+ '<em>Note: Your rules will still update every 30 days as a free user.</em>');
2496
+ } else {
2497
+ self.colorbox('400px', 'Rules Updated', 'Your rules have been updated successfully.');
2498
+ }
2499
+ if (typeof onSuccess === 'function') {
2500
+ return onSuccess.apply(this, arguments);
2501
+ }
2502
+ });
2503
+ },
2504
+
2505
+ dateFormat: function(date) {
2506
+ if (date instanceof Date) {
2507
+ if (date.toLocaleString) {
2508
+ return date.toLocaleString();
2509
+ }
2510
+ return date.toString();
2511
+ }
2512
+ return date;
2513
+ },
2514
+
2515
+ wafAddBootstrap: function() {
2516
+ var self = this;
2517
+ this.ajax('wordfence_wafAddBootstrap', {}, function(res) {
2518
+ self.colorbox('400px', 'File Created', "");
2519
+ });
2520
+ },
2521
+
2522
+ wafConfigureAutoPrepend: function() {
2523
+ var self = this;
2524
+ self.colorbox("400px", 'Backup .htaccess before continuing', 'We are about to change your <em>.htaccess</em> file. Please make a backup of this file proceeding'
2525
+ + '<br/>'
2526
+ + '<a href="' + WordfenceAdminVars.ajaxURL + '?action=wordfence_downloadHtaccess&nonce=' + self.nonce + '" onclick="jQuery(\'#wf-htaccess-confirm\').prop(\'disabled\', false); return true;">Click here to download a backup copy of your .htaccess file now</a>' +
2527
+ '<br /><br />' +
2528
+ '<button class="button" type="button" id="wf-htaccess-confirm" disabled="disabled" onclick="WFAD.confirmWAFConfigureAutoPrepend();">Add code to .htaccess</button>');
2529
+ },
2530
+
2531
+ confirmWAFConfigureAutoPrepend: function() {
2532
+ var self = this;
2533
+ this.ajax('wordfence_wafConfigureAutoPrepend', {}, function(res) {
2534
+ self.colorbox('400px', '.htaccess Updated', "Your .htaccess has been updated successfully. Please " +
2535
+ "verify your site is functioning normally.");
2536
+ });
2537
+ },
2538
+
2539
+ base64_decode: function(s) {
2540
+ var e = {}, i, b = 0, c, x, l = 0, a, r = '', w = String.fromCharCode, L = s.length;
2541
+ var A = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
2542
+ for (i = 0; i < 64; i++) {
2543
+ e[A.charAt(i)] = i;
2544
+ }
2545
+ for (x = 0; x < L; x++) {
2546
+ c = e[s.charAt(x)];
2547
+ b = (b << 6) + c;
2548
+ l += 6;
2549
+ while (l >= 8) {
2550
+ ((a = (b >>> (l -= 8)) & 0xff) || (x < (L - 2))) && (r += w(a));
2551
+ }
2552
+ }
2553
+ return r;
2554
}
2555
};
2556
2557
+ window['WFAD'] = window['wordfenceAdmin'];
2558
setInterval(function() {
2559
WFAD.updateTimeAgo();
2560
}, 1000);
js/admin.liveTraffic.js ADDED
@@ -0,0 +1,680 @@
1
+ (function($) {
2
+
3
+ var LISTING_LIMIT = 50;
4
+
5
+ var LiveTrafficViewModel = function(listings, filters) {
6
+ var self = this;
7
+ var listingIDTable = {};
8
+ self.listings = ko.observableArray(listings);
9
+ self.listings.subscribe(function(items) {
10
+ listingIDTable = {};
11
+ for (var i = 0; i < items.length; i++) {
12
+ listingIDTable[items[i].id()] = 1;
13
+ }
14
+ //console.log(items);
15
+ });
16
+ self.hasListing = function(id) {
17
+ return id in listingIDTable;
18
+ };
19
+ self.filters = ko.observableArray(filters);
20
+
21
+ var urlGroupBy = new GroupByModel('url', 'URL');
22
+ var groupBys = [
23
+ new GroupByModel('type', 'Type'),
24
+ new GroupByModel('user_login', 'Username'),
25
+ new GroupByModel('statusCode', 'HTTP Response Code'),
26
+ new GroupByModel('action', 'Firewall Response', 'enum', ['ok', 'throttled', 'lockedOut', 'blocked', 'blocked:waf']),
27
+ new GroupByModel('ip', 'IP'),
28
+ urlGroupBy,
29
+ new GroupByModel('host', 'Host')
30
+ ];
31
+
32
+ self.presetFiltersOptions = ko.observableArray([
33
+ new PresetFilterModel('All Hits', "all", []),
34
+ new PresetFilterModel('Humans', "humans", [new ListingsFilterModel(self, 'type', 'human')]),
35
+ new PresetFilterModel('Registered Users', "users", [new ListingsFilterModel(self, 'userID', '0', '!=')]),
36
+ new PresetFilterModel('Crawlers', "crawlers", [new ListingsFilterModel(self, 'type', 'bot')]),
37
+ new PresetFilterModel('Google Crawlers', "google", [new ListingsFilterModel(self, 'isGoogle', '1')]),
38
+ new PresetFilterModel('Pages Not Found', "404s", [new ListingsFilterModel(self, 'statusCode', '404')]),
39
+ new PresetFilterModel('Logins and Logouts', "logins", [
40
+ new ListingsFilterModel(self, 'action', 'login', 'contains'),
41
+ new ListingsFilterModel(self, 'action', 'logout', 'contains')
42
+ ]),
43
+ //new PresetFilterModel('Top Consumers', "top_consumers", [new ListingsFilterModel(self, 'statusCode', '200')], urlGroupBy),
44
+ //new PresetFilterModel('Top 404s', "top_404s", [new ListingsFilterModel(self, 'statusCode', '404')], urlGroupBy),
45
+ new PresetFilterModel('Locked Out', "lockedOut", [new ListingsFilterModel(self, 'action', 'lockedOut')]),
46
+ new PresetFilterModel('Blocked', "blocked", [new ListingsFilterModel(self, 'action', 'blocked', 'contains')]),
47
+ new PresetFilterModel('Blocked By Firewall', "blocked:waf", [new ListingsFilterModel(self, 'action', 'blocked:waf')])
48
+ ]);
49
+
50
+ self.showAdvancedFilters = ko.observable(false);
51
+ self.showAdvancedFilters.subscribe(function(val) {
52
+ if (val && self.filters().length == 0) {
53
+ self.addFilter();
54
+ }
55
+ });
56
+
57
+ self.presetFiltersOptionsText = function(item) {
58
+ return item.text();
59
+ };
60
+
61
+ self.selectedPresetFilter = ko.observable();
62
+ self.selectedPresetFilter.subscribe(function(item) {
63
+ var clonedFilters = ko.toJS(item.filters());
64
+ var newFilters = [];
65
+ for (var i = 0; i < clonedFilters.length; i++) {
66
+ newFilters.push(new ListingsFilterModel(self, clonedFilters[i].param, clonedFilters[i].value, clonedFilters[i].operator));
67
+ }
68
+ self.filters(newFilters);
69
+ self.groupBy(item.groupBy());
70
+ });
71
+
72
+ self.filters.subscribe(function() {
73
+ self.checkQueryAndReloadListings();
74
+ });
75
+
76
+ self.addFilter = function() {
77
+ self.filters.push(new ListingsFilterModel(self));
78
+ };
79
+
80
+ self.removeFilter = function(item) {
81
+ self.filters.remove(item);
82
+ };
83
+
84
+ var currentFilterQuery = '';
85
+ var getURLEncodedFilters = function() {
86
+ var dataString = '';
87
+ ko.utils.arrayForEach(self.filters(), function(filter) {
88
+ if (filter.getValue() !== false) {
89
+ dataString += filter.urlEncoded() + '&';
90
+ }
91
+ });
92
+ var groupBy = self.groupBy();
93
+ if (groupBy) {
94
+ dataString += 'groupby=' + encodeURIComponent(groupBy.param()) + '&';
95
+ }
96
+ var s