Improved tasks.

This commit is contained in:
benni 2012-10-08 21:52:03 +02:00
parent 52e62f8ddb
commit acdb331e36
29 changed files with 1186 additions and 198 deletions

View file

@ -37,8 +37,7 @@
- unless Message.public.empty?
%section
%h2 Neuste Nachrichten
= render :partial => 'messages/messages',
:locals => {:messages => Message.public.order('created_at DESC').limit(5), :subject_length => 70}
= render 'messages/messages', messages: Message.public.order('created_at DESC').limit(5), pagination: false
%p= link_to "Alle Nachrichten einsehen", messages_path
- if current_user.ordergroup

View file

@ -1,13 +1,14 @@
- if Message.public.count > 20
= items_per_page
= pagination_links_remote messages
- if pagination
- if Message.public.count > 20
= items_per_page
= pagination_links_remote messages
- unless messages.empty?
%table.table.table-striped
%tbody
- for message in messages
%tr
%td= format_subject(message, subject_length)
%td= format_subject(message, 130)
%td= h(message.sender_name)
%td= format_time(message.created_at)
%td= link_to 'Antworten', new_message_path(:message => {:reply_to => message.id}), class: 'btn'

View file

@ -2,4 +2,4 @@
= link_to 'Neue Nachricht', new_message_path, class: 'btn btn-primary'
#messages
= render :partial => 'messages', :locals => { :messages => @messages, :subject_length => 130 }
= render 'messages', messages: @messages, pagination: true

View file

