my_profile and admin/ordergroups.
This commit is contained in:
parent
a787b3cf24
commit
c173cf4a6a
14 changed files with 92 additions and 225 deletions
|
@ -1,68 +1,29 @@
|
|||
class Admin::OrdergroupsController < Admin::BaseController
|
||||
inherit_resources
|
||||
|
||||
def index
|
||||
@ordergroups = Ordergroup.order(:name.asc)
|
||||
|
||||
# if somebody uses the search field:
|
||||
unless params[:query].blank?
|
||||
@ordergroups = @ordergroups.where(:name.matches => "%#{params[:query]}%")
|
||||
end
|
||||
|
||||
# sort by nick, thats default
|
||||
if (params[:per_page] && params[:per_page].to_i > 0 && params[:per_page].to_i <= 100)
|
||||
@per_page = params[:per_page].to_i
|
||||
else
|
||||
@per_page = 20
|
||||
end
|
||||
|
||||
# if the search field is used
|
||||
conditions = "name LIKE '%#{params[:query]}%'" unless params[:query].nil?
|
||||
|
||||
@total = Ordergroup.without_deleted.count(:conditions => conditions )
|
||||
@ordergroups = Ordergroup.without_deleted.paginate(:conditions => conditions, :page => params[:page],
|
||||
:per_page => @per_page, :order => 'name')
|
||||
@ordergroups = @ordergroups.paginate(:page => params[:page], :per_page => @per_page)
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
format.js { render :partial => "ordergroups" }
|
||||
format.html # index.html.haml
|
||||
format.js { render :layout => false } # index.js.erb
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def show
|
||||
@ordergroup = Ordergroup.find(params[:id])
|
||||
end
|
||||
|
||||
def new
|
||||
@ordergroup = Ordergroup.new
|
||||
end
|
||||
|
||||
def edit
|
||||
@ordergroup = Ordergroup.find(params[:id])
|
||||
end
|
||||
|
||||
def create
|
||||
@ordergroup = Ordergroup.new(params[:ordergroup])
|
||||
@ordergroup.account_updated = Time.now
|
||||
|
||||
if @ordergroup.save
|
||||
flash[:notice] = 'Ordergroup was successfully created.'
|
||||
redirect_to([:admin, @ordergroup])
|
||||
else
|
||||
render :action => "new"
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
@ordergroup = Ordergroup.find(params[:id])
|
||||
|
||||
if @ordergroup.update_attributes(params[:ordergroup])
|
||||
flash[:notice] = 'Ordergroup was successfully updated.'
|
||||
redirect_to([:admin, @ordergroup])
|
||||
else
|
||||
render :action => "edit"
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@ordergroup = Ordergroup.find(params[:id])
|
||||
@ordergroup.destroy
|
||||
|
||||
redirect_to(admin_ordergroups_url)
|
||||
end
|
||||
|
||||
def memberships
|
||||
@group = Ordergroup.find(params[:id])
|
||||
end
|
||||
|
|
|
@ -23,49 +23,4 @@ class Admin::UsersController < Admin::BaseController
|
|||
format.js { render :layout => false } # index.js.erb
|
||||
end
|
||||
end
|
||||
|
||||
# def show
|
||||
# @user = User.find(params[:id])
|
||||
# end
|
||||
#
|
||||
# def new
|
||||
# @user = User.new
|
||||
# end
|
||||
#
|
||||
# def create
|
||||
# @user = User.new(params[:user])
|
||||
# if @user.save
|
||||
# flash[:notice] = 'Benutzerin wurde erfolgreich angelegt.'
|
||||
# redirect_to admin_users_path
|
||||
# else
|
||||
# render :action => 'new'
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# def edit
|
||||
# @user = User.find(params[:id])
|
||||
# end
|
||||
#
|
||||
# def update
|
||||
# @user = User.find(params[:id])
|
||||
# if @user.update_attributes(params[:user])
|
||||
# flash[:notice] = 'Änderungen wurden gespeichert.'
|
||||
# redirect_to [:admin, @user]
|
||||
# else
|
||||
# render :action => 'edit'
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# def destroy
|
||||
# user = User.find(params[:id])
|
||||
# if user.nick == @current_user.nick
|
||||
# # deny destroying logged-in-user
|
||||
# flash[:error] = 'Du darfst Dich nicht selbst löschen.'
|
||||
# else
|
||||
# user.destroy
|
||||
# flash[:notice] = 'Benutzer_in wurde gelöscht.'
|
||||
# end
|
||||
# redirect_to admin_users_path
|
||||
# end
|
||||
|
||||
end
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
class Group < ActiveRecord::Base
|
||||
has_many :memberships, :dependent => :destroy
|
||||
has_many :users, :through => :memberships
|
||||
|
||||
validates_length_of :name, :in => 1..25
|
||||
validates_uniqueness_of :name
|
||||
|
||||
validates :name, :presence => true, :length => {:in => 1..25}, :uniqueness => true
|
||||
validate :last_admin_on_earth, :on => :update
|
||||
|
||||
before_destroy :check_last_admin_group
|
||||
|
|
|
@ -1,20 +1,7 @@
|
|||
- form_for [:admin, @ordergroup] do |@form|
|
||||
- render :layout => 'shared/group_form' do
|
||||
%div{:style => "float:right;width:40%"}
|
||||
%p
|
||||
= @form.label :contact_person
|
||||
%br/
|
||||
= @form.text_field :contact_person, :size => 20
|
||||
%p
|
||||
= @form.label :contact_phone
|
||||
%br/
|
||||
= @form.text_field :contact_phone, :size => 20
|
||||
%p
|
||||
= @form.label :contact_address
|
||||
%br/
|
||||
= @form.text_field :contact_address
|
||||
|
||||
%br{ :style => "clear:both" }
|
||||
= submit_tag "Speichern"
|
||||
|
|
||||
= link_to "Abbrechen", admin_ordergroups_path
|
||||
= simple_form_for [:admin, @ordergroup] do |f|
|
||||
= render :layout => 'shared/group_form_fields', :locals => {:f => f} do
|
||||
= f.input :contact_person
|
||||
= f.input :contact_phone
|
||||
= f.input :contact_address
|
||||
= f.submit
|
||||
= link_to "oder abbrechen", admin_ordergroups_path
|
|
@ -4,7 +4,7 @@
|
|||
%td
|
||||
= pagination_links_remote @ordergroups, { :update => "ordergroups" }
|
||||
%td{:style => "text-align:right"}
|
||||
- if @total > 20
|
||||
- if @ordergroups.size > 20
|
||||
= items_per_page :update => "ordergroups"
|
||||
%table.list
|
||||
%thead
|
||||
|
@ -22,7 +22,8 @@
|
|||
%td= link_to_gmaps ordergroup.contact_address
|
||||
%td= ordergroup.users.size
|
||||
%td
|
||||
= link_to image_tag('b_users.png', :size => '16x16', :border => "0", :alt => 'Mitlglieder bearbeiten'), memberships_admin_ordergroup_path(ordergroup)
|
||||
= link_to(image_tag('b_edit.png', :size => "16x16", :border => "0", :alt => 'Gruppe bearbeiten'), edit_admin_ordergroup_path(ordergroup))
|
||||
= link_to(image_tag('b_drop.png', :size => "16x16", :border => "0", :alt => 'Gruppe löschen'), [:admin, ordergroup], |
|
||||
:confirm => 'Willst du ' + ordergroup.name + ' wirklich löschen?', :method => :delete) |
|
||||
= link_to image_tag('b_users.png', :size => '16x16', :border => "0", :alt => 'Mitlglieder bearbeiten'),
|
||||
memberships_admin_ordergroup_path(ordergroup)
|
||||
= link_to icon(:edit), edit_admin_ordergroup_path(ordergroup)
|
||||
= link_to icon(:delete), [:admin, ordergroup], :confirm => "Willst du #{ordergroup.name} wirklich löschen?",
|
||||
:method => :delete
|
|
@ -1,4 +1,3 @@
|
|||
- title "Bestellgruppe bearbeiten"
|
||||
|
||||
.edit_form{:style => "width:50em"}
|
||||
= render :partial => 'form'
|
||||
= render :partial => 'form'
|
|
@ -18,17 +18,9 @@
|
|||
%h2 Gruppenübersicht
|
||||
.column_content
|
||||
#group_filter
|
||||
%form{:name=>"sform", :action=>"", :style=>"display:inline;"}
|
||||
%label{:for => 'ordergroup_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 => "ordergroups", |
|
||||
:url => admin_ordergroups_path, |
|
||||
:with => 'query', |
|
||||
:method => :get |
|
||||
= form_tag admin_ordergroups_path, :method => :get, :style=>"display:inline;", :id => 'ordergroup_search',
|
||||
:remote => true, 'data-submit-onchange' => true do
|
||||
%label{:for => 'article_name'} Suche nach Name:
|
||||
= text_field_tag :query, params[:query], :size => 10
|
||||
#ordergroups
|
||||
= render :partial => "ordergroups"
|
||||
= link_to 'Neue Arbeits', new_admin_ordergroup_path
|
||||
= render :partial => "ordergroups"
|
1
app/views/admin/ordergroups/index.js.erb
Normal file
1
app/views/admin/ordergroups/index.js.erb
Normal file
|
@ -0,0 +1 @@
|
|||
$('#ordergroups').html('<%= escape_javascript(render("ordergroups")) %>');
|
|
@ -1,4 +1,3 @@
|
|||
- title "Bestellgruppe anlegen"
|
||||
|
||||
.edit_form{:style => "width:50em"}
|
||||
= render :partial => 'form'
|
||||
= render :partial => 'form'
|
|
@ -1,38 +0,0 @@
|
|||
<% title "Mein Profil" -%>
|
||||
|
||||
<p>
|
||||
Hier kannst Du deine Einstellungen ändern, z.b. Deine Telphonnummer oder Dein Passwort.
|
||||
</p>
|
||||
|
||||
<div class="left_column" style="width: 60%;">
|
||||
<div class="box_title">
|
||||
<h2>
|
||||
<%= h @user.nick %>
|
||||
<small>(Mitglied seit: <%= distance_of_time_in_words(Time.now, @user.created_on) -%>)</small>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="column_content">
|
||||
<% form_for(@user, :url => { :action => 'update_profile'}) do |@form| %>
|
||||
<%= render :partial => 'shared/user_form' %>
|
||||
<p style="clear:both">
|
||||
<%= submit_tag 'Speichern' %> | <%= link_to 'Abbrechen', :action => 'profile' %></p>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="right_column" style="width: 35%;">
|
||||
<div class="box_title">
|
||||
<h2>Du bist Mitglied in folgenden Gruppen</h2>
|
||||
</div>
|
||||
<div class="column_content">
|
||||
<% for membership in Membership.find_all_by_user_id(@user.id) %>
|
||||
<p>
|
||||
<%= membership.group.name %>
|
||||
<% if membership.group.type != 'Ordergroup' %>
|
||||
(<%= link_to _("Mitgliedschaft beenden"), { :action => 'cancel_membership', :membership_id => membership },
|
||||
:confirm => _("Bist Du sicher, dass Du Deine Mitgliedschaft beenden willst?"), :method => :post %>)
|
||||
<% end %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
22
app/views/home/profile.html.haml
Normal file
22
app/views/home/profile.html.haml
Normal file
|
@ -0,0 +1,22 @@
|
|||
- title "Mein Profil"
|
||||
%p
|
||||
Hier kannst Du deine Einstellungen ändern, z.b. Deine Telphonnummer oder Dein Passwort.
|
||||
.left_column{:style => "width: 60%;"}
|
||||
.box_title
|
||||
%h2
|
||||
= h @user.nick
|
||||
%small
|
||||
(Mitglied seit: #{distance_of_time_in_words(Time.now, @user.created_on)})
|
||||
.column_content
|
||||
- simple_form_for(@user, :url => { :action => 'update_profile'}) do |f|
|
||||
= render :partial => 'shared/user_form_fields', :locals => {:f => f}
|
||||
= submit_tag 'Speichern'
|
||||
.right_column{:style => "width: 35%;"}
|
||||
.box_title
|
||||
%h2 Du bist Mitglied in folgenden Gruppen
|
||||
.column_content
|
||||
- for membership in Membership.find_all_by_user_id(@user.id)
|
||||
%p
|
||||
= membership.group.name
|
||||
- if membership.group.type != 'Ordergroup'
|
||||
(#{link_to _("Mitgliedschaft beenden"), { :action => 'cancel_membership', :membership_id => membership }, :confirm => _("Bist Du sicher, dass Du Deine Mitgliedschaft beenden willst?"), :method => :post})
|
31
app/views/shared/_group_form_fields.html.haml
Normal file
31
app/views/shared/_group_form_fields.html.haml
Normal file
|
@ -0,0 +1,31 @@
|
|||
= f.input :name
|
||||
= f.input :description
|
||||
|
||||
= yield
|
||||
|
||||
- if f.object.is_a?(Workgroup)
|
||||
%h3 Wöchentliche Jobs definieren?
|
||||
= f.input :weekly_task
|
||||
#weekly_task_fields
|
||||
= f.input :weekday
|
||||
= f.input :task_name
|
||||
= f.input :task_required_users
|
||||
= f.input :task_duration, :as => :select, :collection => (1..3)
|
||||
= f.input :task_description
|
||||
|
||||
- content_for :head do
|
||||
:javascript
|
||||
function toggleWeeklyTaskFields() {
|
||||
if ($('#workgroup_weekly_task').attr('checked') == 'checked') {
|
||||
$('#weekly_task_fields div.input').show();
|
||||
} else {
|
||||
$('#weekly_task_fields div.input').hide();
|
||||
}
|
||||
}
|
||||
|
||||
$(function() {
|
||||
toggleWeeklyTaskFields();
|
||||
$('#workgroup_weekly_task').click(function() {
|
||||
toggleWeeklyTaskFields();
|
||||
})
|
||||
})
|
|
@ -1,46 +0,0 @@
|
|||
<%= @form.error_messages %>
|
||||
|
||||
<table style="float:left;width:52%;">
|
||||
<tr>
|
||||
<td><%= @form.label :nick, "Benutzername" %></td>
|
||||
<td><%= @form.text_field :nick %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><%= @form.label :first_name, "Vorname" %></td>
|
||||
<td><%= @form.text_field :first_name %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><%= @form.label :last_name, "Nachname" %></td>
|
||||
<td><%= @form.text_field :last_name %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><%= @form.label :email, "E-Mail" %></td>
|
||||
<td><%= @form.text_field :email %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><%= @form.label :phone, "Telefon" %></td>
|
||||
<td><%= @form.text_field :phone %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><%= @form.label :password, "Passwort" %></td>
|
||||
<td><%= @form.password_field :password %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><%= @form.label :password_confirmation, "Passwort-Wiederholung" %></td>
|
||||
<td><%= @form.password_field :password_confirmation %></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table style="float:right;width:45%;">
|
||||
<tr>
|
||||
<td colspan="2"><b>Einstellungen:</b></td>
|
||||
</tr>
|
||||
<% for setting in User::setting_keys.keys -%>
|
||||
<tr>
|
||||
<td><label for="user[setting_attributes][<%= setting %>]"><%=h User::setting_keys[setting]%></label></td>
|
||||
<td><%= check_box_tag "user[setting_attributes][#{setting}]", '1', @user.settings[setting] == '1' || @user.settings_default(setting) %></td>
|
||||
</tr>
|
||||
<% end -%>
|
||||
</table>
|
|
@ -228,6 +228,10 @@ de:
|
|||
task_duration: 'Vor. Dauer in Stunden'
|
||||
task_description: 'Beschreibung'
|
||||
user_tokens: 'Mitglieder'
|
||||
ordergroup:
|
||||
contact_person: "Kontaktperson"
|
||||
contact_phone: "Telefon"
|
||||
contact_address: "Adresse"
|
||||
task:
|
||||
duration: 'Dauer'
|
||||
user_list: 'Verantwortliche'
|
||||
|
|
Loading…
Reference in a new issue