Changeset 3374823
- Timestamp:
- 10/08/2025 06:32:20 AM (4 months ago)
- Location:
- abandoned-contact-form-7
- Files:
-
- 31 added
- 42 deleted
- 26 edited
- 1 copied
-
assets/banner-1544x500.png (modified) (previous)
-
assets/banner-772x250.png (modified) (previous)
-
assets/icon-128x128.png (modified) (previous)
-
assets/icon-256x256.png (modified) (previous)
-
assets/screenshot-1.png (modified) (previous)
-
assets/screenshot-2.png (modified) (previous)
-
assets/screenshot-3.png (modified) (previous)
-
assets/screenshot-4.png (modified) (previous)
-
assets/screenshot-5.png (added)
-
assets/screenshot-6.png (added)
-
assets/screenshot-7.png (added)
-
tags/2.9 (copied) (copied from abandoned-contact-form-7/trunk)
-
tags/2.9/abandoned-forms-contact-form-7.php (deleted)
-
tags/2.9/assets/css/admin.css (modified) (2 diffs)
-
tags/2.9/assets/css/admin.min.css (modified) (1 diff)
-
tags/2.9/assets/css/spectrum.min.css (added)
-
tags/2.9/assets/images/arrow.png (added)
-
tags/2.9/assets/images/editor_disable.png (deleted)
-
tags/2.9/assets/js/admin.js (modified) (1 diff)
-
tags/2.9/assets/js/admin.min.js (modified) (1 diff)
-
tags/2.9/assets/js/front.js (deleted)
-
tags/2.9/assets/js/front.min.js (deleted)
-
tags/2.9/assets/js/graph.js (added)
-
tags/2.9/assets/js/graph.min.js (added)
-
tags/2.9/assets/js/spectrum.min.js (added)
-
tags/2.9/inc/admin/class.cf7af.admin.action.php (deleted)
-
tags/2.9/inc/admin/class.cf7af.admin.filter.php (deleted)
-
tags/2.9/inc/admin/class.cf7af.admin.php (deleted)
-
tags/2.9/inc/admin/class.tglcf.admin.action.php (added)
-
tags/2.9/inc/admin/class.tglcf.admin.filter.php (added)
-
tags/2.9/inc/admin/class.tglcf.admin.php (added)
-
tags/2.9/inc/admin/template/cf7af.notification.settings.template.php (deleted)
-
tags/2.9/inc/admin/template/cf7af.send.mail.template.php (deleted)
-
tags/2.9/inc/admin/template/cf7af.smtp.settings.template.php (deleted)
-
tags/2.9/inc/admin/template/cf7af.template.php (deleted)
-
tags/2.9/inc/admin/template/tglcf.template.php (added)
-
tags/2.9/inc/class.cf7af.php (deleted)
-
tags/2.9/inc/class.cf7af.update.php (deleted)
-
tags/2.9/inc/class.tglcf.php (added)
-
tags/2.9/inc/front (deleted)
-
tags/2.9/inc/lib/class.cf7af.lib.php (deleted)
-
tags/2.9/inc/lib/class.cf7af.licence.php (deleted)
-
tags/2.9/inc/lib/class.cf7af.subscription.php (deleted)
-
tags/2.9/inc/lib/class.tglcf.lib.php (added)
-
tags/2.9/languages/abandoned-forms-contact-form-7.pot (deleted)
-
tags/2.9/languages/track-geolocation-of-users-using-contact-form-7.pot (added)
-
tags/2.9/readme.txt (modified) (3 diffs)
-
tags/2.9/resources/img/image-1.png (modified) (previous)
-
tags/2.9/resources/img/image-2.png (modified) (previous)
-
tags/2.9/resources/img/image-3.png (modified) (previous)
-
tags/2.9/resources/img/image-4.png (modified) (previous)
-
tags/2.9/resources/img/image-5.png (deleted)
-
tags/2.9/resources/img/image-6.png (deleted)
-
tags/2.9/resources/img/image-7.png (deleted)
-
tags/2.9/resources/img/text.php (added)
-
tags/2.9/track-geolocation-of-users-using-contact-form-7.php (added)
-
trunk/abandoned-forms-contact-form-7.php (deleted)
-
trunk/assets/css/admin.css (modified) (2 diffs)
-
trunk/assets/css/admin.min.css (modified) (1 diff)
-
trunk/assets/css/spectrum.min.css (added)
-
trunk/assets/images/arrow.png (added)
-
trunk/assets/images/editor_disable.png (deleted)
-
trunk/assets/js/admin.js (modified) (1 diff)
-
trunk/assets/js/admin.min.js (modified) (1 diff)
-
trunk/assets/js/front.js (deleted)
-
trunk/assets/js/front.min.js (deleted)
-
trunk/assets/js/graph.js (added)
-
trunk/assets/js/graph.min.js (added)
-
trunk/assets/js/spectrum.min.js (added)
-
trunk/inc/admin/class.cf7af.admin.action.php (deleted)
-
trunk/inc/admin/class.cf7af.admin.filter.php (deleted)
-
trunk/inc/admin/class.cf7af.admin.php (deleted)
-
trunk/inc/admin/class.tglcf.admin.action.php (added)
-
trunk/inc/admin/class.tglcf.admin.filter.php (added)
-
trunk/inc/admin/class.tglcf.admin.php (added)
-
trunk/inc/admin/template/cf7af.notification.settings.template.php (deleted)
-
trunk/inc/admin/template/cf7af.send.mail.template.php (deleted)
-
trunk/inc/admin/template/cf7af.smtp.settings.template.php (deleted)
-
trunk/inc/admin/template/cf7af.template.php (deleted)
-
trunk/inc/admin/template/tglcf.template.php (added)
-
trunk/inc/class.cf7af.php (deleted)
-
trunk/inc/class.cf7af.update.php (deleted)
-
trunk/inc/class.tglcf.php (added)
-
trunk/inc/front (deleted)
-
trunk/inc/lib/class.cf7af.lib.php (deleted)
-
trunk/inc/lib/class.cf7af.licence.php (deleted)
-
trunk/inc/lib/class.cf7af.subscription.php (deleted)
-
trunk/inc/lib/class.tglcf.lib.php (added)
-
trunk/languages/abandoned-forms-contact-form-7.pot (deleted)
-
trunk/languages/track-geolocation-of-users-using-contact-form-7.pot (added)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/resources/img/image-1.png (modified) (previous)
-
trunk/resources/img/image-2.png (modified) (previous)
-
trunk/resources/img/image-3.png (modified) (previous)
-
trunk/resources/img/image-4.png (modified) (previous)
-
trunk/resources/img/image-5.png (deleted)
-
trunk/resources/img/image-6.png (deleted)
-
trunk/resources/img/image-7.png (deleted)
-
trunk/resources/img/text.php (added)
-
trunk/track-geolocation-of-users-using-contact-form-7.php (added)
Legend:
- Unmodified
- Added
- Removed
-
abandoned-contact-form-7/tags/2.9/assets/css/admin.css
r2383635 r3374823 1 .cf7af-notification-setting th{ 2 width: 230px !important; 3 } 4 .cf7af-tooltip { 1 @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap'); 2 3 .cfgeo-main-layout { 4 font-family: 'Poppins', sans-serif; 5 } 6 7 .cfgeo-main-layout .form-table th { 8 width: 300px; 9 align-items: center; 10 display: flex; 11 } 12 13 .cfgeo-main-layout .form-table tr { 14 display: flex; 15 align-items: center; 16 } 17 18 .cfgeo-main-layout .form-table td { 19 width: calc(100% - 300px); 20 } 21 .alignleft.actions .button, 22 .alignleft.actions input[type="button"], 23 .alignleft.actions input[type="submit"], 24 .cfgeo-tooltip { 25 vertical-align: middle; 26 } 27 .cfgeo-tooltip { 5 28 display: inline-block; 6 29 width: 18px; … … 11 34 background-image: url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJpbmZvLWNpcmNsZSIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWluZm8tY2lyY2xlIGZhLXctMTYiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjU2IDhDMTE5LjA0MyA4IDggMTE5LjA4MyA4IDI1NmMwIDEzNi45OTcgMTExLjA0MyAyNDggMjQ4IDI0OHMyNDgtMTExLjAwMyAyNDgtMjQ4QzUwNCAxMTkuMDgzIDM5Mi45NTcgOCAyNTYgOHptMCAxMTBjMjMuMTk2IDAgNDIgMTguODA0IDQyIDQycy0xOC44MDQgNDItNDIgNDItNDItMTguODA0LTQyLTQyIDE4LjgwNC00MiA0Mi00MnptNTYgMjU0YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTg4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEydi02NGgtMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMDBoMTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNHoiPjwvcGF0aD48L3N2Zz4=); 12 35 background-repeat: no-repeat; 13 background-size: cover; 14 } 15 16 .cf7af-pointer .wp-pointer-content h3:before { 17 content: '\f348'; 18 } 19 20 .cf7af-settings .postbox { 21 box-sizing: border-box; 22 } 23 24 .cf7af-settings .left-box { 36 background-size: cover 37 } 38 .validation-error-geo{ 39 border-color: red !important; 40 border-width: 2px !important; 41 } 42 .cfgeo-pointer .wp-pointer-content h3:before { 43 content: '\f348' 44 } 45 46 .shortcode-table { 47 width: 75%; 48 margin-top: 15px 49 } 50 51 .shortcode-table tr { 52 border-radius: 3px; 53 padding: 12px 15px; 54 display: flex; 55 justify-content: space-between; 56 margin-bottom: 5px 57 } 58 59 .shortcode-table thead tr { 60 background-color: #95a5a6; 61 font-size: 14px; 62 text-transform: uppercase; 63 letter-spacing: .03em 64 } 65 66 .shortcode-table tbody tr { 67 background-color: #fff; 68 box-shadow: 0 0 9px 0 rgba(0, 0, 0, .1) 69 } 70 71 .shortcode-table td { 72 width: 70% 73 } 74 75 .shortcode-table td+td { 76 width: 30% 77 } 78 79 .shortcode-table tfoot { 80 background-color: #95a5a6 81 } 82 83 .shortcode-table tfoot td { 84 width: 100% 85 } 86 87 .shortcode-table tfoot h3, 88 .shortcode-table tfoot p { 89 margin: 0 90 } 91 92 .shortcode-table input { 93 color: 000; 94 width: 100%; 95 cursor: text 96 } 97 .sp-original-input-container{ 98 display: block; 99 } 100 .sp-colorize-container{ 101 border: none !important; 102 position: absolute; 103 top: 0; 104 left: 1px; 105 height: 100%; 106 overflow: hidden; 107 } 108 .sp-colorize{ 109 height: 100%; 110 } 111 112 /* ======================================== 113 Advanced Filter 114 ======================================== */ 115 .cfgeo-advanced-filters { 116 margin: 10px 0; 117 padding: 15px; 118 background: #f9f9f9; 119 border: 1px solid #ddd; 120 border-radius: 4px; 121 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 122 position: relative; 123 display: flex; 124 flex-wrap: wrap; 125 float: left; 126 } 127 .cfgeo-advanced-filters label { 128 display: inline-block; 129 width: 80px; 130 font-weight: 700; 131 color: #23282d; 132 } 133 /* .cfgeo-advanced-filters input[type="date"], 134 .cfgeo-advanced-filters input[type="text"], 135 .cfgeo-advanced-filters select { 136 border: 1px solid #ddd; 137 border-radius: 3px; 138 padding: 5px 8px; 139 font-size: 13px; 140 } */ 141 .cfgeo-advanced-filters input[type="date"]:focus, 142 .cfgeo-advanced-filters input[type="text"]:focus, 143 .cfgeo-advanced-filters select:focus, 144 .cfgeo-filter-row input:focus, 145 .cfgeo-filter-row select:focus { 146 border-color: #0073aa; 147 box-shadow: 0 0 0 1px #0073aa; 148 outline: 0; 149 } 150 .cfgeo-advanced-filters .button { 151 margin-right: 10px; 152 } 153 .alignleft.actions .button:last-child, 154 .cfgeo-advanced-filters .button:last-child { 155 margin-right: 0; 156 } 157 .cfgeo-filter-row { 158 margin-bottom: 10px; 159 display: flex; 160 flex-wrap: wrap; 161 align-items: center; 162 width: 31%; 163 padding-right: 15px; 164 } 165 166 .cfgeo-filter-row .cfgeo-label { 167 width: 100%; 168 } 169 .cfgeo-filter-row:last-child { 170 margin-bottom: 0; 171 } 172 .cfgeo-filter-buttons { 173 margin-top: 15px; 174 padding-top: 15px; 175 border-top: 1px solid #ddd; 176 width: 100%; 177 } 178 .cfgeo-filter-count { 179 margin-top: 10px; 180 padding: 8px 12px; 181 background: #e7f7ff; 182 border: 1px solid #b3d9ff; 183 border-radius: 3px; 184 font-size: 12px; 185 color: #0073aa; 186 } 187 .cfgeo-loading { 188 display: none; 189 position: absolute; 190 top: 50%; 191 left: 50%; 192 transform: translate(-50%, -50%); 193 z-index: 1000; 194 } 195 .cfgeo-loading .spinner { 196 float: none; 197 margin: 0; 198 } 199 .cfgeo-advanced-filters.loading::after { 200 content: ""; 201 position: absolute; 202 top: 0; 203 left: 0; 204 right: 0; 205 bottom: 0; 206 background: rgba(255, 255, 255, 0.8); 207 z-index: 999; 208 } 209 .cfgeo-filter-row input:disabled, 210 .cfgeo-filter-row select:disabled { 211 opacity: 0.6; 212 cursor: not-allowed; 213 } 214 .alignleft.actions { 215 float: left; 216 margin: 0; 217 padding: 0; 218 } 219 .alignleft.actions .button { 220 margin-right: 5px; 221 } 222 223 224 /* ======================================== 225 WEBHOOK API STYLES 226 ======================================== */ 227 228 .cfgeo-webhook-settings { 229 margin: 20px 0; 230 } 231 232 .cfgeo-webhook-settings h3 { 233 margin-bottom: 10px; 234 color: #23282d; 235 } 236 237 .cfgeo-webhook-settings p { 238 margin-bottom: 20px; 239 color: #666; 240 } 241 242 .cfgeo-webhook-info { 243 background: #f9f9f9; 244 border: 1px solid #e1e1e1; 245 border-radius: 4px; 246 padding: 15px; 247 margin-bottom: 20px; 248 } 249 250 .cfgeo-webhook-info h4 { 251 margin-top: 0; 252 margin-bottom: 10px; 253 color: #23282d; 254 } 255 256 .cfgeo-webhook-info ul { 257 margin: 0; 258 padding-left: 20px; 259 } 260 261 .cfgeo-webhook-info li { 262 margin-bottom: 5px; 263 color: #666; 264 } 265 266 .cfgeo-webhook-test { 267 background: #fff; 268 border: 1px solid #e1e1e1; 269 border-radius: 4px; 270 padding: 15px; 271 margin-bottom: 20px; 272 } 273 274 .cfgeo-webhook-test h4 { 275 margin-top: 0; 276 margin-bottom: 10px; 277 color: #23282d; 278 } 279 280 .cfgeo-webhook-test p { 281 margin-bottom: 15px; 282 color: #666; 283 } 284 285 .cfgeo-webhook-logs { 286 background: #fff; 287 border: 1px solid #e1e1e1; 288 border-radius: 4px; 289 padding: 15px; 290 } 291 292 .cfgeo-webhook-logs h4 { 293 margin-top: 0; 294 margin-bottom: 10px; 295 color: #23282d; 296 } 297 298 .cfgeo-webhook-logs p { 299 margin-bottom: 15px; 300 color: #666; 301 } 302 303 .webhook-log-entry { 25 304 padding: 10px; 26 margin-right: 2%; 305 margin-bottom: 10px; 306 border-radius: 3px; 307 border-left: 4px solid #ddd; 308 } 309 310 .webhook-log-entry.success { 311 background: #f0f8f0; 312 border-left-color: #46b450; 313 } 314 315 .webhook-log-entry.error { 316 background: #fef7f1; 317 border-left-color: #dc3232; 318 } 319 320 .webhook-log-entry strong { 321 color: #23282d; 322 } 323 324 .webhook-log-entry small { 325 color: #666; 326 display: block; 327 margin-top: 5px; 328 } 329 330 #webhook-test-result { 331 margin-top: 10px; 332 } 333 334 #webhook-test-result .notice { 335 margin: 0; 336 } 337 338 /* Clear webhook logs button */ 339 #clear-webhook-logs { 340 margin-bottom: 10px; 341 } 342 343 #clear-webhook-logs:disabled { 344 opacity: 0.6; 345 cursor: not-allowed; 346 } 347 348 /* Webhook Settings Fields */ 349 .cfgeo-webhook-settings textarea { 27 350 width: 100%; 28 margin-bottom: 20px; 29 } 30 31 @media ( min-width: 1285px ) { 32 .cf7af-settings .left-box td { 33 width: 70%; 34 box-sizing: border-box; 351 min-height: 100px; 352 font-family: monospace; 353 } 354 355 .cfgeo-webhook-settings input[type="text"] { 356 width: 100%; 357 } 358 359 .cfgeo-webhook-settings .description { 360 font-style: italic; 361 color: #666; 362 margin-top: 5px; 363 } 364 365 .cfgeo-input-text, 366 .cfgeo-input-date { 367 padding: 10px 16px !important; 368 border: 1px solid #C1CFDE !important; 369 background: #FCFCFC !important; 370 height: 48px !important; 371 box-shadow: none !important; 372 color: #4A494B !important; 373 border-radius: 8px !important; 374 font-weight: 400 !important; 375 font-size: 16px !important; 376 font-family: "Poppins", sans-serif !important; 377 line-height: 1 !important; 378 width: 100% !important; 379 max-width: 500px !important; 380 } 381 382 .cfgeo-main-date { 383 display: flex; 384 align-items: center; 385 width: 100%; 386 } 387 388 .cfgeo-input-text.spectrum.with-add-on { 389 padding-left: 55px !important; 390 } 391 392 .cfgeo-label { 393 font-size: 16px !important; 394 font-weight: 500 !important; 395 font-family: "Poppins", sans-serif !important; 396 line-height: 1.6 !important; 397 color: #285064 !important; 398 padding-bottom: 10px !important; 399 } 400 401 .cfgeo-input-select { 402 line-height: 1.3 !important; 403 background: #FCFCFC url('../../assets/images/arrow.png') no-repeat right 7px top 55% !important; 404 background-size: 16px 10px !important; 405 } 406 407 .cfgeo-submit-btn { 408 padding: 20px 24px !important; 409 border-radius: 4px !important; 410 border: 1px solid #0074A2 !important; 411 background-color: #FFFFFF !important; 412 color: #0074A2 !important; 413 font-size: 16px !important; 414 font-weight: 500 !important; 415 font-family: "Poppins", sans-serif !important; 416 line-height: 1 !important; 417 cursor: pointer !important; 418 } 419 420 .cfgeo-submit-btn:hover { 421 background-color: #0074A2 !important; 422 color: #FFFFFF !important; 423 } 424 425 .cfgeo-checkbox { 426 width: 16px !important; 427 height: 16px !important; 428 border-radius: 4px !important; 429 border: 1px solid #cccccc !important; 430 background: #FFFFFF !important; 431 } 432 433 .cfgeo-textarea { 434 padding: 10px 16px !important; 435 border: 1px solid #C1CFDE !important; 436 background: #FCFCFC !important; 437 height: 200px !important; 438 box-shadow: none !important; 439 color: #4A494B !important; 440 border-radius: 8px !important; 441 font-weight: 400 !important; 442 font-size: 16px !important; 443 font-family: "Poppins", sans-serif !important; 444 line-height: 1.4 !important; 445 width: 100% !important; 446 max-width: 500px !important; 447 } 448 449 .cfgeo-main-layout .nav-tab-wrapper { 450 border-bottom: 1px solid #c3c4c7 !important; 451 margin: 0 !important; 452 padding-top: 9px !important; 453 padding-bottom: 0 !important; 454 line-height: inherit !important; 455 display: flex; 456 flex-wrap: wrap; 457 } 458 459 .cfgeo-main-layout .nav-tab-wrapper .nav-tab { 460 background: none !important; 461 box-shadow: none !important; 462 border: none !important; 463 color: #285064 !important; 464 font-weight: 500 !important; 465 font-size: 16px !important; 466 font-family: "Poppins", sans-serif !important; 467 padding: 5px 5px 15px 5px !important; 468 margin-right: 12px !important; 469 margin-left: 0 !important; 470 } 471 472 473 .cfgeo-main-layout .nav-tab-wrapper .nav-tab-active { 474 border-bottom: 3px solid #11AAB4 !important; 475 } 476 477 478 @media (max-width: 720px) and (orientation: portrait) { 479 .cfgeo-main-layout .nav-tab-wrapper .nav-tab { 480 margin: 0 !important; 481 padding: 9px !important; 482 } 483 .cfgeo-main-layout .form-table td, 484 .cfgeo-main-layout .form-table th { 485 width: 100% !important; 35 486 } 36 } 37 38 @media ( min-width: 782px ) and ( max-width: 1284px ) { 39 .cf7af-settings .left-box td { 40 width: 60%; 41 box-sizing: border-box; 487 .cfgeo-main-layout .form-table tr { 488 flex-wrap: wrap; 42 489 } 43 } 44 45 .cf7af-settings .left-box td input { 46 box-sizing: border-box; 47 } 48 49 #contact-form-editor .cf7af-settings .form-table th { 50 width: auto !important; 51 } 52 53 .tooltip-table .postbox { 54 box-sizing: border-box; 55 } 56 57 .tooltip-table .left-box { 58 padding: 10px; 59 margin-right: 2%; 60 width: 100%; 61 margin-bottom: 20px; 62 } 63 64 @media ( min-width: 1285px ) { 65 .tooltip-table .left-box td { 66 width: 70%; 67 box-sizing: border-box; 490 .cfgeo-filter-row { 491 width: 100%; 492 padding-right: 0; 68 493 } 69 494 } 70 71 @media ( min-width: 782px ) and ( max-width: 1284px ) {72 .tooltip-table .left-box td {73 width: 60%;74 box-sizing: border-box;75 }76 }77 78 .tooltip-table .left-box td input {79 box-sizing: border-box;80 }81 82 .tooltip-table .form-table th {83 width: auto !important;84 } -
abandoned-contact-form-7/tags/2.9/assets/css/admin.min.css
r2383635 r3374823 1 . cf7af-notification-setting th{width:230px!important}.cf7af-tooltip{display:inline-block;width:18px;height:18px;vertical-align:middle;border-radius:100%;margin-left:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJpbmZvLWNpcmNsZSIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWluZm8tY2lyY2xlIGZhLXctMTYiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjU2IDhDMTE5LjA0MyA4IDggMTE5LjA4MyA4IDI1NmMwIDEzNi45OTcgMTExLjA0MyAyNDggMjQ4IDI0OHMyNDgtMTExLjAwMyAyNDgtMjQ4QzUwNCAxMTkuMDgzIDM5Mi45NTcgOCAyNTYgOHptMCAxMTBjMjMuMTk2IDAgNDIgMTguODA0IDQyIDQycy0xOC44MDQgNDItNDIgNDItNDItMTguODA0LTQyLTQyIDE4LjgwNC00MiA0Mi00MnptNTYgMjU0YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTg4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEydi02NGgtMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMDBoMTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNHoiPjwvcGF0aD48L3N2Zz4=);background-repeat:no-repeat;background-size:cover}.cf7af-pointer .wp-pointer-content h3:before{content:'\f348'}.cf7af-settings .postbox{box-sizing:border-box}.cf7af-settings .left-box{padding:10px;margin-right:2%;width:100%;margin-bottom:20px}@media (min-width:1285px){.cf7af-settings .left-box td{width:70%;box-sizing:border-box}}@media (min-width:782px) and (max-width:1284px){.cf7af-settings .left-box td{width:60%;box-sizing:border-box}}.cf7af-settings .left-box td input{box-sizing:border-box}#contact-form-editor .cf7af-settings .form-table th{width:auto!important}.tooltip-table .postbox{box-sizing:border-box}.tooltip-table .left-box{padding:10px;margin-right:2%;width:100%;margin-bottom:20px}@media (min-width:1285px){.tooltip-table .left-box td{width:70%;box-sizing:border-box}}@media (min-width:782px) and (max-width:1284px){.tooltip-table .left-box td{width:60%;box-sizing:border-box}}.tooltip-table .left-box td input{box-sizing:border-box}.tooltip-table .form-table th{width:auto!important}1 .alignleft.actions .button,.alignleft.actions input[type=button],.alignleft.actions input[type=submit],.cfgeo-tooltip{vertical-align:middle}.cfgeo-tooltip{display:inline-block;width:18px;height:18px;border-radius:100%;margin-left:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJpbmZvLWNpcmNsZSIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWluZm8tY2lyY2xlIGZhLXctMTYiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjU2IDhDMTE5LjA0MyA4IDggMTE5LjA4MyA4IDI1NmMwIDEzNi45OTcgMTExLjA0MyAyNDggMjQ4IDI0OHMyNDgtMTExLjAwMyAyNDgtMjQ4QzUwNCAxMTkuMDgzIDM5Mi45NTcgOCAyNTYgOHptMCAxMTBjMjMuMTk2IDAgNDIgMTguODA0IDQyIDQycy0xOC44MDQgNDItNDIgNDItNDItMTguODA0LTQyLTQyIDE4LjgwNC00MiA0Mi00MnptNTYgMjU0YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTg4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEydi02NGgtMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMDBoMTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNHoiPjwvcGF0aD48L3N2Zz4=);background-repeat:no-repeat;background-size:cover}.validation-error-geo{border-color:red!important;border-width:2px!important}.cfgeo-pointer .wp-pointer-content h3:before{content:'\f348'}.shortcode-table{width:75%;margin-top:15px}.shortcode-table tr{border-radius:3px;padding:12px 15px;display:flex;justify-content:space-between;margin-bottom:5px}.shortcode-table thead tr{background-color:#95a5a6;font-size:14px;text-transform:uppercase;letter-spacing:.03em}.shortcode-table tbody tr{background-color:#fff;box-shadow:0 0 9px 0 rgba(0,0,0,.1)}.shortcode-table td{width:70%}.shortcode-table td+td{width:30%}.shortcode-table tfoot{background-color:#95a5a6}.cfgeo-filter-row label,.shortcode-table tfoot td{width:100%}.shortcode-table tfoot h3,.shortcode-table tfoot p{margin:0}.shortcode-table input{color:000;width:100%;cursor:text}.sp-original-input-container{display:block}.sp-colorize-container{border:none!important;position:absolute;top:0;left:1px;height:100%;overflow:hidden}.sp-colorize{height:100%}.cfgeo-advanced-filters{margin:10px 0;padding:15px;background:#f9f9f9;border:1px solid #ddd;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.1);position:relative;display:flex;flex-wrap:wrap;float:left}.cfgeo-advanced-filters label{display:inline-block;width:80px;font-weight:700;color:#23282d}.cfgeo-advanced-filters input[type=date],.cfgeo-advanced-filters input[type=text],.cfgeo-advanced-filters select{border:1px solid #ddd;border-radius:3px;padding:5px 8px;font-size:13px}.cfgeo-advanced-filters input[type=date]:focus,.cfgeo-advanced-filters input[type=text]:focus,.cfgeo-advanced-filters select:focus,.cfgeo-filter-row input:focus,.cfgeo-filter-row select:focus{border-color:#0073aa;box-shadow:0 0 0 1px #0073aa;outline:0}.cfgeo-advanced-filters .button{margin-right:10px}.alignleft.actions .button:last-child,.cfgeo-advanced-filters .button:last-child{margin-right:0}.cfgeo-filter-row{margin-bottom:10px;display:flex;flex-wrap:wrap}.cfgeo-filter-row:last-child{margin-bottom:0}.cfgeo-filter-buttons{margin-top:15px;padding-top:15px;border-top:1px solid #ddd;width:100%}.cfgeo-filter-count{margin-top:10px;padding:8px 12px;background:#e7f7ff;border:1px solid #b3d9ff;border-radius:3px;font-size:12px;color:#0073aa}.cfgeo-loading{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000}.cfgeo-loading .spinner{float:none;margin:0}.cfgeo-advanced-filters.loading::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.8);z-index:999}.cfgeo-filter-row input:disabled,.cfgeo-filter-row select:disabled{opacity:.6;cursor:not-allowed}.alignleft.actions{float:left;margin:0;padding:0}.alignleft.actions .button{margin-right:5px}.cfgeo-webhook-settings{margin:20px 0}.cfgeo-webhook-settings h3{margin-bottom:10px;color:#23282d}.cfgeo-webhook-settings p{margin-bottom:20px;color:#666}.cfgeo-webhook-info{background:#f9f9f9;border:1px solid #e1e1e1;border-radius:4px;padding:15px;margin-bottom:20px}.cfgeo-webhook-info h4{margin-top:0;margin-bottom:10px;color:#23282d}.cfgeo-webhook-info ul{margin:0;padding-left:20px}.cfgeo-webhook-info li{margin-bottom:5px;color:#666}.cfgeo-webhook-test{background:#fff;border:1px solid #e1e1e1;border-radius:4px;padding:15px;margin-bottom:20px}.cfgeo-webhook-test h4{margin-top:0;margin-bottom:10px;color:#23282d}.cfgeo-webhook-test p{margin-bottom:15px;color:#666}.cfgeo-webhook-logs{background:#fff;border:1px solid #e1e1e1;border-radius:4px;padding:15px}.cfgeo-webhook-logs h4{margin-top:0;margin-bottom:10px;color:#23282d}.cfgeo-webhook-logs p{margin-bottom:15px;color:#666}.webhook-log-entry{padding:10px;margin-bottom:10px;border-radius:3px;border-left:4px solid #ddd}.webhook-log-entry.success{background:#f0f8f0;border-left-color:#46b450}.webhook-log-entry.error{background:#fef7f1;border-left-color:#dc3232}.webhook-log-entry strong{color:#23282d}.webhook-log-entry small{color:#666;display:block;margin-top:5px}#webhook-test-result{margin-top:10px}#webhook-test-result .notice{margin:0}#clear-webhook-logs{margin-bottom:10px}#clear-webhook-logs:disabled{opacity:.6;cursor:not-allowed}.cfgeo-webhook-settings textarea{width:100%;min-height:100px;font-family:monospace}.cfgeo-webhook-settings input[type="text"]{width:100%}.cfgeo-webhook-settings .description{font-style:italic;color:#666;margin-top:5px} -
abandoned-contact-form-7/tags/2.9/assets/js/admin.js
r2847286 r3374823 3 3 4 4 jQuery(document).ready( function($) { 5 6 jQuery( '#cf7af-enable-abandoned-pointer' ).on( 'hover click', function() { 7 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 8 jQuery( '#cf7af-enable-abandoned-pointer' ).pointer({ 9 pointerClass: 'wp-pointer cf7af-pointer', 10 content: translate_string_cf7af.cf7af_enable_abandoned, 11 position: 'left center', 12 } ).pointer('open'); 13 }); 14 15 jQuery( '#cf7af-abandoned-email-pointer' ).on( 'hover click', function() { 16 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 17 jQuery( '#cf7af-abandoned-email-pointer' ).pointer({ 18 pointerClass: 'wp-pointer cf7af-pointer', 19 content: translate_string_cf7af.cf7af_abandoned_email, 20 position: 'left center', 21 } ).pointer('open'); 22 }); 23 24 jQuery( '#cf7af-abandoned-specific-field-pointer' ).on( 'hover click', function() { 25 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 26 jQuery( '#cf7af-abandoned-specific-field-pointer' ).pointer({ 27 pointerClass: 'wp-pointer cf7af-pointer', 28 content: translate_string_cf7af.cf7af_abandoned_specific_field, 29 position: 'left center', 30 } ).pointer('open'); 31 }); 5 // Debug: Check if cfgeo_ajax is available 6 console.log('CFGEO Debug: cfgeo_ajax available:', typeof cfgeo_ajax !== 'undefined'); 7 if (typeof cfgeo_ajax !== 'undefined') { 8 console.log('CFGEO Debug: cfgeo_ajax data:', cfgeo_ajax); 9 } else { 10 console.log('CFGEO Debug: cfgeo_ajax not available, some features may be limited'); 11 } 32 12 33 jQuery( '#cf7af-subject-pointer' ).on( 'hover click', function() { 34 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 35 jQuery( '#cf7af-subject-pointer' ).pointer({ 36 pointerClass: 'wp-pointer cf7af-pointer', 37 content: translate_string_cf7af.cf7af_subject, 38 position: 'left center', 39 } ).pointer('open'); 40 }); 41 42 jQuery( '#cf7af-email-body-pointer' ).on( 'hover click', function() { 43 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 44 jQuery( '#cf7af-email-body-pointer' ).pointer({ 45 pointerClass: 'wp-pointer cf7af-pointer', 46 content: translate_string_cf7af.cf7af_email_body, 47 position: 'left center', 48 } ).pointer('open'); 49 }); 50 51 jQuery( '#abandoned-email-address-pointer' ).on( 'hover click', function() { 52 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 53 jQuery( '#abandoned-email-address-pointer' ).pointer({ 54 pointerClass: 'wp-pointer cf7af-pointer', 55 content: translate_string_cf7af.abandoned_email_address, 56 position: 'left center', 57 } ).pointer('open'); 58 }); 59 60 jQuery( '#abandoned-from-name-pointer' ).on( 'hover click', function() { 61 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 62 jQuery( '#abandoned-from-name-pointer' ).pointer({ 63 pointerClass: 'wp-pointer cf7af-pointer', 64 content: translate_string_cf7af.abandoned_from_name, 65 position: 'left center', 66 } ).pointer('open'); 67 }); 68 69 jQuery( '#abandoned-from-email-address-pointer' ).on( 'hover click', function() { 70 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 71 jQuery( '#abandoned-from-email-address-pointer' ).pointer({ 72 pointerClass: 'wp-pointer cf7af-pointer', 73 content: translate_string_cf7af.abandoned_from_email_address, 74 position: 'left center', 75 } ).pointer('open'); 76 }); 77 78 jQuery( '#abandoned-subject-pointer' ).on( 'hover click', function() { 79 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 80 jQuery( '#abandoned-subject-pointer' ).pointer({ 81 pointerClass: 'wp-pointer cf7af-pointer', 82 content: translate_string_cf7af.abandoned_subject, 83 position: 'left center', 84 } ).pointer('open'); 85 }); 86 87 jQuery( '#abandoned-email-body-pointer' ).on( 'hover click', function() { 88 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 89 jQuery( '#abandoned-email-body-pointer' ).pointer({ 90 pointerClass: 'wp-pointer cf7af-pointer', 91 content: translate_string_cf7af.abandoned_email_body, 92 position: 'left center', 93 } ).pointer('open'); 94 }); 95 96 jQuery( '#cf7af-from-email-pointer' ).on( 'hover click', function() { 97 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 98 jQuery( '#cf7af-from-email-pointer' ).pointer({ 99 pointerClass: 'wp-pointer cf7af-pointer', 100 content: translate_string_cf7af.cf7af_from_email, 101 position: 'left center', 102 } ).pointer('open'); 103 }); 104 105 jQuery( '#cf7af-from-name-pointer' ).on( 'hover click', function() { 106 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 107 jQuery( '#cf7af-from-name-pointer' ).pointer({ 108 pointerClass: 'wp-pointer cf7af-pointer', 109 content: translate_string_cf7af.cf7af_from_name, 110 position: 'left center', 111 } ).pointer('open'); 112 }); 113 13 // Debug: Check if we're on the CFGEO page 14 console.log('CFGEO Debug: Advanced filters container found:', $('.cfgeo-advanced-filters').length); 15 // Initialize spectrum color picker if available 16 if (jQuery.fn.spectrum) { 17 jQuery('#cfgeo_color_picker').spectrum({ 18 type: "component", 19 showPalette: false, 20 showSelectionPalette: true, 21 togglePaletteOnly: true, 22 hideAfterPaletteSelect: true, 23 showAlpha: false, 24 change: function(color) { 25 if(color != null){ 26 var col = color.toHexString(); 27 if(col.length == 7){ 28 jQuery(".cfgeo_color_picker").removeClass('validation-error-geo'); 29 } 30 }else{ 31 jQuery(".cfgeo_color_picker").addClass('validation-error-geo'); 32 return false; 33 } 34 } 35 }); 36 } else { 37 console.log('CFGEO Debug: Spectrum plugin not available, skipping color picker initialization'); 38 } 39 40 jQuery('.setting-geolocation input#submit').click( function() { 41 // Only validate color picker if spectrum is available and color picker exists on current tab 42 if (jQuery.fn.spectrum && jQuery(".cfgeo_color_picker").length > 0) { 43 var color_val = jQuery(".cfgeo_color_picker").val(); 44 if(jQuery( ".cfgeo_color_picker" ).hasClass( "validation-error-geo" ) || color_val == null || color_val == ''){ 45 jQuery(".cfgeo_color_picker").addClass('validation-error-geo'); 46 return false; 47 }else if(color_val.length != 7){ 48 jQuery(".cfgeo_color_picker").addClass('validation-error-geo'); 49 return false; 50 } 51 } 52 }); 53 54 jQuery("#form-id-graph").change(function(){ 55 window.location= translate_string_geo.form_graph_url + this.value; 56 }); 57 58 jQuery( '#cfgeo-ipstack' ).on( 'mouseenter click', function() { 59 60 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 61 jQuery( '#cfgeo-ipstack' ).pointer({ 62 pointerClass: 'wp-pointer cfgeo-pointer', 63 content: translate_string_geo.ipstack, 64 position: 'left center', 65 } ).pointer('open'); 66 }); 67 68 jQuery( '#cfgeo-google' ).on( 'mouseenter click', function() { 69 70 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 71 jQuery( '#cfgeo-google' ).pointer({ 72 pointerClass: 'wp-pointer cfgeo-pointer', 73 content: translate_string_geo.google, 74 position: 'left center', 75 } ).pointer('open'); 76 }); 77 78 jQuery( '#cfgeo-debug' ).on( 'mouseenter click', function() { 79 80 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 81 jQuery( '#cfgeo-debug' ).pointer({ 82 pointerClass: 'wp-pointer cfgeo-pointer', 83 content: translate_string_geo.debug, 84 position: 'left center', 85 } ).pointer('open'); 86 }); 87 88 jQuery( '#cfgeo-color-graph' ).on( 'mouseenter click', function() { 89 90 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 91 jQuery( '#cfgeo-color-graph' ).pointer({ 92 pointerClass: 'wp-pointer cfgeo-pointer', 93 content: translate_string_geo.graphcolor, 94 position: 'left center', 95 } ).pointer('open'); 96 }); 97 98 // Webhook tooltips 99 jQuery( '#cfgeo-webhook-enabled' ).on( 'mouseenter click', function() { 100 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 101 jQuery( '#cfgeo-webhook-enabled' ).pointer({ 102 pointerClass: 'wp-pointer cfgeo-pointer', 103 content: translate_string_geo.webhook_enabled, 104 position: 'left center', 105 } ).pointer('open'); 106 }); 107 108 jQuery( '#cfgeo-webhook-urls' ).on( 'mouseenter click', function() { 109 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 110 jQuery( '#cfgeo-webhook-urls' ).pointer({ 111 pointerClass: 'wp-pointer cfgeo-pointer', 112 content: translate_string_geo.webhook_urls, 113 position: 'left center', 114 } ).pointer('open'); 115 }); 116 117 jQuery( '#cfgeo-webhook-secret' ).on( 'mouseenter click', function() { 118 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 119 jQuery( '#cfgeo-webhook-secret' ).pointer({ 120 pointerClass: 'wp-pointer cfgeo-pointer', 121 content: translate_string_geo.webhook_secret, 122 position: 'left center', 123 } ).pointer('open'); 124 }); 125 126 127 128 129 130 // Advanced Filter JavaScript for CFGEO Admin Panel 131 // Handles AJAX filtering, debouncing, pagination, and sorting 132 133 var filterTimeout; 134 var isLoading = false; 135 136 // Function to perform AJAX filtering 137 function performAjaxFilter() { 138 console.log('performAjaxFilter called'); 139 if (isLoading) { 140 console.log('Already loading, skipping'); 141 return; 142 } 143 144 // Check if we're on the correct page 145 if (!$('.cfgeo-advanced-filters').length) { 146 console.log('Not on CFGEO page, skipping'); 147 return; 148 } 149 150 isLoading = true; 151 152 // Show loading states 153 $('.cfgeo-advanced-filters').addClass('loading'); 154 $('.cfgeo-loading').show(); 155 $('.cfgeo-filter-row input, .cfgeo-filter-row select').prop('disabled', true); 156 $('.wp-list-table tbody').html('<tr><td colspan="8" style="text-align: center; padding: 20px;"><div class="spinner is-active"></div> Loading...</td></tr>'); 157 158 var filterData = { 159 action: 'cfgeo_filter_submissions', 160 nonce: cfgeo_ajax.nonce, 161 form_id: $('#form-id').val() || 'all', 162 country_filter: $('#country-filter').val() || '', 163 city_filter: $('#city-filter').val() || '', 164 date_from: $('#date-from').val() || '', 165 date_to: $('#date-to').val() || '', 166 search_term: $('#search-term').val() || '', 167 orderby: $('input[name="orderby"]').val() || 'date', 168 order: $('input[name="order"]').val() || 'DESC', 169 paged: $('input[name="paged"]').val() || '1' 170 }; 171 172 console.log('Sending AJAX request with data:', filterData); 173 $.ajax({ 174 url: ajaxurl, 175 type: 'POST', 176 data: filterData, 177 success: function(response) { 178 if (response.success) { 179 // Update the table body 180 $('.wp-list-table tbody').html(response.data.html); 181 182 // Update pagination 183 if (response.data.pagination) { 184 $('.tablenav-pages').html(response.data.pagination); 185 } else { 186 $('.tablenav-pages').html(''); 187 } 188 189 // Update filter count 190 $('.cfgeo-filter-count').remove(); 191 if (response.data.total > 0) { 192 var filterInfo = $('<div class="cfgeo-filter-count">Showing ' + response.data.total + ' submission(s)</div>'); 193 $('.cfgeo-advanced-filters').append(filterInfo); 194 } else { 195 var filterInfo = $('<div class="cfgeo-filter-count">No submissions found matching your criteria</div>'); 196 $('.cfgeo-advanced-filters').append(filterInfo); 197 } 198 199 // Update URL without page reload 200 var newUrl = new URL(window.location); 201 newUrl.searchParams.set('form-id', filterData.form_id); 202 newUrl.searchParams.set('country-filter', filterData.country_filter); 203 newUrl.searchParams.set('city-filter', filterData.city_filter); 204 newUrl.searchParams.set('date-from', filterData.date_from); 205 newUrl.searchParams.set('date-to', filterData.date_to); 206 newUrl.searchParams.set('search-term', filterData.search_term); 207 newUrl.searchParams.set('orderby', filterData.orderby); 208 newUrl.searchParams.set('order', filterData.order); 209 newUrl.searchParams.set('paged', filterData.paged); 210 211 window.history.pushState({}, '', newUrl); 212 } else { 213 alert('Error: ' + response.data); 214 } 215 }, 216 error: function(xhr, status, error) { 217 console.log('AJAX Error:', xhr.responseText); 218 alert(cfgeo_ajax.error_message); 219 }, 220 complete: function() { 221 isLoading = false; 222 $('.cfgeo-advanced-filters').removeClass('loading'); 223 $('.cfgeo-loading').hide(); 224 $('.cfgeo-filter-row input, .cfgeo-filter-row select').prop('disabled', false); 225 } 226 }); 227 } 228 229 // Only initialize AJAX functionality if we're on the CFGEO page 230 if ($('.cfgeo-advanced-filters').length && typeof cfgeo_ajax !== 'undefined') { 231 console.log('CFGEO Debug: Initializing AJAX functionality'); 232 233 // Real-time filtering with debounce 234 $('#form-id, #country-filter, #city-filter, #date-from, #date-to').on('change', function() { 235 console.log('Filter changed:', $(this).attr('id'), $(this).val()); 236 clearTimeout(filterTimeout); 237 filterTimeout = setTimeout(performAjaxFilter, 300); 238 }); 239 240 // Search with debounce 241 $('#search-term').on('input', function() { 242 console.log('Search input:', $(this).val()); 243 clearTimeout(filterTimeout); 244 filterTimeout = setTimeout(performAjaxFilter, 500); 245 }); 246 247 // Search with Enter key 248 $('#search-term').on('keypress', function(e) { 249 if (e.which === 13) { 250 clearTimeout(filterTimeout); 251 performAjaxFilter(); 252 } 253 }); 254 255 // Clear filters functionality 256 $('.cfgeo-clear-filters').on('click', function(e) { 257 e.preventDefault(); 258 259 // Clear all filter values 260 $('#form-id').val('all'); 261 $('#country-filter').val(''); 262 $('#city-filter').val(''); 263 $('#date-from').val(''); 264 $('#date-to').val(''); 265 $('#search-term').val(''); 266 $('input[name="orderby"]').val('date'); 267 $('input[name="order"]').val('DESC'); 268 $('input[name="paged"]').val('1'); 269 270 // Perform filter 271 performAjaxFilter(); 272 }); 273 274 // Date validation 275 $('#date-from, #date-to').on('change', function() { 276 var fromDate = $('#date-from').val(); 277 var toDate = $('#date-to').val(); 278 279 if (fromDate && toDate && fromDate > toDate) { 280 alert(cfgeo_ajax.date_error_message); 281 $(this).val(''); 282 } 283 }); 284 285 // Handle pagination clicks 286 $(document).on('click', '.tablenav-pages a', function(e) { 287 e.preventDefault(); 288 var paged = $(this).data('page') || '1'; 289 290 $('input[name="paged"]').val(paged); 291 performAjaxFilter(); 292 }); 293 294 // Handle sorting clicks 295 $(document).on('click', '.wp-list-table th.sortable a, .wp-list-table th.sorted a', function(e) { 296 e.preventDefault(); 297 var href = $(this).attr('href'); 298 var url = new URL(href); 299 var orderby = url.searchParams.get('orderby') || 'date'; 300 var order = url.searchParams.get('order') || 'DESC'; 301 302 $('input[name="orderby"]').val(orderby); 303 $('input[name="order"]').val(order); 304 $('input[name="paged"]').val('1'); // Reset to first page when sorting 305 performAjaxFilter(); 306 }); 307 308 // Initial filter count display 309 var totalPosts = $('.wp-list-table tbody tr').length; 310 if (totalPosts > 0) { 311 var filterInfo = $('<div class="cfgeo-filter-count">Showing ' + totalPosts + ' submission(s)</div>'); 312 $('.cfgeo-advanced-filters').append(filterInfo); 313 } 314 } else { 315 console.log('CFGEO Debug: Not on CFGEO page or cfgeo_ajax not available, skipping AJAX initialization'); 316 } 317 318 // Webhook API functionality 319 if ($('#test-webhook').length && typeof cfgeo_ajax !== 'undefined') { 320 $('#test-webhook').on('click', function() { 321 var button = $(this); 322 var originalText = button.text(); 323 324 button.prop('disabled', true).text('Testing...'); 325 $('#webhook-test-result').hide(); 326 327 $.ajax({ 328 url: ajaxurl, 329 type: 'POST', 330 data: { 331 action: 'cfgeo_test_webhook', 332 nonce: cfgeo_ajax.webhook_test_nonce || cfgeo_ajax.nonce 333 }, 334 success: function(response) { 335 if (response && response.success) { 336 var message = response.data && response.data.message ? response.data.message : 'Test completed successfully!'; 337 $('#webhook-test-result').html( 338 '<div class="notice notice-success"><p>' + message + '</p></div>' 339 ).show(); 340 } else { 341 var message = response && response.data && response.data.message ? response.data.message : 'Test failed. Please try again.'; 342 $('#webhook-test-result').html( 343 '<div class="notice notice-error"><p>' + message + '</p></div>' 344 ).show(); 345 } 346 }, 347 error: function() { 348 $('#webhook-test-result').html( 349 '<div class="notice notice-error"><p>An error occurred while testing the webhook.</p></div>' 350 ).show(); 351 }, 352 complete: function() { 353 button.prop('disabled', false).text(originalText); 354 } 355 }); 356 }); 357 } 358 359 // Load webhook logs 360 if ($('#webhook-logs').length && typeof cfgeo_ajax !== 'undefined') { 361 loadWebhookLogs(); 362 } 363 364 // Clear webhook logs functionality 365 if ($('#clear-webhook-logs').length && typeof cfgeo_ajax !== 'undefined') { 366 $('#clear-webhook-logs').on('click', function() { 367 if (confirm('Are you sure you want to clear all webhook logs? This action cannot be undone.')) { 368 var button = $(this); 369 var originalText = button.text(); 370 371 button.prop('disabled', true).text('Clearing...'); 372 373 $.ajax({ 374 url: ajaxurl, 375 type: 'POST', 376 data: { 377 action: 'cfgeo_clear_webhook_logs', 378 nonce: cfgeo_ajax.webhook_logs_nonce || cfgeo_ajax.nonce 379 }, 380 success: function(response) { 381 if (response && response.success) { 382 // Clear the logs display 383 $('#webhook-logs').html('<p class="description">No webhook logs available yet.</p>'); 384 385 // Disable the clear button since logs are now empty 386 $('#clear-webhook-logs').prop('disabled', true); 387 388 // Show success message 389 var message = response.data && response.data.message ? response.data.message : 'Webhook logs cleared successfully.'; 390 $('#webhook-logs').before( 391 '<div class="notice notice-success" style="margin-bottom: 10px;"><p>' + message + '</p></div>' 392 ); 393 394 // Remove the notice after 3 seconds 395 setTimeout(function() { 396 $('#webhook-logs').prev('.notice').fadeOut(); 397 }, 3000); 398 } else { 399 var message = response && response.data && response.data.message ? response.data.message : 'Failed to clear webhook logs.'; 400 $('#webhook-logs').before( 401 '<div class="notice notice-error" style="margin-bottom: 10px;"><p>' + message + '</p></div>' 402 ); 403 } 404 }, 405 error: function() { 406 $('#webhook-logs').before( 407 '<div class="notice notice-error" style="margin-bottom: 10px;"><p>An error occurred while clearing webhook logs.</p></div>' 408 ); 409 }, 410 complete: function() { 411 button.prop('disabled', false).text(originalText); 412 } 413 }); 414 } 415 }); 416 } 417 418 function loadWebhookLogs() { 419 if (typeof cfgeo_ajax === 'undefined') { 420 $('#webhook-logs').html('<p class="description">Unable to load webhook logs - AJAX not available.</p>'); 421 $('#clear-webhook-logs').prop('disabled', true); 422 return; 423 } 424 425 $.ajax({ 426 url: ajaxurl, 427 type: 'POST', 428 data: { 429 action: 'cfgeo_get_webhook_logs', 430 nonce: cfgeo_ajax.webhook_logs_nonce || cfgeo_ajax.nonce 431 }, 432 success: function(response) { 433 if (response && response.success && response.data && response.data.logs) { 434 var logsHtml = ''; 435 if (response.data.logs.length > 0) { 436 // Enable clear button when logs exist 437 $('#clear-webhook-logs').prop('disabled', false); 438 439 response.data.logs.forEach(function(log) { 440 var statusClass = log.success ? 'success' : 'error'; 441 var statusText = log.success ? 'Success' : 'Failed'; 442 logsHtml += '<div class="webhook-log-entry ' + statusClass + '">'; 443 logsHtml += '<strong>' + statusText + '</strong> - ' + (log.timestamp || 'Unknown time') + '<br>'; 444 logsHtml += '<small>URL: ' + (log.url || 'Unknown URL') + '</small><br>'; 445 logsHtml += '<small>Response: ' + (log.response_code || 'Unknown') + ' - ' + (log.response_message || 'No message') + '</small>'; 446 logsHtml += '</div>'; 447 }); 448 } else { 449 // Disable clear button when no logs exist 450 $('#clear-webhook-logs').prop('disabled', true); 451 logsHtml = '<p class="description">No webhook logs available yet.</p>'; 452 } 453 $('#webhook-logs').html(logsHtml); 454 } else { 455 $('#webhook-logs').html('<p class="description">Unable to load webhook logs - invalid response format.</p>'); 456 $('#clear-webhook-logs').prop('disabled', true); 457 } 458 }, 459 error: function() { 460 $('#webhook-logs').html('<p class="description">Unable to load webhook logs.</p>'); 461 $('#clear-webhook-logs').prop('disabled', true); 462 } 463 }); 464 } 114 465 }); 115 466 -
abandoned-contact-form-7/tags/2.9/assets/js/admin.min.js
r2847286 r3374823 1 !function(e){"use strict";jQuery(document).ready( function(e){jQuery("#cf7af-enable-abandoned-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-enable-abandoned-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_enable_abandoned,position:"left center"}).pointer("open")}),jQuery("#cf7af-abandoned-email-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-abandoned-email-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_abandoned_email,position:"left center"}).pointer("open")}),jQuery("#cf7af-abandoned-specific-field-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-abandoned-specific-field-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_abandoned_specific_field,position:"left center"}).pointer("open")}),jQuery("#cf7af-subject-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-subject-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_subject,position:"left center"}).pointer("open")}),jQuery("#cf7af-email-body-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-email-body-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_email_body,position:"left center"}).pointer("open")}),jQuery("#abandoned-email-address-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-email-address-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_email_address,position:"left center"}).pointer("open")}),jQuery("#abandoned-from-name-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-from-name-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_from_name,position:"left center"}).pointer("open")}),jQuery("#abandoned-from-email-address-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-from-email-address-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_from_email_address,position:"left center"}).pointer("open")}),jQuery("#abandoned-subject-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-subject-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_subject,position:"left center"}).pointer("open")}),jQuery("#abandoned-email-body-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-email-body-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_email_body,position:"left center"}).pointer("open")}),jQuery("#cf7af-from-email-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-from-email-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_from_email,position:"left center"}).pointer("open")}),jQuery("#cf7af-from-name-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-from-name-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_from_name,position:"left center"}).pointer("open")})})}(jQuery);1 !function(e){"use strict";jQuery(document).ready((function(e){var o;console.log("CFGEO Debug: cfgeo_ajax available:","undefined"!=typeof cfgeo_ajax),"undefined"!=typeof cfgeo_ajax?console.log("CFGEO Debug: cfgeo_ajax data:",cfgeo_ajax):console.log("CFGEO Debug: cfgeo_ajax not available, some features may be limited"),console.log("CFGEO Debug: Advanced filters container found:",e(".cfgeo-advanced-filters").length),jQuery.fn.spectrum?jQuery("#cfgeo_color_picker").spectrum({type:"component",showPalette:!1,showSelectionPalette:!0,togglePaletteOnly:!0,hideAfterPaletteSelect:!0,showAlpha:!1,change:function(e){if(null==e)return jQuery(".cfgeo_color_picker").addClass("validation-error-geo"),!1;7==e.toHexString().length&&jQuery(".cfgeo_color_picker").removeClass("validation-error-geo")}}):console.log("CFGEO Debug: Spectrum plugin not available, skipping color picker initialization"),jQuery(".setting-geolocation input#submit").click((function(){if(jQuery.fn.spectrum&&jQuery(".cfgeo_color_picker").length>0){var e=jQuery(".cfgeo_color_picker").val();if(jQuery(".cfgeo_color_picker").hasClass("validation-error-geo")||null==e||""==e)return jQuery(".cfgeo_color_picker").addClass("validation-error-geo"),!1;if(7!=e.length)return jQuery(".cfgeo_color_picker").addClass("validation-error-geo"),!1}})),jQuery("#form-id-graph").change((function(){window.location=translate_string_geo.form_graph_url+this.value})),jQuery("#cfgeo-ipstack").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-ipstack").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.ipstack,position:"left center"}).pointer("open")})),jQuery("#cfgeo-google").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-google").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.google,position:"left center"}).pointer("open")})),jQuery("#cfgeo-debug").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-debug").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.debug,position:"left center"}).pointer("open")})),jQuery("#cfgeo-color-graph").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-color-graph").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.graphcolor,position:"left center"}).pointer("open")})),jQuery("#cfgeo-webhook-enabled").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-webhook-enabled").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.webhook_enabled,position:"left center"}).pointer("open")})),jQuery("#cfgeo-webhook-urls").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-webhook-urls").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.webhook_urls,position:"left center"}).pointer("open")})),jQuery("#cfgeo-webhook-secret").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-webhook-secret").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.webhook_secret,position:"left center"}).pointer("open")}));var t=!1;function a(){if(console.log("performAjaxFilter called"),t)console.log("Already loading, skipping");else if(e(".cfgeo-advanced-filters").length){t=!0,e(".cfgeo-advanced-filters").addClass("loading"),e(".cfgeo-loading").show(),e(".cfgeo-filter-row input, .cfgeo-filter-row select").prop("disabled",!0),e(".wp-list-table tbody").html('<tr><td colspan="8" style="text-align: center; padding: 20px;"><div class="spinner is-active"></div> Loading...</td></tr>');var o={action:"cfgeo_filter_submissions",nonce:cfgeo_ajax.nonce,form_id:e("#form-id").val()||"all",country_filter:e("#country-filter").val()||"",city_filter:e("#city-filter").val()||"",date_from:e("#date-from").val()||"",date_to:e("#date-to").val()||"",search_term:e("#search-term").val()||"",orderby:e('input[name="orderby"]').val()||"date",order:e('input[name="order"]').val()||"DESC",paged:e('input[name="paged"]').val()||"1"};console.log("Sending AJAX request with data:",o),e.ajax({url:ajaxurl,type:"POST",data:o,success:function(t){if(t.success){if(e(".wp-list-table tbody").html(t.data.html),t.data.pagination?e(".tablenav-pages").html(t.data.pagination):e(".tablenav-pages").html(""),e(".cfgeo-filter-count").remove(),t.data.total>0){var a=e('<div class="cfgeo-filter-count">Showing '+t.data.total+" submission(s)</div>");e(".cfgeo-advanced-filters").append(a)}else{a=e('<div class="cfgeo-filter-count">No submissions found matching your criteria</div>');e(".cfgeo-advanced-filters").append(a)}var r=new URL(window.location);r.searchParams.set("form-id",o.form_id),r.searchParams.set("country-filter",o.country_filter),r.searchParams.set("city-filter",o.city_filter),r.searchParams.set("date-from",o.date_from),r.searchParams.set("date-to",o.date_to),r.searchParams.set("search-term",o.search_term),r.searchParams.set("orderby",o.orderby),r.searchParams.set("order",o.order),r.searchParams.set("paged",o.paged),window.history.pushState({},"",r)}else alert("Error: "+t.data)},error:function(e,o,t){console.log("AJAX Error:",e.responseText),alert(cfgeo_ajax.error_message)},complete:function(){t=!1,e(".cfgeo-advanced-filters").removeClass("loading"),e(".cfgeo-loading").hide(),e(".cfgeo-filter-row input, .cfgeo-filter-row select").prop("disabled",!1)}})}else console.log("Not on CFGEO page, skipping")}if(e(".cfgeo-advanced-filters").length&&"undefined"!=typeof cfgeo_ajax){console.log("CFGEO Debug: Initializing AJAX functionality"),e("#form-id, #country-filter, #city-filter, #date-from, #date-to").on("change",(function(){console.log("Filter changed:",e(this).attr("id"),e(this).val()),clearTimeout(o),o=setTimeout(a,300)})),e("#search-term").on("input",(function(){console.log("Search input:",e(this).val()),clearTimeout(o),o=setTimeout(a,500)})),e("#search-term").on("keypress",(function(e){13===e.which&&(clearTimeout(o),a())})),e(".cfgeo-clear-filters").on("click",(function(o){o.preventDefault(),e("#form-id").val("all"),e("#country-filter").val(""),e("#city-filter").val(""),e("#date-from").val(""),e("#date-to").val(""),e("#search-term").val(""),e('input[name="orderby"]').val("date"),e('input[name="order"]').val("DESC"),e('input[name="paged"]').val("1"),a()})),e("#date-from, #date-to").on("change",(function(){var o=e("#date-from").val(),t=e("#date-to").val();o&&t&&o>t&&(alert(cfgeo_ajax.date_error_message),e(this).val(""))})),e(document).on("click",".tablenav-pages a",(function(o){o.preventDefault();var t=e(this).data("page")||"1";e('input[name="paged"]').val(t),a()})),e(document).on("click",".wp-list-table th.sortable a, .wp-list-table th.sorted a",(function(o){o.preventDefault();var t=e(this).attr("href"),r=new URL(t),n=r.searchParams.get("orderby")||"date",i=r.searchParams.get("order")||"DESC";e('input[name="orderby"]').val(n),e('input[name="order"]').val(i),e('input[name="paged"]').val("1"),a()}));var r=e(".wp-list-table tbody tr").length;if(r>0){var n=e('<div class="cfgeo-filter-count">Showing '+r+" submission(s)</div>");e(".cfgeo-advanced-filters").append(n)}}else console.log("CFGEO Debug: Not on CFGEO page or cfgeo_ajax not available, skipping AJAX initialization");e("#test-webhook").length&&"undefined"!=typeof cfgeo_ajax&&e("#test-webhook").on("click",(function(){var o=e(this),t=o.text();o.prop("disabled",!0).text("Testing..."),e("#webhook-test-result").hide(),e.ajax({url:ajaxurl,type:"POST",data:{action:"cfgeo_test_webhook",nonce:cfgeo_ajax.webhook_test_nonce||cfgeo_ajax.nonce},success:function(o){if(o&&o.success){var t=o.data&&o.data.message?o.data.message:"Test completed successfully!";e("#webhook-test-result").html('<div class="notice notice-success"><p>'+t+"</p></div>").show()}else{t=o&&o.data&&o.data.message?o.data.message:"Test failed. Please try again.";e("#webhook-test-result").html('<div class="notice notice-error"><p>'+t+"</p></div>").show()}},error:function(){e("#webhook-test-result").html('<div class="notice notice-error"><p>An error occurred while testing the webhook.</p></div>').show()},complete:function(){o.prop("disabled",!1).text(t)}})})),e("#webhook-logs").length&&"undefined"!=typeof cfgeo_ajax&&function(){if("undefined"==typeof cfgeo_ajax)return void(e("#webhook-logs").html('<p class="description">Unable to load webhook logs - AJAX not available.</p>'),e("#clear-webhook-logs").prop("disabled",!0));e.ajax({url:ajaxurl,type:"POST",data:{action:"cfgeo_get_webhook_logs",nonce:cfgeo_ajax.webhook_logs_nonce||cfgeo_ajax.nonce},success:function(o){if(o&&o.success&&o.data&&o.data.logs){var t="";o.data.logs.length>0?(e("#clear-webhook-logs").prop("disabled",!1),o.data.logs.forEach((function(e){var o=e.success?"success":"error",a=e.success?"Success":"Failed";t+='<div class="webhook-log-entry '+o+'">',t+="<strong>"+a+"</strong> - "+(e.timestamp||"Unknown time")+"<br>",t+="<small>URL: "+(e.url||"Unknown URL")+"</small><br>",t+="<small>Response: "+(e.response_code||"Unknown")+" - "+(e.response_message||"No message")+"</small>",t+="</div>"}))):(e("#clear-webhook-logs").prop("disabled",!0),t='<p class="description">No webhook logs available yet.</p>'),e("#webhook-logs").html(t)}else e("#webhook-logs").html('<p class="description">Unable to load webhook logs - invalid response format.</p>'),e("#clear-webhook-logs").prop("disabled",!0)},error:function(){e("#webhook-logs").html('<p class="description">Unable to load webhook logs.</p>'),e("#clear-webhook-logs").prop("disabled",!0)}})}(),e("#clear-webhook-logs").length&&"undefined"!=typeof cfgeo_ajax&&e("#clear-webhook-logs").on("click",(function(){if(confirm("Are you sure you want to clear all webhook logs? This action cannot be undone.")){var o=e(this),t=o.text();o.prop("disabled",!0).text("Clearing..."),e.ajax({url:ajaxurl,type:"POST",data:{action:"cfgeo_clear_webhook_logs",nonce:cfgeo_ajax.webhook_logs_nonce||cfgeo_ajax.nonce},success:function(o){if(o&&o.success){e("#webhook-logs").html('<p class="description">No webhook logs available yet.</p>'),e("#clear-webhook-logs").prop("disabled",!0);var t=o.data&&o.data.message?o.data.message:"Webhook logs cleared successfully.";e("#webhook-logs").before('<div class="notice notice-success" style="margin-bottom: 10px;"><p>'+t+"</p></div>"),setTimeout((function(){e("#webhook-logs").prev(".notice").fadeOut()}),3e3)}else{t=o&&o.data&&o.data.message?o.data.message:"Failed to clear webhook logs.";e("#webhook-logs").before('<div class="notice notice-error" style="margin-bottom: 10px;"><p>'+t+"</p></div>")}},error:function(){e("#webhook-logs").before('<div class="notice notice-error" style="margin-bottom: 10px;"><p>An error occurred while clearing webhook logs.</p></div>')},complete:function(){o.prop("disabled",!1).text(t)}})}}))}))}(jQuery); -
abandoned-contact-form-7/tags/2.9/readme.txt
r3299155 r3374823 1 === AbandonedContact Form 7 ===1 === Track Geolocation Of Users Using Contact Form 7 === 2 2 3 3 Contributors: zealopensource 4 Tags: abandoned, contact form 7, export, email, wpvip 5 Requires at least: 3.5 6 Donate link: http://www.zealousweb.com/payment/ 7 Tested up to: 6.8 8 Stable tag: 2.0 9 Requires PHP: 5.6 10 CF7 requires at least: 3.0 11 CF7 tested up to: 5.8 12 License: GPLv3 or later License 13 Version: 2.0 4 Donate Link: http://www.zealousweb.com/payment/ 5 Tags: geolocation,track geolocation,Google Maps 6 Requires at least: 4.9 or higher 7 Tested up to: 6.8 8 Stable tag: 2.9 9 Requires PHP: 7.0 10 License: GPL-3.0-or-later 11 Version: 2.9 14 12 License URI: http://www.gnu.org/licenses/gpl-3.0.html 15 13 16 Abandoned Contact Form 7 provides an ability to track the data from Contact Form 7 even if the user does not submit the form.14 Track Geolocation Of Users Using Contact Form 7 allows you to get geolocation information with their form submission. 17 15 18 16 == Description == 19 17 20 Abandoned Contact Form 7 plugin provides to track the Contact Form 7 form data even if the user does not submit the form. And, sends mail notification to each Abandoned user.18 Track Geolocation Of Users Using Contact Form 7 allows you to get geolocation information with their form submission. This will help you know better from where the visitor has submitted the form. 21 19 22 = Features of Abandoned Contact Form 7 = 20 = Features of Track Geolocation Of Users Using Contact Form 7 = 21 * Advanced Filtering & Search - Quickly locate form submissions with filters for Country, City, and Submission Date. 22 * Custom Webhook Integrations - Automate workflows by sending geolocation data to external platforms. 23 * Multi-Language Compatibility - The plugin automatically translates data. 24 * Get Geolocation details including city,state,country,zipcode,latitude/longitude. 25 * Send all this information including a static google map image in the mail with a simple shortcode. 26 * Form Specific Visual chart to get to know from where the Visitors become more. 27 * We have used 2 Types of API here one is with access token key named ipstack and another is without access token which is free named ipapi & KeyCDN. So if you do not enter access token key in plugin setting then it will fetch data with the help of free API keys. 28 * To add latitude/longitude, country, state, city in mail - [geolocation] 29 * To add latitude/longitude, country, state, city & Google map static image in the mail - [geolocation lat-long country state city gmap] 30 * To add only latitude/longitude in mail - [geolocation lat-long] 31 * To add only the country in the mail- [geolocation country] 32 * To add only the state in the mail - [geolocation state] 33 * To add only the city in the mail - [geolocation city] 34 * To add only Google map static image in the mail- [geolocation gmap] 23 35 24 * Select your email ID field for Form in the form settings. 25 * Enable/Disable Option for multiple forms where you need in Contact Form 7. 26 * View the list of entries in the Admin side for Abandoned submission. 27 * In the list of Abandoned forms entry in admin side you can view IP addresses and other data which are filled-up by the user upto 10 Entries. 28 * Provision to send an email to a single user that abandoned the form. 29 * Facility to export the list of entire abandoned users upto 10 Entries. 30 * Also, An option to customize the mail body for Abandoned email upto 10 Entries. 31 * Select specific field to include in tracking data 32 * Compatibility of WordPress VIP. 36 <strong>[Demo for Track Geolocation Of Users Using Contact Form 7](https://demo.zealousweb.com/wordpress-plugins/track-geolocation-of-users-using-contact-form-7/)</strong> 33 37 34 <strong>[Demo for Abandoned Contact Form 7](https://demo.zealousweb.com/wordpress-plugins/abandoned-contact-form-7/)</strong> 35 36 = Features of Abandoned Contact Form 7 Pro = 37 38 We have released the PRO version of this plugin with extra advantageous features added. PRO Version 1.0 Released. 39 40 * In the list of Abandoned forms entry in admin side you can view IP addresses and other data which are filled-up by the user unlimited Entries. 41 * Facility to export the list of entire abandoned users unlimited Entries. 42 * You can schedule a time for sending emails to each abandoned user. 43 * You can set the “Status” of the user to send an email so we can manage not to send the same email again to the same user. 44 * You can easily manage the number of time emails sent to the user. 45 * Also, An option to customize the mail body for Abandoned email unlimited Entries. 46 * For schedule mails, we have the option of SMTP settings. Here, you can set SMTP from Plugin, no need to add another plugin for SMTP configuration. 47 48 <strong>[Get more information of Pro version here](https://store.zealousweb.com/abandoned-contact-form-7-pro)</strong> 49 <strong>[Demo for Abandoned Contact Form 7](https://demo.zealousweb.com/wordpress-plugins/abandoned-contact-form-7-pro/)</strong> 38 Note: To add Google map static image in the mail you have to enable this 2 option 39 1. You have to enable Use HTML content-type in the Mail setting of Contact form 7. 40 2. You have to enable Maps Static API in Google Map API. 50 41 51 42 == OUR OTHER PLUGINS == … … 64 55 * <strong>[User Registration Using Contact Form 7 Pro](https://store.zealousweb.com/wordpress-plugins/user-registration-using-contact-form-7-pro)</strong> 65 56 66 = Getting Help With Wordpress =67 68 If you have any questions about this plugin, you can post a thread in our [WordPress.org forum](https://wordpress.org/support/plugin/abandoned-contact-form-7/). Please search existing threads before opening a new one or feel free to contact us at <a href="mailto:[email protected]">[email protected]</a>69 70 We also offer custom Wordpress extension development and Wordpress theme design services to fulfill your e-commerce objectives.71 72 Our professional impassioned Wordpress experts provide profound and customer oriented development of your project within short timeframes.73 74 Thank you for choosing a Plugin developed by <strong>[ZealousWeb](https://www.zealousweb.com)</strong>!75 76 57 == Installation == 77 58 … … 80 61 1. From the dashboard of your site, navigate to Plugins --> Add New. 81 62 2. Select the Upload option and hit "Choose File." 82 3. When the popup appears select the plugin-file-name.zip file from your desktop.63 3. When the popup appears select the track-geolocation-of-users-using-contact-form-7.zip file from your desktop. 83 64 4. Follow the on-screen instructions and wait till the upload completes. 84 65 5. When it's finished, activate the plugin via the prompt. A message will display confirming activation was successful. 85 66 86 == Frequently Asked Questions == 67 == Screenshots == 68 1. Screenshot 'screenshot-1.png' shows all the possible options available for this plugin. 69 2. Screenshot 'screenshot-2.png' shows setting option to be enabled to get Google Map static image in the email. 70 3. Screenshot 'screenshot-3.png' This area shows a detailed graph on the basis of submitted forms. 87 71 88 = Can I send mail notification to every abandoned user?=72 = Getting Help From Our Support System = 89 73 90 Yes, you can send mail notification to either every abandoned user or a particular user. 74 If you have any difficulties while using this Plugin, please feel free to contact us at [email protected] 91 75 92 = Can I Abandon the data of the file type input field of the form? = 76 We also offer custom Wordpress extension development and Wordpress theme design services to fulfil your e-commerce objectives. 93 77 94 No, you can't Abandon the data of the file type input field.78 Our professional impassioned Wordpress experts provide profound and customer-oriented development of your project within short timeframes. 95 79 96 == Screenshots == 97 98 1. This is show list of all Abandoned users. 99 2. This is global option of Edit message body content for Abandoned users email. 100 3. This is option of email to sent single user entry on action button. 101 4. Select specific field to include in tracking data 80 Thank you for choosing a Plugin developed by <strong>[ZealousWeb](https://www.zealousweb.com)</strong>! 102 81 103 82 == Changelog == 104 83 84 = 2.9 = 85 * Advanced Filtering & Search - Quickly locate form submissions with filters for Country, City, and Submission Date. 86 * Custom Webhook Integrations - Automate workflows by sending geolocation data to external platforms. 87 * Multi-Language Compatibility - The plugin automatically translates data. 88 89 = 2.8 = 90 * Minor changes – Doc update. 91 92 = 2.7 = 93 * Minor changes – Doc update. 94 95 = 2.6 = 96 * Fixed PHP warnings. 97 98 = 2.5 = 99 * Remove label in mail tags. 100 * Fixed PHP warnings. 101 102 = 2.4 = 103 * Two Mail issues fixed. 104 105 = 2.3 = 106 * Mail issue fixed. 107 * Document link added. 108 109 = 2.2 = 110 * Backend issue resolved. 111 112 = 2.1 = 113 * escaping added 114 105 115 = 2.0 = 106 * Minor changes - Doc update 107 108 = 1.9 = 109 * Minor changes - Doc update 110 111 = 1.8 = 112 * Minor changes - Hidden 113 114 = 1.7 = 115 * Improved compatibility with WordPress VIP platform by refactoring code to adhere to VIP coding standards. 116 117 = 1.6 = 118 * Add - Here you can select specific field to include in tracking data. 119 120 = 1.5 = 121 * Fixed - Solved Javascript issue 116 * The issues on both the frontend and backend have been resolved. 122 117 123 118 = 1.4 = 124 * Test - Checking with Latest wordPress and Contact form 7, Tested and works fine.119 * Fix Export CSV bug issue solved. 125 120 126 121 = 1.3 = 127 * Fix - Fixed Image issue in mail body of notification mail.122 * Compatibility with new cf7 version 128 123 129 124 = 1.2 = 130 * Fix - Fixed issue of Mobile and Ipad tracking.125 * WordPress 5.6 compatibility 131 126 132 127 = 1.1 = 133 * Fix - Fixed Email body Content issue.128 * Fix - Document Link 134 129 135 130 = 1.0 = 136 *Initial Release131 Initial Release -
abandoned-contact-form-7/trunk/assets/css/admin.css
r2383635 r3374823 1 .cf7af-notification-setting th{ 2 width: 230px !important; 3 } 4 .cf7af-tooltip { 1 @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap'); 2 3 .cfgeo-main-layout { 4 font-family: 'Poppins', sans-serif; 5 } 6 7 .cfgeo-main-layout .form-table th { 8 width: 300px; 9 align-items: center; 10 display: flex; 11 } 12 13 .cfgeo-main-layout .form-table tr { 14 display: flex; 15 align-items: center; 16 } 17 18 .cfgeo-main-layout .form-table td { 19 width: calc(100% - 300px); 20 } 21 .alignleft.actions .button, 22 .alignleft.actions input[type="button"], 23 .alignleft.actions input[type="submit"], 24 .cfgeo-tooltip { 25 vertical-align: middle; 26 } 27 .cfgeo-tooltip { 5 28 display: inline-block; 6 29 width: 18px; … … 11 34 background-image: url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJpbmZvLWNpcmNsZSIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWluZm8tY2lyY2xlIGZhLXctMTYiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjU2IDhDMTE5LjA0MyA4IDggMTE5LjA4MyA4IDI1NmMwIDEzNi45OTcgMTExLjA0MyAyNDggMjQ4IDI0OHMyNDgtMTExLjAwMyAyNDgtMjQ4QzUwNCAxMTkuMDgzIDM5Mi45NTcgOCAyNTYgOHptMCAxMTBjMjMuMTk2IDAgNDIgMTguODA0IDQyIDQycy0xOC44MDQgNDItNDIgNDItNDItMTguODA0LTQyLTQyIDE4LjgwNC00MiA0Mi00MnptNTYgMjU0YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTg4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEydi02NGgtMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMDBoMTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNHoiPjwvcGF0aD48L3N2Zz4=); 12 35 background-repeat: no-repeat; 13 background-size: cover; 14 } 15 16 .cf7af-pointer .wp-pointer-content h3:before { 17 content: '\f348'; 18 } 19 20 .cf7af-settings .postbox { 21 box-sizing: border-box; 22 } 23 24 .cf7af-settings .left-box { 36 background-size: cover 37 } 38 .validation-error-geo{ 39 border-color: red !important; 40 border-width: 2px !important; 41 } 42 .cfgeo-pointer .wp-pointer-content h3:before { 43 content: '\f348' 44 } 45 46 .shortcode-table { 47 width: 75%; 48 margin-top: 15px 49 } 50 51 .shortcode-table tr { 52 border-radius: 3px; 53 padding: 12px 15px; 54 display: flex; 55 justify-content: space-between; 56 margin-bottom: 5px 57 } 58 59 .shortcode-table thead tr { 60 background-color: #95a5a6; 61 font-size: 14px; 62 text-transform: uppercase; 63 letter-spacing: .03em 64 } 65 66 .shortcode-table tbody tr { 67 background-color: #fff; 68 box-shadow: 0 0 9px 0 rgba(0, 0, 0, .1) 69 } 70 71 .shortcode-table td { 72 width: 70% 73 } 74 75 .shortcode-table td+td { 76 width: 30% 77 } 78 79 .shortcode-table tfoot { 80 background-color: #95a5a6 81 } 82 83 .shortcode-table tfoot td { 84 width: 100% 85 } 86 87 .shortcode-table tfoot h3, 88 .shortcode-table tfoot p { 89 margin: 0 90 } 91 92 .shortcode-table input { 93 color: 000; 94 width: 100%; 95 cursor: text 96 } 97 .sp-original-input-container{ 98 display: block; 99 } 100 .sp-colorize-container{ 101 border: none !important; 102 position: absolute; 103 top: 0; 104 left: 1px; 105 height: 100%; 106 overflow: hidden; 107 } 108 .sp-colorize{ 109 height: 100%; 110 } 111 112 /* ======================================== 113 Advanced Filter 114 ======================================== */ 115 .cfgeo-advanced-filters { 116 margin: 10px 0; 117 padding: 15px; 118 background: #f9f9f9; 119 border: 1px solid #ddd; 120 border-radius: 4px; 121 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 122 position: relative; 123 display: flex; 124 flex-wrap: wrap; 125 float: left; 126 } 127 .cfgeo-advanced-filters label { 128 display: inline-block; 129 width: 80px; 130 font-weight: 700; 131 color: #23282d; 132 } 133 /* .cfgeo-advanced-filters input[type="date"], 134 .cfgeo-advanced-filters input[type="text"], 135 .cfgeo-advanced-filters select { 136 border: 1px solid #ddd; 137 border-radius: 3px; 138 padding: 5px 8px; 139 font-size: 13px; 140 } */ 141 .cfgeo-advanced-filters input[type="date"]:focus, 142 .cfgeo-advanced-filters input[type="text"]:focus, 143 .cfgeo-advanced-filters select:focus, 144 .cfgeo-filter-row input:focus, 145 .cfgeo-filter-row select:focus { 146 border-color: #0073aa; 147 box-shadow: 0 0 0 1px #0073aa; 148 outline: 0; 149 } 150 .cfgeo-advanced-filters .button { 151 margin-right: 10px; 152 } 153 .alignleft.actions .button:last-child, 154 .cfgeo-advanced-filters .button:last-child { 155 margin-right: 0; 156 } 157 .cfgeo-filter-row { 158 margin-bottom: 10px; 159 display: flex; 160 flex-wrap: wrap; 161 align-items: center; 162 width: 31%; 163 padding-right: 15px; 164 } 165 166 .cfgeo-filter-row .cfgeo-label { 167 width: 100%; 168 } 169 .cfgeo-filter-row:last-child { 170 margin-bottom: 0; 171 } 172 .cfgeo-filter-buttons { 173 margin-top: 15px; 174 padding-top: 15px; 175 border-top: 1px solid #ddd; 176 width: 100%; 177 } 178 .cfgeo-filter-count { 179 margin-top: 10px; 180 padding: 8px 12px; 181 background: #e7f7ff; 182 border: 1px solid #b3d9ff; 183 border-radius: 3px; 184 font-size: 12px; 185 color: #0073aa; 186 } 187 .cfgeo-loading { 188 display: none; 189 position: absolute; 190 top: 50%; 191 left: 50%; 192 transform: translate(-50%, -50%); 193 z-index: 1000; 194 } 195 .cfgeo-loading .spinner { 196 float: none; 197 margin: 0; 198 } 199 .cfgeo-advanced-filters.loading::after { 200 content: ""; 201 position: absolute; 202 top: 0; 203 left: 0; 204 right: 0; 205 bottom: 0; 206 background: rgba(255, 255, 255, 0.8); 207 z-index: 999; 208 } 209 .cfgeo-filter-row input:disabled, 210 .cfgeo-filter-row select:disabled { 211 opacity: 0.6; 212 cursor: not-allowed; 213 } 214 .alignleft.actions { 215 float: left; 216 margin: 0; 217 padding: 0; 218 } 219 .alignleft.actions .button { 220 margin-right: 5px; 221 } 222 223 224 /* ======================================== 225 WEBHOOK API STYLES 226 ======================================== */ 227 228 .cfgeo-webhook-settings { 229 margin: 20px 0; 230 } 231 232 .cfgeo-webhook-settings h3 { 233 margin-bottom: 10px; 234 color: #23282d; 235 } 236 237 .cfgeo-webhook-settings p { 238 margin-bottom: 20px; 239 color: #666; 240 } 241 242 .cfgeo-webhook-info { 243 background: #f9f9f9; 244 border: 1px solid #e1e1e1; 245 border-radius: 4px; 246 padding: 15px; 247 margin-bottom: 20px; 248 } 249 250 .cfgeo-webhook-info h4 { 251 margin-top: 0; 252 margin-bottom: 10px; 253 color: #23282d; 254 } 255 256 .cfgeo-webhook-info ul { 257 margin: 0; 258 padding-left: 20px; 259 } 260 261 .cfgeo-webhook-info li { 262 margin-bottom: 5px; 263 color: #666; 264 } 265 266 .cfgeo-webhook-test { 267 background: #fff; 268 border: 1px solid #e1e1e1; 269 border-radius: 4px; 270 padding: 15px; 271 margin-bottom: 20px; 272 } 273 274 .cfgeo-webhook-test h4 { 275 margin-top: 0; 276 margin-bottom: 10px; 277 color: #23282d; 278 } 279 280 .cfgeo-webhook-test p { 281 margin-bottom: 15px; 282 color: #666; 283 } 284 285 .cfgeo-webhook-logs { 286 background: #fff; 287 border: 1px solid #e1e1e1; 288 border-radius: 4px; 289 padding: 15px; 290 } 291 292 .cfgeo-webhook-logs h4 { 293 margin-top: 0; 294 margin-bottom: 10px; 295 color: #23282d; 296 } 297 298 .cfgeo-webhook-logs p { 299 margin-bottom: 15px; 300 color: #666; 301 } 302 303 .webhook-log-entry { 25 304 padding: 10px; 26 margin-right: 2%; 305 margin-bottom: 10px; 306 border-radius: 3px; 307 border-left: 4px solid #ddd; 308 } 309 310 .webhook-log-entry.success { 311 background: #f0f8f0; 312 border-left-color: #46b450; 313 } 314 315 .webhook-log-entry.error { 316 background: #fef7f1; 317 border-left-color: #dc3232; 318 } 319 320 .webhook-log-entry strong { 321 color: #23282d; 322 } 323 324 .webhook-log-entry small { 325 color: #666; 326 display: block; 327 margin-top: 5px; 328 } 329 330 #webhook-test-result { 331 margin-top: 10px; 332 } 333 334 #webhook-test-result .notice { 335 margin: 0; 336 } 337 338 /* Clear webhook logs button */ 339 #clear-webhook-logs { 340 margin-bottom: 10px; 341 } 342 343 #clear-webhook-logs:disabled { 344 opacity: 0.6; 345 cursor: not-allowed; 346 } 347 348 /* Webhook Settings Fields */ 349 .cfgeo-webhook-settings textarea { 27 350 width: 100%; 28 margin-bottom: 20px; 29 } 30 31 @media ( min-width: 1285px ) { 32 .cf7af-settings .left-box td { 33 width: 70%; 34 box-sizing: border-box; 351 min-height: 100px; 352 font-family: monospace; 353 } 354 355 .cfgeo-webhook-settings input[type="text"] { 356 width: 100%; 357 } 358 359 .cfgeo-webhook-settings .description { 360 font-style: italic; 361 color: #666; 362 margin-top: 5px; 363 } 364 365 .cfgeo-input-text, 366 .cfgeo-input-date { 367 padding: 10px 16px !important; 368 border: 1px solid #C1CFDE !important; 369 background: #FCFCFC !important; 370 height: 48px !important; 371 box-shadow: none !important; 372 color: #4A494B !important; 373 border-radius: 8px !important; 374 font-weight: 400 !important; 375 font-size: 16px !important; 376 font-family: "Poppins", sans-serif !important; 377 line-height: 1 !important; 378 width: 100% !important; 379 max-width: 500px !important; 380 } 381 382 .cfgeo-main-date { 383 display: flex; 384 align-items: center; 385 width: 100%; 386 } 387 388 .cfgeo-input-text.spectrum.with-add-on { 389 padding-left: 55px !important; 390 } 391 392 .cfgeo-label { 393 font-size: 16px !important; 394 font-weight: 500 !important; 395 font-family: "Poppins", sans-serif !important; 396 line-height: 1.6 !important; 397 color: #285064 !important; 398 padding-bottom: 10px !important; 399 } 400 401 .cfgeo-input-select { 402 line-height: 1.3 !important; 403 background: #FCFCFC url('../../assets/images/arrow.png') no-repeat right 7px top 55% !important; 404 background-size: 16px 10px !important; 405 } 406 407 .cfgeo-submit-btn { 408 padding: 20px 24px !important; 409 border-radius: 4px !important; 410 border: 1px solid #0074A2 !important; 411 background-color: #FFFFFF !important; 412 color: #0074A2 !important; 413 font-size: 16px !important; 414 font-weight: 500 !important; 415 font-family: "Poppins", sans-serif !important; 416 line-height: 1 !important; 417 cursor: pointer !important; 418 } 419 420 .cfgeo-submit-btn:hover { 421 background-color: #0074A2 !important; 422 color: #FFFFFF !important; 423 } 424 425 .cfgeo-checkbox { 426 width: 16px !important; 427 height: 16px !important; 428 border-radius: 4px !important; 429 border: 1px solid #cccccc !important; 430 background: #FFFFFF !important; 431 } 432 433 .cfgeo-textarea { 434 padding: 10px 16px !important; 435 border: 1px solid #C1CFDE !important; 436 background: #FCFCFC !important; 437 height: 200px !important; 438 box-shadow: none !important; 439 color: #4A494B !important; 440 border-radius: 8px !important; 441 font-weight: 400 !important; 442 font-size: 16px !important; 443 font-family: "Poppins", sans-serif !important; 444 line-height: 1.4 !important; 445 width: 100% !important; 446 max-width: 500px !important; 447 } 448 449 .cfgeo-main-layout .nav-tab-wrapper { 450 border-bottom: 1px solid #c3c4c7 !important; 451 margin: 0 !important; 452 padding-top: 9px !important; 453 padding-bottom: 0 !important; 454 line-height: inherit !important; 455 display: flex; 456 flex-wrap: wrap; 457 } 458 459 .cfgeo-main-layout .nav-tab-wrapper .nav-tab { 460 background: none !important; 461 box-shadow: none !important; 462 border: none !important; 463 color: #285064 !important; 464 font-weight: 500 !important; 465 font-size: 16px !important; 466 font-family: "Poppins", sans-serif !important; 467 padding: 5px 5px 15px 5px !important; 468 margin-right: 12px !important; 469 margin-left: 0 !important; 470 } 471 472 473 .cfgeo-main-layout .nav-tab-wrapper .nav-tab-active { 474 border-bottom: 3px solid #11AAB4 !important; 475 } 476 477 478 @media (max-width: 720px) and (orientation: portrait) { 479 .cfgeo-main-layout .nav-tab-wrapper .nav-tab { 480 margin: 0 !important; 481 padding: 9px !important; 482 } 483 .cfgeo-main-layout .form-table td, 484 .cfgeo-main-layout .form-table th { 485 width: 100% !important; 35 486 } 36 } 37 38 @media ( min-width: 782px ) and ( max-width: 1284px ) { 39 .cf7af-settings .left-box td { 40 width: 60%; 41 box-sizing: border-box; 487 .cfgeo-main-layout .form-table tr { 488 flex-wrap: wrap; 42 489 } 43 } 44 45 .cf7af-settings .left-box td input { 46 box-sizing: border-box; 47 } 48 49 #contact-form-editor .cf7af-settings .form-table th { 50 width: auto !important; 51 } 52 53 .tooltip-table .postbox { 54 box-sizing: border-box; 55 } 56 57 .tooltip-table .left-box { 58 padding: 10px; 59 margin-right: 2%; 60 width: 100%; 61 margin-bottom: 20px; 62 } 63 64 @media ( min-width: 1285px ) { 65 .tooltip-table .left-box td { 66 width: 70%; 67 box-sizing: border-box; 490 .cfgeo-filter-row { 491 width: 100%; 492 padding-right: 0; 68 493 } 69 494 } 70 71 @media ( min-width: 782px ) and ( max-width: 1284px ) {72 .tooltip-table .left-box td {73 width: 60%;74 box-sizing: border-box;75 }76 }77 78 .tooltip-table .left-box td input {79 box-sizing: border-box;80 }81 82 .tooltip-table .form-table th {83 width: auto !important;84 } -
abandoned-contact-form-7/trunk/assets/css/admin.min.css
r2383635 r3374823 1 . cf7af-notification-setting th{width:230px!important}.cf7af-tooltip{display:inline-block;width:18px;height:18px;vertical-align:middle;border-radius:100%;margin-left:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJpbmZvLWNpcmNsZSIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWluZm8tY2lyY2xlIGZhLXctMTYiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjU2IDhDMTE5LjA0MyA4IDggMTE5LjA4MyA4IDI1NmMwIDEzNi45OTcgMTExLjA0MyAyNDggMjQ4IDI0OHMyNDgtMTExLjAwMyAyNDgtMjQ4QzUwNCAxMTkuMDgzIDM5Mi45NTcgOCAyNTYgOHptMCAxMTBjMjMuMTk2IDAgNDIgMTguODA0IDQyIDQycy0xOC44MDQgNDItNDIgNDItNDItMTguODA0LTQyLTQyIDE4LjgwNC00MiA0Mi00MnptNTYgMjU0YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTg4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEydi02NGgtMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMDBoMTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNHoiPjwvcGF0aD48L3N2Zz4=);background-repeat:no-repeat;background-size:cover}.cf7af-pointer .wp-pointer-content h3:before{content:'\f348'}.cf7af-settings .postbox{box-sizing:border-box}.cf7af-settings .left-box{padding:10px;margin-right:2%;width:100%;margin-bottom:20px}@media (min-width:1285px){.cf7af-settings .left-box td{width:70%;box-sizing:border-box}}@media (min-width:782px) and (max-width:1284px){.cf7af-settings .left-box td{width:60%;box-sizing:border-box}}.cf7af-settings .left-box td input{box-sizing:border-box}#contact-form-editor .cf7af-settings .form-table th{width:auto!important}.tooltip-table .postbox{box-sizing:border-box}.tooltip-table .left-box{padding:10px;margin-right:2%;width:100%;margin-bottom:20px}@media (min-width:1285px){.tooltip-table .left-box td{width:70%;box-sizing:border-box}}@media (min-width:782px) and (max-width:1284px){.tooltip-table .left-box td{width:60%;box-sizing:border-box}}.tooltip-table .left-box td input{box-sizing:border-box}.tooltip-table .form-table th{width:auto!important}1 .alignleft.actions .button,.alignleft.actions input[type=button],.alignleft.actions input[type=submit],.cfgeo-tooltip{vertical-align:middle}.cfgeo-tooltip{display:inline-block;width:18px;height:18px;border-radius:100%;margin-left:10px;background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJpbmZvLWNpcmNsZSIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLWluZm8tY2lyY2xlIGZhLXctMTYiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjU2IDhDMTE5LjA0MyA4IDggMTE5LjA4MyA4IDI1NmMwIDEzNi45OTcgMTExLjA0MyAyNDggMjQ4IDI0OHMyNDgtMTExLjAwMyAyNDgtMjQ4QzUwNCAxMTkuMDgzIDM5Mi45NTcgOCAyNTYgOHptMCAxMTBjMjMuMTk2IDAgNDIgMTguODA0IDQyIDQycy0xOC44MDQgNDItNDIgNDItNDItMTguODA0LTQyLTQyIDE4LjgwNC00MiA0Mi00MnptNTYgMjU0YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTg4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEydi02NGgtMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMDBoMTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNHoiPjwvcGF0aD48L3N2Zz4=);background-repeat:no-repeat;background-size:cover}.validation-error-geo{border-color:red!important;border-width:2px!important}.cfgeo-pointer .wp-pointer-content h3:before{content:'\f348'}.shortcode-table{width:75%;margin-top:15px}.shortcode-table tr{border-radius:3px;padding:12px 15px;display:flex;justify-content:space-between;margin-bottom:5px}.shortcode-table thead tr{background-color:#95a5a6;font-size:14px;text-transform:uppercase;letter-spacing:.03em}.shortcode-table tbody tr{background-color:#fff;box-shadow:0 0 9px 0 rgba(0,0,0,.1)}.shortcode-table td{width:70%}.shortcode-table td+td{width:30%}.shortcode-table tfoot{background-color:#95a5a6}.cfgeo-filter-row label,.shortcode-table tfoot td{width:100%}.shortcode-table tfoot h3,.shortcode-table tfoot p{margin:0}.shortcode-table input{color:000;width:100%;cursor:text}.sp-original-input-container{display:block}.sp-colorize-container{border:none!important;position:absolute;top:0;left:1px;height:100%;overflow:hidden}.sp-colorize{height:100%}.cfgeo-advanced-filters{margin:10px 0;padding:15px;background:#f9f9f9;border:1px solid #ddd;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.1);position:relative;display:flex;flex-wrap:wrap;float:left}.cfgeo-advanced-filters label{display:inline-block;width:80px;font-weight:700;color:#23282d}.cfgeo-advanced-filters input[type=date],.cfgeo-advanced-filters input[type=text],.cfgeo-advanced-filters select{border:1px solid #ddd;border-radius:3px;padding:5px 8px;font-size:13px}.cfgeo-advanced-filters input[type=date]:focus,.cfgeo-advanced-filters input[type=text]:focus,.cfgeo-advanced-filters select:focus,.cfgeo-filter-row input:focus,.cfgeo-filter-row select:focus{border-color:#0073aa;box-shadow:0 0 0 1px #0073aa;outline:0}.cfgeo-advanced-filters .button{margin-right:10px}.alignleft.actions .button:last-child,.cfgeo-advanced-filters .button:last-child{margin-right:0}.cfgeo-filter-row{margin-bottom:10px;display:flex;flex-wrap:wrap}.cfgeo-filter-row:last-child{margin-bottom:0}.cfgeo-filter-buttons{margin-top:15px;padding-top:15px;border-top:1px solid #ddd;width:100%}.cfgeo-filter-count{margin-top:10px;padding:8px 12px;background:#e7f7ff;border:1px solid #b3d9ff;border-radius:3px;font-size:12px;color:#0073aa}.cfgeo-loading{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000}.cfgeo-loading .spinner{float:none;margin:0}.cfgeo-advanced-filters.loading::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.8);z-index:999}.cfgeo-filter-row input:disabled,.cfgeo-filter-row select:disabled{opacity:.6;cursor:not-allowed}.alignleft.actions{float:left;margin:0;padding:0}.alignleft.actions .button{margin-right:5px}.cfgeo-webhook-settings{margin:20px 0}.cfgeo-webhook-settings h3{margin-bottom:10px;color:#23282d}.cfgeo-webhook-settings p{margin-bottom:20px;color:#666}.cfgeo-webhook-info{background:#f9f9f9;border:1px solid #e1e1e1;border-radius:4px;padding:15px;margin-bottom:20px}.cfgeo-webhook-info h4{margin-top:0;margin-bottom:10px;color:#23282d}.cfgeo-webhook-info ul{margin:0;padding-left:20px}.cfgeo-webhook-info li{margin-bottom:5px;color:#666}.cfgeo-webhook-test{background:#fff;border:1px solid #e1e1e1;border-radius:4px;padding:15px;margin-bottom:20px}.cfgeo-webhook-test h4{margin-top:0;margin-bottom:10px;color:#23282d}.cfgeo-webhook-test p{margin-bottom:15px;color:#666}.cfgeo-webhook-logs{background:#fff;border:1px solid #e1e1e1;border-radius:4px;padding:15px}.cfgeo-webhook-logs h4{margin-top:0;margin-bottom:10px;color:#23282d}.cfgeo-webhook-logs p{margin-bottom:15px;color:#666}.webhook-log-entry{padding:10px;margin-bottom:10px;border-radius:3px;border-left:4px solid #ddd}.webhook-log-entry.success{background:#f0f8f0;border-left-color:#46b450}.webhook-log-entry.error{background:#fef7f1;border-left-color:#dc3232}.webhook-log-entry strong{color:#23282d}.webhook-log-entry small{color:#666;display:block;margin-top:5px}#webhook-test-result{margin-top:10px}#webhook-test-result .notice{margin:0}#clear-webhook-logs{margin-bottom:10px}#clear-webhook-logs:disabled{opacity:.6;cursor:not-allowed}.cfgeo-webhook-settings textarea{width:100%;min-height:100px;font-family:monospace}.cfgeo-webhook-settings input[type="text"]{width:100%}.cfgeo-webhook-settings .description{font-style:italic;color:#666;margin-top:5px} -
abandoned-contact-form-7/trunk/assets/js/admin.js
r2847286 r3374823 3 3 4 4 jQuery(document).ready( function($) { 5 6 jQuery( '#cf7af-enable-abandoned-pointer' ).on( 'hover click', function() { 7 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 8 jQuery( '#cf7af-enable-abandoned-pointer' ).pointer({ 9 pointerClass: 'wp-pointer cf7af-pointer', 10 content: translate_string_cf7af.cf7af_enable_abandoned, 11 position: 'left center', 12 } ).pointer('open'); 13 }); 14 15 jQuery( '#cf7af-abandoned-email-pointer' ).on( 'hover click', function() { 16 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 17 jQuery( '#cf7af-abandoned-email-pointer' ).pointer({ 18 pointerClass: 'wp-pointer cf7af-pointer', 19 content: translate_string_cf7af.cf7af_abandoned_email, 20 position: 'left center', 21 } ).pointer('open'); 22 }); 23 24 jQuery( '#cf7af-abandoned-specific-field-pointer' ).on( 'hover click', function() { 25 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 26 jQuery( '#cf7af-abandoned-specific-field-pointer' ).pointer({ 27 pointerClass: 'wp-pointer cf7af-pointer', 28 content: translate_string_cf7af.cf7af_abandoned_specific_field, 29 position: 'left center', 30 } ).pointer('open'); 31 }); 5 // Debug: Check if cfgeo_ajax is available 6 console.log('CFGEO Debug: cfgeo_ajax available:', typeof cfgeo_ajax !== 'undefined'); 7 if (typeof cfgeo_ajax !== 'undefined') { 8 console.log('CFGEO Debug: cfgeo_ajax data:', cfgeo_ajax); 9 } else { 10 console.log('CFGEO Debug: cfgeo_ajax not available, some features may be limited'); 11 } 32 12 33 jQuery( '#cf7af-subject-pointer' ).on( 'hover click', function() { 34 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 35 jQuery( '#cf7af-subject-pointer' ).pointer({ 36 pointerClass: 'wp-pointer cf7af-pointer', 37 content: translate_string_cf7af.cf7af_subject, 38 position: 'left center', 39 } ).pointer('open'); 40 }); 41 42 jQuery( '#cf7af-email-body-pointer' ).on( 'hover click', function() { 43 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 44 jQuery( '#cf7af-email-body-pointer' ).pointer({ 45 pointerClass: 'wp-pointer cf7af-pointer', 46 content: translate_string_cf7af.cf7af_email_body, 47 position: 'left center', 48 } ).pointer('open'); 49 }); 50 51 jQuery( '#abandoned-email-address-pointer' ).on( 'hover click', function() { 52 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 53 jQuery( '#abandoned-email-address-pointer' ).pointer({ 54 pointerClass: 'wp-pointer cf7af-pointer', 55 content: translate_string_cf7af.abandoned_email_address, 56 position: 'left center', 57 } ).pointer('open'); 58 }); 59 60 jQuery( '#abandoned-from-name-pointer' ).on( 'hover click', function() { 61 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 62 jQuery( '#abandoned-from-name-pointer' ).pointer({ 63 pointerClass: 'wp-pointer cf7af-pointer', 64 content: translate_string_cf7af.abandoned_from_name, 65 position: 'left center', 66 } ).pointer('open'); 67 }); 68 69 jQuery( '#abandoned-from-email-address-pointer' ).on( 'hover click', function() { 70 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 71 jQuery( '#abandoned-from-email-address-pointer' ).pointer({ 72 pointerClass: 'wp-pointer cf7af-pointer', 73 content: translate_string_cf7af.abandoned_from_email_address, 74 position: 'left center', 75 } ).pointer('open'); 76 }); 77 78 jQuery( '#abandoned-subject-pointer' ).on( 'hover click', function() { 79 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 80 jQuery( '#abandoned-subject-pointer' ).pointer({ 81 pointerClass: 'wp-pointer cf7af-pointer', 82 content: translate_string_cf7af.abandoned_subject, 83 position: 'left center', 84 } ).pointer('open'); 85 }); 86 87 jQuery( '#abandoned-email-body-pointer' ).on( 'hover click', function() { 88 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 89 jQuery( '#abandoned-email-body-pointer' ).pointer({ 90 pointerClass: 'wp-pointer cf7af-pointer', 91 content: translate_string_cf7af.abandoned_email_body, 92 position: 'left center', 93 } ).pointer('open'); 94 }); 95 96 jQuery( '#cf7af-from-email-pointer' ).on( 'hover click', function() { 97 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 98 jQuery( '#cf7af-from-email-pointer' ).pointer({ 99 pointerClass: 'wp-pointer cf7af-pointer', 100 content: translate_string_cf7af.cf7af_from_email, 101 position: 'left center', 102 } ).pointer('open'); 103 }); 104 105 jQuery( '#cf7af-from-name-pointer' ).on( 'hover click', function() { 106 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 107 jQuery( '#cf7af-from-name-pointer' ).pointer({ 108 pointerClass: 'wp-pointer cf7af-pointer', 109 content: translate_string_cf7af.cf7af_from_name, 110 position: 'left center', 111 } ).pointer('open'); 112 }); 113 13 // Debug: Check if we're on the CFGEO page 14 console.log('CFGEO Debug: Advanced filters container found:', $('.cfgeo-advanced-filters').length); 15 // Initialize spectrum color picker if available 16 if (jQuery.fn.spectrum) { 17 jQuery('#cfgeo_color_picker').spectrum({ 18 type: "component", 19 showPalette: false, 20 showSelectionPalette: true, 21 togglePaletteOnly: true, 22 hideAfterPaletteSelect: true, 23 showAlpha: false, 24 change: function(color) { 25 if(color != null){ 26 var col = color.toHexString(); 27 if(col.length == 7){ 28 jQuery(".cfgeo_color_picker").removeClass('validation-error-geo'); 29 } 30 }else{ 31 jQuery(".cfgeo_color_picker").addClass('validation-error-geo'); 32 return false; 33 } 34 } 35 }); 36 } else { 37 console.log('CFGEO Debug: Spectrum plugin not available, skipping color picker initialization'); 38 } 39 40 jQuery('.setting-geolocation input#submit').click( function() { 41 // Only validate color picker if spectrum is available and color picker exists on current tab 42 if (jQuery.fn.spectrum && jQuery(".cfgeo_color_picker").length > 0) { 43 var color_val = jQuery(".cfgeo_color_picker").val(); 44 if(jQuery( ".cfgeo_color_picker" ).hasClass( "validation-error-geo" ) || color_val == null || color_val == ''){ 45 jQuery(".cfgeo_color_picker").addClass('validation-error-geo'); 46 return false; 47 }else if(color_val.length != 7){ 48 jQuery(".cfgeo_color_picker").addClass('validation-error-geo'); 49 return false; 50 } 51 } 52 }); 53 54 jQuery("#form-id-graph").change(function(){ 55 window.location= translate_string_geo.form_graph_url + this.value; 56 }); 57 58 jQuery( '#cfgeo-ipstack' ).on( 'mouseenter click', function() { 59 60 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 61 jQuery( '#cfgeo-ipstack' ).pointer({ 62 pointerClass: 'wp-pointer cfgeo-pointer', 63 content: translate_string_geo.ipstack, 64 position: 'left center', 65 } ).pointer('open'); 66 }); 67 68 jQuery( '#cfgeo-google' ).on( 'mouseenter click', function() { 69 70 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 71 jQuery( '#cfgeo-google' ).pointer({ 72 pointerClass: 'wp-pointer cfgeo-pointer', 73 content: translate_string_geo.google, 74 position: 'left center', 75 } ).pointer('open'); 76 }); 77 78 jQuery( '#cfgeo-debug' ).on( 'mouseenter click', function() { 79 80 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 81 jQuery( '#cfgeo-debug' ).pointer({ 82 pointerClass: 'wp-pointer cfgeo-pointer', 83 content: translate_string_geo.debug, 84 position: 'left center', 85 } ).pointer('open'); 86 }); 87 88 jQuery( '#cfgeo-color-graph' ).on( 'mouseenter click', function() { 89 90 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 91 jQuery( '#cfgeo-color-graph' ).pointer({ 92 pointerClass: 'wp-pointer cfgeo-pointer', 93 content: translate_string_geo.graphcolor, 94 position: 'left center', 95 } ).pointer('open'); 96 }); 97 98 // Webhook tooltips 99 jQuery( '#cfgeo-webhook-enabled' ).on( 'mouseenter click', function() { 100 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 101 jQuery( '#cfgeo-webhook-enabled' ).pointer({ 102 pointerClass: 'wp-pointer cfgeo-pointer', 103 content: translate_string_geo.webhook_enabled, 104 position: 'left center', 105 } ).pointer('open'); 106 }); 107 108 jQuery( '#cfgeo-webhook-urls' ).on( 'mouseenter click', function() { 109 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 110 jQuery( '#cfgeo-webhook-urls' ).pointer({ 111 pointerClass: 'wp-pointer cfgeo-pointer', 112 content: translate_string_geo.webhook_urls, 113 position: 'left center', 114 } ).pointer('open'); 115 }); 116 117 jQuery( '#cfgeo-webhook-secret' ).on( 'mouseenter click', function() { 118 jQuery( 'body .wp-pointer-buttons .close' ).trigger( 'click' ); 119 jQuery( '#cfgeo-webhook-secret' ).pointer({ 120 pointerClass: 'wp-pointer cfgeo-pointer', 121 content: translate_string_geo.webhook_secret, 122 position: 'left center', 123 } ).pointer('open'); 124 }); 125 126 127 128 129 130 // Advanced Filter JavaScript for CFGEO Admin Panel 131 // Handles AJAX filtering, debouncing, pagination, and sorting 132 133 var filterTimeout; 134 var isLoading = false; 135 136 // Function to perform AJAX filtering 137 function performAjaxFilter() { 138 console.log('performAjaxFilter called'); 139 if (isLoading) { 140 console.log('Already loading, skipping'); 141 return; 142 } 143 144 // Check if we're on the correct page 145 if (!$('.cfgeo-advanced-filters').length) { 146 console.log('Not on CFGEO page, skipping'); 147 return; 148 } 149 150 isLoading = true; 151 152 // Show loading states 153 $('.cfgeo-advanced-filters').addClass('loading'); 154 $('.cfgeo-loading').show(); 155 $('.cfgeo-filter-row input, .cfgeo-filter-row select').prop('disabled', true); 156 $('.wp-list-table tbody').html('<tr><td colspan="8" style="text-align: center; padding: 20px;"><div class="spinner is-active"></div> Loading...</td></tr>'); 157 158 var filterData = { 159 action: 'cfgeo_filter_submissions', 160 nonce: cfgeo_ajax.nonce, 161 form_id: $('#form-id').val() || 'all', 162 country_filter: $('#country-filter').val() || '', 163 city_filter: $('#city-filter').val() || '', 164 date_from: $('#date-from').val() || '', 165 date_to: $('#date-to').val() || '', 166 search_term: $('#search-term').val() || '', 167 orderby: $('input[name="orderby"]').val() || 'date', 168 order: $('input[name="order"]').val() || 'DESC', 169 paged: $('input[name="paged"]').val() || '1' 170 }; 171 172 console.log('Sending AJAX request with data:', filterData); 173 $.ajax({ 174 url: ajaxurl, 175 type: 'POST', 176 data: filterData, 177 success: function(response) { 178 if (response.success) { 179 // Update the table body 180 $('.wp-list-table tbody').html(response.data.html); 181 182 // Update pagination 183 if (response.data.pagination) { 184 $('.tablenav-pages').html(response.data.pagination); 185 } else { 186 $('.tablenav-pages').html(''); 187 } 188 189 // Update filter count 190 $('.cfgeo-filter-count').remove(); 191 if (response.data.total > 0) { 192 var filterInfo = $('<div class="cfgeo-filter-count">Showing ' + response.data.total + ' submission(s)</div>'); 193 $('.cfgeo-advanced-filters').append(filterInfo); 194 } else { 195 var filterInfo = $('<div class="cfgeo-filter-count">No submissions found matching your criteria</div>'); 196 $('.cfgeo-advanced-filters').append(filterInfo); 197 } 198 199 // Update URL without page reload 200 var newUrl = new URL(window.location); 201 newUrl.searchParams.set('form-id', filterData.form_id); 202 newUrl.searchParams.set('country-filter', filterData.country_filter); 203 newUrl.searchParams.set('city-filter', filterData.city_filter); 204 newUrl.searchParams.set('date-from', filterData.date_from); 205 newUrl.searchParams.set('date-to', filterData.date_to); 206 newUrl.searchParams.set('search-term', filterData.search_term); 207 newUrl.searchParams.set('orderby', filterData.orderby); 208 newUrl.searchParams.set('order', filterData.order); 209 newUrl.searchParams.set('paged', filterData.paged); 210 211 window.history.pushState({}, '', newUrl); 212 } else { 213 alert('Error: ' + response.data); 214 } 215 }, 216 error: function(xhr, status, error) { 217 console.log('AJAX Error:', xhr.responseText); 218 alert(cfgeo_ajax.error_message); 219 }, 220 complete: function() { 221 isLoading = false; 222 $('.cfgeo-advanced-filters').removeClass('loading'); 223 $('.cfgeo-loading').hide(); 224 $('.cfgeo-filter-row input, .cfgeo-filter-row select').prop('disabled', false); 225 } 226 }); 227 } 228 229 // Only initialize AJAX functionality if we're on the CFGEO page 230 if ($('.cfgeo-advanced-filters').length && typeof cfgeo_ajax !== 'undefined') { 231 console.log('CFGEO Debug: Initializing AJAX functionality'); 232 233 // Real-time filtering with debounce 234 $('#form-id, #country-filter, #city-filter, #date-from, #date-to').on('change', function() { 235 console.log('Filter changed:', $(this).attr('id'), $(this).val()); 236 clearTimeout(filterTimeout); 237 filterTimeout = setTimeout(performAjaxFilter, 300); 238 }); 239 240 // Search with debounce 241 $('#search-term').on('input', function() { 242 console.log('Search input:', $(this).val()); 243 clearTimeout(filterTimeout); 244 filterTimeout = setTimeout(performAjaxFilter, 500); 245 }); 246 247 // Search with Enter key 248 $('#search-term').on('keypress', function(e) { 249 if (e.which === 13) { 250 clearTimeout(filterTimeout); 251 performAjaxFilter(); 252 } 253 }); 254 255 // Clear filters functionality 256 $('.cfgeo-clear-filters').on('click', function(e) { 257 e.preventDefault(); 258 259 // Clear all filter values 260 $('#form-id').val('all'); 261 $('#country-filter').val(''); 262 $('#city-filter').val(''); 263 $('#date-from').val(''); 264 $('#date-to').val(''); 265 $('#search-term').val(''); 266 $('input[name="orderby"]').val('date'); 267 $('input[name="order"]').val('DESC'); 268 $('input[name="paged"]').val('1'); 269 270 // Perform filter 271 performAjaxFilter(); 272 }); 273 274 // Date validation 275 $('#date-from, #date-to').on('change', function() { 276 var fromDate = $('#date-from').val(); 277 var toDate = $('#date-to').val(); 278 279 if (fromDate && toDate && fromDate > toDate) { 280 alert(cfgeo_ajax.date_error_message); 281 $(this).val(''); 282 } 283 }); 284 285 // Handle pagination clicks 286 $(document).on('click', '.tablenav-pages a', function(e) { 287 e.preventDefault(); 288 var paged = $(this).data('page') || '1'; 289 290 $('input[name="paged"]').val(paged); 291 performAjaxFilter(); 292 }); 293 294 // Handle sorting clicks 295 $(document).on('click', '.wp-list-table th.sortable a, .wp-list-table th.sorted a', function(e) { 296 e.preventDefault(); 297 var href = $(this).attr('href'); 298 var url = new URL(href); 299 var orderby = url.searchParams.get('orderby') || 'date'; 300 var order = url.searchParams.get('order') || 'DESC'; 301 302 $('input[name="orderby"]').val(orderby); 303 $('input[name="order"]').val(order); 304 $('input[name="paged"]').val('1'); // Reset to first page when sorting 305 performAjaxFilter(); 306 }); 307 308 // Initial filter count display 309 var totalPosts = $('.wp-list-table tbody tr').length; 310 if (totalPosts > 0) { 311 var filterInfo = $('<div class="cfgeo-filter-count">Showing ' + totalPosts + ' submission(s)</div>'); 312 $('.cfgeo-advanced-filters').append(filterInfo); 313 } 314 } else { 315 console.log('CFGEO Debug: Not on CFGEO page or cfgeo_ajax not available, skipping AJAX initialization'); 316 } 317 318 // Webhook API functionality 319 if ($('#test-webhook').length && typeof cfgeo_ajax !== 'undefined') { 320 $('#test-webhook').on('click', function() { 321 var button = $(this); 322 var originalText = button.text(); 323 324 button.prop('disabled', true).text('Testing...'); 325 $('#webhook-test-result').hide(); 326 327 $.ajax({ 328 url: ajaxurl, 329 type: 'POST', 330 data: { 331 action: 'cfgeo_test_webhook', 332 nonce: cfgeo_ajax.webhook_test_nonce || cfgeo_ajax.nonce 333 }, 334 success: function(response) { 335 if (response && response.success) { 336 var message = response.data && response.data.message ? response.data.message : 'Test completed successfully!'; 337 $('#webhook-test-result').html( 338 '<div class="notice notice-success"><p>' + message + '</p></div>' 339 ).show(); 340 } else { 341 var message = response && response.data && response.data.message ? response.data.message : 'Test failed. Please try again.'; 342 $('#webhook-test-result').html( 343 '<div class="notice notice-error"><p>' + message + '</p></div>' 344 ).show(); 345 } 346 }, 347 error: function() { 348 $('#webhook-test-result').html( 349 '<div class="notice notice-error"><p>An error occurred while testing the webhook.</p></div>' 350 ).show(); 351 }, 352 complete: function() { 353 button.prop('disabled', false).text(originalText); 354 } 355 }); 356 }); 357 } 358 359 // Load webhook logs 360 if ($('#webhook-logs').length && typeof cfgeo_ajax !== 'undefined') { 361 loadWebhookLogs(); 362 } 363 364 // Clear webhook logs functionality 365 if ($('#clear-webhook-logs').length && typeof cfgeo_ajax !== 'undefined') { 366 $('#clear-webhook-logs').on('click', function() { 367 if (confirm('Are you sure you want to clear all webhook logs? This action cannot be undone.')) { 368 var button = $(this); 369 var originalText = button.text(); 370 371 button.prop('disabled', true).text('Clearing...'); 372 373 $.ajax({ 374 url: ajaxurl, 375 type: 'POST', 376 data: { 377 action: 'cfgeo_clear_webhook_logs', 378 nonce: cfgeo_ajax.webhook_logs_nonce || cfgeo_ajax.nonce 379 }, 380 success: function(response) { 381 if (response && response.success) { 382 // Clear the logs display 383 $('#webhook-logs').html('<p class="description">No webhook logs available yet.</p>'); 384 385 // Disable the clear button since logs are now empty 386 $('#clear-webhook-logs').prop('disabled', true); 387 388 // Show success message 389 var message = response.data && response.data.message ? response.data.message : 'Webhook logs cleared successfully.'; 390 $('#webhook-logs').before( 391 '<div class="notice notice-success" style="margin-bottom: 10px;"><p>' + message + '</p></div>' 392 ); 393 394 // Remove the notice after 3 seconds 395 setTimeout(function() { 396 $('#webhook-logs').prev('.notice').fadeOut(); 397 }, 3000); 398 } else { 399 var message = response && response.data && response.data.message ? response.data.message : 'Failed to clear webhook logs.'; 400 $('#webhook-logs').before( 401 '<div class="notice notice-error" style="margin-bottom: 10px;"><p>' + message + '</p></div>' 402 ); 403 } 404 }, 405 error: function() { 406 $('#webhook-logs').before( 407 '<div class="notice notice-error" style="margin-bottom: 10px;"><p>An error occurred while clearing webhook logs.</p></div>' 408 ); 409 }, 410 complete: function() { 411 button.prop('disabled', false).text(originalText); 412 } 413 }); 414 } 415 }); 416 } 417 418 function loadWebhookLogs() { 419 if (typeof cfgeo_ajax === 'undefined') { 420 $('#webhook-logs').html('<p class="description">Unable to load webhook logs - AJAX not available.</p>'); 421 $('#clear-webhook-logs').prop('disabled', true); 422 return; 423 } 424 425 $.ajax({ 426 url: ajaxurl, 427 type: 'POST', 428 data: { 429 action: 'cfgeo_get_webhook_logs', 430 nonce: cfgeo_ajax.webhook_logs_nonce || cfgeo_ajax.nonce 431 }, 432 success: function(response) { 433 if (response && response.success && response.data && response.data.logs) { 434 var logsHtml = ''; 435 if (response.data.logs.length > 0) { 436 // Enable clear button when logs exist 437 $('#clear-webhook-logs').prop('disabled', false); 438 439 response.data.logs.forEach(function(log) { 440 var statusClass = log.success ? 'success' : 'error'; 441 var statusText = log.success ? 'Success' : 'Failed'; 442 logsHtml += '<div class="webhook-log-entry ' + statusClass + '">'; 443 logsHtml += '<strong>' + statusText + '</strong> - ' + (log.timestamp || 'Unknown time') + '<br>'; 444 logsHtml += '<small>URL: ' + (log.url || 'Unknown URL') + '</small><br>'; 445 logsHtml += '<small>Response: ' + (log.response_code || 'Unknown') + ' - ' + (log.response_message || 'No message') + '</small>'; 446 logsHtml += '</div>'; 447 }); 448 } else { 449 // Disable clear button when no logs exist 450 $('#clear-webhook-logs').prop('disabled', true); 451 logsHtml = '<p class="description">No webhook logs available yet.</p>'; 452 } 453 $('#webhook-logs').html(logsHtml); 454 } else { 455 $('#webhook-logs').html('<p class="description">Unable to load webhook logs - invalid response format.</p>'); 456 $('#clear-webhook-logs').prop('disabled', true); 457 } 458 }, 459 error: function() { 460 $('#webhook-logs').html('<p class="description">Unable to load webhook logs.</p>'); 461 $('#clear-webhook-logs').prop('disabled', true); 462 } 463 }); 464 } 114 465 }); 115 466 -
abandoned-contact-form-7/trunk/assets/js/admin.min.js
r2847286 r3374823 1 !function(e){"use strict";jQuery(document).ready( function(e){jQuery("#cf7af-enable-abandoned-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-enable-abandoned-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_enable_abandoned,position:"left center"}).pointer("open")}),jQuery("#cf7af-abandoned-email-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-abandoned-email-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_abandoned_email,position:"left center"}).pointer("open")}),jQuery("#cf7af-abandoned-specific-field-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-abandoned-specific-field-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_abandoned_specific_field,position:"left center"}).pointer("open")}),jQuery("#cf7af-subject-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-subject-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_subject,position:"left center"}).pointer("open")}),jQuery("#cf7af-email-body-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-email-body-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_email_body,position:"left center"}).pointer("open")}),jQuery("#abandoned-email-address-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-email-address-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_email_address,position:"left center"}).pointer("open")}),jQuery("#abandoned-from-name-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-from-name-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_from_name,position:"left center"}).pointer("open")}),jQuery("#abandoned-from-email-address-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-from-email-address-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_from_email_address,position:"left center"}).pointer("open")}),jQuery("#abandoned-subject-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-subject-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_subject,position:"left center"}).pointer("open")}),jQuery("#abandoned-email-body-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#abandoned-email-body-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.abandoned_email_body,position:"left center"}).pointer("open")}),jQuery("#cf7af-from-email-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-from-email-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_from_email,position:"left center"}).pointer("open")}),jQuery("#cf7af-from-name-pointer").on("hover click",function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cf7af-from-name-pointer").pointer({pointerClass:"wp-pointer cf7af-pointer",content:translate_string_cf7af.cf7af_from_name,position:"left center"}).pointer("open")})})}(jQuery);1 !function(e){"use strict";jQuery(document).ready((function(e){var o;console.log("CFGEO Debug: cfgeo_ajax available:","undefined"!=typeof cfgeo_ajax),"undefined"!=typeof cfgeo_ajax?console.log("CFGEO Debug: cfgeo_ajax data:",cfgeo_ajax):console.log("CFGEO Debug: cfgeo_ajax not available, some features may be limited"),console.log("CFGEO Debug: Advanced filters container found:",e(".cfgeo-advanced-filters").length),jQuery.fn.spectrum?jQuery("#cfgeo_color_picker").spectrum({type:"component",showPalette:!1,showSelectionPalette:!0,togglePaletteOnly:!0,hideAfterPaletteSelect:!0,showAlpha:!1,change:function(e){if(null==e)return jQuery(".cfgeo_color_picker").addClass("validation-error-geo"),!1;7==e.toHexString().length&&jQuery(".cfgeo_color_picker").removeClass("validation-error-geo")}}):console.log("CFGEO Debug: Spectrum plugin not available, skipping color picker initialization"),jQuery(".setting-geolocation input#submit").click((function(){if(jQuery.fn.spectrum&&jQuery(".cfgeo_color_picker").length>0){var e=jQuery(".cfgeo_color_picker").val();if(jQuery(".cfgeo_color_picker").hasClass("validation-error-geo")||null==e||""==e)return jQuery(".cfgeo_color_picker").addClass("validation-error-geo"),!1;if(7!=e.length)return jQuery(".cfgeo_color_picker").addClass("validation-error-geo"),!1}})),jQuery("#form-id-graph").change((function(){window.location=translate_string_geo.form_graph_url+this.value})),jQuery("#cfgeo-ipstack").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-ipstack").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.ipstack,position:"left center"}).pointer("open")})),jQuery("#cfgeo-google").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-google").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.google,position:"left center"}).pointer("open")})),jQuery("#cfgeo-debug").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-debug").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.debug,position:"left center"}).pointer("open")})),jQuery("#cfgeo-color-graph").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-color-graph").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.graphcolor,position:"left center"}).pointer("open")})),jQuery("#cfgeo-webhook-enabled").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-webhook-enabled").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.webhook_enabled,position:"left center"}).pointer("open")})),jQuery("#cfgeo-webhook-urls").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-webhook-urls").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.webhook_urls,position:"left center"}).pointer("open")})),jQuery("#cfgeo-webhook-secret").on("mouseenter click",(function(){jQuery("body .wp-pointer-buttons .close").trigger("click"),jQuery("#cfgeo-webhook-secret").pointer({pointerClass:"wp-pointer cfgeo-pointer",content:translate_string_geo.webhook_secret,position:"left center"}).pointer("open")}));var t=!1;function a(){if(console.log("performAjaxFilter called"),t)console.log("Already loading, skipping");else if(e(".cfgeo-advanced-filters").length){t=!0,e(".cfgeo-advanced-filters").addClass("loading"),e(".cfgeo-loading").show(),e(".cfgeo-filter-row input, .cfgeo-filter-row select").prop("disabled",!0),e(".wp-list-table tbody").html('<tr><td colspan="8" style="text-align: center; padding: 20px;"><div class="spinner is-active"></div> Loading...</td></tr>');var o={action:"cfgeo_filter_submissions",nonce:cfgeo_ajax.nonce,form_id:e("#form-id").val()||"all",country_filter:e("#country-filter").val()||"",city_filter:e("#city-filter").val()||"",date_from:e("#date-from").val()||"",date_to:e("#date-to").val()||"",search_term:e("#search-term").val()||"",orderby:e('input[name="orderby"]').val()||"date",order:e('input[name="order"]').val()||"DESC",paged:e('input[name="paged"]').val()||"1"};console.log("Sending AJAX request with data:",o),e.ajax({url:ajaxurl,type:"POST",data:o,success:function(t){if(t.success){if(e(".wp-list-table tbody").html(t.data.html),t.data.pagination?e(".tablenav-pages").html(t.data.pagination):e(".tablenav-pages").html(""),e(".cfgeo-filter-count").remove(),t.data.total>0){var a=e('<div class="cfgeo-filter-count">Showing '+t.data.total+" submission(s)</div>");e(".cfgeo-advanced-filters").append(a)}else{a=e('<div class="cfgeo-filter-count">No submissions found matching your criteria</div>');e(".cfgeo-advanced-filters").append(a)}var r=new URL(window.location);r.searchParams.set("form-id",o.form_id),r.searchParams.set("country-filter",o.country_filter),r.searchParams.set("city-filter",o.city_filter),r.searchParams.set("date-from",o.date_from),r.searchParams.set("date-to",o.date_to),r.searchParams.set("search-term",o.search_term),r.searchParams.set("orderby",o.orderby),r.searchParams.set("order",o.order),r.searchParams.set("paged",o.paged),window.history.pushState({},"",r)}else alert("Error: "+t.data)},error:function(e,o,t){console.log("AJAX Error:",e.responseText),alert(cfgeo_ajax.error_message)},complete:function(){t=!1,e(".cfgeo-advanced-filters").removeClass("loading"),e(".cfgeo-loading").hide(),e(".cfgeo-filter-row input, .cfgeo-filter-row select").prop("disabled",!1)}})}else console.log("Not on CFGEO page, skipping")}if(e(".cfgeo-advanced-filters").length&&"undefined"!=typeof cfgeo_ajax){console.log("CFGEO Debug: Initializing AJAX functionality"),e("#form-id, #country-filter, #city-filter, #date-from, #date-to").on("change",(function(){console.log("Filter changed:",e(this).attr("id"),e(this).val()),clearTimeout(o),o=setTimeout(a,300)})),e("#search-term").on("input",(function(){console.log("Search input:",e(this).val()),clearTimeout(o),o=setTimeout(a,500)})),e("#search-term").on("keypress",(function(e){13===e.which&&(clearTimeout(o),a())})),e(".cfgeo-clear-filters").on("click",(function(o){o.preventDefault(),e("#form-id").val("all"),e("#country-filter").val(""),e("#city-filter").val(""),e("#date-from").val(""),e("#date-to").val(""),e("#search-term").val(""),e('input[name="orderby"]').val("date"),e('input[name="order"]').val("DESC"),e('input[name="paged"]').val("1"),a()})),e("#date-from, #date-to").on("change",(function(){var o=e("#date-from").val(),t=e("#date-to").val();o&&t&&o>t&&(alert(cfgeo_ajax.date_error_message),e(this).val(""))})),e(document).on("click",".tablenav-pages a",(function(o){o.preventDefault();var t=e(this).data("page")||"1";e('input[name="paged"]').val(t),a()})),e(document).on("click",".wp-list-table th.sortable a, .wp-list-table th.sorted a",(function(o){o.preventDefault();var t=e(this).attr("href"),r=new URL(t),n=r.searchParams.get("orderby")||"date",i=r.searchParams.get("order")||"DESC";e('input[name="orderby"]').val(n),e('input[name="order"]').val(i),e('input[name="paged"]').val("1"),a()}));var r=e(".wp-list-table tbody tr").length;if(r>0){var n=e('<div class="cfgeo-filter-count">Showing '+r+" submission(s)</div>");e(".cfgeo-advanced-filters").append(n)}}else console.log("CFGEO Debug: Not on CFGEO page or cfgeo_ajax not available, skipping AJAX initialization");e("#test-webhook").length&&"undefined"!=typeof cfgeo_ajax&&e("#test-webhook").on("click",(function(){var o=e(this),t=o.text();o.prop("disabled",!0).text("Testing..."),e("#webhook-test-result").hide(),e.ajax({url:ajaxurl,type:"POST",data:{action:"cfgeo_test_webhook",nonce:cfgeo_ajax.webhook_test_nonce||cfgeo_ajax.nonce},success:function(o){if(o&&o.success){var t=o.data&&o.data.message?o.data.message:"Test completed successfully!";e("#webhook-test-result").html('<div class="notice notice-success"><p>'+t+"</p></div>").show()}else{t=o&&o.data&&o.data.message?o.data.message:"Test failed. Please try again.";e("#webhook-test-result").html('<div class="notice notice-error"><p>'+t+"</p></div>").show()}},error:function(){e("#webhook-test-result").html('<div class="notice notice-error"><p>An error occurred while testing the webhook.</p></div>').show()},complete:function(){o.prop("disabled",!1).text(t)}})})),e("#webhook-logs").length&&"undefined"!=typeof cfgeo_ajax&&function(){if("undefined"==typeof cfgeo_ajax)return void(e("#webhook-logs").html('<p class="description">Unable to load webhook logs - AJAX not available.</p>'),e("#clear-webhook-logs").prop("disabled",!0));e.ajax({url:ajaxurl,type:"POST",data:{action:"cfgeo_get_webhook_logs",nonce:cfgeo_ajax.webhook_logs_nonce||cfgeo_ajax.nonce},success:function(o){if(o&&o.success&&o.data&&o.data.logs){var t="";o.data.logs.length>0?(e("#clear-webhook-logs").prop("disabled",!1),o.data.logs.forEach((function(e){var o=e.success?"success":"error",a=e.success?"Success":"Failed";t+='<div class="webhook-log-entry '+o+'">',t+="<strong>"+a+"</strong> - "+(e.timestamp||"Unknown time")+"<br>",t+="<small>URL: "+(e.url||"Unknown URL")+"</small><br>",t+="<small>Response: "+(e.response_code||"Unknown")+" - "+(e.response_message||"No message")+"</small>",t+="</div>"}))):(e("#clear-webhook-logs").prop("disabled",!0),t='<p class="description">No webhook logs available yet.</p>'),e("#webhook-logs").html(t)}else e("#webhook-logs").html('<p class="description">Unable to load webhook logs - invalid response format.</p>'),e("#clear-webhook-logs").prop("disabled",!0)},error:function(){e("#webhook-logs").html('<p class="description">Unable to load webhook logs.</p>'),e("#clear-webhook-logs").prop("disabled",!0)}})}(),e("#clear-webhook-logs").length&&"undefined"!=typeof cfgeo_ajax&&e("#clear-webhook-logs").on("click",(function(){if(confirm("Are you sure you want to clear all webhook logs? This action cannot be undone.")){var o=e(this),t=o.text();o.prop("disabled",!0).text("Clearing..."),e.ajax({url:ajaxurl,type:"POST",data:{action:"cfgeo_clear_webhook_logs",nonce:cfgeo_ajax.webhook_logs_nonce||cfgeo_ajax.nonce},success:function(o){if(o&&o.success){e("#webhook-logs").html('<p class="description">No webhook logs available yet.</p>'),e("#clear-webhook-logs").prop("disabled",!0);var t=o.data&&o.data.message?o.data.message:"Webhook logs cleared successfully.";e("#webhook-logs").before('<div class="notice notice-success" style="margin-bottom: 10px;"><p>'+t+"</p></div>"),setTimeout((function(){e("#webhook-logs").prev(".notice").fadeOut()}),3e3)}else{t=o&&o.data&&o.data.message?o.data.message:"Failed to clear webhook logs.";e("#webhook-logs").before('<div class="notice notice-error" style="margin-bottom: 10px;"><p>'+t+"</p></div>")}},error:function(){e("#webhook-logs").before('<div class="notice notice-error" style="margin-bottom: 10px;"><p>An error occurred while clearing webhook logs.</p></div>')},complete:function(){o.prop("disabled",!1).text(t)}})}}))}))}(jQuery); -
abandoned-contact-form-7/trunk/readme.txt
r3299155 r3374823 1 === AbandonedContact Form 7 ===1 === Track Geolocation Of Users Using Contact Form 7 === 2 2 3 3 Contributors: zealopensource 4 Tags: abandoned, contact form 7, export, email, wpvip 5 Requires at least: 3.5 6 Donate link: http://www.zealousweb.com/payment/ 7 Tested up to: 6.8 8 Stable tag: 2.0 9 Requires PHP: 5.6 10 CF7 requires at least: 3.0 11 CF7 tested up to: 5.8 12 License: GPLv3 or later License 13 Version: 2.0 4 Donate Link: http://www.zealousweb.com/payment/ 5 Tags: geolocation,track geolocation,Google Maps 6 Requires at least: 4.9 or higher 7 Tested up to: 6.8 8 Stable tag: 2.9 9 Requires PHP: 7.0 10 License: GPL-3.0-or-later 11 Version: 2.9 14 12 License URI: http://www.gnu.org/licenses/gpl-3.0.html 15 13 16 Abandoned Contact Form 7 provides an ability to track the data from Contact Form 7 even if the user does not submit the form.14 Track Geolocation Of Users Using Contact Form 7 allows you to get geolocation information with their form submission. 17 15 18 16 == Description == 19 17 20 Abandoned Contact Form 7 plugin provides to track the Contact Form 7 form data even if the user does not submit the form. And, sends mail notification to each Abandoned user.18 Track Geolocation Of Users Using Contact Form 7 allows you to get geolocation information with their form submission. This will help you know better from where the visitor has submitted the form. 21 19 22 = Features of Abandoned Contact Form 7 = 20 = Features of Track Geolocation Of Users Using Contact Form 7 = 21 * Advanced Filtering & Search - Quickly locate form submissions with filters for Country, City, and Submission Date. 22 * Custom Webhook Integrations - Automate workflows by sending geolocation data to external platforms. 23 * Multi-Language Compatibility - The plugin automatically translates data. 24 * Get Geolocation details including city,state,country,zipcode,latitude/longitude. 25 * Send all this information including a static google map image in the mail with a simple shortcode. 26 * Form Specific Visual chart to get to know from where the Visitors become more. 27 * We have used 2 Types of API here one is with access token key named ipstack and another is without access token which is free named ipapi & KeyCDN. So if you do not enter access token key in plugin setting then it will fetch data with the help of free API keys. 28 * To add latitude/longitude, country, state, city in mail - [geolocation] 29 * To add latitude/longitude, country, state, city & Google map static image in the mail - [geolocation lat-long country state city gmap] 30 * To add only latitude/longitude in mail - [geolocation lat-long] 31 * To add only the country in the mail- [geolocation country] 32 * To add only the state in the mail - [geolocation state] 33 * To add only the city in the mail - [geolocation city] 34 * To add only Google map static image in the mail- [geolocation gmap] 23 35 24 * Select your email ID field for Form in the form settings. 25 * Enable/Disable Option for multiple forms where you need in Contact Form 7. 26 * View the list of entries in the Admin side for Abandoned submission. 27 * In the list of Abandoned forms entry in admin side you can view IP addresses and other data which are filled-up by the user upto 10 Entries. 28 * Provision to send an email to a single user that abandoned the form. 29 * Facility to export the list of entire abandoned users upto 10 Entries. 30 * Also, An option to customize the mail body for Abandoned email upto 10 Entries. 31 * Select specific field to include in tracking data 32 * Compatibility of WordPress VIP. 36 <strong>[Demo for Track Geolocation Of Users Using Contact Form 7](https://demo.zealousweb.com/wordpress-plugins/track-geolocation-of-users-using-contact-form-7/)</strong> 33 37 34 <strong>[Demo for Abandoned Contact Form 7](https://demo.zealousweb.com/wordpress-plugins/abandoned-contact-form-7/)</strong> 35 36 = Features of Abandoned Contact Form 7 Pro = 37 38 We have released the PRO version of this plugin with extra advantageous features added. PRO Version 1.0 Released. 39 40 * In the list of Abandoned forms entry in admin side you can view IP addresses and other data which are filled-up by the user unlimited Entries. 41 * Facility to export the list of entire abandoned users unlimited Entries. 42 * You can schedule a time for sending emails to each abandoned user. 43 * You can set the “Status” of the user to send an email so we can manage not to send the same email again to the same user. 44 * You can easily manage the number of time emails sent to the user. 45 * Also, An option to customize the mail body for Abandoned email unlimited Entries. 46 * For schedule mails, we have the option of SMTP settings. Here, you can set SMTP from Plugin, no need to add another plugin for SMTP configuration. 47 48 <strong>[Get more information of Pro version here](https://store.zealousweb.com/abandoned-contact-form-7-pro)</strong> 49 <strong>[Demo for Abandoned Contact Form 7](https://demo.zealousweb.com/wordpress-plugins/abandoned-contact-form-7-pro/)</strong> 38 Note: To add Google map static image in the mail you have to enable this 2 option 39 1. You have to enable Use HTML content-type in the Mail setting of Contact form 7. 40 2. You have to enable Maps Static API in Google Map API. 50 41 51 42 == OUR OTHER PLUGINS == … … 64 55 * <strong>[User Registration Using Contact Form 7 Pro](https://store.zealousweb.com/wordpress-plugins/user-registration-using-contact-form-7-pro)</strong> 65 56 66 = Getting Help With Wordpress =67 68 If you have any questions about this plugin, you can post a thread in our [WordPress.org forum](https://wordpress.org/support/plugin/abandoned-contact-form-7/). Please search existing threads before opening a new one or feel free to contact us at <a href="mailto:[email protected]">[email protected]</a>69 70 We also offer custom Wordpress extension development and Wordpress theme design services to fulfill your e-commerce objectives.71 72 Our professional impassioned Wordpress experts provide profound and customer oriented development of your project within short timeframes.73 74 Thank you for choosing a Plugin developed by <strong>[ZealousWeb](https://www.zealousweb.com)</strong>!75 76 57 == Installation == 77 58 … … 80 61 1. From the dashboard of your site, navigate to Plugins --> Add New. 81 62 2. Select the Upload option and hit "Choose File." 82 3. When the popup appears select the plugin-file-name.zip file from your desktop.63 3. When the popup appears select the track-geolocation-of-users-using-contact-form-7.zip file from your desktop. 83 64 4. Follow the on-screen instructions and wait till the upload completes. 84 65 5. When it's finished, activate the plugin via the prompt. A message will display confirming activation was successful. 85 66 86 == Frequently Asked Questions == 67 == Screenshots == 68 1. Screenshot 'screenshot-1.png' shows all the possible options available for this plugin. 69 2. Screenshot 'screenshot-2.png' shows setting option to be enabled to get Google Map static image in the email. 70 3. Screenshot 'screenshot-3.png' This area shows a detailed graph on the basis of submitted forms. 87 71 88 = Can I send mail notification to every abandoned user?=72 = Getting Help From Our Support System = 89 73 90 Yes, you can send mail notification to either every abandoned user or a particular user. 74 If you have any difficulties while using this Plugin, please feel free to contact us at [email protected] 91 75 92 = Can I Abandon the data of the file type input field of the form? = 76 We also offer custom Wordpress extension development and Wordpress theme design services to fulfil your e-commerce objectives. 93 77 94 No, you can't Abandon the data of the file type input field.78 Our professional impassioned Wordpress experts provide profound and customer-oriented development of your project within short timeframes. 95 79 96 == Screenshots == 97 98 1. This is show list of all Abandoned users. 99 2. This is global option of Edit message body content for Abandoned users email. 100 3. This is option of email to sent single user entry on action button. 101 4. Select specific field to include in tracking data 80 Thank you for choosing a Plugin developed by <strong>[ZealousWeb](https://www.zealousweb.com)</strong>! 102 81 103 82 == Changelog == 104 83 84 = 2.9 = 85 * Advanced Filtering & Search - Quickly locate form submissions with filters for Country, City, and Submission Date. 86 * Custom Webhook Integrations - Automate workflows by sending geolocation data to external platforms. 87 * Multi-Language Compatibility - The plugin automatically translates data. 88 89 = 2.8 = 90 * Minor changes – Doc update. 91 92 = 2.7 = 93 * Minor changes – Doc update. 94 95 = 2.6 = 96 * Fixed PHP warnings. 97 98 = 2.5 = 99 * Remove label in mail tags. 100 * Fixed PHP warnings. 101 102 = 2.4 = 103 * Two Mail issues fixed. 104 105 = 2.3 = 106 * Mail issue fixed. 107 * Document link added. 108 109 = 2.2 = 110 * Backend issue resolved. 111 112 = 2.1 = 113 * escaping added 114 105 115 = 2.0 = 106 * Minor changes - Doc update 107 108 = 1.9 = 109 * Minor changes - Doc update 110 111 = 1.8 = 112 * Minor changes - Hidden 113 114 = 1.7 = 115 * Improved compatibility with WordPress VIP platform by refactoring code to adhere to VIP coding standards. 116 117 = 1.6 = 118 * Add - Here you can select specific field to include in tracking data. 119 120 = 1.5 = 121 * Fixed - Solved Javascript issue 116 * The issues on both the frontend and backend have been resolved. 122 117 123 118 = 1.4 = 124 * Test - Checking with Latest wordPress and Contact form 7, Tested and works fine.119 * Fix Export CSV bug issue solved. 125 120 126 121 = 1.3 = 127 * Fix - Fixed Image issue in mail body of notification mail.122 * Compatibility with new cf7 version 128 123 129 124 = 1.2 = 130 * Fix - Fixed issue of Mobile and Ipad tracking.125 * WordPress 5.6 compatibility 131 126 132 127 = 1.1 = 133 * Fix - Fixed Email body Content issue.128 * Fix - Document Link 134 129 135 130 = 1.0 = 136 *Initial Release131 Initial Release
Note: See TracChangeset
for help on using the changeset viewer.