taskwarrior-web 0.0.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.
- data/.gitignore +1 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/README.md +6 -0
- data/Rakefile +2 -0
- data/bin/task-web +10 -0
- data/config.ru +9 -0
- data/lib/taskwarrior-web/app.rb +172 -0
- data/lib/taskwarrior-web/config.rb +11 -0
- data/lib/taskwarrior-web/task.rb +131 -0
- data/lib/taskwarrior-web/version.rb +3 -0
- data/lib/taskwarrior-web.rb +8 -0
- data/public/css/gh-buttons.css +388 -0
- data/public/css/jquery-ui.css +738 -0
- data/public/css/jquery.tagsinput.css +6 -0
- data/public/css/styles.css +283 -0
- data/public/css/tipsy.css +7 -0
- data/public/favicon.ico +0 -0
- data/public/images/ajax-loader.gif +0 -0
- data/public/images/arrow_right_black.png +0 -0
- data/public/images/arrow_right_grey.png +0 -0
- data/public/images/bg_fallback.png +0 -0
- data/public/images/gh-icons.png +0 -0
- data/public/images/grid-view.png +0 -0
- data/public/images/icon_sprite.png +0 -0
- data/public/images/list-view.png +0 -0
- data/public/images/logo.png +0 -0
- data/public/images/progress_bar.gif +0 -0
- data/public/images/slider_handles.png +0 -0
- data/public/images/subnav_background.gif +0 -0
- data/public/images/tab_background.gif +0 -0
- data/public/images/tipsy.gif +0 -0
- data/public/images/ui-icons_222222_256x240.png +0 -0
- data/public/images/ui-icons_454545_256x240.png +0 -0
- data/public/js/application.js +130 -0
- data/public/js/jquery-ui.min.js +163 -0
- data/public/js/jquery.cookie.js +96 -0
- data/public/js/jquery.min.js +16 -0
- data/public/js/jquery.tagsinput.js +218 -0
- data/public/js/jquery.tipsy.js +104 -0
- data/taskwarrior-web.gemspec +25 -0
- data/views/404.erb +3 -0
- data/views/_navigation.erb +21 -0
- data/views/layout.erb +47 -0
- data/views/listing.erb +29 -0
- data/views/project.erb +25 -0
- data/views/projects.erb +35 -0
- data/views/task_form.erb +28 -0
- metadata +134 -0
data/views/layout.erb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title><%= @title %> | Taskwarrior</title>
|
4
|
+
|
5
|
+
<!-- Styles -->
|
6
|
+
<link rel="stylesheet" href="/css/jquery-ui.css">
|
7
|
+
<link rel="stylesheet" href="/css/styles.css">
|
8
|
+
<link rel="stylesheet" href="/css/gh-buttons.css">
|
9
|
+
<link rel="stylesheet" href="/css/tipsy.css">
|
10
|
+
<link rel="stylesheet" href="/css/jquery.tagsinput.css">
|
11
|
+
|
12
|
+
<!-- Scripts -->
|
13
|
+
<script type="text/javascript" src="/js/jquery.min.js"></script>
|
14
|
+
<script type="text/javascript" src="/js/jquery-ui.min.js"></script>
|
15
|
+
<script type="text/javascript" src="/js/jquery.cookie.js"></script>
|
16
|
+
<script type="text/javascript" src="/js/jquery.tipsy.js"></script>
|
17
|
+
<script type="text/javascript" src="/js/jquery.tagsinput.js"></script>
|
18
|
+
<script type="text/javascript" src="/js/application.js"></script>
|
19
|
+
</head>
|
20
|
+
|
21
|
+
<body>
|
22
|
+
<div id="page">
|
23
|
+
<header>
|
24
|
+
<h1>Taskwarrior</h1>
|
25
|
+
<div id="polling-info">
|
26
|
+
<a href="javascript:void(0);" class="button icon clock tooltip" data-tooltip="If polling is on, the page will be reloaded automatically every 3 seconds.">Stop polling</a>
|
27
|
+
</div>
|
28
|
+
</header>
|
29
|
+
<div class="clearer"></div>
|
30
|
+
<%= erb :_navigation %>
|
31
|
+
<section class="content">
|
32
|
+
<h2><%= @title %></h2>
|
33
|
+
<a href="/tasks/new" id="task-add" class="button icon add">Add a Task</a>
|
34
|
+
<div class="clearer"></div>
|
35
|
+
<div id="flash-messages">
|
36
|
+
<% if @messages %>
|
37
|
+
<% @messages.each do |message| %>
|
38
|
+
<div class="message <%= message.severity %>"><%= message.message %></div>
|
39
|
+
<% end %>
|
40
|
+
<% end %>
|
41
|
+
</div>
|
42
|
+
<%= yield %>
|
43
|
+
</section>
|
44
|
+
</div>
|
45
|
+
</body>
|
46
|
+
|
47
|
+
</html>
|
data/views/listing.erb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
<div id="listing">
|
2
|
+
<table>
|
3
|
+
<thead>
|
4
|
+
<tr>
|
5
|
+
<th></th>
|
6
|
+
<th>Description</th>
|
7
|
+
<th>Project</th>
|
8
|
+
<th>Due</th>
|
9
|
+
<th>Tags</th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
<tbody>
|
13
|
+
<% @tasks.each do |task| %>
|
14
|
+
<% if task.status == 'pending' %>
|
15
|
+
<tr class="<%= colorize_date(task.due) %>">
|
16
|
+
<td><input type="checkbox" <%= 'checked="checked" ' if task.status == 'completed' %> class="<%= task.status %>" data-task="<%= task.id %>" /></td>
|
17
|
+
<% else %>
|
18
|
+
<tr class="<%= task.status %>">
|
19
|
+
<td></td>
|
20
|
+
<% end %>
|
21
|
+
<td><%= task.description %></td>
|
22
|
+
<td><a href="/projects/<%= linkify(task.project, :project) %>"><%= task.project %></a></td>
|
23
|
+
<td><%= format_date(task.due) unless task.due.nil? %></td>
|
24
|
+
<td><%= task.tags.join(', ') unless task.tags.nil? %></td>
|
25
|
+
</tr>
|
26
|
+
<% end %>
|
27
|
+
</tbody>
|
28
|
+
</table>
|
29
|
+
</div>
|
data/views/project.erb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
<a class="button icon arrowleft" href="/projects">Back to Projects</a>
|
2
|
+
<div id="listing">
|
3
|
+
<table>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th></th>
|
7
|
+
<th>Description</th>
|
8
|
+
<th>Due</th>
|
9
|
+
<th>Tags</th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
<tbody>
|
13
|
+
<% @tasks.each do |task| %>
|
14
|
+
<% if task.status == 'pending' %>
|
15
|
+
<tr class="<%= colorize_date(task.due) %>">
|
16
|
+
<td><input type="checkbox" <%= 'checked="checked" ' if task.status == 'completed' %> class="<%= task.status %>" data-task="<%= task.id %>" /></td>
|
17
|
+
<td><%= task.description %></td>
|
18
|
+
<td><%= format_date(task.due) unless task.due.nil? %></td>
|
19
|
+
<td><%= task.tags.join(', ') unless task.tags.nil? %></td>
|
20
|
+
</tr>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
</tbody>
|
24
|
+
</table>
|
25
|
+
</div>
|
data/views/projects.erb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
<div id="listing">
|
2
|
+
<% @tasks.each do |proj, tasks| %>
|
3
|
+
<% doneness = (tasks.select { |t| t.status == 'completed' }.count.to_f / tasks.count.to_f) * 100 %>
|
4
|
+
<% unless doneness == 100.0 %>
|
5
|
+
<div class="project-container">
|
6
|
+
<h3 class="project <%= doneness == 100.0 ? 'done' : 'pending' %>">
|
7
|
+
<a href="/projects/<%= linkify(proj, :project) %>"><%= proj %></a>
|
8
|
+
</h3>
|
9
|
+
<div class="doneness-container">
|
10
|
+
<div class="doneness-measure" style="width: <%= doneness.to_i * 2 %>px;"><%= doneness.to_i %>%</div>
|
11
|
+
</div>
|
12
|
+
<table>
|
13
|
+
<thead>
|
14
|
+
<tr>
|
15
|
+
<th>Description</th>
|
16
|
+
<th>Due</th>
|
17
|
+
<th>Tags</th>
|
18
|
+
</tr>
|
19
|
+
</thead>
|
20
|
+
<tbody>
|
21
|
+
<% tasks.each do |task| %>
|
22
|
+
<% if task.status == 'pending' %>
|
23
|
+
<tr class="<%= colorize_date(task.due) %>">
|
24
|
+
<td><%= task.description %></td>
|
25
|
+
<td><%= format_date(task.due) unless task.due.nil? %></td>
|
26
|
+
<td><%= task.tags.join(', ') unless task.tags.nil? %></td>
|
27
|
+
</tr>
|
28
|
+
<% end %>
|
29
|
+
<% end %>
|
30
|
+
</tbody>
|
31
|
+
</table>
|
32
|
+
</div>
|
33
|
+
<% end %>
|
34
|
+
<% end %>
|
35
|
+
</div>
|
data/views/task_form.erb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
<form id="new-task-form" action="/tasks/new" method="post">
|
2
|
+
|
3
|
+
<div class="textfield form-element">
|
4
|
+
<label for="task-description">Description</label>
|
5
|
+
<input type="textfield" id="task-description" name="task[description]" value="<%= @task.description unless @task.nil? %>" />
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<div class="textfield autocomplete form-element">
|
9
|
+
<label for="task-project">Project</label>
|
10
|
+
<input type="textfield" id="task-project" name="task[project]" value="<%= @task.project unless @task.nil? %>" />
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="datefield form-element">
|
14
|
+
<label for="task-due">Due Date</label>
|
15
|
+
<input type="textfield" id="task-due" name="task[due]" value="<%= @task.due unless @task.nil? %>" data-format="<%= @date_format %>" />
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<div class="textfield form-element">
|
19
|
+
<label for="task-tags">Tags</label>
|
20
|
+
<input type="textfield" id="task-tags" name="task[tags]" value="<%= @task.tags unless @task.nil? %>" />
|
21
|
+
<div class="description">Enter tags separated by commas</div>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="submit form-element">
|
25
|
+
<button type="submit" class="button">Create Task</button>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
</form>
|
metadata
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: taskwarrior-web
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jake Bell
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-05-07 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: sinatra
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: parseconfig
|
28
|
+
prerelease: false
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: "0"
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: vegas
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: "0"
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id003
|
48
|
+
description: This gem provides a graphical frontend for the Taskwarrior task manager. It is based on Sinatra.
|
49
|
+
email:
|
50
|
+
- jake@theunraveler.com
|
51
|
+
executables:
|
52
|
+
- task-web
|
53
|
+
extensions: []
|
54
|
+
|
55
|
+
extra_rdoc_files: []
|
56
|
+
|
57
|
+
files:
|
58
|
+
- .gitignore
|
59
|
+
- .rvmrc
|
60
|
+
- Gemfile
|
61
|
+
- README.md
|
62
|
+
- Rakefile
|
63
|
+
- bin/task-web
|
64
|
+
- config.ru
|
65
|
+
- lib/taskwarrior-web.rb
|
66
|
+
- lib/taskwarrior-web/app.rb
|
67
|
+
- lib/taskwarrior-web/config.rb
|
68
|
+
- lib/taskwarrior-web/task.rb
|
69
|
+
- lib/taskwarrior-web/version.rb
|
70
|
+
- public/css/gh-buttons.css
|
71
|
+
- public/css/jquery-ui.css
|
72
|
+
- public/css/jquery.tagsinput.css
|
73
|
+
- public/css/styles.css
|
74
|
+
- public/css/tipsy.css
|
75
|
+
- public/favicon.ico
|
76
|
+
- public/images/ajax-loader.gif
|
77
|
+
- public/images/arrow_right_black.png
|
78
|
+
- public/images/arrow_right_grey.png
|
79
|
+
- public/images/bg_fallback.png
|
80
|
+
- public/images/gh-icons.png
|
81
|
+
- public/images/grid-view.png
|
82
|
+
- public/images/icon_sprite.png
|
83
|
+
- public/images/list-view.png
|
84
|
+
- public/images/logo.png
|
85
|
+
- public/images/progress_bar.gif
|
86
|
+
- public/images/slider_handles.png
|
87
|
+
- public/images/subnav_background.gif
|
88
|
+
- public/images/tab_background.gif
|
89
|
+
- public/images/tipsy.gif
|
90
|
+
- public/images/ui-icons_222222_256x240.png
|
91
|
+
- public/images/ui-icons_454545_256x240.png
|
92
|
+
- public/js/application.js
|
93
|
+
- public/js/jquery-ui.min.js
|
94
|
+
- public/js/jquery.cookie.js
|
95
|
+
- public/js/jquery.min.js
|
96
|
+
- public/js/jquery.tagsinput.js
|
97
|
+
- public/js/jquery.tipsy.js
|
98
|
+
- taskwarrior-web.gemspec
|
99
|
+
- views/404.erb
|
100
|
+
- views/_navigation.erb
|
101
|
+
- views/layout.erb
|
102
|
+
- views/listing.erb
|
103
|
+
- views/project.erb
|
104
|
+
- views/projects.erb
|
105
|
+
- views/task_form.erb
|
106
|
+
homepage: http://taskwarrior.org
|
107
|
+
licenses: []
|
108
|
+
|
109
|
+
post_install_message:
|
110
|
+
rdoc_options: []
|
111
|
+
|
112
|
+
require_paths:
|
113
|
+
- lib
|
114
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: "0"
|
120
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: "0"
|
126
|
+
requirements: []
|
127
|
+
|
128
|
+
rubyforge_project: taskwarrior-web
|
129
|
+
rubygems_version: 1.8.1
|
130
|
+
signing_key:
|
131
|
+
specification_version: 3
|
132
|
+
summary: Web frontend for taskwarrior command line task manager.
|
133
|
+
test_files: []
|
134
|
+
|