universal 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d627d5ed0008c41aabcb94044090625f1c02d58ea9cbcbf80627ea9d19ad368
4
- data.tar.gz: b5d45f7d4a43efa6014abffe3d2b8583026b5b61d8181e187b314a5f626feb10
3
+ metadata.gz: 0c76f9ca8f3412025c35ecdbed849a83e4c9cf582b59bc013e569cb6d3d297ce
4
+ data.tar.gz: 2ab540f9df513faf5fdd2b78575b154ed2dec3dca826cbaad08ebb21a08974dd
5
5
  SHA512:
6
- metadata.gz: 7eebcc5a3e502d9afa3101e9f679fa2c32fa3f0017b1eaee910fdc1ff8b06f4ced2ae0498e0dd0c97af8ded9ad833d46e2fdba3e113260f26f34ff037cd1cbf2
7
- data.tar.gz: e892f9b9436af856c0c2bef2c4d05b77d2158a119c9dd14f233ef038ae4699ff56dbddebbbcc4bbbd042affb352c418c54713f89bf04675644f7c2f9aef66dfa
6
+ metadata.gz: 429d105c8bf4084b8e10482c9ed6196cdfab275ee9c2d65ee7383e45f98b4663d77549377610ecf0c3b845636103cd5b1f78afcb097270094814a32a0d6c8694
7
+ data.tar.gz: 07c5617b85de508761fd93b417fd50b254717046ef4b9152dd0eff087693c782b4f016d651668130e9d90e2a3c8ea0f36ea9fc160ccf548f1b0d2339d86f63b5
data/README.md CHANGED
@@ -12,13 +12,13 @@ TODO: Delete this and the text above, and describe your gem
12
12
  Add this line to your Jekyll site's `Gemfile`:
13
13
 
14
14
  ```ruby
15
- gem "universal-gem"
15
+ gem "universal"
16
16
  ```
17
17
 
18
18
  And add this line to your Jekyll site's `_config.yml`:
19
19
 
20
20
  ```yaml
21
- theme: universal-gem
21
+ theme: universal
22
22
  ```
23
23
 
24
24
  And then execute:
@@ -27,7 +27,7 @@ And then execute:
27
27
 
28
28
  Or install it yourself as:
29
29
 
30
- $ gem install universal-gem
30
+ $ gem install universal
31
31
 
32
32
  ## Usage
33
33
 
