taskwarrior-web 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,9 @@
1
+ ## v1.1.2 (12/7/12)
2
+
3
+ * Fixed dumb but annoying timezone issue
4
+ * Added progress bars to project pages
5
+ * Added priority field to task form
6
+
1
7
  ## v1.1.1 (12/7/12)
2
8
 
3
9
  * Fixing small issue with blank status messages.
data/README.md CHANGED
@@ -3,11 +3,7 @@
3
3
  A lightweight, Sinatra-based web interface for the
4
4
  wonderful [Taskwarrior](http://taskwarrior.org/) todo application.
5
5
 
6
- **Now compatible with all versions of Taskwarrior, including 2.x**
7
- **Also, now including a NEW theme based on Twitter Bootstrap. Mobile version
8
- forthcoming!**
9
-
10
- [![Build Status](https://secure.travis-ci.org/theunraveler/taskwarrior-web.png)](http://travis-ci.org/theunraveler/taskwarrior-web)
6
+ ![TaskwarriorWeb screenshot](https://dl.dropbox.com/u/107599300/screenshot.png)
11
7
 
12
8
  ## Requirements
13
9
 
@@ -60,3 +56,5 @@ Here is an example of a [good bug report][2].
60
56
 
61
57
  This project is not developed by the Taskwarrior team. Obviously,
62
58
  taskwarrior-web extends Taskwarrior, but the projects are separate.
59
+
60
+ [![Build Status](https://secure.travis-ci.org/theunraveler/taskwarrior-web.png)](http://travis-ci.org/theunraveler/taskwarrior-web)
@@ -3,7 +3,7 @@ require 'active_support/core_ext/date/calculations'
3
3
  module TaskwarriorWeb::App::Helpers
4
4
  def format_date(timestamp)
5
5
  format = TaskwarriorWeb::Config.dateformat || '%-m/%-d/%Y'
6
- Time.parse(timestamp).strftime(format)
6
+ Time.parse(timestamp).localtime.strftime(format)
7
7
  end
8
8
 
9
9
  def colorize_date(timestamp)
@@ -43,10 +43,21 @@ module TaskwarriorWeb::App::Helpers
43
43
  total.to_s
44
44
  end
45
45
 
46
+ def progress_bar(tasks)
47
+ return 0 if tasks.empty?
48
+ doneness = (tasks.select { |t| t.status == 'completed' }.count.to_f / tasks.count.to_f) * 100
49
+ string = %Q{<div class="progress progress-striped">}
50
+ string << %Q{<div class="bar" style="width: #{doneness.to_i}%;"></div>&nbsp;#{doneness.to_i}%}
51
+ string << %Q{</div>}
52
+ string
53
+ end
54
+
46
55
  def crud_links(task)
47
- string = %Q{<a href="/tasks/#{task.uuid}">Edit</a>}
56
+ string = %Q{<span class="crud-links">}
57
+ string << %Q{<a href="/tasks/#{task.uuid}"><i class="icon-pencil"></i></a>}
48
58
  string << %Q{&nbsp;|&nbsp;}
49
- string << %Q{<a href="/tasks/#{task.uuid}/delete">Delete</a>}
59
+ string << %Q{<a href="/tasks/#{task.uuid}/delete"><i class="icon-trash"></i></a>}
60
+ string << %Q{</span>}
50
61
  string
51
62
  end
52
63
 
@@ -50,3 +50,4 @@ body { padding-top: 40px; }
50
50
  }
51
51
 
52
52
  h2.project i { vertical-align: 35%; }
53
+ span.crud-links i { margin-top: 4px; }
@@ -19,6 +19,21 @@
19
19
  </div>
20
20
  </div>
21
21
 
22
+ <div class="control-group">
23
+ <label class="control-label">Priority</label>
24
+ <div class="controls">
25
+ <label for="task-priority-none" class="radio inline">
26
+ <input type="radio" id="task-priority-none" name="task[priority]" value=""<% if @task.nil? || @task.priority.blank? %> checked="checked"<% end %> /> None
27
+ </label>
28
+ <% {'L' => 'Low', 'M' => 'Medium', 'H' => 'High'}.each_pair do |value, label| %>
29
+ <label for="task-priority-<%= label.downcase %>" class="radio inline">
30
+ <input type="radio" id="task-priority-<%= label.downcase %>" name="task[priority]" value="<%= value %>"<% if @task && @task.priority == value %> checked="checked"<% end %> />
31
+ &nbsp;<%= label %>
32
+ </label>
33
+ <% end %>
34
+ </div>
35
+ </div>
36
+
22
37
  <div class="control-group">
23
38
  <label for="task-tags" class="control-label">Tags</label>
24
39
  <div class="controls">
@@ -1,3 +1,5 @@
1
+ <%= progress_bar(@tasks) %>
2
+
1
3
  <div id="listing">
2
4
  <table class="table table-striped table-hover">
3
5
  <thead>
@@ -12,15 +12,12 @@
12
12
  <div class="span9">
13
13
  <div id="listing">
14
14
  <% @tasks.each do |proj, tasks| %>
15
- <% doneness = (tasks.select { |t| t.status == 'completed' }.count.to_f / tasks.count.to_f) * 100 %>
16
15
  <section class="project-container" id="project-<%= proj.parameterize %>">
17
- <h2 class="project <%= doneness == 100 ? 'done' : 'pending' %>">
16
+ <h2 class="project">
18
17
  <%= proj %>&nbsp;
19
18
  <a href="/projects/<%= linkify(proj) %>"><i class="icon-circle-arrow-right"></i></a>
20
19
  </h2>
21
- <div class="progress progress-striped">
22
- <div class="bar" style="width: <%= doneness.to_i %>%;"></div>&nbsp;<%= doneness.to_i %>%
23
- </div>
20
+ <%= progress_bar(tasks) %>
24
21
  <table class="table table-striped table-hover">
25
22
  <thead>
26
23
  <tr>
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "taskwarrior-web"
6
- s.version = '1.1.1'
6
+ s.version = '1.1.2'
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Jake Bell"]
9
9
  s.email = ["jake@theunraveler.com"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taskwarrior-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-12-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
16
- requirement: &70106018058460 !ruby/object:Gem::Requirement
16
+ requirement: &70206370788540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70106018058460
24
+ version_requirements: *70206370788540
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: parseconfig
27
- requirement: &70106018057440 !ruby/object:Gem::Requirement
27
+ requirement: &70206370787820 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70106018057440
35
+ version_requirements: *70206370787820
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: vegas
38
- requirement: &70106018056880 !ruby/object:Gem::Requirement
38
+ requirement: &70206370787120 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70106018056880
46
+ version_requirements: *70206370787120
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rinku
49
- requirement: &70106018055680 !ruby/object:Gem::Requirement
49
+ requirement: &70206370786420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70106018055680
57
+ version_requirements: *70206370786420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: versionomy
60
- requirement: &70106018054900 !ruby/object:Gem::Requirement
60
+ requirement: &70206370785500 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70106018054900
68
+ version_requirements: *70206370785500
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activesupport
71
- requirement: &70106018054080 !ruby/object:Gem::Requirement
71
+ requirement: &70206370784480 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70106018054080
79
+ version_requirements: *70206370784480
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: sinatra-simple-navigation
82
- requirement: &70106018053220 !ruby/object:Gem::Requirement
82
+ requirement: &70206370783620 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70106018053220
90
+ version_requirements: *70206370783620
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rack-flash3
93
- requirement: &70106018052440 !ruby/object:Gem::Requirement
93
+ requirement: &70206370782760 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *70106018052440
101
+ version_requirements: *70206370782760
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rake
104
- requirement: &70106018051620 !ruby/object:Gem::Requirement
104
+ requirement: &70206370781900 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70106018051620
112
+ version_requirements: *70206370781900
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rack-test
115
- requirement: &70106018050760 !ruby/object:Gem::Requirement
115
+ requirement: &70206370781160 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70106018050760
123
+ version_requirements: *70206370781160
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rspec
126
- requirement: &70106018050120 !ruby/object:Gem::Requirement
126
+ requirement: &70206370780320 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70106018050120
134
+ version_requirements: *70206370780320
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: rspec-html-matchers
137
- requirement: &70106018049660 !ruby/object:Gem::Requirement
137
+ requirement: &70206370779420 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *70106018049660
145
+ version_requirements: *70206370779420
146
146
  description: This gem provides a graphical frontend for the Taskwarrior task manager.
147
147
  It is based on Sinatra.
148
148
  email:
@@ -234,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
234
  version: '0'
235
235
  segments:
236
236
  - 0
237
- hash: 4262245141649154922
237
+ hash: 3722492291802643643
238
238
  requirements: []
239
239
  rubyforge_project: taskwarrior-web
240
240
  rubygems_version: 1.8.11