knjtasks 0.0.3

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 (69) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +18 -0
  4. data/Gemfile.lock +66 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.rdoc +19 -0
  7. data/Rakefile +49 -0
  8. data/VERSION +1 -0
  9. data/files/database_schema.rb +174 -0
  10. data/lib/knjtasks.rb +172 -0
  11. data/locales/da_DK/LC_MESSAGES/default.mo +0 -0
  12. data/locales/da_DK/LC_MESSAGES/default.po +1153 -0
  13. data/locales/da_DK/title.txt +1 -0
  14. data/locales/en_GB/title.txt +1 -0
  15. data/models/class_comment.rb +44 -0
  16. data/models/class_customer.rb +13 -0
  17. data/models/class_email_check.rb +7 -0
  18. data/models/class_project.rb +22 -0
  19. data/models/class_task.rb +163 -0
  20. data/models/class_task_assigned_user.rb +62 -0
  21. data/models/class_task_check.rb +26 -0
  22. data/models/class_timelog.rb +82 -0
  23. data/models/class_user.rb +125 -0
  24. data/models/class_user_project_link.rb +66 -0
  25. data/models/class_user_rank.rb +3 -0
  26. data/models/class_user_rank_link.rb +17 -0
  27. data/models/class_user_task_list_link.rb +17 -0
  28. data/pages/admin.rhtml +7 -0
  29. data/pages/comment_edit.rhtml +121 -0
  30. data/pages/comment_update_id_per_obj.rhtml +41 -0
  31. data/pages/customer_edit.rhtml +69 -0
  32. data/pages/customer_search.rhtml +80 -0
  33. data/pages/customer_show.rhtml +50 -0
  34. data/pages/frontpage.rhtml +198 -0
  35. data/pages/project_edit.rhtml +129 -0
  36. data/pages/project_search.rhtml +82 -0
  37. data/pages/project_show.rhtml +203 -0
  38. data/pages/task_check_edit.rhtml +98 -0
  39. data/pages/task_edit.rhtml +168 -0
  40. data/pages/task_search.rhtml +131 -0
  41. data/pages/task_show.rhtml +454 -0
  42. data/pages/timelog_edit.rhtml +134 -0
  43. data/pages/timelog_search.rhtml +318 -0
  44. data/pages/user_edit.rhtml +223 -0
  45. data/pages/user_login.rhtml +83 -0
  46. data/pages/user_profile.rhtml +89 -0
  47. data/pages/user_rank_search.rhtml +95 -0
  48. data/pages/user_search.rhtml +136 -0
  49. data/pages/user_show.rhtml +87 -0
  50. data/pages/workstatus.rhtml +320 -0
  51. data/scripts/fckeditor_validate_login.rb +23 -0
  52. data/spec/knjtasks_spec.rb +115 -0
  53. data/spec/spec_helper.rb +12 -0
  54. data/threads/thread_mail_task_comments.rb +114 -0
  55. data/www/api/task.rhtml +9 -0
  56. data/www/api/user.rhtml +20 -0
  57. data/www/clean.rhtml +14 -0
  58. data/www/css/default.css +186 -0
  59. data/www/gfx/body_bg.jpg +0 -0
  60. data/www/gfx/button_bg.png +0 -0
  61. data/www/gfx/main_box_design.png +0 -0
  62. data/www/gfx/main_box_left.png +0 -0
  63. data/www/gfx/main_box_right.png +0 -0
  64. data/www/gfx/main_box_top.png +0 -0
  65. data/www/gfx/main_box_top_left.png +0 -0
  66. data/www/gfx/main_box_top_right.png +0 -0
  67. data/www/index.rhtml +154 -0
  68. data/www/js/default.js +112 -0
  69. metadata +208 -0
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,154 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
+ <%
3
+ _site.load_request
4
+
5
+ show = _get["show"] if !_get["show"].to_s.empty?
6
+ show = "frontpage" if !show
7
+ showp = "../pages/#{show}.rhtml"
8
+
9
+ head_title = ""
10
+ head_titles = {
11
+ "frontpage" => _("Frontpage"),
12
+ "customer_search" => _("Customers"),
13
+ "project_search" => _("Projects"),
14
+ "task_search" => _("Tasks"),
15
+ "user_search" => _("Users"),
16
+ "timelog_search" => _("Timelogs"),
17
+ "workstatus" => _("Work-status"),
18
+ "admin" => _("Administration")
19
+ }
20
+
21
+ if head_titles.has_key?(_get["show"])
22
+ head_title = head_titles[_get["show"]]
23
+ elsif _get["show"] == "task_show" or (_get["show"] == "task_edit" and _get["task_id"])
24
+ begin
25
+ task = _ob.get(:Task, _get["task_id"])
26
+ head_title = task.name
27
+ rescue Errno::ENOENT
28
+ _hb.alert(_("That task could not be found.")).back
29
+ end
30
+ elsif _get["show"] == "project_show" or (_get["show"] == "project_edit" and _get["project_id"])
31
+ begin
32
+ project = _ob.get(:Project, _get["project_id"])
33
+ head_title = project.name
34
+ rescue Errno::ENOENT
35
+ _hb.alert(_("That project could not be found.")).back
36
+ end
37
+ end
38
+
39
+ if head_title.length == 0
40
+ head_title = "knjTasks"
41
+ else
42
+ head_title = "#{head_title} - knjTasks"
43
+ end
44
+
45
+ _hb.redirect("?show=user_login&backurl=#{Php4r.urlencode(_meta["REQUEST_URI"])}") if !_site.user and _get["show"] != "user_login" and _get["show"] != "test_browser" and _get["show"] != "test"
46
+ %>
47
+ <html>
48
+ <head>
49
+ <title><%=head_title.html%></title>
50
+
51
+ <link rel="stylesheet" type="text/css" href="css/default.css" />
52
+
53
+ <script type="text/javascript" src="<%=_site.args[:knjjs_url]%>/jquery.js"></script>
54
+ <script type="text/javascript" src="<%=_site.args[:knjjs_url]%>/jquery.md5.js"></script>
55
+ <script type="text/javascript" src="<%=_site.args[:knjjs_url]%>/modal.js"></script>
56
+ <script type="text/javascript" src="<%=_site.args[:knjjs_url]%>/events.js"></script>
57
+ <script type="text/javascript" src="<%=_site.args[:knjjs_url]%>/forms.js"></script>
58
+ <script type="text/javascript" src="<%=_site.args[:knjjs_url]%>/select.js"></script>
59
+
60
+ <script type="text/javascript" src="js/default.js"></script>
61
+ </head>
62
+ <body>
63
+ <script type="text/javascript">
64
+ var js_settings = {
65
+ "knjjs_url": "<%=_site.args[:knjjs_url]%>"
66
+ }
67
+
68
+ var locale_strings = {
69
+ "close": "<%=_('Close')%>",
70
+ "comment_edit_title": "<%=_('Edit comment')%>",
71
+ "timelog_edit_title": "<%=_('Edit timelog')%>",
72
+ "task_check_edit_title": "<%=_('Edit task-check')%>"
73
+ }
74
+ </script>
75
+
76
+ <center>
77
+ <table class="main_table" cellspacing="0" cellpadding="0">
78
+ <tr>
79
+ <td colspan="3" class="main_logo">
80
+ knjTasks
81
+ </td>
82
+ </tr>
83
+ <tr>
84
+ <td class="main_corner_top_left"></td>
85
+ <td class="main_side_top"></td>
86
+ <td class="main_corner_top_right"></td>
87
+ </tr>
88
+ <tr>
89
+ <td class="main_side_left"></td>
90
+ <td class="main_body">
91
+ <div class="main_menu_outer">
92
+ <div class="main_menu_inner">
93
+ <%
94
+ if _site.user
95
+ menu = [
96
+ {:name => _("Frontpage"), :link => "?show=frontpage"}
97
+ ]
98
+
99
+ if _site.has_rank?("admin") and (!_site.args.has_key?(:customers) or _site.args[:customers])
100
+ menu << {:name => _("Customers"), :link => "?show=customer_search"}
101
+ menu << {:name => _("Projects"), :link => "?show=project_search"}
102
+ end
103
+
104
+ menu << {:name => _("Tasks"), :link => "?show=task_search"}
105
+ menu << {:name => _("Users"), :link => "?show=user_search"}
106
+
107
+ if _site.has_rank?("admin")
108
+ menu << {:name => _("Timelogs"), :link => "?show=timelog_search"}
109
+ menu << {:name => _("Work-status"), :link => "?show=workstatus"}
110
+ menu << {:name => _("Administration"), :link => "?show=admin"}
111
+ end
112
+
113
+ menu << {:name => _("Your profile"), :link => "?show=user_profile"}
114
+ menu << {:name => _("Log out"), :link => "?show=user_login&choice=dologout"}
115
+ else
116
+ menu = [
117
+ {:name => _("Log in"), :link => "?show=user_login"}
118
+ ]
119
+ end
120
+
121
+ menu.each do |mi|
122
+ %>
123
+ <a href="<%=mi[:link]%>"><%=mi[:name]%></a>&nbsp;&nbsp;&nbsp;
124
+ <%
125
+ end
126
+ %>
127
+ </div>
128
+ </div>
129
+ <div class="main_content">
130
+ <%
131
+ _hb.import(showp)
132
+ %>
133
+ </div>
134
+ </td>
135
+ <td class="main_side_right"></td>
136
+ </tr>
137
+ <tr>
138
+ <td class="main_side_left"></td>
139
+ <td class="main_bottom">
140
+ <div style="padding-bottom: 15px;">
141
+ Language:
142
+ <select style="width: 100px;" onchange="location.href='<%=_meta["REQUEST_URI"]%>&amp;l=' + this.value;">
143
+ <%=Knj::Web.opts(_hb.gettext.lang_opts, _session[:locale])%>
144
+ </select>
145
+ </div>
146
+
147
+ <%=sprintf(_("Made by %s"), "<a href=\"mailto:k@spernj.org\">Kasper Johansen</a>")%>
148
+ </td>
149
+ <td class="main_side_right"></td>
150
+ </tr>
151
+ </table>
152
+ </center>
153
+ </body>
154
+ </html>
@@ -0,0 +1,112 @@
1
+ var events = new Events();
2
+
3
+ $(document).ready(function(){
4
+ modal_setup({
5
+ url: js_settings["knjjs_url"],
6
+ css: {
7
+ "border": "3px solid #4e4e4e",
8
+ "background-color": "#f6f6f6",
9
+ "padding": "10px",
10
+ "padding-top": "0px",
11
+ "padding-bottom": "14px",
12
+ "width": "700px",
13
+ "height": "700px",
14
+ "overflow": "auto"
15
+ },
16
+ css_header: {
17
+ "font-size": "16px",
18
+ "font-weight": "bold",
19
+ "padding-bottom": "7px",
20
+ "padding-top": "5px",
21
+ "color": "#000000"
22
+ }
23
+ });
24
+ });
25
+
26
+ function comment_delete(comment_id){
27
+ $.ajax({type: "GET", url: "clean.rhtml?show=comment_edit&choice=dodelete&comment_id=" + comment_id, cache: false, async: true, complete: function(data){
28
+ if (data.responseText.length > 0){
29
+ alert(data.responseText);
30
+ }
31
+
32
+ events.call("do_comments_update");
33
+ }});
34
+ }
35
+
36
+ function comment_edit(comment_id){
37
+ modal({title: locale_strings["comment_edit_title"], url: "clean.rhtml?show=comment_edit&comment_id=" + comment_id});
38
+ }
39
+
40
+ function project_remove_assigned_user(link_id){
41
+ $.ajax({type: "GET", url: "clean.rhtml?show=project_show&choice=doremoveassigneduser&link_id=" + link_id, cache: false, async: true, complete: function(data){
42
+ if (data.responseText.length > 0){
43
+ alert(data.responseText);
44
+ }
45
+
46
+ events.call("do_project_assigned_users_update");
47
+ }});
48
+ }
49
+
50
+ function project_assign_user(project_id, user_id){
51
+ $.ajax({type: "GET", url: "clean.rhtml?show=project_show&choice=doassignuser&project_id=" + project_id + "&user_id=" + user_id, cache: false, async: true, complete: function(data){
52
+ if (data.responseText.length > 0){
53
+ alert(data.responseText);
54
+ }
55
+
56
+ events.call("do_project_assigned_users_update");
57
+ }});
58
+ }
59
+
60
+ function timelog_delete(tlog_id){
61
+ $.ajax({type: "GET", url: "clean.rhtml?show=timelog_edit&choice=dodelete&timelog_id=" + tlog_id, cache: false, async: true, complete: function(data){
62
+ if (data.responseText.length > 0){
63
+ alert(data.responseText);
64
+ }
65
+
66
+ events.call("do_timelogs_update");
67
+ }});
68
+ }
69
+
70
+ function timelog_edit(tlog_id){
71
+ modal({title: locale_strings["timelog_edit_title"], height: 600, url: "clean.rhtml?show=timelog_edit&timelog_id=" + tlog_id});
72
+ }
73
+
74
+ function timelog_add(task_id){
75
+ modal({title: locale_strings["timelog_edit_title"], height: 600, url: "clean.rhtml?show=timelog_edit&task_id=" + task_id});
76
+ }
77
+
78
+ function task_remove_assigned(link_id){
79
+ $.ajax({type: "GET", url: "clean.rhtml?show=task_show&choice=removeassigned&link_id=" + link_id, cache: false, async: true, complete: function(data){
80
+ if (data.responseText.length > 0){
81
+ alert(data.responseText);
82
+ }
83
+
84
+ events.call("do_task_assigned_users_update");
85
+ }});
86
+ }
87
+
88
+ function task_check_edit(check_id){
89
+ modal({title: locale_strings["task_check_edit_title"], url: "clean.rhtml?show=task_check_edit&check_id=" + check_id});
90
+ }
91
+
92
+ function task_check_delete(check_id){
93
+ $.ajax({type: "GET", url: "clean.rhtml?show=task_check_edit&choice=dodelete&check_id=" + check_id, cache: false, async: true, complete: function(data){
94
+ if (data.responseText.length > 0){
95
+ alert(data.responseText);
96
+ }
97
+
98
+ events.call("do_task_check_update");
99
+ }});
100
+ }
101
+
102
+ function task_check_set(check_id, val){
103
+ if (val == "on"){
104
+ val = 1;
105
+ }
106
+
107
+ $.ajax({type: "GET", url: "clean.rhtml?show=task_check_edit&choice=setcheck&check_id=" + check_id + "&checkval=" + val, cache: false, async: true, complete: function(data){
108
+ if (data.responseText.length > 0){
109
+ alert(data.responseText);
110
+ }
111
+ }});
112
+ }
metadata ADDED
@@ -0,0 +1,208 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: knjtasks
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Kasper Johansen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-10-11 00:00:00.000000000 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: knjrbfw
17
+ requirement: &14707140 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *14707140
26
+ - !ruby/object:Gem::Dependency
27
+ name: datet
28
+ requirement: &14705900 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *14705900
37
+ - !ruby/object:Gem::Dependency
38
+ name: hayabusa
39
+ requirement: &14704820 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *14704820
48
+ - !ruby/object:Gem::Dependency
49
+ name: http2
50
+ requirement: &14703720 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *14703720
59
+ - !ruby/object:Gem::Dependency
60
+ name: sqlite3
61
+ requirement: &14699200 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *14699200
70
+ - !ruby/object:Gem::Dependency
71
+ name: rspec
72
+ requirement: &14698420 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 2.3.0
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: *14698420
81
+ - !ruby/object:Gem::Dependency
82
+ name: bundler
83
+ requirement: &14697620 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: 1.0.0
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *14697620
92
+ - !ruby/object:Gem::Dependency
93
+ name: jeweler
94
+ requirement: &14696740 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ~>
98
+ - !ruby/object:Gem::Version
99
+ version: 1.6.3
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: *14696740
103
+ description: A longer description will come...
104
+ email: k@spernj.org
105
+ executables: []
106
+ extensions: []
107
+ extra_rdoc_files:
108
+ - LICENSE.txt
109
+ - README.rdoc
110
+ files:
111
+ - .document
112
+ - .rspec
113
+ - Gemfile
114
+ - Gemfile.lock
115
+ - LICENSE.txt
116
+ - README.rdoc
117
+ - Rakefile
118
+ - VERSION
119
+ - files/database_schema.rb
120
+ - lib/knjtasks.rb
121
+ - locales/da_DK/LC_MESSAGES/default.mo
122
+ - locales/da_DK/LC_MESSAGES/default.po
123
+ - locales/da_DK/title.txt
124
+ - locales/en_GB/title.txt
125
+ - models/class_comment.rb
126
+ - models/class_customer.rb
127
+ - models/class_email_check.rb
128
+ - models/class_project.rb
129
+ - models/class_task.rb
130
+ - models/class_task_assigned_user.rb
131
+ - models/class_task_check.rb
132
+ - models/class_timelog.rb
133
+ - models/class_user.rb
134
+ - models/class_user_project_link.rb
135
+ - models/class_user_rank.rb
136
+ - models/class_user_rank_link.rb
137
+ - models/class_user_task_list_link.rb
138
+ - pages/admin.rhtml
139
+ - pages/comment_edit.rhtml
140
+ - pages/comment_update_id_per_obj.rhtml
141
+ - pages/customer_edit.rhtml
142
+ - pages/customer_search.rhtml
143
+ - pages/customer_show.rhtml
144
+ - pages/frontpage.rhtml
145
+ - pages/project_edit.rhtml
146
+ - pages/project_search.rhtml
147
+ - pages/project_show.rhtml
148
+ - pages/task_check_edit.rhtml
149
+ - pages/task_edit.rhtml
150
+ - pages/task_search.rhtml
151
+ - pages/task_show.rhtml
152
+ - pages/timelog_edit.rhtml
153
+ - pages/timelog_search.rhtml
154
+ - pages/user_edit.rhtml
155
+ - pages/user_login.rhtml
156
+ - pages/user_profile.rhtml
157
+ - pages/user_rank_search.rhtml
158
+ - pages/user_search.rhtml
159
+ - pages/user_show.rhtml
160
+ - pages/workstatus.rhtml
161
+ - scripts/fckeditor_validate_login.rb
162
+ - spec/knjtasks_spec.rb
163
+ - spec/spec_helper.rb
164
+ - threads/thread_mail_task_comments.rb
165
+ - www/api/task.rhtml
166
+ - www/api/user.rhtml
167
+ - www/clean.rhtml
168
+ - www/css/default.css
169
+ - www/gfx/body_bg.jpg
170
+ - www/gfx/button_bg.png
171
+ - www/gfx/main_box_design.png
172
+ - www/gfx/main_box_left.png
173
+ - www/gfx/main_box_right.png
174
+ - www/gfx/main_box_top.png
175
+ - www/gfx/main_box_top_left.png
176
+ - www/gfx/main_box_top_right.png
177
+ - www/index.rhtml
178
+ - www/js/default.js
179
+ has_rdoc: true
180
+ homepage: http://github.com/kaspernj/knjtasks
181
+ licenses:
182
+ - MIT
183
+ post_install_message:
184
+ rdoc_options: []
185
+ require_paths:
186
+ - lib
187
+ required_ruby_version: !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ segments:
194
+ - 0
195
+ hash: -1063678652227390460
196
+ required_rubygems_version: !ruby/object:Gem::Requirement
197
+ none: false
198
+ requirements:
199
+ - - ! '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ requirements: []
203
+ rubyforge_project:
204
+ rubygems_version: 1.6.2
205
+ signing_key:
206
+ specification_version: 3
207
+ summary: A task system for managing various projects, timelogs and much more.
208
+ test_files: []