Commit 59ae1c56925b0d6f62603d1d4e63e344895af2d5

Authored by Arthur Esposte
2 parents 5a1ee775 960bf10e
Exists in master and in 79 other branches add_sisp_to_chef, add_super_archives_plugin, api_for_colab, automates_core_packing, backup_not_prod, changes_in_buttons_on_content_panel, colab_automated_login, colab_spb_plugin_recipe, colab_widgets_settings, design_validation, dev_env_minimal, disable_email_dev, fix_breadcrumbs_position, fix_categories_software_link, fix_edit_institution, fix_edit_software_with_another_license, fix_get_license_info, fix_gitlab_assets_permission, fix_list_style_inside_article, fix_list_style_on_folder_elements, fix_members_pagination, fix_merge_request_url, fix_models_translations, fix_no_license, fix_software_api, fix_software_block_migration, fix_software_communities_translations, fix_software_communities_unit_test, fix_style_create_institution_admin_panel, fix_superarchives_imports, fix_sym_links_noosfero, focus_search_field_theme, gov-user-refactoring, gov-user-refactoring-rails4, header_fix, institution_modal_on_rating, kalibro-conf-refactoring, kalibro-processor-package, lxc_settings, margin_fix, mezuro_cookbook, prezento, refactor_download_block, refactor_software_communities, refactor_software_for_sisp, register_page, release-process, release-process-v2, remove-unused-images, remove_broken_theme, remove_secondary_email_from_user, remove_sisp_buttons, removing_super_archives_email, review_message, scope2method, signals_user_noosfero, sisp_catalog_header, sisp_colab_config, sisp_dev, sisp_dev_master, sisp_simple_version, software_as_organization, software_catalog_style_fix, software_communities_html_refactor, software_infos_api, spb_minimal_env, spb_to_rails4, spec_refactor, stable-4.1, stable-4.2, stable-4.x, temp_soft_comm_refactoring, theme_header, theme_javascript_refactory, thread_dropdown, thread_page, update_search_by_categories, update_software_api, update_softwares_boxes

Merge branch 'blocks'

Conflicts:
	lib/ext/search_controller.rb
lib/categories_and_tags_block.rb 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +class CategoriesAndTagsBlock < Block
  2 +
  3 + attr_accessible :show_name
  4 +
  5 + settings_items :show_name, :type => :boolean, :default => false
  6 +
  7 + def self.description
  8 + _('Categories and Tags')
  9 + end
  10 +
  11 + def help
  12 + _('This block displays the categories and tags of a software.')
  13 + end
  14 +
  15 + def content(args={})
  16 + block = self
  17 + s = show_name
  18 + lambda do |object|
  19 + render(
  20 + :file => 'blocks/categories_and_tags',
  21 + :locals => { :block => block, :show_name => s }
  22 + )
  23 + end
  24 + end
  25 +
  26 + def cacheable?
  27 + false
  28 + end
  29 +end
lib/download_block.rb 0 → 100644
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
  1 +class DownloadBlock < Block
  2 +
  3 + attr_accessible :name, :link, :software_description, :show_name, :version_news
  4 +
  5 + settings_items :name, :type => :string, :default => ''
  6 + settings_items :link, :type => :string, :default => ''
  7 + settings_items :software_description, :type => :string, :default => ''
  8 + settings_items :show_name, :type => :boolean, :default => false
  9 + settings_items :version_news, :type => :string, :default => ''
  10 +
  11 + def self.description
  12 + _('Download Stable Version')
  13 + end
  14 +
  15 + def help
  16 + _('This block displays the stable version of a software.')
  17 + end
  18 +
  19 + def content(args={})
  20 + block = self
  21 + s = show_name
  22 + lambda do |object|
  23 + render(
  24 + :file => 'blocks/download',
  25 + :locals => { :block => block, :show_name => s }
  26 + )
  27 + end
  28 + end
  29 +
  30 + def cacheable?
  31 + false
  32 + end
  33 +end
lib/mpog_software_plugin.rb
@@ -128,7 +128,10 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin @@ -128,7 +128,10 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
128 { 128 {
129 SoftwaresBlock => {:type => [Environment, Person] }, 129 SoftwaresBlock => {:type => [Environment, Person] },
130 SoftwareInformationBlock => {:type => [Community] }, 130 SoftwareInformationBlock => {:type => [Community] },
131 - InstitutionsBlock => {:type => [Environment, Person]} 131 + InstitutionsBlock => {:type => [Environment, Person]},
  132 + DownloadBlock => {:type => [Community]},
  133 + RepositoryBlock => {:type => [Community]},
  134 + CategoriesAndTagsBlock => {:type => [Community]}
132 } 135 }
133 end 136 end
134 137
@@ -220,7 +223,7 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin @@ -220,7 +223,7 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
220 223
221 required_list[:person_fields].each do |field| 224 required_list[:person_fields].each do |field|
222 if person.send(field).blank? 225 if person.send(field).blank?
223 - empty_fields << field.sub("_"," ") 226 + empty_fields << field.sub("_"," ")
224 end 227 end
225 end 228 end
226 required_list[:user_fields].each do |field| 229 required_list[:user_fields].each do |field|
lib/repository_block.rb 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +class RepositoryBlock < Block
  2 +
  3 + attr_accessible :show_name
  4 +
  5 + settings_items :show_name, :type => :boolean, :default => false
  6 +
  7 + def self.description
  8 + _('Repository Link')
  9 + end
  10 +
  11 + def help
  12 + _('This block displays the repository link of a software.')
  13 + end
  14 +
  15 + def content(args={})
  16 + block = self
  17 + s = show_name
  18 + lambda do |object|
  19 + render(
  20 + :file => 'blocks/repository',
  21 + :locals => { :block => block, :show_name => s }
  22 + )
  23 + end
  24 + end
  25 +
  26 + def cacheable?
  27 + false
  28 + end
  29 +end