@ -1,6 +1,14 @@
- for workgroup in Workgroup.all
%h4= link_to workgroup.name, "#", 'data-toggle-this' => "#workgroup_#{workgroup.id}"
%ul{:style => "display:none"}[workgroup]
- for user in workgroup.users.order("nick")
%li= "#{user.nick} (#{user.ordergroup.try(:name)})"
.well.well-small
%h4 Mitglieder der Gruppen
#groupMembers.accordion
- Workgroup.all.each do |workgroup|
.accordion-group
.accoridon-heading
= link_to workgroup.name, "#collapse#{workgroup.id}", data: {toggle: 'collapse', parent: '#groupMembers'}
%div{id: "collapse#{workgroup.id}", class: 'accordion-body collapse'}
.accordion-inner
%ul.unstyled
- workgroup.users.includes(:groups).order('nick').each do |user|
%li
= user.nick
%small (#{user.ordergroup.try(:name)})

View file

@ -0,0 +1,19 @@
- if Task.done.count > 20
= items_per_page
= pagination_links_remote @tasks
%table.table.table-striped
%thead
%tr
%th Fälligkeitsdatum
%th Betreff
%th Verantwortliche Menschen
%th
%tbody
- @tasks.each do |task|
%tr
%td= task.due_date unless task.due_date.nil?
%td= link_to "#{task.name} (#{task.duration}h)", :controller => "tasks", :action => "show", :id => task
%td
- unless task.users.empty?
= task.users.map(&:nick).join(", ")

View file

@ -1,4 +1,4 @@
- content_for :head do
- content_for :javascript do
:javascript
$(function() {
$("#task_user_list").tokenInput("#{users_path(:format => :json)}", {
@ -6,10 +6,14 @@
prePopulate: $("#task_user_list").data("pre"),
hintText: 'Nach Nutzerin suchen',
noResultText: 'Keine Nutzerin gefunden',
searchingText: 'Suche ...'
searchingText: 'Suche ...',
theme: 'facebook'
});
});
- content_for :sidebar do
= render "shared/workgroup_members"
= simple_form_for @task do |f|
= f.input :name
= f.input :description, as: :text, input_html: {rows: 10}
@ -17,5 +21,8 @@
= f.input :user_list, :as => :string, :input_html => { 'data-pre' => @task.users.map { |u| u.token_attributes }.to_json }
= f.input :required_users
= f.association :workgroup
= f.input :due_date, :include_blank => true
= f.submit
= f.input :due_date, as: :date_picker
= f.input :done
.form-actions
= f.submit class: 'btn'
= link_to 'oder abbrechen', :back

View file

@ -1,25 +1,29 @@
%table
%tr
%th Fälligkeit
%th Betreff
%th{:colspan => '2'}
Wer machts?
%small (Wie viele werden noch benötigt?)
- for task in @tasks
- done = task.done ? " done" : ""
%tr{:class => cycle('even','odd', :name => "tasks") + done }
%td= format_date(task.due_date) unless task.due_date.nil?
%td= link_to "#{task.name} (#{task.duration}h)", task_path(task)
%td
= task_assignments task
= highlighted_required_users task
%td
- unless task.is_accepted?(@current_user)
%span{:style => "float:left"}= button_to "Aufgabe übernehmen", :controller => "tasks", :action => "accept", :id => task
= button_to "Aufgabe ablehnen", :controller => "tasks", :action => "reject", :id => task if task.is_assigned?(@current_user)
- else
- form_for :task, :url => {:action => "update_status", :id => task} do |f|
Erledigt?
= f.check_box :done, {:onchange => "submit()", :title => "Die Aufgabe wandert in das Archiv"}
= "Erledigt" if task.done
- reset_cycle("tasks")
%table.table.table-striped
%thead
%tr
%th Fälligkeit
%th Betreff
%th{:colspan => '2'}
Wer machts?
%small (Wie viele werden noch benötigt?)
%tbody
- tasks.each do |task|
- done = task.done ? " done" : ""
%tr{:class => done }
%td= format_date(task.due_date) unless task.due_date.nil?
%td= link_to "#{task.name} (#{task.duration}h)", task_path(task)
%td
= task_assignments task
= highlighted_required_users task
%td
- if !task.is_accepted?(current_user)
= link_to "Aufgabe übernehmen", accept_task_path(task), method: :post, class: 'btn'
= link_to "Aufgabe ablehnen", reject_task_path(task), method: :post, class: 'btn' if task.is_assigned?(current_user)
- elsif !task.done
= link_to set_done_task_path(task), method: :post, class: 'btn',
title: 'Aufgabe als erledigt markieren' do
%i.icon-ok
Erledigt?
- else
%i.icon-ok
Erledigt

View file

@ -1,19 +1,10 @@
#start_nav{:style => "float:right"}
%h2 Aufgabenmenü
%ul
%li
Aktionen
%ul
%li= link_to "Neue Aufgabe erstellen", :action => "new"
%li
Seiten
%ul
%li= link_to "Meine Aufgaben", user_tasks_path
%li= link_to "Alle Aufgaben", tasks_path
%li= link_to "Erledigt Aufgaben (Archiv)", archive_tasks_path
%li
Gruppenaufgaben
%ul
- for group in Workgroup.all
%li= link_to group.name, workgroup_tasks_path(workgroup_id: group.id)
%p= link_to "Neue Aufgabe erstellen", new_task_path, class: 'btn btn-primary'
.well.well-small
%ul.nav.nav-list
%li.nav-header Seiten
%li= link_to "Meine Aufgaben", user_tasks_path
%li= link_to "Alle Aufgaben", tasks_path
%li= link_to "Erledigte Aufgaben (Archiv)", archive_tasks_path
%li.nav-header Gruppenaufgaben
- for group in Workgroup.all
%li= link_to group.name, workgroup_tasks_path(workgroup_id: group.id)

View file

@ -1,20 +1,5 @@
- title "Aufgabenarchiv"
= render :partial => "nav"
- content_for :sidebar do
= render 'nav'
= will_paginate @orders
%br/
%table{:style => "width: 76%"}
%tr
%th Fälligkeitsdatum
%th Betreff
%th Verantwortliche Menschen
%th
- for task in @tasks
%tr{:class => cycle('even','odd')}
%td= task.due_date unless task.due_date.nil?
%td= link_to "#{task.name} (#{task.duration}h)", :controller => "tasks", :action => "show", :id => task
%td
- unless task.users.empty?
= task.users.map(&:nick).join(", ")
%p
= link_to_top
#tasks= render 'archive_tasks'

View file

@ -0,0 +1 @@
$('#tasks').html('<%= escape_javascript(render("archive_tasks")) %>');

View file

@ -1,8 +1,3 @@
- title "Aufgabe bearbeiten"
#form{:style => "float:left; width:39em"}
= render('form')
#workgroup_members{:style => "padding-left:41em"}
%h3 Mitglieder der Gruppe
#list
= render :partial => "shared/workgroup_members"
= render 'form'

View file

@ -1,21 +1,19 @@
- title "Aufgabenübersicht"
= render :partial => "nav"
- title "Aufgaben"
- content_for :sidebar do
= render 'nav'
- unless @non_group_tasks.empty?
.left_column{:style => "width:75%"}
- @tasks = @non_group_tasks
.box_title
%h2 Aufgaben für alle!
.column_content
= render :partial => "list"
%section
%h3 Aufgaben für alle!
= render 'list', tasks: @non_group_tasks
- for @group in @groups
- @tasks = @group.open_tasks
- unless @tasks.empty?
.left_column{:style => "width:75%"}
.box_title
%h2= link_to @group.name, :action => 'workgroup', :id => @group
.column_content
= render :partial => "list"
- for group in @groups
- tasks = group.open_tasks
- unless tasks.empty?
%section
%h3
= group.name
%small= link_to "Gruppenaufgaben anzeigen", workgroup_tasks_path(group)
= render 'list', tasks: tasks
= link_to_top

View file

@ -1,10 +1,3 @@
- title "Neue Aufgabe erstellen"
#form{:style => "float:left; width:39em"}
= render('form')
#workgroup_members{:style => "padding-left:41em"}
%h3 Mitglieder der Arbeitsgruppen
%i Klicke auf den Gruppennamen um die Mitglieder zu sehen
#list
= render :partial => "shared/workgroup_members"
= render 'form'

View file

@ -1,38 +1,27 @@
- title "Aufgabe im Detail"
= render :partial => "nav"
- content_for :sidebar do
= render 'nav'
%section
%dl.dl-horizontal
%dt Name
%dd= @task.name
%dt Beschreibung
%dd= simple_format(@task.description)
%dt Fälligkeitsdatum
%dd= format_date(@task.due_date)
%dt Dauer in Stunden
%dd= @task.duration
%dt Verantwortliche Menschen
%dd= task_assignments(@task)
%dt Arbeitsgruppe
%dd
- if @task.workgroup
= link_to @task.workgroup.name, workgroup_tasks_path(workgroup_id: @task.workgroup_id)
#task{:style => 'width:70%'}
%table
%tr
%td{:style => "width: 10em"} Name
%td
%b= @task.name
%tr
%td{:style => "vertical-align:top;"} Beschreibung
%td= simple_format(@task.description)
%tr
%td Fälligkeitsdatum
%td= format_date(@task.due_date)
%tr
%td Dauer in Stunden
%td= @task.duration
%tr
%td Verantwortliche Menschen
%td= task_assignments(@task)
%tr
%td Arbeitsgruppe
%td
- if @task.workgroup
= link_to @task.workgroup.name, workgroup_tasks_path(workgroup_id: @task.workgroup_id)
%tr
%td{:colspan => "2"}
%div{:style => "float:left"} Als erledigt markieren
- form_for :task, :url => {:action => "update_status", :id => @task} do |f|
= f.check_box :done, {:onchange => "submit()", :title => "Die Aufgabe wandert in das Archiv"}
%p
= link_to "Bearbeiten", edit_task_path(@task)
|
= link_to "Löschen", task_path(@task), :method => :delete, :confirm => "Die Aufgabe wirklich löschen?"
- unless @task.done?
= link_to 'Als erledigt markieren', set_done_task_path(@task), method: :post, class: 'btn'
= link_to "Bearbeiten", edit_task_path(@task), class: 'btn'
= link_to "Löschen", task_path(@task), :method => :delete, :confirm => "Die Aufgabe wirklich löschen?",
class: 'btn btn-danger'

View file

@ -1,27 +1,20 @@
- title "Meine Aufgaben"
= render :partial => "nav"
- content_for :sidebar do
= render 'nav'
- unless @unaccepted_tasks.empty?
%section
%h3 Offene Aufgaben
= render 'list', tasks: @unaccepted_tasks
%section
%h3 Anstehende Aufgaben
- unless @accepted_tasks.empty?
= render 'list', tasks: @accepted_tasks
- else
Nichts zu tun?
= link_to "Hier", tasks_path
gibt es bestimmt Arbeit.
%br/
= link_to_top
- @tasks = @unaccepted_tasks
- unless @tasks.empty?
.left_column{:style => "width:75%"}
.box_title
%h2 Offene Aufgaben
.column_content
= render :partial => "list"
.left_column{:style => "width:75%"}
.box_title
%h2 Anstehende Aufgaben
.column_content
- @tasks = @accepted_tasks
- unless @tasks.empty?
= render :partial => "list"
- else
Nichts zu tun?
= link_to "Hier", :action => "index"
gibt es bestimmt Arbeit.
%br/
= link_to_top

View file

@ -1,27 +1,22 @@
%h1
Aufgaben verwalten für
= @group.name
= render :partial => "nav"
- title "Aufgaben für #{@group.name}"
- content_for :sidebar do
= render 'nav'
.left_column{:style => "width:45em"}
.box_title
%h2 Wöchentliche Aufgaben verwalten
.column_content
- if @group.weekly_task
%p Jeden <b>#{weekday(@group.weekday)}</b> hat diese Arbeitsgruppe folgenden Job: <b>#{@group.task_name}</b>
%p Die Wochenaufgaben werden von der Foodsoft automatisch erstellt. Eintragen müsst Ihr Euch aber selber.
- else
Noch keine Wochenaufgaben angelegt.
- if @current_user.member_of?(@group) or @current_user.role_admin?
= link_to "Wochenaufgaben bearbeiten", edit_foodcoop_workgroup_path(@group)
%section.well
%h3 Wöchentliche Aufgaben
- if @group.weekly_task
%p Jeden <b>#{weekday(@group.weekday)}</b> hat diese Arbeitsgruppe folgenden Job: <b>#{@group.task_name}</b>
%p Die Wochenaufgaben werden von der Foodsoft automatisch erstellt. Eintragen müsst Ihr Euch aber selber.
- else
Noch keine Wochenaufgaben angelegt.
.left_column{:style => "width:75%"}
.box_title
%h2 Alle Aufgaben der Gruppe
.column_content
- @tasks = @group.open_tasks
= render :partial => "list"
%br/
= link_to_top
- if @current_user.member_of?(@group) or @current_user.role_admin?
= link_to "Wöchentliche Aufgaben anpassen", edit_foodcoop_workgroup_path(@group), class: 'btn'
%section
%h3 Alle Aufgaben der Gruppe
= render 'list', tasks: @group.open_tasks
%br/
= link_to_top