Revision 1297:0a574315af3e .svn/pristine/53
| .svn/pristine/53/5324579083fdcc5b99f25f25551b161fc6c450c1.svn-base | ||
|---|---|---|
| 1 |
# Redmine - project management software |
|
| 2 |
# Copyright (C) 2006-2012 Jean-Philippe Lang |
|
| 3 |
# |
|
| 4 |
# This program is free software; you can redistribute it and/or |
|
| 5 |
# modify it under the terms of the GNU General Public License |
|
| 6 |
# as published by the Free Software Foundation; either version 2 |
|
| 7 |
# of the License, or (at your option) any later version. |
|
| 8 |
# |
|
| 9 |
# This program is distributed in the hope that it will be useful, |
|
| 10 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
| 11 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
| 12 |
# GNU General Public License for more details. |
|
| 13 |
# |
|
| 14 |
# You should have received a copy of the GNU General Public License |
|
| 15 |
# along with this program; if not, write to the Free Software |
|
| 16 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
| 17 |
|
|
| 18 |
class MemberRole < ActiveRecord::Base |
|
| 19 |
belongs_to :member |
|
| 20 |
belongs_to :role |
|
| 21 |
|
|
| 22 |
after_destroy :remove_member_if_empty |
|
| 23 |
|
|
| 24 |
after_create :add_role_to_group_users |
|
| 25 |
after_destroy :remove_role_from_group_users |
|
| 26 |
|
|
| 27 |
validates_presence_of :role |
|
| 28 |
validate :validate_role_member |
|
| 29 |
|
|
| 30 |
def validate_role_member |
|
| 31 |
errors.add :role_id, :invalid if role && !role.member? |
|
| 32 |
end |
|
| 33 |
|
|
| 34 |
def inherited? |
|
| 35 |
!inherited_from.nil? |
|
| 36 |
end |
|
| 37 |
|
|
| 38 |
private |
|
| 39 |
|
|
| 40 |
def remove_member_if_empty |
|
| 41 |
if member.roles.empty? |
|
| 42 |
member.destroy |
|
| 43 |
end |
|
| 44 |
end |
|
| 45 |
|
|
| 46 |
def add_role_to_group_users |
|
| 47 |
if member.principal.is_a?(Group) |
|
| 48 |
member.principal.users.each do |user| |
|
| 49 |
user_member = Member.find_by_project_id_and_user_id(member.project_id, user.id) || Member.new(:project_id => member.project_id, :user_id => user.id) |
|
| 50 |
user_member.member_roles << MemberRole.new(:role => role, :inherited_from => id) |
|
| 51 |
user_member.save! |
|
| 52 |
end |
|
| 53 |
end |
|
| 54 |
end |
|
| 55 |
|
|
| 56 |
def remove_role_from_group_users |
|
| 57 |
MemberRole.find(:all, :conditions => { :inherited_from => id }).group_by(&:member).each do |member, member_roles|
|
|
| 58 |
member_roles.each(&:destroy) |
|
| 59 |
if member && member.user |
|
| 60 |
Watcher.prune(:user => member.user, :project => member.project) |
|
| 61 |
end |
|
| 62 |
end |
|
| 63 |
end |
|
| 64 |
end |
|
| .svn/pristine/53/5351113c903a72a9248a00117b5118ac4bdf3d73.svn-base | ||
|---|---|---|
| 1 |
/* Bulgarian initialisation for the jQuery UI date picker plugin. */ |
|
| 2 |
/* Written by Stoyan Kyosev (http://svest.org). */ |
|
| 3 |
jQuery(function($){
|
|
| 4 |
$.datepicker.regional['bg'] = {
|
|
| 5 |
closeText: 'затвори', |
|
| 6 |
prevText: '<назад', |
|
| 7 |
nextText: 'напред>', |
|
| 8 |
nextBigText: '>>', |
|
| 9 |
currentText: 'днес', |
|
| 10 |
monthNames: ['Януари','Февруари','Март','Април','Май','Юни', |
|
| 11 |
'Юли','Август','Септември','Октомври','Ноември','Декември'], |
|
| 12 |
monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни', |
|
| 13 |
'Юли','Авг','Сеп','Окт','Нов','Дек'], |
|
| 14 |
dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'], |
|
| 15 |
dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'], |
|
| 16 |
dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'], |
|
| 17 |
weekHeader: 'Wk', |
|
| 18 |
dateFormat: 'dd.mm.yy', |
|
| 19 |
firstDay: 1, |
|
| 20 |
isRTL: false, |
|
| 21 |
showMonthAfterYear: false, |
|
| 22 |
yearSuffix: ''}; |
|
| 23 |
$.datepicker.setDefaults($.datepicker.regional['bg']); |
|
| 24 |
}); |
|
| .svn/pristine/53/53b5f242938d157ff2dae7c897102294dd6da41c.svn-base | ||
|---|---|---|
| 1 |
<div class="contextual"> |
|
| 2 |
<%= link_to(l(:button_change_password), {:action => 'password'}, :class => 'icon icon-passwd') if @user.change_password_allowed? %>
|
|
| 3 |
<%= call_hook(:view_my_account_contextual, :user => @user)%> |
|
| 4 |
</div> |
|
| 5 |
|
|
| 6 |
<h2><%=l(:label_my_account)%></h2> |
|
| 7 |
<%= error_messages_for 'user' %> |
|
| 8 |
|
|
| 9 |
<%= labelled_form_for :user, @user, |
|
| 10 |
:url => { :action => "account" },
|
|
| 11 |
:html => { :id => 'my_account_form',
|
|
| 12 |
:method => :post } do |f| %> |
|
| 13 |
<div class="splitcontentleft"> |
|
| 14 |
<fieldset class="box tabular"> |
|
| 15 |
<legend><%=l(:label_information_plural)%></legend> |
|
| 16 |
<p><%= f.text_field :firstname, :required => true %></p> |
|
| 17 |
<p><%= f.text_field :lastname, :required => true %></p> |
|
| 18 |
<p><%= f.text_field :mail, :required => true %></p> |
|
| 19 |
<p><%= f.select :language, lang_options_for_select %></p> |
|
| 20 |
<% if Setting.openid? %> |
|
| 21 |
<p><%= f.text_field :identity_url %></p> |
|
| 22 |
<% end %> |
|
| 23 |
|
|
| 24 |
<% @user.custom_field_values.select(&:editable?).each do |value| %> |
|
| 25 |
<p><%= custom_field_tag_with_label :user, value %></p> |
|
| 26 |
<% end %> |
|
| 27 |
<%= call_hook(:view_my_account, :user => @user, :form => f) %> |
|
| 28 |
</fieldset> |
|
| 29 |
|
|
| 30 |
<%= submit_tag l(:button_save) %> |
|
| 31 |
</div> |
|
| 32 |
|
|
| 33 |
<div class="splitcontentright"> |
|
| 34 |
<fieldset class="box"> |
|
| 35 |
<legend><%=l(:field_mail_notification)%></legend> |
|
| 36 |
<%= render :partial => 'users/mail_notifications' %> |
|
| 37 |
</fieldset> |
|
| 38 |
|
|
| 39 |
<fieldset class="box tabular"> |
|
| 40 |
<legend><%=l(:label_preferences)%></legend> |
|
| 41 |
<%= render :partial => 'users/preferences' %> |
|
| 42 |
</fieldset> |
|
| 43 |
|
|
| 44 |
</div> |
|
| 45 |
<% end %> |
|
| 46 |
|
|
| 47 |
<% content_for :sidebar do %> |
|
| 48 |
<%= render :partial => 'sidebar' %> |
|
| 49 |
<% end %> |
|
| 50 |
|
|
| 51 |
<% html_title(l(:label_my_account)) -%> |
|
| .svn/pristine/53/53f9722b2c2d8c987d713c517d4936d1d25cdf27.svn-base | ||
|---|---|---|
| 1 |
--- |
|
| 2 |
wiki_pages_001: |
|
| 3 |
created_on: 2007-03-07 00:08:07 +01:00 |
|
| 4 |
title: CookBook_documentation |
|
| 5 |
id: 1 |
|
| 6 |
wiki_id: 1 |
|
| 7 |
protected: true |
|
| 8 |
parent_id: |
|
| 9 |
wiki_pages_002: |
|
| 10 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 11 |
title: Another_page |
|
| 12 |
id: 2 |
|
| 13 |
wiki_id: 1 |
|
| 14 |
protected: false |
|
| 15 |
parent_id: |
|
| 16 |
wiki_pages_003: |
|
| 17 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 18 |
title: Start_page |
|
| 19 |
id: 3 |
|
| 20 |
wiki_id: 2 |
|
| 21 |
protected: false |
|
| 22 |
parent_id: |
|
| 23 |
wiki_pages_004: |
|
| 24 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 25 |
title: Page_with_an_inline_image |
|
| 26 |
id: 4 |
|
| 27 |
wiki_id: 1 |
|
| 28 |
protected: false |
|
| 29 |
parent_id: 1 |
|
| 30 |
wiki_pages_005: |
|
| 31 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 32 |
title: Child_1 |
|
| 33 |
id: 5 |
|
| 34 |
wiki_id: 1 |
|
| 35 |
protected: false |
|
| 36 |
parent_id: 2 |
|
| 37 |
wiki_pages_006: |
|
| 38 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 39 |
title: Child_2 |
|
| 40 |
id: 6 |
|
| 41 |
wiki_id: 1 |
|
| 42 |
protected: false |
|
| 43 |
parent_id: 2 |
|
| 44 |
wiki_pages_007: |
|
| 45 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 46 |
title: Child_page_1 |
|
| 47 |
id: 7 |
|
| 48 |
wiki_id: 2 |
|
| 49 |
protected: false |
|
| 50 |
parent_id: 8 |
|
| 51 |
wiki_pages_008: |
|
| 52 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 53 |
title: Parent_page |
|
| 54 |
id: 8 |
|
| 55 |
wiki_id: 2 |
|
| 56 |
protected: false |
|
| 57 |
parent_id: |
|
| 58 |
wiki_pages_009: |
|
| 59 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 60 |
title: Child_page_2 |
|
| 61 |
id: 9 |
|
| 62 |
wiki_id: 2 |
|
| 63 |
protected: false |
|
| 64 |
parent_id: 8 |
|
| 65 |
wiki_pages_010: |
|
| 66 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 67 |
title: Этика_менеджмента |
|
| 68 |
id: 10 |
|
| 69 |
wiki_id: 1 |
|
| 70 |
protected: false |
|
| 71 |
parent_id: |
|
| 72 |
wiki_pages_011: |
|
| 73 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 74 |
title: Page_with_sections |
|
| 75 |
id: 11 |
|
| 76 |
wiki_id: 1 |
|
| 77 |
protected: false |
|
| 78 |
parent_id: |
|
| 79 |
wiki_pages_012: |
|
| 80 |
created_on: 2007-03-08 00:18:07 +01:00 |
|
| 81 |
title: Child_1_1 |
|
| 82 |
id: 12 |
|
| 83 |
wiki_id: 1 |
|
| 84 |
protected: false |
|
| 85 |
parent_id: 5 |
|
Also available in: Unified diff