mxit-rails 0.1.4 → 0.2.0
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.
- data/app/assets/images/mxit_rails/home.png +0 -0
- data/app/assets/javascripts/mxit_rails/emulator.js +33 -6
- data/app/assets/stylesheets/mxit_rails/emulator.css.scss +16 -21
- data/app/helpers/mxit_rails_helper.rb +22 -0
- data/app/views/emulator/index.html.erb +7 -5
- data/app/views/layouts/mxit.html.erb +5 -16
- data/config/routes.rb +3 -1
- data/lib/mxit_rails/descriptor.rb +2 -0
- data/lib/mxit_rails/engine.rb +0 -3
- data/lib/mxit_rails/page.rb +6 -1
- data/lib/mxit_rails/version.rb +1 -1
- data/test/dummy/app/controllers/form_controller.rb +3 -1
- data/test/dummy/app/controllers/welcome_controller.rb +2 -2
- data/test/dummy/app/views/form/index/age.html.erb +9 -2
- data/test/dummy/app/views/form/index/done.html.erb +6 -3
- data/test/dummy/app/views/form/index/name.html.erb +10 -2
- data/test/dummy/app/views/form/index/start.html.erb +10 -3
- data/test/dummy/app/views/form/index/surname.html.erb +9 -2
- data/test/dummy/app/views/index/index.html.erb +6 -4
- data/test/dummy/app/views/index/success.html.erb +5 -2
- data/test/dummy/app/views/welcome/easter_egg.html.erb +5 -2
- data/test/dummy/app/views/welcome/index.html.erb +11 -4
- data/test/dummy/config/application.rb +0 -3
- data/test/dummy/config/routes.rb +4 -2
- data/test/dummy/log/development.log +4629 -0
- data/test/dummy/log/production.log +30 -0
- data/test/dummy/tmp/cache/assets/D2C/AA0/sprockets%2F7bdf74c64e17769ae77b616e6dc39287 +0 -0
- data/test/dummy/tmp/cache/assets/D54/750/sprockets%2Fc16371b1a234c7c56cb01cb28a8bc5c3 +0 -0
- data/test/dummy/tmp/cache/assets/D9F/2D0/sprockets%2Fbd11d44fd5d620d8e6fb3953bd831dc8 +0 -0
- data/test/dummy/tmp/cache/assets/DAA/B80/sprockets%2Ff8082150f8c8beafcd445cc79a9a6a85 +0 -0
- data/test/dummy/tmp/cache/assets/DFB/940/sprockets%2F2faff4be90929be6a1b1de49ea25e33b +0 -0
- data/test/dummy/tmp/cache/assets/E15/260/sprockets%2Fea9c788716af4ccb19ff8e1d7ea47b8e +0 -0
- data/test/dummy/tmp/cache/assets/E26/4F0/sprockets%2F1cd8dafcb93f36aea8c2cf9d04c322d3 +0 -0
- data/test/dummy/tmp/cache/assets/E4F/E70/sprockets%2Fd9fffd76ac7c8ee08bedf3e257c81f99 +0 -0
- metadata +7 -4
- data/test/dummy/public/index.html +0 -26
Binary file
|
@@ -42,7 +42,7 @@ Emulator = (function() {
|
|
42
42
|
if (MXIT_PATH && (MXIT_PATH != ''))
|
43
43
|
Emulator.setUrl(MXIT_PATH);
|
44
44
|
else
|
45
|
-
Emulator.
|
45
|
+
Emulator.home();
|
46
46
|
},
|
47
47
|
|
48
48
|
clearCookie: function() {
|
@@ -54,7 +54,11 @@ Emulator = (function() {
|
|
54
54
|
if (MXIT_PATH && (MXIT_PATH != ''))
|
55
55
|
Emulator.setUrl(MXIT_PATH);
|
56
56
|
else
|
57
|
-
Emulator.
|
57
|
+
Emulator.home();
|
58
|
+
},
|
59
|
+
|
60
|
+
home: function() {
|
61
|
+
Emulator.setUrl(MXIT_ROOT);
|
58
62
|
},
|
59
63
|
|
60
64
|
getUrl: function() {
|
@@ -119,13 +123,27 @@ Emulator = (function() {
|
|
119
123
|
},
|
120
124
|
|
121
125
|
collapse: function() {
|
122
|
-
$('
|
123
|
-
$('#fadeout').show();
|
126
|
+
$('body').removeClass('collapse');
|
124
127
|
},
|
125
128
|
|
126
129
|
expand: function() {
|
127
|
-
$('
|
128
|
-
|
130
|
+
$('body').addClass('collapse');
|
131
|
+
},
|
132
|
+
|
133
|
+
expandCollapse: function(val) {
|
134
|
+
if (val) {
|
135
|
+
if (val == 'expand')
|
136
|
+
localStorage.setItem('expanded', true);
|
137
|
+
else
|
138
|
+
localStorage.removeItem('expanded');
|
139
|
+
}
|
140
|
+
|
141
|
+
var expanded = localStorage.getItem('expanded');
|
142
|
+
if (expanded) {
|
143
|
+
Emulator.expand();
|
144
|
+
} else {
|
145
|
+
Emulator.collapse();
|
146
|
+
}
|
129
147
|
},
|
130
148
|
|
131
149
|
refresh: function() {
|
@@ -149,6 +167,13 @@ Emulator = (function() {
|
|
149
167
|
this.activeLink = 0;
|
150
168
|
}
|
151
169
|
this.focusLink();
|
170
|
+
|
171
|
+
// Look for Rails default stacktrace and expand if it's there. Otherwise use the localstorage expanded setting
|
172
|
+
if ((Emulator.iframeElement('#env_dump').length > 0) && (Emulator.iframeElement('#session_dump').length > 0)) {
|
173
|
+
Emulator.expand();
|
174
|
+
} else {
|
175
|
+
Emulator.expandCollapse();
|
176
|
+
}
|
152
177
|
},
|
153
178
|
|
154
179
|
key: function(e) {
|
@@ -220,6 +245,8 @@ $(function() {
|
|
220
245
|
Emulator.clearCredentials();
|
221
246
|
}
|
222
247
|
|
248
|
+
Emulator.expandCollapse();
|
249
|
+
|
223
250
|
$('body').on('keydown', $.proxy(Emulator, 'key'));
|
224
251
|
$('#phone-input').on('keypress', $.proxy(Emulator, 'submit'))
|
225
252
|
|
@@ -13,7 +13,7 @@ html, body {
|
|
13
13
|
margin: 35px auto 0 auto;
|
14
14
|
position: relative;
|
15
15
|
}
|
16
|
-
|
16
|
+
.collapse #phone {
|
17
17
|
background: none;
|
18
18
|
position: absolute;
|
19
19
|
top: 37px;
|
@@ -31,7 +31,7 @@ html, body {
|
|
31
31
|
position: relative;
|
32
32
|
overflow: hidden;
|
33
33
|
}
|
34
|
-
|
34
|
+
.collapse #screen {
|
35
35
|
position: static;
|
36
36
|
width: 100%;
|
37
37
|
height: 100%;
|
@@ -49,7 +49,7 @@ iframe {
|
|
49
49
|
position: absolute;
|
50
50
|
z-index: 1;
|
51
51
|
}
|
52
|
-
|
52
|
+
.collapse .content {
|
53
53
|
width: 100%;
|
54
54
|
height: 100%;
|
55
55
|
}
|
@@ -145,28 +145,20 @@ a.link {
|
|
145
145
|
left: -1px;
|
146
146
|
position: relative;
|
147
147
|
}
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
top: 27px;
|
154
|
-
z-index: 10;
|
155
|
-
width: 90px;
|
156
|
-
height: 40px;
|
157
|
-
text-align: right;
|
158
|
-
}
|
159
|
-
#phone.collapse #phone-links {
|
160
|
-
right: 1px;
|
161
|
-
top: 5px;
|
148
|
+
.home .icon .image {
|
149
|
+
background-size: 21px;
|
150
|
+
top: -2px;
|
151
|
+
left: -1px;
|
152
|
+
position: relative;
|
162
153
|
}
|
154
|
+
|
163
155
|
#collapse {
|
164
156
|
display: none;
|
165
157
|
}
|
166
|
-
|
158
|
+
.collapse #expand {
|
167
159
|
display: none;
|
168
160
|
}
|
169
|
-
|
161
|
+
.collapse #collapse {
|
170
162
|
display: inline;
|
171
163
|
}
|
172
164
|
|
@@ -180,7 +172,7 @@ a.link {
|
|
180
172
|
line-height: 30px;
|
181
173
|
margin-top: 10px;
|
182
174
|
}
|
183
|
-
|
175
|
+
.collapse #phone-input {
|
184
176
|
position: fixed;
|
185
177
|
bottom: 5px;
|
186
178
|
left: 5px;
|
@@ -200,4 +192,7 @@ a.link {
|
|
200
192
|
right: 0;
|
201
193
|
background: -webkit-linear-gradient(90deg, #fff 0%, #fff 5%, rgba(255,255,255,0.95) 15%, rgba(255,255,255,0) 100%);;
|
202
194
|
z-index: 10;
|
203
|
-
}
|
195
|
+
}
|
196
|
+
.collapse #fadeout {
|
197
|
+
display: none;
|
198
|
+
}
|
@@ -1,5 +1,27 @@
|
|
1
1
|
module MxitRailsHelper
|
2
2
|
|
3
|
+
def mxit_validation_message
|
4
|
+
@_mxit_validation_messages.first
|
5
|
+
end
|
6
|
+
|
7
|
+
def mxit_table_row *styles
|
8
|
+
str = ''
|
9
|
+
if @_mxit.has_table
|
10
|
+
# Close the previous row if there is one
|
11
|
+
str += "</td></tr>"
|
12
|
+
else
|
13
|
+
# Start a new table
|
14
|
+
str += '<table title="mxit:table:full" style="width:100%" name="main_table" cellspacing="0" cellpadding="0">'
|
15
|
+
str += '<colgroup span="1" width="100%"></colgroup>'
|
16
|
+
end
|
17
|
+
@_mxit.has_table = true
|
18
|
+
|
19
|
+
# Start the new row
|
20
|
+
style = mxit_style *styles
|
21
|
+
str += "<tr><td style=\"#{ style }\">"
|
22
|
+
str.html_safe
|
23
|
+
end
|
24
|
+
|
3
25
|
def mxit_link route, label, variables=nil
|
4
26
|
unless variables.nil?
|
5
27
|
var_strings = []
|
@@ -21,6 +21,7 @@
|
|
21
21
|
.in > .icon .image { background-image: url(<%= image_path("mxit_rails/in.png"); %>) }
|
22
22
|
.out > .icon .image { background-image: url(<%= image_path("mxit_rails/out.png"); %>) }
|
23
23
|
.refresh > .icon .image { background-image: url(<%= image_path("mxit_rails/refresh.png"); %>) }
|
24
|
+
.home > .icon .image { background-image: url(<%= image_path("mxit_rails/home.png"); %>) }
|
24
25
|
</style>
|
25
26
|
</head>
|
26
27
|
<body>
|
@@ -34,6 +35,12 @@
|
|
34
35
|
<a id="link" class="go link" onclick="Emulator.enterCredentials()">Set Credentials <span class="icon"><span class="image"></span></span></a>
|
35
36
|
</div>
|
36
37
|
|
38
|
+
<div id="phone-links">
|
39
|
+
<a id="home" class="home link" onclick="Emulator.home()"><span class="icon"><span class="image"></span></span></a>
|
40
|
+
<a id="refresh" class="refresh link" onclick="Emulator.refresh()"><span class="icon"><span class="image"></span></span></a>
|
41
|
+
<a id="expand" class="out link" onclick="Emulator.expandCollapse('expand')"><span class="icon"><span class="image"></span></span></a>
|
42
|
+
<a id="collapse" class="in link" onclick="Emulator.expandCollapse('collapse')"><span class="icon"><span class="image"></span></span></a>
|
43
|
+
</div>
|
37
44
|
<div id="inputs">
|
38
45
|
<input type="text" placeholder="Mxit ID" id="mxit-id-input" />
|
39
46
|
<input type="text" placeholder="MSISDN" id="msisdn-input" />
|
@@ -43,11 +50,6 @@
|
|
43
50
|
</div>
|
44
51
|
|
45
52
|
<div id="phone">
|
46
|
-
<div id="phone-links">
|
47
|
-
<a id="refresh" class="refresh link" onclick="Emulator.refresh()"><span class="icon"><span class="image"></span></span></a>
|
48
|
-
<a id="expand" class="out link" onclick="Emulator.expand()"><span class="icon"><span class="image"></span></span></a>
|
49
|
-
<a id="collapse" class="in link" onclick="Emulator.collapse()"><span class="icon"><span class="image"></span></span></a>
|
50
|
-
</div>
|
51
53
|
<div id="screen">
|
52
54
|
<iframe id="center" class="content" onLoad="Emulator.updateIframe()"></iframe>
|
53
55
|
</div>
|
@@ -23,22 +23,11 @@
|
|
23
23
|
|
24
24
|
<body style="<%= mxit_style :body %>">
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
</td>
|
32
|
-
</tr>
|
33
|
-
</table>
|
34
|
-
|
35
|
-
<%= yield :navigation %>
|
36
|
-
|
37
|
-
<% if !@_mxit_validated %>
|
38
|
-
<%= @_mxit_validation_messages.first %>
|
39
|
-
|
40
|
-
<% else %>
|
41
|
-
<%= yield %>
|
26
|
+
<%= yield %>
|
27
|
+
|
28
|
+
<% if @_mxit.has_table %>
|
29
|
+
<!-- Close the table if there is one -->
|
30
|
+
</table>
|
42
31
|
<% end %>
|
43
32
|
|
44
33
|
<% if @_mxit.input %>
|
data/config/routes.rb
CHANGED
data/lib/mxit_rails/engine.rb
CHANGED
data/lib/mxit_rails/page.rb
CHANGED
@@ -30,7 +30,12 @@ module MxitRails
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def get_mxit_header_field key
|
33
|
-
request.headers[key]
|
33
|
+
output = request.headers[key]
|
34
|
+
# Only allow cookie-based headers in development
|
35
|
+
if Rails.env.development?
|
36
|
+
output ||= cookies[key.downcase]
|
37
|
+
end
|
38
|
+
output
|
34
39
|
end
|
35
40
|
|
36
41
|
def get_mxit_info
|
data/lib/mxit_rails/version.rb
CHANGED
@@ -18,6 +18,8 @@ class FormController < ApplicationController
|
|
18
18
|
|
19
19
|
step :surname do
|
20
20
|
input :surname, 'What is your surname?'
|
21
|
+
|
22
|
+
@name = params[:name]
|
21
23
|
end
|
22
24
|
|
23
25
|
step :age do
|
@@ -37,7 +39,7 @@ class FormController < ApplicationController
|
|
37
39
|
|
38
40
|
submit do
|
39
41
|
logger.info "Form Completed!\nname: #{params[:name]}; surname: #{params[:surname]}; age: #{params[:age]}\n******\n\n"
|
40
|
-
|
42
|
+
redirect_to '/index/success' and return
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
@@ -18,10 +18,10 @@ class WelcomeController < ApplicationController
|
|
18
18
|
|
19
19
|
submit do
|
20
20
|
if params[:phone_number] == '1234567890'
|
21
|
-
|
21
|
+
redirect_to '/welcome/easter_egg' and return
|
22
22
|
end
|
23
23
|
logger.info "This won't execute if an error occurred or if error! or redirect! was called"
|
24
|
-
|
24
|
+
redirect_to '/index/success' and return
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -1,4 +1,11 @@
|
|
1
|
-
<%=
|
2
|
-
|
1
|
+
<%= mxit_table_row :title %>
|
2
|
+
<b>Step 3 of 3</b>
|
3
|
+
|
4
|
+
<%= mxit_table_row %>
|
5
|
+
<%= mxit_nav_link '/', 'Back' %>
|
3
6
|
|
4
7
|
<p>Great! The last thing we'll need before we can finish the process is your age.</p>
|
8
|
+
|
9
|
+
<% if mxit_validation_message %>
|
10
|
+
<p><%= mxit_validation_message %></p>
|
11
|
+
<% end %>
|
@@ -1,7 +1,10 @@
|
|
1
|
-
<%=
|
2
|
-
|
1
|
+
<%= mxit_table_row :title %>
|
2
|
+
<b>Confirm</b>
|
3
|
+
|
4
|
+
<%= mxit_table_row %>
|
5
|
+
<%= mxit_nav_link '/', 'Back' %>
|
3
6
|
|
4
7
|
<p>That's it. Please just confirm your information below:</p>
|
5
8
|
<p>First name: <b><%= @name %></b></p>
|
6
9
|
<p>Surname: <b><%= @surname %></b></p>
|
7
|
-
<p>Age: <b><%= @age %></b></p>
|
10
|
+
<p>Age: <b><%= @age %></b></p>
|
@@ -1,4 +1,12 @@
|
|
1
|
-
<%=
|
2
|
-
|
1
|
+
<%= mxit_table_row :title %>
|
2
|
+
<b>Step 1 of 3</b>
|
3
|
+
|
4
|
+
<%= mxit_table_row %>
|
5
|
+
<%= mxit_nav_link '/', 'Back' %>
|
3
6
|
|
4
7
|
<p>Hi there! To get started, we'll need your first name.</p>
|
8
|
+
|
9
|
+
<% if mxit_validation_message %>
|
10
|
+
<p><%= mxit_validation_message %></p>
|
11
|
+
<% end %>
|
12
|
+
|
@@ -1,4 +1,11 @@
|
|
1
|
-
<%=
|
2
|
-
|
1
|
+
<%= mxit_table_row :title %>
|
2
|
+
<b>The Form</b>
|
3
3
|
|
4
|
-
|
4
|
+
<%= mxit_table_row %>
|
5
|
+
<%= mxit_nav_link '/', 'Back' %>
|
6
|
+
|
7
|
+
<p>Please take a minute to complete this fast, simple form.</p>
|
8
|
+
|
9
|
+
<% if mxit_validation_message %>
|
10
|
+
<p><%= mxit_validation_message %></p>
|
11
|
+
<% end %>
|
@@ -1,4 +1,11 @@
|
|
1
|
-
<%=
|
2
|
-
|
1
|
+
<%= mxit_table_row :title %>
|
2
|
+
<b>Step 2 of 3</b>
|
3
|
+
|
4
|
+
<%= mxit_table_row %>
|
5
|
+
<%= mxit_nav_link '/', 'Back' %>
|
3
6
|
|
4
7
|
<p>Thanks <%= @name %>. Next we'll need your surname.</p>
|
8
|
+
|
9
|
+
<% if mxit_validation_message %>
|
10
|
+
<p><%= mxit_validation_message %></p>
|
11
|
+
<% end %>
|
@@ -1,7 +1,9 @@
|
|
1
|
-
<%=
|
1
|
+
<%= mxit_table_row :title %>
|
2
|
+
<b>Templater</b>
|
2
3
|
|
4
|
+
<%= mxit_table_row %>
|
3
5
|
<p>This is the root of the dummy app...</p>
|
4
6
|
|
5
|
-
<p><%= mxit_link '/
|
6
|
-
<p><%= mxit_link '/
|
7
|
-
<p><%= mxit_link '/
|
7
|
+
<p><%= mxit_link '/welcome', 'Single-page form' %><p>
|
8
|
+
<p><%= mxit_link '/form', 'Multi-step form' %><p>
|
9
|
+
<p><%= mxit_link '/index', 'An extra link' %><p>
|
@@ -1,4 +1,7 @@
|
|
1
|
-
<%=
|
2
|
-
|
1
|
+
<%= mxit_table_row :title %>
|
2
|
+
<b>Success!</b>
|
3
|
+
|
4
|
+
<%= mxit_table_row %>
|
5
|
+
<%= mxit_nav_link '/', 'Done' %>
|
3
6
|
|
4
7
|
<p>Your information was successfully received.</p>
|
@@ -1,4 +1,7 @@
|
|
1
|
-
<%=
|
2
|
-
|
1
|
+
<%= mxit_table_row :title %>
|
2
|
+
<b>Easter Egg</b>
|
3
|
+
|
4
|
+
<%= mxit_table_row %>
|
5
|
+
<%= mxit_nav_link '/welcome', 'Back' %>
|
3
6
|
|
4
7
|
<p>This is the awesome easter egg :-)</p>
|