Groups are now workgroups. First part of moving groups-logic into admin-namespace.

This commit is contained in:
Benjamin Meichsner 2009-01-13 19:01:56 +01:00
parent 461dfa8531
commit 2d5dc03b90
31 changed files with 616 additions and 37 deletions

View file

@ -0,0 +1,21 @@
<h1>Mitglieder von <%=h @group.name %></h1>
<p>
<i>Hier kannst Du die Mitglieder der Gruppe verwalten.</i>
</p>
<div class="left_column" style="width:48%">
<div class="box_title">
<h2>Sind schon Mitglieder</h2>
</div>
<div class="column_content" id="members">
<%=render :partial => 'admin/memberships/members' %>
</div>
</div>
<div class="right_column" style="width:48%">
<div class="box_title">
<h2>Sind noch keine Mitglieder</h2>
</div>
<div class="column_content" id="non_members">
<%= render :partial => 'admin/memberships/non_members' %>
<%= link_to('Person einladen', :controller =>'index', :action => 'invite', :id => @group) if (@current_user.is_member_of(@group) || @current_user.role_admin?) %>
</div>
</div>

View file

@ -0,0 +1,21 @@
<% if flash[:error] %>
<h3 class="error" id="flashError" ><%= flash[:error] %></h3>
<%= javascript_tag("new Effect.Highlight('flashError', {delay:0.8, duration:1});") -%>
<% end %>
<% memberships = @group.memberships
if memberships.size != 0 %>
<ul style="">
<% for membership in memberships %>
<li style="margin-left:-15px">
<b><%= membership.user.nick %></b> (<%=h membership.user.first_name + ' ' + membership.user.last_name %>)
| <%= link_to_remote 'entfernen',
:url => { :controller => 'admin/memberships', :action => 'drop_member', :group_id => @group, :membership_id => membership },
:before => "Element.show('loader')",
:success => "Element.hide('loader')" %>
</li>
<% end %>
</ul>
<% else %>
<p><i><%= @group.name %> hat keine Mitglieder.</i></p>
<% end %>

View file

@ -0,0 +1,11 @@
<ul>
<% for user in @group.non_members %>
<li>
<b><%= user.nick %></b> (<%=h user.first_name + ' ' + user.last_name %>)
| <%= link_to_remote 'hinzufügen',
:url => { :controller => 'admin/memberships', :action => 'add_member', :group_id => @group, :user_id => user },
:before => "Element.show('loader')",
:success => "Element.hide('loader')" %>
</li>
<% end %>
</ul>

View file

@ -0,0 +1,84 @@
- form_for [:admin, @workgroup] do |@form|
= @form.error_messages
%div{:style => "float:left;width:55%;"}
%p
= @form.label :name
%br/
= @form.text_field :name, :size => 20
%p
= @form.label :description
%br/
= @form.text_field :description, :size => 40
%div{:style => "float:right;width:40%"}
%h3 Gruppe hat Zugriff auf
%table
%tr
%td
= @form.label :role_admin, "Administration"
%td= @form.check_box :role_admin
%tr
%td
= @form.label :role_finance, "Finanzen"
%td= @form.check_box :role_finance
%tr
%td
= @form.label :role_suppliers, "Lieferantenverwaltung"
%td= @form.check_box :role_suppliers
%tr
%td
= @form.label :role_article_meta, "Artikelverwaltung"
%td= @form.check_box :role_article_meta
%tr
%td
= @form.label :role_orders, "Bestellungsverwaltung"
%td= @form.check_box :role_orders
%div{:style => "clear:both"}
%h3
Wöchentliche Jobs definieren?
= @form.check_box :weekly_task, {:onclick => "toggleWeeklyTask();"}
%table
%tr
%td
= @form.label :weekday, "Wochentag:"
%td
= @form.select :weekday, Workgroup.weekdays
%tr
%td
= @form.label :task_name, "Dienstname:"
%td= @form.text_field :task_name, :size => 20
%tr
%td
= @form.label :task_required_users, "Benötigte Verantwortliche:"
%td= @form.text_field :task_required_users, :size => 3
%tr
%td
= @form.label :task_description, "Beschreibung:"
%td= @form.text_area :task_description
%br{ :style => "clear:both" }
= submit_tag "Speichern"
|
= link_to "Abbrechen", admin_workgroups_path
%script{ 'type' => "text/javascript"}
:plain
//<![CDATA[
// preset data
function toggleWeeklyTask(){
if ($("workgroup_weekly_task").checked == true) {
$('workgroup_weekday').disabled = false;
$('workgroup_task_name').disabled = false;
$('workgroup_task_required_users').disabled = false;
$('workgroup_task_description').disabled = false;
} else {
$('workgroup_weekday').disabled = true;
$('workgroup_task_name').disabled = true;
$('workgroup_task_required_users').disabled = true;
$('workgroup_task_description').disabled = true;
}
}
toggleWeeklyTask();
//]]>

