Commit 7358e1d0c949434a87b62946890680f70075c6fd
1 parent
91942873
Exists in
master
and in
29 other branches
[work-assignment] Views
Showing
4 changed files
with
76 additions
and
4 deletions
Show diff stats
plugins/work_assignment/lib/work_assignment_plugin/helper.rb
1 | module WorkAssignmentPlugin::Helper | 1 | module WorkAssignmentPlugin::Helper |
2 | - def display_submissions(work_assignment) | ||
3 | - "Displaying submissions..." | 2 | + def display_submissions(work_assignment, user) |
3 | + return if work_assignment.submissions.empty? | ||
4 | + content_tag('table', | ||
5 | + content_tag('tr', | ||
6 | + content_tag('th', _('Author'), :style => 'width: 50%') + | ||
7 | + content_tag('th', _('Submission date')) + | ||
8 | + content_tag('th', _('Versions'), :style => 'text-align: center') + | ||
9 | + content_tag('th', '') | ||
10 | + ) + | ||
11 | + work_assignment.children.map {|author_folder| display_author_folder(author_folder, user)}.join("\n") | ||
12 | + ) | ||
4 | end | 13 | end |
14 | + | ||
15 | + def display_author_folder(author_folder, user) | ||
16 | + return if author_folder.children.empty? | ||
17 | + content_tag('tr', | ||
18 | + content_tag('td', link_to_last_submission(author_folder, user)) + | ||
19 | + content_tag('td', time_format(author_folder.children.last.created_at)) + | ||
20 | + content_tag('td', author_folder.children.count, :style => 'text-align: center') + | ||
21 | + content_tag('td', content_tag('button', _('View all versions'), :class => 'view-author-versions', 'data-folder-id' => author_folder.id)) | ||
22 | + ) + | ||
23 | + author_folder.children.map {|submission| display_submission(submission, user)}.join("\n") | ||
24 | + end | ||
25 | + | ||
26 | + def display_submission(submission, user) | ||
27 | + content_tag('tr', | ||
28 | + content_tag('td', link_to_submission(submission, user)) + | ||
29 | + content_tag('td', time_format(submission.created_at), :colspan => 3), | ||
30 | + :class => "submission-from-#{submission.parent.id}", | ||
31 | + :style => 'display: none' | ||
32 | + ) | ||
33 | + end | ||
34 | + | ||
35 | + def link_to_submission(submission, user) | ||
36 | + if WorkAssignmentPlugin.can_download_submission?(user, submission) | ||
37 | + link_to(submission.name, submission.url) | ||
38 | + else | ||
39 | + submission.name | ||
40 | + end | ||
41 | + end | ||
42 | + | ||
43 | + | ||
44 | + def link_to_last_submission(author_folder, user) | ||
45 | + if WorkAssignmentPlugin.can_download_submission?(user, author_folder.children.last) | ||
46 | + link_to(author_folder.name, author_folder.children.last.url) | ||
47 | + else | ||
48 | + author_folder.name | ||
49 | + end | ||
50 | + end | ||
51 | + # FIXME Copied from custom-froms. Consider passing it to core... | ||
52 | + def time_format(time) | ||
53 | + minutes = (time.min == 0) ? '' : ':%M' | ||
54 | + hour = (time.hour == 0 && minutes.blank?) ? '' : ' %H' | ||
55 | + h = hour.blank? ? '' : 'h' | ||
56 | + time.strftime("%Y-%m-%d#{hour+minutes+h}") | ||
57 | + end | ||
58 | + | ||
5 | end | 59 | end |
@@ -0,0 +1,16 @@ | @@ -0,0 +1,16 @@ | ||
1 | +jQuery(".view-author-versions").each(function(index, bt){ | ||
2 | + jQuery(bt).button({ | ||
3 | + icons: { | ||
4 | + primary: "ui-icon-info" | ||
5 | + }, | ||
6 | + text: false | ||
7 | + }); | ||
8 | + bt.onclick = function(){ | ||
9 | + var folderId = this.getAttribute("data-folder-id"); | ||
10 | + var tr = jQuery(".submission-from-"+folderId); | ||
11 | + if ( tr[0].style.display == "none" ) | ||
12 | + tr.show(); | ||
13 | + else | ||
14 | + tr.hide(); | ||
15 | + } | ||
16 | +}); |
plugins/work_assignment/views/cms/work_assignment_plugin/_work_assignment.html.erb
plugins/work_assignment/views/content_viewer/work_assignment.html.erb