Commit f176dfb255821be039fbe6a78892fc73469c5ea7
Exists in
staging
and in
4 other branches
Merge branch 'production' of gitlab.com:participa/noosfero into production
Showing
270 changed files
with
21902 additions
and
7639 deletions
Show diff stats
Too many changes.
To preserve performance only 100 of 270 files displayed.
INSTALL.https.md
... | ... | @@ -11,8 +11,8 @@ as below: |
11 | 11 | |
12 | 12 | # mkdir /etc/noosfero/ssl |
13 | 13 | # cd /etc/noosfero/ssl |
14 | - # openssl genrsa 1024 > noosfero.key | |
15 | - # openssl req -new -x509 -nodes -sha1 -days $[10*365] -key noosfero.key > noosfero.cert | |
14 | + # openssl genrsa 2048 > noosfero.key | |
15 | + # openssl req -new -x509 -sha256 -nodes -days $[10*365] -key noosfero.key > noosfero.cert | |
16 | 16 | # cat noosfero.key noosfero.cert > noosfero.pem |
17 | 17 | |
18 | 18 | ## Web server configuration | ... | ... |
INSTALL.md
... | ... | @@ -74,7 +74,7 @@ downloading from git |
74 | 74 | |
75 | 75 | Here we are cloning the noosfero repository from git. Note: you will need to install git before. |
76 | 76 | |
77 | - $ git clone git://gitorious.org/noosfero/noosfero.git current | |
77 | + $ git clone https://gitlab.com/noosfero/noosfero.git current | |
78 | 78 | $ cd current |
79 | 79 | $ git checkout -b stable origin/stable |
80 | 80 | ... | ... |
app/controllers/admin/admin_panel_controller.rb
... | ... | @@ -71,22 +71,4 @@ class AdminPanelController < AdminController |
71 | 71 | end |
72 | 72 | end |
73 | 73 | end |
74 | - | |
75 | - def manage_organizations_status | |
76 | - scope = environment.organizations | |
77 | - @filter = params[:filter] || 'any' | |
78 | - @title = "Organization profiles" | |
79 | - @title = @title+" - "+@filter if @filter != 'any' | |
80 | - | |
81 | - if @filter == 'enabled' | |
82 | - scope = scope.visible | |
83 | - elsif @filter == 'disabled' | |
84 | - scope = scope.disabled | |
85 | - end | |
86 | - | |
87 | - scope = scope.order('name ASC') | |
88 | - | |
89 | - @q = params[:q] | |
90 | - @collection = find_by_contents(:organizations, environment, scope, @q, {:per_page => 10, :page => params[:npage]})[:results] | |
91 | - end | |
92 | 74 | end | ... | ... |
... | ... | @@ -0,0 +1,66 @@ |
1 | +class OrganizationsController < AdminController | |
2 | + | |
3 | + protect 'manage_environment_organizations', :environment | |
4 | + | |
5 | + def index | |
6 | + @filter = params[:filter] || 'any' | |
7 | + @title = _('Organization profiles') | |
8 | + @type = params[:type] || "any" | |
9 | + @types_filter = [[_('All'), 'any'], [_('Community'), 'Community'], [_('Enterprise'), 'Enterprise']] | |
10 | + @types_filter = @types_filter | @plugins.dispatch(:organization_types_filter_options) | |
11 | + | |
12 | + scope = @plugins.dispatch_first(:filter_manage_organization_scope, @type) | |
13 | + if scope.blank? | |
14 | + scope = environment.organizations | |
15 | + scope = scope.where(:type => @type) if @type != 'any' | |
16 | + end | |
17 | + | |
18 | + if @filter == 'enabled' | |
19 | + scope = scope.visible | |
20 | + elsif @filter == 'disabled' | |
21 | + scope = scope.disabled | |
22 | + end | |
23 | + | |
24 | + scope = scope.order('name ASC') | |
25 | + | |
26 | + @q = params[:q] | |
27 | + @collection = find_by_contents(:organizations, environment, scope, @q, {:per_page => per_page, :page => params[:npage]})[:results] | |
28 | + end | |
29 | + | |
30 | + def activate | |
31 | + organization = environment.organizations.find(params[:id]) | |
32 | + if organization.enable | |
33 | + render :text => (_('%s enabled') % organization.name).to_json | |
34 | + else | |
35 | + render :text => (_('%s could not be enabled') % organization.name).to_json | |
36 | + end | |
37 | + end | |
38 | + | |
39 | + def deactivate | |
40 | + organization = environment.organizations.find(params[:id]) | |
41 | + if organization.disable | |
42 | + render :text => (_('%s disabled') % organization.name).to_json | |
43 | + else | |
44 | + render :text => (_('%s could not be disable') % organization.name).to_json | |
45 | + end | |
46 | + end | |
47 | + | |
48 | + def destroy | |
49 | + if request.post? | |
50 | + organization = environment.organizations.find(params[:id]) | |
51 | + if organization && organization.destroy | |
52 | + render :text => (_('%s removed') % organization.name).to_json | |
53 | + else | |
54 | + render :text => (_('%s could not be removed') % organization.name).to_json | |
55 | + end | |
56 | + else | |
57 | + render :nothing => true | |
58 | + end | |
59 | + end | |
60 | + | |
61 | + private | |
62 | + | |
63 | + def per_page | |
64 | + 10 | |
65 | + end | |
66 | +end | ... | ... |
app/controllers/my_profile/tasks_controller.rb
1 | 1 | class TasksController < MyProfileController |
2 | 2 | |
3 | - protect 'perform_task', :profile | |
3 | + protect [:perform_task, :view_tasks], :profile, :only => [:index] | |
4 | + protect :perform_task, :profile, :except => [:index] | |
4 | 5 | |
5 | 6 | def index |
6 | 7 | @filter_type = params[:filter_type].presence |
... | ... | @@ -14,7 +15,9 @@ class TasksController < MyProfileController |
14 | 15 | |
15 | 16 | @failed = params ? params[:failed] : {} |
16 | 17 | |
17 | - @responsible_candidates = profile.members.by_role(profile.roles.reject {|r| !r.has_permission?('perform_task')}) | |
18 | + @responsible_candidates = profile.members.by_role(profile.roles.reject {|r| !r.has_permission?('perform_task')}) if profile.organization? | |
19 | + | |
20 | + @view_only = !current_person.has_permission?(:perform_task, profile) | |
18 | 21 | end |
19 | 22 | |
20 | 23 | def processed | ... | ... |
app/controllers/public/chat_controller.rb
... | ... | @@ -2,6 +2,7 @@ class ChatController < PublicController |
2 | 2 | |
3 | 3 | before_filter :login_required |
4 | 4 | before_filter :check_environment_feature |
5 | + before_filter :can_send_message, :only => :register_message | |
5 | 6 | |
6 | 7 | def start_session |
7 | 8 | login = user.jid |
... | ... | @@ -54,6 +55,16 @@ class ChatController < PublicController |
54 | 55 | end |
55 | 56 | end |
56 | 57 | |
58 | + def avatars | |
59 | + profiles = environment.profiles.where(:identifier => params[:profiles]) | |
60 | + avatar_map = profiles.inject({}) do |result, profile| | |
61 | + result[profile.identifier] = profile_icon(profile, :minor) | |
62 | + result | |
63 | + end | |
64 | + | |
65 | + render_json avatar_map | |
66 | + end | |
67 | + | |
57 | 68 | def update_presence_status |
58 | 69 | if request.xhr? |
59 | 70 | current_user.update_attributes({:chat_status_at => DateTime.now}.merge(params[:status] || {})) |
... | ... | @@ -62,11 +73,17 @@ class ChatController < PublicController |
62 | 73 | end |
63 | 74 | |
64 | 75 | def save_message |
65 | - to = environment.profiles.find_by_identifier(params[:to]) | |
66 | - body = params[:body] | |
67 | - | |
68 | - ChatMessage.create!(:to => to, :from => user, :body => body) | |
69 | - render :text => 'ok' | |
76 | + if request.post? | |
77 | + to = environment.profiles.where(:identifier => params[:to]).first | |
78 | + body = params[:body] | |
79 | + | |
80 | + begin | |
81 | + ChatMessage.create!(:to => to, :from => user, :body => body) | |
82 | + return render_json({:status => 0}) | |
83 | + rescue Exception => exception | |
84 | + return render_json({:status => 3, :message => exception.to_s, :backtrace => exception.backtrace}) | |
85 | + end | |
86 | + end | |
70 | 87 | end |
71 | 88 | |
72 | 89 | def recent_messages |
... | ... | @@ -90,8 +107,9 @@ class ChatController < PublicController |
90 | 107 | end |
91 | 108 | |
92 | 109 | def recent_conversations |
93 | - conversations_order = ActiveRecord::Base.connection.execute("select profiles.identifier from profiles inner join (select distinct r.id as id, MAX(r.created_at) as created_at from (select from_id, to_id, created_at, (case when from_id=#{user.id} then to_id else from_id end) as id from chat_messages where from_id=#{user.id} or to_id=#{user.id}) as r group by id order by created_at desc, id) as t on profiles.id=t.id order by t.created_at desc").entries.map {|e| e['identifier']} | |
94 | - render :json => {:order => conversations_order.reverse, :domain => environment.default_hostname.gsub('.','-')}.to_json | |
110 | + profiles = Profile.find_by_sql("select profiles.* from profiles inner join (select distinct r.id as id, MAX(r.created_at) as created_at from (select from_id, to_id, created_at, (case when from_id=#{user.id} then to_id else from_id end) as id from chat_messages where from_id=#{user.id} or to_id=#{user.id}) as r group by id order by created_at desc, id) as t on profiles.id=t.id order by t.created_at desc") | |
111 | + jids = profiles.map(&:jid).reverse | |
112 | + render :json => jids.to_json | |
95 | 113 | end |
96 | 114 | |
97 | 115 | #TODO Ideally this is done through roster table on ejabberd. |
... | ... | @@ -108,4 +126,14 @@ class ChatController < PublicController |
108 | 126 | end |
109 | 127 | end |
110 | 128 | |
129 | + def can_send_message | |
130 | + return render_json({:status => 1, :message => 'Missing parameters!'}) if params[:from].nil? || params[:to].nil? || params[:message].nil? | |
131 | + return render_json({:status => 2, :message => 'You can not send message as another user!'}) if params[:from] != user.jid | |
132 | + # TODO Maybe register the jid in a table someday to avoid this below | |
133 | + return render_json({:status => 3, :messsage => 'You can not send messages to strangers!'}) if user.friends.where(:identifier => params[:to].split('@').first).blank? | |
134 | + end | |
135 | + | |
136 | + def render_json(result) | |
137 | + render :text => result.to_json | |
138 | + end | |
111 | 139 | end | ... | ... |
app/helpers/application_helper.rb
... | ... | @@ -881,7 +881,7 @@ module ApplicationHelper |
881 | 881 | field_html += capture(&block) |
882 | 882 | end |
883 | 883 | |
884 | - if controller.action_name == 'signup' || controller.action_name == 'new_community' || (controller.controller_name == "enterprise_registration" && controller.action_name == 'index') | |
884 | + if controller.action_name == 'signup' || controller.action_name == 'new_community' || (controller.controller_name == "enterprise_registration" && controller.action_name == 'index') || (controller.controller_name == 'home' && controller.action_name == 'index' && user.nil?) | |
885 | 885 | if profile.signup_fields.include?(name) |
886 | 886 | result = field_html |
887 | 887 | end | ... | ... |
app/helpers/boxes_helper.rb
... | ... | @@ -122,7 +122,7 @@ module BoxesHelper |
122 | 122 | end |
123 | 123 | |
124 | 124 | def wrap_main_content(content) |
125 | - (1..8).to_a.reverse.inject(content) { |acc,n| content_tag('div', acc, :id => 'main-content-wrapper-' + n.to_s) } | |
125 | + content_tag('div', content, :class => 'main-content') | |
126 | 126 | end |
127 | 127 | |
128 | 128 | def extract_block_content(content) | ... | ... |
app/helpers/chat_helper.rb
... | ... | @@ -9,12 +9,12 @@ module ChatHelper |
9 | 9 | avatar = profile_image(user, :portrait, :class => 'avatar') |
10 | 10 | content_tag('span', |
11 | 11 | link_to(avatar + content_tag('span', user.name) + ui_icon('ui-icon-triangle-1-s'), |
12 | - '#', | |
12 | + '', | |
13 | 13 | :onclick => 'toggleMenu(this); return false', |
14 | 14 | :class => icon_class + ' simplemenu-trigger' |
15 | 15 | ) + |
16 | 16 | content_tag('ul', |
17 | - links.map{|link| content_tag('li', link_to(link[1], '#', :class => link[0], :id => link[2], 'data-jid' => user.jid), :class => 'simplemenu-item') }.join("\n"), | |
17 | + links.map{|link| content_tag('li', link_to(link[1], '', :class => link[0], :id => link[2], 'data-jid' => user.jid), :class => 'simplemenu-item') }.join("\n"), | |
18 | 18 | :style => 'display: none; z-index: 100', |
19 | 19 | :class => 'simplemenu-submenu' |
20 | 20 | ), | ... | ... |
app/helpers/profile_editor_helper.rb
... | ... | @@ -141,8 +141,9 @@ module ProfileEditorHelper |
141 | 141 | ) |
142 | 142 | end |
143 | 143 | |
144 | - def control_panel_button(title, icon, url) | |
145 | - link_to title, url, :class => 'control-panel-%s' % icon | |
144 | + def control_panel_button(title, icon, url, html_options = {}) | |
145 | + html_options ||= {} | |
146 | + link_to title, url, html_options.merge(:class => 'control-panel-%s' % icon) | |
146 | 147 | end |
147 | 148 | |
148 | 149 | def unchangeable_privacy_field(profile) | ... | ... |
app/helpers/search_helper.rb
... | ... | @@ -106,6 +106,10 @@ module SearchHelper |
106 | 106 | end |
107 | 107 | end |
108 | 108 | |
109 | + def city_with_state_for_profile(p) | |
110 | + city_with_state(p.region) || [p.city, p.state].compact.reject(&:blank?).join(', ') | |
111 | + end | |
112 | + | |
109 | 113 | def display_selector(asset, display, float = 'right') |
110 | 114 | display = nil if display.blank? |
111 | 115 | display ||= asset_class(asset).default_search_display | ... | ... |
app/helpers/users_helper.rb
... | ... | @@ -14,7 +14,7 @@ module UsersHelper |
14 | 14 | select_field = select_tag(:filter, options, :onchange => onchange) |
15 | 15 | content_tag('div', |
16 | 16 | content_tag('strong', _('Filter')) + ': ' + select_field, |
17 | - :class => "environment-users-customize-search" | |
17 | + :class => "environment-profiles-customize-search" | |
18 | 18 | ) |
19 | 19 | end |
20 | 20 | ... | ... |
app/models/article.rb
... | ... | @@ -96,6 +96,8 @@ class Article < ActiveRecord::Base |
96 | 96 | belongs_to :translation_of, :class_name => 'Article', :foreign_key => :translation_of_id |
97 | 97 | before_destroy :rotate_translations |
98 | 98 | |
99 | + acts_as_voteable | |
100 | + | |
99 | 101 | before_create do |article| |
100 | 102 | article.published_at ||= Time.now |
101 | 103 | if article.reference_article && !article.parent | ... | ... |
app/models/block.rb
... | ... | @@ -2,7 +2,7 @@ class Block < ActiveRecord::Base |
2 | 2 | |
3 | 3 | attr_accessible :title, :display, :limit, :box_id, :posts_per_page, |
4 | 4 | :visualization_format, :language, :display_user, |
5 | - :box, :edit_modes, :move_modes | |
5 | + :box, :edit_modes, :move_modes, :mirror | |
6 | 6 | |
7 | 7 | # to be able to generate HTML |
8 | 8 | include ActionView::Helpers::UrlHelper |
... | ... | @@ -15,11 +15,23 @@ class Block < ActiveRecord::Base |
15 | 15 | |
16 | 16 | acts_as_list :scope => :box |
17 | 17 | belongs_to :box |
18 | + belongs_to :mirror_block, :class_name => "Block" | |
19 | + has_many :observers, :class_name => "Block", :foreign_key => "mirror_block_id" | |
18 | 20 | |
19 | 21 | acts_as_having_settings |
20 | 22 | |
21 | 23 | scope :enabled, :conditions => { :enabled => true } |
22 | 24 | |
25 | + after_save do |block| | |
26 | + if block.owner.kind_of?(Profile) && block.owner.is_template? && block.mirror? | |
27 | + block.observers.each do |observer| | |
28 | + observer.copy_from(block) | |
29 | + observer.title = block.title | |
30 | + observer.save | |
31 | + end | |
32 | + end | |
33 | + end | |
34 | + | |
23 | 35 | def embedable? |
24 | 36 | false |
25 | 37 | end |
... | ... | @@ -299,6 +311,10 @@ class Block < ActiveRecord::Base |
299 | 311 | self.position = block.position |
300 | 312 | end |
301 | 313 | |
314 | + def add_observer(block) | |
315 | + self.observers << block | |
316 | + end | |
317 | + | |
302 | 318 | private |
303 | 319 | |
304 | 320 | def home_page_path | ... | ... |
app/models/chat_message.rb
app/models/comment.rb
app/models/environment.rb
... | ... | @@ -29,6 +29,7 @@ class Environment < ActiveRecord::Base |
29 | 29 | 'manage_environment_roles' => N_('Manage environment roles'), |
30 | 30 | 'manage_environment_validators' => N_('Manage environment validators'), |
31 | 31 | 'manage_environment_users' => N_('Manage environment users'), |
32 | + 'manage_environment_organizations' => N_('Manage environment organizations'), | |
32 | 33 | 'manage_environment_templates' => N_('Manage environment templates'), |
33 | 34 | 'manage_environment_licenses' => N_('Manage environment licenses'), |
34 | 35 | 'manage_environment_trusted_sites' => N_('Manage environment trusted sites'), |
... | ... | @@ -74,7 +75,8 @@ class Environment < ActiveRecord::Base |
74 | 75 | 'edit_profile_design', |
75 | 76 | 'manage_products', |
76 | 77 | 'manage_friends', |
77 | - 'perform_task' | |
78 | + 'perform_task', | |
79 | + 'view_tasks' | |
78 | 80 | ] |
79 | 81 | ) |
80 | 82 | end | ... | ... |
app/models/person.rb
app/models/product_category.rb
... | ... | @@ -10,6 +10,9 @@ class ProductCategory < Category |
10 | 10 | :joins => :products, |
11 | 11 | :conditions => ['products.profile_id = ?', enterprise.id] |
12 | 12 | }} |
13 | + scope :by_environment, lambda { |environment| { | |
14 | + :conditions => ['environment_id = ?', environment.id] | |
15 | + }} | |
13 | 16 | scope :unique_by_level, lambda { |level| { |
14 | 17 | :select => "DISTINCT ON (filtered_category) split_part(path, '/', #{level}) AS filtered_category, categories.*" |
15 | 18 | }} | ... | ... |
app/models/profile.rb
... | ... | @@ -99,6 +99,7 @@ class Profile < ActiveRecord::Base |
99 | 99 | 'manage_friends' => N_('Manage friends'), |
100 | 100 | 'validate_enterprise' => N_('Validate enterprise'), |
101 | 101 | 'perform_task' => N_('Perform task'), |
102 | + 'view_tasks' => N_('View tasks'), | |
102 | 103 | 'moderate_comments' => N_('Moderate comments'), |
103 | 104 | 'edit_appearance' => N_('Edit appearance'), |
104 | 105 | 'view_private_content' => N_('View private content'), |
... | ... | @@ -430,6 +431,9 @@ class Profile < ActiveRecord::Base |
430 | 431 | new_block = block.class.new(:title => block[:title]) |
431 | 432 | new_block.copy_from(block) |
432 | 433 | new_box.blocks << new_block |
434 | + if block.mirror? | |
435 | + block.add_observer(new_block) | |
436 | + end | |
433 | 437 | end |
434 | 438 | end |
435 | 439 | end |
... | ... | @@ -1002,11 +1006,19 @@ private :generate_url, :url_options |
1002 | 1006 | self.save |
1003 | 1007 | end |
1004 | 1008 | |
1009 | + def disabled? | |
1010 | + !visible | |
1011 | + end | |
1012 | + | |
1005 | 1013 | def enable |
1006 | 1014 | self.visible = true |
1007 | 1015 | self.save |
1008 | 1016 | end |
1009 | 1017 | |
1018 | + def enabled? | |
1019 | + visible | |
1020 | + end | |
1021 | + | |
1010 | 1022 | def control_panel_settings_button |
1011 | 1023 | {:title => _('Edit Profile'), :icon => 'edit-profile'} |
1012 | 1024 | end | ... | ... |
app/models/task.rb
... | ... | @@ -267,6 +267,19 @@ class Task < ActiveRecord::Base |
267 | 267 | |
268 | 268 | include Spammable |
269 | 269 | |
270 | + #FIXME make this test | |
271 | + def display_to?(user = nil) | |
272 | + return true if self.target == user | |
273 | + return false if !self.target.kind_of?(Environment) && self.target.person? | |
274 | + | |
275 | + if self.target.kind_of?(Environment) | |
276 | + user.is_admin?(self.target) | |
277 | + else | |
278 | + self.target.members.by_role(self.target.roles.reject {|r| !r.has_permission?('perform_task')}).include?(user) | |
279 | + end | |
280 | + end | |
281 | + | |
282 | + | |
270 | 283 | protected |
271 | 284 | |
272 | 285 | # This method must be overrided in subclasses, and its implementation must do | ... | ... |
app/views/admin_panel/index.html.erb
... | ... | @@ -19,9 +19,9 @@ |
19 | 19 | <table> |
20 | 20 | <tr><td><%= link_to _('User roles'), :controller => 'role' %></td></tr> |
21 | 21 | <tr><td><%= link_to _('Users'), :controller => 'users' %></td></tr> |
22 | + <tr><td><%= link_to _('Organizations'), :controller => 'organizations' %></td></tr> | |
22 | 23 | <tr><td><%= link_to _('Profile templates'), :controller => 'templates' %></td></tr> |
23 | 24 | <tr><td><%= link_to _('Fields'), :controller => 'features', :action => 'manage_fields' %></td></tr> |
24 | - <tr><td><%= link_to _('Manage organizations status'), :action => 'manage_organizations_status' %></td></tr> | |
25 | 25 | </table> |
26 | 26 | |
27 | 27 | ... | ... |
app/views/admin_panel/manage_organizations_status.html.erb
... | ... | @@ -1,69 +0,0 @@ |
1 | -<h1><%= _('Manage organizations') %></h1> | |
2 | - | |
3 | -<%= form_tag( { :action => 'manage_organizations_status' }, :method => 'get', :class => 'users-search' ) do %> | |
4 | - | |
5 | - <div class="search-field"> | |
6 | - <span class="formfield"> | |
7 | - <%= text_field_tag 'q', @q, :title => _("Find profiles"), :style=>"width:85%" %> | |
8 | - </span> | |
9 | - | |
10 | - <%= submit_button(:search, _('Search')) %> | |
11 | - </div> | |
12 | - | |
13 | - <div class="environment-users-results-header"> | |
14 | - <div id='environment-users-filter-title'><%= @title %></div> | |
15 | - | |
16 | - <div id="environment-users-filter-filter"> | |
17 | - <strong><%= _("Filter by: ") %></strong> | |
18 | - | |
19 | - <select id="profile_filter_select"> | |
20 | - <%= options_for_select([['Any', 'any'],["Disabled profiles", "disabled"], ["Enabled profiles", "enabled"]], @filter) %> | |
21 | - </select> | |
22 | - </div> | |
23 | - <div style="clear: both"></div> | |
24 | - </div> | |
25 | - | |
26 | - <table> | |
27 | - <colgroup> | |
28 | - <col width="80%"> | |
29 | - <col width="20%"> | |
30 | - </colgroup> | |
31 | - | |
32 | - <tr> | |
33 | - <th><%= _('Member') %></th> | |
34 | - <th><%= _('Actions') %></th> | |
35 | - </tr> | |
36 | - | |
37 | - <% @collection.each do |p| %> | |
38 | - <tr title="<%= p.name %>"> | |
39 | - <td><%= link_to_profile p.short_name, p.identifier, :title => p.name %> </td> | |
40 | - | |
41 | - <td class='actions'> | |
42 | - <div class="members-buttons-cell"> | |
43 | - <% if p.visible %> | |
44 | - <%= button_without_text :'deactivate-user', _('Deactivate'), {:controller => "profile_editor", :action => 'deactivate_profile', :profile => p.identifier, :id => p.id}, :confirm => _("Do you want to deactivate this profile ?") %> | |
45 | - <% else %> | |
46 | - <%= button_without_text :'activate-user', _('Activate'), {:controller => "profile_editor", :action => 'activate_profile', :profile => p.identifier, :id => p.id}, :confirm => _("Do you want to activate this profile ?") %> | |
47 | - <% end %> | |
48 | - <%= button_without_text :'delete', _('Remove'), {:controller => "profile_editor", :action => 'destroy_profile', :profile => p.identifier, :id => p.id, :return_to => "/admin/admin_panel/manage_organizations_status"}, :method => :post, :confirm => _("Do you want to deactivate this profile ?") %> | |
49 | - </div> | |
50 | - </td> | |
51 | - </tr> | |
52 | - <% end %> | |
53 | - </table> | |
54 | - | |
55 | -<% end %> | |
56 | - | |
57 | -<%= pagination_links @collection, {:param_name => 'npage', :page_links => true} %> | |
58 | - | |
59 | -<% button_bar do %> | |
60 | - <%= button :back, _('Back'), :controller => 'admin_panel' %> | |
61 | -<% end %> | |
62 | - | |
63 | -<script type="text/javascript"> | |
64 | - jQuery(document).ready(function(){ | |
65 | - jQuery("#profile_filter_select").change(function(){ | |
66 | - document.location.href = '/admin/admin_panel/manage_organizations_status?filter='+this.value; | |
67 | - }); | |
68 | - }); | |
69 | -</script> | |
70 | 0 | \ No newline at end of file |
app/views/blocks/profile_info_actions/_community.html.erb
app/views/blocks/profile_info_actions/_enterprise.html.erb
... | ... | @@ -8,5 +8,5 @@ |
8 | 8 | <li><%= button(:'menu-mail', _('Send an e-mail'), {:profile => profile.identifier, :controller => 'contact', :action => 'new'}, {:id => 'enterprise-contact-button'} ) %></li> |
9 | 9 | <% end %> |
10 | 10 | |
11 | - <li><%= report_abuse(profile, :button) %></li> | |
11 | + <%= render :partial => 'blocks/profile_info_actions/common' %> | |
12 | 12 | </ul> | ... | ... |
app/views/blocks/profile_info_actions/_person.html.erb
... | ... | @@ -11,6 +11,6 @@ |
11 | 11 | <li><%= button(:back, _('Send an e-mail'), {:profile => profile.identifier, :controller => 'contact', :action => 'new'}) %></li> |
12 | 12 | <% end %> |
13 | 13 | |
14 | - <li><%= report_abuse(profile, :button) %></li> | |
14 | + <%= render :partial => 'blocks/profile_info_actions/common' %> | |
15 | 15 | <% end %> |
16 | 16 | </ul> | ... | ... |
app/views/box_organizer/edit.html.erb
... | ... | @@ -25,6 +25,11 @@ |
25 | 25 | </div> |
26 | 26 | <div class="move-modes"> |
27 | 27 | <%= labelled_form_field _('Move options:'), select_tag('block[move_modes]', options_from_collection_for_select(@block.move_block_options, :first, :last, @block.move_modes)) %> |
28 | + <% end %> | |
29 | + | |
30 | + <% if @block.owner.kind_of?(Profile) && @block.owner.is_template? %> | |
31 | + <div class="mirror_block"> | |
32 | + <%= labelled_check_box(_("Mirror"), "block[mirror]", value = "1", checked = @block.mirror) %> | |
28 | 33 | </div> |
29 | 34 | <% end %> |
30 | 35 | ... | ... |
app/views/chat/start_session_error.html.erb
1 | 1 | <p> |
2 | 2 | <%= ui_icon('ui-icon-alert') %> |
3 | -<%= _('Could not connect to chat') %>, <a id='chat-retry' href='#' data-jid='<%= user.jid %>'><%= _('try again') %></a>. | |
3 | +<%= _('Could not connect to chat') %>, <a id='chat-retry' href='' data-jid='<%= user.jid %>'><%= _('try again') %></a>. | |
4 | 4 | </p> | ... | ... |
... | ... | @@ -0,0 +1,41 @@ |
1 | +<div class='results'> | |
2 | + <table id='organizations-list'> | |
3 | + <colgroup> | |
4 | + <col width="60%"> | |
5 | + <col width="20%"> | |
6 | + <col width="20%"> | |
7 | + </colgroup> | |
8 | + | |
9 | + <tr> | |
10 | + <th><%= _('Profile') %></th> | |
11 | + <th><%= _('Actions') %></th> | |
12 | + <th><%= _('Type') %> | |
13 | + | |
14 | + <%= select_tag(:type, options_for_select(@types_filter, @type)) %> | |
15 | + </th> | |
16 | + </tr> | |
17 | + | |
18 | + <% @collection.each do |p| %> | |
19 | + <tr title="<%= p.name %>"> | |
20 | + <td><%= link_to_profile p.short_name, p.identifier, :title => p.name %> </td> | |
21 | + | |
22 | + <td class='actions'> | |
23 | + <div class="members-buttons-cell"> | |
24 | + <% if p.visible %> | |
25 | + <%= button_without_text :'deactivate-user', _('Deactivate'), {:action => 'deactivate', :id => p.id}, :class => 'action', 'data-confirm' => _("Do you want to deactivate this organization?") %> | |
26 | + <% else %> | |
27 | + <%= button_without_text :'activate-user', _('Activate'), {:action => 'activate', :id => p.id}, :class => 'action', 'data-confirm' => _("Do you want to activate this organization?") %> | |
28 | + <% end %> | |
29 | + <%= button_without_text :'delete', _('Remove'), {:action => 'destroy', :id => p.id}, :class => 'action', 'data-method' => :post, 'data-confirm' => _("Do you want to destroy this organization?") %> | |
30 | + </div> | |
31 | + </td> | |
32 | + | |
33 | + <td> <%= _("#{p.type}") %> </td> | |
34 | + </tr> | |
35 | + <% end %> | |
36 | + </table> | |
37 | + | |
38 | + <div> | |
39 | + <%= pagination_links @collection, {:param_name => 'npage', :page_links => true} %> | |
40 | + </div> | |
41 | +</div> | ... | ... |
... | ... | @@ -0,0 +1,30 @@ |
1 | +<h1><%= _('Organizations') %></h1> | |
2 | + | |
3 | +<%= form_tag( { :action => 'index' }, :method => 'get', :id => 'manage-profiles' ) do %> | |
4 | + | |
5 | + <div class="search-field"> | |
6 | + <span class="formfield"> | |
7 | + <%= text_field_tag 'q', @q, :title => _('Find organizations'), :style=>"width:85%" %> | |
8 | + </span> | |
9 | + | |
10 | + <%= submit_button(:search, _('Search')) %> | |
11 | + </div> | |
12 | + | |
13 | + <div class="environment-profiles-results-header"> | |
14 | + <div id='environment-profiles-filter-title'><%= @title %></div> | |
15 | + | |
16 | + <div id="environment-profiles-filter-filter"> | |
17 | + <strong><%= _("Filter by: ") %></strong> | |
18 | + <%= select_tag(:filter, options_for_select([[_('Any'), 'any'],[_('Disabled'), "disabled"], [_('Enabled') , "enabled"]], @filter)) %> | |
19 | + </div> | |
20 | + <div style="clear: both"></div> | |
21 | + </div> | |
22 | + | |
23 | + <%= render :partial => 'results' %> | |
24 | + | |
25 | + <% button_bar do %> | |
26 | + <%= button :back, _('Back'), :controller => 'admin_panel' %> | |
27 | + <% end %> | |
28 | +<% end %> | |
29 | + | |
30 | +<%= javascript_include_tag 'manage-organizations' %> | ... | ... |
app/views/profile_editor/index.html.erb
... | ... | @@ -73,7 +73,7 @@ |
73 | 73 | <%= control_panel_button(_('Edit welcome page'), 'welcome-page', :action => 'welcome_page') if has_welcome_page %> |
74 | 74 | |
75 | 75 | <% @plugins.dispatch(:control_panel_buttons).each do |button| %> |
76 | - <%= control_panel_button(button[:title], button[:icon], button[:url]) %> | |
76 | + <%= control_panel_button(button[:title], button[:icon], button[:url], button[:html_options]) %> | |
77 | 77 | <% end %> |
78 | 78 | |
79 | 79 | <% end %> | ... | ... |
... | ... | @@ -0,0 +1 @@ |
1 | +jQuery('#manage-profiles .results').replaceWith('<%= escape_javascript(render 'results') %>'); | ... | ... |
app/views/shared/logged_in/xmpp_chat.html.erb
... | ... | @@ -7,13 +7,13 @@ |
7 | 7 | var $own_name = '<%= user.name %>'; |
8 | 8 | var $muc_domain = '<%= "conference.#{environment.default_hostname}" %>'; |
9 | 9 | var $bosh_service = '//<%= environment.default_hostname %>/http-bind'; |
10 | - var $user_unavailable_error = '<%= _("<strong>ooops!</strong> The message could not be sent because the user is not online") %>'; | |
10 | + var $user_unavailable_error = '<%= _("The user is not online now. He/She will receive these messages as soon as he/she gets online.") %>'; | |
11 | 11 | var $update_presence_status_every = <%= User.expires_chat_status_every.minutes %>; |
12 | 12 | var $presence = '<%= current_user.last_chat_status %>'; |
13 | 13 | </script> |
14 | 14 | |
15 | - | |
16 | 15 | <div id="chat-label"> |
16 | + <span id="unread-messages"></span> | |
17 | 17 | <span class="right-arrow">▶</span> |
18 | 18 | <span class="title"><%= _('Chat') %></span> |
19 | 19 | </div> |
... | ... | @@ -98,10 +98,5 @@ |
98 | 98 | </div> |
99 | 99 | </div> |
100 | 100 | </div> |
101 | - | |
102 | - <div class="error-message"> | |
103 | - <span class='error'>%{text}</span> | |
104 | - </div> | |
105 | - | |
106 | 101 | </div> |
107 | 102 | </div> | ... | ... |
... | ... | @@ -0,0 +1,8 @@ |
1 | +<% label_name = profile.person? ? _('Open chat') : _('Join chat room') %> | |
2 | +<% display = profile.person? ? profile.friends.include?(user) : profile.members.include?(user) %> | |
3 | + | |
4 | +<% if display %> | |
5 | + <li> | |
6 | + <%= button(:chat, label_name , {}, :class => 'open-conversation', 'data-jid' => profile.jid) %> | |
7 | + </li> | |
8 | +<% end %> | ... | ... |
app/views/tasks/_task.html.erb
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | |
3 | 3 | <%= render :partial => 'task_icon', :locals => {:task => task} %> |
4 | 4 | |
5 | - <% if profile.organization? && @responsible_candidates.present? %> | |
5 | + <% if !@view_only && profile.organization? && @responsible_candidates.present? %> | |
6 | 6 | <div class="task_responsible"> |
7 | 7 | <span class="label"><%= _('Assign to:') %></span> |
8 | 8 | <span> |
... | ... | @@ -12,8 +12,16 @@ |
12 | 12 | </div> |
13 | 13 | <% end %> |
14 | 14 | |
15 | + <% if @view_only && task.responsible.present? %> | |
16 | + <div class="task_responsible"> | |
17 | + <span class="label"><%= _('Assigned to:') %></span> | |
18 | + <span class="value"><%= task.responsible.name %></span> | |
19 | + </div> | |
20 | + <% end %> | |
21 | + | |
15 | 22 | <div class="task_decisions"> |
16 | - <%= | |
23 | + <% unless @view_only %> | |
24 | + <%= | |
17 | 25 | labelled_radio_button(_("Accept"), "tasks[#{task.id}][decision]", 'finish', task.default_decision == 'accept', |
18 | 26 | :id => "decision-finish-#{task.id}", |
19 | 27 | :class => 'task_accept_radio', |
... | ... | @@ -29,7 +37,8 @@ |
29 | 37 | :class => 'task_skip_radio', |
30 | 38 | :disabled => task.skip_disabled?, |
31 | 39 | :task_id => "#{task.id}") |
32 | - %> | |
40 | + %> | |
41 | + <% end %> | |
33 | 42 | </div><!-- class="task_decisions" --> |
34 | 43 | |
35 | 44 | <div class="task_date"><%= show_time(task.created_at) %></div> | ... | ... |
app/views/tasks/index.html.erb
... | ... | @@ -29,9 +29,11 @@ |
29 | 29 | <p> |
30 | 30 | <%= labelled_text_field(_("Text filter")+': ', :filter_text, nil, {:id => 'filter-text',:value => @filter_text}) %> |
31 | 31 | </p> |
32 | - <p> | |
33 | - <%= labelled_select(_('Assigned to')+': ', :filter_responsible, :id, :name, @filter_responsible, [OpenStruct.new(:name => _('All'), :id => nil), OpenStruct.new(:name => _('Unassigned'), :id => -1)] + @responsible_candidates) %> | |
34 | - </p> | |
32 | + <% if profile.organization? %> | |
33 | + <p> | |
34 | + <%= labelled_select(_('Assigned to')+': ', :filter_responsible, :id, :name, @filter_responsible, [OpenStruct.new(:name => _('All'), :id => nil), OpenStruct.new(:name => _('Unassigned'), :id => -1)] + @responsible_candidates, :class => 'filter_responsible') %> | |
35 | + </p> | |
36 | + <% end %> | |
35 | 37 | <p> |
36 | 38 | <%= submit_button(:search, _('Search')) %> |
37 | 39 | </p> |
... | ... | @@ -44,25 +46,30 @@ |
44 | 46 | </p> |
45 | 47 | <% else %> |
46 | 48 | <%= form_tag :action => 'close' do%> |
47 | - <% button_bar do %> | |
49 | + <% button_bar(:class => 'task-actions') do %> | |
48 | 50 | <%# FiXME button(:edit, _('View my requests'), :action => 'list_requested') %> |
49 | 51 | <%# FIXME button('menu-mail', _('Send request'), :action => 'new') %> |
50 | 52 | <%= submit_button :save, _("Apply!") %> |
51 | 53 | <%= button(:edit, _('View processed tasks'), :action => 'processed') %> |
52 | 54 | <%= button(:back, _('Back to control panel'), :controller => 'profile_editor') %> |
53 | - <% end %> | |
55 | + <% end unless @view_only %> | |
54 | 56 | |
55 | 57 | <ul class='task-list'> |
56 | - <p> | |
57 | - <%= labelled_select(_("Set all to: "), 'set-decisions', 'first', 'last', nil, [['',""],['accept',_("Accept")],['reject',_("Reject")],['skip',_("Skip")]], :id => "up-set-all-tasks-to") %> | |
58 | - </p> | |
58 | + <% unless @view_only %> | |
59 | + <p> | |
60 | + <%= labelled_select(_("Set all to: "), 'set-decisions', 'first', 'last', nil, [['',""],['accept',_("Accept")],['reject',_("Reject")],['skip',_("Skip")]], :id => "up-set-all-tasks-to") %> | |
61 | + </p> | |
62 | + <% end %> | |
59 | 63 | |
60 | 64 | <div class="task_boxes"> |
61 | 65 | <%= render :partial => 'task', :collection => @tasks %> |
62 | 66 | </div> |
63 | - <p> | |
64 | - <%= labelled_select(_("Set all to: "), 'set-decisions', 'first', 'last', nil, [['',""],['accept',_("Accept")],['reject',_("Reject")],['skip',_("Skip")]], :id => "down-set-all-tasks-to") %> | |
65 | - </p> | |
67 | + | |
68 | + <% unless @view_only %> | |
69 | + <p> | |
70 | + <%= labelled_select(_("Set all to: "), 'set-decisions', 'first', 'last', nil, [['',""],['accept',_("Accept")],['reject',_("Reject")],['skip',_("Skip")]], :id => "down-set-all-tasks-to") %> | |
71 | + </p> | |
72 | + <% end %> | |
66 | 73 | </ul> |
67 | 74 | |
68 | 75 | <script> |
... | ... | @@ -74,13 +81,13 @@ |
74 | 81 | |
75 | 82 | <%= pagination_links(@tasks)%> |
76 | 83 | |
77 | - <% button_bar do %> | |
84 | + <% button_bar(:class => 'task-actions') do %> | |
78 | 85 | <%# FiXME button(:edit, _('View my requests'), :action => 'list_requested') %> |
79 | 86 | <%# FIXME button('menu-mail', _('Send request'), :action => 'new') %> |
80 | 87 | <%= submit_button :save, _("Apply!") %> |
81 | 88 | <%= button(:edit, _('View processed tasks'), :action => 'processed') %> |
82 | 89 | <%= button(:back, _('Back to control panel'), :controller => 'profile_editor') %> |
83 | - <% end %> | |
90 | + <% end unless @view_only %> | |
84 | 91 | <% end %> |
85 | 92 | <% end %> |
86 | 93 | </p> | ... | ... |
app/views/users/_users_list.html.erb
1 | -<div class="environment-users-results-header"> | |
2 | - <div id='environment-users-filter-title'><%= users_filter_title(@filter) %></div> | |
1 | +<div class="environment-profiles-results-header"> | |
2 | + <div id='environment-profiles-filter-title'><%= users_filter_title(@filter) %></div> | |
3 | 3 | <%= filter_selector(@filter) %> |
4 | 4 | <div style="clear: both"></div> |
5 | 5 | </div> | ... | ... |
config.ru
... | ... | @@ -4,7 +4,7 @@ require ::File.expand_path('../config/environment', __FILE__) |
4 | 4 | |
5 | 5 | #use Rails::Rack::LogTailer |
6 | 6 | #use Rails::Rack::Static |
7 | -#run ActionController::Dispatcher.news | |
7 | +#run ActionController::Dispatcher.new | |
8 | 8 | |
9 | 9 | rails_app = Rack::Builder.new do |
10 | 10 | run Noosfero::Application | ... | ... |
config/initializers/delayed_job_config.rb
... | ... | @@ -23,3 +23,13 @@ end |
23 | 23 | # end |
24 | 24 | # alias_method_chain :handle_failed_job, :loggin |
25 | 25 | #end |
26 | + | |
27 | +# Chain delayed job's handle_failed_job method to do exception notification | |
28 | +Delayed::Worker.class_eval do | |
29 | + def handle_failed_job_with_notification job, error | |
30 | + handle_failed_job_without_notification job, error | |
31 | + ExceptionNotifier.notify_exception error, exception_recipients: NOOSFERO_CONF['exception_recipients'], | |
32 | + data: {job: job, handler: job.handler} rescue nil | |
33 | + end | |
34 | + alias_method_chain :handle_failed_job, :notification | |
35 | +end | ... | ... |
... | ... | @@ -0,0 +1,13 @@ |
1 | +# Be sure to restart your server when you modify this file. | |
2 | +# This file contains settings for ActionController::ParamsWrapper which | |
3 | +# is enabled by default. | |
4 | + | |
5 | +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. | |
6 | +ActiveSupport.on_load(:action_controller) do | |
7 | + wrap_parameters :format => [] | |
8 | +end | |
9 | + | |
10 | +# Disable root element in JSON by default. | |
11 | +ActiveSupport.on_load(:active_record) do | |
12 | + self.include_root_in_json = false | |
13 | +end | ... | ... |
db/migrate/20140407013817_add_private_token_info_to_users.rb
0 → 100644
... | ... | @@ -0,0 +1,11 @@ |
1 | +class AddPrivateTokenInfoToUsers < ActiveRecord::Migration | |
2 | + def self.up | |
3 | + add_column :users, :private_token, :string | |
4 | + add_column :users, :private_token_generated_at, :datetime | |
5 | + end | |
6 | + | |
7 | + def self.down | |
8 | + remove_column :users, :private_token | |
9 | + remove_column :users, :private_token_generated_at | |
10 | + end | |
11 | +end | ... | ... |
db/migrate/20140820173129_create_chat_messages.rb
1 | 1 | class CreateChatMessages < ActiveRecord::Migration |
2 | - def change | |
2 | + def up | |
3 | 3 | create_table :chat_messages do |t| |
4 | 4 | t.integer :to_id |
5 | 5 | t.integer :from_id |
... | ... | @@ -8,4 +8,8 @@ class CreateChatMessages < ActiveRecord::Migration |
8 | 8 | t.timestamps |
9 | 9 | end |
10 | 10 | end |
11 | + | |
12 | + def down | |
13 | + drop_table :chat_messages | |
14 | + end | |
11 | 15 | end | ... | ... |
db/migrate/20141014205254_change_chat_messages_columns_and_add_indexes.rb
0 → 100644
... | ... | @@ -0,0 +1,23 @@ |
1 | +class ChangeChatMessagesColumnsAndAddIndexes < ActiveRecord::Migration | |
2 | + def up | |
3 | + change_table :chat_messages do |t| | |
4 | + t.change :from_id, :integer, :null => false | |
5 | + t.change :to_id, :integer, :null => false | |
6 | + t.change :body, :text | |
7 | + end | |
8 | + add_index :chat_messages, :from_id | |
9 | + add_index :chat_messages, :to_id | |
10 | + add_index :chat_messages, :created_at | |
11 | + end | |
12 | + | |
13 | + def down | |
14 | + remove_index :chat_messages, :from_id | |
15 | + remove_index :chat_messages, :to_id | |
16 | + remove_index :chat_messages, :created_at | |
17 | + change_table :chat_messages do |t| | |
18 | + t.change :from_id, :integer, :null => true | |
19 | + t.change :to_id, :integer, :null => true | |
20 | + t.change :body, :string | |
21 | + end | |
22 | + end | |
23 | +end | ... | ... |
db/migrate/20150223180807_add_private_token_info_to_users.rb
... | ... | @@ -1,11 +0,0 @@ |
1 | -class AddPrivateTokenInfoToUsers < ActiveRecord::Migration | |
2 | - def self.up | |
3 | - add_column :users, :private_token, :string | |
4 | - add_column :users, :private_token_generated_at, :datetime | |
5 | - end | |
6 | - | |
7 | - def self.down | |
8 | - remove_column :users, :private_token | |
9 | - remove_column :users, :private_token_generated_at | |
10 | - end | |
11 | -end |
... | ... | @@ -0,0 +1,15 @@ |
1 | +class AddMirrorToBlock < ActiveRecord::Migration | |
2 | + def up | |
3 | + change_table :blocks do |t| | |
4 | + t.boolean :mirror, :default => false | |
5 | + t.references :mirror_block | |
6 | + t.references :observers | |
7 | + end | |
8 | + end | |
9 | + | |
10 | + def down | |
11 | + remove_column :blocks, :mirror | |
12 | + remove_column :blocks, :mirror_block_id | |
13 | + remove_column :blocks, :observers_id | |
14 | + end | |
15 | +end | ... | ... |
db/schema.rb
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 | # |
12 | 12 | # It's strongly recommended to check this file into your version control system. |
13 | 13 | |
14 | -ActiveRecord::Schema.define(:version => 20150513213939) do | |
14 | +ActiveRecord::Schema.define(:version => 20150525101430) do | |
15 | 15 | |
16 | 16 | create_table "abuse_reports", :force => true do |t| |
17 | 17 | t.integer "reporter_id" |
... | ... | @@ -183,10 +183,13 @@ ActiveRecord::Schema.define(:version => 20150513213939) do |
183 | 183 | t.string "type" |
184 | 184 | t.text "settings" |
185 | 185 | t.integer "position" |
186 | - t.boolean "enabled", :default => true | |
186 | + t.boolean "enabled", :default => true | |
187 | 187 | t.datetime "created_at" |
188 | 188 | t.datetime "updated_at" |
189 | 189 | t.datetime "fetched_at" |
190 | + t.boolean "mirror", :default => false | |
191 | + t.integer "mirror_block_id" | |
192 | + t.integer "observers_id" | |
190 | 193 | end |
191 | 194 | |
192 | 195 | add_index "blocks", ["box_id"], :name => "index_blocks_on_box_id" |
... | ... | @@ -242,13 +245,17 @@ ActiveRecord::Schema.define(:version => 20150513213939) do |
242 | 245 | end |
243 | 246 | |
244 | 247 | create_table "chat_messages", :force => true do |t| |
245 | - t.integer "to_id" | |
246 | - t.integer "from_id" | |
247 | - t.string "body" | |
248 | + t.integer "from_id", :null => false | |
249 | + t.integer "to_id", :null => false | |
250 | + t.text "body" | |
248 | 251 | t.datetime "created_at", :null => false |
249 | 252 | t.datetime "updated_at", :null => false |
250 | 253 | end |
251 | 254 | |
255 | + add_index "chat_messages", ["created_at"], :name => "index_chat_messages_on_created_at" | |
256 | + add_index "chat_messages", ["from_id"], :name => "index_chat_messages_on_from_id" | |
257 | + add_index "chat_messages", ["to_id"], :name => "index_chat_messages_on_to_id" | |
258 | + | |
252 | 259 | create_table "comments", :force => true do |t| |
253 | 260 | t.string "title" |
254 | 261 | t.text "body" |
... | ... | @@ -264,6 +271,7 @@ ActiveRecord::Schema.define(:version => 20150513213939) do |
264 | 271 | t.string "user_agent" |
265 | 272 | t.string "referrer" |
266 | 273 | t.text "settings" |
274 | + t.integer "paragraph_id" | |
267 | 275 | end |
268 | 276 | |
269 | 277 | add_index "comments", ["source_id", "spam"], :name => "index_comments_on_source_id_and_spam" |
... | ... | @@ -677,12 +685,13 @@ ActiveRecord::Schema.define(:version => 20150513213939) do |
677 | 685 | t.date "end_date" |
678 | 686 | t.integer "requestor_id" |
679 | 687 | t.integer "target_id" |
680 | - t.string "code", :limit => 40 | |
688 | + t.string "code", :limit => 40 | |
681 | 689 | t.string "type" |
682 | 690 | t.datetime "created_at" |
683 | 691 | t.string "target_type" |
684 | 692 | t.integer "image_id" |
685 | - t.boolean "spam", :default => false | |
693 | + t.boolean "spam", :default => false | |
694 | + t.integer "responsible_id" | |
686 | 695 | end |
687 | 696 | |
688 | 697 | add_index "tasks", ["requestor_id"], :name => "index_tasks_on_requestor_id" | ... | ... |
debian/update-noosfero-apache
... | ... | @@ -21,6 +21,13 @@ if test -x /usr/share/noosfero/script/apacheconf; then |
21 | 21 | if ! test -e "$apache_site"; then |
22 | 22 | echo "Generating apache virtual host ..." |
23 | 23 | cd /usr/share/noosfero && su noosfero -c "RAILS_ENV=production ./script/apacheconf virtualhosts" > "$apache_site" |
24 | + else | |
25 | + pattern="Include \/etc\/noosfero\/apache\/virtualhost.conf" | |
26 | + include="Include \/usr\/share\/noosfero\/util\/chat\/apache\/xmpp.conf" | |
27 | + if ! cat $apache_site | grep "^ *$include" > /dev/null ; then | |
28 | + echo "Updating apache virtual host ..." | |
29 | + sed -i "s/.*$pattern.*/ $include\n&/" $apache_site | |
30 | + fi | |
24 | 31 | fi |
25 | 32 | |
26 | 33 | echo 'Noosfero Apache configuration updated.' | ... | ... |
etc/pound.cfg
... | ... | @@ -0,0 +1,64 @@ |
1 | +Feature: user template | |
2 | + As an user | |
3 | + I want to create templates with mirror blocks | |
4 | + In order to keep these blocks always updated | |
5 | + | |
6 | + Background: | |
7 | + Given the following users | |
8 | + | login | name | is_template | | |
9 | + | person | person | true | | |
10 | + And the following blocks | |
11 | + | owner | type | mirror | | |
12 | + | person | ArticleBlock | true | | |
13 | + | person | RawHTMLBlock | false | | |
14 | + And I go to /account/signup | |
15 | + And I fill in "Username" with "mario" | |
16 | + And I fill in "Password" with "123456" | |
17 | + And I fill in "Password confirmation" with "123456" | |
18 | + And I fill in "e-Mail" with "mario@mario.com" | |
19 | + And I fill in "Full name" with "Mario" | |
20 | + And wait for the captcha signup time | |
21 | + And I press "Create my account" | |
22 | + And I am logged in as admin | |
23 | + | |
24 | + @selenium | |
25 | + Scenario: The block Article name is changed | |
26 | + Given I am on person's control panel | |
27 | + And I follow "Edit sideboxes" | |
28 | + And display ".button-bar" | |
29 | + And I follow "Edit" within ".article-block" | |
30 | + And I fill in "Custom title for this block:" with "Mirror" | |
31 | + And I press "Save" | |
32 | + And I go to /profile/mario | |
33 | + Then I should see "Mirror" | |
34 | + | |
35 | + @selenium | |
36 | + Scenario: The block LinkList is changed but the user's block doesnt change | |
37 | + Given I am on person's control panel | |
38 | + And I follow "Edit sideboxes" | |
39 | + And display ".button-bar" | |
40 | + And I follow "Edit" within ".raw-html-block" | |
41 | + And I fill in "Custom title for this block:" with "Raw HTML Block" | |
42 | + And I press "Save" | |
43 | + And I go to /profile/mario | |
44 | + Then I should not see "Raw HTML Block" | |
45 | + | |
46 | + @selenium | |
47 | + Scenario: The block Article cannot move or modify | |
48 | + Given I am on person's control panel | |
49 | + And I follow "Edit sideboxes" | |
50 | + And display ".button-bar" | |
51 | + And I follow "Edit" within ".article-block" | |
52 | + And I select "Cannot be moved" from "Move options:" | |
53 | + And I select "Cannot be modified" from "Edit options:" | |
54 | + And I press "Save" | |
55 | + And I follow "Logout" | |
56 | + And Mario's account is activated | |
57 | + And I follow "Login" | |
58 | + And I fill in "Username / Email" with "mario" | |
59 | + And I fill in "Password" with "123456" | |
60 | + And I press "Log in" | |
61 | + And I go to /myprofile/mario | |
62 | + And I follow "Edit sideboxes" | |
63 | + And display ".button-bar" | |
64 | + Then I should not see "Edit" within ".article-block" | ... | ... |
lib/noosfero/api/api.rb
lib/noosfero/api/entities.rb
lib/noosfero/api/helpers.rb
... | ... | @@ -50,6 +50,11 @@ module Noosfero |
50 | 50 | article.display_to?(current_user.person) ? article : forbidden! |
51 | 51 | end |
52 | 52 | |
53 | + def find_task(tasks, id) | |
54 | + task = tasks.find(id) | |
55 | + task.display_to?(current_user.person) ? task : forbidden! | |
56 | + end | |
57 | + | |
53 | 58 | def make_conditions_with_parameter(params = {}) |
54 | 59 | parsed_params = parser_params(params) |
55 | 60 | conditions = {} | ... | ... |
lib/noosfero/api/request_logger.rb
... | ... | @@ -0,0 +1,164 @@ |
1 | +module Noosfero | |
2 | + module API | |
3 | + module V1 | |
4 | + class Tasks < Grape::API | |
5 | +# before { authenticate! } | |
6 | + | |
7 | +# ARTICLE_TYPES = Article.descendants.map{|a| a.to_s} | |
8 | + | |
9 | + resource :tasks do | |
10 | + | |
11 | + # Collect tasks | |
12 | + # | |
13 | + # Parameters: | |
14 | + # from - date where the search will begin. If nothing is passed the default date will be the date of the first article created | |
15 | + # oldest - Collect the oldest articles. If nothing is passed the newest articles are collected | |
16 | + # limit - amount of articles returned. The default value is 20 | |
17 | + # | |
18 | + # Example Request: | |
19 | + # GET host/api/v1/tasks?from=2013-04-04-14:41:43&until=2015-04-04-14:41:43&limit=10&private_token=e96fff37c2238fdab074d1dcea8e6317 | |
20 | + get do | |
21 | + #FIXME check for permission | |
22 | + tasks = select_filtered_collection_of(environment, 'tasks', params) | |
23 | + present tasks, :with => Entities::Task, :fields => params[:fields] | |
24 | + end | |
25 | + | |
26 | + desc "Return the task id" | |
27 | + get ':id' do | |
28 | + task = find_task(environment.tasks, params[:id]) | |
29 | + present task, :with => Entities::Task, :fields => params[:fields] | |
30 | + end | |
31 | + | |
32 | + | |
33 | + end | |
34 | + | |
35 | + resource :communities do | |
36 | + segment '/:community_id' do | |
37 | + resource :tasks do | |
38 | + get do | |
39 | + #FIXME check for permission | |
40 | + community = environment.communities.find(params[:community_id]) | |
41 | + tasks = select_filtered_collection_of(community, 'tasks', params) | |
42 | + present tasks, :with => Entities::Task, :fields => params[:fields] | |
43 | + end | |
44 | + | |
45 | + get ':id' do | |
46 | + community = environment.communities.find(params[:community_id]) | |
47 | + task = find_task(community.tasks, params[:id]) | |
48 | + present task, :with => Entities::Task, :fields => params[:fields] | |
49 | + end | |
50 | + | |
51 | + # Example Request: | |
52 | + # POST api/v1/communites/:community_id/articles?private_token=234298743290432&article[name]=title&article[body]=body | |
53 | + post do | |
54 | + community = environment.communities.find(params[:community_id]) | |
55 | +#FIXME see the correct permission | |
56 | + return forbidden! unless current_person.can_post_content?(community) | |
57 | +#FIXME check the task type before create | |
58 | + klass_type= params[:content_type].nil? ? 'Task' : params[:content_type] | |
59 | +# return forbidden! unless ARTICLE_TYPES.include?(klass_type) | |
60 | +# | |
61 | + task = klass_type.constantize.new(params[:task]) | |
62 | + task.requestor = current_person | |
63 | + task.target = community | |
64 | + | |
65 | + if !task.save | |
66 | + render_api_errors!(task.errors.full_messages) | |
67 | + end | |
68 | + present task, :with => Entities::Task, :fields => params[:fields] | |
69 | + end | |
70 | + | |
71 | + end | |
72 | + end | |
73 | + | |
74 | + end | |
75 | + | |
76 | + resource :people do | |
77 | + segment '/:person_id' do | |
78 | + resource :tasks do | |
79 | + get do | |
80 | +# person = environment.people.find(params[:person_id]) | |
81 | +# articles = select_filtered_collection_of(person, 'articles', params) | |
82 | +# articles = articles.display_filter(current_person, person) | |
83 | +tasks = Task.all | |
84 | + present tasks, :with => Entities::Task, :fields => params[:fields] | |
85 | + end | |
86 | + | |
87 | + get ':id' do | |
88 | +# person = environment.people.find(params[:person_id]) | |
89 | +# article = find_article(person.articles, params[:id]) | |
90 | +task = Task.first | |
91 | + present task, :with => Entities::Task, :fields => params[:fields] | |
92 | + end | |
93 | + | |
94 | + post do | |
95 | +# person = environment.people.find(params[:person_id]) | |
96 | +# return forbidden! unless current_person.can_post_content?(person) | |
97 | +# | |
98 | +# klass_type= params[:content_type].nil? ? 'TinyMceArticle' : params[:content_type] | |
99 | +# return forbidden! unless ARTICLE_TYPES.include?(klass_type) | |
100 | +# | |
101 | +# article = klass_type.constantize.new(params[:article]) | |
102 | +# article.last_changed_by = current_person | |
103 | +# article.created_by= current_person | |
104 | +# article.profile = person | |
105 | +# | |
106 | +# if !article.save | |
107 | +# render_api_errors!(article.errors.full_messages) | |
108 | +# end | |
109 | +task = Task.first | |
110 | + present task, :with => Entities::Task, :fields => params[:fields] | |
111 | + end | |
112 | + | |
113 | + end | |
114 | + end | |
115 | + | |
116 | + end | |
117 | + | |
118 | + resource :enterprises do | |
119 | + segment '/:enterprise_id' do | |
120 | + resource :tasks do | |
121 | + get do | |
122 | +# enterprise = environment.enterprises.find(params[:enterprise_id]) | |
123 | +# articles = select_filtered_collection_of(enterprise, 'articles', params) | |
124 | +# articles = articles.display_filter(current_person, enterprise) | |
125 | +tasks = Task.all | |
126 | + present tasks, :with => Entities::Task, :fields => params[:fields] | |
127 | + end | |
128 | + | |
129 | + get ':id' do | |
130 | +# enterprise = environment.enterprises.find(params[:enterprise_id]) | |
131 | +# article = find_article(enterprise.articles, params[:id]) | |
132 | +task = Task.first | |
133 | + present task, :with => Entities::Task, :fields => params[:fields] | |
134 | + end | |
135 | + | |
136 | + post do | |
137 | +# enterprise = environment.enterprises.find(params[:enterprise_id]) | |
138 | +# return forbidden! unless current_person.can_post_content?(enterprise) | |
139 | +# | |
140 | +# klass_type= params[:content_type].nil? ? 'TinyMceArticle' : params[:content_type] | |
141 | +# return forbidden! unless ARTICLE_TYPES.include?(klass_type) | |
142 | +# | |
143 | +# article = klass_type.constantize.new(params[:article]) | |
144 | +# article.last_changed_by = current_person | |
145 | +# article.created_by= current_person | |
146 | +# article.profile = enterprise | |
147 | +# | |
148 | +# if !article.save | |
149 | +# render_api_errors!(article.errors.full_messages) | |
150 | +# end | |
151 | +task = Task.first | |
152 | + present task, :with => Entities::Task, :fields => params[:fields] | |
153 | + end | |
154 | + | |
155 | + end | |
156 | + end | |
157 | + | |
158 | + end | |
159 | + | |
160 | + | |
161 | + end | |
162 | + end | |
163 | + end | |
164 | +end | ... | ... |
lib/noosfero/plugin.rb
... | ... | @@ -205,9 +205,9 @@ class Noosfero::Plugin |
205 | 205 | def api_mount_points |
206 | 206 | [] |
207 | 207 | end |
208 | + | |
208 | 209 | end |
209 | 210 | |
210 | - #FIXME make this test | |
211 | 211 | def has_block?(block) |
212 | 212 | self.class.extra_blocks.keys.include?(block) |
213 | 213 | end |
... | ... | @@ -263,10 +263,11 @@ class Noosfero::Plugin |
263 | 263 | end |
264 | 264 | |
265 | 265 | # -> Adds buttons to the control panel |
266 | - # returns = { :title => title, :icon => icon, :url => url } | |
267 | - # title = name that will be displayed. | |
268 | - # icon = css class name (for customized icons include them in a css file). | |
269 | - # url = url or route to which the button will redirect. | |
266 | + # returns = { :title => title, :icon => icon, :url => url } | |
267 | + # title = name that will be displayed. | |
268 | + # icon = css class name (for customized icons include them in a css file). | |
269 | + # url = url or route to which the button will redirect. | |
270 | + # html_options = aditional html options. | |
270 | 271 | def control_panel_buttons |
271 | 272 | nil |
272 | 273 | end |
... | ... | @@ -309,6 +310,18 @@ class Noosfero::Plugin |
309 | 310 | nil |
310 | 311 | end |
311 | 312 | |
313 | + # -> Filters the types of organizations that are shown on manage organizations | |
314 | + # returns a scope filtered by the specified type | |
315 | + def filter_manage_organization_scope type | |
316 | + nil | |
317 | + end | |
318 | + | |
319 | + # -> Add new options for manage organization filters | |
320 | + # returns an array of new options | |
321 | + # i.e [[_('Type'), 'type'], [_('Type2'), 'type2']] | |
322 | + def organization_types_filter_options | |
323 | + nil | |
324 | + end | |
312 | 325 | # -> Adds content to profile editor info and settings |
313 | 326 | # returns = lambda block that creates html code or raw rhtml/html.erb |
314 | 327 | def profile_editor_extras | ... | ... |
plugins/anti_spam/po/de/anti_spam.po
... | ... | @@ -6,8 +6,8 @@ |
6 | 6 | # |
7 | 7 | msgid "" |
8 | 8 | msgstr "" |
9 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
10 | -"POT-Creation-Date: 2015-03-05 12:10-0300\n" | |
9 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
10 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
11 | 11 | "PO-Revision-Date: 2014-12-12 14:23+0200\n" |
12 | 12 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
13 | 13 | "Language-Team: German <https://hosted.weblate.org/projects/noosfero/noosfero/" | ... | ... |
plugins/anti_spam/po/pt/anti_spam.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:10-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/breadcrumbs/po/pt/breadcrumbs.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" |
... | ... | @@ -28,15 +28,15 @@ msgstr "" |
28 | 28 | msgid "A plugin that add a block to display breadcrumbs." |
29 | 29 | msgstr "Um plugin que adiciona um bloco que mostra caminhos de pão." |
30 | 30 | |
31 | -#: plugins/breadcrumbs/lib/breadcrumbs_plugin/content_breadcrumbs_block.rb:9 | |
31 | +#: plugins/breadcrumbs/lib/breadcrumbs_plugin/content_breadcrumbs_block.rb:10 | |
32 | 32 | msgid "Content Breadcrumbs" |
33 | 33 | msgstr "Conteúdo de Caminho de Pão" |
34 | 34 | |
35 | -#: plugins/breadcrumbs/lib/breadcrumbs_plugin/content_breadcrumbs_block.rb:13 | |
35 | +#: plugins/breadcrumbs/lib/breadcrumbs_plugin/content_breadcrumbs_block.rb:14 | |
36 | 36 | msgid "This block displays breadcrumb trail." |
37 | 37 | msgstr "Esse bloco mostra o rastro de caminho de pão." |
38 | 38 | |
39 | -#: plugins/breadcrumbs/lib/breadcrumbs_plugin/content_breadcrumbs_block.rb:56 | |
39 | +#: plugins/breadcrumbs/lib/breadcrumbs_plugin/content_breadcrumbs_block.rb:68 | |
40 | 40 | msgid "Upload Files" |
41 | 41 | msgstr "Enviar Arquivos" |
42 | 42 | |
... | ... | @@ -47,3 +47,8 @@ msgstr "Mostrar cms" |
47 | 47 | #: plugins/breadcrumbs/views/box_organizer/breadcrumbs_plugin/_content_breadcrumbs_block.html.erb:3 |
48 | 48 | msgid "Show profile" |
49 | 49 | msgstr "Mostrar perfil" |
50 | + | |
51 | +#: plugins/breadcrumbs/views/box_organizer/breadcrumbs_plugin/_content_breadcrumbs_block.html.erb:4 | |
52 | +#, fuzzy | |
53 | +msgid "Show section name" | |
54 | +msgstr "Mostrar cms" | ... | ... |
plugins/bsc/po/de/bsc.po
... | ... | @@ -6,8 +6,8 @@ |
6 | 6 | # |
7 | 7 | msgid "" |
8 | 8 | msgstr "" |
9 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
10 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
10 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
11 | 11 | "PO-Revision-Date: 2014-12-12 14:23+0200\n" |
12 | 12 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
13 | 13 | "Language-Team: German <https://hosted.weblate.org/projects/noosfero/noosfero/" | ... | ... |
plugins/bsc/po/es/bsc.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2014-11-03 15:52+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Spanish <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/bsc/po/fr/bsc.po
... | ... | @@ -4,9 +4,9 @@ |
4 | 4 | # , 2009. |
5 | 5 | msgid "" |
6 | 6 | msgstr "" |
7 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
7 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2014-12-12 14:22+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: French <https://hosted.weblate.org/projects/noosfero/noosfero/" | ... | ... |
plugins/bsc/po/hy/bsc.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2009-10-26 16:20-0300\n" |
11 | 11 | "Last-Translator: Anahit Minassian <anahit.minassian@cooperation.net>\n" |
12 | 12 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
plugins/bsc/po/pt/bsc.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/bsc/po/ru/bsc.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2014-12-12 14:23+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Russian <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/comment_classification/po/de/comment_classification.po
... | ... | @@ -6,8 +6,8 @@ |
6 | 6 | # |
7 | 7 | msgid "" |
8 | 8 | msgstr "" |
9 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
10 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
10 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
11 | 11 | "PO-Revision-Date: 2015-02-23 11:38+0200\n" |
12 | 12 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
13 | 13 | "Language-Team: German <https://hosted.weblate.org/projects/noosfero/plugin-" | ... | ... |
plugins/comment_classification/po/es/comment_classification.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-02-24 20:46+0200\n" |
11 | 11 | "Last-Translator: Gonzalo Exequiel Pedone <hipersayan.x@gmail.com>\n" |
12 | 12 | "Language-Team: Spanish <https://hosted.weblate.org/projects/noosfero/plugin-" |
... | ... | @@ -91,8 +91,8 @@ msgid "" |
91 | 91 | "<i>%{user}</i> added the status <i>%{status_name}</i> at <i>%{created_at}</" |
92 | 92 | "i>." |
93 | 93 | msgstr "" |
94 | -"<i>%{user}</i> ha agregado el estado <i>%{status_name}</i> en " | |
95 | -"<i>%{created_at}</i>." | |
94 | +"<i>%{user}</i> ha agregado el estado <i>%{status_name}</i> en <i>" | |
95 | +"%{created_at}</i>." | |
96 | 96 | |
97 | 97 | #: plugins/comment_classification/views/comment_classification_plugin_myprofile/add_status.html.erb:18 |
98 | 98 | msgid "<i>Reason:</i> %s" | ... | ... |
plugins/comment_classification/po/fr/comment_classification.po
... | ... | @@ -4,9 +4,9 @@ |
4 | 4 | # , 2009. |
5 | 5 | msgid "" |
6 | 6 | msgstr "" |
7 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
7 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-03-07 12:26+0200\n" |
11 | 11 | "Last-Translator: Tuux <tuxa@galaxie.eu.org>\n" |
12 | 12 | "Language-Team: French <https://hosted.weblate.org/projects/noosfero/plugin-" |
... | ... | @@ -91,8 +91,8 @@ msgid "" |
91 | 91 | "<i>%{user}</i> added the status <i>%{status_name}</i> at <i>%{created_at}</" |
92 | 92 | "i>." |
93 | 93 | msgstr "" |
94 | -"<i>%{utilisateur}</i> ajout des statuts <i>%{nom_ du_statut}</i> à " | |
95 | -"<i>%{creer_a}</i>." | |
94 | +"<i>%{utilisateur}</i> ajout des statuts <i>%{nom_ du_statut}</i> à <i>" | |
95 | +"%{creer_a}</i>." | |
96 | 96 | |
97 | 97 | #: plugins/comment_classification/views/comment_classification_plugin_myprofile/add_status.html.erb:18 |
98 | 98 | msgid "<i>Reason:</i> %s" | ... | ... |
plugins/comment_classification/po/hy/comment_classification.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-02-23 11:37+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Armenian <https://hosted.weblate.org/projects/noosfero/plugin-" | ... | ... |
plugins/comment_classification/po/pt/comment_classification.po
... | ... | @@ -11,12 +11,12 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2015-02-23 11:38+0200\n" |
17 | 17 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
18 | -"Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero" | |
19 | -"/plugin-comment-classification/pt/>\n" | |
18 | +"Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | |
19 | +"plugin-comment-classification/pt/>\n" | |
20 | 20 | "Language: pt\n" |
21 | 21 | "MIME-Version: 1.0\n" |
22 | 22 | "Content-Type: text/plain; charset=UTF-8\n" | ... | ... |
plugins/comment_classification/po/ru/comment_classification.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-02-23 11:37+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Russian <https://hosted.weblate.org/projects/noosfero/plugin-" |
... | ... | @@ -15,8 +15,8 @@ msgstr "" |
15 | 15 | "MIME-Version: 1.0\n" |
16 | 16 | "Content-Type: text/plain; charset=UTF-8\n" |
17 | 17 | "Content-Transfer-Encoding: 8bit\n" |
18 | -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=" | |
19 | -"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" | |
18 | +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" | |
19 | +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" | |
20 | 20 | "X-Generator: Weblate 2.3-dev\n" |
21 | 21 | |
22 | 22 | #: plugins/comment_classification/lib/comment_classification_plugin.rb:11 | ... | ... |
plugins/comment_group/po/pt/comment_group.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/community_block/po/pt/community_block.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/community_track/po/de/community_track.po
... | ... | @@ -6,8 +6,8 @@ |
6 | 6 | # |
7 | 7 | msgid "" |
8 | 8 | msgstr "" |
9 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
10 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
10 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
11 | 11 | "PO-Revision-Date: 2014-12-12 14:23+0200\n" |
12 | 12 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
13 | 13 | "Language-Team: German <https://hosted.weblate.org/projects/noosfero/noosfero/" | ... | ... |
plugins/community_track/po/es/community_track.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-02-24 19:06+0200\n" |
11 | 11 | "Last-Translator: Gonzalo Exequiel Pedone <hipersayan.x@gmail.com>\n" |
12 | 12 | "Language-Team: Spanish <https://hosted.weblate.org/projects/noosfero/plugin-" | ... | ... |
plugins/community_track/po/pt/community_track.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/container_block/po/pt/container_block.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/context_content/po/pt/context_content.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/custom_forms/po/de/custom_forms.po
... | ... | @@ -6,8 +6,8 @@ |
6 | 6 | # |
7 | 7 | msgid "" |
8 | 8 | msgstr "" |
9 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
10 | -"POT-Creation-Date: 2015-03-05 12:10-0300\n" | |
9 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
10 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
11 | 11 | "PO-Revision-Date: 2015-03-09 09:51+0200\n" |
12 | 12 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
13 | 13 | "Language-Team: German <https://hosted.weblate.org/projects/noosfero/plugin-" | ... | ... |
plugins/custom_forms/po/eo/custom_forms.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:10-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2014-11-05 13:05+0200\n" |
11 | 11 | "Last-Translator: Aurélio A. Heckert <aurelio@colivre.coop.br>\n" |
12 | 12 | "Language-Team: Esperanto <https://hosted.weblate.org/projects/noosfero/" | ... | ... |
plugins/custom_forms/po/es/custom_forms.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:10-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-03-09 09:51+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Spanish <https://hosted.weblate.org/projects/noosfero/plugin-" | ... | ... |
plugins/custom_forms/po/fr/custom_forms.po
... | ... | @@ -4,9 +4,9 @@ |
4 | 4 | # , 2009. |
5 | 5 | msgid "" |
6 | 6 | msgstr "" |
7 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
7 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | -"POT-Creation-Date: 2015-03-05 12:10-0300\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-02-23 11:38+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: French <https://hosted.weblate.org/projects/noosfero/plugin-" | ... | ... |
plugins/custom_forms/po/hy/custom_forms.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:10-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-02-23 11:37+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Armenian <https://hosted.weblate.org/projects/noosfero/plugin-" | ... | ... |
plugins/custom_forms/po/pt/custom_forms.po
... | ... | @@ -11,12 +11,12 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:10-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2015-03-12 15:13+0200\n" |
17 | 17 | "Last-Translator: daniel <dtygel@eita.org.br>\n" |
18 | -"Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero" | |
19 | -"/plugin-custom-forms/pt/>\n" | |
18 | +"Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | |
19 | +"plugin-custom-forms/pt/>\n" | |
20 | 20 | "Language: pt\n" |
21 | 21 | "MIME-Version: 1.0\n" |
22 | 22 | "Content-Type: text/plain; charset=UTF-8\n" | ... | ... |
plugins/custom_forms/po/ru/custom_forms.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:10-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-03-09 09:51+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Russian <https://hosted.weblate.org/projects/noosfero/plugin-" |
... | ... | @@ -15,8 +15,8 @@ msgstr "" |
15 | 15 | "MIME-Version: 1.0\n" |
16 | 16 | "Content-Type: text/plain; charset=UTF-8\n" |
17 | 17 | "Content-Transfer-Encoding: 8bit\n" |
18 | -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=" | |
19 | -"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" | |
18 | +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" | |
19 | +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" | |
20 | 20 | "X-Generator: Weblate 2.3-dev\n" |
21 | 21 | |
22 | 22 | #: plugins/custom_forms/lib/custom_forms_plugin/form.rb:67 | ... | ... |
plugins/display_content/po/de/display_content.po
... | ... | @@ -6,8 +6,8 @@ |
6 | 6 | # |
7 | 7 | msgid "" |
8 | 8 | msgstr "" |
9 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
10 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
10 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
11 | 11 | "PO-Revision-Date: 2015-02-23 11:37+0200\n" |
12 | 12 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
13 | 13 | "Language-Team: German <https://hosted.weblate.org/projects/noosfero/plugin-" | ... | ... |
plugins/display_content/po/es/display_content.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-03-09 09:51+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Spanish <https://hosted.weblate.org/projects/noosfero/plugin-" | ... | ... |
plugins/display_content/po/fr/display_content.po
... | ... | @@ -4,9 +4,9 @@ |
4 | 4 | # , 2009. |
5 | 5 | msgid "" |
6 | 6 | msgstr "" |
7 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
7 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-03-07 02:11+0200\n" |
11 | 11 | "Last-Translator: Tuux <tuxa@galaxie.eu.org>\n" |
12 | 12 | "Language-Team: French <https://hosted.weblate.org/projects/noosfero/plugin-" |
... | ... | @@ -106,7 +106,8 @@ msgstr "plus" |
106 | 106 | |
107 | 107 | #: plugins/display_content/views/box_organizer/_choose_directly.html.erb:5 |
108 | 108 | msgid "Dinamically load children of selected folders" |
109 | -msgstr "Dynamiquement charger les sous répertoires des répertoires sélectionnés" | |
109 | +msgstr "" | |
110 | +"Dynamiquement charger les sous répertoires des répertoires sélectionnés" | |
110 | 111 | |
111 | 112 | #: plugins/display_content/views/box_organizer/_choose_directly.html.erb:9 |
112 | 113 | msgid "Limit:" | ... | ... |
plugins/display_content/po/hy/display_content.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2009-10-26 16:20-0300\n" |
11 | 11 | "Last-Translator: Anahit Minassian <anahit.minassian@cooperation.net>\n" |
12 | 12 | "Language-Team: LANGUAGE <LL@li.org>\n" | ... | ... |
plugins/display_content/po/pt/display_content.po
... | ... | @@ -11,12 +11,12 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2015-03-12 15:14+0200\n" |
17 | 17 | "Last-Translator: daniel <dtygel@eita.org.br>\n" |
18 | -"Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero" | |
19 | -"/plugin-display-content/pt/>\n" | |
18 | +"Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" | |
19 | +"plugin-display-content/pt/>\n" | |
20 | 20 | "Language: pt\n" |
21 | 21 | "MIME-Version: 1.0\n" |
22 | 22 | "Content-Type: text/plain; charset=UTF-8\n" | ... | ... |
plugins/event/po/pt/event.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.1~rc4\n" | |
9 | -"POT-Creation-Date: 2015-04-20 19:44-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2015-01-30 00:18-0000\n" |
11 | 11 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
12 | 12 | "Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | @@ -16,17 +16,6 @@ msgstr "" |
16 | 16 | "Content-Transfer-Encoding: 8bit\n" |
17 | 17 | "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" |
18 | 18 | |
19 | -#: plugins/event/lib/event_plugin.rb:4 | |
20 | -msgid "Event Extras" | |
21 | -msgstr "Extras para Eventos" | |
22 | - | |
23 | -#: plugins/event/lib/event_plugin.rb:8 | |
24 | -msgid "" | |
25 | -"Include a new block to show the environment's or profiles' events information" | |
26 | -msgstr "" | |
27 | -"Adiciona um novo bloco para apresentar as informações de eventos do ambiente " | |
28 | -"ou dos perfis" | |
29 | - | |
30 | 19 | #: plugins/event/lib/event_plugin/event_block.rb:12 |
31 | 20 | msgid "Events" |
32 | 21 | msgstr "Eventos" |
... | ... | @@ -61,7 +50,24 @@ msgstr[1] "%d dias para começar" |
61 | 50 | msgid "One month left to start" |
62 | 51 | msgid_plural "%d months left to start" |
63 | 52 | msgstr[0] "Um mês para iniciar" |
64 | -msgstr[1] "% meses para iniciar" | |
53 | +msgstr[1] "%d meses para iniciar" | |
54 | + | |
55 | +#: plugins/event/lib/event_plugin.rb:4 | |
56 | +msgid "Event Extras" | |
57 | +msgstr "Extras para Eventos" | |
58 | + | |
59 | +#: plugins/event/lib/event_plugin.rb:8 | |
60 | +msgid "" | |
61 | +"Include a new block to show the environment's or profiles' events information" | |
62 | +msgstr "" | |
63 | +"Adiciona um novo bloco para apresentar as informações de eventos do ambiente " | |
64 | +"ou dos perfis" | |
65 | + | |
66 | +#: plugins/event/views/event_plugin/event_block_item.html.erb:6 | |
67 | +msgid "Duration: 1 day" | |
68 | +msgid_plural "Duration: %s days" | |
69 | +msgstr[0] "Duração: 1 dia" | |
70 | +msgstr[1] "Duração: %s dias" | |
65 | 71 | |
66 | 72 | #: plugins/event/views/profile_design/event_plugin/_event_block.html.erb:1 |
67 | 73 | msgid "Limit of items" |
... | ... | @@ -92,12 +98,6 @@ msgstr "Limite de dias para mostrar" |
92 | 98 | msgid "Only show events in this interval of days." |
93 | 99 | msgstr "Mostar somente os eventos nesse intervalo de dias" |
94 | 100 | |
95 | -#: plugins/event/views/event_plugin/event_block_item.html.erb:6 | |
96 | -msgid "Duration: 1 day" | |
97 | -msgid_plural "Duration: %s days" | |
98 | -msgstr[0] "Duração: 1 dia" | |
99 | -msgstr[1] "Duração: %s dias" | |
100 | - | |
101 | 101 | #~ msgid "Started one day ago." |
102 | 102 | #~ msgid_plural "Started %d days ago." |
103 | 103 | #~ msgstr[0] "Iniciou a Um dia atrás." | ... | ... |
plugins/foo/po/de/foo.po
... | ... | @@ -6,8 +6,8 @@ |
6 | 6 | # |
7 | 7 | msgid "" |
8 | 8 | msgstr "" |
9 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
10 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
10 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
11 | 11 | "PO-Revision-Date: 2014-12-12 14:23+0200\n" |
12 | 12 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
13 | 13 | "Language-Team: German <https://hosted.weblate.org/projects/noosfero/noosfero/" |
... | ... | @@ -19,6 +19,6 @@ msgstr "" |
19 | 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
20 | 20 | "X-Generator: Weblate 2.2-dev\n" |
21 | 21 | |
22 | -#: plugins/foo/lib/foo_plugin.rb:8 | |
22 | +#: plugins/foo/lib/foo_plugin.rb:9 | |
23 | 23 | msgid "A sample plugin to test autoload craziness." |
24 | 24 | msgstr "Ein Beispiel-Plugin, um die Autoload-Verrücktheit zu überprüfen." | ... | ... |
plugins/foo/po/es/foo.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2014-11-03 15:52+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Spanish <https://hosted.weblate.org/projects/noosfero/" |
... | ... | @@ -18,6 +18,6 @@ msgstr "" |
18 | 18 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
19 | 19 | "X-Generator: Weblate 2.0-dev\n" |
20 | 20 | |
21 | -#: plugins/foo/lib/foo_plugin.rb:8 | |
21 | +#: plugins/foo/lib/foo_plugin.rb:9 | |
22 | 22 | msgid "A sample plugin to test autoload craziness." |
23 | 23 | msgstr "Un plugin de ejemplo para probar autocargar la locura." | ... | ... |
plugins/foo/po/pt/foo.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" |
... | ... | @@ -24,6 +24,6 @@ msgstr "" |
24 | 24 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
25 | 25 | "X-Generator: Weblate 2.0\n" |
26 | 26 | |
27 | -#: plugins/foo/lib/foo_plugin.rb:8 | |
27 | +#: plugins/foo/lib/foo_plugin.rb:9 | |
28 | 28 | msgid "A sample plugin to test autoload craziness." |
29 | 29 | msgstr "Um plugin de teste para testar a loucura do caregamento." | ... | ... |
plugins/google_analytics/po/de/google_analytics.po
... | ... | @@ -6,8 +6,8 @@ |
6 | 6 | # |
7 | 7 | msgid "" |
8 | 8 | msgstr "" |
9 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
10 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
10 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
11 | 11 | "PO-Revision-Date: 2014-12-12 14:23+0200\n" |
12 | 12 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
13 | 13 | "Language-Team: German <https://hosted.weblate.org/projects/noosfero/noosfero/" |
... | ... | @@ -22,3 +22,11 @@ msgstr "" |
22 | 22 | #: plugins/google_analytics/lib/google_analytics_plugin.rb:13 |
23 | 23 | msgid "Tracking and web analytics to people and communities" |
24 | 24 | msgstr "Nachverfolgung und Webanalyse für Personen und Gemeinschaften" |
25 | + | |
26 | +#: plugins/google_analytics/views/profile-editor-extras.html.erb:2 | |
27 | +msgid "Google Analytics Profile ID" | |
28 | +msgstr "" | |
29 | + | |
30 | +#: plugins/google_analytics/views/profile-editor-extras.html.erb:3 | |
31 | +msgid "See how to configure statistics for your profile" | |
32 | +msgstr "" | ... | ... |
plugins/google_analytics/po/es/google_analytics.po
... | ... | @@ -5,8 +5,8 @@ |
5 | 5 | # |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
9 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
8 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
9 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
10 | 10 | "PO-Revision-Date: 2014-11-03 15:52+0200\n" |
11 | 11 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
12 | 12 | "Language-Team: Spanish <https://hosted.weblate.org/projects/noosfero/" |
... | ... | @@ -21,3 +21,11 @@ msgstr "" |
21 | 21 | #: plugins/google_analytics/lib/google_analytics_plugin.rb:13 |
22 | 22 | msgid "Tracking and web analytics to people and communities" |
23 | 23 | msgstr "Seguimiento y análisis web para las personas y las comunidades" |
24 | + | |
25 | +#: plugins/google_analytics/views/profile-editor-extras.html.erb:2 | |
26 | +msgid "Google Analytics Profile ID" | |
27 | +msgstr "" | |
28 | + | |
29 | +#: plugins/google_analytics/views/profile-editor-extras.html.erb:3 | |
30 | +msgid "See how to configure statistics for your profile" | |
31 | +msgstr "" | ... | ... |
plugins/google_analytics/po/pt/google_analytics.po
... | ... | @@ -11,8 +11,8 @@ |
11 | 11 | # |
12 | 12 | msgid "" |
13 | 13 | msgstr "" |
14 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
15 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
14 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
15 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
16 | 16 | "PO-Revision-Date: 2014-12-18 18:40-0200\n" |
17 | 17 | "Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n" |
18 | 18 | "Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/" |
... | ... | @@ -27,3 +27,11 @@ msgstr "" |
27 | 27 | #: plugins/google_analytics/lib/google_analytics_plugin.rb:13 |
28 | 28 | msgid "Tracking and web analytics to people and communities" |
29 | 29 | msgstr "Rastreamento e análise web para pessoas e comunidades" |
30 | + | |
31 | +#: plugins/google_analytics/views/profile-editor-extras.html.erb:2 | |
32 | +msgid "Google Analytics Profile ID" | |
33 | +msgstr "" | |
34 | + | |
35 | +#: plugins/google_analytics/views/profile-editor-extras.html.erb:3 | |
36 | +msgid "See how to configure statistics for your profile" | |
37 | +msgstr "" | ... | ... |
plugins/google_cse/po/de/google_cse.po
... | ... | @@ -6,8 +6,8 @@ |
6 | 6 | # |
7 | 7 | msgid "" |
8 | 8 | msgstr "" |
9 | -"Project-Id-Version: 1.0-690-gcb6e853\n" | |
10 | -"POT-Creation-Date: 2015-03-05 12:09-0300\n" | |
9 | +"Project-Id-Version: 1.1-166-gaf47713\n" | |
10 | +"POT-Creation-Date: 2015-06-01 17:26-0300\n" | |
11 | 11 | "PO-Revision-Date: 2014-12-12 14:23+0200\n" |
12 | 12 | "Last-Translator: Michal Čihař <michal@cihar.com>\n" |
13 | 13 | "Language-Team: German <https://hosted.weblate.org/projects/noosfero/noosfero/" | ... | ... |