delayed_job_web 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of delayed_job_web might be problematic. Click here for more details.

data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.0.2
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{delayed_job_web}
8
- s.version = "1.0.1"
8
+ s.version = "1.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Erick Schmitt"]
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
32
32
  "lib/delayed_job_web/application/public/images/poll.png",
33
33
  "lib/delayed_job_web/application/public/javascripts/application.js",
34
34
  "lib/delayed_job_web/application/public/javascripts/jquery-1.7.1.min.js",
35
+ "lib/delayed_job_web/application/public/javascripts/jquery.relatize_date.js",
35
36
  "lib/delayed_job_web/application/public/stylesheets/reset.css",
36
37
  "lib/delayed_job_web/application/public/stylesheets/style.css",
37
38
  "lib/delayed_job_web/application/views/enqueued.haml",
@@ -1,6 +1,35 @@
1
1
  $(function() {
2
2
  var poll_interval = 3;
3
3
 
4
+ var relatizer = function(){
5
+ var dt = $(this).text(), relatized = $.relatizeDate(this)
6
+ if ($(this).parents("a").length > 0 || $(this).is("a")) {
7
+ $(this).relatizeDate()
8
+ if (!$(this).attr('title')) {
9
+ $(this).attr('title', dt)
10
+ }
11
+ } else {
12
+ $(this)
13
+ .text('')
14
+ .append( $('<a href="#" class="toggle_format" title="' + dt + '" />')
15
+ .append('<span class="date_time">' + dt +
16
+ '</span><span class="relatized_time">' +
17
+ relatized + '</span>') )
18
+ }
19
+ };
20
+
21
+ $('.time').each(relatizer);
22
+
23
+ $('.time a.toggle_format .date_time').hide();
24
+
25
+ var format_toggler = function(){
26
+ $('.time a.toggle_format span').toggle();
27
+ $(this).attr('title', $('span:hidden',this).text());
28
+ return false;
29
+ };
30
+
31
+ $('.time a.toggle_format').click(format_toggler);
32
+
4
33
  $('ul li.job').hover(function() {
5
34
  $(this).addClass('hover');
6
35
  }, function() {
@@ -0,0 +1,94 @@
1
+ // All credit goes to Rick Olson.
2
+ (function($) {
3
+ $.fn.relatizeDate = function() {
4
+ return $(this).each(function() {
5
+ $(this).text( $.relatizeDate(this) )
6
+ })
7
+ }
8
+
9
+ $.relatizeDate = function(element) {
10
+ return $.relatizeDate.timeAgoInWords( new Date($(element).text()) )
11
+ }
12
+
13
+ // shortcut
14
+ $r = $.relatizeDate
15
+
16
+ $.extend($.relatizeDate, {
17
+ shortDays: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],
18
+ days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
19
+ shortMonths: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ],
20
+ months: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],
21
+
22
+ /**
23
+ * Given a formatted string, replace the necessary items and return.
24
+ * Example: Time.now().strftime("%B %d, %Y") => February 11, 2008
25
+ * @param {String} format The formatted string used to format the results
26
+ */
27
+ strftime: function(date, format) {
28
+ var day = date.getDay(), month = date.getMonth();
29
+ var hours = date.getHours(), minutes = date.getMinutes();
30
+
31
+ var pad = function(num) {
32
+ var string = num.toString(10);
33
+ return new Array((2 - string.length) + 1).join('0') + string
34
+ };
35
+
36
+ return format.replace(/\%([aAbBcdHImMpSwyY])/g, function(part) {
37
+ switch(part[1]) {
38
+ case 'a': return $r.shortDays[day]; break;
39
+ case 'A': return $r.days[day]; break;
40
+ case 'b': return $r.shortMonths[month]; break;
41
+ case 'B': return $r.months[month]; break;
42
+ case 'c': return date.toString(); break;
43
+ case 'd': return pad(date.getDate()); break;
44
+ case 'H': return pad(hours); break;
45
+ case 'I': return pad((hours + 12) % 12); break;
46
+ case 'm': return pad(month + 1); break;
47
+ case 'M': return pad(minutes); break;
48
+ case 'p': return hours > 12 ? 'PM' : 'AM'; break;
49
+ case 'S': return pad(date.getSeconds()); break;
50
+ case 'w': return day; break;
51
+ case 'y': return pad(date.getFullYear() % 100); break;
52
+ case 'Y': return date.getFullYear().toString(); break;
53
+ }
54
+ })
55
+ },
56
+
57
+ timeAgoInWords: function(targetDate, includeTime) {
58
+ return $r.distanceOfTimeInWords(targetDate, new Date(), includeTime);
59
+ },
60
+
61
+ /**
62
+ * Return the distance of time in words between two Date's
63
+ * Example: '5 days ago', 'about an hour ago'
64
+ * @param {Date} fromTime The start date to use in the calculation
65
+ * @param {Date} toTime The end date to use in the calculation
66
+ * @param {Boolean} Include the time in the output
67
+ */
68
+ distanceOfTimeInWords: function(fromTime, toTime, includeTime) {
69
+ var delta = parseInt((toTime.getTime() - fromTime.getTime()) / 1000);
70
+ if (delta < 60) {
71
+ return 'less than a minute ago';
72
+ } else if (delta < 120) {
73
+ return 'about a minute ago';
74
+ } else if (delta < (45*60)) {
75
+ return (parseInt(delta / 60)).toString() + ' minutes ago';
76
+ } else if (delta < (120*60)) {
77
+ return 'about an hour ago';
78
+ } else if (delta < (24*60*60)) {
79
+ return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
80
+ } else if (delta < (48*60*60)) {
81
+ return '1 day ago';
82
+ } else {
83
+ var days = (parseInt(delta / 86400)).toString();
84
+ if (days > 5) {
85
+ var fmt = '%B %d, %Y'
86
+ if (includeTime) fmt += ' %I:%M %p'
87
+ return $r.strftime(fromTime, fmt);
88
+ } else {
89
+ return days + " days ago"
90
+ }
91
+ }
92
+ }
93
+ })
94
+ })(jQuery);
@@ -8,4 +8,3 @@
8
8
  - @jobs.each do |job|
9
9
  = partial :job, {:job => job}
10
10
  = partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page
11
- = poll
@@ -12,4 +12,3 @@
12
12
  - @jobs.each do |job|
13
13
  = partial :job, {:job => job}
14
14
  = partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page
15
- = poll
@@ -23,15 +23,15 @@
23
23
  = job.last_error
24
24
  - if job.run_at
25
25
  %dt Run At
26
- %dd= job.run_at
26
+ %dd.time= job.run_at
27
27
  - if job.locked_at
28
28
  %dt Locked At
29
- %dd= job.locked_at
30
- - if job.locked_at
29
+ %dd.time= job.locked_at
30
+ - if job.locked_by
31
31
  %dt Locked By
32
32
  %dd= job.locked_by
33
- -if job.failed_at
33
+ - if job.failed_at
34
34
  %dt Failed At
35
- %dd= job.failed_at
35
+ %dd.time= job.failed_at
36
36
  %dt Created At
37
- %dd= job.created_at
37
+ %dd.time= job.created_at
@@ -19,4 +19,5 @@
19
19
  &
20
20
  %a{:href => 'https://github.com/ejschmitt/delayed_job_web'} delayed_job_web
21
21
  %script{:type => "text/javascript", :src => u("javascripts/jquery-1.7.1.min.js")}
22
+ %script{:type => "text/javascript", :src => u("javascripts/jquery.relatize_date.js")}
22
23
  %script{:type => "text/javascript", :src => u("javascripts/application.js")}
@@ -10,4 +10,3 @@
10
10
  - @jobs.each do |job|
11
11
  = partial :job, {:job => job}
12
12
  = partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page
13
- = poll
@@ -7,4 +7,3 @@
7
7
  - @jobs.each do |job|
8
8
  = partial :job, {:job => job}
9
9
  = partial :next_more, :start => start, :total_size => @all_jobs.count, :per_page => per_page
10
- = poll
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: delayed_job_web
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.1
5
+ version: 1.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Erick Schmitt
@@ -135,6 +135,7 @@ files:
135
135
  - lib/delayed_job_web/application/public/images/poll.png
136
136
  - lib/delayed_job_web/application/public/javascripts/application.js
137
137
  - lib/delayed_job_web/application/public/javascripts/jquery-1.7.1.min.js
138
+ - lib/delayed_job_web/application/public/javascripts/jquery.relatize_date.js
138
139
  - lib/delayed_job_web/application/public/stylesheets/reset.css
139
140
  - lib/delayed_job_web/application/public/stylesheets/style.css
140
141
  - lib/delayed_job_web/application/views/enqueued.haml
@@ -163,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
164
  requirements:
164
165
  - - ">="
165
166
  - !ruby/object:Gem::Version
166
- hash: -672185974482577684
167
+ hash: -1684287865726047204
167
168
  segments:
168
169
  - 0
169
170
  version: "0"