public/mpog-user-validations.js
@@ -220,7 +220,7 @@ @@ -220,7 +220,7 @@
220 return false; 220 return false;
221 } 221 }
222 222
223 - var correct_format_regex = new RegExp(/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i); 223 + var correct_format_regex = new RegExp(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/);
224 224
225 return !correct_format_regex.test(value); 225 return !correct_format_regex.test(value);
226 } 226 }
test/unit/categories_and_tags_block_test.rb 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +require File.dirname(__FILE__) + '/../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
  3 +
  4 +class CategoriesAndTagsBlockTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 + should 'inherit from Block' do
  7 + assert_kind_of Block, CategoriesAndTagsBlock.new
  8 + end
  9 +
  10 + should 'declare its default title' do
  11 + CategoriesAndTagsBlock.any_instance.stubs(:profile_count).returns(0)
  12 + assert_equal Block.new.default_title, CategoriesAndTagsBlock.new.default_title
  13 + end
  14 +
  15 + should 'describe itself' do
  16 + assert_not_equal Block.description, CategoriesAndTagsBlock.description
  17 + end
  18 +
  19 +end
test/unit/download_block_test.rb 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +require File.dirname(__FILE__) + '/../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
  3 +
  4 +class DownloadBlockTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 + should 'inherit from Block' do
  7 + assert_kind_of Block, DownloadBlock.new
  8 + end
  9 +
  10 + should 'declare its default title' do
  11 + DownloadBlock.any_instance.stubs(:profile_count).returns(0)
  12 + assert_equal Block.new.default_title, DownloadBlock.new.default_title
  13 + end
  14 +
  15 + should 'describe itself' do
  16 + assert_not_equal Block.description, DownloadBlock.description
  17 + end
  18 +
  19 + should 'have software info to download it' do
  20 +
  21 + link = "gitlab.com/teste"
  22 + name = "Test Software"
  23 +
  24 + block = DownloadBlock.create(:name => name, :link => link)
  25 +
  26 + assert_equal block.link, link, "Link should not be empty"
  27 + assert_equal block.name, name, "Name should not be empty"
  28 + end
  29 +end
test/unit/repository_block_test.rb 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +require File.dirname(__FILE__) + '/../../../../test/test_helper'
  2 +require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'
  3 +
  4 +class RepositoryBlockTest < ActiveSupport::TestCase
  5 + include PluginTestHelper
  6 +
  7 + should 'inherit from Block' do
  8 + assert_kind_of Block, RepositoryBlock.new
  9 + end
  10 +
  11 + should 'declare its default title' do
  12 + RepositoryBlock.any_instance.stubs(:profile_count).returns(0)
  13 + assert_equal Block.new.default_title, RepositoryBlock.new.default_title
  14 + end
  15 +
  16 + should 'describe itself' do
  17 + assert_not_equal Block.description, RepositoryBlock.description
  18 + end
  19 +end
views/blocks/categories_and_tags.html.erb 0 → 100644
@@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
  1 +<h3 class="block-title"><span><%= _("Categories") %></span></h3>
  2 +
  3 +<div class="category_cloud">
  4 +<% block.owner.categories.each do |category| %>
  5 + <%= link_to category.name , category.path, :id => "select-category-1-link", :class => "select-subcategory-link", :target => "_blank" %>
  6 +<% end %>
  7 +</div><!-- end class='category_cloud' -->
  8 +
  9 +<h3 class="block-title"><span><%= _("Tags") %></span></h3>
  10 +<div class="tag_cloud">
  11 +<% block.owner.tag_list.each do |tag| %>
  12 + <%= link_to tag , "#", :id => "select-category-1-link", :class => "select-subcategory-link"%>
  13 +<% end %>
  14 +</div>
