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.
Files changed (49) hide show
  1. data/.gitignore +1 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +4 -0
  4. data/README.md +6 -0
  5. data/Rakefile +2 -0
  6. data/bin/task-web +10 -0
  7. data/config.ru +9 -0
  8. data/lib/taskwarrior-web/app.rb +172 -0
  9. data/lib/taskwarrior-web/config.rb +11 -0
  10. data/lib/taskwarrior-web/task.rb +131 -0
  11. data/lib/taskwarrior-web/version.rb +3 -0
  12. data/lib/taskwarrior-web.rb +8 -0
  13. data/public/css/gh-buttons.css +388 -0
  14. data/public/css/jquery-ui.css +738 -0
  15. data/public/css/jquery.tagsinput.css +6 -0
  16. data/public/css/styles.css +283 -0
  17. data/public/css/tipsy.css +7 -0
  18. data/public/favicon.ico +0 -0
  19. data/public/images/ajax-loader.gif +0 -0
  20. data/public/images/arrow_right_black.png +0 -0
  21. data/public/images/arrow_right_grey.png +0 -0
  22. data/public/images/bg_fallback.png +0 -0
  23. data/public/images/gh-icons.png +0 -0
  24. data/public/images/grid-view.png +0 -0
  25. data/public/images/icon_sprite.png +0 -0
  26. data/public/images/list-view.png +0 -0
  27. data/public/images/logo.png +0 -0
  28. data/public/images/progress_bar.gif +0 -0
  29. data/public/images/slider_handles.png +0 -0
  30. data/public/images/subnav_background.gif +0 -0
  31. data/public/images/tab_background.gif +0 -0
  32. data/public/images/tipsy.gif +0 -0
  33. data/public/images/ui-icons_222222_256x240.png +0 -0
  34. data/public/images/ui-icons_454545_256x240.png +0 -0
  35. data/public/js/application.js +130 -0
  36. data/public/js/jquery-ui.min.js +163 -0
  37. data/public/js/jquery.cookie.js +96 -0
  38. data/public/js/jquery.min.js +16 -0
  39. data/public/js/jquery.tagsinput.js +218 -0
  40. data/public/js/jquery.tipsy.js +104 -0
  41. data/taskwarrior-web.gemspec +25 -0
  42. data/views/404.erb +3 -0
  43. data/views/_navigation.erb +21 -0
  44. data/views/layout.erb +47 -0
  45. data/views/listing.erb +29 -0
  46. data/views/project.erb +25 -0
  47. data/views/projects.erb +35 -0
  48. data/views/task_form.erb +28 -0
  49. metadata +134 -0
