adyen-skinbuilder 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +9 -9
- data/CHANGELOG.md +4 -1
- data/Gemfile.lock +1 -1
- data/lib/adyen-skinbuilder/server.rb +15 -4
- data/lib/adyen-skinbuilder/server/views/_adyen_form.html.erb +14 -19
- data/lib/adyen-skinbuilder/server/views/_adyen_payment_fields.html.erb +1560 -910
- data/lib/adyen-skinbuilder/server/views/css/reset.css +137 -5
- data/lib/adyen-skinbuilder/server/views/img/pm/bankTransfer_IBAN.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/bankTransfer_NL.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/directdebit_NL.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/hyvesafrekenen.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/maestro_small.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/openinvoice.png +0 -0
- data/lib/adyen-skinbuilder/server/views/js/animatedcollapse.js +114 -0
- data/lib/adyen-skinbuilder/server/views/js/cc.js +456 -0
- data/lib/adyen-skinbuilder/server/views/js/default.js +214 -7
- data/lib/adyen-skinbuilder/server/views/layout.html.erb +8 -6
- data/lib/adyen-skinbuilder/server/views/skin.html.erb +1 -6
- data/lib/adyen-skinbuilder/version.rb +1 -1
- data/spec/lib/adyen-skinbuilder/server_spec.rb +1 -1
- metadata +11 -8
- data/lib/adyen-skinbuilder/server/views/img/icons/error.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/card.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/ideal.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/vias_small.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/visa.png +0 -0
@@ -95,6 +95,11 @@ function formValidate(form, group) {
|
|
95
95
|
} catch (err) {}
|
96
96
|
markErrorFields(errors);
|
97
97
|
setErrorMessages(errors, group);
|
98
|
+
|
99
|
+
if(typeof resizeIframe != 'undefined'){
|
100
|
+
resizeIframe();
|
101
|
+
}
|
102
|
+
|
98
103
|
return false;
|
99
104
|
}
|
100
105
|
|
@@ -179,7 +184,6 @@ function validateElement(el) {
|
|
179
184
|
return true;
|
180
185
|
}
|
181
186
|
|
182
|
-
|
183
187
|
function markErrorFields(errors) {
|
184
188
|
if(errors.length == 0) return;
|
185
189
|
for(var i = 0; i < errors.length; ++i) {
|
@@ -187,13 +191,17 @@ function markErrorFields(errors) {
|
|
187
191
|
if(! notNull(el)) continue;
|
188
192
|
if(el.type == "hidden") continue;
|
189
193
|
if (el.parentNode.nodeName == "DIV") {
|
190
|
-
el.parentNode.className
|
194
|
+
if(el.parentNode.className.indexOf('errorDiv') === -1){
|
195
|
+
el.parentNode.className += " errorDiv";
|
196
|
+
}
|
197
|
+
}
|
198
|
+
if(el.className.indexOf('errorField') === -1){
|
199
|
+
el.className += " errorField";
|
191
200
|
}
|
192
|
-
el.className = "errorField";
|
193
201
|
}
|
194
|
-
|
195
202
|
}
|
196
203
|
|
204
|
+
|
197
205
|
function setOkMessages(messages) {
|
198
206
|
if ( notNull(document.getElementById("okFrameMessages"))) {
|
199
207
|
var messageHTML = "";
|
@@ -225,8 +233,10 @@ function setErrorMessages(errors,group) {
|
|
225
233
|
hideElement("okFrame");
|
226
234
|
}
|
227
235
|
|
228
|
-
|
229
|
-
|
236
|
+
function clearErrors(fields, dontHideErrorFrame, fieldClass) {
|
237
|
+
if(! fieldClass) {
|
238
|
+
fieldClass = "inputField";
|
239
|
+
}
|
230
240
|
for(var i = 0; i < fields.length; ++i) {
|
231
241
|
obj = document.getElementById(fields[i]);
|
232
242
|
|
@@ -235,7 +245,7 @@ function clearErrors(fields, dontHideErrorFrame) {
|
|
235
245
|
if (obj.parentNode.nodeName == "DIV") {
|
236
246
|
obj.parentNode.className = "fieldDiv";
|
237
247
|
}
|
238
|
-
obj.className =
|
248
|
+
obj.className = fieldClass;
|
239
249
|
}
|
240
250
|
if(! dontHideErrorFrame) {
|
241
251
|
hideElement("errorFrameValidationErrors");
|
@@ -348,6 +358,203 @@ function confirmMessage(f) {
|
|
348
358
|
return false;
|
349
359
|
}
|
350
360
|
|
361
|
+
function blockNonNumberEvents(e) {
|
362
|
+
var key;
|
363
|
+
var isCtrl = false;
|
364
|
+
var keychar;
|
365
|
+
var reg;
|
366
|
+
|
367
|
+
if(window.event) {
|
368
|
+
key = e.keyCode;
|
369
|
+
isCtrl = window.event.ctrlKey
|
370
|
+
}
|
371
|
+
else if(e.which) {
|
372
|
+
key = e.which;
|
373
|
+
isCtrl = e.ctrlKey;
|
374
|
+
}
|
375
|
+
|
376
|
+
if (isNaN(key)) return true;
|
377
|
+
|
378
|
+
keychar = String.fromCharCode(key);
|
379
|
+
|
380
|
+
// check for backspace or delete, or if Ctrl was pressed
|
381
|
+
if (key == 8 || isCtrl) {
|
382
|
+
return true;
|
383
|
+
}
|
384
|
+
|
385
|
+
reg = /[\d ]/;
|
386
|
+
|
387
|
+
return reg.test(keychar);
|
388
|
+
}
|
389
|
+
|
390
|
+
var openedWindow, timer, issuerId, popupX, popupY = null;
|
391
|
+
var issuerPopupSize = new Object();
|
392
|
+
var popupOpened = false;
|
393
|
+
var selectedPopupBrand = null;
|
394
|
+
|
395
|
+
var setSelectedPopupBrand = function(brand){
|
396
|
+
selectedPopupBrand = brand;
|
397
|
+
};
|
398
|
+
|
399
|
+
var validateAndOpenIfRequired = function(form, group, url){
|
400
|
+
var mygroup = group;
|
401
|
+
|
402
|
+
if (group == "default" && selectedPopupBrand !== null){
|
403
|
+
mygroup = selectedPopupBrand;
|
404
|
+
}
|
405
|
+
|
406
|
+
if (typeof openInPopup != 'undefined' && openInPopup[mygroup]){
|
407
|
+
return validateAndOpen(form, group,url);
|
408
|
+
}
|
409
|
+
|
410
|
+
return formValidate(form, group);
|
411
|
+
};
|
412
|
+
|
413
|
+
var validateAndOpen = function(form, group, url){
|
414
|
+
//enable re-opening popUp for 3D
|
415
|
+
submitOnlyOnce = function (f) {
|
416
|
+
return true;
|
417
|
+
};
|
418
|
+
|
419
|
+
if(formValidate(form, group)){
|
420
|
+
//check if window is in an iFrame
|
421
|
+
if (popupX == null) popupX = "800";
|
422
|
+
if (popupY == null) popupY = "600";
|
423
|
+
|
424
|
+
if (issuerId != null) {
|
425
|
+
var popupSize = issuerPopupSize[issuerId];
|
426
|
+
if (popupSize != null){
|
427
|
+
popupX = popupSize.x;
|
428
|
+
popupY = popupSize.y;
|
429
|
+
}
|
430
|
+
|
431
|
+
var element = document.getElementById("issuerId");
|
432
|
+
|
433
|
+
if ( !element) {
|
434
|
+
element = document.createElement( 'input' );
|
435
|
+
element.type = 'hidden';
|
436
|
+
element.name = element.id = "issuerId";
|
437
|
+
form.appendChild( element );
|
438
|
+
}
|
439
|
+
|
440
|
+
if (group == "default" && selectedPopupBrand !== null){
|
441
|
+
mygroup = selectedPopupBrand;
|
442
|
+
}
|
443
|
+
|
444
|
+
element.setAttribute( 'value', issuerId );
|
445
|
+
}
|
446
|
+
|
447
|
+
|
448
|
+
if(selectedPopupBrand !== null){
|
449
|
+
var element = document.getElementById("brandCode");
|
450
|
+
|
451
|
+
if ( !element) {
|
452
|
+
element = document.createElement( 'input' );
|
453
|
+
element.type = "hidden";
|
454
|
+
element.name = "brandCode";
|
455
|
+
element.value = selectedPopupBrand;
|
456
|
+
form.appendChild( element );
|
457
|
+
}
|
458
|
+
}
|
459
|
+
|
460
|
+
if (popupX > screen.width - 100) {
|
461
|
+
popupX = screen.width - 100;
|
462
|
+
}
|
463
|
+
|
464
|
+
if (popupY > screen.height - 100) {
|
465
|
+
popupY = screen.height - 100;
|
466
|
+
}
|
467
|
+
|
468
|
+
if (popupOpened) {
|
469
|
+
return false;
|
470
|
+
}
|
471
|
+
|
472
|
+
popupOpened = true;
|
473
|
+
openedWindow = window.open('',"mypopup", "width="+popupX+", height="+popupY+", scrollbars=yes, resizable=yes");
|
474
|
+
openedWindow.focus();
|
475
|
+
|
476
|
+
var pmcontent = document.getElementById("pmcontent");
|
477
|
+
if (pmcontent != null) pmcontent.style.display="none";
|
478
|
+
|
479
|
+
var foot = document.getElementById("foot");
|
480
|
+
if (foot != null) foot.style.display="none";
|
481
|
+
|
482
|
+
var cfooter = document.getElementById("cfooter");
|
483
|
+
if (cfooter != null) cfooter.style.display="none";
|
484
|
+
|
485
|
+
var waitingdiv = document.getElementById("waitingdiv");
|
486
|
+
if (waitingdiv != null) waitingdiv.style.display="block";
|
487
|
+
|
488
|
+
var usingPopUp = document.getElementById("usingPopUp");
|
489
|
+
var previousUsingPopUp;
|
490
|
+
if (usingPopUp != null){
|
491
|
+
previousUsingPopUp = usingPopUp.value;
|
492
|
+
usingPopUp.value="true";
|
493
|
+
}
|
494
|
+
|
495
|
+
form.submit();
|
496
|
+
|
497
|
+
document.getElementById("pmcontent").redirectCallback = function(){
|
498
|
+
setTimeout(function(){
|
499
|
+
|
500
|
+
var ifr = parent.document.getElementById("myIFrame");
|
501
|
+
ifr.parentNode.removeChild(ifr);
|
502
|
+
|
503
|
+
}, 5000);
|
504
|
+
|
505
|
+
|
506
|
+
}
|
507
|
+
if(openedWindow){
|
508
|
+
timer = setInterval(checkChild, 500);
|
509
|
+
}
|
510
|
+
|
511
|
+
if (typeof popupOpenedHandler === 'function') {
|
512
|
+
popupOpenedHandler();
|
513
|
+
}
|
514
|
+
}
|
515
|
+
|
516
|
+
if (typeof resizeIframe === 'function') {
|
517
|
+
resizeIframe();
|
518
|
+
}
|
519
|
+
|
520
|
+
return false;
|
521
|
+
}
|
522
|
+
|
523
|
+
var issuerButtonClicked = function(butId){
|
524
|
+
issuerId = butId;
|
525
|
+
}
|
526
|
+
|
527
|
+
var checkChild = function(){
|
528
|
+
if (openedWindow.closed) {
|
529
|
+
var pmcontent = document.getElementById("pmcontent");
|
530
|
+
if (pmcontent != null) pmcontent.style.display="block";
|
531
|
+
|
532
|
+
var foot = document.getElementById("foot");
|
533
|
+
if (foot != null) foot.style.display="block";
|
534
|
+
|
535
|
+
var cfooter = document.getElementById("cfooter");
|
536
|
+
if (cfooter != null) cfooter.style.display="block";
|
537
|
+
|
538
|
+
var waitingdiv = document.getElementById("waitingdiv");
|
539
|
+
if (waitingdiv != null) waitingdiv.style.display="none";
|
540
|
+
if (issuerId != null) {
|
541
|
+
issuerId = null;
|
542
|
+
var element = document.getElementById("issuerId");
|
543
|
+
|
544
|
+
if ( !element) {
|
545
|
+
element.parentNode.removeChild(element);
|
546
|
+
}
|
547
|
+
}
|
548
|
+
clearInterval(timer);
|
549
|
+
|
550
|
+
popupOpened = false;
|
551
|
+
|
552
|
+
if(typeof resizeIframe != 'undefined'){
|
553
|
+
resizeIframe();
|
554
|
+
}
|
555
|
+
}
|
556
|
+
}
|
557
|
+
|
351
558
|
// vX library (Ajax, Extend, GetElement, Animation)
|
352
559
|
var _=_?_:{}
|
353
560
|
_.X=function(u,f,d,x){x=new(window.ActiveXObject?ActiveXObject:XMLHttpRequest)('Microsoft.XMLHTTP');x.open(d?'POST':'GET',u,1);d?x.setRequestHeader('Content-type','application/x-www-form-urlencoded'):0;x.onreadystatechange=function(){x.readyState>3&&f?f(x.responseText,x):0};x.send(d)}
|
@@ -1,11 +1,13 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2
3
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
3
4
|
<head>
|
4
5
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
5
6
|
<title><%= @skin.code %> - Adyen-Skinbuilder</title>
|
6
7
|
|
7
|
-
<link rel="
|
8
|
-
|
8
|
+
<link rel="shortcut icon" href="/sf/<%= @skin.code %>/img/favicon.ico" />
|
9
|
+
|
10
|
+
<link rel="stylesheet" type="text/css" href="/hpp/css/reset.css" />
|
9
11
|
<link rel="stylesheet" media="screen" type="text/css" href="/sf/<%= @skin.code %>/css/screen.css" />
|
10
12
|
<link rel="stylesheet" media="print" type="text/css" href="/sf/<%= @skin.code %>/css/print.css" />
|
11
13
|
|
@@ -17,10 +19,10 @@
|
|
17
19
|
</head>
|
18
20
|
<body>
|
19
21
|
<script type="text/javascript">
|
20
|
-
//<![CDATA[
|
22
|
+
//<![CDATA[
|
21
23
|
var clientIPAddress = "127.0.0.1";
|
22
24
|
var config = new Array();
|
23
|
-
config["pmmanimation"] =
|
25
|
+
config["pmmanimation"] = 2;
|
24
26
|
//]]>
|
25
27
|
</script>
|
26
28
|
|
@@ -29,6 +31,6 @@
|
|
29
31
|
<%= yield %>
|
30
32
|
|
31
33
|
<!-- ### -->
|
32
|
-
|
34
|
+
|
33
35
|
</body>
|
34
36
|
</html>
|
@@ -1,18 +1,13 @@
|
|
1
|
-
<!-- ### inc/cheader_[locale].txt or inc/cheader.txt (fallback) ### -->
|
2
1
|
<%= render_file "cheader" %>
|
3
2
|
|
4
3
|
<% adyen_form_tag do %>
|
5
|
-
<!-- ### inc/pmheader_[locale].txt or inc/pmheader.txt (fallback) ### -->
|
6
4
|
<%= render_file "pmheader" %>
|
7
5
|
|
8
6
|
<%= adyen_payment_fields %>
|
9
7
|
|
10
|
-
<!-- ### inc/pmfooter_[locale].txt or inc/pmfooter.txt (fallback) ### -->
|
11
8
|
<%= render_file "pmfooter" %>
|
12
9
|
|
13
|
-
<!-- ### inc/customfields_[locale].txt or inc/customfields.txt (fallback) ### -->
|
14
10
|
<%= render_file "customfields" %>
|
15
11
|
<% end %>
|
16
12
|
|
17
|
-
|
18
|
-
<%= render_file "cfooter" %>
|
13
|
+
<%= render_file "cfooter" %>
|
@@ -97,7 +97,7 @@ describe 'SkinBuilder server' do
|
|
97
97
|
end
|
98
98
|
|
99
99
|
it 'returns adyen form' do
|
100
|
-
last_response.body.should include('<form id="pageform" action="" method="post"
|
100
|
+
last_response.body.should include('<form id="pageform" action="#" method="post"')
|
101
101
|
end
|
102
102
|
|
103
103
|
it 'returns order data' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adyen-skinbuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Priit Haamer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-09-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
@@ -110,7 +110,6 @@ files:
|
|
110
110
|
- lib/adyen-skinbuilder/server/views/_adyen_form.html.erb
|
111
111
|
- lib/adyen-skinbuilder/server/views/_adyen_payment_fields.html.erb
|
112
112
|
- lib/adyen-skinbuilder/server/views/css/reset.css
|
113
|
-
- lib/adyen-skinbuilder/server/views/img/icons/error.png
|
114
113
|
- lib/adyen-skinbuilder/server/views/img/pm/TESTBANK1.png
|
115
114
|
- lib/adyen-skinbuilder/server/views/img/pm/TESTBANK10.png
|
116
115
|
- lib/adyen-skinbuilder/server/views/img/pm/TESTBANK2.png
|
@@ -125,14 +124,18 @@ files:
|
|
125
124
|
- lib/adyen-skinbuilder/server/views/img/pm/TESTBANKPENDING.png
|
126
125
|
- lib/adyen-skinbuilder/server/views/img/pm/TESTBANKREFUSED.png
|
127
126
|
- lib/adyen-skinbuilder/server/views/img/pm/amex_small.png
|
128
|
-
- lib/adyen-skinbuilder/server/views/img/pm/
|
129
|
-
- lib/adyen-skinbuilder/server/views/img/pm/
|
127
|
+
- lib/adyen-skinbuilder/server/views/img/pm/bankTransfer_IBAN.png
|
128
|
+
- lib/adyen-skinbuilder/server/views/img/pm/bankTransfer_NL.png
|
129
|
+
- lib/adyen-skinbuilder/server/views/img/pm/directdebit_NL.png
|
130
|
+
- lib/adyen-skinbuilder/server/views/img/pm/hyvesafrekenen.png
|
131
|
+
- lib/adyen-skinbuilder/server/views/img/pm/maestro_small.png
|
130
132
|
- lib/adyen-skinbuilder/server/views/img/pm/mc_small.png
|
133
|
+
- lib/adyen-skinbuilder/server/views/img/pm/openinvoice.png
|
131
134
|
- lib/adyen-skinbuilder/server/views/img/pm/unknown_small.png
|
132
|
-
- lib/adyen-skinbuilder/server/views/img/pm/vias_small.png
|
133
|
-
- lib/adyen-skinbuilder/server/views/img/pm/visa.png
|
134
135
|
- lib/adyen-skinbuilder/server/views/img/pm/visa_small.png
|
135
136
|
- lib/adyen-skinbuilder/server/views/index.html.erb
|
137
|
+
- lib/adyen-skinbuilder/server/views/js/animatedcollapse.js
|
138
|
+
- lib/adyen-skinbuilder/server/views/js/cc.js
|
136
139
|
- lib/adyen-skinbuilder/server/views/js/default.js
|
137
140
|
- lib/adyen-skinbuilder/server/views/layout.html.erb
|
138
141
|
- lib/adyen-skinbuilder/server/views/skeleton.html
|
@@ -184,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
187
|
version: '0'
|
185
188
|
requirements: []
|
186
189
|
rubyforge_project:
|
187
|
-
rubygems_version: 2.
|
190
|
+
rubygems_version: 2.1.11
|
188
191
|
signing_key:
|
189
192
|
specification_version: 4
|
190
193
|
summary: Simple Sinatra server to make coding Adyen skins easier
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|