pp_braintree.twig (58993B)
1 {{ header }}{{ column_left }} 2 <div id="content"> 3 <div class="page-header"> 4 <div class="container-fluid"> 5 <div class="pull-right"> 6 <button type="submit" form="form-braintree" data-toggle="tooltip" title="{{ button_save }}" class="btn btn-primary"><i class="fa fa-save"></i></button> 7 <a href="{{ cancel }}" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i class="fa fa-reply"></i></a></div> 8 <h1>{{ heading_title }}</h1> 9 <ul class="breadcrumb"> 10 {% for breadcrumb in breadcrumbs %} 11 <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> 12 {% endfor %} 13 </ul> 14 </div> 15 </div> 16 <div class="container-fluid"> 17 {% if error_warning %} 18 <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }} 19 <button type="button" class="close" data-dismiss="alert">×</button> 20 </div> 21 {% endif %} 22 {% if success %} 23 <div class="alert alert-success alert-dismissible"><i class="fa fa-check"></i> {{ success }} 24 <button type="button" class="close" data-dismiss="alert">×</button> 25 </div> 26 {% endif %} 27 <div class="panel panel-default"> 28 <div class="panel-heading"> 29 <h3 class="panel-title"><i class="fa fa-pencil"></i> {{ text_edit }}</h3> 30 </div> 31 <div class="panel-body"> 32 <form action="{{ action }}" method="post" enctype="multipart/form-data" id="form-braintree" class="form-horizontal"> 33 <ul class="nav nav-tabs" id="tabs"> 34 <li class="active"><a href="#tab-setting" data-toggle="tab">{{ tab_setting }}</a></li> 35 {% if payment_pp_braintree_access_token is empty %} 36 <li><a href="#tab-currency" data-toggle="tab">{{ tab_currency }}</a></li> 37 {% endif %} 38 <li><a href="#tab-order-status" data-toggle="tab">{{ tab_order_status }}</a></li> 39 <li><a href="#tab-3ds" data-toggle="tab">{{ tab_3ds }}</a></li> 40 <li><a href="#tab-vault" data-toggle="tab">{{ tab_vault }}</a></li> 41 <li><a href="#tab-paypal" data-toggle="tab">{{ tab_paypal }}</a></li> 42 <li><a href="#tab-transaction" data-toggle="tab">{{ tab_transaction }}</a></li> 43 </ul> 44 <div class="tab-content"> 45 <div class="tab-pane active" id="tab-setting"> 46 {% if payment_pp_braintree_access_token is not empty %} 47 <input type="hidden" name="payment_pp_braintree_access_token" value="{{ payment_pp_braintree_access_token }}" /> 48 <input type="hidden" name="payment_pp_braintree_refresh_token" value="{{ payment_pp_braintree_refresh_token }}" /> 49 <input type="hidden" name="payment_pp_braintree_merchant_id" value="{{ payment_pp_braintree_merchant_id }}" /> 50 <input type="hidden" name="payment_pp_braintree_public_key" value="" /> 51 <input type="hidden" name="payment_pp_braintree_private_key" value="" /> 52 53 <div class="form-group"> 54 <label class="col-sm-2 control-label">{{ entry_connection }}</label> 55 <div class="col-sm-10"> 56 <div class="alert alert-info"><i class="fa fa-check"></i> {{ text_app_connected }} ({{ text_merchant_connected }}{{ payment_pp_braintree_merchant_id }}) <div class="btn btn-sm btn-danger pull-right" id="delete-link">{{ text_unlink }}</div></div> 57 </div> 58 </div> 59 {% else %} 60 <input type="hidden" name="payment_pp_braintree_access_token" value="" /> 61 <input type="hidden" name="payment_pp_braintree_refresh_token" value="" /> 62 <div class="form-group"> 63 <label class="col-sm-2">{{ text_braintree_learn }}</label> 64 <div class="col-sm-10" id="bt-connect"></div> 65 </div> 66 <div class="form-group"> 67 <label class="col-sm-2 control-label" for="input-merchant-id">{{ entry_merchant_id }}</label> 68 <div class="col-sm-10"> 69 <input type="text" name="payment_pp_braintree_merchant_id" value="{{ payment_pp_braintree_merchant_id }}" placeholder="{{ entry_merchant_id }}" id="input-merchant-id" class="form-control" /> 70 </div> 71 </div> 72 <div class="form-group"> 73 <label class="col-sm-2 control-label" for="input-public-key">{{ entry_public_key }}</label> 74 <div class="col-sm-10"> 75 <input type="text" name="payment_pp_braintree_public_key" value="{{ payment_pp_braintree_public_key }}" placeholder="{{ entry_public_key }}" id="input-public-key" class="form-control" /> 76 </div> 77 </div> 78 <div class="form-group"> 79 <label class="col-sm-2 control-label" for="input-private-key">{{ entry_private_key }}</label> 80 <div class="col-sm-10"> 81 <input type="text" name="payment_pp_braintree_private_key" value="{{ payment_pp_braintree_private_key }}" placeholder="{{ entry_private_key }}" id="input-private-key" class="form-control" /> 82 </div> 83 </div> 84 {% endif %} 85 86 <div class="form-group"> 87 <label class="col-sm-2 control-label" for="input-environment">{{ entry_environment }}</label> 88 <div class="col-sm-10"> 89 {% if payment_pp_braintree_access_token is not empty and payment_pp_braintree_environment is not empty %} 90 <label class="control-label">{{ payment_pp_braintree_environment }}</label> 91 <input type="hidden" name="payment_pp_braintree_environment" value="{{ payment_pp_braintree_environment }}" /> 92 {% else %} 93 <select name="payment_pp_braintree_environment" id="input-environment" class="form-control"> 94 {% if payment_pp_braintree_environment == 'production' %} 95 <option value="sandbox">{{ text_sandbox }}</option> 96 <option value="production" selected="selected">{{ text_production }}</option> 97 {% else %} 98 <option value="sandbox" selected="selected">{{ text_sandbox }}</option> 99 <option value="production">{{ text_production }}</option> 100 {% endif %} 101 </select> 102 {% endif %} 103 </div> 104 </div> 105 106 <div class="form-group"> 107 <label class="col-sm-2 control-label" for="input-settlement-immediate"><span data-toggle="tooltip" title="{{ help_settlement_type }}">{{ entry_settlement_type }}</span></label> 108 <div class="col-sm-10"> 109 <select name="payment_pp_braintree_settlement_immediate" id="input-settlement-immediate" class="form-control"> 110 {% if payment_pp_braintree_settlement_immediate == 1 %} 111 <option value="1" selected="selected">{{ text_immediate }}</option> 112 <option value="0">{{ text_deferred }}</option> 113 {% else %} 114 <option value="1">{{ text_immediate }}</option> 115 <option value="0" selected="selected">{{ text_deferred }}</option> 116 {% endif %} 117 </select> 118 </div> 119 </div> 120 <div class="form-group"> 121 <label class="col-sm-2 control-label" for="input-debug"><span data-toggle="tooltip" title="{{ help_debug }}">{{ entry_debug }}</span></label> 122 <div class="col-sm-10"> 123 <select name="payment_pp_braintree_debug" id="input-debug" class="form-control"> 124 {% if payment_pp_braintree_debug %} 125 <option value="1" selected="selected">{{ text_enabled }}</option> 126 <option value="0">{{ text_disabled }}</option> 127 {% else %} 128 <option value="1">{{ text_enabled }}</option> 129 <option value="0" selected="selected">{{ text_disabled }}</option> 130 {% endif %} 131 </select> 132 </div> 133 </div> 134 <div class="form-group"> 135 <label class="col-sm-2 control-label" for="input-total"><span data-toggle="tooltip" title="{{ help_total }}">{{ entry_total }}</span></label> 136 <div class="col-sm-10"> 137 <input type="text" name="payment_pp_braintree_total" value="{{ payment_pp_braintree_total }}" placeholder="{{ entry_total }}" id="input-total" class="form-control" /> 138 </div> 139 </div> 140 <div class="form-group"> 141 <label class="col-sm-2 control-label" for="input-geo-zone">{{ entry_geo_zone }}</label> 142 <div class="col-sm-10"> 143 <select name="payment_pp_braintree_geo_zone_id" id="input-geo-zone" class="form-control"> 144 <option value="0">{{ text_all_zones }}</option> 145 {% for geo_zone in geo_zones %} 146 {% if geo_zone.geo_zone_id == payment_pp_braintree_geo_zone_id %} 147 <option value="{{ geo_zone.geo_zone_id }}" selected="selected">{{ geo_zone.name }}</option> 148 {% else %} 149 <option value="{{ geo_zone.geo_zone_id }}">{{ geo_zone.name }}</option> 150 {% endif %} 151 {% endfor %} 152 </select> 153 </div> 154 </div> 155 <div class="form-group"> 156 <label class="col-sm-2 control-label" for="input-status">{{ entry_status }}</label> 157 <div class="col-sm-10"> 158 <select name="payment_pp_braintree_status" id="input-status" class="form-control"> 159 {% if payment_pp_braintree_status %} 160 <option value="1" selected="selected">{{ text_enabled }}</option> 161 <option value="0">{{ text_disabled }}</option> 162 {% else %} 163 <option value="1">{{ text_enabled }}</option> 164 <option value="0" selected="selected">{{ text_disabled }}</option> 165 {% endif %} 166 </select> 167 </div> 168 </div> 169 <div class="form-group"> 170 <label class="col-sm-2 control-label" for="input-sort-order">{{ entry_sort_order }}</label> 171 <div class="col-sm-10"> 172 <input type="text" name="payment_pp_braintree_sort_order" value="{{ payment_pp_braintree_sort_order }}" placeholder="{{ entry_sort_order }}" id="input-sort-order" class="form-control" /> 173 </div> 174 </div> 175 </div> 176 <div class="tab-pane" id="tab-currency"> 177 <div class="table-responsive"> 178 <table class="table table-striped table-bordered table-hover"> 179 <thead> 180 <tr> 181 <td class="text-left">{{ text_enabled }}</td> 182 <td class="text-left">{{ text_currency }}</td> 183 <td class="text-center">{{ text_merchant_account_id }}</td> 184 </tr> 185 </thead> 186 <tbody> 187 {% for currency in currencies %} 188 <tr> 189 <td class="text-center"> 190 {% if payment_pp_braintree_account[currency.code].status == 1 %} 191 <input type="checkbox" name="payment_pp_braintree_account[{{ currency.code }}][status]" value="1" checked="checked" /> 192 {% else %} 193 <input type="checkbox" name="payment_pp_braintree_account[{{ currency.code }}][status]" value="1" /> 194 {% endif %} 195 </td> 196 <td class="text-left">{{ currency.code }}</td> 197 <td class="text-left"> 198 <input type="text" name="payment_pp_braintree_account[{{ currency.code }}][merchant_account_id]" value="{{ payment_pp_braintree_account[currency.code].merchant_account_id }}" placeholder="{{ text_merchant_account_id }}" class="form-control" /> 199 {% if error_account[currency.code] %} 200 <div class="text-danger">{{ error_account[currency.code] }}</div> 201 {% endif %} 202 </td> 203 </tr> 204 {% endfor %} 205 </tbody> 206 </table> 207 </div> 208 </div> 209 <div class="tab-pane" id="tab-order-status"> 210 <div class="form-group"> 211 <label class="col-sm-2 control-label" for="input-order-status-authorization-expired">{{ entry_authorization_expired }}</label> 212 <div class="col-sm-10"> 213 <select name="payment_pp_braintree_authorization_expired_id" id="input-order-status-authorization-expired" class="form-control"> 214 {% for order_status in order_statuses %} 215 {% if order_status.order_status_id == payment_pp_braintree_authorization_expired_id %} 216 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 217 {% else %} 218 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 219 {% endif %} 220 {% endfor %} 221 </select> 222 </div> 223 </div> 224 <div class="form-group"> 225 <label class="col-sm-2 control-label" for="input-order-status-authorized">{{ entry_authorized }}</label> 226 <div class="col-sm-10"> 227 <select name="payment_pp_braintree_authorized_id" id="input-order-status-authorized" class="form-control"> 228 {% for order_status in order_statuses %} 229 {% if order_status.order_status_id == payment_pp_braintree_authorized_id %} 230 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 231 {% else %} 232 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 233 {% endif %} 234 {% endfor %} 235 </select> 236 </div> 237 </div> 238 <div class="form-group"> 239 <label class="col-sm-2 control-label" for="input-order-status-authorizing">{{ entry_authorizing }}</label> 240 <div class="col-sm-10"> 241 <select name="payment_pp_braintree_authorizing_id" id="input-order-status-authorizing" class="form-control"> 242 {% for order_status in order_statuses %} 243 {% if order_status.order_status_id == payment_pp_braintree_authorizing_id %} 244 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 245 {% else %} 246 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 247 {% endif %} 248 {% endfor %} 249 </select> 250 </div> 251 </div> 252 <div class="form-group"> 253 <label class="col-sm-2 control-label" for="input-order-status-settlement-pending">{{ entry_settlement_pending }}</label> 254 <div class="col-sm-10"> 255 <select name="payment_pp_braintree_settlement_pending_id" id="input-order-status-settlement-pending" class="form-control"> 256 {% for order_status in order_statuses %} 257 {% if order_status.order_status_id == payment_pp_braintree_settlement_pending_id %} 258 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 259 {% else %} 260 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 261 {% endif %} 262 {% endfor %} 263 </select> 264 </div> 265 </div> 266 <div class="form-group"> 267 <label class="col-sm-2 control-label" for="input-order-status-failed">{{ entry_failed }}</label> 268 <div class="col-sm-10"> 269 <select name="payment_pp_braintree_failed_id" id="input-order-status-failed" class="form-control"> 270 {% for order_status in order_statuses %} 271 {% if order_status.order_status_id == payment_pp_braintree_failed_id %} 272 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 273 {% else %} 274 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 275 {% endif %} 276 {% endfor %} 277 </select> 278 </div> 279 </div> 280 <div class="form-group"> 281 <label class="col-sm-2 control-label" for="input-order-status-gateway-rejected">{{ entry_gateway_rejected }}</label> 282 <div class="col-sm-10"> 283 <select name="payment_pp_braintree_gateway_rejected_id" id="input-order-status-gateway-rejected" class="form-control"> 284 {% for order_status in order_statuses %} 285 {% if order_status.order_status_id == payment_pp_braintree_gateway_rejected_id %} 286 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 287 {% else %} 288 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 289 {% endif %} 290 {% endfor %} 291 </select> 292 </div> 293 </div> 294 <div class="form-group"> 295 <label class="col-sm-2 control-label" for="input-order-status-processor-declined">{{ entry_processor_declined }}</label> 296 <div class="col-sm-10"> 297 <select name="payment_pp_braintree_processor_declined_id" id="input-order-status-processor-declined" class="form-control"> 298 {% for order_status in order_statuses %} 299 {% if order_status.order_status_id == payment_pp_braintree_processor_declined_id %} 300 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 301 {% else %} 302 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 303 {% endif %} 304 {% endfor %} 305 </select> 306 </div> 307 </div> 308 <div class="form-group"> 309 <label class="col-sm-2 control-label" for="input-order-status-settled">{{ entry_settled }}</label> 310 <div class="col-sm-10"> 311 <select name="payment_pp_braintree_settled_id" id="input-order-status-settled" class="form-control"> 312 {% for order_status in order_statuses %} 313 {% if order_status.order_status_id == payment_pp_braintree_settled_id %} 314 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 315 {% else %} 316 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 317 {% endif %} 318 {% endfor %} 319 </select> 320 </div> 321 </div> 322 <div class="form-group"> 323 <label class="col-sm-2 control-label" for="input-order-status-settling">{{ entry_settling }}</label> 324 <div class="col-sm-10"> 325 <select name="payment_pp_braintree_settling_id" id="input-order-status-settling" class="form-control"> 326 {% for order_status in order_statuses %} 327 {% if order_status.order_status_id == payment_pp_braintree_settling_id %} 328 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 329 {% else %} 330 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 331 {% endif %} 332 {% endfor %} 333 </select> 334 </div> 335 </div> 336 <div class="form-group"> 337 <label class="col-sm-2 control-label" for="input-order-status-submitted-for-settlement">{{ entry_submitted_for_settlement }}</label> 338 <div class="col-sm-10"> 339 <select name="payment_pp_braintree_submitted_for_settlement_id" id="input-order-status-submitted-for-settlement" class="form-control"> 340 {% for order_status in order_statuses %} 341 {% if order_status.order_status_id == payment_pp_braintree_submitted_for_settlement_id %} 342 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 343 {% else %} 344 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 345 {% endif %} 346 {% endfor %} 347 </select> 348 </div> 349 </div> 350 <div class="form-group"> 351 <label class="col-sm-2 control-label" for="input-order-status-voided">{{ entry_voided }}</label> 352 <div class="col-sm-10"> 353 <select name="payment_pp_braintree_voided_id" id="input-order-status-voided" class="form-control"> 354 {% for order_status in order_statuses %} 355 {% if order_status.order_status_id == payment_pp_braintree_voided_id %} 356 <option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option> 357 {% else %} 358 <option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option> 359 {% endif %} 360 {% endfor %} 361 </select> 362 </div> 363 </div> 364 </div> 365 <div class="tab-pane" id="tab-3ds"> 366 {% if braintree_config.three_d_secure_enabled == 0 %} 367 <div class="alert alert-info">{{ error_braintree_account_3ds }}</div> 368 <input type="hidden" name="payment_pp_braintree_3ds_status" value="0" /> 369 {% else %} 370 <div class="form-group"> 371 <label class="col-sm-2 control-label" for="input-3ds-status">{{ entry_3ds_status }}</label> 372 <div class="col-sm-10"> 373 <select name="payment_pp_braintree_3ds_status" id="input-3ds-status" class="form-control"> 374 {% if payment_pp_braintree_3ds_status == 1 %} 375 <option value="1" selected="selected">{{ text_enabled }}</option> 376 <option value="0">{{ text_disabled }}</option> 377 {% else %} 378 <option value="1">{{ text_enabled }}</option> 379 <option value="0" selected="selected">{{ text_disabled }}</option> 380 {% endif %} 381 </select> 382 <p>{{ text_3ds_ssl }}</p> 383 </div> 384 </div> 385 <div class="form-group three-ds-status"> 386 <label class="col-sm-2 control-label" for="input-3ds-unsupported-card">{{ entry_3ds_unsupported_card }}</label> 387 <div class="col-sm-10"> 388 <select name="payment_pp_braintree_3ds_unsupported_card" id="input-3ds-unsupported-card" class="form-control"> 389 {% if payment_pp_braintree_3ds_unsupported_card == 1 %} 390 <option value="1" selected="selected">{{ text_accept }}</option> 391 <option value="0">{{ text_decline }}</option> 392 {% else %} 393 <option value="1">{{ text_accept }}</option> 394 <option value="0" selected="selected">{{ text_decline }}</option> 395 {% endif %} 396 </select> 397 </div> 398 </div> 399 <div class="form-group three-ds-status"> 400 <label class="col-sm-2 control-label" for="input-3ds-lookup-error">{{ entry_3ds_lookup_error }}</label> 401 <div class="col-sm-10"> 402 <select name="payment_pp_braintree_3ds_lookup_error" id="input-3ds-lookup-error" class="form-control"> 403 {% if payment_pp_braintree_3ds_lookup_error == 1 %} 404 <option value="1" selected="selected">{{ text_accept }}</option> 405 <option value="0">{{ text_decline }}</option> 406 {% else %} 407 <option value="1">{{ text_accept }}</option> 408 <option value="0" selected="selected">{{ text_decline }}</option> 409 {% endif %} 410 </select> 411 </div> 412 </div> 413 <div class="form-group three-ds-status"> 414 <label class="col-sm-2 control-label" for="input-3ds-lookup-enrolled">{{ entry_3ds_lookup_enrolled }}</label> 415 <div class="col-sm-10"> 416 <select name="payment_pp_braintree_3ds_lookup_enrolled" id="input-3ds-lookup-enrolled" class="form-control"> 417 {% if payment_pp_braintree_3ds_lookup_enrolled == 1 %} 418 <option value="1" selected="selected">{{ text_accept }}</option> 419 <option value="0">{{ text_decline }}</option> 420 {% else %} 421 <option value="1">{{ text_accept }}</option> 422 <option value="0" selected="selected">{{ text_decline }}</option> 423 {% endif %} 424 </select> 425 </div> 426 </div> 427 <div class="form-group three-ds-status"> 428 <label class="col-sm-2 control-label" for="input-3ds-lookup-not-enrolled">{{ entry_3ds_lookup_not_enrolled }}</label> 429 <div class="col-sm-10"> 430 <select name="payment_pp_braintree_3ds_lookup_not_enrolled" id="input-3ds-lookup-not-enrolled" class="form-control"> 431 {% if payment_pp_braintree_3ds_lookup_not_enrolled == 1 %} 432 <option value="1" selected="selected">{{ text_accept }}</option> 433 <option value="0">{{ text_decline }}</option> 434 {% else %} 435 <option value="1">{{ text_accept }}</option> 436 <option value="0" selected="selected">{{ text_decline }}</option> 437 {% endif %} 438 </select> 439 </div> 440 </div> 441 <div class="form-group three-ds-status"> 442 <label class="col-sm-2 control-label" for="input-3ds-not-participating">{{ entry_3ds_not_participating }}</label> 443 <div class="col-sm-10"> 444 <select name="payment_pp_braintree_3ds_not_participating" id="input-3ds-not-participating" class="form-control"> 445 {% if payment_pp_braintree_3ds_not_participating == 1 %} 446 <option value="1" selected="selected">{{ text_accept }}</option> 447 <option value="0">{{ text_decline }}</option> 448 {% else %} 449 <option value="1">{{ text_accept }}</option> 450 <option value="0" selected="selected">{{ text_decline }}</option> 451 {% endif %} 452 </select> 453 </div> 454 </div> 455 <div class="form-group three-ds-status"> 456 <label class="col-sm-2 control-label" for="input-3ds-unavailable">{{ entry_3ds_unavailable }}</label> 457 <div class="col-sm-10"> 458 <select name="payment_pp_braintree_3ds_unavailable" id="input-3ds-unavailable" class="form-control"> 459 {% if payment_pp_braintree_3ds_unavailable == 1 %} 460 <option value="1" selected="selected">{{ text_accept }}</option> 461 <option value="0">{{ text_decline }}</option> 462 {% else %} 463 <option value="1">{{ text_accept }}</option> 464 <option value="0" selected="selected">{{ text_decline }}</option> 465 {% endif %} 466 </select> 467 </div> 468 </div> 469 <div class="form-group three-ds-status"> 470 <label class="col-sm-2 control-label" for="input-3ds-signature-failed">{{ entry_3ds_signature_failed }}</label> 471 <div class="col-sm-10"> 472 <select name="payment_pp_braintree_3ds_signature_failed" id="input-3ds-signature-failed" class="form-control"> 473 {% if payment_pp_braintree_3ds_signature_failed == 1 %} 474 <option value="1" selected="selected">{{ text_accept }}</option> 475 <option value="0">{{ text_decline }}</option> 476 {% else %} 477 <option value="1">{{ text_accept }}</option> 478 <option value="0" selected="selected">{{ text_decline }}</option> 479 {% endif %} 480 </select> 481 </div> 482 </div> 483 <div class="form-group three-ds-status"> 484 <label class="col-sm-2 control-label" for="input-3ds-successful">{{ entry_3ds_successful }}</label> 485 <div class="col-sm-10"> 486 <select name="payment_pp_braintree_3ds_successful" id="input-3ds-successful" class="form-control"> 487 {% if payment_pp_braintree_3ds_successful == 1 %} 488 <option value="1" selected="selected">{{ text_accept }}</option> 489 <option value="0">{{ text_decline }}</option> 490 {% else %} 491 <option value="1">{{ text_accept }}</option> 492 <option value="0" selected="selected">{{ text_decline }}</option> 493 {% endif %} 494 </select> 495 </div> 496 </div> 497 <div class="form-group three-ds-status"> 498 <label class="col-sm-2 control-label" for="input-3ds-attempt-successful">{{ entry_3ds_attempt_successful }}</label> 499 <div class="col-sm-10"> 500 <select name="payment_pp_braintree_3ds_attempt_successful" id="input-3ds-attempt-successful" class="form-control"> 501 {% if payment_pp_braintree_3ds_attempt_successful == 1 %} 502 <option value="1" selected="selected">{{ text_accept }}</option> 503 <option value="0">{{ text_decline }}</option> 504 {% else %} 505 <option value="1">{{ text_accept }}</option> 506 <option value="0" selected="selected">{{ text_decline }}</option> 507 {% endif %} 508 </select> 509 </div> 510 </div> 511 <div class="form-group three-ds-status"> 512 <label class="col-sm-2 control-label" for="input-3ds-failed">{{ entry_3ds_failed }}</label> 513 <div class="col-sm-10"> 514 <select name="payment_pp_braintree_3ds_failed" id="input-3ds-failed" class="form-control"> 515 {% if payment_pp_braintree_3ds_failed == 1 %} 516 <option value="1" selected="selected">{{ text_accept }}</option> 517 <option value="0">{{ text_decline }}</option> 518 {% else %} 519 <option value="1">{{ text_accept }}</option> 520 <option value="0" selected="selected">{{ text_decline }}</option> 521 {% endif %} 522 </select> 523 </div> 524 </div> 525 <div class="form-group three-ds-status"> 526 <label class="col-sm-2 control-label" for="input-3ds-unable-to-auth">{{ entry_3ds_unable_to_auth }}</label> 527 <div class="col-sm-10"> 528 <select name="payment_pp_braintree_3ds_unable_to_auth" id="input-3ds-unable-to-auth" class="form-control"> 529 {% if payment_pp_braintree_3ds_unable_to_auth == 1 %} 530 <option value="1" selected="selected">{{ text_accept }}</option> 531 <option value="0">{{ text_decline }}</option> 532 {% else %} 533 <option value="1">{{ text_accept }}</option> 534 <option value="0" selected="selected">{{ text_decline }}</option> 535 {% endif %} 536 </select> 537 </div> 538 </div> 539 <div class="form-group three-ds-status"> 540 <label class="col-sm-2 control-label" for="input-3ds-error">{{ entry_3ds_error }}</label> 541 <div class="col-sm-10"> 542 <select name="payment_pp_braintree_3ds_error" id="input-3ds-error" class="form-control"> 543 {% if payment_pp_braintree_3ds_error == 1 %} 544 <option value="1" selected="selected">{{ text_accept }}</option> 545 <option value="0">{{ text_decline }}</option> 546 {% else %} 547 <option value="1">{{ text_accept }}</option> 548 <option value="0" selected="selected">{{ text_decline }}</option> 549 {% endif %} 550 </select> 551 </div> 552 </div> 553 {% endif %} 554 </div> 555 <div class="tab-pane" id="tab-vault"> 556 <div class="form-group"> 557 <label class="col-sm-2 control-label" for="input-card-vault"><span data-toggle="tooltip" title="{{ help_card_vault }}">{{ entry_card_vault }}</span></label> 558 <div class="col-sm-10"> 559 <select name="payment_pp_braintree_card_vault" id="input-card-vault" class="form-control"> 560 {% if payment_pp_braintree_card_vault %} 561 <option value="1" selected="selected">{{ text_enabled }}</option> 562 <option value="0">{{ text_disabled }}</option> 563 {% else %} 564 <option value="1">{{ text_enabled }}</option> 565 <option value="0" selected="selected">{{ text_disabled }}</option> 566 {% endif %} 567 </select> 568 </div> 569 </div> 570 <div class="form-group"> 571 <label class="col-sm-2 control-label" for="input-card-check-vault"><span data-toggle="tooltip" title="{{ help_card_check_vault }}">{{ entry_card_check_vault }}</span></label> 572 <div class="col-sm-10"> 573 <select name="payment_pp_braintree_card_check_vault" id="input-card-check-vault" class="form-control"> 574 {% if payment_pp_braintree_card_check_vault %} 575 <option value="1" selected="selected">{{ text_enabled }}</option> 576 <option value="0">{{ text_disabled }}</option> 577 {% else %} 578 <option value="1">{{ text_enabled }}</option> 579 <option value="0" selected="selected">{{ text_disabled }}</option> 580 {% endif %} 581 </select> 582 </div> 583 </div> 584 <div class="form-group"> 585 <label class="col-sm-2 control-label" for="input-vault-cvv-3ds"><span data-toggle="tooltip" title="{{ help_vault_cvv_3ds }}">{{ entry_vault_cvv_3ds }}</span></label> 586 <div class="col-sm-10"> 587 <select name="payment_pp_braintree_vault_cvv_3ds" id="input-vault-cvv-3ds" class="form-control"> 588 {% if payment_pp_braintree_vault_cvv_3ds == "cvv" %} 589 <option value="0">{{ text_disabled }}</option> 590 <option value="cvv" selected="selected">{{ text_cvv }}</option> 591 <option value="3ds">{{ text_3ds }}</option> 592 {% elseif payment_pp_braintree_vault_cvv_3ds == "3ds" %} 593 <option value="0">{{ text_disabled }}</option> 594 <option value="cvv">{{ text_cvv }}</option> 595 <option value="3ds" selected="selected">{{ text_3ds }}</option> 596 {% else %} 597 <option value="0" selected="selected">{{ text_disabled }}</option> 598 <option value="cvv">{{ text_cvv }}</option> 599 <option value="3ds">{{ text_3ds }}</option> 600 {% endif %} 601 </select> 602 </div> 603 </div> 604 605 {% if braintree_config.paypal_enabled == 1 %} 606 <div class="form-group"> 607 <label class="col-sm-2 control-label" for="input-paypal-vault"><span data-toggle="tooltip" title="{{ help_paypal_vault }}">{{ entry_paypal_vault }}</span></label> 608 <div class="col-sm-10"> 609 <select name="payment_pp_braintree_paypal_vault" id="input-paypal-vault" class="form-control"> 610 {% if payment_pp_braintree_paypal_vault %} 611 <option value="1" selected="selected">{{ text_enabled }}</option> 612 <option value="0">{{ text_disabled }}</option> 613 {% else %} 614 <option value="1">{{ text_enabled }}</option> 615 <option value="0" selected="selected">{{ text_disabled }}</option> 616 {% endif %} 617 </select> 618 </div> 619 </div> 620 <div class="form-group"> 621 <label class="col-sm-2 control-label" for="input-paypal-check-vault"><span data-toggle="tooltip" title="{{ help_paypal_check_vault }}">{{ entry_paypal_check_vault }}</span></label> 622 <div class="col-sm-10"> 623 <select name="payment_pp_braintree_paypal_check_vault" id="input-paypal-check-vault" class="form-control"> 624 {% if payment_pp_braintree_paypal_check_vault %} 625 <option value="1" selected="selected">{{ text_enabled }}</option> 626 <option value="0">{{ text_disabled }}</option> 627 {% else %} 628 <option value="1">{{ text_enabled }}</option> 629 <option value="0" selected="selected">{{ text_disabled }}</option> 630 {% endif %} 631 </select> 632 </div> 633 </div> 634 {% else %} 635 <input type="hidden" name="payment_pp_braintree_paypal_vault" value="0" /> 636 <input type="hidden" name="payment_pp_braintree_paypal_check_vault" value="0" /> 637 {% endif %} 638 </div> 639 <div class="tab-pane" id="tab-paypal"> 640 {% if braintree_config.paypal_enabled == 0 %} 641 <div class="alert alert-info">{{ error_braintree_account_paypal }}</div> 642 <input type="hidden" name="payment_pp_braintree_paypal_option" value="0" /> 643 {% else %} 644 <div class="form-group"> 645 <label class="col-sm-2 control-label" for="input-paypal-option"><span data-toggle="tooltip" title="{{ help_paypal_option }}">{{ entry_paypal_option }}</span></label> 646 <div class="col-sm-10"> 647 <select name="payment_pp_braintree_paypal_option" id="input-vault" class="form-control"> 648 {% if payment_pp_braintree_paypal_option %} 649 <option value="1" selected="selected">{{ text_enabled }}</option> 650 <option value="0">{{ text_disabled }}</option> 651 {% else %} 652 <option value="1">{{ text_enabled }}</option> 653 <option value="0" selected="selected">{{ text_disabled }}</option> 654 {% endif %} 655 </select> 656 </div> 657 </div> 658 659 <!-- required at a later date but must be empty --> 660 <input type="hidden" name="payment_pp_braintree_billing_agreement" value="" /> 661 662 <div class="form-group"> 663 <label class="col-sm-2 control-label" for="input-paypal-button-colour">{{ entry_paypal_button_colour }}</label> 664 <div class="col-sm-10"> 665 <select name="payment_pp_braintree_paypal_button_colour" id="input-paypal-button-colour" class="form-control"> 666 <option value="gold"{% if payment_pp_braintree_paypal_button_colour == "gold" %} selected="selected"{% endif %}>{{ text_paypal_gold }}</option> 667 <option value="blue"{% if payment_pp_braintree_paypal_button_colour == "blue" %} selected="selected"{% endif %}>{{ text_paypal_blue }}</option> 668 <option value="silver"{% if payment_pp_braintree_paypal_button_colour == "silver" %} selected="selected"{% endif %}>{{ text_paypal_silver }}</option> 669 </select> 670 </div> 671 </div> 672 <div class="form-group"> 673 <label class="col-sm-2 control-label" for="input-paypal-button-size">{{ entry_paypal_button_size }}</label> 674 <div class="col-sm-10"> 675 <select name="payment_pp_braintree_paypal_button_size" id="input-paypal-button-size" class="form-control"> 676 <option value="tiny"{% if payment_pp_braintree_paypal_button_size == "tiny" %} selected="selected"{% endif %}>{{ text_paypal_tiny }}</option> 677 <option value="small"{% if payment_pp_braintree_paypal_button_size == "small" %} selected="selected"{% endif %}>{{ text_paypal_small }}</option> 678 <option value="medium"{% if payment_pp_braintree_paypal_button_size == "medium" %} selected="selected"{% endif %}>{{ text_paypal_medium }}</option> 679 </select> 680 </div> 681 </div> 682 <div class="form-group"> 683 <label class="col-sm-2 control-label" for="input-paypal-button-shape">{{ entry_paypal_button_shape }}</label> 684 <div class="col-sm-10"> 685 <select name="payment_pp_braintree_paypal_button_shape" id="input-paypal-button-shape" class="form-control"> 686 <option value="pill"{% if payment_pp_braintree_paypal_button_shape == "pill" %} selected="selected"{% endif %}>{{ text_paypal_pill }}</option> 687 <option value="rect"{% if payment_pp_braintree_paypal_button_shape == "rect" %} selected="selected"{% endif %}>{{ text_paypal_rectangular }}</option> 688 </select> 689 </div> 690 </div> 691 <div class="form-group"> 692 <label class="col-sm-2 control-label">{{ text_paypal_preview }}</label> 693 <div class="col-sm-10"> 694 <script src="https://www.paypalobjects.com/api/button.js?" 695 data-merchant="braintree" 696 data-id="paypal-button" 697 data-button="checkout" 698 data-color="{{ payment_pp_braintree_paypal_button_colour }}" 699 data-size="{{ payment_pp_braintree_paypal_button_size }}" 700 data-shape="{{ payment_pp_braintree_paypal_button_shape }}" 701 data-button_type="submit" 702 data-button_disabled="true" 703 ></script> 704 </div> 705 </div> 706 <div class="form-group"> 707 <div class="col-sm-2"><a href="{{ button_configure }}" target="_blank" class="btn btn-primary pull-right">{{ button_enable }}</a></div> 708 <div class="col-sm-10"><p>{{ text_enable_button }}</p></div> 709 </div> 710 {% endif %} 711 </div> 712 <div class="tab-pane" id="tab-transaction"> 713 {% if braintree_config.paypal_enabled == 0 %} 714 <div class="alert alert-info">{{ error_braintree_account_paypal }}</div> 715 {% else %} 716 {% if payment_pp_braintree_status == 1 %} 717 <div class="well"> 718 <div class="row"> 719 <div class="col-sm-3"> 720 <div class="form-group"> 721 <label class="control-label" for="input-transaction-id">{{ entry_transaction_id }}</label> 722 <input type="text" name="filter_transaction_id" value="" placeholder="Transaction ID" id="input-transaction-id" class="form-control" /> 723 </div> 724 <div class="form-group"> 725 <label class="control-label" for="input-transaction-type">{{ entry_transaction_type }}</label> 726 <select name="filter_transaction_type" id="input-transaction-type" class="form-control"> 727 <option value="*" selected="selected">{{ text_all }}</option> 728 <option value="sale">{{ text_sale }}</option> 729 <option value="credit">{{ text_credit }}</option> 730 </select> 731 </div> 732 <div class="form-group"> 733 <div class="col-sm-6" style="padding-left: 0;"> 734 <label class="control-label" for="input-date-from">{{ entry_date_from }}</label> 735 <div class="input-group date"> 736 <input type="text" name="filter_date_from" value="" placeholder="From" data-date-format="YYYY-MM-DD" id="input-date-from" class="form-control" /> 737 <span class="input-group-btn"> 738 <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button> 739 </span> 740 </div> 741 </div> 742 <div class="col-sm-6" style="padding-right: 0;"> 743 <label class="control-label" for="input-date-to">{{ entry_date_to }}</label> 744 <div class="input-group date"> 745 <input type="text" name="filter_date_to" value="" placeholder="To" data-date-format="YYYY-MM-DD" id="input-date-to" class="form-control" /> 746 <span class="input-group-btn"> 747 <button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button> 748 </span> 749 </div> 750 </div> 751 </div> 752 </div> 753 <div class="col-sm-3"> 754 <div class="form-group"> 755 <label class="control-label" for="input-payment-type">{{ entry_payment_type }}</label> 756 <select name="filter_payment_type" id="input-payment-type" class="form-control"> 757 <option value="*" selected="selected">{{ text_all }}</option> 758 <option value="Credit Card">{{ text_credit_card }}</option> 759 <option value="PayPal">{{ text_paypal }}</option> 760 </select> 761 </div> 762 <div class="form-group"> 763 <label class="control-label" for="input-card-type">{{ entry_card_type }}</label> 764 <select name="filter_card_type" id="input-card-type" class="form-control"> 765 <option value="*">{{ text_all }}</option> 766 {% for card_type in card_types %} 767 <option value="{{ card_type }}">{{ card_type }}</option> 768 {% endfor %} 769 </select> 770 </div> 771 <div class="form-group"> 772 <div class="col-sm-6" style="padding-left: 0;"> 773 <label class="control-label" for="input-amount-from">{{ entry_amount_from }}</label> 774 <input type="text" name="filter_amount_from" value="" placeholder="From" id="input-amount-from" class="form-control" /> 775 </div> 776 <div class="col-sm-6" style="padding-right: 0;"> 777 <label class="control-label" for="input-amount-to">{{ entry_amount_to }}</label> 778 <input type="text" name="filter_amount_to" value="" placeholder="To" id="input-amount-to" class="form-control" /> 779 </div> 780 </div> 781 </div> 782 <div class="col-sm-3"> 783 <div class="form-group"> 784 <label class="control-label" for="input-card-type">{{ entry_transaction_status }}</label> 785 <div class="well well-sm" style="height: 190px; overflow: auto; margin-bottom: 0;"> 786 {% for transaction_status in transaction_statuses %} 787 <div class="checkbox"> 788 <label> 789 <input class="filter-transaction-status" type="checkbox" name="filter_transaction_status[]" value="{{ transaction_status }}" checked="checked" /> {{ transaction_status }} 790 </label> 791 </div> 792 {% endfor %} 793 </div> 794 </div> 795 </div> 796 <div class="col-sm-3"> 797 <div class="form-group"> 798 <label class="control-label" for="input-merchant-account-id">{{ entry_merchant_account_id }}</label> 799 <select name="filter_merchant_account_id" id="input-merchant-account-id" class="form-control"> 800 <option value="*">All</option> 801 {% for pp_braintree_account_value in payment_pp_braintree_account %} 802 {% if pp_braintree_account_value.merchant_account_id %} 803 <option value="{{ pp_braintree_account_value.merchant_account_id }}">{{ pp_braintree_account_value.merchant_account_id }}</option> 804 {% endif %} 805 {% endfor %} 806 </select> 807 </div> 808 <button type="button" id="button-filter" class="btn btn-primary pull-right"><i class="fa fa-search"></i> {{ button_filter }}</button> 809 </div> 810 </div> 811 </div> 812 <div id="table-action"></div> 813 {% else %} 814 {{ text_enable_transactions }} 815 {% endif %} 816 {% endif %} 817 </div> 818 </div> 819 </form> 820 </div> 821 </div> 822 </div> 823 </div> 824 <style> 825 #tab-transaction .form-group { 826 margin-left: 0; 827 margin-right: 0; 828 } 829 </style> 830 <script type="text/javascript"><!-- 831 $('#tabs a:first').tab('show'); 832 833 $('.date').datetimepicker({ 834 language: '{{ datepicker }}', 835 pickTime: false 836 }); 837 838 $('#button-filter').on('click', function(event) { 839 event.preventDefault(); 840 841 var url = 'index.php?route=extension/payment/pp_braintree/search&user_token={{ user_token }}'; 842 843 var filter_transaction_id = $('input[name=\'filter_transaction_id\']').val(); 844 845 if (filter_transaction_id) { 846 url += '&filter_transaction_id=' + encodeURIComponent(filter_transaction_id); 847 } 848 849 var filter_transaction_type = $('select[name=\'filter_transaction_type\']').val(); 850 851 if (filter_transaction_type != '*') { 852 url += '&filter_transaction_type=' + encodeURIComponent(filter_transaction_type); 853 } 854 855 var filter_payment_type = $('select[name=\'filter_payment_type\']').val(); 856 857 if (filter_payment_type != '*') { 858 url += '&filter_payment_type=' + encodeURIComponent(filter_payment_type); 859 } 860 861 var filter_card_type = $('select[name=\'filter_card_type\']').val(); 862 863 if (filter_card_type != '*') { 864 url += '&filter_card_type=' + encodeURIComponent(filter_card_type); 865 } 866 867 var filter_merchant_account_id = $('select[name=\'filter_merchant_account_id\']').val(); 868 869 if (filter_merchant_account_id != '*') { 870 url += '&filter_merchant_account_id=' + encodeURIComponent(filter_merchant_account_id); 871 } 872 873 $('.filter-transaction-status:checked').each(function(i) { 874 url += '&filter_transaction_status[' + i + ']=' + encodeURIComponent($(this).val()); 875 }); 876 877 var filter_date_from = $('input[name=\'filter_date_from\']').val(); 878 879 if (filter_date_from) { 880 url += '&filter_date_from=' + encodeURIComponent(filter_date_from); 881 } 882 883 var filter_date_to = $('input[name=\'filter_date_to\']').val(); 884 885 if (filter_date_to) { 886 url += '&filter_date_to=' + encodeURIComponent(filter_date_to); 887 } 888 889 var filter_amount_from = $('input[name=\'filter_amount_from\']').val(); 890 891 if (filter_amount_from) { 892 url += '&filter_amount_from=' + encodeURIComponent(filter_amount_from); 893 } 894 895 var filter_amount_to = $('input[name=\'filter_amount_to\']').val(); 896 897 if (filter_amount_to) { 898 url += '&filter_amount_to=' + encodeURIComponent(filter_amount_to); 899 } 900 901 $.ajax({ 902 url: url, 903 dataType: 'json', 904 beforeSend: function() { 905 $('#button-filter').button('loading'); 906 907 $('#table-action').html('<div style="width: 5em; margin: 0px auto;"><i class="braintree-loading fa fa-spinner fa-spin fa-5x" style="text-align: center; margin: 0 auto; width: 100%; font-size: 5em;"></i></div>'); 908 }, 909 complete: function() { 910 $('#button-filter').button('reset'); 911 }, 912 success: function(json) { 913 var html = ''; 914 915 html += '<table class="table table-bordered">'; 916 html += '<thead>'; 917 html += '<tr>'; 918 html += '<td class="text-left">{{ column_transaction_id }}</td>'; 919 html += '<td class="text-left">{{ column_amount }}</td>'; 920 html += '<td class="text-left">{{ column_status }}</td>'; 921 html += '<td class="text-left">{{ column_type }}</td>'; 922 html += '<td class="text-left">{{ column_customer }}</td>'; 923 html += '<td class="text-left">{{ column_order }}</td>'; 924 html += '<td class="text-left">{{ column_date_added }}</td>'; 925 html += '</tr>'; 926 html += '</thead>'; 927 html += '<tbody>'; 928 if (json.transactions) { 929 $(json.transactions).each(function(i) { 930 html += '<tr>'; 931 html += '<td><a href="#" class="transaction-id" data-id="' + this.transaction_id + '">' + this.transaction_id + '</a></td>'; 932 html += '<td>' + this.amount + ' ' + this.currency_iso + '</td>'; 933 html += '<td>' + this.status + '</td>'; 934 html += '<td>' + this.type + '</td>'; 935 936 if (this.customer_url) { 937 html += '<td><a href="' + this.customer_url + '">' + this.customer + '</a></td>'; 938 } else { 939 html += '<td>' + this.customer + '</td>'; 940 } 941 942 if (this.order) { 943 html += '<td><a href="' + this.order + '">View</a></td>'; 944 } else { 945 html += '<td></td>'; 946 } 947 948 html += '<td>' + this.date_added + '</td>'; 949 }); 950 } else { 951 html += '<tr><td class="text-center" colspan="8">{{ text_no_results }}</td></tr>'; 952 } 953 954 html += '</tbody>'; 955 html += '</table>'; 956 957 $('#table-action').html(html); 958 } 959 }); 960 }); 961 962 $(document).on('click', '.transaction-id', function(event) { 963 event.preventDefault(); 964 965 getTransaction($(this).attr('data-id')); 966 }); 967 968 $(document).on('click', '#delete-link', function(event) { 969 event.preventDefault(); 970 971 $('input[name="payment_pp_braintree_access_token"]').val(''); 972 $('input[name="payment_pp_braintree_refresh_token"]').val(''); 973 $('input[name="payment_pp_braintree_merchant_id"]').val(''); 974 $('input[name="payment_pp_braintree_public_key"]').val(''); 975 $('select[name="payment_pp_braintree_status"]').val(0); 976 977 $('#form-braintree').submit(); 978 }); 979 980 $(document).ready(function() { 981 if ($('#input-3ds-status').val() == 1) { 982 $('.three-ds-status').show(); 983 } else { 984 $('.three-ds-status').hide(); 985 } 986 }); 987 988 $('#input-3ds-status').on('change', function() { 989 if ($(this).val() == 1) { 990 $('.three-ds-status').show(); 991 } else { 992 $('.three-ds-status').hide(); 993 } 994 }); 995 996 function getTransaction(transaction_id) { 997 $.ajax({ 998 url: 'index.php?route=extension/payment/pp_braintree/getTransaction&user_token={{ user_token }}', 999 dataType: 'html', 1000 data: { 1001 transaction_id: transaction_id 1002 }, 1003 beforeSend: function() { 1004 $('#button-filter').button('loading'); 1005 1006 $('#table-action').html('<div style="width: 5em; margin: 0px auto;"><i class="braintree-loading fa fa-spinner fa-spin fa-5x" style="text-align: center; margin: 0 auto; width: 100%; font-size: 5em;"></i></div>'); 1007 }, 1008 complete: function() { 1009 $('#button-filter').button('reset'); 1010 }, 1011 success: function(html) { 1012 $('#table-action').html(html); 1013 } 1014 }); 1015 } 1016 //--></script> 1017 1018 {% if auth_connect_url %} 1019 <script src="https://assets.braintreegateway.com/v1/braintree-oauth-connect.js"></script> 1020 <script type="text/javascript"><!-- 1021 new BraintreeOAuthConnect({ 1022 connectUrl: '{{ auth_connect_url }}', 1023 container: 'bt-connect', 1024 onError: function (error) { 1025 alert(error.message); 1026 } 1027 }); 1028 $('#bt-connect').show(); 1029 //--></script> 1030 {% endif %} 1031 {{ footer }}