View file

@ -0,0 +1,24 @@
%p
%table{:style => "width:100%"}
%tr
%td
= pagination_links_remote @workgroups
%td{:style => "text-align:right"}
- if @workgroups.size > 20
= items_per_page
%table.list
%thead
%tr
%th Name
%th Mitglieder
%th
%tbody
- for workgroup in @workgroups
%tr{:class => cycle('even','odd', :name => 'groups')}
%td= link_to workgroup.name, [:admin, workgroup]
%td= workgroup.users.size
%td
= link_to image_tag('b_users.png', :size => '16x16', :border => "0", :alt => 'Mitlglieder bearbeiten'), memberships_admin_workgroup_path(workgroup)
= link_to(image_tag('b_edit.png', :size => "16x16", :border => "0", :alt => 'Gruppe bearbeiten'), edit_admin_workgroup_path(workgroup))
= link_to(image_tag('b_drop.png', :size => "16x16", :border => "0", :alt => 'Gruppe löschen'), [:admin, workgroup], |
:confirm => 'Willst du ' + workgroup.name + ' wirklich löschen?', :method => :delete) |

View file

@ -0,0 +1,4 @@
- title "Arbeitsgruppe bearbeiten"
.edit_form{:style => "width:50em"}
= render :partial => 'form'

View file

@ -0,0 +1,34 @@
- title "List workgroups"
%p
%i
Hier kannst du
= link_to 'neue Arbeitsgruppen', new_admin_workgroup_path
anlegen, Gruppen bearbeiten und löschen.
%p
Beachte dabei den <em>Unterschied zwischen Gruppe und Bestellgruppe</em>:
Eine
%em= link_to 'Bestellgruppe', '/admin/ordergroups'
hat ein Konto und kann Essen bestellen. In einer Arbeitsgruppe (z.b. 'Soritiergruppe')
koordinieren sich die Mitglieder mittels Aufgaben und Nachrichten.
Nutzer_innen können immer nur einer Bestellgruppe, aber beliebig vielen anderen Gruppen angehören.
.left_column{:style => "width:100%"}
.box_title
%h2 Gruppenübersicht
.column_content
#group_filter
%form{:name=>"sform", :action=>"", :style=>"display:inline;"}
%label{:for => 'workgroup_name'} Suche in Name :
= text_field_tag("query", params['query'], :size => 10 )
= observe_field 'query', :frequency => 2, |
:before => "Element.show('loader')", |
:success => "Element.hide('loader')", |
:update => "workgroups", |
:url => admin_workgroups_path, |
:with => 'query', |
:method => :get |
#workgroups
= render :partial => "workgroups"
= link_to 'Neue Arbeits', new_admin_workgroup_path

View file

@ -0,0 +1,3 @@
= render :partial => 'admin/memberships/edit_members'
%p{ :style => "clear:both" }
= link_to 'Gruppenübersicht', admin_workgroups_path

View file

@ -0,0 +1,4 @@
- title "Erstelle Arbeitsgruppe"
.edit_form{:style => "width:50em"}
= render :partial => 'form'

View file

@ -0,0 +1,42 @@
- title "Arbeitsgruppe #{@workgroup.name}"
.left_column{:style => "width:45em"}
.box_title
%h2 Übersicht
.column_content
%p
%b Beschreibung:
=h @workgroup.description
%p
%b Gruppe hat Zugriff auf:
- roles = Array.new
- roles << 'Administration' if @workgroup.role_admin?
- roles << 'Finanzen' if @workgroup.role_finance?
- roles << 'Lieferanten' if @workgroup.role_suppliers?
- roles << 'Artikel' if @workgroup.role_article_meta?
- roles << 'Bestellungsverwaltung' if @workgroup.role_orders?
=h roles.join(', ')
%p
- if @workgroup.weekly_task
%b wöchentlicher Job:
=h @workgroup.task_name
am
= weekday(@workgroup.weekday)
- else
kein wöchentlicher Job definiert
= link_to 'Gruppe bearbeiten', edit_admin_workgroup_path(@workgroup)
|
= link_to 'Löschen', [:admin, @workgroup], :confirm => 'Bist Du sicher?', :method => :delete
|
= link_to 'Nachricht senden', :controller => 'messages', :action => 'group', :id => @workgroup
.box_title
%h2 Mitglieder
.column_content
- if @workgroup.memberships.empty?
%i Diese Gruppe hat derzeit keine Mitglieder
- else
%ul{:style => "list-style-type:decimal;"}
- for membership in @workgroup.memberships
%li= link_to membership.user.nick, [:admin, membership.user]
%p= link_to 'Mitglieder bearbeiten', memberships_admin_workgroup_path(@workgroup)
%p{:style => "clear:both"}= link_to "Gruppenübersicht", admin_workgroups_path