@@ -0,0 +1,388 @@
1
+ /* ------------------------------------------
2
+ CSS3 GITHUB BUTTONS (Nicolas Gallagher)
3
+ Licensed under Unlicense
4
+ http://github.com/necolas/css3-github-buttons
5
+ ------------------------------------------ */
6
+
7
+
8
+ /* ------------------------------------------------------------------------------------------------------------- BUTTON */
9
+
10
+ .button {
11
+ position: relative;
12
+ overflow: visible;
13
+ display: inline-block;
14
+ padding: 0.5em 1em;
15
+ border: 1px solid #d4d4d4;
16
+ margin: 0;
17
+ text-decoration: none;
18
+ text-shadow: 1px 1px 0 #fff;
19
+ font:11px/normal sans-serif;
20
+ color: #333;
21
+ white-space: nowrap;
22
+ cursor: pointer;
23
+ outline: none;
24
+ background-color: #ececec;
25
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f4f4f4), to(#ececec));
26
+ background-image: -moz-linear-gradient(#f4f4f4, #ececec);
27
+ background-image: -o-linear-gradient(#f4f4f4, #ececec);
28
+ background-image: linear-gradient(#f4f4f4, #ececec);
29
+ -webkit-background-clip: padding;
30
+ -moz-background-clip: padding;
31
+ -o-background-clip: padding-box;
32
+ /*background-clip: padding-box;*/ /* commented out due to Opera 11.10 bug */
33
+ -webkit-border-radius: 0.2em;
34
+ -moz-border-radius: 0.2em;
35
+ border-radius: 0.2em;
36
+ /* IE hacks */
37
+ zoom: 1;
38
+ *display: inline;
39
+ }
40
+
41
+ .button:hover,
42
+ .button:focus,
43
+ .button:active {
44
+ border-color: #3072b3;
45
+ border-bottom-color: #2a65a0;
46
+ text-decoration: none;
47
+ text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
48
+ color: #fff;
49
+ background-color: #3072b3;
50
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#599bdc), to(#3072b3));
51
+ background-image: -moz-linear-gradient(#599bdc, #3072b3);
52
+ background-image: -o-linear-gradient(#599bdc, #3072b3);
53
+ background-image: linear-gradient(#599bdc, #3072b3);
54
+ }
55
+
56
+ .button:active,
57
+ .button.active {
58
+ border-color: #2a65a0;
59
+ border-bottom-color: #3884CF;
60
+ color: #fff;
61
+ background-color: #3072b3;
62
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3072b3), to(#599bdc));
63
+ background-image: -moz-linear-gradient(#3072b3, #599bdc);
64
+ background-image: -o-linear-gradient(#3072b3, #599bdc);
65
+ background-image: linear-gradient(#3072b3, #599bdc);
66
+ }
67
+
68
+ /* overrides extra padding on button elements in Firefox */
69
+ .button::-moz-focus-inner {
70
+ padding: 0;
71
+ border: 0;
72
+ }
73
+
74
+ /* ............................................................................................................. Icons */
75
+
76
+ .button.icon:before {
77
+ content: "";
78
+ position: relative;
79
+ top: 1px;
80
+ float:left;
81
+ width: 12px;
82
+ height: 12px;
83
+ margin: 0 0.75em 0 -0.25em;
84
+ background: url(../images/gh-icons.png) 0 99px no-repeat;
85
+ }
86
+
87
+ .button.arrowup.icon:before { background-position: 0 0; }
88
+ .button.arrowup.icon:hover:before,
89
+ .button.arrowup.icon:focus:before,
90
+ .button.arrowup.icon:active:before { background-position: -12px 0; }
91
+
92
+ .button.arrowdown.icon:before { background-position: 0 -12px; }
93
+ .button.arrowdown.icon:hover:before,
94
+ .button.arrowdown.icon:focus:before,
95
+ .button.arrowdown.icon:active:before { background-position: -12px -12px; }
96
+
97
+ .button.arrowleft.icon:before { background-position: 0 -24px; }
98
+ .button.arrowleft.icon:hover:before,
99
+ .button.arrowleft.icon:focus:before,
100
+ .button.arrowleft.icon:active:before { background-position: -12px -24px; }
101
+
102
+ .button.arrowright.icon:before { float:right; margin: 0 -0.25em 0 0.5em; background-position: 0 -36px; }
103
+ .button.arrowright.icon:hover:before,
104
+ .button.arrowright.icon:focus:before,
105
+ .button.arrowright.icon:active:before { background-position: -12px -36px; }
106
+
107
+ .button.approve.icon:before { background-position: 0 -48px; }
108
+ .button.approve.icon:hover:before,
109
+ .button.approve.icon:focus:before,
110
+ .button.approve.icon:active:before { background-position: -12px -48px; }
111
+
112
+ .button.add.icon:before { background-position: 0 -288px; }
113
+ .button.add.icon:hover:before,
114
+ .button.add.icon:focus:before,
115
+ .button.add.icon:active:before { background-position: -12px -288px; }
116
+
117
+ .button.remove.icon:before { background-position: 0 -60px; }
118
+ .button.remove.icon:hover:before,
119
+ .button.remove.icon:focus:before,
120
+ .button.remove.icon:active:before { background-position: -12px -60px; }
121
+
122
+ .button.log.icon:before { background-position: 0 -72px; }
123
+ .button.log.icon:hover:before,
124
+ .button.log.icon:focus:before,
125
+ .button.log.icon:active:before { background-position: -12px -72px; }
126
+
127
+ .button.calendar.icon:before { background-position: 0 -84px; }
128
+ .button.calendar.icon:hover:before,
129
+ .button.calendar.icon:focus:before,
130
+ .button.calendar.icon:active:before { background-position: -12px -84px; }
131
+
132
+ .button.chat.icon:before { background-position: 0 -96px; }
133
+ .button.chat.icon:hover:before,
134
+ .button.chat.icon:focus:before,
135
+ .button.chat.icon:active:before { background-position: -12px -96px; }
136
+
137
+ .button.clock.icon:before { background-position: 0 -108px; }
138
+ .button.clock.icon:hover:before,
139
+ .button.clock.icon:focus:before,
140
+ .button.clock.icon:active:before { background-position: -12px -108px; }
141
+
142
+ .button.settings.icon:before { background-position: 0 -120px; }
143
+ .button.settings.icon:hover:before,
144
+ .button.settings.icon:focus:before,
145
+ .button.settings.icon:active:before { background-position: -12px -120px; }
146
+
147
+ .button.comment.icon:before { background-position: 0 -132px; }
148
+ .button.comment.icon:hover:before,
149
+ .button.comment.icon:focus:before,
150
+ .button.comment.icon:active:before { background-position: -12px -132px; }
151
+
152
+ .button.fork.icon:before { background-position: 0 -144px; }
153
+ .button.fork.icon:hover:before,
154
+ .button.fork.icon:focus:before,
155
+ .button.fork.icon:active:before { background-position: -12px -144px; }
156
+
157
+ .button.like.icon:before { background-position: 0 -156px; }
158
+ .button.like.icon:hover:before,
159
+ .button.like.icon:focus:before,
160
+ .button.like.icon:active:before { background-position: -12px -156px; }
161
+
162
+ .button.favorite.icon:before { background-position: 0 -348px; }
163
+ .button.favorite.icon:hover:before,
164
+ .button.favorite.icon:focus:before,
165
+ .button.favorite.icon:active:before { background-position: -12px -348px; }
166
+
167
+ .button.home.icon:before { background-position: 0 -168px; }
168
+ .button.home.icon:hover:before,
169
+ .button.home.icon:focus:before,
170
+ .button.home.icon:active:before { background-position: -12px -168px; }
171
+
172
+ .button.key.icon:before { background-position: 0 -180px; }
173
+ .button.key.icon:hover:before,
174
+ .button.key.icon:focus:before,
175
+ .button.key.icon:active:before { background-position: -12px -180px; }
176
+
177
+ .button.lock.icon:before { background-position: 0 -192px; }
178
+ .button.lock.icon:hover:before,
179
+ .button.lock.icon:focus:before,
180
+ .button.lock.icon:active:before { background-position: -12px -192px; }
181
+
182
+ .button.unlock.icon:before { background-position: 0 -204px; }
183
+ .button.unlock.icon:hover:before,
184
+ .button.unlock.icon:focus:before,
185
+ .button.unlock.icon:active:before { background-position: -12px -204px; }
186
+
187
+ .button.loop.icon:before { background-position: 0 -216px; }
188
+ .button.loop.icon:hover:before,
189
+ .button.loop.icon:focus:before,
190
+ .button.loop.icon:active:before { background-position: -12px -216px; }
191
+
192
+ .button.search.icon:before { background-position: 0 -228px; }
193
+ .button.search.icon:hover:before,
194
+ .button.search.icon:focus:before,
195
+ .button.search.icon:active:before { background-position: -12px -228px; }
196
+
197
+ .button.mail.icon:before { background-position: 0 -240px; }
198
+ .button.mail.icon:hover:before,
199
+ .button.mail.icon:focus:before,
200
+ .button.mail.icon:active:before { background-position: -12px -240px; }
201
+
202
+ .button.move.icon:before { background-position: 0 -252px; }
203
+ .button.move.icon:hover:before,
204
+ .button.move.icon:focus:before,
205
+ .button.move.icon:active:before { background-position: -12px -252px; }
206
+
207
+ .button.edit.icon:before { background-position: 0 -264px; }
208
+ .button.edit.icon:hover:before,
209
+ .button.edit.icon:focus:before,
210
+ .button.edit.icon:active:before { background-position: -12px -264px; }
211
+
212
+ .button.pin.icon:before { background-position: 0 -276px; }
213
+ .button.pin.icon:hover:before,
214
+ .button.pin.icon:focus:before,
215
+ .button.pin.icon:active:before { background-position: -12px -276px; }
216
+
217
+ .button.reload.icon:before { background-position: 0 -300px; }
218
+ .button.reload.icon:hover:before,
219
+ .button.reload.icon:focus:before,
220
+ .button.reload.icon:active:before { background-position: -12px -300px; }
221
+
222
+ .button.rss.icon:before { background-position: 0 -312px; }
223
+ .button.rss.icon:hover:before,
224
+ .button.rss.icon:focus:before,
225
+ .button.rss.icon:active:before { background-position: -12px -312px; }
226
+
227
+ .button.tag.icon:before { background-position: 0 -324px; }
228
+ .button.tag.icon:hover:before,
229
+ .button.tag.icon:focus:before,
230
+ .button.tag.icon:active:before { background-position: -12px -324px; }
231
+
232
+ .button.trash.icon:before { background-position: 0 -336px; }
233
+ .button.trash.icon:hover:before,
234
+ .button.trash.icon:focus:before,
235
+ .button.trash.icon:active:before { background-position: -12px -336px; }
236
+
237
+ .button.user.icon:before { background-position: 0 -360px; }
238
+ .button.user.icon:hover:before,
239
+ .button.user.icon:focus:before,
240
+ .button.user.icon:active:before { background-position: -12px -360px; }
241
+
242
+
243
+ /* ------------------------------------------------------------------------------------------------------------- BUTTON EXTENSIONS */
244
+
245
+ /* ............................................................................................................. Primary */
246
+
247
+ .button.primary {
248
+ font-weight: bold;
249
+ }
250
+
251
+ /* ............................................................................................................. Danger */
252
+
253
+ .button.danger {
254
+ color: #900;
255
+ }
256
+
257
+ .button.danger:hover,
258
+ .button.danger:focus,
259
+ .button.danger:active {
260
+ border-color: #b53f3a;
261
+ border-bottom-color: #a0302a;
262
+ color: #fff;
263
+ background-color: #dc5f59;
264
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dc5f59), to(#b33630));
265
+ background-image: -moz-linear-gradient(#dc5f59, #b33630);
266
+ background-image: -o-linear-gradient(#dc5f59, #b33630);
267
+ background-image: linear-gradient(#dc5f59, #b33630);
268
+ }
269
+
270
+ .button.danger:active,
271
+ .button.danger.active {
272
+ border-color: #a0302a;
273
+ border-bottom-color: #bf4843;
274
+ background-color: #b33630;
275
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b33630), to(#dc5f59));
276
+ background-image: -moz-linear-gradient(#b33630, #dc5f59);
277
+ background-image: -o-linear-gradient(#b33630, #dc5f59);
278
+ background-image: linear-gradient(#b33630, #dc5f59);
279
+ }
280
+
281
+ /* ............................................................................................................. Pill */
282
+
283
+ .button.pill {
284
+ -webkit-border-radius: 50em;
285
+ -moz-border-radius: 50em;
286
+ border-radius: 50em;
287
+ }
288
+
289
+ /* ............................................................................................................. Big */
290
+
291
+ .button.big {
292
+ font-size: 14px;
293
+ }
294
+
295
+ .button.big.icon:before { top: 0; }
296
+
297
+
298
+ /* ------------------------------------------------------------------------------------------------------------- BUTTON GROUPS */
299
+
300
+ /* ............................................................................................................. Standard */
301
+
302
+ .button-group {
303
+ display: inline-block;
304
+ list-style: none;
305
+ padding: 0;
306
+ margin: 0;
307
+ /* IE hacks */
308
+ zoom: 1;
309
+ *display: inline;
310
+ }
311
+
312
+ .button + .button,
313
+ .button + .button-group,
314
+ .button-group + .button,
315
+ .button-group + .button-group {
316
+ margin-left: 15px;
317
+ }
318
+
319
+ .button-group li {
320
+ float: left;
321
+ padding: 0;
322
+ margin: 0;
323
+ }
324
+
325
+ .button-group .button {
326
+ float: left;
327
+ margin-left: -1px;
328
+ }
329
+
330
+ .button-group > .button:not(:first-child):not(:last-child),
331
+ .button-group li:not(:first-child):not(:last-child) .button {
332
+ -webkit-border-radius: 0;
333
+ -moz-border-radius: 0;
334
+ border-radius: 0;
335
+ }
336
+
337
+ .button-group > .button:first-child,
338
+ .button-group li:first-child .button {
339
+ margin-left: 0;
340
+ -webkit-border-top-right-radius: 0;
341
+ -webkit-border-bottom-right-radius: 0;
342
+ -moz-border-radius-topright: 0;
343
+ -moz-border-radius-bottomright: 0;
344
+ border-top-right-radius: 0;
345
+ border-bottom-right-radius: 0;
346
+ }
347
+
348
+ .button-group > .button:last-child,
349
+ .button-group li:last-child > .button {
350
+ -webkit-border-top-left-radius: 0;
351
+ -webkit-border-bottom-left-radius: 0;
352
+ -moz-border-radius-topleft: 0;
353
+ -moz-border-radius-bottomleft: 0;
354
+ border-top-left-radius: 0;
355
+ border-bottom-left-radius: 0;
356
+ }
357
+
358
+ /* ............................................................................................................. Minor */
359
+
360
+ .button-group.minor-group .button {
361
+ border: 1px solid #d4d4d4;
362
+ text-shadow: none;
363
+ background-image: none;
364
+ background-color: #fff;
365
+ }
366
+
367
+ .button-group.minor-group .button:hover,
368
+ .button-group.minor-group .button:focus,
369
+ .button-group.minor-group .button:active {
370
+ background-color: #599bdc;
371
+ }
372
+
373
+ .button-group.minor-group .button:active,
374
+ .button-group.minor-group .button.active {
375
+ background-color: #3072b3;
376
+ }
377
+
378
+ .button-group.minor-group .button.icon:before {
379
+ opacity: 0.8;
380
+ }
381
+
382
+ /* ------------------------------------------------------------------------------------------------------------- BUTTON CONTAINER */
383
+ /* For mixing buttons and button groups, e.g., in a navigation bar */
384
+
385
+ .button-container .button,
386
+ .button-container .button-group {
387
+ vertical-align: top;
388
+ }