@@ -1,10 +1,160 @@
1
- <div id="get-it">
2
- <div class="container">
3
- <div class="col-md-8 col-sm-12">
4
- <h3>Vous voulez ce site pour vous ?</h3>
1
+ <section>
2
+ <div id="content">
3
+ <div class="row">
4
+ <div id="get-it">
5
+ <div class="container">
6
+ <div class="col-md-8 col-sm-12">
7
+ <h3>Vous voulez ce site pour vous ?</h3>
8
+ </div>
9
+ <div class="col-md-4 col-sm-12">
10
+ <button class="btn btn-lg btn-warning" data-parent="#accordionThree" data-toggle="collapse" href="#collapse3a"> Commandez !</button>
11
+ </div>
12
+ </div>
13
+ </div>
14
+ <div class="container">
15
+ <div class="panel-group accordion" id="accordionThree">
16
+ <div class="panel panel-default">
17
+ <div id="collapse3a" class="panel-collapse collapse">
18
+ <div class="panel-body">
19
+ <script src="https://js.stripe.com/v3/"></script>
20
+
21
+ <div class="col-md-9 clearfix" id="checkout">
22
+
23
+ <div class="box">
24
+ <form id="payment-form">
25
+ <input type="hidden" name="token" />
26
+ <input type="hidden" name="stamplayId" value="{{ stamplayId }}"/>
27
+
28
+ <div class="row">
29
+ <div class="col-sm-6">
30
+ <div class="form-group">
31
+ <label for="firstname">Prénom</label>
32
+ <input type="text" class="form-control" id="firstname">
33
+ </div>
34
+ </div>
35
+ <div class="col-sm-6">
36
+ <div class="form-group">
37
+ <label for="lastname">Nom</label>
38
+ <input type="text" class="form-control" id="lastname">
39
+ </div>
40
+ </div>
41
+ </div>
42
+ <!-- /.row -->
43
+
44
+ <div class="row">
45
+ <div class="col-sm-6">
46
+ <div class="form-group">
47
+ <label for="company">Société</label>
48
+ <input type="text" class="form-control" id="company">
49
+ </div>
50
+ </div>
51
+ <div class="col-sm-6">
52
+ <div class="form-group">
53
+ <label for="street">Email</label>
54
+ <input type="text" class="form-control" id="email">
55
+ </div>
56
+ </div>
57
+ </div>
58
+ <!-- /.row -->
59
+
60
+ <div class="row">
61
+ <div class="col-sm-6">
62
+ <div class="form-group">
63
+ <label for="phone">Rue</label>
64
+ <input type="text" class="form-control" id="street">
65
+ </div>
66
+ </div>
67
+ <div class="col-sm-6 col-md-3">
68
+ <div class="form-group">
69
+ <label for="zip">Code postal</label>
70
+ <input type="text" class="form-control" id="zip">
71
+ </div>
72
+ </div>
73
+ <div class="col-sm-6 col-md-3">
74
+ <div class="form-group">
75
+ <label for="city">Ville</label>
76
+ <input type="text" class="form-control" id="city">
77
+ </div>
78
+ </div>
79
+ </div>
80
+ <div class="row">
81
+ <div class="col-sm-12">
82
+ <div class="form-group">
83
+ <p>
84
+ Votre paiement est sécurisé par notre partenaire Stripe. Vos informations confidentielles ne nous sont pas accessibles et sont conservées sur les serveurs sécurisés de Stripe.
85
+ </p>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ <div class="row">
90
+ <div class="col-sm-12">
91
+ <div class="form-group">
92
+ <label for="card">Carte bancaire</label>
93
+ <div id="card-element" class="form-control no-padding"></div>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ <button class="btn btn-template-main" type="submit">Payer</button>
98
+ <div class="outcome">
99
+ <div class="error"></div>
100
+ <div class="success">
101
+ Success! Your Stripe token is <span class="token"></span>
102
+ </div>
103
+ </div>
104
+ </form>
105
+ </div>
106
+
107
+ </div>
108
+
109
+ <!-- /.box -->
110
+
111
+ <!-- /.col-md-9 -->
112
+
113
+ <div class="col-md-3">
114
+
115
+ <div class="box" id="order-summary">
116
+ <div class="box-header">
117
+ <h3>Résumé</h3>
118
+ </div>
119
+ <p class="text-muted">Dés votre commande effectuée, vous recevrez un formulaire vous permettant de modifier le contenu de votre site.</p>
120
+
121
+ <div class="table-responsive">
122
+ <table class="table">
123
+ <tbody>
124
+ <tr>
125
+ <td>Création du site</td>
126
+ <th>400.00€</th>
127
+ </tr>
128
+ <tr>
129
+ <td>Hébergement</td>
130
+ <th>Offert la première année</th>
131
+ </tr>
132
+ <tr>
133
+ <td>Sous total</td>
134
+ <th>400,00€</th>
135
+ </tr>
136
+ <tr>
137
+ <td>TVA 20%</td>
138
+ <th>80,00€</th>
139
+ </tr>
140
+ <tr class="total">
141
+ <td>Total</td>
142
+ <th>480.00€</th>
143
+ </tr>
144
+ </tbody>
145
+ </table>
146
+ </div>
147
+
148
+ </div>
149
+
150
+ </div>
151
+ <!-- /.col-md-3 -->
152
+ </div>
153
+ </div>
154
+ </div>
155
+
156
+ </div>
157
+ </div>
158
+ </div>
5
159
  </div>
6
- <div class="col-md-4 col-sm-12">
7
- <button class="btn btn-lg btn-warning" id="stripe"> Commandez !</button>
8
- </div>
9
- </div>
10
- </div>
160
+ </section>
data/_includes/js.html CHANGED
@@ -12,13 +12,9 @@
12
12
 
13
13
  <!-- owl carousel -->
14
14
  <script src="assets/js/owl.carousel.min.js"></script>