0 \ No newline at end of file 15 \ No newline at end of file
views/blocks/download.html.erb 0 → 100644
@@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
  1 +<% if block.owner.software_info.nil? %>
  2 + <%= _("This community needs a software to use this block") %>
  3 +<% else %>
  4 + <div id="download-block">
  5 + <div id="download_spb">
  6 + <h2> <%= _("Download") %> </h2>
  7 +
  8 + <span class="download-name">
  9 + <%= link_to block.name, "#" %>
  10 + </span>
  11 +
  12 + <span class="download-system">
  13 + <%= _(block.software_description) %>
  14 + </span>
  15 + </div>
  16 +
  17 + <p id="download_info">
  18 + <span class="req_spb">
  19 + <%= link_to _("Minimal Requirements") , block.owner.public_profile_url, :class => "anchor-link", :target => "_self" %>
  20 + </span>
  21 +
  22 + <span class="nov_spb">
  23 + <%= link_to(_("Version News"), block.version_news, :class => "anchor-link", :target => "_self") if !block.version_news.blank? %>
  24 + </span>
  25 +
  26 + <span class="licensed">
  27 + <%= _("Licensed by") %>
  28 + <%= link_to block.owner.software_info.license_info.version , block.owner.software_info.license_info.link, :target => "_blank" %>
  29 + </span>
  30 + </p>
  31 + </div>
  32 +<% end %>
0 \ No newline at end of file 33 \ No newline at end of file
views/blocks/repository.html.erb 0 → 100644
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
  1 +<% if block.owner.software_info.nil? %>
  2 + <%= _("This community needs a software to use this block") %>
  3 +<% else %>
  4 + <%= link_to _("Repository") , block.owner.software_info.repository_link, :id => "bt_repositorio", :target => "_blank" %>
  5 +<% end %>
0 \ No newline at end of file 6 \ No newline at end of file
views/blocks/software_information.html.erb
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 2
3 <% if block.owner.software_info.nil? %> 3 <% if block.owner.software_info.nil? %>
4 <%= _("This community needs a software to use this block") %> 4 <%= _("This community needs a software to use this block") %>
5 -  
6 <% else %> 5 <% else %>
7 <table id="software-information-block-table"> 6 <table id="software-information-block-table">
8 <tr> 7 <tr>
@@ -13,7 +12,9 @@ @@ -13,7 +12,9 @@
13 <%= link_to profile_image(block.owner, :big) +"\n", profile.url %> 12 <%= link_to profile_image(block.owner, :big) +"\n", profile.url %>
14 </span> 13 </span>
15 <div class='admin-link'> 14 <div class='admin-link'>
16 - <%= link_to _('Control panel'), block.owner.admin_url %> 15 + <% if block.owner.admins.include?(current_user.person) %>
  16 + <%= link_to _('Control panel'), block.owner.admin_url %>
  17 + <% end %>
17 </div> 18 </div>
18 </div> 19 </div>
19 </div> 20 </div>
@@ -23,33 +24,9 @@ @@ -23,33 +24,9 @@
23 <%= _("#{block.owner.software_info.acronym} - ") unless block.owner.software_info.acronym.blank? %> 24 <%= _("#{block.owner.software_info.acronym} - ") unless block.owner.software_info.acronym.blank? %>
24 <%= _("#{block.owner.name}") %> 25 <%= _("#{block.owner.name}") %>
25 </h1> 26 </h1>
26 -  
27 <b> 27 <b>
28 <%= block.owner.software_info.finality %> 28 <%= block.owner.software_info.finality %>
29 </b> 29 </b>
30 - </td>  
31 - </tr>  
32 - <tr>  
33 - <td colspan="2">  
34 - <% identifier_name = block.owner.software_info.acronym.blank? ? block.owner.name : block.owner.software_info.acronym %>  
35 - <%= _("For more detailed information see ") %>  
36 - <%= link_to(_("#{block.owner.name} profile"), {:controller => 'profile', :action => "index", :profile => block.owner.identifier}) %>  
37 - </td>  
38 - </tr>  
39 - <% unless block.owner.software_info.repository_link.blank? %>  
40 - <tr>  
41 - <td colspan="2">  
42 - <%= _("Main repository: ") %>  
43 - <%= link_to block.owner.software_info.repository_link, block.owner.software_info.repository_link %>  
44 - </td>  
45 - </tr>  
46 - <% end %>  
47 - <tr>  
48 - <td>  
49 - <i>  
50 - <%= _("Licensed by ") %>  
51 - <%= link_to block.owner.software_info.license_info.version, block.owner.software_info.license_info.link %>  
52 - </i>  
53 </td> 30 </td>
54 </tr> 31 </tr>
55 </table> 32 </table>
views/box_organizer/_download_block.html.erb 0 → 100644
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +<div id='edit-download-block'>
  2 + <%= labelled_form_field _('Name:'), text_field_tag('block[name]', @block.name) %>
  3 + <%= labelled_form_field _('Link:'), text_field_tag('block[link]', @block.link) %>
  4 + <%= labelled_form_field _('Software Description:'), text_field_tag('block[software_description]', @block.software_description) %>
  5 + <%= labelled_form_field _('Link to Version News:'), text_field_tag('block[version_news]', @block.version_news) %>
  6 +</div>