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' %> -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) %>
#{@user.count_undo_items}
待办事项
".html_safe, unsolved_issues_list_user_path(@user),remote: true %> + +<% if @user == User.current %> +#{@user.count_undo_items}
待办事项
".html_safe, unsolved_issues_list_user_path(@user),remote: true %>湖南长沙
+2016-06-13开始使用
+13115次访问(自2016年5月)
diff --git a/app/views/web_footer_companies/index.js.erb b/app/views/web_footer_companies/index.js.erb new file mode 100644 index 000000000..aedc1abea --- /dev/null +++ b/app/views/web_footer_companies/index.js.erb @@ -0,0 +1,2 @@ +$("#web_footer_companies_list").html("<%=escape_javascript(render :partial => 'list', :locals => {:companies => @companies}) %>") +$(".pagination").html('<%= pagination_links_full @obj_pages, @obj_count ,:per_page_links => false, :remote => true, :flag => true, :is_new => true %>'); diff --git a/app/views/web_footer_companies/new.html.erb b/app/views/web_footer_companies/new.html.erb index b97f8551d..b8c5f0d85 100644 --- a/app/views/web_footer_companies/new.html.erb +++ b/app/views/web_footer_companies/new.html.erb @@ -4,6 +4,7 @@<%= f.select :key, options_for_select(hash_company_types), :required => true %>
<%= f.text_field :name, :required => true %>
<%= f.text_field :url, :required => true %>
<%= l(:label_url_prompt) %>
diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 179cfdc1a..513aba59c 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -178,6 +178,7 @@ zh: field_hide_mail: 隐藏我的邮件地址 field_comments: 注释 field_url: 路径 + field_key: 类别 field_logo_size: logo大小 field_start_page: 起始页 field_subproject: 子项目 diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 6d8510741..17b651f5a 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -2876,3 +2876,9 @@ a:hover.Blue-btn{ background:#3598db; color:#fff;} .lab_left{width: 80px;text-align: center;line-height: 30px;display: block;float: left} .input_center{height: 30px;line-height: 30px;border-radius: 3px;margin:0px 20px;border:1px solid #ddd;padding-left: 5px ;box-sizing: border-box;width: 200px; } + +.pagination .active { + background-color: #3b94d6; + border: 1px solid #3b94d6; + color: #fff; +} diff --git a/public/stylesheets/css/common.css b/public/stylesheets/css/common.css index 919ceb721..b8726c377 100644 --- a/public/stylesheets/css/common.css +++ b/public/stylesheets/css/common.css @@ -53,9 +53,10 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/ .f14{font-size:14px;} .f_14{ font-size:14px;} .f16{font-size:16px;} -.f18{font-size:18px;} +.f18{font-size:18px!important;} .f20{font-size:20px!important;} .f22{font-size:22px!important;} +.f24{font-size:24px!important;} .f26{font-size:26px;} .f28{font-size:28px;} .f32{font-size:32px!important;} @@ -101,7 +102,7 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/ .markInput { outline:none; border:1px solid #e6e6e6; height:30px; width:50px; color:#3d3c3c; margin-bottom:10px; text-align:center; margin-right:5px; padding-left:0;} .markPercentage {margin:10px 0; border:1px solid #e6e6e6; width:70px; height:30px; outline:none; font-size:12px; color:#3d3c3c;} /* Spacing */ -.ml2{ margin-left:2px;}.ml3{ margin-left:3px;}.ml4{ margin-left:4px;}.ml5{ margin-left:5px;}.ml7 {margin-left:7px;}.ml8{ margin-left:8px;}.ml9{ margin-left:9px;} +.ml1{ margin-left:1px;}.ml2{ margin-left:2px;}.ml3{ margin-left:3px;}.ml4{ margin-left:4px;}.ml5{ margin-left:5px;}.ml7 {margin-left:7px;}.ml8{ margin-left:8px;}.ml9{ margin-left:9px;} .ml10{ margin-left:10px;}.ml14{ margin-left:14px;}.ml15{ margin-left:15px;}.ml16{ margin-left:16px;}.ml18{ margin-left:18px;}.ml20{ margin-left:20px;}.ml21{ margin-left:21px;} .ml24{margin-left:24px;}.ml25{margin-left:25px;}.ml30{margin-left:30px !important;}.ml35{margin-left: 35px;}.ml36{ margin-left:36px; }.ml38{ margin-left:38px;} .ml39{ margin-left:39px;}.ml40{ margin-left:40px;}.ml41{ margin-left:41px;}.ml42{ margin-left:42px;}.ml45{ margin-left:45px;}.ml48{ margin-left:48px;}.ml50{ margin-left: 50px;} @@ -119,7 +120,7 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/ .mt-20 {margin-top:-20px;}.mt-10 {margin-top:-10px;}.mt-4 {margin-top:-4px;}.mt-5 {margin-top:-5px;}.mt-2 {margin-top:-2px;}.mt0 {margin-top: 0px !important;} .mt1{margin-top: 1px;}.mt2{ margin-top:2px;}.mt3{ margin-top:3px!important;}.mt4{ margin-top:4px!important;}.mt5{ margin-top:5px;}.mt6{ margin-top:6px;}.mt7 {margin-top:7px!important;} .mt8{ margin-top:8px !important;}.mt9{ margin-top:9px !important;}.mt10{ margin-top:10px !important;}.mt12 { margin-top:12px !important;}.mt14 {margin-top:14px;} -.mt15 {margin-top:15px;}.mt16{ margin-top:16px !important;}.mt18{ margin-top:18px !important;}.mt19 {margin-top:19px !important;}.mt20{margin-top: 20px;}.mt28 {margin-top:28px;}.mt30{ margin-top: 30px;} +.mt15 {margin-top:15px;}.mt16{ margin-top:16px !important;}.mt18{ margin-top:18px !important;}.mt19 {margin-top:19px !important;}.mt20{margin-top: 20px;}.mt23{margin-top: 23px;}.mt28 {margin-top:28px;}.mt30{ margin-top: 30px;} .mt35 {margin-top:35px;}.mt40{ margin-top: 40px;}.mt45{ margin-top: 45px;}.mt50{ margin-top:50px;}.mt60{ margin-top:60px;}.mt100{ margin-top:100px;}.mb0 {margin-bottom: 0px !important;}.mb4{ margin-bottom:4px;} .mb5{ margin-bottom:5px;}.mb8 {margin-bottom:8px !important;}.pb5{ padding-bottom: 5px;}.mb10{ margin-bottom:10px !important;}.mb12 {margin-bottom:12px !important;} .mb15{margin-bottom: 15px;}.mb20{ margin-bottom:20px;}.mb25{ margin-bottom:25px;}.mb30 {margin-bottom:30px;}.mb40 {margin-bottom:40px;}.pl5{ padding-left:5px;} @@ -521,7 +522,8 @@ a:hover.btn_green_64_width{ background: #14ad5a; color: #fff;} .padding10{padding:10px;box-sizing: border-box} .padding20{padding:20px;box-sizing: border-box} -.f12 {font-size:12px;} +.f11 {font-size:11px!important;} +.f12 {font-size:12px!important;} .f13 {font-size:13px;} .f14 {font-size:14px;} .f15 {font-size:15px;} @@ -568,7 +570,7 @@ a:hover.btn_green_64_width{ background: #14ad5a; color: #fff;} .c-white {color:#ffffff;} .c-black {color:#333} .color-orange { - color: #ff6800!important; + color: #E67E21!important; } .padding30-20{padding:30px 20px;} .bor-bottom-greyE{border-bottom: 1px solid #eee;} diff --git a/public/stylesheets/css/iconfont/demo_index.html b/public/stylesheets/css/iconfont/demo_index.html index 0cab72f9b..3ba151950 100644 --- a/public/stylesheets/css/iconfont/demo_index.html +++ b/public/stylesheets/css/iconfont/demo_index.html @@ -1080,6 +1080,12 @@