fastlane 2.81.0.beta.20180212010003 → 2.81.0.beta.20180213010002
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +6 -0
- data/fastlane/lib/fastlane/lane.rb +5 -1
- data/fastlane/lib/fastlane/runner.rb +23 -20
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/screengrab/lib/screengrab/page.html.erb +79 -97
- data/snapshot/lib/snapshot/page.html.erb +85 -103
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d0136deaf66f641e5a8365826952403010abaaf
|
4
|
+
data.tar.gz: f01438a9bf35fe931ad048a700f94db478854d37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b830c49e31d324038a04b8c152c7e6c7c3b748826dd7b6d54a16b4cb1baa86436dd216e365a05cd957b25900fee8ff4d664993f0d6fb62850265e55a2bcd421
|
7
|
+
data.tar.gz: 6c786ef59adae93eca22b89a5ef4b0b8980839cc8a752d00685e8d0f459c9eed8bd8796415c91fb5b98691b5d04bf6f4e126d211569df6718e39863d9b8455b6
|
@@ -53,18 +53,24 @@ module Fastlane
|
|
53
53
|
|
54
54
|
# Loop through all app versions and download their dSYM
|
55
55
|
app.all_build_train_numbers(platform: platform).each do |train_number|
|
56
|
+
UI.verbose("Found train: #{train_number}, comparing to supplied version: #{version}")
|
56
57
|
if version && version != train_number
|
58
|
+
UI.verbose("Version #{version} doesn't match: #{train_number}")
|
57
59
|
next
|
58
60
|
end
|
59
61
|
app.all_builds_for_train(train: train_number, platform: platform).each do |build|
|
62
|
+
UI.verbose("Found build version: #{build.build_version}, comparing to supplied build_number: #{build_number}")
|
60
63
|
if build_number && build.build_version != build_number
|
64
|
+
UI.verbose("build_version: #{build.build_version} doesn't match: #{build_number}")
|
61
65
|
next
|
62
66
|
end
|
63
67
|
|
64
68
|
begin
|
65
69
|
# need to call reload here or dsym_url is nil
|
70
|
+
UI.verbose("Build_version: #{build.build_version} matches #{build_number}, grabbing dsym_url")
|
66
71
|
build.reload
|
67
72
|
download_url = build.dsym_url
|
73
|
+
UI.verbose("dsym_url: #{download_url}")
|
68
74
|
rescue Spaceship::TunesClient::ITunesConnectError => ex
|
69
75
|
UI.error("Error accessing dSYM file for build\n\n#{build}\n\nException: #{ex}")
|
70
76
|
end
|
@@ -47,8 +47,10 @@ module Fastlane
|
|
47
47
|
end
|
48
48
|
|
49
49
|
if self.gray_list.include?(name.to_sym)
|
50
|
+
UI.error("------------------------------------------------")
|
50
51
|
UI.error("Lane name '#{name}' should not be used because it is the name of a fastlane tool")
|
51
52
|
UI.error("It is recommended to not use '#{name}' as the name of your lane")
|
53
|
+
UI.error("------------------------------------------------")
|
52
54
|
# We still allow it, because we're nice
|
53
55
|
# Otherwise we might break existing setups
|
54
56
|
return
|
@@ -86,7 +88,9 @@ module Fastlane
|
|
86
88
|
def ensure_name_not_conflicts(name)
|
87
89
|
# First, check if there is a predefined method in the actions folder
|
88
90
|
return unless Actions.action_class_ref(name)
|
89
|
-
UI.
|
91
|
+
UI.error("------------------------------------------------")
|
92
|
+
UI.error("Name of the lane '#{name}' is already taken by the action named '#{name}'")
|
93
|
+
UI.error("------------------------------------------------")
|
90
94
|
end
|
91
95
|
end
|
92
96
|
end
|
@@ -142,6 +142,15 @@ module Fastlane
|
|
142
142
|
# It's important to *not* have this code inside the rescue block
|
143
143
|
# otherwise all NameErrors will be caught and the error message is
|
144
144
|
# confusing
|
145
|
+
begin
|
146
|
+
return self.try_switch_to_lane(method_sym, arguments)
|
147
|
+
rescue LaneNotAvailableError
|
148
|
+
# We don't actually handle this here yet
|
149
|
+
# We just try to use a user configured lane first
|
150
|
+
# and only if there is none, we're gonna check for the
|
151
|
+
# built-in actions
|
152
|
+
end
|
153
|
+
|
145
154
|
if class_ref
|
146
155
|
if class_ref.respond_to?(:run)
|
147
156
|
# Action is available, now execute it
|
@@ -149,26 +158,20 @@ module Fastlane
|
|
149
158
|
else
|
150
159
|
UI.user_error!("Action '#{method_sym}' of class '#{class_name}' was found, but has no `run` method.")
|
151
160
|
end
|
161
|
+
end
|
162
|
+
|
163
|
+
# No lane, no action, let's at least show the correct error message
|
164
|
+
if Fastlane.plugin_manager.plugin_is_added_as_dependency?(PluginManager.plugin_prefix + method_sym.to_s)
|
165
|
+
# That's a plugin, but for some reason we can't find it
|
166
|
+
UI.user_error!("Plugin '#{method_sym}' was not properly loaded, make sure to follow the plugin docs for troubleshooting: #{PluginManager::TROUBLESHOOTING_URL}")
|
167
|
+
elsif Fastlane::Actions.formerly_bundled_actions.include?(method_sym.to_s)
|
168
|
+
# This was a formerly bundled action which is now a plugin.
|
169
|
+
UI.verbose(caller.join("\n"))
|
170
|
+
UI.user_error!("The action '#{method_sym}' is no longer bundled with fastlane. You can install it using `fastlane add_plugin #{method_sym}`")
|
152
171
|
else
|
153
|
-
#
|
154
|
-
|
155
|
-
|
156
|
-
return self.try_switch_to_lane(method_sym, arguments)
|
157
|
-
rescue LaneNotAvailableError
|
158
|
-
# No lane, no action, let's at least show the correct error message
|
159
|
-
if Fastlane.plugin_manager.plugin_is_added_as_dependency?(PluginManager.plugin_prefix + method_sym.to_s)
|
160
|
-
# That's a plugin, but for some reason we can't find it
|
161
|
-
UI.user_error!("Plugin '#{method_sym}' was not properly loaded, make sure to follow the plugin docs for troubleshooting: #{PluginManager::TROUBLESHOOTING_URL}")
|
162
|
-
elsif Fastlane::Actions.formerly_bundled_actions.include?(method_sym.to_s)
|
163
|
-
# This was a formerly bundled action which is now a plugin.
|
164
|
-
UI.verbose(caller.join("\n"))
|
165
|
-
UI.user_error!("The action '#{method_sym}' is no longer bundled with fastlane. You can install it using `fastlane add_plugin #{method_sym}`")
|
166
|
-
else
|
167
|
-
# So there is no plugin under that name, so just show the error message generated by the lane switch
|
168
|
-
UI.verbose(caller.join("\n"))
|
169
|
-
UI.user_error!("Could not find action, lane or variable '#{method_sym}'. Check out the documentation for more details: https://docs.fastlane.tools/actions")
|
170
|
-
end
|
171
|
-
end
|
172
|
+
# So there is no plugin under that name, so just show the error message generated by the lane switch
|
173
|
+
UI.verbose(caller.join("\n"))
|
174
|
+
UI.user_error!("Could not find action, lane or variable '#{method_sym}'. Check out the documentation for more details: https://docs.fastlane.tools/actions")
|
172
175
|
end
|
173
176
|
end
|
174
177
|
|
@@ -227,6 +230,7 @@ module Fastlane
|
|
227
230
|
Dir.chdir(custom_dir) do # go up from the fastlane folder, to the project folder
|
228
231
|
# If another action is calling this action, we shouldn't show it in the summary
|
229
232
|
# (see https://github.com/fastlane/fastlane/issues/4546)
|
233
|
+
|
230
234
|
action_name = from_action ? nil : class_ref.step_text
|
231
235
|
Actions.execute_action(action_name) do
|
232
236
|
# arguments is an array by default, containing an hash with the actual parameters
|
@@ -248,7 +252,6 @@ module Fastlane
|
|
248
252
|
puts(class_ref.deprecated_notes.to_s.deprecated) if class_ref.deprecated_notes
|
249
253
|
puts("==========================================\n".deprecated)
|
250
254
|
end
|
251
|
-
|
252
255
|
class_ref.runner = self # needed to call another action form an action
|
253
256
|
return_value = class_ref.run(arguments)
|
254
257
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.81.0.beta.
|
2
|
+
VERSION = '2.81.0.beta.20180213010002'.freeze
|
3
3
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
4
4
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
5
5
|
RUBOCOP_REQUIREMENT = '0.49.1'.freeze
|
@@ -64,117 +64,99 @@
|
|
64
64
|
}
|
65
65
|
</style>
|
66
66
|
</head>
|
67
|
-
<body
|
68
|
-
|
69
|
-
|
70
|
-
|
67
|
+
<body><% image_counter = 0 %><% @data.each do |language, content| %>
|
68
|
+
<h1 class="language"><%= language %></h1>
|
69
|
+
<hr>
|
70
|
+
<table><% content.each do |device_name, screens| %>
|
71
|
+
<tr>
|
72
|
+
<th colspan="<%= screens.count %>">
|
73
|
+
<span class="deviceName"><%= device_name %></span>
|
74
|
+
</th>
|
75
|
+
</tr>
|
76
|
+
<tr><% screens.each do |screen_path| %><% next if screen_path.include?"_framed.png" %>
|
77
|
+
<td><% image_counter += 1 %>
|
78
|
+
<a href="<%= screen_path %>" target="_blank" class="screenshotLink">
|
79
|
+
<img class="screenshot" src="<%= screen_path %>" style="width: 100%;" alt="<%= language %> <%= device_name %>" data-counter="<%= image_counter %>">
|
80
|
+
</a>
|
81
|
+
</td><% end %>
|
82
|
+
</tr><% end %>
|
83
|
+
</table><% end %>
|
84
|
+
<div id="overlay">
|
85
|
+
<img id="imageDisplay" src="" alt="" />
|
86
|
+
<div id="imageInfo"></div>
|
87
|
+
</div>
|
88
|
+
<script type="text/javascript">
|
89
|
+
var overlay = document.getElementById('overlay');
|
90
|
+
var imageDisplay = document.getElementById('imageDisplay');
|
91
|
+
var imageInfo = document.getElementById('imageInfo');
|
92
|
+
var screenshotLink = document.getElementsByClassName('screenshotLink');
|
71
93
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
<span class="deviceName"><%= device_name %></span>
|
81
|
-
</th>
|
82
|
-
</tr>
|
83
|
-
<tr>
|
84
|
-
<% screens.each do |screen_path| %>
|
85
|
-
<% next if screen_path.include?"_framed.png" %>
|
86
|
-
<td>
|
87
|
-
<% style = "width: 100%;" %>
|
88
|
-
<% image_counter += 1 %>
|
89
|
-
<a href="<%= screen_path %>" target="_blank" class="screenshotLink">
|
90
|
-
<img class="screenshot"
|
91
|
-
src="<%= screen_path %>"
|
92
|
-
style="<%= style %>"
|
93
|
-
alt="<%= language %> <%= device_name %>"
|
94
|
-
data-counter="<%= image_counter %>" />
|
95
|
-
</a>
|
96
|
-
</td>
|
97
|
-
<% end %>
|
98
|
-
</tr>
|
99
|
-
<% end %>
|
100
|
-
</table>
|
101
|
-
<% end %>
|
102
|
-
<div id="overlay">
|
103
|
-
<img id="imageDisplay" src="" alt="" />
|
104
|
-
<div id="imageInfo"></div>
|
105
|
-
</div>
|
106
|
-
<script type="text/javascript">
|
107
|
-
var overlay = document.getElementById('overlay');
|
108
|
-
var imageDisplay = document.getElementById('imageDisplay');
|
109
|
-
var imageInfo = document.getElementById('imageInfo');
|
110
|
-
var screenshotLink = document.getElementsByClassName('screenshotLink');
|
111
|
-
|
112
|
-
function doClick(el) {
|
113
|
-
if (document.createEvent) {
|
114
|
-
var evObj = document.createEvent('MouseEvents', true);
|
115
|
-
evObj.initMouseEvent("click", false, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
116
|
-
el.dispatchEvent(evObj);
|
117
|
-
} else if (document.createEventObject) { //IE
|
118
|
-
var evObj = document.createEventObject();
|
119
|
-
el.fireEvent('onclick', evObj);
|
120
|
-
}
|
94
|
+
function doClick(el) {
|
95
|
+
if (document.createEvent) {
|
96
|
+
var evObj = document.createEvent('MouseEvents', true);
|
97
|
+
evObj.initMouseEvent("click", false, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
98
|
+
el.dispatchEvent(evObj);
|
99
|
+
} else if (document.createEventObject) { //IE
|
100
|
+
var evObj = document.createEventObject();
|
101
|
+
el.fireEvent('onclick', evObj);
|
121
102
|
}
|
103
|
+
}
|
122
104
|
|
123
|
-
|
124
|
-
|
125
|
-
|
105
|
+
for (index = 0; index < screenshotLink.length; ++index) {
|
106
|
+
screenshotLink[index].addEventListener('click', function(e) {
|
107
|
+
e.preventDefault();
|
126
108
|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
109
|
+
var img = e.target;
|
110
|
+
if (e.target.tagName == 'A') {
|
111
|
+
img = e.target.children[0];
|
112
|
+
}
|
131
113
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
114
|
+
// beautify
|
115
|
+
var tmpImg = new Image();
|
116
|
+
tmpImg.src = img.src;
|
117
|
+
imageDisplay.style.height = 'auto';
|
118
|
+
imageDisplay.style.width = 'auto';
|
119
|
+
if (window.innerHeight < tmpImg.height) {
|
120
|
+
imageDisplay.style.height = document.documentElement.clientHeight+'px';
|
121
|
+
} else if (window.innerWidth < tmpImg.width) {
|
122
|
+
imageDisplay.style.width = document.documentElement.clientWidth;+'px';
|
123
|
+
} else {
|
124
|
+
imageDisplay.style.paddingTop = parseInt((window.innerHeight - tmpImg.height) / 2)+'px';
|
125
|
+
}
|
144
126
|
|
145
|
-
|
146
|
-
|
147
|
-
|
127
|
+
imageDisplay.src = img.src;
|
128
|
+
imageDisplay.alt = img.alt;
|
129
|
+
imageDisplay.dataset.counter = img.dataset.counter;
|
148
130
|
|
149
|
-
|
150
|
-
|
151
|
-
|
131
|
+
imageInfo.innerHTML = '<h3>'+img.alt+'</h3>';
|
132
|
+
imageInfo.innerHTML += decodeURI(img.src.split("/").pop());
|
133
|
+
imageInfo.innerHTML += '<br />'+tmpImg.height+'×'+tmpImg.width+'px';
|
152
134
|
|
153
|
-
|
154
|
-
|
155
|
-
|
135
|
+
overlay.style.display = "block";
|
136
|
+
});
|
137
|
+
}
|
156
138
|
|
157
|
-
|
158
|
-
|
139
|
+
imageDisplay.addEventListener('click', function(e) {
|
140
|
+
e.stopPropagation(); // !
|
159
141
|
|
160
|
-
|
142
|
+
overlay.style.display = "none";
|
161
143
|
|
162
|
-
|
144
|
+
img_counter = parseInt(e.target.dataset.counter) + 1;
|
145
|
+
try {
|
146
|
+
link = document.body.querySelector('img[data-counter="'+img_counter+'"]').parentNode;
|
147
|
+
} catch (e) {
|
163
148
|
try {
|
164
|
-
link = document.body.querySelector('img[data-counter="
|
149
|
+
link = document.body.querySelector('img[data-counter="0"]').parentNode;
|
165
150
|
} catch (e) {
|
166
|
-
|
167
|
-
link = document.body.querySelector('img[data-counter="0"]').parentNode;
|
168
|
-
} catch (e) {
|
169
|
-
return false;
|
170
|
-
}
|
151
|
+
return false;
|
171
152
|
}
|
172
|
-
|
173
|
-
|
153
|
+
}
|
154
|
+
doClick(link);
|
155
|
+
});
|
174
156
|
|
175
|
-
|
176
|
-
|
177
|
-
|
157
|
+
overlay.addEventListener('click', function(e) {
|
158
|
+
overlay.style.display = "none";
|
159
|
+
})
|
178
160
|
|
179
161
|
function keyPressed(e) {
|
180
162
|
e = e || window.event;
|
@@ -203,6 +185,6 @@
|
|
203
185
|
}
|
204
186
|
};
|
205
187
|
document.body.addEventListener('keydown', keyPressed);
|
206
|
-
|
188
|
+
</script>
|
207
189
|
</body>
|
208
190
|
</html>
|
@@ -64,118 +64,100 @@
|
|
64
64
|
}
|
65
65
|
</style>
|
66
66
|
</head>
|
67
|
-
<body
|
68
|
-
|
69
|
-
|
70
|
-
|
67
|
+
<body><% image_counter = 0 %><% @data.each do |language, content| %>
|
68
|
+
<h1 class="language"><%= language %></h1>
|
69
|
+
<hr>
|
70
|
+
<table><% content.each do |device_name, screens| %>
|
71
|
+
<tr>
|
72
|
+
<th colspan="<%= screens.count %>">
|
73
|
+
<span class="deviceName"><%= device_name %></span>
|
74
|
+
</th>
|
75
|
+
</tr>
|
76
|
+
<tr><% screens.each do |screen_path| %><% next if screen_path.include?"_framed.png" %>
|
77
|
+
<td><% image_counter += 1 %>
|
78
|
+
<a href="<%= screen_path %>" target="_blank" class="screenshotLink">
|
79
|
+
<img class="screenshot" src="<%= screen_path %>" style="width: 100%;" alt="<%= language %> <%= device_name %>" data-counter="<%= image_counter %>">
|
80
|
+
</a>
|
81
|
+
</td><% end %>
|
82
|
+
</tr><% end %>
|
83
|
+
</table><% end %>
|
84
|
+
<div id="overlay">
|
85
|
+
<img id="imageDisplay" src="" alt="" />
|
86
|
+
<div id="imageInfo"></div>
|
87
|
+
</div>
|
88
|
+
<script type="text/javascript">
|
89
|
+
var overlay = document.getElementById('overlay');
|
90
|
+
var imageDisplay = document.getElementById('imageDisplay');
|
91
|
+
var imageInfo = document.getElementById('imageInfo');
|
92
|
+
var screenshotLink = document.getElementsByClassName('screenshotLink');
|
71
93
|
|
94
|
+
function doClick(el) {
|
95
|
+
if (document.createEvent) {
|
96
|
+
var evObj = document.createEvent('MouseEvents', true);
|
97
|
+
evObj.initMouseEvent("click", false, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
98
|
+
el.dispatchEvent(evObj);
|
99
|
+
} else if (document.createEventObject) { //IE
|
100
|
+
var evObj = document.createEventObject();
|
101
|
+
el.fireEvent('onclick', evObj);
|
102
|
+
}
|
103
|
+
}
|
72
104
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
<table>
|
77
|
-
<% content.each do |device_name, screens| %>
|
78
|
-
<tr>
|
79
|
-
<th colspan="<%= screens.count %>">
|
80
|
-
<span class="deviceName"><%= device_name %></span>
|
81
|
-
</th>
|
82
|
-
</tr>
|
83
|
-
<tr>
|
84
|
-
<% screens.each do |screen_path| %>
|
85
|
-
<% next if screen_path.include?"_framed.png" %>
|
86
|
-
<td>
|
87
|
-
<% style = "width: 100%;" %>
|
88
|
-
<% image_counter += 1 %>
|
89
|
-
<a href="<%= screen_path %>" target="_blank" class="screenshotLink">
|
90
|
-
<img class="screenshot"
|
91
|
-
src="<%= screen_path %>"
|
92
|
-
style="<%= style %>"
|
93
|
-
alt="<%= language %> <%= device_name %>"
|
94
|
-
data-counter="<%= image_counter %>" />
|
95
|
-
</a>
|
96
|
-
</td>
|
97
|
-
<% end %>
|
98
|
-
</tr>
|
99
|
-
<% end %>
|
100
|
-
</table>
|
101
|
-
<% end %>
|
102
|
-
<div id="overlay">
|
103
|
-
<img id="imageDisplay" src="" alt="" />
|
104
|
-
<div id="imageInfo"></div>
|
105
|
-
</div>
|
106
|
-
<script type="text/javascript">
|
107
|
-
var overlay = document.getElementById('overlay');
|
108
|
-
var imageDisplay = document.getElementById('imageDisplay');
|
109
|
-
var imageInfo = document.getElementById('imageInfo');
|
110
|
-
var screenshotLink = document.getElementsByClassName('screenshotLink');
|
105
|
+
for (index = 0; index < screenshotLink.length; ++index) {
|
106
|
+
screenshotLink[index].addEventListener('click', function(e) {
|
107
|
+
e.preventDefault();
|
111
108
|
|
112
|
-
|
113
|
-
if (
|
114
|
-
|
115
|
-
evObj.initMouseEvent("click", false, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
116
|
-
el.dispatchEvent(evObj);
|
117
|
-
} else if (document.createEventObject) { //IE
|
118
|
-
var evObj = document.createEventObject();
|
119
|
-
el.fireEvent('onclick', evObj);
|
109
|
+
var img = e.target;
|
110
|
+
if (e.target.tagName == 'A') {
|
111
|
+
img = e.target.children[0];
|
120
112
|
}
|
121
|
-
}
|
122
113
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
imageDisplay.style.height = 'auto';
|
136
|
-
imageDisplay.style.width = 'auto';
|
137
|
-
if (window.innerHeight < tmpImg.height) {
|
138
|
-
imageDisplay.style.height = document.documentElement.clientHeight+'px';
|
139
|
-
} else if (window.innerWidth < tmpImg.width) {
|
140
|
-
imageDisplay.style.width = document.documentElement.clientWidth;+'px';
|
141
|
-
} else {
|
142
|
-
imageDisplay.style.paddingTop = parseInt((window.innerHeight - tmpImg.height) / 2)+'px';
|
143
|
-
}
|
114
|
+
// beautify
|
115
|
+
var tmpImg = new Image();
|
116
|
+
tmpImg.src = img.src;
|
117
|
+
imageDisplay.style.height = 'auto';
|
118
|
+
imageDisplay.style.width = 'auto';
|
119
|
+
if (window.innerHeight < tmpImg.height) {
|
120
|
+
imageDisplay.style.height = document.documentElement.clientHeight+'px';
|
121
|
+
} else if (window.innerWidth < tmpImg.width) {
|
122
|
+
imageDisplay.style.width = document.documentElement.clientWidth;+'px';
|
123
|
+
} else {
|
124
|
+
imageDisplay.style.paddingTop = parseInt((window.innerHeight - tmpImg.height) / 2)+'px';
|
125
|
+
}
|
144
126
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
127
|
+
imageDisplay.src = img.src;
|
128
|
+
imageDisplay.alt = img.alt;
|
129
|
+
imageDisplay.dataset.counter = img.dataset.counter;
|
130
|
+
|
131
|
+
imageInfo.innerHTML = '<h3>'+img.alt+'</h3>';
|
132
|
+
imageInfo.innerHTML += decodeURI(img.src.split("/").pop());
|
133
|
+
imageInfo.innerHTML += '<br />'+tmpImg.height+'×'+tmpImg.width+'px';
|
134
|
+
|
135
|
+
overlay.style.display = "block";
|
136
|
+
});
|
137
|
+
}
|
138
|
+
|
139
|
+
imageDisplay.addEventListener('click', function(e) {
|
140
|
+
e.stopPropagation(); // !
|
141
|
+
|
142
|
+
overlay.style.display = "none";
|
143
|
+
|
144
|
+
img_counter = parseInt(e.target.dataset.counter) + 1;
|
145
|
+
try {
|
146
|
+
link = document.body.querySelector('img[data-counter="'+img_counter+'"]').parentNode;
|
147
|
+
} catch (e) {
|
163
148
|
try {
|
164
|
-
link = document.body.querySelector('img[data-counter="
|
149
|
+
link = document.body.querySelector('img[data-counter="0"]').parentNode;
|
165
150
|
} catch (e) {
|
166
|
-
|
167
|
-
link = document.body.querySelector('img[data-counter="0"]').parentNode;
|
168
|
-
} catch (e) {
|
169
|
-
return false;
|
170
|
-
}
|
151
|
+
return false;
|
171
152
|
}
|
172
|
-
|
173
|
-
|
153
|
+
}
|
154
|
+
doClick(link);
|
155
|
+
});
|
156
|
+
|
157
|
+
overlay.addEventListener('click', function(e) {
|
158
|
+
overlay.style.display = "none";
|
159
|
+
})
|
174
160
|
|
175
|
-
overlay.addEventListener('click', function(e) {
|
176
|
-
overlay.style.display = "none";
|
177
|
-
})
|
178
|
-
|
179
161
|
function keyPressed(e) {
|
180
162
|
e = e || window.event;
|
181
163
|
var charCode = e.keyCode || e.which;
|
@@ -203,6 +185,6 @@
|
|
203
185
|
}
|
204
186
|
};
|
205
187
|
document.body.addEventListener('keydown', keyPressed);
|
206
|
-
|
188
|
+
</script>
|
207
189
|
</body>
|
208
190
|
</html>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.81.0.beta.
|
4
|
+
version: 2.81.0.beta.20180213010002
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fumiya Nakamura
|
@@ -25,7 +25,7 @@ authors:
|
|
25
25
|
autorequire:
|
26
26
|
bindir: bin
|
27
27
|
cert_chain: []
|
28
|
-
date: 2018-02-
|
28
|
+
date: 2018-02-13 00:00:00.000000000 Z
|
29
29
|
dependencies:
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: slack-notifier
|