fastlane 2.81.0.beta.20180212010003 → 2.81.0.beta.20180213010002
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 +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
|