cronwatch 0.6.0 → 0.6.1
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/lib/cronwatch/version.rb +1 -1
- data/lib/cronwatch/web/html.rb +9 -3
- data/lib/cronwatch/web/timeline.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f515d13b757f2063defbf1c390f41d8970417a02991d5f137639221daa095c9
|
|
4
|
+
data.tar.gz: 8843a960d7249f58200456b706ce60cc8ecd5cb7490be84639aed8ff0bf5b639
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d95b276c86d464ab53c871f1967c5880822bcf677c7a96384cf7ee42f6d02f73da7eccf244aaceff5e4bd72ee06886f1dc025fe342e239b28ae5d74c87a5caf8
|
|
7
|
+
data.tar.gz: 16c1ac8fcb3f1e18b1f81e7447d7a237fd80e4acc5276e06d99e55a2802b2cea3aca40372a4fd7b7679e3558072cdb31e0bfd1a6dda6aa1321ad73bd2e995247
|
data/lib/cronwatch/version.rb
CHANGED
data/lib/cronwatch/web/html.rb
CHANGED
|
@@ -195,6 +195,12 @@ module Cronwatch
|
|
|
195
195
|
text(value).gsub("&", "&").gsub("<", "<").gsub(">", ">").gsub('"', """).gsub("'", "'")
|
|
196
196
|
end
|
|
197
197
|
|
|
198
|
+
# escapeName: a job name shown as text, with a break allowed after each
|
|
199
|
+
# run of _ : . / - so it wraps at its separators. Never in an attribute.
|
|
200
|
+
def name_html(value)
|
|
201
|
+
h(value).gsub(%r{([_:./-]+)(?=[^_:./-])}, '\1<wbr>')
|
|
202
|
+
end
|
|
203
|
+
|
|
198
204
|
# String(value), the way a template literal writes it.
|
|
199
205
|
def text(value)
|
|
200
206
|
case value
|
|
@@ -278,7 +284,7 @@ module Cronwatch
|
|
|
278
284
|
home = %(<a href="#{h(base)}/">#{MARK}<span>CronWatch</span></a>)
|
|
279
285
|
return %(<p class="brand">#{home}</p>) if crumb.nil?
|
|
280
286
|
|
|
281
|
-
%(<p class="brand">#{home}<span class="slash" aria-hidden="true">/</span><span class="crumb">#{
|
|
287
|
+
%(<p class="brand">#{home}<span class="slash" aria-hidden="true">/</span><span class="crumb">#{name_html(crumb)}</span></p>)
|
|
282
288
|
end
|
|
283
289
|
|
|
284
290
|
# The job's health, with any open condition it does not already say (over budget, slow) after it.
|
|
@@ -375,7 +381,7 @@ module Cronwatch
|
|
|
375
381
|
end
|
|
376
382
|
<<~ROW.chomp
|
|
377
383
|
<tr>
|
|
378
|
-
<td class="job"><a class="name" href="#{h(base)}/jobs/#{encode_uri_component(job.name)}">#{
|
|
384
|
+
<td class="job"><a class="name" href="#{h(base)}/jobs/#{encode_uri_component(job.name)}">#{name_html(job.name)}</a>#{description}</td>
|
|
379
385
|
<td class="health">#{health_state(job)}</td>
|
|
380
386
|
<td class="nowrap hide-sm">#{schedule}</td>
|
|
381
387
|
<td class="nowrap last">#{last_cell}</td>
|
|
@@ -510,7 +516,7 @@ module Cronwatch
|
|
|
510
516
|
<section class="sec intro" aria-label="Job">
|
|
511
517
|
<h2>Job</h2>
|
|
512
518
|
<div>
|
|
513
|
-
<h1 class="jobname">#{
|
|
519
|
+
<h1 class="jobname">#{name_html(job.name)}</h1>
|
|
514
520
|
#{truthy?(d.description) ? %(<p class="desc">#{h(d.description)}</p>) : ""}
|
|
515
521
|
<p class="stateline">#{health_state(job)}#{why ? %(<span class="why">#{h(why)}</span>) : ""}</p>
|
|
516
522
|
<div class="actions">
|
|
@@ -399,7 +399,7 @@ module Cronwatch
|
|
|
399
399
|
parts = lane(input, span, now_in_lane: false, label: job.name)
|
|
400
400
|
schedule = job.definition.schedule.nil? ? "no schedule" : job.definition.schedule
|
|
401
401
|
[
|
|
402
|
-
%(<li class="lane"><div class="who"><i class="sq #{state_class(job)}" aria-hidden="true"></i><a class="name" href="#{h(base)}/jobs/#{HTML.encode_uri_component(job.name)}">#{
|
|
402
|
+
%(<li class="lane"><div class="who"><i class="sq #{state_class(job)}" aria-hidden="true"></i><a class="name" href="#{h(base)}/jobs/#{HTML.encode_uri_component(job.name)}">#{HTML.name_html(job.name)}</a><span class="sched">#{h(schedule)}</span></div><div class="track">#{parts.svg}#{parts.note}</div></li>),
|
|
403
403
|
"<li>#{h("#{job.name} (#{schedule}): #{parts.words}.")}</li>",
|
|
404
404
|
]
|
|
405
405
|
end
|