└── modules ├── addons └── spamexperts │ ├── .htaccess │ ├── ajax.pages │ └── main.php │ ├── ajax.views │ └── main.php │ ├── config.php │ ├── core.php │ ├── core │ ├── Logger.php │ ├── assets │ │ ├── css │ │ │ ├── bootstrap-responsive.css │ │ │ ├── bootstrap.css │ │ │ ├── docs.css │ │ │ ├── font-awesome-ie7.css │ │ │ ├── font-awesome.css │ │ │ ├── modulesgarden.css │ │ │ ├── reset.css │ │ │ └── template-styles.css │ │ ├── font │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── museo_slab_300-webfont.eot │ │ │ ├── museo_slab_300-webfont.ttf │ │ │ ├── museo_slab_500-webfont.eot │ │ │ ├── museo_slab_500-webfont.ttf │ │ │ ├── proximanova-webfont.eot │ │ │ └── proximanova-webfont.ttf │ │ ├── img │ │ │ ├── mg-logo.png │ │ │ └── overlay.png │ │ └── js │ │ │ ├── application.js │ │ │ ├── bootstrap-affix.js │ │ │ ├── bootstrap.js │ │ │ ├── jquery-ui-1.9.1.custom.min.js │ │ │ ├── jquery.js │ │ │ └── modulesgarden.js │ ├── base.tpl │ ├── class.MG_Pagination.php │ ├── core.php │ ├── functions.php │ ├── logger │ │ └── FileLogger.php │ ├── output.php │ ├── output_client.php │ └── views │ │ ├── body.php │ │ └── sidebar.php │ ├── lang │ └── english.php │ ├── pages │ ├── main │ │ └── main.php │ ├── setupProducts │ │ └── setupProducts.php │ └── support │ │ └── support.php │ ├── spamexperts.php │ └── views │ ├── main │ └── main.php │ ├── setupProducts │ └── setupProducts.php │ └── support │ └── support.php └── servers ├── kwspamexperts ├── .htaccess ├── EditEmail.php ├── ManageAliases.php ├── ManageRoutes.php ├── class.connection.php ├── clientarea.tpl ├── hooks.php ├── kwspamexperts.php ├── language │ └── english.php ├── managedomains.php ├── spamexpertsreseller.php ├── stats.php └── templates │ ├── EditEmail.tpl │ ├── ManageAliases.tpl │ ├── ManageRoutes.tpl │ ├── managedomains.tpl │ └── stats.tpl └── spamexpertsreseller ├── .htaccess ├── class.connection.php ├── clientarea.tpl ├── hooks.php ├── language └── english.php ├── managedomains.php ├── spamexpertsreseller.php ├── stats.php └── templates ├── managedomains.tpl └── stats.tpl /modules/addons/spamexperts/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | order deny,allow 3 | deny from all 4 | 5 | -------------------------------------------------------------------------------- /modules/addons/spamexperts/ajax.pages/main.php: -------------------------------------------------------------------------------- 1 | http://modulesgarden.com 10 | * CONTACT -> contact@modulesgarden.com 11 | * 12 | * 13 | * 14 | * 15 | * This software is furnished under a license and may be used and copied 16 | * only in accordance with the terms of such license and with the 17 | * inclusion of the above copyright notice. This software or any other 18 | * copies thereof may not be provided or otherwise made available to any 19 | * other person. No title to and ownership of the software is hereby 20 | * transferred. 21 | * 22 | * 23 | * ******************************************************************** */ 24 | 25 | /** 26 | * @author Maciej Husak 27 | */ 28 | 29 | if (!defined("WHMCS")) 30 | { 31 | die("This file cannot be accessed directly"); 32 | } 33 | 34 | if(isset($_POST['action']) && $_POST['action'] === 'testconnection') 35 | { 36 | // phpcs:ignore PHPCS_SecurityAudit.Misc.IncludeMismatch.ErrMiscIncludeMismatchNoExt,PHPCS_SecurityAudit.BadFunctions.EasyRFI.WarnEasyRFI 37 | include_once(ROOTDIR.DS.'modules'.DS.'servers'.DS.'kwspamexperts'.DS.'class.connection.php'); 38 | 39 | $api = new kwspamexperts_api( 40 | array( 41 | 'configoption2' => $_POST['url'], 42 | 'configoption3' => $_POST['user'], 43 | 'configoption4' => $_POST['password'] 44 | ) 45 | ); 46 | 47 | $api->call('/version/get/'); 48 | 49 | if($api->isSuccess()) 50 | die('success'); 51 | else 52 | die(htmlentities($api->error(), ENT_QUOTES, 'UTF-8')); 53 | 54 | } 55 | -------------------------------------------------------------------------------- /modules/addons/spamexperts/ajax.views/main.php: -------------------------------------------------------------------------------- 1 | http://modulesgarden.com 10 | * CONTACT -> contact@modulesgarden.com 11 | * 12 | * 13 | * 14 | * 15 | * This software is furnished under a license and may be used and copied 16 | * only in accordance with the terms of such license and with the 17 | * inclusion of the above copyright notice. This software or any other 18 | * copies thereof may not be provided or otherwise made available to any 19 | * other person. No title to and ownership of the software is hereby 20 | * transferred. 21 | * 22 | * 23 | * ******************************************************************** */ 24 | 25 | /** 26 | * @author Maciej Husak 27 | */ 28 | ?> -------------------------------------------------------------------------------- /modules/addons/spamexperts/config.php: -------------------------------------------------------------------------------- 1 | http://modulesgarden.com 7 | * CONTACT -> contact@modulesgarden.com 8 | * 9 | * 10 | * 11 | * 12 | * This software is furnished under a license and may be used and copied 13 | * only in accordance with the terms of such license and with the 14 | * inclusion of the above copyright notice. This software or any other 15 | * copies thereof may not be provided or otherwise made available to any 16 | * other person. No title to and ownership of the software is hereby 17 | * transferred. 18 | * 19 | * 20 | **********************************************************************/ 21 | 22 | class spamexperts 23 | { 24 | //Module Name 25 | public $name = 'SpamExperts Addon'; 26 | 27 | //System Name 28 | public $system_name = 'SpamExperts Addon'; 29 | 30 | //Module Description 31 | public $description = 'Allows to simply create products, test connection with SpamExperts API and show WHMCS server configuration.'; 32 | 33 | //Module Version 34 | public $version = '1.0'; 35 | 36 | //Module Author 37 | public $author = 'SpamExperts.com'; 38 | 39 | //Default Page 40 | public $default_page = 'main'; 41 | 42 | //Default Client Page 43 | public $default_client_page = 'main'; 44 | 45 | //Top Menu 46 | public $top_menu = array 47 | ( 48 | 'main' => array 49 | ( 50 | 'title' => 'Configuration', 51 | 'icon' => 'wrench' 52 | ), 53 | 'setupProducts' => array 54 | ( 55 | 'title' => 'Setup Products', 56 | 'icon' => 'tasks', 57 | 58 | ), 59 | 'support' => array 60 | ( 61 | 'title' => 'Support', 62 | 'icon' => 'magic', 63 | 64 | ), 65 | ); 66 | 67 | 68 | //Enable PHP Debug Info 69 | public $debug = 0; 70 | 71 | //Enable Logger 72 | public $logger = 1; 73 | 74 | /** 75 | * This function is call when administrator will activate your module 76 | */ 77 | public function activate() 78 | { 79 | } 80 | 81 | /** 82 | * Functions is called when administrator will deactivate your module 83 | */ 84 | public function deactivate() 85 | { 86 | } 87 | 88 | public function upgrade($vars) 89 | { 90 | 91 | } 92 | } 93 | ?> 94 | -------------------------------------------------------------------------------- /modules/addons/spamexperts/core.php: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/Logger.php: -------------------------------------------------------------------------------- 1 | 'info_file.log', 19 | 'error_file' => 'error_file.log' 20 | ); 21 | 22 | public static function addInfo($info) 23 | { 24 | self::loadEngine(); 25 | self::$engine->addInfo($info); 26 | } 27 | 28 | public static function addError($error) 29 | { 30 | self::loadEngine(); 31 | self::$engine->addError($error); 32 | } 33 | 34 | public static function setEngine($name, $settings = null) 35 | { 36 | if($settings) 37 | { 38 | self::$settings = $settings; 39 | } 40 | self::$engine_name = $name; 41 | } 42 | 43 | private static function loadEngine() 44 | { 45 | if(!self::$engine) 46 | { 47 | self::$engine = new $engine_name(self::$settings); 48 | } 49 | } 50 | } 51 | ?> 52 | -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/css/font-awesome.css: -------------------------------------------------------------------------------- 1 | /* Font Awesome 2 | the iconic font designed for use with Twitter Bootstrap 3 | ------------------------------------------------------- 4 | The full suite of pictographic icons, examples, and documentation 5 | can be found at: http://fortawesome.github.com/Font-Awesome/ 6 | 7 | License 8 | ------------------------------------------------------- 9 | The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0: 10 | http://creativecommons.org/licenses/by/3.0/ A mention of 11 | 'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable 12 | source code is considered acceptable attribution (most common on the web). 13 | If human readable source code is not available to the end user, a mention in 14 | an 'About' or 'Credits' screen is considered acceptable (most common in desktop 15 | or mobile software). 16 | 17 | Contact 18 | ------------------------------------------------------- 19 | Email: dave@davegandy.com 20 | Twitter: http://twitter.com/fortaweso_me 21 | Work: http://lemonwi.se co-founder 22 | 23 | */ 24 | @font-face { 25 | font-family: 'FontAwesome'; 26 | src: url('../font/fontawesome-webfont.eot'); 27 | src: url('../font/fontawesome-webfont.eot?#iefix') format('eot'), url('../font/fontawesome-webfont.woff') format('woff'), url('../font/fontawesome-webfont.ttf') format('truetype'), url('../font/fontawesome-webfont.svg#FontAwesome') format('svg'); 28 | font-weight: normal; 29 | font-style: normal; 30 | } 31 | 32 | /* Font Awesome styles 33 | ------------------------------------------------------- */ 34 | [class^="icon-"]:before, [class*=" icon-"]:before { 35 | font-family: FontAwesome; 36 | font-weight: normal; 37 | font-style: normal; 38 | display: inline-block; 39 | text-decoration: inherit; 40 | } 41 | a [class^="icon-"], a [class*=" icon-"] { 42 | display: inline-block; 43 | text-decoration: inherit; 44 | } 45 | /* makes the font 33% larger relative to the icon container */ 46 | .icon-large:before { 47 | vertical-align: top; 48 | font-size: 1.3333333333333333em; 49 | } 50 | .btn [class^="icon-"], .btn [class*=" icon-"] { 51 | /* keeps button heights with and without icons the same */ 52 | 53 | line-height: .9em; 54 | } 55 | li [class^="icon-"], li [class*=" icon-"] { 56 | display: inline-block; 57 | width: 1.25em; 58 | text-align: center; 59 | } 60 | li .icon-large[class^="icon-"], li .icon-large[class*=" icon-"] { 61 | /* 1.5 increased font size for icon-large * 1.25 width */ 62 | 63 | width: 1.875em; 64 | } 65 | li[class^="icon-"], li[class*=" icon-"] { 66 | margin-left: 0; 67 | list-style-type: none; 68 | } 69 | li[class^="icon-"]:before, li[class*=" icon-"]:before { 70 | text-indent: -2em; 71 | text-align: center; 72 | } 73 | li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before { 74 | text-indent: -1.3333333333333333em; 75 | } 76 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen 77 | readers do not read off random characters that represent icons */ 78 | .icon-glass:before { content: "\f000"; } 79 | .icon-music:before { content: "\f001"; } 80 | .icon-search:before { content: "\f002"; } 81 | .icon-envelope:before { content: "\f003"; } 82 | .icon-heart:before { content: "\f004"; } 83 | .icon-star:before { content: "\f005"; } 84 | .icon-star-empty:before { content: "\f006"; } 85 | .icon-user:before { content: "\f007"; } 86 | .icon-film:before { content: "\f008"; } 87 | .icon-th-large:before { content: "\f009"; } 88 | .icon-th:before { content: "\f00a"; } 89 | .icon-th-list:before { content: "\f00b"; } 90 | .icon-ok:before { content: "\f00c"; } 91 | .icon-remove:before { content: "\f00d"; } 92 | .icon-zoom-in:before { content: "\f00e"; } 93 | 94 | .icon-zoom-out:before { content: "\f010"; } 95 | .icon-off:before { content: "\f011"; } 96 | .icon-signal:before { content: "\f012"; } 97 | .icon-cog:before { content: "\f013"; } 98 | .icon-trash:before { content: "\f014"; } 99 | .icon-home:before { content: "\f015"; } 100 | .icon-file:before { content: "\f016"; } 101 | .icon-time:before { content: "\f017"; } 102 | .icon-road:before { content: "\f018"; } 103 | .icon-download-alt:before { content: "\f019"; } 104 | .icon-download:before { content: "\f01a"; } 105 | .icon-upload:before { content: "\f01b"; } 106 | .icon-inbox:before { content: "\f01c"; } 107 | .icon-play-circle:before { content: "\f01d"; } 108 | .icon-repeat:before { content: "\f01e"; } 109 | 110 | /* \f020 doesn't work in Safari. all shifted one down */ 111 | .icon-refresh:before { content: "\f021"; } 112 | .icon-list-alt:before { content: "\f022"; } 113 | .icon-lock:before { content: "\f023"; } 114 | .icon-flag:before { content: "\f024"; } 115 | .icon-headphones:before { content: "\f025"; } 116 | .icon-volume-off:before { content: "\f026"; } 117 | .icon-volume-down:before { content: "\f027"; } 118 | .icon-volume-up:before { content: "\f028"; } 119 | .icon-qrcode:before { content: "\f029"; } 120 | .icon-barcode:before { content: "\f02a"; } 121 | .icon-tag:before { content: "\f02b"; } 122 | .icon-tags:before { content: "\f02c"; } 123 | .icon-book:before { content: "\f02d"; } 124 | .icon-bookmark:before { content: "\f02e"; } 125 | .icon-print:before { content: "\f02f"; } 126 | 127 | .icon-camera:before { content: "\f030"; } 128 | .icon-font:before { content: "\f031"; } 129 | .icon-bold:before { content: "\f032"; } 130 | .icon-italic:before { content: "\f033"; } 131 | .icon-text-height:before { content: "\f034"; } 132 | .icon-text-width:before { content: "\f035"; } 133 | .icon-align-left:before { content: "\f036"; } 134 | .icon-align-center:before { content: "\f037"; } 135 | .icon-align-right:before { content: "\f038"; } 136 | .icon-align-justify:before { content: "\f039"; } 137 | .icon-list:before { content: "\f03a"; } 138 | .icon-indent-left:before { content: "\f03b"; } 139 | .icon-indent-right:before { content: "\f03c"; } 140 | .icon-facetime-video:before { content: "\f03d"; } 141 | .icon-picture:before { content: "\f03e"; } 142 | 143 | .icon-pencil:before { content: "\f040"; } 144 | .icon-map-marker:before { content: "\f041"; } 145 | .icon-adjust:before { content: "\f042"; } 146 | .icon-tint:before { content: "\f043"; } 147 | .icon-edit:before { content: "\f044"; } 148 | .icon-share:before { content: "\f045"; } 149 | .icon-check:before { content: "\f046"; } 150 | .icon-move:before { content: "\f047"; } 151 | .icon-step-backward:before { content: "\f048"; } 152 | .icon-fast-backward:before { content: "\f049"; } 153 | .icon-backward:before { content: "\f04a"; } 154 | .icon-play:before { content: "\f04b"; } 155 | .icon-pause:before { content: "\f04c"; } 156 | .icon-stop:before { content: "\f04d"; } 157 | .icon-forward:before { content: "\f04e"; } 158 | 159 | .icon-fast-forward:before { content: "\f050"; } 160 | .icon-step-forward:before { content: "\f051"; } 161 | .icon-eject:before { content: "\f052"; } 162 | .icon-chevron-left:before { content: "\f053"; } 163 | .icon-chevron-right:before { content: "\f054"; } 164 | .icon-plus-sign:before { content: "\f055"; } 165 | .icon-minus-sign:before { content: "\f056"; } 166 | .icon-remove-sign:before { content: "\f057"; } 167 | .icon-ok-sign:before { content: "\f058"; } 168 | .icon-question-sign:before { content: "\f059"; } 169 | .icon-info-sign:before { content: "\f05a"; } 170 | .icon-screenshot:before { content: "\f05b"; } 171 | .icon-remove-circle:before { content: "\f05c"; } 172 | .icon-ok-circle:before { content: "\f05d"; } 173 | .icon-ban-circle:before { content: "\f05e"; } 174 | 175 | .icon-arrow-left:before { content: "\f060"; } 176 | .icon-arrow-right:before { content: "\f061"; } 177 | .icon-arrow-up:before { content: "\f062"; } 178 | .icon-arrow-down:before { content: "\f063"; } 179 | .icon-share-alt:before { content: "\f064"; } 180 | .icon-resize-full:before { content: "\f065"; } 181 | .icon-resize-small:before { content: "\f066"; } 182 | .icon-plus:before { content: "\f067"; } 183 | .icon-minus:before { content: "\f068"; } 184 | .icon-asterisk:before { content: "\f069"; } 185 | .icon-exclamation-sign:before { content: "\f06a"; } 186 | .icon-gift:before { content: "\f06b"; } 187 | .icon-leaf:before { content: "\f06c"; } 188 | .icon-fire:before { content: "\f06d"; } 189 | .icon-eye-open:before { content: "\f06e"; } 190 | 191 | .icon-eye-close:before { content: "\f070"; } 192 | .icon-warning-sign:before { content: "\f071"; } 193 | .icon-plane:before { content: "\f072"; } 194 | .icon-calendar:before { content: "\f073"; } 195 | .icon-random:before { content: "\f074"; } 196 | .icon-comment:before { content: "\f075"; } 197 | .icon-magnet:before { content: "\f076"; } 198 | .icon-chevron-up:before { content: "\f077"; } 199 | .icon-chevron-down:before { content: "\f078"; } 200 | .icon-retweet:before { content: "\f079"; } 201 | .icon-shopping-cart:before { content: "\f07a"; } 202 | .icon-folder-close:before { content: "\f07b"; } 203 | .icon-folder-open:before { content: "\f07c"; } 204 | .icon-resize-vertical:before { content: "\f07d"; } 205 | .icon-resize-horizontal:before { content: "\f07e"; } 206 | 207 | .icon-bar-chart:before { content: "\f080"; } 208 | .icon-twitter-sign:before { content: "\f081"; } 209 | .icon-facebook-sign:before { content: "\f082"; } 210 | .icon-camera-retro:before { content: "\f083"; } 211 | .icon-key:before { content: "\f084"; } 212 | .icon-cogs:before { content: "\f085"; } 213 | .icon-comments:before { content: "\f086"; } 214 | .icon-thumbs-up:before { content: "\f087"; } 215 | .icon-thumbs-down:before { content: "\f088"; } 216 | .icon-star-half:before { content: "\f089"; } 217 | .icon-heart-empty:before { content: "\f08a"; } 218 | .icon-signout:before { content: "\f08b"; } 219 | .icon-linkedin-sign:before { content: "\f08c"; } 220 | .icon-pushpin:before { content: "\f08d"; } 221 | .icon-external-link:before { content: "\f08e"; } 222 | 223 | .icon-signin:before { content: "\f090"; } 224 | .icon-trophy:before { content: "\f091"; } 225 | .icon-github-sign:before { content: "\f092"; } 226 | .icon-upload-alt:before { content: "\f093"; } 227 | .icon-lemon:before { content: "\f094"; } 228 | .icon-phone:before { content: "\f095"; } 229 | .icon-check-empty:before { content: "\f096"; } 230 | .icon-bookmark-empty:before { content: "\f097"; } 231 | .icon-phone-sign:before { content: "\f098"; } 232 | .icon-twitter:before { content: "\f099"; } 233 | .icon-facebook:before { content: "\f09a"; } 234 | .icon-github:before { content: "\f09b"; } 235 | .icon-unlock:before { content: "\f09c"; } 236 | .icon-credit-card:before { content: "\f09d"; } 237 | .icon-rss:before { content: "\f09e"; } 238 | 239 | .icon-hdd:before { content: "\f0a0"; } 240 | .icon-bullhorn:before { content: "\f0a1"; } 241 | .icon-bell:before { content: "\f0a2"; } 242 | .icon-certificate:before { content: "\f0a3"; } 243 | .icon-hand-right:before { content: "\f0a4"; } 244 | .icon-hand-left:before { content: "\f0a5"; } 245 | .icon-hand-up:before { content: "\f0a6"; } 246 | .icon-hand-down:before { content: "\f0a7"; } 247 | .icon-circle-arrow-left:before { content: "\f0a8"; } 248 | .icon-circle-arrow-right:before { content: "\f0a9"; } 249 | .icon-circle-arrow-up:before { content: "\f0aa"; } 250 | .icon-circle-arrow-down:before { content: "\f0ab"; } 251 | .icon-globe:before { content: "\f0ac"; } 252 | .icon-wrench:before { content: "\f0ad"; } 253 | .icon-tasks:before { content: "\f0ae"; } 254 | 255 | .icon-filter:before { content: "\f0b0"; } 256 | .icon-briefcase:before { content: "\f0b1"; } 257 | .icon-fullscreen:before { content: "\f0b2"; } 258 | 259 | .icon-group:before { content: "\f0c0"; } 260 | .icon-link:before { content: "\f0c1"; } 261 | .icon-cloud:before { content: "\f0c2"; } 262 | .icon-beaker:before { content: "\f0c3"; } 263 | .icon-cut:before { content: "\f0c4"; } 264 | .icon-copy:before { content: "\f0c5"; } 265 | .icon-paper-clip:before { content: "\f0c6"; } 266 | .icon-save:before { content: "\f0c7"; } 267 | .icon-sign-blank:before { content: "\f0c8"; } 268 | .icon-reorder:before { content: "\f0c9"; } 269 | .icon-list-ul:before { content: "\f0ca"; } 270 | .icon-list-ol:before { content: "\f0cb"; } 271 | .icon-strikethrough:before { content: "\f0cc"; } 272 | .icon-underline:before { content: "\f0cd"; } 273 | .icon-table:before { content: "\f0ce"; } 274 | 275 | .icon-magic:before { content: "\f0d0"; } 276 | .icon-truck:before { content: "\f0d1"; } 277 | .icon-pinterest:before { content: "\f0d2"; } 278 | .icon-pinterest-sign:before { content: "\f0d3"; } 279 | .icon-google-plus-sign:before { content: "\f0d4"; } 280 | .icon-google-plus:before { content: "\f0d5"; } 281 | .icon-money:before { content: "\f0d6"; } 282 | .icon-caret-down:before { content: "\f0d7"; } 283 | .icon-caret-up:before { content: "\f0d8"; } 284 | .icon-caret-left:before { content: "\f0d9"; } 285 | .icon-caret-right:before { content: "\f0da"; } 286 | .icon-columns:before { content: "\f0db"; } 287 | .icon-sort:before { content: "\f0dc"; } 288 | .icon-sort-down:before { content: "\f0dd"; } 289 | .icon-sort-up:before { content: "\f0de"; } 290 | 291 | .icon-envelope-alt:before { content: "\f0e0"; } 292 | .icon-linkedin:before { content: "\f0e1"; } 293 | .icon-undo:before { content: "\f0e2"; } 294 | .icon-legal:before { content: "\f0e3"; } 295 | .icon-dashboard:before { content: "\f0e4"; } 296 | .icon-comment-alt:before { content: "\f0e5"; } 297 | .icon-comments-alt:before { content: "\f0e6"; } 298 | .icon-bolt:before { content: "\f0e7"; } 299 | .icon-sitemap:before { content: "\f0e8"; } 300 | .icon-umbrella:before { content: "\f0e9"; } 301 | .icon-paste:before { content: "\f0ea"; } 302 | 303 | .icon-user-md:before { content: "\f200"; } 304 | -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/css/modulesgarden.css: -------------------------------------------------------------------------------- 1 | .table form 2 | { 3 | padding: 0; 4 | margin: 0; 5 | } 6 | 7 | .table input 8 | { 9 | margin: 0!important; 10 | } 11 | 12 | input[disabled], select[disabled], textarea[disabled], .body input[readonly], select[readonly], textarea[readonly] { 13 | background-color: #EEEEEE!important; 14 | cursor: not-allowed!important; 15 | } 16 | 17 | h1 a, 18 | h2 a, 19 | h3 a, 20 | h4 a, 21 | h5 a, 22 | h6 a 23 | { 24 | color: #333333!important; 25 | text-decoration: none; 26 | } 27 | 28 | h1 a:hover, 29 | h2 a:hover, 30 | h3 a:hover, 31 | h4 a:hover, 32 | h5 a:hover, 33 | h6 a:hover 34 | { 35 | text-decoration: underline; 36 | } 37 | #left_side {display:none !important;} 38 | #content_container #content {margin-left:0 !important;} 39 | #mg-wrapper #mg-content.right {margin-right:0 !important;} -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/css/reset.css: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v2.0 | 20110126 3 | License: none (public domain) 4 | */ 5 | 6 | .body div, .body span, .body applet, .body object, .body iframe, 7 | .body h1, .body h2, .body h3, .body h4, .body h5, .body h6, .body p, .body blockquote, .body pre, 8 | .body a, .body abbr, .body acronym, .body address, .body big, .body cite, .body code, 9 | .body del, .body dfn, .body em, .body img, .body ins, .body kbd, .body q, .body s, .body samp, 10 | .body small, .body strike, .body strong, .body sub, .body sup, .body tt, .body var, 11 | b, u, i, center, 12 | dl, dt, dd, ol, ul, li, 13 | fieldset, form, label, legend, 14 | table, caption, tbody, tfoot, thead, tr, th, td, 15 | article, aside, canvas, details, embed, 16 | figure, figcaption, footer, header, hgroup, 17 | menu, nav, output, ruby, section, summary, 18 | time, mark, audio, video { 19 | margin: 0; 20 | padding: 0; 21 | border: 0; 22 | font-size: 100%; 23 | font: inherit; 24 | vertical-align: baseline; 25 | } 26 | /* HTML5 display-role reset for older browsers */ 27 | article, aside, details, figcaption, figure, 28 | footer, header, hgroup, menu, nav, section { 29 | display: block; 30 | } 31 | body { 32 | line-height: 1; 33 | } 34 | ol, ul { 35 | list-style: none; 36 | } 37 | blockquote, q { 38 | quotes: none; 39 | } 40 | blockquote:before, blockquote:after, 41 | q:before, q:after { 42 | content: ''; 43 | content: none; 44 | } 45 | table { 46 | border-collapse: collapse; 47 | border-spacing: 0; 48 | } -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/css/template-styles.css: -------------------------------------------------------------------------------- 1 | /* WHMCS */ 2 | .contentarea > h1 3 | { 4 | display: none; 5 | } 6 | 7 | .contentarea > div > h1:first-child { 8 | display: none; 9 | } 10 | /*********/ 11 | 12 | #mg-wrapper * { 13 | margin: 0; 14 | padding: 0; 15 | } 16 | #mg-wrapper { 17 | margin: 0 0 40px 0; 18 | color: #4c4c4c; 19 | font-family: 'Arial', Helvetica, sans-serif !important; 20 | font-size: 12px; 21 | line-height: 18px; 22 | position: relative; 23 | } 24 | #mg-wrapper *{ 25 | font-family: 'Arial', Helvetica, sans-serif !important; 26 | } 27 | #mg-wrapper a { 28 | color: #4caef1; 29 | text-decoration: none; 30 | } 31 | 32 | #mg-wrapper a.nocolor { 33 | color: #4C4C4C; 34 | text-decoration: none; 35 | } 36 | 37 | #mg-wrapper .nblue-box, #mg-wrapper #mg-sidebar .mg-sidebar-nav li a.active, #mg-wrapper #top-nav li.open > a{ 38 | background-color: #1c4b8c; 39 | } 40 | #mg-wrapper .clear { 41 | clear: both; 42 | } 43 | #mg-wrapper section ul { 44 | margin: 0 0 20px 35px; 45 | } 46 | #mg-wrapper section > ul > li { 47 | margin: 0 0 5px 0; 48 | } 49 | #mg-wrapper section { 50 | padding: 0 0 20px 20px; 51 | } 52 | 53 | #mg-wrapper .right { 54 | float: right; 55 | } 56 | #mg-wrapper .left { 57 | float: left; 58 | } 59 | #mg-wrapper .per-page { 60 | margin: 0 10px 0 0; 61 | } 62 | #mg-wrapper .affix { 63 | top: 0; 64 | } 65 | #mg-wrapper .affix-bottom { 66 | bottom: 0; 67 | position: absolute; 68 | top: auto; 69 | } 70 | /* ================================================= 71 | -------------------- CSS3 ------------------- 72 | ==================================================== */ 73 | 74 | #mg-wrapper .color-trans, #mg-wrapper i{ 75 | -webkit-transition: color linear 0.1s; 76 | -moz-transition: color linear 0.1s; 77 | transition: color linear 0.1s; 78 | } 79 | #mg-wrapper .bg-color-trans { 80 | -webkit-transition: background-color linear 0.1s; 81 | -moz-transition: background-color linear 0.1s; 82 | transition: background-color linear 0.1s; 83 | } 84 | .radius2px, #mg-wrapper #mg-sidebar .mg-sidebar-nav li a, #mg-wrapper .nblue-box, #mg-wrapper #top-nav > li > a, #mg-wrapper .dropdown-menu a:hover, #mg-wrapper .border-box, #mg-wrapper .info-box { 85 | -webkit-border-radius: 2px; 86 | -moz-border-radius: 2px; 87 | border-radius: 2px; 88 | } 89 | #mg-wrapper .shadow-inset, #mg-wrapper .slogan { 90 | -webkit-box-shadow: 0 -2px 0 rgba(0,0,0, 0.3)inset; 91 | -moz-box-shadow: 0 -2px 0 rgba(0,0,0, 0.3)inset; 92 | box-shadow: 0 -2px 0 rgba(0,0,0, 0.3)inset; 93 | } 94 | /* ================================================= 95 | ----------------- TYPOGRAPHY ----------------- 96 | ==================================================== */ 97 | 98 | #mg-wrapper h2.section-heading { 99 | line-height: 1; 100 | padding: 0 0 10px 0; 101 | margin: 0 0 40px 0; 102 | 103 | color: #333333; 104 | font-size: 22px; 105 | font-weight: normal; 106 | border-bottom: 1px solid rgba(0,0,0, 0.05) 107 | } 108 | #mg-wrapper h2.section-heading i { 109 | height: 24px; 110 | width: 40px; 111 | line-height: 1; 112 | margin: 0; 113 | 114 | color: #d6d6d6; 115 | font-size: 26px; 116 | vertical-align: middle; 117 | } 118 | #mg-wrapper section h3 { 119 | margin: 20px 0; 120 | padding: 10px 0 0 0; 121 | color: #4c4c4c; 122 | font-size: 20px; 123 | } 124 | #mg-wrapper section h4 { 125 | margin: 20px 0; 126 | font-size: 18px; 127 | font-weight: normal 128 | } 129 | #mg-wrapper .body { 130 | position: relative; 131 | } 132 | 133 | /* ================================================= 134 | ------------------- mg-sidebar ------------------- 135 | ==================================================== */ 136 | 137 | #mg-wrapper #mg-sidebar { 138 | width: 220px; 139 | top: 0; 140 | position: absolute; 141 | } 142 | #mg-wrapper #mg-sidebar .mg-sidebar-nav { 143 | margin: 0 0 30px 0; 144 | list-style: none; 145 | } 146 | #mg-wrapper #mg-sidebar .mg-sidebar-nav > li { 147 | min-height: 14px; 148 | width: 100%; 149 | border-bottom: 1px solid rgba(0,0,0, 0.05); 150 | } 151 | #mg-wrapper #mg-sidebar .mg-sidebar-nav > li:first-child { 152 | border-top: 1px solid rgba(0,0,0, 0.05); 153 | } 154 | #mg-wrapper #mg-sidebar .mg-sidebar-nav > li > a { 155 | display: block; 156 | width: 100%; 157 | padding: 5px 0; 158 | margin: 5px 0; 159 | color: #4c4c4c; 160 | font-size: 13px; 161 | } 162 | #mg-wrapper #mg-sidebar .mg-sidebar-nav li a i, #mg-wrapper #top-nav li a i, #mg-wrapper a:not(.btn) i { 163 | line-height: 18px; 164 | font-size: 16px; 165 | color: #d6d6d6; 166 | margin: 0 10px 0 5px ; 167 | } 168 | #mg-wrapper #top-nav li a i.icon-caret-down { 169 | margin: 0 0 0 10px ; 170 | font-size: 10px; 171 | } 172 | 173 | /* hover */ 174 | 175 | #mg-wrapper #mg-sidebar .nav-dropdown li a:hover:not(.active), #mg-wrapper #top-nav > li:not(.open) > a:hover, #mg-wrapper #mg-sidebar .mg-sidebar-nav li a:hover:not(.active), #mg-wrapper .dropdown-menu a:hover { 176 | color: #333; 177 | } 178 | #mg-wrapper #mg-sidebar .mg-sidebar-nav li a:hover:not(.active) i, #mg-wrapper a:hover:not(.btn) i, #mg-wrapper #mg-sidebar .nav-dropdown li:hover:before, #mg-wrapper #top-nav li a:hover i { 179 | color: #296dcc; 180 | } 181 | #mg-wrapper #mg-sidebar .mg-sidebar-nav li a:hover:not(.active), #mg-wrapper #top-nav > li:not(.open) > a:hover, #mg-wrapper .dropdown-menu a:hover { 182 | background-color: rgba(0,0,0, 0.05); 183 | } 184 | 185 | /* active */ 186 | 187 | #mg-sidebar .mg-sidebar-nav li a.active, #mg-wrapper #mg-sidebar .mg-sidebar-nav li a.active i, #mg-wrapper #top-nav li.open > a, #mg-wrapper #top-nav li.open > a i { 188 | color: #fff; 189 | } 190 | 191 | /* dropdown */ 192 | 193 | #mg-wrapper #mg-sidebar .nav-dropdown { 194 | margin: 10px 0 10px 12px; 195 | list-style: none; 196 | } 197 | #mg-wrapper #mg-sidebar .nav-dropdown li:before { 198 | float: left; 199 | content: "\f054"; 200 | color: #D6D6D6; 201 | font-family: FontAwesome; 202 | font-weight: normal; 203 | font-style: normal; 204 | font-size: 8px; 205 | display: inline-block; 206 | text-decoration: inherit; 207 | margin: 4px 10px 0 10px; 208 | } 209 | #mg-wrapper #mg-sidebar .nav-dropdown li a { 210 | display: block; 211 | color: #808080; 212 | padding: 2px 0 2px 10px; 213 | } 214 | 215 | /* ---- SLOGAN ----- */ 216 | #mg-wrapper .slogan { 217 | display: block; 218 | width: 200px; 219 | height: auto; 220 | padding: 3px; 221 | text-align: center; 222 | position: absolute; 223 | right: 8px; 224 | top: 8px; 225 | } 226 | #mg-wrapper .slogan span, #mg-wrapper .slogan small, #mg-wrapper .slogan .mg-logo { 227 | display: inline-block; 228 | color: #fff; 229 | } 230 | #mg-wrapper .mg-logo { 231 | height: 27px; 232 | width: 160px; 233 | margin: 10px 0 0 0; 234 | background: url(../img/mg-logo.png) no-repeat; 235 | } 236 | 237 | /* ================================================= 238 | ------------------ CONTENT ---------------- 239 | ==================================================== */ 240 | 241 | #mg-wrapper #mg-content { 242 | position: relative; 243 | background-color: #fff; 244 | 245 | -webkit-box-shadow: 0 1px 4px rgba(0,0,0, 0.2); 246 | -moz-box-shadow: 0 1px 4px rgba(0,0,0, 0.2); 247 | box-shadow: 0 1px 4px rgba(0,0,0, 0.2); 248 | } 249 | #mg-wrapper #mg-content .inner { 250 | padding: 30px; 251 | } 252 | 253 | #mg-wrapper #mg-content > .overlay 254 | { 255 | position: absolute; 256 | left: 0; 257 | top: 0; 258 | width: 100%; 259 | height: 100%; 260 | background-image: url('../img/overlay.png'); 261 | } 262 | 263 | 264 | /* ================================================= 265 | ----------------- TOP BAR ------------------- 266 | ==================================================== */ 267 | #mg-wrapper #top-bar { 268 | position: relative; 269 | padding: 20px; 270 | background-color: rgba(0,0,0,0.01); 271 | border-bottom: 1px solid rgba(0,0,0, 0.05); 272 | min-height: 36px; 273 | } 274 | 275 | /* --- MODULE NAME --- */ 276 | #mg-wrapper #module-name h4, #module-name h2 { 277 | line-height: 1; 278 | margin: 0; 279 | } 280 | #mg-wrapper #module-name h2 { 281 | color: #1c4b8c; 282 | font-size: 22px; 283 | } 284 | #module-name h4 { 285 | font-size: 14px; 286 | font-weight: normal; 287 | } 288 | 289 | /* --- TOP NAV --- */ 290 | #mg-wrapper #top-nav > li { 291 | position: relative; 292 | border-right: 1px solid rgba(0,0,0, 0.05); 293 | list-style: none; 294 | } 295 | #mg-wrapper #top-nav > li > a { 296 | display: block; 297 | height: 26px; 298 | line-height: 24px; 299 | color: #4c4c4c; 300 | } 301 | #mg-wrapper #top-nav li a i { 302 | margin: 0 10px 0 0; 303 | } 304 | #mg-wrapper #top-nav .nav-dropdown, #mg-wrapper #top-bar .btn-navbar { 305 | display: none; 306 | } 307 | 308 | /* --- DROP DOWN --- */ 309 | #mg-wrapper .dropdown-menu { 310 | display: none; 311 | min-width: 160px; 312 | padding: 5px 0; 313 | margin: 2px 0 0; 314 | list-style: none; 315 | background-color: #ffffff; 316 | *border-right-width: 2px; 317 | *border-bottom-width: 2px; 318 | } 319 | #mg-wrapper .dropdown-menu li { 320 | width: 100%; 321 | margin: 0 0 2px 0; 322 | } 323 | #mg-wrapper .dropdown-menu a { 324 | display: block; 325 | padding: 2px 10px; 326 | margin: 0 10px; 327 | clear: both; 328 | font-weight: normal; 329 | line-height: 20px; 330 | color: #808080; 331 | white-space: nowrap; 332 | } 333 | 334 | #mg-wrapper .dropdown-menu .disabled > a:hover { 335 | text-decoration: none; 336 | cursor: default; 337 | background-color: transparent; 338 | } 339 | 340 | /* ================================================= 341 | ----------------- BOXES ------------------- 342 | ==================================================== */ 343 | #mg-wrapper .border-box{ 344 | padding: 20px 20px 10px 20px; 345 | margin: 20px 0; 346 | overflow: auto; 347 | } 348 | #mg-wrapper .border-box { 349 | border: 1px solid rgba(0,0,0, 0.05); 350 | } 351 | 352 | #mg-wrapper .input-sizes select, 353 | #mg-wrapper .input-sizes input[type=text] { 354 | display: block!important; 355 | } 356 | 357 | #mg-wrapper .input-sizes-low input[type=text], #mg-wrapper 358 | #mg-wrapper .input-sizes-low select { 359 | display: block; 360 | height: 16px; 361 | } 362 | #mg-wrapper .form-low input[type=text] { 363 | height: 16px; 364 | } 365 | #mg-wrapper .input-sizes-low select, #mg-wrapper 366 | #mg-wrapper .form-low select { 367 | height: 26px; 368 | padding: 2px; 369 | } 370 | #mg-wrapper .form-low .help-inline, #mg-wrapper .form-low .help-block { 371 | font-size: 10px; 372 | margin: 0!important; 373 | } 374 | #mg-wrapper .form-low label { 375 | line-height: 16px; 376 | } 377 | 378 | #mg-wrapper .form-low .control-group { 379 | margin-bottom: 10px!important; 380 | } 381 | 382 | 383 | /* ================================================ 384 | ------------- RESPONSIVE STYLES ------------- 385 | =================================================== */ 386 | 387 | 388 | @media (min-width: 767px) { 389 | #mg-wrapper #mg-content.right { 390 | float: none; 391 | margin: 0 20px 0 00px; 392 | } 393 | #mg-wrapper #mg-sidebar.left { 394 | } 395 | #mg-wrapper #mg-sidebar.left.affix { 396 | left: 34px; 397 | } 398 | #mg-wrapper #top-nav li { 399 | float: left; 400 | } 401 | #mg-wrapper #top-nav > li > a { 402 | padding: 0 10px; 403 | margin: 0 10px; 404 | } 405 | #mg-wrapper #top-nav .nav-dropdown { 406 | position: absolute; 407 | top: 20px; 408 | right: 0; 409 | } 410 | #mg-wrapper #top-nav li:hover .nav-dropdown { 411 | display: block; 412 | } 413 | 414 | #mg-wrapper .dropdown-menu { 415 | position: absolute; 416 | top: 100%; 417 | right: 10px; 418 | z-index: 1000; 419 | float: left; 420 | -webkit-border-radius: 2px 0 2px 2px; 421 | -moz-border-radius: 2px 0 2px 2px; 422 | border-radius: 2px 0 2px 2px; 423 | -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2); 424 | -moz-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2); 425 | box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2); 426 | -webkit-background-clip: padding-box; 427 | -moz-background-clip: padding; 428 | background-clip: padding-box; 429 | } 430 | #mg-wrapper #top-nav li.open > a i.icon-caret-down { 431 | height: 30px; 432 | line-height: 28px; 433 | width: 32px; 434 | color: #1C4B8C; 435 | background: #fff; 436 | margin: -5px -10px 0 0; 437 | -webkit-border-radius: 1px 1px 0 0; 438 | -moz-border-radius: 1px 1px 0 0; 439 | border-radius: 1px 1px 0 0; 440 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); 441 | -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); 442 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); 443 | } 444 | } 445 | 446 | table.configtable tr td{ 447 | height: 30px; 448 | } 449 | 450 | table.configtable tr td:first-child{ 451 | width: 350px; 452 | } 453 | 454 | /* Desktop large 455 | ------------------------- */ 456 | @media (min-width: 1200px) { 457 | #mg-wrapper #top-nav { 458 | margin: 6px 0 0 230px; 459 | } 460 | #mg-wrapper #module-name { 461 | width: 200px; 462 | position: absolute; 463 | left: 30px; 464 | } 465 | } 466 | /* Desktop large 467 | ------------------------- */ 468 | @media (min-width: 767px) and (max-width: 1200px) { 469 | #mg-wrapper #top-nav li a { 470 | padding: 0 5px; 471 | margin: 0 5px; 472 | } 473 | #mg-wrapper #top-nav li .dropdown-menu{ 474 | right: 0; 475 | } 476 | } 477 | /* Desktop 478 | ------------------------- */ 479 | @media (max-width: 980px) { 480 | #mg-wrapper table .form-horizontal label.control-label, #mg-wrapper 481 | #mg-wrapper table .form-horizontal .controls { 482 | width: 100%; 483 | float: none; 484 | } 485 | #mg-wrapper table .form-horizontal .controls { 486 | margin: 0; 487 | } 488 | #mg-wrapper #module-name { 489 | width: 100%; 490 | text-align: center; 491 | } 492 | 493 | 494 | } 495 | 496 | @media (max-width: 1200px) { 497 | #mg-wrapper #module-name { 498 | width: 100%; 499 | text-align: center; 500 | } 501 | } 502 | /* Tablet to desktop 503 | ------------------------- */ 504 | @media (min-width: 768px) and (max-width: 1200px) { 505 | #mg-wrapper #top-nav { 506 | margin: 20px 0; 507 | padding: 10px 0 0 0 ; 508 | border-top: 1px solid rgba(0,0,0, 0.05); 509 | } 510 | } 511 | 512 | 513 | /* Landscape phones 514 | ------------------------- */ 515 | @media (max-width: 767px) { 516 | #mg-wrapper #mg-sidebar.left { 517 | display: none; 518 | } 519 | #mg-wrapper #top-bar .btn-navbar { 520 | display: block; 521 | float: right; 522 | } 523 | #mg-wrapper #top-nav { 524 | display: block; 525 | } 526 | #mg-wrapper #mg-content.right { 527 | float: none; 528 | } 529 | #mg-wrapper #mg-content.right, #mg-wrapper #top-nav { 530 | margin: 0; 531 | } 532 | #mg-wrapper #top-nav li{ 533 | padding: 0; 534 | border-right: none; 535 | } 536 | #mg-wrapper #module-name { 537 | margin: 0 0 20px 0; 538 | } 539 | #mg-wrapper #module-name, #mg-wrapper #top-nav li, #mg-wrapper #top-nav > li > a { 540 | width: 100%; 541 | } 542 | #mg-wrapper .dropdown-menu { 543 | margin: 2px 0 2px 10px 544 | } 545 | #mg-wrapper .contentarea { 546 | min-width: 0; 547 | width: auto; 548 | } 549 | 550 | } 551 | 552 | -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/font/museo_slab_300-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/font/museo_slab_300-webfont.eot -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/font/museo_slab_300-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/font/museo_slab_300-webfont.ttf -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/font/museo_slab_500-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/font/museo_slab_500-webfont.eot -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/font/museo_slab_500-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/font/museo_slab_500-webfont.ttf -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/font/proximanova-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/font/proximanova-webfont.eot -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/font/proximanova-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/font/proximanova-webfont.ttf -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/img/mg-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/img/mg-logo.png -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/img/overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SpamExperts/whmcs-addon/e2d8f10a143e36e11dd4bb689c3282c9e8f55f3f/modules/addons/spamexperts/core/assets/img/overlay.png -------------------------------------------------------------------------------- /modules/addons/spamexperts/core/assets/js/application.js: -------------------------------------------------------------------------------- 1 | // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT 2 | // IT'S ALL JUST JUNK FOR OUR DOCS! 3 | // ++++++++++++++++++++++++++++++++++++++++++ 4 | /* 5 | jQuery(function(){ 6 | $('section [href^=#]').click(function (e) { 7 | e.preventDefault() 8 | }); 9 | 10 | jQuery('.tooltip-box').tooltip({ 11 | selector: "a[rel=tooltip]" 12 | }) 13 | }); 14 | /* 15 | !function ($) { 16 | 17 | $(function(){ 18 | 19 | var $window = $(window); 20 | 21 | // Disable certain links in docs 22 | $('section [href^=#]').click(function (e) { 23 | e.preventDefault() 24 | }) 25 | 26 | // side bar 27 | // $('#sidebar').affix({ 28 | // offset: { 29 | // top: function () { return $window.width() <= 980 ? 290 : 210 } 30 | // , bottom: 60 31 | // } 32 | // }) 33 | 34 | // make code pretty 35 | window.prettyPrint && prettyPrint() 36 | 37 | // add-ons 38 | $('.add-on :checkbox').on('click', function () { 39 | var $this = $(this) 40 | , method = $this.attr('checked') ? 'addClass' : 'removeClass' 41 | $(this).parents('.add-on')[method]('active') 42 | }) 43 | 44 | // add tipsies to grid for scaffolding 45 | if ($('#gridSystem').length) { 46 | $('#gridSystem').tooltip({ 47 | selector: '.show-grid > div' 48 | , title: function () { return $(this).width() + 'px' } 49 | }) 50 | } 51 | 52 | // tooltip demo 53 | $('.tooltip-box').tooltip({ 54 | selector: "a[rel=tooltip]" 55 | }) 56 | 57 | $('.tooltip-test').tooltip() 58 | $('.popover-test').popover() 59 | 60 | // popover demo 61 | $("a[rel=popover]") 62 | .popover() 63 | .click(function(e) { 64 | e.preventDefault() 65 | }) 66 | 67 | // button state demo 68 | $('#fat-btn') 69 | .click(function () { 70 | var btn = $(this) 71 | btn.button('loading') 72 | setTimeout(function () { 73 | btn.button('reset') 74 | }, 3000) 75 | }) 76 | 77 | // carousel demo 78 | $('#myCarousel').carousel() 79 | 80 | // javascript build logic 81 | var inputsComponent = $("#components.download input") 82 | , inputsPlugin = $("#plugins.download input") 83 | , inputsVariables = $("#variables.download input") 84 | 85 | // toggle all plugin checkboxes 86 | $('#components.download .toggle-all').on('click', function (e) { 87 | e.preventDefault() 88 | inputsComponent.attr('checked', !inputsComponent.is(':checked')) 89 | }) 90 | 91 | $('#plugins.download .toggle-all').on('click', function (e) { 92 | e.preventDefault() 93 | inputsPlugin.attr('checked', !inputsPlugin.is(':checked')) 94 | }) 95 | 96 | $('#variables.download .toggle-all').on('click', function (e) { 97 | e.preventDefault() 98 | inputsVariables.val('') 99 | }) 100 | 101 | // request built javascript 102 | $('.download-btn').on('click', function () { 103 | 104 | var css = $("#components.download input:checked") 105 | .map(function () { return this.value }) 106 | .toArray() 107 | , js = $("#plugins.download input:checked") 108 | .map(function () { return this.value }) 109 | .toArray() 110 | , vars = {} 111 | , img = ['glyphicons-halflings.png', 'glyphicons-halflings-white.png'] 112 | 113 | $("#variables.download input") 114 | .each(function () { 115 | $(this).val() && (vars[ $(this).prev().text() ] = $(this).val()) 116 | }) 117 | 118 | $.ajax({ 119 | type: 'POST' 120 | , url: /\?dev/.test(window.location) ? 'http://localhost:3000' : 'http://bootstrap.herokuapp.com' 121 | , dataType: 'jsonpi' 122 | , params: { 123 | js: js 124 | , css: css 125 | , vars: vars 126 | , img: img 127 | } 128 | }) 129 | }) 130 | }) 131 | 132 | // Modified from the original jsonpi https://github.com/benvinegar/jquery-jsonpi 133 | $.ajaxTransport('jsonpi', function(opts, originalOptions, jqXHR) { 134 | var url = opts.url; 135 | 136 | return { 137 | send: function(_, completeCallback) { 138 | var name = 'jQuery_iframe_' + jQuery.now() 139 | , iframe, form 140 | 141 | iframe = $('