Improved tasks.
This commit is contained in:
parent
52e62f8ddb
commit
acdb331e36
29 changed files with 1186 additions and 198 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
@ -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
|
||||
|
|
@ -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)})
|
||||
19
app/views/tasks/_archive_tasks.html.haml
Normal file
19
app/views/tasks/_archive_tasks.html.haml
Normal 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(", ")
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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)
|
||||
|
|
@ -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'
|
||||
|
|
|
|||
1
app/views/tasks/archive.js.erb
Normal file
1
app/views/tasks/archive.js.erb
Normal file
|
|
@ -0,0 +1 @@
|
|||
$('#tasks').html('<%= escape_javascript(render("archive_tasks")) %>');
|
||||
|
|
@ -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'
|
||||
|
|
@ -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
|
||||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
||||
|
|
@ -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
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue