ADD dynamic managerment

This commit is contained in:
Jasder 2019-10-17 19:02:48 +08:00
parent 6070c44ffe
commit 082056ae47
21 changed files with 497 additions and 205 deletions

2
.gitignore vendored
View File

@ -17,9 +17,9 @@
/public/cache/*
/config/newrelic.yml
/public/images/avatars/*
/public/images/dynamic_new/*
/Gemfile
/Gemfile.lock
/db/schema.rb
/Gemfile.lock
/lib/plugins/acts_as_versioned/test/debug.log
.rbenv-gemsets

View File

@ -712,6 +712,15 @@ class AdminController < ApplicationController
end
end
# 动态消息列表
def dynamic_news
scope = DynamicNew.desc
@dynamic_news_count = scope.count
@dynamic_news = paginateHelper scope, 15
@page = (params['page'] || 1).to_i - 1
end
# 单位审核
# 未审批tab页
# status: 0 未审批; 1 已批阅; 2已更改 3拒绝

View File

@ -0,0 +1,45 @@
class DynamicNewsController < ApplicationController
layout 'admin', only: [:new, :index]
before_filter :require_admin, :only => [:new, :create, :destroy]
def index
end
def new
@dynamic_new = DynamicNew.new
end
def create
tmp_file = params[:cover]
@dynamic_new = DynamicNew.new(params[:dynamic_new])
begin
ActiveRecord::Base.transaction do
identity = SecureRandom.uuid
unless tmp_file.nil?
File.open(Rails.root.join('public', 'images', 'dynamic_new', identity.to_s+'.png'), 'wb') do |file|
file.write(tmp_file.read)
end
@dynamic_new.cover_remote_url = "/images/dynamic_new/#{identity}.png"
end
# TODO: 如下警告信息导致值写不进库
# WARNING: Can't mass-assign protected attributes: simple_intruduce,
@dynamic_new.simple_intruduce = params[:dynamic_new][:simple_intruduce]
@dynamic_new.save
end
redirect_to admin_dynamic_news_path
rescue => e
logger.info e
render 'new'
end
end
def destroy
end
def show
@dynamic_new = DynamicNew.find params[:id]
end
end

View File

@ -2,12 +2,12 @@ class HomesController < ApplicationController
layout 'base_introduce'
before_filter :find_home, :except => [:index, :new, :create]
# GET /homes
# GET /homes.json
def index
@home = Home.includes(:banners, :cover => [:file]).first
@dynamic_news = DynamicNew.limit(4)
@dynamic_news = DynamicNew.desc.limit(4)
@companies = WebFooterCompany.dedicators.limit(26)
@first_companies_group = Array(@companies.slice(0, 8))
@second_companies_group = Array(@companies.slice(8, 10))

View File

@ -0,0 +1,2 @@
module DynamicNewHelper
end

View File

@ -1,3 +1,8 @@
class DynamicNew < ActiveRecord::Base
attr_accessible :content, :cover_remote_url, :remote_url, :title
scope :desc, -> { order('id desc') }
def cover_url
cover_remote_url || "/images/dynamic_new/default.png"
end
end

View File

@ -0,0 +1,99 @@
<div class="contextual">
<%= link_to l(:label_dynamic_new), {:controller => 'dynamic_news', :action => 'new'}, :class => 'icon icon-add' %>
</div>
<h3>
<%=l(:label_dynamic_new_plural)%>
</h3>
<%= form_tag({}, :method => :get) do %>
<fieldset>
<legend>
<%= l(:label_filter_plural) %>
</legend>
<label for='status'>
<%= l(:field_status) %> :
</label>
<%= select_tag 'status', project_status_options_for_select(@status), :class => "small", :onchange => "this.form.submit(); return false;" %>
<label for='name'>
<%= l(:label_project) %>:
</label>
<%= text_field_tag 'name', params[:name], :size => 30, :placeholder => '输入项目名称进行搜索' %>
<%= submit_tag l(:button_apply), :class => "small", :name => nil %>
<%= link_to l(:button_clear), {:controller => 'admin', :action => 'dynamic_news'}, :class => 'icon icon-reload' %>
</fieldset>
<% end %>
&nbsp;
<div class="autoscroll">
<table class="list" style="width: 100%;table-layout: fixed">
<thead>
<tr>
<th style="width: 35px;">
序号
</th>
<th style="width: 60px;">
封面
</th>
<th style="width: 100px;">
标题
</th>
<th style="width: 35px;" class = "">
简介
</th>
<th style="width: 90px;">
创建时间
</th>
<th style="width: 80px;">
</th>
</tr>
</thead>
<tbody>
<% @count= @page * 15 %>
<% @dynamic_news.each do |dynamic_new| %>
<tr class="<%= cycle("odd", "even") %>">
<!td style="text-align:center;vertical-align: middle;">
<!%= dynamic_new.id %>
<% @count +=1 %>
<td align="center">
<%=@count %>
</td>
<td align="center">
<%= image_tag(dynamic_new.cover_url, width:40, height:40) %>
<!%= dynamic_new.title %>
</td>
<td style="text-align:center;vertical-align: middle;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="name" title='<%=dynamic_new.title%>'>
<span>
<%= link_to dynamic_new.title, "" %>
</span>
</td>
<td style="vertical-align: middle;text-align:center">
<%= dynamic_new.simple_intruduce %>
</td>
<td style="vertical-align: middle;text-align:center">
<%= format_time(dynamic_new.created_at) %>
</td>
<td class="buttons" style="vertical-align: middle;text-align:center">
<%= link_to("修改", upload_logo_school_path(dynamic_new.id,:school_name => @school_name), :class => 'icon icon-copy') %>
<%#= link_to(l(:button_delete), organization_path(school.id), :method => :delete,:confirm => l(:text_are_you_sure), :class => 'icon icon-del') %>
</td>
</tr>
<% end %>
</tbody>
</table>
</div>
<div class="pagination">
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false %>
</div>
<script>
function delcfm() {
if (!confirm("删除项目会一并删除项目的关联信息,确认要删除吗?")) {
window.event.returnValue = false;
}
}
</script>

View File

@ -0,0 +1,2 @@
<h1>DynamicNew#index</h1>
<p>Find me in app/views/dynamic_new/index.html.erb</p>

View File

@ -0,0 +1,87 @@
<script>
function showPreview(source) {
var file = source.files[0];
if (window.FileReader) {
var fr = new FileReader();
fr.onloadend = function (e) {
document.getElementById("avatar_image").src = e.target.result;
};
fr.readAsDataURL(file);
}
}
</script>
<%= content_for(:header_tags) do %>
<%= import_ke(enable_at: false) %>
<% end %>
<h3 style="float: left">
<%=l(:label_new_dynamic_new)%>
</h3><br/>
<div style="padding-top: 20px; padding-left: 5px;">
<%= form_for(@dynamic_new, :url=> { :action => :create }, :html => {:id =>'system_messages-form',:multipart => true }) do |f| %>
<li>
<input type="hidden" value="<%= @school_name%>" name="school_name">
<%= image_tag('', id: "avatar_image", :class=>"school_avatar dynamic_new_image" )%>
<a type="button" onclick="$('#file').click();" style="margin: 86px 0 0 15px;float: left;padding: 2px 5px;border: 1px solid #eaeaea;cursor: pointer;text-decoration: none;width: 55px;">上传图片</a>
<%= file_field_tag 'cover',:style => "display:none;", :id => "file", :onchange => "showPreview(this)"%>
<div style="clear: both;"></div>
</li>
<li>
<label><span class="">*</span>&nbsp;<%= l(:field_title) %>&nbsp;&nbsp;</label>
<input type="text" name="dynamic_new[title]" class="hwork_input_news" id="system_message_subject" width="576px" onblur="regexTitle($(this));" maxlength="255" placeholder="255个字符以内" value="">
<p id="title_notice_span" class="ml55"></p>
</li>
<li>
<label><span class="">*</span>&nbsp;<%= l(:field_summary) %>&nbsp;&nbsp;</label>
<input type="textarea" name="dynamic_new[simple_intruduce]" class="hwork_input_news" id="system_message_subject" width="576px" onblur="regexTitle($(this));" maxlength="255" placeholder="255个字符以内" value="">
<p id="title_notice_span" class="ml55"></p>
</li>
<li>
<label class="fl" >&nbsp;&nbsp;<span class="c_red"></span>&nbsp;<%= l(:field_content) %>&nbsp;&nbsp;</label>
<%= f.kindeditor :content,:width=>'87.5%',:editor_id=>'system_message_editor' %>
<p id="content_notice_span" class="ml55"></p>
</li>
<div>
<p id="content_notice_span" class="ml55"></p>
</div>
<div class="cl"></div>
<div class="actions">
<%= link_to l(:label_submit), "javascript:void(0)", :class => "btn_message_free", :onclick => "system_message_editor.sync();submit_message($(this));" %>
</div>
<% end %>
</div>
<script>
function system_message_length() {
var obj = system_message_editor.html();
if (obj.length > 10000) {
$("#content_notice_span").text("内容过长超过10000个字符");
$("#content_notice_span").css('color', '#ff0000');
$("#content_notice_span").focus();
return false;
} else {
$("#content_notice_span").text("填写正确");
$("#content_notice_span").css('color', '#008000');
return true;
}
}
function regexTitle(obj) {
var title = obj.val();
if (title.length == 0) {
$("#title_notice_span").text("标题不能为空").css("color", "#ff0000").focus();
return false;
} else if (title.length > 255) {
$("#title_notice_span").text("标题长度过长不能超过255个字符").css("color", "#ff0000").focus();
return false;
} else {
$("#title_notice_span").text("填写正确").css("color", "#008000");
return true;
}
}
function submit_message(dom) {
if (system_message_length() && regexTitle($("#system_message_subject"))) {
$("#system_messages-form").submit();
}
}
</script>

View File

@ -2,14 +2,14 @@
<a href="<%= dynamic_new.remote_url %>">
<div class="homepage_activity_list_item">
<div>
<p class="f18 mb15 lh20 color-grey3"><%= dynamic_new.title %></p>
<p class="f13 mb8 c_grey02 task-hide-2" style="height: 38px;"><%= dynamic_new.content.html_safe %></p>
<p class="f18 mb15 lh20 color-grey3"><%= h dynamic_new.title %></p>
<p class="f13 mb8 c_grey02 task-hide-2" style="height: 38px;"><%= h dynamic_new.simple_intruduce %></p>
<p>
<span class="activity_tag">行业动态</span>
<span class="fontGrey4 ml14 fl"><i class="iconfont icon-shijian f12 mr5 lh18 fl"></i><%= format_time(dynamic_new.created_at) %></span>
</p>
</div>
<img src="<%= dynamic_new.cover_remote_url %>" class="ml20" width="158px" height="100px" />
<img src="<%= dynamic_new.cover_url %>" class="ml20" width="158px" height="100px" />
</div>
</a>
<% end %>

View File

@ -1,6 +1,6 @@
<div class="navHomepage">
<div class="navHomepageLogo fl">
<%=link_to image_tag("../images/nav_logo.png",width:"51px", height: "45px",class: "mt3"), home_path()%>
<%=link_to image_tag("../images/nav_logo.png",width:"51px", height: "45px",class: "mt3"), homes_path()%>
</div>
<div class="fl">
<ul>

View File

@ -2197,3 +2197,10 @@ zh:
label_new_notice_template: 您的班级有新通知了。
#edit yk
label_code_work_tests: 代码测试列表
# 动态消息
label_dynamic_new: 新建动态新闻
label_dynamic_new_plural: 首页动态新闻列表
label_dynamic_new_title: 标题
label_dynamic_new_synopsis: 简介
label_new_dynamic_new: '动态新闻'

View File

@ -39,6 +39,7 @@ RedmineApp::Application.routes.draw do
end
end
resources :dynamic_news
mount Mobile::API => '/api'
@ -1365,6 +1366,7 @@ RedmineApp::Application.routes.draw do
get 'admin/code_work_tests'
post 'admin/select_course_syllabus'
post 'admin/create_syllabus'
match 'admin/dynamic_news', :via => :get
resources :auth_sources do
member do

View File

@ -0,0 +1,5 @@
class AddSummaryToDynamicNews < ActiveRecord::Migration
def change
add_column :dynamic_news, :summary, :string
end
end

View File

@ -0,0 +1,8 @@
class RenameSummaryToSynopsisInDynamicNews < ActiveRecord::Migration
def up
rename_column :dynamic_news, :summary, :summarize
end
def down
end
end

View File

@ -0,0 +1,5 @@
class RenameSummarizeToSynopsisInDynamicNews < ActiveRecord::Migration
def change
rename_column :dynamic_news, :summarize, :synopsis
end
end

View File

@ -0,0 +1,5 @@
class RenameSynopsisToIntroduceInDynamicNews < ActiveRecord::Migration
def change
rename_column :dynamic_news, :synopsis, :intruduce
end
end

View File

@ -0,0 +1,5 @@
class RenameIntroduceToSimpleIntroduceInDynamicNews < ActiveRecord::Migration
def change
rename_column :dynamic_news, :intruduce, :simple_intruduce
end
end

View File

@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20191016015946) do
ActiveRecord::Schema.define(:version => 20191017102232) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@ -948,6 +948,7 @@ ActiveRecord::Schema.define(:version => 20191016015946) do
t.string "remote_url"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "simple_intruduce"
end
add_index "dynamic_news", ["title"], :name => "index_dynamic_news_on_title"

View File

@ -286,8 +286,8 @@ Redmine::MenuManager.map :top_menu do |menu|
menu.push :requirement_enterprise, {:controller => 'bids', :action => 'index'}
menu.push :project_module_forums, :forums_path
menu.push :stores_index, :stores_path
# menu.push :investor, :home_path
# menu.push :theme, :home_path
# menu.push :my_page, { :controller => 'my', :action => 'page' }, :if => Proc.new { User.current.logged? }
@ -308,11 +308,11 @@ end
# menu.push :help, Redmine::Info.help_url, :last => true
# end
# Redmine::MenuManager.map :top_enterprise_menu do |menu|
# Redmine::MenuManager.map :top_enterprise_menu do |menu|
# menu.push :home, :home_path
# menu.push :requirement, {:controller => 'bids', :action => 'index', :project_type => 0 }
# menu.push :projects, { :controller => 'projects', :action => 'index', :project_type => 0 }, :caption => :label_project_plural
#
#
# menu.push :developer, {:controller => 'users', :action => 'index', :project_type => 0 }
# menu.push :college_into, {:controller=>'projects', :action=>'course_enterprise', :project_type => 1 }
# # menu.push :investor, :home_path
@ -327,7 +327,7 @@ end
# menu.push :new_course, {:controller => 'projects', :action => 'course', :project_type => 1}
# menu.push :new_homework, {:controller => 'bids', :action => 'index', :project_type => 1 }
# menu.push :new_contest, {:controller => 'bids', :action => 'contest', :project_type => 1}
# menu.push :projects, { :controller => 'projects', :action => 'index', :project_type => 0 }, :caption => :label_project_plural
# menu.push :projects, { :controller => 'projects', :action => 'index', :project_type => 0 }, :caption => :label_project_plural
# menu.push :developer, {:controller => 'users', :action => 'index', :project_type => 1 }
# menu.push :enterprise_into, {:controller=>'projects', :action=>'enterprise_course', :project_type => 0 }
# menu.push :investor, :home_path
@ -348,10 +348,10 @@ end
Redmine::MenuManager.map :bid_menu do |menu|
menu.push :respond, { :controller => 'bids', :action => 'show' }, :caption => :label_user_response
menu.push :project, { :controller => 'bids', :action => 'show_project', :host => Setting.host_name }, :caption => :label_bidding_project
# menu.push :result, { :controller => 'bids', :action => 'show_results' },
# :caption => :label_bidding_results,:if => Proc.new{ |p| User.current.id == p }
# menu.push :result, { :controller => 'bids', :action => 'show_results' },
# :caption => :label_bidding_results,:if => Proc.new{ |p| User.current.id == p }
end
###new add by linchun
###new add by linchun
Redmine::MenuManager.map :contest_menu do |menu|
menu.push :respond, :show_contest_contest_path, :caption => :label_user_response
#menu.push :project, :show_project_contest_path, :caption => :label_contest_project
@ -360,8 +360,8 @@ Redmine::MenuManager.map :contest_menu do |menu|
menu.push :contestnotifications, { :controller => 'contestnotifications', :action => 'index' }, :param => :contest_id, :caption => :label_contest_notification
#menu.push :contestnotification, {:controller => 'contests', :action => 'show_notification'}, :caption => :label_contest_notification
# menu.push :attendingcontest, :show_attendingcontest_contest_path, :caption => :label_attendin,g_contest
# menu.push :result, { :controller => 'bids', :action => 'show_results' },
# :caption => :label_bidding_results,:if => Proc.new{ |p| User.current.id == p }
# menu.push :result, { :controller => 'bids', :action => 'show_results' },
# :caption => :label_bidding_results,:if => Proc.new{ |p| User.current.id == p }
end
####
@ -387,6 +387,7 @@ Redmine::MenuManager.map :admin_menu do |menu|
menu.push :schools, {:controller => 'admin', :action => 'schools'}, :caption => :label_school_plural
menu.push :applied_schools, {:controller => 'admin', :action => 'applied_schools'}, :caption => :label_applied_shcools
menu.push :first_page_made, {:controller => 'admin',:action => 'first_page_made'},:caption => :label_first_page_made
menu.push :dynamic_news, {:controller => 'admin',:action => 'dynamic_news'},:caption => :label_dynamic_new_plural
menu.push :mobile_version, {:controller => 'admin',:action => 'mobile_version'},:caption => :label_mobile_version
menu.push :groups, {:controller => 'groups'}, :caption => :label_group_plural
menu.push :roles, {:controller => 'roles'}, :caption => :label_role_and_permissions
@ -435,7 +436,7 @@ Redmine::MenuManager.map :project_menu do |menu|
menu.push :repository, { :controller => 'repositories', :action => 'show', :repository_id => nil, :path => nil, :rev => nil },
:if => Proc.new { |p| p.repository && !p.repository.new_record? && !( !User.current.member_of?(p) && p.hidden_repo ) && p.enabled_module_names.include?('repository') }
menu.push :settings, { :controller => 'projects', :action => 'settings' }, :last => true
end
#end
@ -445,9 +446,9 @@ Redmine::MenuManager.map :course_menu do |menu|
menu.push :homework, { :controller => 'projects', :action => 'homework' }
# menu.push :news, { :controller => 'news', :action => 'index' }, :param => :project_id, :caption => :label_news_plural
# menu.push :files, { :controller => 'files', :action => 'index' }, :caption => :label_file_new, :param => :project_id
menu.push :repository, { :controller => 'repositories', :action => 'show', :repository_id => nil, :path => nil, :rev => nil, :course => 1 }
menu.push :repository, { :controller => 'repositories', :action => 'show', :repository_id => nil, :path => nil, :rev => nil, :course => 1 }
# menu.push :settings, { :controller => 'projects', :action => 'settings', :course => 1 }, :last => true
end
Redmine::MenuManager.map :user_menu do |menu|
menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.host_user }
@ -473,23 +474,23 @@ Redmine::MenuManager.map :user_menu do |menu|
# menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids'} by huang
menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.host_user}
end
end
Redmine::MenuManager.map :user_enterprise_menu do |menu|
menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.host_user }
menu.push :user_project, {:controller => 'users', :action => 'user_projects', :host => Setting.host_name}
# menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids', :host => Setting.host_user}
menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.host_user}
end
Redmine::MenuManager.map :user_menu_self do |menu|
menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.host_name }
menu.push :user_information, {:controller => 'users', :action => 'info', :host => Setting.host_user}
menu.push :user_information, {:controller => 'users', :action => 'info', :host => Setting.host_user}
menu.push :user_project, {:controller => 'users', :action => 'user_projects', :host => Setting.host_name}
# menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids', :host => Setting.host_user}
menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.host_user}
end
#end

View File

@ -31,10 +31,10 @@ li{list-style-type:none;}
.ml55{ margin-left:55px;}
.fl {float:left;}
/*current position*/
.contest_count{
width: 20%;
height: 60px;
border: 1px solid #15bccf;
.contest_count{
width: 20%;
height: 60px;
border: 1px solid #15bccf;
border-radius: 5px 5px 5px 5px;
float:right;
}
@ -49,20 +49,20 @@ li{list-style-type:none;}
}
div.position-f{
padding-left: 8px;
padding-left: 8px;
float: left;
width: 238px;
line-height: 0.5em;
line-height: 0.5em;
vertical-align: middle;
alignment-adjust: middle;
alignment-adjust: middle;
}
div.position-f p.font{
div.position-f p.font{
font-family: "Microsoft YaHei";
font-weight: bold;
font-size: 16px;
color: #15bccf;
color: #15bccf;
}
div.position-s{
@ -73,7 +73,7 @@ div.position-s{
div.position-s p.font{
color: #15bccf;
font-weight: bold;
font-weight: bold;
}
div.position-t{
@ -91,13 +91,13 @@ div.sidebar-user{
border-bottom: 1px solid #15bccf;
}
.inf-user-image{
.inf-user-image{
padding-left:8px;
margin:0px;
background-color:#fff;
height: auto;
height: auto;
padding-bottom: 8px;
float: left;
float: left;
}
.inf-user-image img.avatar2{
background: rgb(245, 245, 245);
@ -107,16 +107,16 @@ div.sidebar-user{
display: block;
height:80px;
width: 80px;
}
.sidebar-f{
.sidebar-f{
width: 238px;
float: left;
margin:0px;
background-color:#fff;
height: auto;
padding-bottom: 8px;
height: auto;
padding-bottom: 8px;
}
div.sidebar-f div.name{
@ -140,18 +140,18 @@ div.sidebar-s{
div.sidebar-s p.mail{
width: 220px;
white-space: nowrap;
white-space: nowrap;
overflow: hidden;
white-space: nowrap;
overflow: hidden;
}
div.sidebar-s p.location{
word-wrap: break-word;
word-wrap: break-word;
word-break: break-all;
}
div.sidebar-t{
}
/*end*/
@ -159,7 +159,7 @@ div.sidebar-t{
div.main-content{
float: left;
width: 660px;
border-bottom: 1px dashed rgb(204, 204, 204);
border-bottom: 1px dashed rgb(204, 204, 204);
margin-bottom: 10px;
font-size:14px;
}
@ -174,7 +174,7 @@ div.main-content-s{
width: 580px;
}
/**/
/*forums-index*/
div.forums-index{
padding-left: 10px;
@ -189,23 +189,23 @@ div.forums-inex-avatar{
width: 7%;
}
div.forums-index-content{
div.forums-index-content{
float: left;
width: 72%;
line-height: 1.5em;
}
div.forums-index-count{
div.forums-index-count{
padding-top: 10px;
float: right;
padding-right: 40px;
float: right;
padding-right: 40px;
}
table.forums-count-color{
width: 80px;
height: 60px;
height: 60px;
background-color: #e5e2e2;
}
table.forums-count-color tr{
@ -214,7 +214,7 @@ table.forums-count-color tr{
background-color: #e5e2e2;
vertical-align: middle;
alignment-adjust: middle;
}
/*forums-index end*/
.vatar-size{
@ -228,12 +228,12 @@ div.position-title{
div.sidebar-forums{
padding-left: 8px;
width: 214px;
width: 214px;
}
div.forums-tags{
border-bottom: solid 1px #15bccf;
width: 214px;
border-bottom: solid 1px #15bccf;
width: 214px;
}
div.forums-line{
@ -246,52 +246,52 @@ div.forums-info{
height: 100px;
width: 214px;
padding-left: 5px;
}
div.forums-title{
div.forums-title{
font-family: "Microsoft YaHei";
font-weight: bold;
font-size: 16px;
color: rgb(237, 137, 36);
word-wrap: break-word;
word-break: break-all;
word-break: break-all;
}
div.forums-description{
color: rgb(145, 146, 148);
}
span.forums-avatar-left{
span.forums-avatar-left{
float:left;
width: 27%;
width: 27%;
}
span.forums-avatar-right{
span.forums-avatar-right{
float: right;
width: 65%;
width: 65%;
}
.formus-first-title{
font-family: "Microsoft YaHei";
font-weight:bold;
font-weight:bold;
padding-top:3px;
padding-bottom:3px;
padding-bottom:3px;
font-size:16px;
}
/*end*/
.welcome-index{
width: 290px;
width: 290px;
white-space: nowrap;
overflow: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
}
}
.contextual-borad{
float:left;
white-space: nowrap;
float:left;
white-space: nowrap;
line-height:1.4em;
margin-top:0px;
margin-top:0px;
margin-right:8px;
font-size:0.9em;
}
@ -299,17 +299,17 @@ span.forums-avatar-right{
.borad-text-list{
margin-bottom: 10px;
border-bottom: 1px dashed rgb(204, 204, 204);
width: 680px;
}
width: 680px;
}
.borad-message{
margin-bottom: 10px;
border-bottom: 1px dashed rgb(204, 204, 204);
border-bottom: 1px dashed rgb(204, 204, 204);
}
.borad-count{
width: 50px;
background-color: #e5e2e2;
background-color: #e5e2e2;
}
.borad-title{
@ -323,45 +323,45 @@ span.forums-avatar-right{
.borad-setitle{
padding-bottom: 5px;
padding-top: 10px;
border-bottom: 1px dashed rgb(204, 204, 204);
border-bottom: 1px dashed rgb(204, 204, 204);
}
.borad-topic-count{
padding-top: 10px;
padding-left: 5px;
padding-right: 5px;
padding-right: 5px;
}
.borad-topic-count-message{
.borad-topic-count-message{
padding-left: 5px;
border-bottom:solid 1px #848282;
color: #848282;
}
.borad-description{
padding-top: 5px;
color: #848282;
padding-left: 5px;
padding-left: 5px;
}
.borad-count-digit{
font-size: 14px;
font-weight: bold;
}
}
.underline-evreycontent{
margin-bottom: 10px;
border-bottom: 1px dashed rgb(204, 204, 204);
width: 660px;
}
width: 660px;
}
.content-title-top-avtive{
padding-bottom: 15px;
padding-left: 5px;
padding-top: 5px;
}
.content-title-top-project{
}
.content-title-top-project{
padding-left: 5px;
}
@ -378,13 +378,13 @@ span.forums-avatar-right{
font-size: 12px;
color: #fff;
padding: 0px;
background: #15bccf;
border: 1px solid #15bccf;
}
background: #15bccf;
border: 1px solid #15bccf;
}
.content-text-list{
margin-bottom: 10px;
/*border-bottom: 1px dashed rgb(204, 204, 204);*/
width: 580px;
width: 580px;
}
.location-list{
@ -393,19 +393,19 @@ span.forums-avatar-right{
}
.top-content-list{
width: 430px;
width: 430px;
white-space: nowrap;
overflow: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
text-overflow: ellipsis;
}
.top-content-list-homework{
width: 650px;
width: 650px;
white-space: nowrap;
overflow: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
text-overflow: ellipsis;
}
/*added by bai*/
@ -415,7 +415,7 @@ span.forums-avatar-right{
width:700px;
height:1px;
background-color:#15bccf;
overflow:hidden
overflow:hidden
}
.top-course-content{
@ -457,9 +457,9 @@ span.forums-avatar-right{
font-size: 12px;
color: #fff;
padding: 0px;
background: #15bccf;
border: 1px solid #15bccf;
background: #15bccf;
border: 1px solid #15bccf;
}
/*end*/
@ -467,28 +467,28 @@ span.forums-avatar-right{
background-color: rgb(226, 244, 255);
width: 25%;
padding-bottom :50px;
}
.top-content-search{
float: right;
padding-right: 15px;
}
.top-content-location{
margin-left: 133px; /*modified by bai*/
}
}
.project_avatar_name {
position: relative;
font-size: 16px;
font-size: 16px;
display:block;
}
}
a.bids_user {
font-family:"Microsoft YaHei";
color:#15bccf;
@ -510,7 +510,7 @@ a.bids_user {
font-size:12px;
}
.project_top{
.project_top{
padding: 10px 20px;
}
@ -528,12 +528,12 @@ ul.list_watch{
height:auto;
border-bottom: 1px dashed rgb(204, 204, 204);
}
.new_creat{
padding-top: 0px;
float: right;
padding-right: 30px;
}
ul.tool{margin:0px; padding-left:0em;}
ul.tool li{list-style-type:none;
@ -561,7 +561,7 @@ ul.tool li{list-style-type:none;
.line_bottom{
margin-top: 1px;
dashed: #ffff00;
height: 1px;
height: 1px;
overflow: hidden;
}
/*多行隐藏*/
@ -570,15 +570,15 @@ ul.tool li{list-style-type:none;
overflow: hidden;
height:35px;
width:200px;
text-align: left;
text-align: left;
font-family: arial;
font-size:12px;
font-size:12px;
color:#7e7e7e;
}
.content_frame{
padding-bottom: 30px;
float: left;
}
.user_other_model{
@ -595,11 +595,11 @@ ul.tool li{list-style-type:none;
.font_title_tag{
font-family: "Microsoft YaHei";
font-weight:bold;
font-weight:bold;
padding-top:3px;
padding-bottom:3px;
padding-bottom:3px;
font-size:16px;
/*color:#05a8bb;*/
/*color:#05a8bb;*/
}
.font_title_left{
@ -607,9 +607,9 @@ ul.tool li{list-style-type:none;
font-weight:bold;
padding-left: 10px;
padding-top:3px;
padding-bottom:3px;
padding-bottom:3px;
font-size:16px;
/*color:#05a8bb;*/
/*color:#05a8bb;*/
}
.font_small_watch{
font-family: "Microsoft YaHei";
@ -625,7 +625,7 @@ ul.tool li{list-style-type:none;
.welcome_image{
height: 27px;
width: 30px;
}
.font_welcome{
font-family: "Microsoft YaHei";
@ -645,29 +645,29 @@ ul.tool li{list-style-type:none;
font-family: Tahoma,"Microsoft YaHei";
font-weight: bold;
font-size: 20px;
color:#e8770d;
color:#e8770d;
}
.font_welcome_Cdescription{
font-family: "Microsoft YaHei";
font-size: 16px;
color: #5c5c5c;
font-size: 16px;
color: #5c5c5c;
}
.font_welcome_tdescription{
font-family: "Microsoft YaHei";
font-size: 16px;
color: #5c5c5c;
font-size: 16px;
color: #5c5c5c;
text-align: justify;
text-justify: inter-ideograph;
text-justify: inter-ideograph;
}
.inf_user_image{
.inf_user_image{
padding-left:8px;
margin:0px;
background-color:#fff;
height: auto;
padding-bottom: 8px;
height: auto;
padding-bottom: 8px;
}
.inf_user_image img.avatar2{
background: rgb(245, 245, 245);
@ -677,15 +677,15 @@ ul.tool li{list-style-type:none;
display: block;
height:80px;
width: 80px;
}
.font_welcome_tdescription2{
font-family: Arial, Helvetica, sans-serif;
font-size: 20px;
color: #FF0000;
font-family: Arial, Helvetica, sans-serif;
font-size: 20px;
color: #FF0000;
text-align: justify;
text-justify: inter-ideograph;
text-justify: inter-ideograph;
}
@ -710,7 +710,7 @@ ul.tool li{list-style-type:none;
font-size:16px;
color:#4d4d4d;
word-wrap: break-word;
word-break: break-all;
word-break: break-all;
}
ul.user_course_sort{margin:0px; padding-left:0em;}
@ -721,7 +721,7 @@ ul.user_course_sort li{list-style-type:none;
.info-break{
word-wrap: break-word;
word-break: break-all;
word-break: break-all;
}
.info_font{
@ -731,7 +731,7 @@ ul.user_course_sort li{list-style-type:none;
font-size:16px;
color:#4d4d4d;
word-wrap: break-word;
word-break: break-all;
word-break: break-all;
}
.font_lighter{
font-family: "Microsoft YaHei";
@ -763,21 +763,21 @@ ul.user_course_sort li{list-style-type:none;
color:#919294;
font-size:13px;
padding-left: 12px;
padding-right: 8px;
padding-right: 8px;
line-height: 1.5em;
}
.created_on_project{
padding-left: 12px;
padding-bottom: 5px;
}
.font_description{
.font_description{
font-size:14px;
line-height: 1.5em;
line-height: 1.5em;
}
.font_description2{
.font_description2{
font-size:13px;
line-height: 1.5em;
line-height: 1.5em;
padding-left: 10px;
}
.font_tool{
@ -794,18 +794,18 @@ ul.user_course_sort li{list-style-type:none;
.welcome_left{
float:left;
display:inline-block;
/*margin-top: 50px;*/
/*margin-top: 50px;*/
/*padding-left: 20px;*/
max-width: 315px;
margin: 0;
padding: 0;
margin: 0;
padding: 0;
margin-left: 15px;
}
.welcome_right{
.welcome_right{
float:left;
width: 49%;
}
.inf_user_motto{
@ -813,7 +813,7 @@ ul.user_course_sort li{list-style-type:none;
margin:5px 0px 0px 0px;
padding-top:1px;
background-color:#b8c1c8;
height: auto;
height: auto;
}
/*.user_watcher{
padding-left:8px;
@ -840,7 +840,7 @@ ul.user_course_sort li{list-style-type:none;
.user_tags{
padding-top: 5px;
padding-bottom: 5px;
padding-left: 12px;
padding-left: 12px;
padding-right: 12px;
}
@ -859,14 +859,14 @@ ul.user_course_sort li{list-style-type:none;
}
.user_private_left{
padding-left:8px;
float:left;
height: 100px;
width:110px;
background-color:#a5abb4;
}
.user_private_right{
margin:0px 0px 0px 5px;
float:left;
height: 100px;
@ -879,7 +879,7 @@ ul.user_course_sort li{list-style-type:none;
width:240px;
height:1px;
background-color:#15bccf;
overflow:hidden
overflow:hidden
}
@ -890,7 +890,7 @@ ul.user_course_sort li{list-style-type:none;
width:240px;
height:1px;
background-color:#ac344f;
overflow:hidden
overflow:hidden
}
.user_underline2{
@ -899,7 +899,7 @@ ul.user_course_sort li{list-style-type:none;
width:240px;
height:1px;
background-color:#c6e9fe;
overflow:hidden
overflow:hidden
}
.user_underline3{
margin:1;
@ -929,7 +929,7 @@ ul.user_course_sort li{list-style-type:none;
margin-top:5px;
border: 0px;
background-color:#D5D5D5;
color: #D5D5D5;
color: #D5D5D5;
}
ul.user_project_sort{margin:0px; padding-left:0em;}
@ -964,10 +964,10 @@ ul.user_project_sort li{list-style-type:none;
}
a.htags{
background-color: #deebf0;
border-radius: 5px 5px 5px 5px;
padding: 0px 4px 0px 4px;
margin:0 3px;
margin:0 3px;
}
a.logical_int{
color: #ed8924;
@ -1008,7 +1008,7 @@ ul.context_projects li {
height: 30px;
width: 450px;
margin-right:auto;
margin-left:auto;
text-align: left;
padding-top:12px;
@ -1085,21 +1085,21 @@ ul.context_projects li {
margin-left:auto;
text-align: left;
font-size:24px;
font-weight:bold;
text-decoration:none;
color:#000000;
}
.firdtname_project{
font-size:12px;
font-weight:bold;
text-decoration:none;
color:#116699;
}
.lbadding h3{
color: #1c5c76;
@ -1150,7 +1150,7 @@ ul.newprojects2{ /*huang*/
ul.newprojects2 ul{
padding-left:1.6em;
}
ul.newprojects2 li{
ul.newprojects2 li{
list-style-type: none;
line-height: 10px;
}
@ -1178,11 +1178,11 @@ ul.newprojects2 li{
}
#top-menu a {color: #fff; margin-right: 8px; font-weight: bold;}
#top-menu #loggedas
{
{
float: right;
margin-right: 0.5em;
color: #fff;
margin-right: 0.5em;
color: #fff;
}
#account {float:right;}
@ -1190,14 +1190,14 @@ ul.newprojects2 li{
float: right;
padding-top: 10px;
padding-right: 347px;
}
#account-college{
float: right;
padding-top: 10px;
padding-right: 302px;
}
#header {min-height:5.3em;margin:0;background-color:#628DB6;color:#f8f8f8; padding: 4px 8px 20px 6px; position:relative;}
@ -1605,20 +1605,20 @@ input[type="button"].bid_btn {
cursor: pointer;
}
/*end */
fieldset {border: 1px solid #e4e4e4; margin:0;}
legend {color: #484848;}
hr { width: 100%; height: 1px; background: #ccc; border: 0; color:#000000;}
blockquote {
blockquote {
/*font-style: italic; */
border-left: 1px solid #e0e0e0;
border-right: 1px solid #e0e0e0;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
padding-left: 0.6em;
padding-top: 0.6em;
padding-right: 0.6em;
padding-bottom: 0.6em;
border-left: 1px solid #e0e0e0;
border-right: 1px solid #e0e0e0;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
padding-left: 0.6em;
padding-top: 0.6em;
padding-right: 0.6em;
padding-bottom: 0.6em;
margin-left: 1.4em;
margin-right: 0.4em;
border-radius: 4px;
@ -2075,7 +2075,7 @@ p.progress-info {clear: left; font-size: 80%; margin-top:-4px; color:#777;}
/***** Tabs *****/
#content .tabs {height: 2.6em; margin-bottom:1.2em; position:relative; overflow:hidden;}
#content .tabs ul {margin:0; position:absolute; bottom:0; padding-left:0.5em; font-family: 14px; width:2000px; border-bottom: 1px solid #15BCCF;}
#content .tabs ul li {
#content .tabs ul li {
float:left;
list-style-type:none;
white-space:nowrap;
@ -2084,12 +2084,12 @@ p.progress-info {clear: left; font-size: 80%; margin-top:-4px; color:#777;}
position:relative;
margin-bottom:-1px;
}
#content .tabs ul li a{
#content .tabs ul li a{
display:block;
font-size: 14px;
text-decoration: none;
line-height:1.3em;
padding:2px 6px 2px 6px;
padding:2px 6px 2px 6px;
background-color:#fff;
color:#606060;
font-weight:bold;
@ -2159,10 +2159,10 @@ button.tab-right {
line-height:1.2em;
padding-top: 6px;
padding-bottom: 2px;
text-align: center;
text-align: center;
border: 1px solid #15BCCF;
/*border-bottom: 0px solid #15BCCF;*/
color:#606060;
font-weight:bold;
border-top-left-radius:4px;
@ -2234,10 +2234,10 @@ button.tab_new-right {
padding-top: 6px;
padding-bottom: 2px;
text-align: center;
border: 1px solid #b60003;
/*border-bottom: 0px solid #15BCCF;*/
color:#606060;
font-weight:bold;
border-top-left-radius:4px;
@ -2287,7 +2287,7 @@ button.tabs_new_enterprise-right {
/*added by huang*/
#content_ .tabs {height: 3.5em; margin-bottom:1.2em; position:relative; overflow:hidden;}
#content_ .tabs ul {margin:0; position:absolute; bottom:0; padding-left:0.5em; width:2000px; border-bottom: 1px solid #15BCCF;font-size:14px;}
#content_ .tabs ul li {
#content_ .tabs ul li {
float:left;
list-style-type:none;
white-space:nowrap;
@ -2297,12 +2297,12 @@ button.tabs_new_enterprise-right {
margin-bottom:-1px;
}
#content_ .tabs ul li a{
display:block;
font-size: 13px;
text-decoration: none;
line-height:1.3em;
padding:4px 6px 4px 6px;
padding:4px 6px 4px 6px;
background-color:#fff;
color:#606060;
font-weight:bold;
@ -2327,7 +2327,7 @@ button.tabs_new_enterprise-right {
/*added by huang*/
#content_ .tabs_enterprise {height: 3.5em; margin-bottom:1.2em; position:relative; overflow:hidden;}
#content_ .tabs_enterprise ul {margin:0; position:absolute; bottom:0; padding-left:0.5em; width:2000px; border-bottom: 1px solid #bc7787;font-size:14px;}
#content_ .tabs_enterprise ul li {
#content_ .tabs_enterprise ul li {
float:left;
list-style-type:none;
white-space:nowrap;
@ -2337,12 +2337,12 @@ button.tabs_new_enterprise-right {
margin-bottom:-1px;
}
#content_ .tabs_enterprise ul li a{
display:block;
font-size: 13px;
text-decoration: none;
line-height:1.3em;
padding:4px 6px 4px 6px;
padding:4px 6px 4px 6px;
background-color:#fff;
color:#606060;
font-weight:bold;
@ -2747,7 +2747,7 @@ h2 img { vertical-align:middle; }
overflow:hidden;
}
/*added by william*/
/*added by william*/
#tag {
/*background: url(../images/issue_tag.png) no-repeat right -19px;*/
/*border-radius: 3px;*/
@ -2800,29 +2800,29 @@ div.repos_explain{
width:900px;
height:0.5px;
background-color:#aaa;
overflow:hidden
overflow:hidden
}
.underline-contests_one{
margin-bottom: 10px;
border-bottom: 1px dashed rgb(204, 204, 204);
width: 930px;
width: 930px;
}
.underline-contests_two{
margin-bottom: 10px;
border-bottom: 1px dashed rgb(204, 204, 204);
width: 660px;
width: 660px;
}
.underline-contests_three{
margin-bottom: 10px;
border-bottom: 1px dashed rgb(204, 204, 204);
width: 688px;
width: 688px;
}
.underline-contests_four{
margin-bottom: 10px;
border-bottom: 1px dashed rgb(204, 204, 204);
width: 349px;
padding-bottom:5px
padding-bottom:5px
}
.contest-star{
color: #bb0000;
@ -2830,7 +2830,7 @@ div.repos_explain{
.contes-new-box{
background: #fcfcfc;
padding-left: 85px;
padding-left: 85px;
padding-top: 20px;
padding-bottom: 20px;
}
@ -2849,6 +2849,10 @@ img.school_avatar {
height: 100px;
max-width: none;
}
.dynamic_new_image {
margin-left: 55px;
margin-bottom: 10px;
}
.admin_message_warn{font-size: 12px;color: red;}
a.btn_message_free{ background:#15BCCF; display:block; text-align:center; color:#fff; padding:3px 0; width:60px; margin-bottom:10px;margin-left: 58px;}