15
-
16
- <!-- stripe -->
17
-
18
- <script src="https://checkout.stripe.com/checkout.js"></script>
19
- <script src="assets/js/stripe.checkout.js"></script>"
20
-
21
- <!-- stripe end -->
15
+
16
+ <!-- stripe form -->
17
+ <script src="assets/js/stripe.form-v2.js"></script>
22
18
 
23
19
  <script>
24
20
  (function(i, s, o, g, r, a, m) {
@@ -1,80 +1,84 @@
1
- form {
2
- margin-bottom: 20px;
3
- }
4
-
5
- .label {
6
- font-family: "Roboto", Helvetica, Arial, sans-serif;
7
- font-weight: normal;
8
- text-transform: uppercase;
9
- letter-spacing: 0.08em;
10
- }
11
-
12
- label {
13
- font-weight: normal;
14
- }
15
-
16
- label > span {
17
- float: left;
18
- }
19
-
20
- .field {
21
- -webkit-box-shadow: none;
22
- box-shadow: none;
23
- border-radius: 0;
24
- }
25
-
26
- .field:focus {
27
- border-color: #467fbf;
28
- outline: 0;
29
- -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(70, 127, 191, 0.6);
30
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(70, 127, 191, 0.6);
31
- }
32
-
33
- .field.StripeElement--focus {
34
- border-color: #F99A52;
35
- }
36
-
37
- button {
38
- color: #467fbf;
39
- background-color: #ffffff;
40
- border-color: #467fbf;
41
- }
42
-
43
- button:focus {
44
- }
45
-
46
- button:active {
47
- background: #467fbf;
48
- color: #ffffff;
49
- border-color: #467fbf;
50
- }
51
-
52
- .outcome {
53
- float: left;
54
- width: 100%;
55
- padding-top: 8px;
56
- min-height: 20px;
57
- text-align: center;
58
- }
59
-
60
- .success, .error {
61
- display: none;
62
- font-size: 13px;
63
- }
64
-
65
- .success.visible, .error.visible {
66
- display: inline;
67
- }
68
-
69
- .error {
70
- color: #E4584C;
71
- }
72
-
73
- .success {
74
- color: #F8B563;
75
- }
76
-
77
- .success .token {
78
- font-weight: 500;
79
- font-size: 13px;
1
+ form {
2
+ margin-bottom: 20px;
3
+ }
4
+
5
+ .label {
6
+ font-family: "Roboto", Helvetica, Arial, sans-serif;
7
+ font-weight: normal;
8
+ text-transform: uppercase;
9
+ letter-spacing: 0.08em;
10
+ }
11
+
12
+ label {
13
+ font-weight: normal;
14
+ }
15
+
16
+ label > span {
17
+ float: left;
18
+ }
19
+
20
+ .field {
21
+ -webkit-box-shadow: none;
22
+ box-shadow: none;
23
+ border-radius: 0;
24
+ }
25
+
26
+ .field:focus {
27
+ border-color: #467fbf;
28
+ outline: 0;
29
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(70, 127, 191, 0.6);
30
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(70, 127, 191, 0.6);
31
+ }
32
+
33
+ .field.StripeElement--focus {
34
+ border-color: #F99A52;
35
+ }
36
+
37
+ button {
38
+ color: #467fbf;
39
+ background-color: #ffffff;
40
+ border-color: #467fbf;
41
+ }
42
+
43
+ button:focus {
44
+ }
45
+
46
+ button:active {
47
+ background: #467fbf;
48
+ color: #ffffff;
49
+ border-color: #467fbf;
50
+ }
51
+
52
+ .outcome {
53
+ float: left;
54
+ width: 100%;
55
+ padding-top: 8px;
56
+ min-height: 20px;
57
+ text-align: center;
58
+ }
59
+
60
+ .success, .error {
61
+ display: none;
62
+ font-size: 13px;
63
+ }
64
+
65
+ .success.visible, .error.visible {
66
+ display: inline;
67
+ }
68
+
69
+ .error {
70
+ color: #E4584C;
71
+ }
72
+
73
+ .success {
74
+ color: #F8B563;
75
+ }
76
+
77
+ .success .token {
78
+ font-weight: 500;
79
+ font-size: 13px;
80
+ }
81
+
82
+ .no-padding {
83
+ padding: 0;
80
84
  }
@@ -0,0 +1,101 @@
1
+ var stripe = Stripe('pk_test_NIFiGhJBpoH8kDhbdLTx7TPv');
2
+ var elements = stripe.elements();
3
+
4
+ var card = elements.create('card', {
5
+ hidePostalCode: true,
6
+ style: {
7
+ base: {
8
+ iconColor: '#F99A52',
9
+ color: '#32315E',
10
+ lineHeight: '34px',
11
+ '::placeholder': {
12
+ color: '#CFD7DF',
13
+ padding:0,
14
+ }
15
+ },
16
+ }
17
+ });
18
+ card.mount('#card-element');
19
+
20
+ function generatePassword() {
21
+ var length = 8,
22
+ charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
23
+ retVal = "";
24
+ for (var i = 0, n = charset.length; i < length; ++i) {
25
+ retVal += charset.charAt(Math.floor(Math.random() * n));
26
+ }
27
+ return retVal;
28
+ }
29
+
30
+ function setOutcome(result) {
31
+ var successElement = document.querySelector('.success');
32
+ var errorElement = document.querySelector('.error');
33
+ successElement.classList.remove('visible');
34
+ errorElement.classList.remove('visible');
35
+
36
+ if (result.token) {
37
+
38
+ Stamplay.init('parsiweb');
39
+
40
+ var userData = {
41
+ email : document.getElementById('email').value,
42
+ password : generatePassword(),
43
+ userId: document.getElementById('stamplayId').value
44
+ }
45
+
46
+ Stamplay.User.signup(userData)
47
+ .then(function(user) {
48
+ Stamplay.Stripe.createCreditCard(user.id, result.token.id)
49
+ .then(function(creditCard) {
50
+ Stamplay.Stripe.createCustomer(user.id)
51
+ .then(function(res) {
52
+
53
+ // success
54
+ // Appel sur le webhook avec les data en question
55
+ Stamplay.Webhook("parsiweb_payment")
56
+ .post({
57
+ firstname: document.getElementById('firstname').value
58
+ lastname: document.getElementById('lastname').value,
59
+ user.id,
60
+ organisation_name: document.getElementById('company').value,
61
+ address: document.getElementById('street').value,
62
+ city: document.getElementById('city').value,
63
+ zip: document.getElementById('zip').value,
64
+ })
65
+ .then(function(res) {
66
+ // success
67
+ }, function(err) {
68
+ // error
69
+ })
70
+ }, function(err) {
71
+ // error
72
+ })
73
+ }, function(err){
74
+ // error
75
+ })
76
+ }, function(err) {
77
+ // error
78
+ })
79
+ } else if (result.error) {
80
+ errorElement.textContent = result.error.message;
81
+ errorElement.classList.add('visible');
82
+ }
83
+ }
84
+
85
+ card.on('change', function(event) {
86
+ setOutcome(event);
87
+ });
88
+
89
+ document.querySelector('form').addEventListener('submit', function(e) {
90
+ e.preventDefault();
91
+ var options = {
92
+ firstname: document.getElementById('firstname').value,
93
+ lastname: document.getElementById('lastname').value,
94
+ name: firstname + " " + lastname,
95
+ address_line1: document.getElementById('company').value,
96
+ address_line2: document.getElementById('street').value,
97
+ address_city: document.getElementById('city').value,
98
+ address_zip: document.getElementById('zip').value,
99
+ };
100
+ stripe.createToken(card, options).then(setOutcome);
101
+ });
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: universal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ondrej Svestka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-16 00:00:00.000000000 Z
11
+ date: 2017-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -134,6 +134,7 @@ files:
134
134
  - assets/js/jquery.parallax-1.1.3.js
135
135
  - assets/js/owl.carousel.min.js
136
136
  - assets/js/stripe.checkout.js
137
+ - assets/js/stripe.form-v2.js
137
138
  - assets/js/stripe.form.js
138
139
  - assets/js/waypoints.min.js
139
140
  homepage: https://bootstrapious.com/p/universal-business-e-commerce-template