添加项目托管平台首页定制功能
This commit is contained in:
parent
720c75478a
commit
b4dd8409eb
|
@ -234,4 +234,34 @@ class AdminController < ApplicationController
|
|||
format.api
|
||||
end
|
||||
end
|
||||
|
||||
#首页定制
|
||||
def first_page_made
|
||||
if request.get?
|
||||
@first_page = FirstPage.all.first
|
||||
elsif request.post?
|
||||
@first_page = FirstPage.all.first
|
||||
@first_page.web_title = params[:web_title]
|
||||
@first_page.description = params[:description]
|
||||
@first_page.title = params[:title]
|
||||
if @first_page.save
|
||||
respond_to do |format|
|
||||
format.html {
|
||||
flash[:notice] = l(:notice_successful_update)
|
||||
redirect_to admin_first_page_made_path
|
||||
}
|
||||
format.api { render_api_ok }
|
||||
end
|
||||
else
|
||||
respond_to do |format|
|
||||
format.html {
|
||||
first_page_made
|
||||
render :action => 'first_page_made'
|
||||
}
|
||||
format.api { render_validation_errors(@first_page) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -21,7 +21,7 @@ class WelcomeController < ApplicationController
|
|||
before_filter :entry_select, :only => [:index]
|
||||
|
||||
def index
|
||||
|
||||
@first_page = FirstPage.all.first
|
||||
end
|
||||
|
||||
def robots
|
||||
|
|
|
@ -625,10 +625,15 @@ module ApplicationHelper
|
|||
end
|
||||
|
||||
def html_title(*args)
|
||||
first_page = FirstPage.all.first
|
||||
if args.empty?
|
||||
title = @html_title || []
|
||||
title << @project.name if @project
|
||||
title << Setting.app_title unless Setting.app_title == title.last
|
||||
if first_page.nil? || first_page.web_title.nil?
|
||||
title << Setting.app_title unless Setting.app_title == title.last
|
||||
else
|
||||
title << first_page.web_title unless first_page.web_title == title.last
|
||||
end
|
||||
title.select {|t| !t.blank? }.join(' - ')
|
||||
else
|
||||
@html_title ||= []
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
class FirstPage < ActiveRecord::Base
|
||||
attr_accessible :description, :title, :web_title
|
||||
end
|
|
@ -0,0 +1,28 @@
|
|||
<h3><%=l(:label_first_page_made)%></h3>
|
||||
|
||||
<%= form_tag(:controller => 'admin', :action => 'first_page_made') do %>
|
||||
<p style="margin-left:60px;padding-right: 20px;">
|
||||
<label for='attachments_fields'> <%= l(:label_site_image) %>:</label>
|
||||
</p>
|
||||
<div style="margin-left: 82px;">
|
||||
<%= render :partial=>"avatar/avatar_form",:style => "display:inline",:locals=> {source:@first_page} %>
|
||||
</div>
|
||||
<p style="margin-left:60px;padding-right: 20px;">
|
||||
<label for='web_title'><%= l(:label_web_title) %>:</label>
|
||||
<%= text_field_tag 'web_title', params[:wbe_title],:value => @first_page.web_title, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
|
||||
</p>
|
||||
<p style="margin-left:60px;padding-right: 20px;">
|
||||
<label for='title'> <%= l(:label_site_title) %>:</label>
|
||||
<%= text_field_tag 'title', params[:label_site_title], :value => @first_page.title,:size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
|
||||
</p>
|
||||
<p style="margin-left:60px;padding-right: 20px;">
|
||||
<label for='description' style="vertical-align: top"> <%= l(:label_site_description)%>:</label>
|
||||
<%= text_area_tag 'description',@first_page.description,:rows => 8, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
|
||||
</p>
|
||||
<%= submit_tag l(:button_save), :class => "small", :name => nil %>
|
||||
<% end %>
|
||||
<div>
|
||||
|
||||
|
||||
|
||||
</div>
|
|
@ -28,7 +28,7 @@
|
|||
<div> = <%= l(:label_user_score_of_collaboration) %> + <%= l(:label_user_score_of_influence) %> +
|
||||
<%= l(:label_user_score_of_skill)%> + <%= l(:label_user_score_of_active) %></div>
|
||||
<!-- <div> + <%= l(:label_user_score_of_influence) %></div> -->
|
||||
<div> = <%= format("%.2f" ,@user.user_score_attr.collaboration.nil? ? 0:@user.user_score_attr.collaboration).to_f %> + <%= format("%.2f" , @user.user_score_attr.influence.nil? ? 0:@user.user_score_attr.influence ).to_f %>
|
||||
+ <%= format("%.2f" , @user.user_score_attr.skill.nil? ? 0:@user.user_score_attr.skill).to_f %> + <%= format("%.2f" , @user.user_score_attr.active.nil? ? 0:@user.user_score_attr.active).to_f %></div>
|
||||
<div> = <%= format("%.2f" ,@user.user_score_attr.total_score.nil? ? 0:@user.user_score_attr.total_score).to_f %></div>
|
||||
<div> = <%= format("%.2f" ,@user.user_score_attr.collaboration.nil? ? 0:@user.user_score_attr.collaboration).to_i %> + <%= format("%.2f" , @user.user_score_attr.influence.nil? ? 0:@user.user_score_attr.influence ).to_i %>
|
||||
+ <%= format("%.2f" , @user.user_score_attr.skill.nil? ? 0:@user.user_score_attr.skill).to_i %> + <%= format("%.2f" , @user.user_score_attr.active.nil? ? 0:@user.user_score_attr.active).to_i %></div>
|
||||
<div> = <%= format("%.2f" ,@user.user_score_attr.total_score.nil? ? 0:@user.user_score_attr.total_score).to_i %></div>
|
||||
<!-- end -->
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<td>
|
||||
<table>
|
||||
<tr class="info_font"><td><%= l(:label_user_score) %></td></tr>
|
||||
<tr class="buttons_for_score" style="margin-top:30px;margin-left:144px"><td><span style="color:#ec6300"><%= format("%.2f" , @user.user_score_attr.total_score).to_f %></span></td></tr>
|
||||
<tr class="buttons_for_score" style="margin-top:30px;margin-left:144px"><td><span style="color:#ec6300"><%= format("%.2f" , @user.user_score_attr.total_score).to_i %></span></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -49,23 +49,23 @@
|
|||
<table style="border-bottom: solid 0px #80a6d2;" width="100%">
|
||||
<tr>
|
||||
<%= link_to l(:label_user_score) , {:controller => 'users', :action => 'score_new_index', :remote => true} %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.total_score).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.total_score).to_i %>
|
||||
</tr><br>
|
||||
<tr>
|
||||
<%= link_to l(:label_user_score_of_collaboration), {:controller => 'users',:action => 'topic_new_score_index', :remote => true} %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.collaboration.nil? ? 0:@user.user_score_attr.collaboration).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.collaboration.nil? ? 0:@user.user_score_attr.collaboration).to_i %>
|
||||
</tr><br>
|
||||
<tr>
|
||||
<%= link_to l(:label_user_score_of_influence), {:controller => 'users',:action => 'project_new_score_index', :remote => true} %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.influence.nil? ? 0:@user.user_score_attr.influence).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.influence.nil? ? 0:@user.user_score_attr.influence).to_i %>
|
||||
</tr><br>
|
||||
<tr>
|
||||
<%= link_to l(:label_user_score_of_skill), {:controller => 'users',:action => 'activity_new_score_index', :remote => true} %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.skill.nil? ? 0:@user.user_score_attr.skill).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.skill.nil? ? 0:@user.user_score_attr.skill).to_i %>
|
||||
</tr><br>
|
||||
<tr>
|
||||
<%= link_to l(:label_user_score_of_active), {:controller => 'users',:action => 'influence_new_score_index', :remote => true} %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.active.nil? ? 0:@user.user_score_attr.active).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.active.nil? ? 0:@user.user_score_attr.active).to_i %>
|
||||
</tr><br>
|
||||
</table>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<%= l(:label_user_grade)%>:
|
||||
<%= link_to(format("%.2f" , user.user_score_attr.total_score).to_f, {:controller => 'users',
|
||||
<%= link_to(format("%.2f" , user.user_score_attr.total_score).to_i, {:controller => 'users',
|
||||
:action => 'show_new_score',
|
||||
:remote => true,
|
||||
:id => user.id
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<td>
|
||||
<table>
|
||||
<tr class="info_font"><td><%= l(:label_user_score) %></td></tr>
|
||||
<tr class="buttons_for_score" style="margin-top:30px;margin-left:144px"><td><span style="color:#ec6300"><%= format("%.2f" , @user.user_score_attr.total_score).to_f %></span></td></tr>
|
||||
<tr class="buttons_for_score" style="margin-top:30px;margin-left:144px"><td><span style="color:#ec6300"><%= format("%.2f" , @user.user_score_attr.total_score).to_i %></span></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -64,23 +64,23 @@
|
|||
<table style="border-bottom: solid 0px #80a6d2;" width="100%">
|
||||
<tr>
|
||||
<%= l(:label_user_score) %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.total_score).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.total_score).to_i %>
|
||||
</tr><br>
|
||||
<tr>
|
||||
<%= l(:label_user_score_of_collaboration) %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.collaboration.nil? ? 0:@user.user_score_attr.collaboration).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.collaboration.nil? ? 0:@user.user_score_attr.collaboration).to_i %>
|
||||
</tr><br>
|
||||
<tr>
|
||||
<%= l(:label_user_score_of_influence) %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.influence.nil? ? 0:@user.user_score_attr.influence).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.influence.nil? ? 0:@user.user_score_attr.influence).to_i %>
|
||||
</tr><br>
|
||||
<tr>
|
||||
<%= l(:label_user_score_of_skill) %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.skill.nil? ? 0:@user.user_score_attr.skill).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.skill.nil? ? 0:@user.user_score_attr.skill).to_i %>
|
||||
</tr><br>
|
||||
<tr>
|
||||
<%= l(:label_user_score_of_active) %> :
|
||||
<%= format("%.2f" , @user.user_score_attr.active.nil? ? 0:@user.user_score_attr.active).to_f %>
|
||||
<%= format("%.2f" , @user.user_score_attr.active.nil? ? 0:@user.user_score_attr.active).to_i %>
|
||||
</tr><br>
|
||||
</table>
|
||||
|
||||
|
|
|
@ -30,13 +30,19 @@
|
|||
<div id="identifier-pannel" style="display:none">
|
||||
<%= link_to image_tag('/images/qrweixin.jpg', size: '150x150', alt: 'trustie', class: "weixin" ), home_path %>
|
||||
<div class="weixin-content">微信扫码</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main-content-bar" id="main-content-bar">
|
||||
<div style="float: left">
|
||||
<%= image_tag '/images/transparent.png', size: "75x75" %>
|
||||
<!-- <#%= image_tag(get_project_avatar(@first_page), size: "75x75") %> -->
|
||||
<% if get_avatar?(@first_page) %>
|
||||
<%= image_tag(url_to_avatar(@first_page), size: "75x75") %>
|
||||
<% else %>
|
||||
<%= image_tag '/images/transparent.png', size: "75x75" %>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
<div class="welcome_left" id="welcome_left">
|
||||
<span class="font_welcome_trustie"><%= l(:label_welcome_trustie) %><%= l(:label_welcome_trustie_project) %></span> <span class="font_welcome_tdescription">, <%= l(:label_welcome_trustie_project_description) %></span>
|
||||
<span class="font_welcome_trustie"><%= @first_page.title %></span> <span class="font_welcome_tdescription">, <%= @first_page.description %></span>
|
||||
</div>
|
||||
<div class="search-bar" id="search-bar">
|
||||
<%= render :partial => "search_project", :locals => {:project_type => 0}%>
|
||||
|
|
|
@ -515,6 +515,7 @@ zh:
|
|||
label_project_new_description: '项目可以是软件开发项目,也可以是协作研究项目。'
|
||||
label_project_plural: 项目列表
|
||||
label_project_score: 项目评分
|
||||
label_first_page_made: 首页定制
|
||||
label_x_projects:
|
||||
zero: 无项目
|
||||
one: 1 个项目
|
||||
|
@ -561,6 +562,10 @@ zh:
|
|||
label_login_with_open_id_option: 或使用OpenID登录
|
||||
label_password_lost: 忘记密码
|
||||
label_home: 主页
|
||||
label_web_title: 浏览器标题
|
||||
label_site_title: 网站标题
|
||||
label_site_description: 网站简介
|
||||
label_site_image: 简介图片
|
||||
#by young
|
||||
label_requirement: 需求
|
||||
label_new_course: 课程列表
|
||||
|
|
|
@ -558,6 +558,7 @@ RedmineApp::Application.routes.draw do
|
|||
match 'admin', :controller => 'admin', :action => 'index', :via => :get
|
||||
match 'admin/projects', :controller => 'admin', :action => 'projects', :via => :get
|
||||
match 'admin/users', :controller => 'admin', :action => 'users', :via => :get
|
||||
match 'admin/first_page_made',:controller => 'admin',:action => 'first_page_made',:via => [:get,:post]
|
||||
match 'admin/search', :controller => 'admin', :action => 'search', :via => [:get, :post]
|
||||
match 'admin/plugins', :controller => 'admin', :action => 'plugins', :via => :get
|
||||
match 'admin/info', :controller => 'admin', :action => 'info', :via => :get
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
# -*coding:utf-8 -*-
|
||||
class CreateFirstPages < ActiveRecord::Migration
|
||||
def change
|
||||
create_table :first_pages do |t|
|
||||
t.string :web_title
|
||||
t.string :title
|
||||
t.string :description
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
fp = FirstPage.new
|
||||
fp.web_title = "Trustie - 为大学生技术创新筑巢"
|
||||
fp.title = "Trustie在线项目托管平台"
|
||||
fp.description = "面向中国大学生与软件从业者,提供社交化的项目管理、代码托管、资源共享、合作交流。"
|
||||
fp.save
|
||||
end
|
||||
end
|
10
db/schema.rb
10
db/schema.rb
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20140708023356) do
|
||||
ActiveRecord::Schema.define(:version => 20140710071720) do
|
||||
|
||||
create_table "activities", :force => true do |t|
|
||||
t.integer "act_id", :null => false
|
||||
|
@ -406,6 +406,14 @@ ActiveRecord::Schema.define(:version => 20140708023356) do
|
|||
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type"
|
||||
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id"
|
||||
|
||||
create_table "first_pages", :force => true do |t|
|
||||
t.string "web_title"
|
||||
t.string "title"
|
||||
t.string "description"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "forums", :force => true do |t|
|
||||
t.string "name", :null => false
|
||||
t.string "description", :default => ""
|
||||
|
|
|
@ -351,6 +351,7 @@ end
|
|||
Redmine::MenuManager.map :admin_menu do |menu|
|
||||
menu.push :projects, {:controller => 'admin', :action => 'projects'}, :caption => :label_project_plural
|
||||
menu.push :users, {:controller => 'admin', :action => 'users'}, :caption => :label_user_plural
|
||||
menu.push :first_page_made, {:controller => 'admin',:action => 'first_page_made'},:caption => :label_first_page_made
|
||||
menu.push :groups, {:controller => 'groups'}, :caption => :label_group_plural
|
||||
menu.push :roles, {:controller => 'roles'}, :caption => :label_role_and_permissions
|
||||
menu.push :trackers, {:controller => 'trackers'}, :caption => :label_tracker_plural
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
||||
|
||||
one:
|
||||
web_title: MyString
|
||||
title: MyString
|
||||
description: MyString
|
||||
|
||||
two:
|
||||
web_title: MyString
|
||||
title: MyString
|
||||
description: MyString
|
|
@ -0,0 +1,7 @@
|
|||
require 'test_helper'
|
||||
|
||||
class FirstPageTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
Loading…
Reference in New Issue