taskwarrior-web 1.0.10 → 1.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ ## v1.0.11 (11/21/12)
2
+
3
+ * Nicer badges in the "Pending" menu item
4
+ * Fixed stripping of non-word characters from tags when adding a new task
5
+
1
6
  ## v1.0.10 (11/20/12)
2
7
 
3
8
  * Adding ability to specify a filter for the task listing. See [the wiki][1]
@@ -103,12 +103,7 @@ class TaskwarriorWeb::App < Sinatra::Base
103
103
  end
104
104
 
105
105
  get '/ajax/count/?' do
106
- if filter = TaskwarriorWeb::Config.property('task-web.filter')
107
- total = TaskwarriorWeb::Task.query(:description => filter).count
108
- else
109
- total = TaskwarriorWeb::Task.count(:status => :pending)
110
- end
111
- total.to_s
106
+ self.class.task_count
112
107
  end
113
108
 
114
109
  post '/ajax/task-complete/:id/?' do
@@ -123,4 +118,13 @@ class TaskwarriorWeb::App < Sinatra::Base
123
118
  @referrer = request.referrer
124
119
  erb :'404'
125
120
  end
121
+
122
+ def self.task_count
123
+ if filter = TaskwarriorWeb::Config.property('task-web.filter')
124
+ total = TaskwarriorWeb::Task.query(:description => filter).count
125
+ else
126
+ total = TaskwarriorWeb::Task.count(:status => :pending)
127
+ end
128
+ total.to_s
129
+ end
126
130
  end
@@ -5,7 +5,7 @@ SimpleNavigation::Configuration.run do |navigation|
5
5
  primary.dom_class = 'nav'
6
6
  primary.item :tasks, 'Tasks', '/tasks' do |tasks|
7
7
  tasks.dom_class = 'nav nav-pills'
8
- tasks.item :pending, "Pending <span class=\"badge\"></span>", '/tasks/pending'
8
+ tasks.item :pending, "Pending <span class=\"badge\">#{TaskwarriorWeb::App.task_count}</span>", '/tasks/pending'
9
9
  tasks.item :waiting, 'Waiting', '/tasks/waiting'
10
10
  tasks.item :completed, 'Completed', '/tasks/completed'
11
11
  tasks.item :deleted, 'Deleted', '/tasks/deleted'
@@ -33,7 +33,7 @@ module TaskwarriorWeb
33
33
 
34
34
  # Make sure that the tags are an array.
35
35
  def tags=(value)
36
- @tags = value.is_a?(String) ? value.split(/\W+/).reject(&:empty?) : value
36
+ @tags = value.is_a?(String) ? value.split(/[, ]+/).reject(&:empty?) : value
37
37
  end
38
38
 
39
39
  def is_valid?
@@ -4,6 +4,8 @@ body { padding-top: 40px; }
4
4
  .section-separator { margin: 40px 0 39px; }
5
5
 
6
6
  #subnav-bar ul.nav { margin-top: 10px; }
7
+ #subnav-bar .nav .badge { background-color: #08c; }
8
+ #subnav-bar .nav li#pending a { padding-top: 6px; padding-bottom: 6px; }
7
9
 
8
10
  #sidebar .nav {
9
11
  width: 228px;
@@ -5,7 +5,6 @@ $(document).ready(function() {
5
5
 
6
6
  // Fluid-specific stuff.
7
7
  refreshDockBadge();
8
- refreshSubnavCount();
9
8
 
10
9
  // Hack to account for navbar when clicking anchor links.
11
10
  $('#sidebar .nav li a').click(function(event) {
@@ -1,5 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
  require 'taskwarrior-web'
3
+ require 'active_support/core_ext/date/calculations'
3
4
 
4
5
  class TestHelpers
5
6
  include TaskwarriorWeb::App::Helpers
@@ -52,6 +53,12 @@ describe TaskwarriorWeb::App::Helpers do
52
53
  it 'should return "overdue" when a date is before today' do
53
54
  helpers.colorize_date(Time.at(0).to_s).should eq('error')
54
55
  end
56
+
57
+ it 'should return "info" when a date is within the specified range' do
58
+ TaskwarriorWeb::Config.should_receive(:due).any_number_of_times.and_return(5)
59
+ helpers.colorize_date(Date.tomorrow.to_s).should eq('info')
60
+ end
61
+
55
62
  end
56
63
  end
57
64
 
@@ -77,6 +77,11 @@ describe TaskwarriorWeb::Task do
77
77
  task.tags.should eq(['hi', 'twice', 'and', 'again'])
78
78
  end
79
79
  end
80
+
81
+ it 'should support most characters' do
82
+ task = TaskwarriorWeb::Task.new(:tags => '@hi, -twice, !again, ~when')
83
+ task.tags.should eq(['@hi', '-twice', '!again', '~when'])
84
+ end
80
85
  end
81
86
 
82
87
  describe '#to_hash' do
@@ -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.0.10'
6
+ s.version = '1.0.11'
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.0.10
4
+ version: 1.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-20 00:00:00.000000000 Z
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
16
- requirement: &70364966614320 !ruby/object:Gem::Requirement
16
+ requirement: &70230869736340 !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: *70364966614320
24
+ version_requirements: *70230869736340
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: thin
27
- requirement: &70364966613720 !ruby/object:Gem::Requirement
27
+ requirement: &70230869735580 !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: *70364966613720
35
+ version_requirements: *70230869735580
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: parseconfig
38
- requirement: &70364966613280 !ruby/object:Gem::Requirement
38
+ requirement: &70230869733980 !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: *70364966613280
46
+ version_requirements: *70230869733980
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: vegas
49
- requirement: &70364966612800 !ruby/object:Gem::Requirement
49
+ requirement: &70230869343760 !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: *70364966612800
57
+ version_requirements: *70230869343760
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rinku
60
- requirement: &70364966612360 !ruby/object:Gem::Requirement
60
+ requirement: &70230869341600 !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: *70364966612360
68
+ version_requirements: *70230869341600
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: versionomy
71
- requirement: &70364966611800 !ruby/object:Gem::Requirement
71
+ requirement: &70230869339760 !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: *70364966611800
79
+ version_requirements: *70230869339760
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: activesupport
82
- requirement: &70364966611080 !ruby/object:Gem::Requirement
82
+ requirement: &70230869338560 !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: *70364966611080
90
+ version_requirements: *70230869338560
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: sinatra-simple-navigation
93
- requirement: &70364966610460 !ruby/object:Gem::Requirement
93
+ requirement: &70230869337980 !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: *70364966610460
101
+ version_requirements: *70230869337980
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rake
104
- requirement: &70364966609880 !ruby/object:Gem::Requirement
104
+ requirement: &70230869336800 !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: *70364966609880
112
+ version_requirements: *70230869336800
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rack-test
115
- requirement: &70364966609200 !ruby/object:Gem::Requirement
115
+ requirement: &70230869712360 !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: *70364966609200
123
+ version_requirements: *70230869712360
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rspec
126
- requirement: &70364966608700 !ruby/object:Gem::Requirement
126
+ requirement: &70230869711380 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,7 +131,7 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70364966608700
134
+ version_requirements: *70230869711380
135
135
  description: This gem provides a graphical frontend for the Taskwarrior task manager.
136
136
  It is based on Sinatra.
137
137
  email:
@@ -219,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
219
  version: '0'
220
220
  segments:
221
221
  - 0
222
- hash: 1101487011083302650
222
+ hash: 705415222630584467
223
223
  requirements: []
224
224
  rubyforge_project: taskwarrior-web
225
225
  rubygems_version: 1.8.11