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