diff --git a/app/controllers/homes_controller.rb b/app/controllers/homes_controller.rb index c92dea621..e407600ae 100644 --- a/app/controllers/homes_controller.rb +++ b/app/controllers/homes_controller.rb @@ -8,15 +8,15 @@ class HomesController < ApplicationController @dynamic_news = DynamicNew.desc.limit(4) @companies = WebFooterCompany.dedicators - # @partners = WebFooterCompany.partners - + @partners = WebFooterCompany.opensources + @first_companies_group = Array(@companies.slice(0, 5)) @second_companies_group = Array(@companies.slice(5, 8)) @third_companies_group = Array(@companies.slice(13, 5)) end def partners - @companies = WebFooterCompany.all.group_by {|company| company.key } + @companies = WebFooterCompany.where(key: ['opensource', 'dedicator']).group_by(&:key).sort { |a, b| b[0]<=>a[0] } end def news diff --git a/app/controllers/web_footer_companies_controller.rb b/app/controllers/web_footer_companies_controller.rb index 13f4e24bc..630eb2ed8 100644 --- a/app/controllers/web_footer_companies_controller.rb +++ b/app/controllers/web_footer_companies_controller.rb @@ -4,18 +4,27 @@ class WebFooterCompaniesController < ApplicationController menu_item :plugins, :only => :plugins menu_item :info, :only => :info before_filter :require_admin - before_filter :get_type before_filter :find_company, :except => [:index, :new, :create] def index + @key = params[:key] || 'opensource' scope = - if @type == WebFooterCompany::RELATION_TYPE[1] - WebFooterCompany.dedicators - else + case @key + when 'partner' WebFooterCompany.partners + when 'dedicator' + WebFooterCompany.dedicators + when 'opensource' + WebFooterCompany.opensources end - @pages, @companies = paginate scope, :per_page => 25 + @companies = paginateHelper scope, 25 + @page = (params['page'] || 1).to_i - 1 + + respond_to do |format| + format.js + format.html + end end def new @@ -23,19 +32,17 @@ class WebFooterCompaniesController < ApplicationController end def create - logger.info "" @company = WebFooterCompany.new(params[:web_footer_company]) - @company.key = (@type == WebFooterCompany::RELATION_TYPE[1]) ? WebFooterCompany::RELATION_TYPE[1] : WebFooterCompany::RELATION_TYPE[0] - if @company.save + @key = params[:web_footer_company][:key] + if @company.save! flash[:notice] = l(:notice_successful_create) - redirect_to web_footer_companies_url(type: @type) + redirect_to web_footer_companies_url(key: @key) else flash[:error] = "#{l :web_footer_company_create_fail}: #{@company.errors.full_messages[0]}" respond_to do |format| - format.html { redirect_to new_web_footer_company_path(type: @type) } + format.html { redirect_to new_web_footer_company_path(key: @key) } format.api { render_validation_errors(@company) } end - end end @@ -72,8 +79,4 @@ class WebFooterCompaniesController < ApplicationController @company = WebFooterCompany.find(params[:id]) end - def get_type - @type = params[:type].to_s.strip - end - end diff --git a/app/helpers/homes_helper.rb b/app/helpers/homes_helper.rb index 4a1bbbc46..a26170f93 100644 --- a/app/helpers/homes_helper.rb +++ b/app/helpers/homes_helper.rb @@ -23,9 +23,9 @@ module HomesHelper def render_pool_name poll case poll + when 'opensource' then '合作共建开源' when 'partner' then '合作机构' - when 'dedicator' then '合作共建平台' - else '合作机构' + when 'dedicator' then '技术合作单位' end end end diff --git a/app/helpers/web_footer_companies_helper.rb b/app/helpers/web_footer_companies_helper.rb index 7b7df8db3..426afb022 100644 --- a/app/helpers/web_footer_companies_helper.rb +++ b/app/helpers/web_footer_companies_helper.rb @@ -14,4 +14,8 @@ module WebFooterCompaniesHelper def label_edit_button_name type (@type == WebFooterCompany::RELATION_TYPE[1]) ? l(:label_new_open_source_company) : l(:label_edit_company) end + + def hash_company_types + { "首页合作共建开源" => "opensource", "首页技术合作单位" => "dedicator", "网站页脚合作单位" => "partner" } + end end diff --git a/app/models/web_footer_company.rb b/app/models/web_footer_company.rb index d381ece05..d12e3623d 100644 --- a/app/models/web_footer_company.rb +++ b/app/models/web_footer_company.rb @@ -1,16 +1,19 @@ class WebFooterCompany < ActiveRecord::Base - # dedicator: 首页技术合作单位; partner:与平台的合作单位, opensource: 首页共建开源单位 + # key字段说明: + # partner:网站页脚合作单位(管理员页面页脚), dedicator: 首页技术合作单位; opensource: 首页共建开源单位 RELATION_TYPE = %w(partner dedicator opensource) acts_as_list - attr_accessible :logo_size, :name, :url, :position, :move_to + attr_accessible :logo_size, :name, :url, :position, :move_to, :key validates :name, presence: true, length: { maximum: 500 } + validates :key, inclusion: { in: %w(partner dedicator opensource), message: "%{value} is not a valid value." } validates :url, length: { maximum: 500 }, format: { with: /(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/, message: :invalid } - scope :partners, -> { desc.where(:key => WebFooterCompany::RELATION_TYPE[0]) } - scope :dedicators, -> { desc.where(:key => WebFooterCompany::RELATION_TYPE[1]) } - scope :desc, -> { order('position ASC') } + scope :desc, -> { order('position ASC') } + scope :partners, -> { desc.where(:key => 'partner') } + scope :dedicators, -> { desc.where(:key => 'dedicator') } + scope :opensources, -> { desc.where(:key => 'opensource') } end diff --git a/app/views/admin/web_footer_made.html.erb b/app/views/admin/web_footer_made.html.erb index 243a1aa11..bedfa2b4d 100644 --- a/app/views/admin/web_footer_made.html.erb +++ b/app/views/admin/web_footer_made.html.erb @@ -6,8 +6,7 @@ <%= text_field_tag 'web_title', params[:wbe_title],:value => @first_page.web_title, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>

<%= render 'tab_partial' %> -
<%= link_to l(:label_cooperation_compnay), web_footer_companies_path %>
-
<%= link_to l(:label_open_source_compnay), web_footer_companies_path(type: WebFooterCompany::RELATION_TYPE[1]) %>
+
<%= link_to l(:label_cooperation_compnay), web_footer_companies_path %>

<%=l(:label_web_footer_page)%>

diff --git a/app/views/homes/_partners.html.erb b/app/views/homes/_partners.html.erb index 05fa1bd8b..d442a5a21 100644 --- a/app/views/homes/_partners.html.erb +++ b/app/views/homes/_partners.html.erb @@ -1,8 +1,3 @@ -<%# <% partners.each do |partner| %> - <%#= link_to image_tag(url_to_avatar(partner),:alt=> partner.name ), partner.url, :target => "_blank" %> -<%# end %> - - - - - +<% partners.each do |partner| %> + <%= link_to image_tag(url_to_avatar(partner),:alt=> partner.name ), partner.url, :target => "_blank" %> +<% end %> diff --git a/app/views/homes/partners.html.erb b/app/views/homes/partners.html.erb index 61cc5b42c..42dbe6232 100644 --- a/app/views/homes/partners.html.erb +++ b/app/views/homes/partners.html.erb @@ -3,6 +3,7 @@ 首页> 开源生态

+ <% @companies.each do |pool, coms| %>

<%= render_pool_name(pool) %>