Merge branch 'szzh' of http://repository.trustie.net/xianbo/trustie2 into szzh
This commit is contained in:
commit
f51873d98b
|
@ -57,7 +57,7 @@ class OpenSourceProjectsController < ApplicationController
|
||||||
|
|
||||||
@memo = RelativeMemo.new(:open_source_project => @open_source_project)
|
@memo = RelativeMemo.new(:open_source_project => @open_source_project)
|
||||||
@topic_count = @open_source_project.topics.count
|
@topic_count = @open_source_project.topics.count
|
||||||
@topic_pages = Paginator.new @topic_count, per_page_option, params['page']
|
@topic_pages = Paginator.new @topic_count, 10, params['page']
|
||||||
@memos = @open_source_project.topics.
|
@memos = @open_source_project.topics.
|
||||||
reorder("#{RelativeMemo.table_name}.sticky DESC").
|
reorder("#{RelativeMemo.table_name}.sticky DESC").
|
||||||
includes(:last_reply).
|
includes(:last_reply).
|
||||||
|
@ -74,10 +74,39 @@ class OpenSourceProjectsController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def search
|
|
||||||
|
def search
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# added by yiang 暴力添加,请绕道
|
||||||
|
def showmemo
|
||||||
|
@open_source_project = OpenSourceProject.find(params[:id])
|
||||||
|
|
||||||
|
sort_init 'updated_at', 'desc'
|
||||||
|
sort_update 'created_at' => "#{RelativeMemo.table_name}.created_at",
|
||||||
|
'replies' => "#{RelativeMemo.table_name}.replies_count",
|
||||||
|
'updated_at' => "COALESCE (last_replies_relative_memos.created_at, #{RelativeMemo.table_name}.created_at)"
|
||||||
|
|
||||||
|
@memo = RelativeMemo.new(:open_source_project => @open_source_project)
|
||||||
|
@topic_count = @open_source_project.topics.count
|
||||||
|
@topic_pages = Paginator.new @topic_count, per_page_option, params['page']
|
||||||
|
@memos = @open_source_project.topics.
|
||||||
|
reorder("#{RelativeMemo.table_name}.sticky DESC").
|
||||||
|
includes(:last_reply).
|
||||||
|
limit(@topic_pages.per_page).
|
||||||
|
offset(@topic_pages.offset).
|
||||||
|
order(sort_clause).
|
||||||
|
all
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
format.html {
|
||||||
|
render :layout => "base_opensource_p"
|
||||||
|
}
|
||||||
|
format.json { render json: @open_source_project }
|
||||||
|
end
|
||||||
|
end
|
||||||
# GET /open_source_projects/new
|
# GET /open_source_projects/new
|
||||||
# GET /open_source_projects/new.json
|
# GET /open_source_projects/new.json
|
||||||
def new
|
def new
|
||||||
|
|
|
@ -37,7 +37,7 @@ class RelativeMemosController < ApplicationController
|
||||||
def show
|
def show
|
||||||
pre_count = REPLIES_PER_PAGE
|
pre_count = REPLIES_PER_PAGE
|
||||||
|
|
||||||
@memo = @memo.root # 取出楼主,防止输入帖子id让回复作为主贴显示
|
# @memo = @memo.root # 取出楼主,防止输入帖子id让回复作为主贴显示
|
||||||
@memo.update_column(:viewed_count_local, (@memo.viewed_count_local.to_i + 1))
|
@memo.update_column(:viewed_count_local, (@memo.viewed_count_local.to_i + 1))
|
||||||
|
|
||||||
page = params[:page]
|
page = params[:page]
|
||||||
|
@ -92,13 +92,14 @@ class RelativeMemosController < ApplicationController
|
||||||
def create
|
def create
|
||||||
@memo = RelativeMemo.new(params[:relative_memo])
|
@memo = RelativeMemo.new(params[:relative_memo])
|
||||||
# @memo.url = "http://forge.trustie.net/open_source_projects"
|
# @memo.url = "http://forge.trustie.net/open_source_projects"
|
||||||
@memo.osp_id = params[:open_source_project_id]
|
# @memo.osp_id = params[:open_source_project_id]
|
||||||
@memo.author_id = User.current.id
|
@memo.author_id = User.current.id
|
||||||
|
|
||||||
@memo.save_attachments(params[:attachments] || (params[:relative_memo] && params[:relative_memo][:uploads]))
|
@memo.save_attachments(params[:attachments] || (params[:relative_memo] && params[:relative_memo][:uploads]))
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @memo.save
|
if @memo.save
|
||||||
|
RelativeMemoToOpenSourceProject.create(:osp_id => params[:open_source_project_id], :relative_memo_id => @memo.id)
|
||||||
format.html { redirect_to back_memo_url, notice: "#{l :label_memo_create_succ}" }
|
format.html { redirect_to back_memo_url, notice: "#{l :label_memo_create_succ}" }
|
||||||
format.json { render json: @memo, status: :created, location: @memo }
|
format.json { render json: @memo, status: :created, location: @memo }
|
||||||
else
|
else
|
||||||
|
@ -142,7 +143,7 @@ class RelativeMemosController < ApplicationController
|
||||||
|
|
||||||
def find_memo
|
def find_memo
|
||||||
return unless find_osp
|
return unless find_osp
|
||||||
@memo = @open_source_project.relative_memos.find(params[:id])
|
@memo = @open_source_project.topics.find(RelativeMemo.find(params[:id]).root.id)
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
render_404
|
render_404
|
||||||
nil
|
nil
|
||||||
|
|
|
@ -473,6 +473,14 @@ module ApplicationHelper
|
||||||
l(:label_added_time, :age => time_tag(created)).html_safe
|
l(:label_added_time, :age => time_tag(created)).html_safe
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def user_url_and_time(user_name, user_url, created)
|
||||||
|
unless user_name.nil?
|
||||||
|
l(:label_added_time_by, :author => link_to(user_name, user_url), :age => time_tag(created)).html_safe
|
||||||
|
else
|
||||||
|
l(:label_added_time, :age => time_tag(created)).html_safe
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
#huang
|
#huang
|
||||||
def betweentime(enddate)
|
def betweentime(enddate)
|
||||||
ss=(DateTime.parse("#{enddate.to_date}")-DateTime.parse("#{DateTime.now.to_date}")).to_i
|
ss=(DateTime.parse("#{enddate.to_date}")-DateTime.parse("#{DateTime.now.to_date}")).to_i
|
||||||
|
@ -1320,6 +1328,15 @@ module ApplicationHelper
|
||||||
tags
|
tags
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def hubspot_head
|
||||||
|
tags = javascript_include_tag('hubspot/messenger.min', 'hubspot/messenger-theme-future')
|
||||||
|
tags << stylesheet_link_tag('hubspot/messenger', 'hubspot/messenger-theme-future')
|
||||||
|
unless User.current.pref.warn_on_leaving_unsaved == '0'
|
||||||
|
tags << "\n".html_safe + javascript_tag("$(window).load(function(){ warnLeavingUnsaved('#{escape_javascript l(:text_warn_on_leaving_unsaved)}'); });")
|
||||||
|
end
|
||||||
|
tags
|
||||||
|
end
|
||||||
|
|
||||||
def favicon
|
def favicon
|
||||||
"<link rel='shortcut icon' href='#{image_path('/favicon.ico')}' />".html_safe
|
"<link rel='shortcut icon' href='#{image_path('/favicon.ico')}' />".html_safe
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,8 +3,10 @@ class OpenSourceProject < ActiveRecord::Base
|
||||||
|
|
||||||
include Redmine::SafeAttributes
|
include Redmine::SafeAttributes
|
||||||
has_many :applies, :class_name => "ApplyProjectMaster", :as => :apply, :dependent => :delete_all
|
has_many :applies, :class_name => "ApplyProjectMaster", :as => :apply, :dependent => :delete_all
|
||||||
has_many :topics, :class_name => 'RelativeMemo', :foreign_key => 'osp_id', :conditions => "#{RelativeMemo.table_name}.parent_id IS NULL", :order => "#{RelativeMemo.table_name}.created_at DESC", :dependent => :destroy
|
has_many :relation_topics, :class_name => 'RelativeMemoToOpenSourceProject', :foreign_key => 'osp_id', :order => "#{RelativeMemo.table_name}.created_at DESC", :dependent => :destroy
|
||||||
has_many :relative_memos, :class_name => 'RelativeMemo', :foreign_key => 'osp_id', :dependent => :destroy
|
# has_many :topics, :class_name => 'RelativeMemo', :foreign_key => 'osp_id', :conditions => "#{RelativeMemo.table_name}.parent_id IS NULL", :order => "#{RelativeMemo.table_name}.created_at DESC", :dependent => :destroy
|
||||||
|
has_many :topics, :through => :relation_topics, :class_name => 'RelativeMemo'
|
||||||
|
# has_many :relative_memos, :class_name => 'RelativeMemo', :foreign_key => 'osp_id', :dependent => :destroy
|
||||||
has_many :tags, :through => :project_tags, :class_name => 'Tag'
|
has_many :tags, :through => :project_tags, :class_name => 'Tag'
|
||||||
has_many :project_tags, :class_name => 'ProjectTags'
|
has_many :project_tags, :class_name => 'ProjectTags'
|
||||||
has_many :masters, :class_name => 'ApplyProjectMaster', :as => :apply, :dependent => :delete_all, :conditions => "#{ApplyProjectMaster.table_name}.status = 2"
|
has_many :masters, :class_name => 'ApplyProjectMaster', :as => :apply, :dependent => :delete_all, :conditions => "#{ApplyProjectMaster.table_name}.status = 2"
|
||||||
|
@ -126,9 +128,14 @@ class OpenSourceProject < ActiveRecord::Base
|
||||||
|
|
||||||
def self.reset_counters!(id)
|
def self.reset_counters!(id)
|
||||||
osp_id = id.to_i
|
osp_id = id.to_i
|
||||||
update_all("topic_count = (SELECT COUNT(*) FROM #{RelativeMemo.table_name} WHERE osp_id=#{osp_id} AND parent_id IS NULL)," +
|
# update_all("topic_count = (SELECT COUNT(*) FROM #{RelativeMemo.table_name} WHERE osp_id=#{osp_id} AND parent_id IS NULL)," +
|
||||||
" memo_count = (SELECT COUNT(*) FROM #{RelativeMemo.table_name} WHERE osp_id=#{osp_id} AND parent_id IS NOT NULL)," +
|
# " memo_count = (SELECT COUNT(*) FROM #{RelativeMemo.table_name} WHERE osp_id=#{osp_id} AND parent_id IS NOT NULL)," +
|
||||||
" last_memo_id = (SELECT MAX(id) FROM #{RelativeMemo.table_name} WHERE osp_id=#{osp_id})",
|
# " last_memo_id = (SELECT MAX(id) FROM #{RelativeMemo.table_name} WHERE osp_id=#{osp_id})",
|
||||||
|
# ["id = ?", osp_id])
|
||||||
|
update_all("topic_count = (SELECT COUNT(*) FROM #{RelativeMemoToOpenSourceProject.table_name} WHERE osp_id=#{osp_id})",
|
||||||
|
# +
|
||||||
|
# " memo_count = (SELECT COUNT(*) FROM #{RelativeMemo.table_name} WHERE osp_id=#{osp_id} AND parent_id IS NOT NULL)," +
|
||||||
|
# " last_memo_id = (SELECT MAX(id) FROM #{RelativeMemo.table_name} WHERE osp_id=#{osp_id})",
|
||||||
["id = ?", osp_id])
|
["id = ?", osp_id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,12 +7,13 @@ class RelativeMemo < ActiveRecord::Base
|
||||||
has_many :tags, :through => :project_tags, :class_name => 'Tag'
|
has_many :tags, :through => :project_tags, :class_name => 'Tag'
|
||||||
has_many :project_tags, :class_name => 'ProjectTags'
|
has_many :project_tags, :class_name => 'ProjectTags'
|
||||||
|
|
||||||
|
has_many :relation_topics, :class_name => 'RelativeMemoToOpenSourceProject'
|
||||||
|
|
||||||
has_many :no_uses, :as => :no_use, :dependent => :delete_all
|
has_many :no_uses, :as => :no_use, :dependent => :delete_all
|
||||||
|
|
||||||
acts_as_taggable
|
acts_as_taggable
|
||||||
acts_as_attachable
|
|
||||||
|
|
||||||
validates_presence_of :osp_id, :subject
|
validates_presence_of :subject
|
||||||
#validates :content, presence: true
|
#validates :content, presence: true
|
||||||
# validates_length_of :subject, maximum: 50
|
# validates_length_of :subject, maximum: 50
|
||||||
#validates_length_of :content, maximum: 3072
|
#validates_length_of :content, maximum: 3072
|
||||||
|
@ -81,6 +82,11 @@ class RelativeMemo < ActiveRecord::Base
|
||||||
:conditions => ["#{NoUse.table_name}.user_id = ?", user_id] }
|
:conditions => ["#{NoUse.table_name}.user_id = ?", user_id] }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 获取帖子的回复
|
||||||
|
def replies
|
||||||
|
memos = RelativeMemo.where("parent_id = ?", id)
|
||||||
|
end
|
||||||
|
|
||||||
def no_use_for?(user)
|
def no_use_for?(user)
|
||||||
self.no_uses.each do |no_use|
|
self.no_uses.each do |no_use|
|
||||||
if no_use.user_id == user.id
|
if no_use.user_id == user.id
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
class RelativeMemoToOpenSourceProject < ActiveRecord::Base
|
||||||
|
# attr_accessible :title, :body
|
||||||
|
belongs_to :open_source_project, :foreign_key => "osp_id"
|
||||||
|
belongs_to :topic, :class_name => 'RelativeMemo', :foreign_key => 'relative_memo_id'
|
||||||
|
|
||||||
|
has_many :no_uses, :as => :no_use, :dependent => :delete_all
|
||||||
|
|
||||||
|
validates_presence_of :osp_id, :relative_memo_id
|
||||||
|
|
||||||
|
scope :no_use_for, lambda { |user_id|
|
||||||
|
{:include => :no_uses,
|
||||||
|
:conditions => ["#{NoUse.table_name}.user_id = ?", user_id] }
|
||||||
|
}
|
||||||
|
end
|
|
@ -1,55 +1,17 @@
|
||||||
<!-- fq -->
|
|
||||||
|
|
||||||
<% if @bid.homework_type == Bid::HomeworkFile %>
|
<% if @bid.homework_type == Bid::HomeworkFile %>
|
||||||
<%= render :partial => 'homework' %>
|
<%= render :partial => 'homework' %>
|
||||||
|
|
||||||
<% else %>
|
<% else %>
|
||||||
<style>
|
|
||||||
input[type="submit"].bid_btn {
|
|
||||||
vertical-align: middle;
|
|
||||||
width: 60px;
|
|
||||||
height: 30px;
|
|
||||||
line-height: 18px;
|
|
||||||
font-size: 14px;
|
|
||||||
color: rgb(0, 0, 0);
|
|
||||||
background: url("/images/button/bg103.jpg") no-repeat scroll left top transparent;
|
|
||||||
padding: 0px 0px 4px 0px;
|
|
||||||
border-radius: 2px;
|
|
||||||
border: 1px solid rgb(148, 148, 148);
|
|
||||||
box-shadow: none;
|
|
||||||
text-shadow: none;
|
|
||||||
margin-top: -10px;
|
|
||||||
/*margin-right: -4px;*/
|
|
||||||
}
|
|
||||||
input[type="button"].bid_btn {
|
|
||||||
width: 60px;
|
|
||||||
height: 30px;
|
|
||||||
line-height: 18px;
|
|
||||||
font-size: 14px;
|
|
||||||
color: rgb(0, 0, 0);
|
|
||||||
background: url("/images/button/bg103.jpg") no-repeat scroll left top transparent;
|
|
||||||
padding: 0px 0px 4px 0px;
|
|
||||||
border-radius: 2px;
|
|
||||||
border: 1px solid rgb(148, 148, 148);
|
|
||||||
box-shadow: none;
|
|
||||||
text-shadow: none;
|
|
||||||
margin-top: -10px;
|
|
||||||
margin-right: -2px;
|
|
||||||
}
|
|
||||||
textarea:focus {
|
|
||||||
border: #d5dee9 1px solid;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script type="text/javascript" language="javascript">
|
<script type="text/javascript" language="javascript">
|
||||||
function clearInfo(id,content) {
|
function clearInfo(id, content) {
|
||||||
var text = $('#' + id);
|
var text = $('#' + id);
|
||||||
if (text.val() == content) {
|
if (text.val() == content) {
|
||||||
$('#' + id).val('');
|
$('#' + id).val('');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showInfo(id,content) {
|
function showInfo(id, content) {
|
||||||
var text = $('#' + id);
|
var text = $('#' + id);
|
||||||
if (text.val() == '') {
|
if (text.val() == '') {
|
||||||
$('#' + id).val(content);
|
$('#' + id).val(content);
|
||||||
|
@ -59,12 +21,12 @@
|
||||||
function cancel() {
|
function cancel() {
|
||||||
$("#put-bid-form").hide();
|
$("#put-bid-form").hide();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<% if User.current.logged? %>
|
<% if User.current.logged? %>
|
||||||
<!--我要竞标弹出框-->
|
<!--我要竞标弹出框-->
|
||||||
<div id = 'flash' style="float:left; width: 100%; display: none" ></div>
|
<div id='flash' style="float:left; width: 100%; display: none"></div>
|
||||||
<div id="put-bid-form" style="display: none">
|
<div id="put-bid-form" style="display: none">
|
||||||
<%= form_for "bid_for_save", :remote=>true, :url => {:controller => 'bids', :action => 'add'},
|
<%= form_for "bid_for_save", :remote => true, :url => {:controller => 'bids', :action => 'add'},
|
||||||
:update => "bidding_project_list",
|
:update => "bidding_project_list",
|
||||||
:complete => '$("#put-bid-form").hide();' do |f| %>
|
:complete => '$("#put-bid-form").hide();' do |f| %>
|
||||||
<table id="bidding_table" border="0" width="100%" style="margin-left: 40px;">
|
<table id="bidding_table" border="0" width="100%" style="margin-left: 40px;">
|
||||||
|
@ -73,8 +35,9 @@
|
||||||
<div id="prompt_create_pro"><!-- nyan -->
|
<div id="prompt_create_pro"><!-- nyan -->
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
<div class="font_lighter" style="font-size: 13px;">
|
<div class="font_lighter" style="font-size: 13px;">
|
||||||
<%= link_to '创建项目', new_project_path(course: 0, project_type: 0), :target=>'_blank'%>
|
<%= link_to '创建项目', new_project_path(course: 0, project_type: 0), :target => '_blank' %>
|
||||||
</div>
|
</div>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
|
@ -82,18 +45,18 @@
|
||||||
</tr>
|
</tr>
|
||||||
<% if @bid.reward_type == 3 %>
|
<% if @bid.reward_type == 3 %>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%= f.text_area :bid_message, :id => "bid_message", :required => true, :rows => 4, :cols => 40, :placeholder => l(:label_bid_reason_homework), :style => "resize: none;", :class => 'noline'%></td>
|
<td><%= f.text_area :bid_message, :id => "bid_message", :required => true, :rows => 4, :cols => 40, :placeholder => l(:label_bid_reason_homework), :style => "resize: none;", :class => 'noline' %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<% else %>
|
<% else %>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%= f.text_area :bid_message, :id => "bid_message", :required => true, :rows => 4, :cols => 40, :placeholder => l(:label_bid_reason), :style => "resize: none;", :class => 'noline'%></td>
|
<td><%= f.text_area :bid_message, :id => "bid_message", :required => true, :rows => 4, :cols => 40, :placeholder => l(:label_bid_reason), :style => "resize: none;", :class => 'noline' %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="right">
|
<td align="right">
|
||||||
<%= submit_tag l(:button_add), :name => nil , :class => "enterprise",
|
<%= submit_tag l(:button_add), :name => nil, :class => "enterprise",
|
||||||
:onmouseout => "this.style.backgroundPosition = 'left top'",
|
:onmouseout => "this.style.backgroundPosition = 'left top'",
|
||||||
:onmouseover => "this.style.backgroundPosition = 'left -30px'"%>
|
:onmouseover => "this.style.backgroundPosition = 'left -30px'" %>
|
||||||
<%= submit_tag l(:button_cancel), :name => nil, :onclick => "cancel();",
|
<%= submit_tag l(:button_cancel), :name => nil, :onclick => "cancel();",
|
||||||
:type => 'button', :class => "enterprise", :onmouseout => "this.style.backgroundPosition = 'left top'",
|
:type => 'button', :class => "enterprise", :onmouseout => "this.style.backgroundPosition = 'left top'",
|
||||||
:onmouseover => "this.style.backgroundPosition = 'left -30px'" %>
|
:onmouseover => "this.style.backgroundPosition = 'left -30px'" %>
|
||||||
|
@ -104,7 +67,7 @@
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div id='bidding_project_list'>
|
<div id='bidding_project_list'>
|
||||||
<%= render :partial => 'project_list', :locals => {:bidding_project => @bidding_project,:bid => @bid} %>
|
<%= render :partial => 'project_list', :locals => {:bidding_project => @bidding_project, :bid => @bid} %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
<!--added by yiang -->
|
||||||
|
<!--display the board-->
|
||||||
|
|
||||||
|
<div class="borad-topic-count" style="margin-top:10px">
|
||||||
|
<span>共有 <%= link_to memos.count %> 个贴子 </span
|
||||||
|
</div>
|
||||||
|
<div style="padding-top: 10px">
|
||||||
|
<% if memos.any? %>
|
||||||
|
<% memos.each do |topic| %>
|
||||||
|
<table class="content-text-list">
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" valign="top" width="50" ><%= link_to image_tag(url_to_avatar(topic.author), :class => "avatar"), user_path(topic.author) if topic.author%>
|
||||||
|
<%= image_tag('../images/avatars/User/0', :class => "avatar") unless topic.author%> </td>
|
||||||
|
<td>
|
||||||
|
<table width="630px" border="0">
|
||||||
|
<tr>
|
||||||
|
<td valign="top" width="500px" class="<%= topic.sticky ? 'sticky' : '' %> <%= topic.locked? ? 'locked' : '' %>"><%= link_to h(topic.subject), open_source_project_relative_memo_path(open_source_project, topic) %></td>
|
||||||
|
<td align="right" rowspan="3">
|
||||||
|
<table class="borad-count">
|
||||||
|
<tr>
|
||||||
|
<td align="center" class="borad-count-digit"><%= link_to (topic.replies_count), open_source_project_relative_memo_path(open_source_project, topic) %></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center">回帖</td>
|
||||||
|
</tr>
|
||||||
|
</table></td>
|
||||||
|
|
||||||
|
<td align="right" rowspan="3">
|
||||||
|
<table class="borad-count">
|
||||||
|
<tr>
|
||||||
|
<td align="center" class="borad-count-digit"><%= link_to (topic.viewed_count_crawl+topic.viewed_count_local), open_source_project_relative_memo_path(open_source_project, topic) %></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center">关注</td>
|
||||||
|
</tr>
|
||||||
|
</table></td>
|
||||||
|
|
||||||
|
<td align="right" rowspan="3">
|
||||||
|
<table class="borad-count">
|
||||||
|
<tr>
|
||||||
|
<td align="center" class="borad-count-digit"><%= link_to (topic.viewed_count_crawl+topic.viewed_count_local), open_source_project_relative_memo_path(open_source_project, topic) %></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center">浏览</td>
|
||||||
|
</tr>
|
||||||
|
</table></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" ><span class="font_description"> </span></td>
|
||||||
|
</tr>
|
||||||
|
<!-- <tr>
|
||||||
|
<td align="left" colspan="2" ><span class="font_lighter"><%#= authoring topic.created_at, topic.author %>
|
||||||
|
<br />
|
||||||
|
</span></td>
|
||||||
|
</tr> -->
|
||||||
|
<tr>
|
||||||
|
<td align="left" colspan="2" >帖子来源:<span class="font_lighter" style="color: #068d9c"><%=link_to 'OSChina', topic.url %>
|
||||||
|
</span></td>
|
||||||
|
<td align="left"><%= no_use_link(topic, User.current) %> </td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
</table></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
<div class="pagination">
|
||||||
|
<%= pagination_links_full @topic_pages, @topic_count %>
|
||||||
|
</div>
|
||||||
|
<% else %>
|
||||||
|
<p class="nodata">
|
||||||
|
<%= l(:label_no_data) %>
|
||||||
|
</p>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
|
@ -1,7 +1,360 @@
|
||||||
<!-- added by fq -->
|
<!-- added by fq -->
|
||||||
|
<!--modified by yiang -->
|
||||||
<!--display the board-->
|
<!--display the board-->
|
||||||
<div class="borad-topic-count">
|
|
||||||
共有 <%= link_to memos.count %> 个贴子
|
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<%= javascript_include_tag "ichart.1.2.min" %>
|
||||||
|
<%= stylesheet_link_tag "sec-analysis.css" %>
|
||||||
|
<%= stylesheet_link_tag "buglist-ichart.css" %>
|
||||||
|
<%= stylesheet_link_tag "buglist.css" %>
|
||||||
|
|
||||||
|
<div class="mask">
|
||||||
|
<div class="header2"></div>
|
||||||
|
<div class="colleft">
|
||||||
|
<div class="col1" style="margin-right:0px">
|
||||||
|
<h1></h1>
|
||||||
|
<div id='canvasDiv' style="margin-left:35px"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col2" style="margin-left:0px">
|
||||||
|
<div style="margin-left:0px" > <span> <h1 style="fontsize:19px;color:orange;font-weight:900">项目安全态势 </h1></span><span style="margin-top: -30px; margin-right:70px;float: right; display: block;"><%= link_to "更多 >>", :controller => "open_source_projects",:action => "showmemo", :id => @open_source_project.id %></span></div>
|
||||||
|
<div class="fixed"></div>
|
||||||
|
<div class="li_list" style="margin-top:10px;margin-left:10px">
|
||||||
|
<ul style="list-style-type: square;">
|
||||||
|
<!-- <li><span class="li_time">>[DDoS漏洞]</span><a href="/vuldb/ssvid-62261" title="Cobbler 2.4.x - 2.6.x 本地文件包含">Cobbler 2.4.x - 2.6.x 本地文件包含</a></li> -->
|
||||||
|
|
||||||
|
<li><span class="li_time">>[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62260" title="Ruby OpenSSL CA私钥伪造漏洞">Ruby OpenSSL CA私钥伪造漏洞</a></li>
|
||||||
|
|
||||||
|
<li><span class="li_time">>[远程溢出漏洞]</span><a href="/vuldb/ssvid-62259" title="Adobe Flash Player 整数堆栈下溢远程命令执行">Adobe Flash Player 远程命令执行</a></li>
|
||||||
|
|
||||||
|
<!-- <li><span class="li_time">14-05-07</span><a href="/vuldb/ssvid-62258" title="PHPDISK phpdisk_del_process.php SQL注入漏洞">PHPDISK phpdisk_del_process.php SQL注入漏洞</a></li> -->
|
||||||
|
|
||||||
|
<!-- <li><span class="li_time">[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62257" title="BEESCMS 3.4 order_save.php SQL注入漏洞">BEESCMS 3.4 order_save.php SQL注入漏洞</a></li> -->
|
||||||
|
|
||||||
|
<!-- <li ><span class="li_time">>[SQL注入漏洞]</span><a href="/vuldb/ssvid-62256" title="Apache/NGINX 下 PHP-FPM 或者 PHP-CGI 拒绝服务漏洞">Apache/NGINX 下 PHP-FPM </a></li> -->
|
||||||
|
|
||||||
|
<li><span class="li_time">>[SQL注入漏洞]</span><a href="/vuldb/ssvid-62250" title="AlienVault OSSIM SQL注入以及远程代码执行">AlienVault OSSIM SQL注入</a></li>
|
||||||
|
|
||||||
|
<li><span class="li_time">>[DDoS漏洞]</span><a href="/vuldb/ssvid-62248" title="Eucalyptus Web Services拒绝服务漏洞">Eucalyptus Web Services</a></li>
|
||||||
|
|
||||||
|
<li ><span class="li_time">>[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62245" title="Watchguard Fireware XTM OpenSSL TLS心跳信息泄漏漏洞"> Fireware XTM OpenSSL TLS</a></li>
|
||||||
|
|
||||||
|
<li ><span class="li_time">>[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62244" title="SAP Sybase SQL Anywhere OpenSSL TLS泄漏漏洞">Sybase SQL Anywhere OpenSSL TLS</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="clear:both; margin:0 0 10 0"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
var flow=[];
|
||||||
|
for(var i=0;i<35;i++){
|
||||||
|
flow.push(Math.floor(Math.random()*(30+((i%12)*5)))+10);
|
||||||
|
// t.push(Math.floor(Math.random()*(30+((i%12)*5)))+10);
|
||||||
|
}
|
||||||
|
|
||||||
|
var data = [
|
||||||
|
{
|
||||||
|
name : 'commit',
|
||||||
|
value:flow,
|
||||||
|
color:'#0d8ecf',
|
||||||
|
line_width:2
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
var labels = ["","2010","2011","2012","2013","2014"];
|
||||||
|
|
||||||
|
var line = new iChart.LineBasic2D({
|
||||||
|
render : 'canvasDiv',
|
||||||
|
data: data,
|
||||||
|
align:'center',
|
||||||
|
// title : '安全态势分析 ',
|
||||||
|
title : {
|
||||||
|
text:'安全态势分析',
|
||||||
|
color:'#698389',
|
||||||
|
fontsize : 14,
|
||||||
|
textAlign:'left',
|
||||||
|
padding:'0 40',
|
||||||
|
font:'微软雅黑',
|
||||||
|
border:{
|
||||||
|
enable:true,
|
||||||
|
width:[0,0,2,0],
|
||||||
|
color:'#698389'
|
||||||
|
},
|
||||||
|
height:30
|
||||||
|
},
|
||||||
|
subtitle : '',
|
||||||
|
footnote : '',
|
||||||
|
width : 300, // 面板大小
|
||||||
|
height : 200,
|
||||||
|
shadow:true,
|
||||||
|
//shadow_color : '#20262f',
|
||||||
|
shadow_blur : 1,
|
||||||
|
shadow_offsetx : 0,
|
||||||
|
shadow_offsety : 2,
|
||||||
|
//background_color:null //'#383e46'设置透明背景
|
||||||
|
|
||||||
|
tip:{
|
||||||
|
enable:true,
|
||||||
|
shadow:true,
|
||||||
|
move_duration:400,
|
||||||
|
border:{
|
||||||
|
enable:true,
|
||||||
|
radius : 5,
|
||||||
|
width:2,
|
||||||
|
color:'#3f8695'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
// legend : {
|
||||||
|
// enable : true,
|
||||||
|
// row:1,//设置在一行上显示,与column配合使用
|
||||||
|
// column : 'max',
|
||||||
|
// valign:'top',
|
||||||
|
// sign:'bar',
|
||||||
|
// background_color:null,//设置透明背景
|
||||||
|
// offsetx:-80,//设置x轴偏移,满足位置需要
|
||||||
|
// border : true
|
||||||
|
// },
|
||||||
|
crosshair:{
|
||||||
|
enable:true, //十字交叉线
|
||||||
|
line_color:'#62bce9'
|
||||||
|
},
|
||||||
|
sub_option : {
|
||||||
|
label:false, //是否显示数值
|
||||||
|
// hollow_inside:false,
|
||||||
|
smooth : true,//平滑曲线
|
||||||
|
point_size:2, // 焦点大小
|
||||||
|
// point_hollow : true,
|
||||||
|
border : {
|
||||||
|
width : 2,
|
||||||
|
radius : '5 5 0 0',//上圆角设置
|
||||||
|
color : '#ffffff'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
coordinate:{
|
||||||
|
width:225, // 图表大小
|
||||||
|
//valid_width:330,
|
||||||
|
height:55,
|
||||||
|
axis:{
|
||||||
|
// color:'#9f9f9f',
|
||||||
|
color:'#dcdcdc',
|
||||||
|
width:[0,0,2,2]
|
||||||
|
},
|
||||||
|
grids:{
|
||||||
|
vertical:{
|
||||||
|
way:'share_alike',
|
||||||
|
value:1
|
||||||
|
// 改垂直线
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scale:[{
|
||||||
|
position:'left',
|
||||||
|
start_scale:0,
|
||||||
|
scale_space:50,
|
||||||
|
end_scale:70,
|
||||||
|
scale_color:'#9f9f9f',
|
||||||
|
// label : {color:'#ffffff',fontsize:11},
|
||||||
|
|
||||||
|
},{
|
||||||
|
position:'bottom',
|
||||||
|
labels:labels
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//开始画图
|
||||||
|
|
||||||
|
/**
|
||||||
|
*自定义组件,画平均线。
|
||||||
|
*/
|
||||||
|
// line.plugin(new iChart.Custom({
|
||||||
|
// drawFn:function(){
|
||||||
|
// /**
|
||||||
|
// *计算平均值的高度(坐标Y值)
|
||||||
|
// *计算高度还不会! 会划线了!
|
||||||
|
// */
|
||||||
|
// // var avg = line.total/5,
|
||||||
|
// // coo = line.getCoordinate(),
|
||||||
|
// // x = coo.get('originx'),
|
||||||
|
// // W = coo.width,
|
||||||
|
// // S = coo.getScale('left'),
|
||||||
|
// // H = coo.height,
|
||||||
|
// // h = (avg - S.start) * H / S.distance,
|
||||||
|
// // y = line.y + H - h;
|
||||||
|
// line.target.line(28,97,400,97,2,'#b32c0d')
|
||||||
|
// .textAlign('start')
|
||||||
|
// .textBaseline('middle')
|
||||||
|
// .textFont('600 12px Verdana');
|
||||||
|
// }
|
||||||
|
// }));
|
||||||
|
line.draw();
|
||||||
|
});
|
||||||
|
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--我是分割线1===================================================================================================!-->
|
||||||
|
|
||||||
|
<div class="mask" style="margin-top:30px">
|
||||||
|
<div class="header2"></div>
|
||||||
|
<div class="colleft">
|
||||||
|
<div class="col1" style="margin-right:0px">
|
||||||
|
<h1></h1>
|
||||||
|
<div id='canvasDiv2' style="margin-left:35px"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col2" style="margin-left:0px">
|
||||||
|
<div style="margin-left:0px" > <span> <h1 style="fontsize:19px;color:#15bccf;font-weight:900">技术创新趋势 </h1></span><span style="margin-top: -30px; margin-right:70px;float: right; display: block;"><%= link_to "更多 >>", :controller => "open_source_projects",:action => "showmemo", :id => @open_source_project.id %>
|
||||||
|
</span></div>
|
||||||
|
<div class="fixed"></div>
|
||||||
|
<div class="li_list" style="margin-top:10px;margin-left:10px">
|
||||||
|
<ul style="list-style-type: square;">
|
||||||
|
<!-- <li><span class="li_time">>[DDoS漏洞]</span><a href="/vuldb/ssvid-62261" title="Cobbler 2.4.x - 2.6.x 本地文件包含">Cobbler 2.4.x - 2.6.x 本地文件包含</a></li> -->
|
||||||
|
|
||||||
|
<li><span class="li_time">>[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62260" title="Ruby OpenSSL CA私钥伪造漏洞">Ruby OpenSSL CA私钥伪造漏洞</a></li>
|
||||||
|
|
||||||
|
<li><span class="li_time">>[远程溢出漏洞]</span><a href="/vuldb/ssvid-62259" title="Adobe Flash Player 整数堆栈下溢远程命令执行">Adobe Flash Player 远程命令执行</a></li>
|
||||||
|
|
||||||
|
<!-- <li><span class="li_time">14-05-07</span><a href="/vuldb/ssvid-62258" title="PHPDISK phpdisk_del_process.php SQL注入漏洞">PHPDISK phpdisk_del_process.php SQL注入漏洞</a></li> -->
|
||||||
|
|
||||||
|
<!-- <li><span class="li_time">[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62257" title="BEESCMS 3.4 order_save.php SQL注入漏洞">BEESCMS 3.4 order_save.php SQL注入漏洞</a></li> -->
|
||||||
|
|
||||||
|
<!-- <li ><span class="li_time">>[SQL注入漏洞]</span><a href="/vuldb/ssvid-62256" title="Apache/NGINX 下 PHP-FPM 或者 PHP-CGI 拒绝服务漏洞">Apache/NGINX 下 PHP-FPM </a></li> -->
|
||||||
|
|
||||||
|
<li><span class="li_time">>[SQL注入漏洞]</span><a href="/vuldb/ssvid-62250" title="AlienVault OSSIM SQL注入以及远程代码执行">AlienVault OSSIM SQL注入</a></li>
|
||||||
|
|
||||||
|
<li><span class="li_time">>[DDoS漏洞]</span><a href="/vuldb/ssvid-62248" title="Eucalyptus Web Services拒绝服务漏洞">Eucalyptus Web Services</a></li>
|
||||||
|
|
||||||
|
<li ><span class="li_time">>[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62245" title="Watchguard Fireware XTM OpenSSL TLS心跳信息泄漏漏洞"> Fireware XTM OpenSSL TLS</a></li>
|
||||||
|
|
||||||
|
<li ><span class="li_time">>[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62244" title="SAP Sybase SQL Anywhere OpenSSL TLS泄漏漏洞">Sybase SQL Anywhere OpenSSL TLS</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
var flow=[];
|
||||||
|
for(var i=0;i<35;i++){
|
||||||
|
flow.push(Math.floor(Math.random()*(30+((i%12)*5)))+10);
|
||||||
|
// t.push(Math.floor(Math.random()*(30+((i%12)*5)))+10);
|
||||||
|
}
|
||||||
|
|
||||||
|
var data = [
|
||||||
|
{
|
||||||
|
name : 'commit',
|
||||||
|
value:flow,
|
||||||
|
color:'#0d8ecf',
|
||||||
|
line_width:2
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
var labels = ["","2010","2011","2012","2013","2014"];
|
||||||
|
|
||||||
|
var line = new iChart.LineBasic2D({
|
||||||
|
render : 'canvasDiv2',
|
||||||
|
data: data,
|
||||||
|
align:'center',
|
||||||
|
// title : ' ',
|
||||||
|
title : {
|
||||||
|
text:'技术主题演化',
|
||||||
|
color:'#698389',
|
||||||
|
fontsize : 14,
|
||||||
|
textAlign:'left',
|
||||||
|
padding:'0 40',
|
||||||
|
font:'微软雅黑',
|
||||||
|
border:{
|
||||||
|
enable:true,
|
||||||
|
width:[0,0,2,0],
|
||||||
|
color:'#698389'
|
||||||
|
},
|
||||||
|
height:30
|
||||||
|
},
|
||||||
|
subtitle : '',
|
||||||
|
footnote : '',
|
||||||
|
width : 300, // 面板大小
|
||||||
|
height : 200,
|
||||||
|
shadow:true,
|
||||||
|
//shadow_color : '#20262f',
|
||||||
|
shadow_blur : 1,
|
||||||
|
shadow_offsetx : 0,
|
||||||
|
shadow_offsety : 2,
|
||||||
|
//background_color:null //'#383e46'设置透明背景
|
||||||
|
|
||||||
|
tip:{
|
||||||
|
enable:true,
|
||||||
|
shadow:true,
|
||||||
|
move_duration:400,
|
||||||
|
border:{
|
||||||
|
enable:true,
|
||||||
|
radius : 5,
|
||||||
|
width:2,
|
||||||
|
color:'#3f8695'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
crosshair:{
|
||||||
|
enable:true, //十字交叉线
|
||||||
|
line_color:'#62bce9'
|
||||||
|
},
|
||||||
|
sub_option : {
|
||||||
|
label:false, //是否显示数值
|
||||||
|
// hollow_inside:false,
|
||||||
|
smooth : true,//平滑曲线
|
||||||
|
point_size:2, // 焦点大小
|
||||||
|
// point_hollow : true,
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
coordinate:{
|
||||||
|
width:225, // 图表大小
|
||||||
|
//valid_width:330,
|
||||||
|
height:55,
|
||||||
|
axis:{
|
||||||
|
// color:'#9f9f9f',
|
||||||
|
color:'#dcdcdc',
|
||||||
|
width:[0,0,2,2]
|
||||||
|
},
|
||||||
|
grids:{
|
||||||
|
vertical:{
|
||||||
|
way:'share_alike',
|
||||||
|
value:1
|
||||||
|
// 改垂直线
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scale:[{
|
||||||
|
position:'left',
|
||||||
|
start_scale:0,
|
||||||
|
scale_space:50,
|
||||||
|
end_scale:70,
|
||||||
|
scale_color:'#9f9f9f',
|
||||||
|
// label : {color:'#ffffff',fontsize:11},
|
||||||
|
|
||||||
|
},{
|
||||||
|
position:'bottom',
|
||||||
|
labels:labels
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//开始画图
|
||||||
|
line.draw();
|
||||||
|
});
|
||||||
|
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
|
<!--我是分割线2===================================================================================================!-->
|
||||||
|
<div class="borad-topic-count" style="margin-top:10px">
|
||||||
|
<!-- 共有 <%= link_to memos.count %> 个贴子 -->
|
||||||
|
<span><h1 style="color:#7591cc;font-weight:900">全球热帖</h1></span>
|
||||||
|
<span style="margin-top: -30px; margin-right:70px;float: right; display: block;"><%= link_to "更多>>", :controller => "open_source_projects",:action => "showmemo", :id => @open_source_project.id %></span>
|
||||||
</div>
|
</div>
|
||||||
<div style="padding-top: 10px">
|
<div style="padding-top: 10px">
|
||||||
<% if memos.any? %>
|
<% if memos.any? %>
|
||||||
|
@ -13,20 +366,31 @@
|
||||||
<td>
|
<td>
|
||||||
<table width="630px" border="0">
|
<table width="630px" border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" width="500px" class="<%= topic.sticky ? 'sticky' : '' %> <%= topic.locked? ? 'locked' : '' %>"><%= link_to h(topic.subject), open_source_project_relative_memo_path(topic.open_source_project, topic) %></td>
|
<td valign="top" width="500px" class="<%= topic.sticky ? 'sticky' : '' %> <%= topic.locked? ? 'locked' : '' %>"><%= link_to h(topic.subject), open_source_project_relative_memo_path(open_source_project, topic) %></td>
|
||||||
<td align="right" rowspan="3">
|
<td align="right" rowspan="3">
|
||||||
<table class="borad-count">
|
<table class="borad-count">
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center" class="borad-count-digit"><%= link_to (topic.replies_count), open_source_project_relative_memo_path(topic.open_source_project, topic) %></td>
|
<td align="center" class="borad-count-digit"><%= link_to (topic.replies_count), open_source_project_relative_memo_path(open_source_project, topic) %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center">回答</td>
|
<td align="center">回帖</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table></td>
|
</table></td>
|
||||||
|
|
||||||
<td align="right" rowspan="3">
|
<td align="right" rowspan="3">
|
||||||
<table class="borad-count">
|
<table class="borad-count">
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center" class="borad-count-digit"><%= link_to (topic.viewed_count_crawl+topic.viewed_count_local), open_source_project_relative_memo_path(topic.open_source_project, topic) %></td>
|
<td align="center" class="borad-count-digit"><%= link_to (topic.viewed_count_crawl+topic.viewed_count_local), open_source_project_relative_memo_path(open_source_project, topic) %></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center">关注</td>
|
||||||
|
</tr>
|
||||||
|
</table></td>
|
||||||
|
|
||||||
|
<td align="right" rowspan="3">
|
||||||
|
<table class="borad-count">
|
||||||
|
<tr>
|
||||||
|
<td align="center" class="borad-count-digit"><%= link_to (topic.viewed_count_crawl+topic.viewed_count_local), open_source_project_relative_memo_path(open_source_project, topic) %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center">浏览</td>
|
<td align="center">浏览</td>
|
||||||
|
@ -36,25 +400,20 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" ><span class="font_description"> </span></td>
|
<td colspan="2" ><span class="font_description"> </span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<!-- <tr>
|
||||||
<td align="left" colspan="2" ><span class="font_lighter"><%#= authoring topic.created_at, topic.author %>
|
<td align="left" colspan="2" ><span class="font_lighter"><%#= authoring topic.created_at, topic.author %>
|
||||||
<br />
|
<br />
|
||||||
</span></td>
|
</span></td>
|
||||||
</tr>
|
</tr> -->
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left" colspan="2" ><span class="font_lighter">帖子来源:<%= link_to topic.url, topic.url%> </span></td>
|
<td align="left" colspan="2" >帖子来源:<span class="font_lighter" style="color: #068d9c"><%=link_to 'OSChina', topic.url %>
|
||||||
|
</span></td>
|
||||||
<td align="left"><%= no_use_link(topic, User.current) %> </td>
|
<td align="left"><%= no_use_link(topic, User.current) %> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td align="left" colspan="2"> <%= image_tag( "/images/sidebar/tags.png") %>
|
|
||||||
<%= render :partial => 'tags/tag_name', :locals => {:obj => topic,:object_flag => "9",:non_list_all => true }%> </td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</table></td>
|
</table></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<%= pagination_links_full @topic_pages, @topic_count %>
|
<%= pagination_links_full @topic_pages, @topic_count %>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="top-content">
|
<div class="top-content" >
|
||||||
<%= form_tag(:controller => 'open_source_projects', :action => "search", :method => :get) do %>
|
<%= form_tag(:controller => 'open_source_projects', :action => "search", :method => :get) do %>
|
||||||
<table width="940px">
|
<table width="940px">
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -18,15 +18,16 @@
|
||||||
</table>
|
</table>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.tb-navigation {
|
.tb-navigation {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 400;
|
z-index: 400;
|
||||||
}
|
}
|
||||||
blockquote, body, button, code, dd, div, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, input, legend, li, ol, p, pre, td, textarea, th, ul {
|
/*blockquote, body, button, code, dd, div, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, input, legend, li, ol, p, pre, td, textarea, th, ul {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
.navigation {
|
.navigation {
|
||||||
color: #666;
|
color: #666;
|
||||||
|
@ -128,9 +129,190 @@ li {
|
||||||
.nav-search-con{
|
.nav-search-con{
|
||||||
padding-top: 7px;
|
padding-top: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
<%= javascript_include_tag "ichart.1.2.min" %>
|
||||||
|
<%= stylesheet_link_tag "buglist-div-use.css" %>
|
||||||
|
<%= stylesheet_link_tag "buglist-ichart.css" %>
|
||||||
|
<%= stylesheet_link_tag "buglist.css" %>
|
||||||
|
|
||||||
|
<div class="mask">
|
||||||
|
<div class="header2"></div>
|
||||||
|
<div class="colleft">
|
||||||
|
<div class="col1" >
|
||||||
|
<h1>安全态势分析 </h1>
|
||||||
|
<div id='canvasDiv' style="border-style:none"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col2">
|
||||||
|
<div> <span> <h1 style="fontsize:19px">软件安全漏洞 </h1></span><span style="margin-top: -30px; margin-right:70px;float: right; display: block;"><a href="#" hover="text-decoration: underline;" >More >></span></a></div>
|
||||||
|
<div class="fixed"></div>
|
||||||
|
<div class="li_list" style="margin-top:10px;margin-left:10px">
|
||||||
|
<ul style="list-style-type: square;">
|
||||||
|
<li><span class="li_time">[DDoS漏洞]</span><a href="/vuldb/ssvid-62261" title="Cobbler 2.4.x - 2.6.x 本地文件包含">Cobbler 2.4.x - 2.6.x 本地文件包含</a></li>
|
||||||
|
|
||||||
|
<li><span class="li_time">[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62260" title="Ruby OpenSSL CA私钥伪造漏洞">Ruby OpenSSL CA私钥伪造漏洞</a></li>
|
||||||
|
|
||||||
|
<li style="color: red"><span class="li_time">[远程溢出漏洞]</span><a href="/vuldb/ssvid-62259" title="Adobe Flash Player 整数堆栈下溢远程命令执行">Adobe Flash Player 整数堆栈下溢远程命令执行</a></li>
|
||||||
|
|
||||||
|
<!-- <li><span class="li_time">14-05-07</span><a href="/vuldb/ssvid-62258" title="PHPDISK phpdisk_del_process.php SQL注入漏洞">PHPDISK phpdisk_del_process.php SQL注入漏洞</a></li> -->
|
||||||
|
|
||||||
|
<!-- <li><span class="li_time">[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62257" title="BEESCMS 3.4 order_save.php SQL注入漏洞">BEESCMS 3.4 order_save.php SQL注入漏洞</a></li> -->
|
||||||
|
|
||||||
|
<li ><span class="li_time">[SQL注入漏洞]</span><a href="/vuldb/ssvid-62256" title="Apache/NGINX 下 PHP-FPM 或者 PHP-CGI 拒绝服务漏洞">Apache/NGINX 下 PHP-FPM 拒绝服务漏洞</a></li>
|
||||||
|
|
||||||
|
<li><span class="li_time">[SQL注入漏洞]</span><a href="/vuldb/ssvid-62250" title="AlienVault OSSIM SQL注入以及远程代码执行">AlienVault OSSIM SQL注入以及远程代码执行</a></li>
|
||||||
|
|
||||||
|
<li><span class="li_time">[DDoS漏洞]</span><a href="/vuldb/ssvid-62248" title="Eucalyptus Web Services拒绝服务漏洞">Eucalyptus Web Services拒绝服务漏洞</a></li>
|
||||||
|
|
||||||
|
<li ><span class="li_time">[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62245" title="Watchguard Fireware XTM OpenSSL TLS心跳信息泄漏漏洞">Watchguard Fireware XTM OpenSSL TLS心跳...</a></li>
|
||||||
|
|
||||||
|
<li style="color: red"><span class="li_time">[OpenSSL漏洞]</span><a href="/vuldb/ssvid-62244" title="SAP Sybase SQL Anywhere OpenSSL TLS泄漏漏洞">SAP Sybase SQL Anywhere OpenSSL TLS</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="clear:both; margin:0 0 10 0"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
var flow=[];
|
||||||
|
for(var i=0;i<35;i++){
|
||||||
|
flow.push(Math.floor(Math.random()*(30+((i%12)*5)))+10);
|
||||||
|
// t.push(Math.floor(Math.random()*(30+((i%12)*5)))+10);
|
||||||
|
}
|
||||||
|
|
||||||
|
var data = [
|
||||||
|
{
|
||||||
|
name : 'commit',
|
||||||
|
value:flow,
|
||||||
|
color:'#0d8ecf',
|
||||||
|
line_width:2
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
var labels = ["","2010","2011","2012","2013","2014"];
|
||||||
|
|
||||||
|
var line = new iChart.LineBasic2D({
|
||||||
|
render : 'canvasDiv',
|
||||||
|
data: data,
|
||||||
|
align:'center',
|
||||||
|
title : '',
|
||||||
|
subtitle : '',
|
||||||
|
footnote : '',
|
||||||
|
width : 430, // 面板大小
|
||||||
|
height : 210,
|
||||||
|
shadow:true,
|
||||||
|
//shadow_color : '#20262f',
|
||||||
|
shadow_blur : 1,
|
||||||
|
shadow_offsetx : 0,
|
||||||
|
shadow_offsety : 2,
|
||||||
|
//background_color:null //'#383e46'设置透明背景
|
||||||
|
|
||||||
|
tip:{
|
||||||
|
enable:true,
|
||||||
|
shadow:true,
|
||||||
|
move_duration:400,
|
||||||
|
border:{
|
||||||
|
enable:true,
|
||||||
|
radius : 5,
|
||||||
|
width:2,
|
||||||
|
color:'#3f8695'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
legend : {
|
||||||
|
enable : true,
|
||||||
|
row:1,//设置在一行上显示,与column配合使用
|
||||||
|
column : 'max',
|
||||||
|
valign:'top',
|
||||||
|
sign:'bar',
|
||||||
|
background_color:null,//设置透明背景
|
||||||
|
offsetx:-80,//设置x轴偏移,满足位置需要
|
||||||
|
border : true
|
||||||
|
},
|
||||||
|
crosshair:{
|
||||||
|
enable:true, //十字交叉线
|
||||||
|
line_color:'#62bce9'
|
||||||
|
},
|
||||||
|
sub_option : {
|
||||||
|
label:false, //是否显示数值
|
||||||
|
// hollow_inside:false,
|
||||||
|
smooth : true,//平滑曲线
|
||||||
|
point_size:2, // 焦点大小
|
||||||
|
// point_hollow : true,
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
coordinate:{
|
||||||
|
width:370, // 图表大小
|
||||||
|
//valid_width:330,
|
||||||
|
height:150,
|
||||||
|
axis:{
|
||||||
|
// color:'#9f9f9f',
|
||||||
|
color:'#dcdcdc',
|
||||||
|
width:[0,0,2,2]
|
||||||
|
},
|
||||||
|
grids:{
|
||||||
|
vertical:{
|
||||||
|
way:'share_alike',
|
||||||
|
value:1
|
||||||
|
// 改垂直线
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scale:[{
|
||||||
|
position:'left',
|
||||||
|
start_scale:0,
|
||||||
|
scale_space:50,
|
||||||
|
end_scale:70,
|
||||||
|
scale_color:'#9f9f9f',
|
||||||
|
// label : {color:'#ffffff',fontsize:11},
|
||||||
|
|
||||||
|
},{
|
||||||
|
position:'bottom',
|
||||||
|
labels:labels
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//开始画图
|
||||||
|
|
||||||
|
/**
|
||||||
|
*自定义组件,画平均线。
|
||||||
|
*/
|
||||||
|
line.plugin(new iChart.Custom({
|
||||||
|
drawFn:function(){
|
||||||
|
/**
|
||||||
|
*计算平均值的高度(坐标Y值)
|
||||||
|
*计算高度还不会! 会划线了!
|
||||||
|
*/
|
||||||
|
// var avg = line.total/5,
|
||||||
|
// coo = line.getCoordinate(),
|
||||||
|
// x = coo.get('originx'),
|
||||||
|
// W = coo.width,
|
||||||
|
// S = coo.getScale('left'),
|
||||||
|
// H = coo.height,
|
||||||
|
// h = (avg - S.start) * H / S.distance,
|
||||||
|
// y = line.y + H - h;
|
||||||
|
line.target.line(28,97,400,97,2,'#b32c0d')
|
||||||
|
.textAlign('start')
|
||||||
|
.textBaseline('middle')
|
||||||
|
.textFont('600 12px Verdana');
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
line.draw();
|
||||||
|
});
|
||||||
|
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<%#======================================================================box before%>
|
<%#======================================================================box before%>
|
||||||
<div class="tb-navigation" data-spm="a230r.1.3">
|
<div class="tb-navigation" data-spm="a230r.1.3" style="margin-top:20px">
|
||||||
<div class="navigation">
|
<div class="navigation">
|
||||||
<div class="nav-switch">
|
<div class="nav-switch">
|
||||||
<a href="javascript:(function (){$('.nav-content').toggle();})();">
|
<a href="javascript:(function (){$('.nav-content').toggle();})();">
|
||||||
|
|
|
@ -51,4 +51,4 @@
|
||||||
:title => l(:button_delete)
|
:title => l(:button_delete)
|
||||||
) if @forum.destroyable_by?(User.current) %>
|
) if @forum.destroyable_by?(User.current) %>
|
||||||
</div>
|
</div>
|
||||||
<%= render :partial => 'open_source_projects/show_topics', :locals => {:memos => @memos} %>
|
<%= render :partial => 'open_source_projects/show_topics', :locals => {:memos => @memos, :open_source_project => @open_source_project} %>
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
<!-- added by fq -->
|
||||||
|
<div id="add-memo" class='lz' style="display: none; padding: 20px;">
|
||||||
|
<h3><%=l(:label_memo_new)%></h3>
|
||||||
|
<% if User.current.logged? %>
|
||||||
|
<%= labelled_form_for(@memo, :url => open_source_project_relative_memos_path(@open_source_project), :html => {:multipart => true} ) do |f| %>
|
||||||
|
<% if @memo.errors.any? %>
|
||||||
|
<div id="error_explanation">
|
||||||
|
<h2><%= pluralize(@memo.errors.count, "error") %> prohibited this memo from being saved:</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<% @memo.errors.full_messages.each do |msg| %>
|
||||||
|
<li><%= msg %></li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<div class="actions" style="max-width:680px">
|
||||||
|
<p><%= f.text_field :subject, :required => true%></p>
|
||||||
|
<p style="max-width:680px"><%= f.text_area :content, :required => true, :id => 'editor02' %></p>
|
||||||
|
<script type="text/javascript">var ckeditor=CKEDITOR.replace('editor02');</script>
|
||||||
|
<br/>
|
||||||
|
<p>
|
||||||
|
<%#= l(:label_attachment_plural) %><br />
|
||||||
|
<%#= render :partial => 'attachments/form', :locals => {:container => @memo} %>
|
||||||
|
</p>
|
||||||
|
<%= f.submit :value => l(:label_memo_create) %>
|
||||||
|
<%= link_to l(:button_cancel), "#", :onclick => '$("#add-memo").hide(); return false;' %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<!--modified by huang-->
|
||||||
|
<% #= link_to '发布帖子', new_forum_memo_path(@forum), :class => 'icon icon-add' %>
|
||||||
|
<span>
|
||||||
|
<%= link_to l(:label_memo_new_from_forum), new_open_source_project_relative_memo_path(@open_source_project), :class => 'icon icon-add',
|
||||||
|
:onclick => 'showAndScrollTo("add-memo", "memo_subject"); return false;' if User.current.logged? %>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div class="contextual-borad">
|
||||||
|
<%#= link_to(
|
||||||
|
image_tag('edit.png')+l(:label_forum_edit),
|
||||||
|
{:action => 'edit', :id => @forum},
|
||||||
|
:method => 'get',
|
||||||
|
:title => l(:button_edit)
|
||||||
|
) if @forum.editable_by?(User.current) %>
|
||||||
|
<%#= link_to(
|
||||||
|
image_tag('delete.png')+'删除讨论区',
|
||||||
|
{:action => 'destroy', :id => @forum},
|
||||||
|
:method => :delete,
|
||||||
|
:data => {:confirm => l(:text_are_you_sure)},
|
||||||
|
:title => l(:button_delete)
|
||||||
|
) if @forum.destroyable_by?(User.current) %>
|
||||||
|
</div>
|
||||||
|
<%= render :partial => 'open_source_projects/show_memo', :locals => {:memos => @memos, :open_source_project => @open_source_project} %>
|
||||||
|
</div>
|
|
@ -62,7 +62,7 @@
|
||||||
<% if @memo.author %>
|
<% if @memo.author %>
|
||||||
<%= authoring @memo.created_at, @memo.author.name %>
|
<%= authoring @memo.created_at, @memo.author.name %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= added_time @memo.created_at %>
|
<%= user_url_and_time @memo.username, @memo.userhomeurl, @memo.created_at %>
|
||||||
<% end %></div>
|
<% end %></div>
|
||||||
<div class="tags">
|
<div class="tags">
|
||||||
<div id="tags">
|
<div id="tags">
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
<% if reply.author %>
|
<% if reply.author %>
|
||||||
<%= authoring reply.created_at, reply.author.name %>
|
<%= authoring reply.created_at, reply.author.name %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= added_time reply.created_at %>
|
<%= user_url_and_time reply.username, reply.userhomeurl, reply.created_at %>
|
||||||
<% end %></td>
|
<% end %></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
class CreateRelativeMemos < ActiveRecord::Migration
|
class CreateRelativeMemos < ActiveRecord::Migration
|
||||||
def change
|
def change
|
||||||
create_table :relative_memos do |t|
|
create_table :relative_memos do |t|
|
||||||
t.integer :osp_id, :null => false
|
t.integer :osp_id, :null => true
|
||||||
t.integer :parent_id, null: true
|
t.integer :parent_id, null: true
|
||||||
t.string :subject, null: false
|
t.string :subject, null: false
|
||||||
t.text :content, null: false
|
t.mediumtext :content, null: false
|
||||||
t.integer :author_id
|
t.integer :author_id
|
||||||
t.integer :replies_count, default: 0
|
t.integer :replies_count, default: 0
|
||||||
t.integer :last_reply_id
|
t.integer :last_reply_id
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
class CreateRelativeMemoToOpenSourceProjects < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
create_table :relative_memo_to_open_source_projects do |t|
|
||||||
|
t.integer :osp_id
|
||||||
|
t.integer :relative_memo_id
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
33
db/schema.rb
33
db/schema.rb
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20140521072851) do
|
ActiveRecord::Schema.define(:version => 20140519074133) do
|
||||||
|
|
||||||
create_table "activities", :force => true do |t|
|
create_table "activities", :force => true do |t|
|
||||||
t.integer "act_id", :null => false
|
t.integer "act_id", :null => false
|
||||||
|
@ -23,9 +23,9 @@ ActiveRecord::Schema.define(:version => 20140521072851) do
|
||||||
add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type"
|
add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type"
|
||||||
add_index "activities", ["user_id"], :name => "index_activities_on_user_id"
|
add_index "activities", ["user_id"], :name => "index_activities_on_user_id"
|
||||||
|
|
||||||
create_table "applied_projects", :force => true do |t|
|
create_table "andoidcontests", :force => true do |t|
|
||||||
t.integer "project_id", :null => false
|
t.datetime "created_at", :null => false
|
||||||
t.integer "user_id", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "apply_project_masters", :force => true do |t|
|
create_table "apply_project_masters", :force => true do |t|
|
||||||
|
@ -57,14 +57,11 @@ ActiveRecord::Schema.define(:version => 20140521072851) do
|
||||||
add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type"
|
add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type"
|
||||||
add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on"
|
add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on"
|
||||||
|
|
||||||
create_table "attachmentstypes", :id => false, :force => true do |t|
|
create_table "attachmentstypes", :force => true do |t|
|
||||||
t.integer "id", :null => false
|
t.integer "typeId", :null => false
|
||||||
t.integer "typeId"
|
|
||||||
t.string "typeName", :limit => 50
|
t.string "typeName", :limit => 50
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "attachmentstypes", ["id"], :name => "id"
|
|
||||||
|
|
||||||
create_table "auth_sources", :force => true do |t|
|
create_table "auth_sources", :force => true do |t|
|
||||||
t.string "type", :limit => 30, :default => "", :null => false
|
t.string "type", :limit => 30, :default => "", :null => false
|
||||||
t.string "name", :limit => 60, :default => "", :null => false
|
t.string "name", :limit => 60, :default => "", :null => false
|
||||||
|
@ -623,6 +620,14 @@ ActiveRecord::Schema.define(:version => 20140521072851) do
|
||||||
|
|
||||||
add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade"
|
add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade"
|
||||||
|
|
||||||
|
create_table "projecting_softapplictions", :force => true do |t|
|
||||||
|
t.integer "user_id"
|
||||||
|
t.integer "softapplication_id"
|
||||||
|
t.integer "project_id"
|
||||||
|
t.datetime "created_at", :null => false
|
||||||
|
t.datetime "updated_at", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "projects", :force => true do |t|
|
create_table "projects", :force => true do |t|
|
||||||
t.string "name", :default => "", :null => false
|
t.string "name", :default => "", :null => false
|
||||||
t.text "description"
|
t.text "description"
|
||||||
|
@ -638,6 +643,7 @@ ActiveRecord::Schema.define(:version => 20140521072851) do
|
||||||
t.boolean "inherit_members", :default => false, :null => false
|
t.boolean "inherit_members", :default => false, :null => false
|
||||||
t.integer "project_type"
|
t.integer "project_type"
|
||||||
t.boolean "hidden_repo", :default => false, :null => false
|
t.boolean "hidden_repo", :default => false, :null => false
|
||||||
|
t.integer "user_id"
|
||||||
t.integer "attachmenttype", :default => 1
|
t.integer "attachmenttype", :default => 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -667,6 +673,13 @@ ActiveRecord::Schema.define(:version => 20140521072851) do
|
||||||
add_index "queries", ["project_id"], :name => "index_queries_on_project_id"
|
add_index "queries", ["project_id"], :name => "index_queries_on_project_id"
|
||||||
add_index "queries", ["user_id"], :name => "index_queries_on_user_id"
|
add_index "queries", ["user_id"], :name => "index_queries_on_user_id"
|
||||||
|
|
||||||
|
create_table "relative_memo_to_open_source_projects", :force => true do |t|
|
||||||
|
t.integer "osp_id"
|
||||||
|
t.integer "relative_memo_id"
|
||||||
|
t.datetime "created_at", :null => false
|
||||||
|
t.datetime "updated_at", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "relative_memos", :force => true do |t|
|
create_table "relative_memos", :force => true do |t|
|
||||||
t.integer "osp_id", :null => false
|
t.integer "osp_id", :null => false
|
||||||
t.integer "parent_id"
|
t.integer "parent_id"
|
||||||
|
@ -774,7 +787,7 @@ ActiveRecord::Schema.define(:version => 20140521072851) do
|
||||||
t.integer "softapplication_id"
|
t.integer "softapplication_id"
|
||||||
t.integer "is_public"
|
t.integer "is_public"
|
||||||
t.string "application_developers"
|
t.string "application_developers"
|
||||||
t.string "deposit_project_url"
|
t.string "deposit_project"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "students_for_courses", :force => true do |t|
|
create_table "students_for_courses", :force => true do |t|
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
(function() {
|
||||||
|
var $, FutureMessage, spinner_template,
|
||||||
|
__hasProp = {}.hasOwnProperty,
|
||||||
|
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
||||||
|
|
||||||
|
$ = jQuery;
|
||||||
|
|
||||||
|
spinner_template = '<div class="messenger-spinner">\n <span class="messenger-spinner-side messenger-spinner-side-left">\n <span class="messenger-spinner-fill"></span>\n </span>\n <span class="messenger-spinner-side messenger-spinner-side-right">\n <span class="messenger-spinner-fill"></span>\n </span>\n</div>';
|
||||||
|
|
||||||
|
FutureMessage = (function(_super) {
|
||||||
|
|
||||||
|
__extends(FutureMessage, _super);
|
||||||
|
|
||||||
|
function FutureMessage() {
|
||||||
|
return FutureMessage.__super__.constructor.apply(this, arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
FutureMessage.prototype.template = function(opts) {
|
||||||
|
var $message;
|
||||||
|
$message = FutureMessage.__super__.template.apply(this, arguments);
|
||||||
|
$message.append($(spinner_template));
|
||||||
|
return $message;
|
||||||
|
};
|
||||||
|
|
||||||
|
return FutureMessage;
|
||||||
|
|
||||||
|
})(window.Messenger.Message);
|
||||||
|
|
||||||
|
window.Messenger.themes.future = {
|
||||||
|
Message: FutureMessage
|
||||||
|
};
|
||||||
|
|
||||||
|
}).call(this);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,41 @@
|
||||||
|
.mask{
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: 0px 0 0 0;
|
||||||
|
width: 970px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.header2{
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #f4f4f4
|
||||||
|
}
|
||||||
|
.colleft{
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
right: 50%;
|
||||||
|
background-color: #000000
|
||||||
|
}
|
||||||
|
.col1{
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
float: left;
|
||||||
|
width: 470px;
|
||||||
|
left: 100%;
|
||||||
|
|
||||||
|
}
|
||||||
|
.col2{
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
float: left;
|
||||||
|
width: 470px;
|
||||||
|
left: 3%;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover, a:active {
|
||||||
|
color: #c61a1a;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
@CHARSET "utf-8";
|
||||||
|
/*body {
|
||||||
|
padding:0px;
|
||||||
|
margin:0px;
|
||||||
|
margin-top:10px;
|
||||||
|
text-align: left;
|
||||||
|
font-family:'微软雅黑',Trebuchet MS,Verdana,Helvetica,Arial,sans-serif;
|
||||||
|
}*/
|
||||||
|
.ichartjs_btn{
|
||||||
|
padding:2px 5px;
|
||||||
|
line-height:25px;
|
||||||
|
color:#0b2946;
|
||||||
|
cursor: pointer;
|
||||||
|
text-align:center;
|
||||||
|
font-size:12px;
|
||||||
|
/*border:1px solid #98adc1;*/
|
||||||
|
-webkit-box-shadow:0px 0px 2px #375073;
|
||||||
|
-moz-box-shadow:0px 0px 2px #375073;
|
||||||
|
box-shadow:0px 0px 2px #375073;
|
||||||
|
/*-moz-border-radius:5px;*/
|
||||||
|
/*-webkit-border-radius:5px;*/
|
||||||
|
/*-khtml-border-radius:5px;*/
|
||||||
|
/*border-radius:0px*/
|
||||||
|
}
|
||||||
|
.ichartjs_author{
|
||||||
|
position: absolute;
|
||||||
|
font-size:12px;
|
||||||
|
right: 20px;
|
||||||
|
top: 0px;
|
||||||
|
}
|
||||||
|
.ichartjs_author a{
|
||||||
|
color:#113659;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ichartjs_info{
|
||||||
|
position:relative;
|
||||||
|
margin:10px;
|
||||||
|
padding:5px;
|
||||||
|
color:#1b4267;
|
||||||
|
}
|
||||||
|
.ichartjs_sm{
|
||||||
|
margin:10px 0px;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 60;
|
||||||
|
}
|
||||||
|
.ichartjs_details{
|
||||||
|
padding:0px;
|
||||||
|
text-indent:2em;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height:20px;
|
||||||
|
}
|
||||||
|
#ichartjs_code{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
#ichartjs_result{
|
||||||
|
position: absolute;
|
||||||
|
left: 20px;
|
||||||
|
bottom: 20px;
|
||||||
|
padding:8px;
|
||||||
|
color:#fefefe;
|
||||||
|
font-size:20px;
|
||||||
|
font-weight:600;
|
||||||
|
background-color:#6d869f;
|
||||||
|
cursor: pointer;
|
||||||
|
text-align:center;
|
||||||
|
/*border:1px solid #6a869d;*/
|
||||||
|
-webkit-box-shadow:0px 0px 2px #375073;
|
||||||
|
-moz-box-shadow:0px 0px 2px #375073;
|
||||||
|
box-shadow:0px 0px 2px #375073;
|
||||||
|
/*-moz-border-radius:10px;*/
|
||||||
|
/*-webkit-border-radius:10px;*/
|
||||||
|
/*-khtml-border-radius:0px;*/
|
||||||
|
/*border-radius:10px*/
|
||||||
|
}
|
|
@ -0,0 +1,706 @@
|
||||||
|
@charset utf-8;
|
||||||
|
|
||||||
|
|
||||||
|
a {
|
||||||
|
cursor:pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link {
|
||||||
|
color:#105DB5;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size:16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border:1px solid #ccc;
|
||||||
|
border-radius:4px;
|
||||||
|
font-size:14px;
|
||||||
|
font-weight:700;
|
||||||
|
margin:5px 0;
|
||||||
|
padding:5px 18px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
white-space:0;
|
||||||
|
word-wrap:break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*#main {
|
||||||
|
text-align:left;
|
||||||
|
width:870px;
|
||||||
|
background:#FFF;
|
||||||
|
margin:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
background:#FFF;
|
||||||
|
width:94%;
|
||||||
|
float:left;
|
||||||
|
padding-top:45px;
|
||||||
|
margin:5px 25px;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.li_list {
|
||||||
|
clear:both;
|
||||||
|
padding:0 0 0 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.li_more {
|
||||||
|
text-align:right;
|
||||||
|
clear:both;
|
||||||
|
margin:5px 0;
|
||||||
|
padding:0 0 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.li_time {
|
||||||
|
padding:0 7px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.pages {
|
||||||
|
color:#AAA;
|
||||||
|
font-size:13px;
|
||||||
|
text-align:right;
|
||||||
|
margin:10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.pages a,.thispage,.break {
|
||||||
|
margin:2px;
|
||||||
|
padding:0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.pages .prev {
|
||||||
|
margin-right:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.pages .next {
|
||||||
|
margin-left:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.pages .thispage {
|
||||||
|
background:none repeat scroll 0 0 #4D5256;
|
||||||
|
color:#FFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.clearfix:after {
|
||||||
|
clear:both;
|
||||||
|
content:" ";
|
||||||
|
display:block;
|
||||||
|
height:0;
|
||||||
|
line-height:0;
|
||||||
|
visibility:hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchform .searchinput {
|
||||||
|
background:none repeat scroll 0 0 #FFF;
|
||||||
|
border:medium none;
|
||||||
|
float:left;
|
||||||
|
font-family:Arial,sans-serif;
|
||||||
|
font-size:13px;
|
||||||
|
width:72px;
|
||||||
|
margin:0;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchform .searchinput:focus {
|
||||||
|
width:196px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.article_title {
|
||||||
|
font-weight:700;
|
||||||
|
border-bottom:1px solid #CCC;
|
||||||
|
margin-bottom:5px;
|
||||||
|
padding:5px 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.vuln {
|
||||||
|
font-weight:700;
|
||||||
|
border-bottom:medium none!important;
|
||||||
|
padding:3px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article {
|
||||||
|
padding:5px 0 5px 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.at_hr {
|
||||||
|
font-weight:700;
|
||||||
|
border-left:7px solid #778087;
|
||||||
|
border-bottom:medium none!important;
|
||||||
|
margin:9px 0;
|
||||||
|
padding:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article_exp {
|
||||||
|
padding:0 0 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sh_reference {
|
||||||
|
padding:0 0 0 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sh_reference blockquote {
|
||||||
|
padding:5px 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Statement {
|
||||||
|
color:red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cell {
|
||||||
|
border-bottom:1px dashed #E0E0E0;
|
||||||
|
line-height:18px;
|
||||||
|
list-style:none;
|
||||||
|
padding:9px 0 9px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade {
|
||||||
|
color:#999;
|
||||||
|
font-size:14px;
|
||||||
|
font-weight:700;
|
||||||
|
vertical-align:middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.created {
|
||||||
|
color:#999;
|
||||||
|
display:block;
|
||||||
|
font-size:11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ntitle {
|
||||||
|
font-size:22px;
|
||||||
|
font-weight:700;
|
||||||
|
border-bottom:1px dashed #ECECEC;
|
||||||
|
padding:5px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nutime {
|
||||||
|
color:#999;
|
||||||
|
font-size:12px;
|
||||||
|
padding:5px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notags {
|
||||||
|
font-size:11px;
|
||||||
|
text-align:right;
|
||||||
|
margin-top:-24px;
|
||||||
|
padding:5px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notags a {
|
||||||
|
background:none repeat scroll 0 0 #778087;
|
||||||
|
border-radius:10px;
|
||||||
|
color:#FFF;
|
||||||
|
margin-bottom:5px;
|
||||||
|
padding:2px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notags a:hover {
|
||||||
|
background:none repeat scroll 0 0 #4D5256;
|
||||||
|
color:white;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node_dir_list {
|
||||||
|
width:570px;
|
||||||
|
float:left;
|
||||||
|
overflow:hidden;
|
||||||
|
border-right:1px dashed #E2E2E2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node_dir_side {
|
||||||
|
float:right;
|
||||||
|
width:220px;
|
||||||
|
overflow:hidden;
|
||||||
|
margin:0;
|
||||||
|
padding:0 15px 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node_list ul {
|
||||||
|
clear:both;
|
||||||
|
padding:0 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node_list li {
|
||||||
|
clear:both;
|
||||||
|
height:38px;
|
||||||
|
list-style-type:square;
|
||||||
|
font-size:15px;
|
||||||
|
padding:3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.return_te {
|
||||||
|
text-align:right;
|
||||||
|
font-size:12px;
|
||||||
|
vertical-align:bottom;
|
||||||
|
margin-bottom:-15px;
|
||||||
|
padding-right:15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor {
|
||||||
|
width:600px;
|
||||||
|
overflow:hidden;
|
||||||
|
font-size:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor .tools {
|
||||||
|
height:20px;
|
||||||
|
line-height:20px;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor .tools a {
|
||||||
|
margin-right:15px;
|
||||||
|
text-decoration:none;
|
||||||
|
overflow:hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor .Container {
|
||||||
|
display:none;
|
||||||
|
position:absolute;
|
||||||
|
float:left;
|
||||||
|
z-index:1000;
|
||||||
|
width:330px;
|
||||||
|
height:95px;
|
||||||
|
border:1px solid #BBB;
|
||||||
|
background:#FFF;
|
||||||
|
overflow:hidden;
|
||||||
|
cursor:default;
|
||||||
|
padding:5px 0 10px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor .imgIframe {
|
||||||
|
border:0;
|
||||||
|
width:100%;
|
||||||
|
height:22px;
|
||||||
|
margin:0;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor .Button {
|
||||||
|
text-align:center;
|
||||||
|
margin:0;
|
||||||
|
padding:5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor #attinfoDiv {
|
||||||
|
padding-top:5px;
|
||||||
|
color:#000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Button input {
|
||||||
|
margin-right:5px;
|
||||||
|
font-size:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor input {
|
||||||
|
margin-right:5px;
|
||||||
|
font-size:11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.na_list {
|
||||||
|
clear:both;
|
||||||
|
padding:15px 0 0 62px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.return_Nadir {
|
||||||
|
font-weight:700;
|
||||||
|
font-size:20px;
|
||||||
|
padding:0 0 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.return_Nav {
|
||||||
|
padding-left:10px;
|
||||||
|
align:left;
|
||||||
|
font-weight:700;
|
||||||
|
font-size:15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.return_Nav a {
|
||||||
|
padding:0 .5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.applists {
|
||||||
|
width:100%;
|
||||||
|
list-style-type:none;
|
||||||
|
float:left;
|
||||||
|
border-top:1px dashed #E0E0E0;
|
||||||
|
padding:40px 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.applists ul {
|
||||||
|
list-style-type:none;
|
||||||
|
width:98%;
|
||||||
|
list-style-position:outside;
|
||||||
|
float:left;
|
||||||
|
margin:5px 5px 10px 25px;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.applists ul li {
|
||||||
|
width:25%;
|
||||||
|
display:inline;
|
||||||
|
float:left;
|
||||||
|
line-height:24px;
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.return_top {
|
||||||
|
text-align:right;
|
||||||
|
font-size:10px;
|
||||||
|
vertical-align:bottom;
|
||||||
|
margin-top:-15px;
|
||||||
|
padding-right:30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.return_top a {
|
||||||
|
color:#999;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.return_en {
|
||||||
|
vertical-align:top;
|
||||||
|
align:left;
|
||||||
|
font-weight:900;
|
||||||
|
font-size:22px;
|
||||||
|
color:#666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maintinfo {
|
||||||
|
width:820px;
|
||||||
|
background-color:#E9EEF2;
|
||||||
|
border-radius:5px;
|
||||||
|
float:left;
|
||||||
|
font-size:14px;
|
||||||
|
height:90px;
|
||||||
|
line-height:1.6;
|
||||||
|
position:relative;
|
||||||
|
color:#666;
|
||||||
|
border-style:none none inset;
|
||||||
|
margin:10px 0 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maintinfo strong {
|
||||||
|
float:left;
|
||||||
|
font-size:20px;
|
||||||
|
height:64px;
|
||||||
|
padding-top:28px;
|
||||||
|
text-align:center;
|
||||||
|
width:230px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maintinfo div {
|
||||||
|
padding:22px 0 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maintinfo b {
|
||||||
|
font-size:13px;
|
||||||
|
font-weight:400;
|
||||||
|
margin-right:15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maintinfo em {
|
||||||
|
font-size:12px;
|
||||||
|
margin-right:15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maintinfo span {
|
||||||
|
float:right;
|
||||||
|
margin-top:-15px;
|
||||||
|
font-size:10px;
|
||||||
|
padding-right:9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.maintinfo .blogo {
|
||||||
|
background:url(http://mit00.02753.com/sebug_flat_0da.png) no-repeat scroll 0 0 transparent;
|
||||||
|
display:block;
|
||||||
|
height:19px;
|
||||||
|
text-indent:-5000px;
|
||||||
|
width:52px;
|
||||||
|
float:right;
|
||||||
|
margin:-35px -58px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside {
|
||||||
|
float:right;
|
||||||
|
font-size:11px;
|
||||||
|
width:280px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside .group {
|
||||||
|
border-bottom:1px dashed #ECECEC;
|
||||||
|
clear:both;
|
||||||
|
margin-bottom:10px;
|
||||||
|
padding-bottom:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside .group li {
|
||||||
|
float:left;
|
||||||
|
height:22px;
|
||||||
|
margin-right:1%;
|
||||||
|
overflow:hidden;
|
||||||
|
white-space:nowrap;
|
||||||
|
width:32.299999%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.indexarticle {
|
||||||
|
float:left;
|
||||||
|
padding-right:5px;
|
||||||
|
width:530px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bug_index_list ul {
|
||||||
|
list-style:none;
|
||||||
|
margin-bottom:20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bug_index_list li {
|
||||||
|
padding-left:10px;
|
||||||
|
position:relative;
|
||||||
|
line-height:26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.indexarticle .topitems {
|
||||||
|
clear:both;
|
||||||
|
margin-bottom:20px;
|
||||||
|
font-size:11px;
|
||||||
|
padding:10px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.indexarticle .topitems li {
|
||||||
|
float:left;
|
||||||
|
height:22px;
|
||||||
|
margin-right:1%;
|
||||||
|
overflow:hidden;
|
||||||
|
white-space:nowrap;
|
||||||
|
width:23%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.indexseach {
|
||||||
|
text-align:center;
|
||||||
|
margin:auto;
|
||||||
|
padding:110px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lsbb {
|
||||||
|
background:#eee;
|
||||||
|
border:1px solid #999;
|
||||||
|
border-top-color:#ccc;
|
||||||
|
border-left-color:#ccc;
|
||||||
|
height:30px;
|
||||||
|
width:120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lsb {
|
||||||
|
font:14px arial;
|
||||||
|
background-position:bottom;
|
||||||
|
border:none;
|
||||||
|
color:#000;
|
||||||
|
cursor:pointer;
|
||||||
|
height:30px;
|
||||||
|
vertical-align:top;
|
||||||
|
background:#f1f1f1;
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lsb:active {
|
||||||
|
background:#ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tsf-p {
|
||||||
|
width:480px;
|
||||||
|
margin:0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lst-td {
|
||||||
|
border-bottom:1px solid #999;
|
||||||
|
padding-right:16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lst {
|
||||||
|
-moz-box-sizing:content-box;
|
||||||
|
background:#fff;
|
||||||
|
border:1px solid #ccc;
|
||||||
|
border-bottom:none;
|
||||||
|
color:#4D5256;
|
||||||
|
font:20px arial;
|
||||||
|
float:left;
|
||||||
|
height:26px;
|
||||||
|
vertical-align:middle;
|
||||||
|
width:100%;
|
||||||
|
padding:2px 10px 2px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.com {
|
||||||
|
color:#800;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lit {
|
||||||
|
color:#066;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pun,.opn,.clo {
|
||||||
|
color:#440;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fun {
|
||||||
|
color:#red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.str,.atv {
|
||||||
|
color:#080;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kwd,.tag {
|
||||||
|
color:#008;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pln {
|
||||||
|
color:#000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prettyprint {
|
||||||
|
padding:10px 0 10px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol.linenums {
|
||||||
|
margin:0 0 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol.linenums li {
|
||||||
|
color:#959595;
|
||||||
|
line-height:15px;
|
||||||
|
padding:0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prettyprint-dark {
|
||||||
|
background-color:#1d1f21;
|
||||||
|
border:0;
|
||||||
|
padding:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prettyprint-dark.linenums li {
|
||||||
|
color:#444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prettyprint-dark.linenums li:hover {
|
||||||
|
background-color:#282a2e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prettyprint-dark.kwd,.prettyprint-dark.tag {
|
||||||
|
color:#006;
|
||||||
|
font-weight:700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prettyprint-dark.str,.prettyprint-dark.atv {
|
||||||
|
color:#060;
|
||||||
|
}
|
||||||
|
|
||||||
|
#slider1 {
|
||||||
|
width:805px;
|
||||||
|
height:285px;
|
||||||
|
position:relative;
|
||||||
|
overflow:hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#slider1Content {
|
||||||
|
width:805px;
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
margin-left:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider1Image {
|
||||||
|
float:center;
|
||||||
|
position:relative;
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider1Image span {
|
||||||
|
position:absolute;
|
||||||
|
font:10px/15px Arial,sans-serif;
|
||||||
|
width:805px;
|
||||||
|
background-color:#E9EEF2;
|
||||||
|
filter:alpha(opacity=70);
|
||||||
|
-moz-opacity:.7;
|
||||||
|
-khtml-opacity:.7;
|
||||||
|
opacity:.7;
|
||||||
|
color:#000;
|
||||||
|
display:none;
|
||||||
|
padding:10px 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top {
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider1Image span strong {
|
||||||
|
font-size:14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chart_p {
|
||||||
|
font-size:11px;
|
||||||
|
line-height:18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#isad {
|
||||||
|
float:right;
|
||||||
|
background:url(http://mit00.02753.com/www/img/icon_ad.png) no-repeat scroll 0 0 transparent;
|
||||||
|
font-size:11px;
|
||||||
|
padding-left:20px;
|
||||||
|
line-height:11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
*,div.pages .next a,div.pages .prev a {
|
||||||
|
margin:0;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover,.created a:hover {
|
||||||
|
background-color:#105DB5;
|
||||||
|
color:#FFF;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,h2 {
|
||||||
|
font-size:18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fixed,.clear {
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.li_list li,.na_list li {
|
||||||
|
clear:both;
|
||||||
|
height:18px;
|
||||||
|
list-style-type:square;
|
||||||
|
padding:2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.pages .break,.created a {
|
||||||
|
color:#999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tomore,.at_sebug {
|
||||||
|
padding:5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.typ,.atn,.dec,.var,.prettyprint-dark.typ,.prettyprint-dark .atn,.prettyprint-dark .dec,.prettyprint-dark.var {
|
||||||
|
color:#606;
|
||||||
|
}
|
|
@ -0,0 +1,496 @@
|
||||||
|
@-webkit-keyframes ui-spinner-rotate-right {
|
||||||
|
/* line 64, ../../src/sass/messenger-spinner.scss */
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 65, ../../src/sass/messenger-spinner.scss */
|
||||||
|
25% {
|
||||||
|
-webkit-transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 66, ../../src/sass/messenger-spinner.scss */
|
||||||
|
50% {
|
||||||
|
-webkit-transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 67, ../../src/sass/messenger-spinner.scss */
|
||||||
|
75% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 68, ../../src/sass/messenger-spinner.scss */
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes ui-spinner-rotate-left {
|
||||||
|
/* line 72, ../../src/sass/messenger-spinner.scss */
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 73, ../../src/sass/messenger-spinner.scss */
|
||||||
|
25% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 74, ../../src/sass/messenger-spinner.scss */
|
||||||
|
50% {
|
||||||
|
-webkit-transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 75, ../../src/sass/messenger-spinner.scss */
|
||||||
|
75% {
|
||||||
|
-webkit-transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 76, ../../src/sass/messenger-spinner.scss */
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-moz-keyframes ui-spinner-rotate-right {
|
||||||
|
/* line 80, ../../src/sass/messenger-spinner.scss */
|
||||||
|
0% {
|
||||||
|
-moz-transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 81, ../../src/sass/messenger-spinner.scss */
|
||||||
|
25% {
|
||||||
|
-moz-transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 82, ../../src/sass/messenger-spinner.scss */
|
||||||
|
50% {
|
||||||
|
-moz-transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 83, ../../src/sass/messenger-spinner.scss */
|
||||||
|
75% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 84, ../../src/sass/messenger-spinner.scss */
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-moz-keyframes ui-spinner-rotate-left {
|
||||||
|
/* line 88, ../../src/sass/messenger-spinner.scss */
|
||||||
|
0% {
|
||||||
|
-moz-transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 89, ../../src/sass/messenger-spinner.scss */
|
||||||
|
25% {
|
||||||
|
-moz-transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 90, ../../src/sass/messenger-spinner.scss */
|
||||||
|
50% {
|
||||||
|
-moz-transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 91, ../../src/sass/messenger-spinner.scss */
|
||||||
|
75% {
|
||||||
|
-moz-transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 92, ../../src/sass/messenger-spinner.scss */
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ui-spinner-rotate-right {
|
||||||
|
/* line 96, ../../src/sass/messenger-spinner.scss */
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 97, ../../src/sass/messenger-spinner.scss */
|
||||||
|
25% {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 98, ../../src/sass/messenger-spinner.scss */
|
||||||
|
50% {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 99, ../../src/sass/messenger-spinner.scss */
|
||||||
|
75% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 100, ../../src/sass/messenger-spinner.scss */
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ui-spinner-rotate-left {
|
||||||
|
/* line 104, ../../src/sass/messenger-spinner.scss */
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 105, ../../src/sass/messenger-spinner.scss */
|
||||||
|
25% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 106, ../../src/sass/messenger-spinner.scss */
|
||||||
|
50% {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 107, ../../src/sass/messenger-spinner.scss */
|
||||||
|
75% {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 108, ../../src/sass/messenger-spinner.scss */
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 116, ../../src/sass/messenger-spinner.scss */
|
||||||
|
.messenger-spinner {
|
||||||
|
position: relative;
|
||||||
|
border-radius: 100%;
|
||||||
|
}
|
||||||
|
/* line 120, ../../src/sass/messenger-spinner.scss */
|
||||||
|
ul.messenger.messenger-spinner-active .messenger-spinner .messenger-spinner {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
/* line 124, ../../src/sass/messenger-spinner.scss */
|
||||||
|
.messenger-spinner .messenger-spinner-side {
|
||||||
|
width: 50%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
/* line 130, ../../src/sass/messenger-spinner.scss */
|
||||||
|
.messenger-spinner .messenger-spinner-side .messenger-spinner-fill {
|
||||||
|
border-radius: 999px;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
-webkit-animation-iteration-count: infinite;
|
||||||
|
-moz-animation-iteration-count: infinite;
|
||||||
|
-ms-animation-iteration-count: infinite;
|
||||||
|
-o-animation-iteration-count: infinite;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
-webkit-animation-timing-function: linear;
|
||||||
|
-moz-animation-timing-function: linear;
|
||||||
|
-ms-animation-timing-function: linear;
|
||||||
|
-o-animation-timing-function: linear;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
}
|
||||||
|
/* line 140, ../../src/sass/messenger-spinner.scss */
|
||||||
|
.messenger-spinner .messenger-spinner-side-left {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
/* line 143, ../../src/sass/messenger-spinner.scss */
|
||||||
|
.messenger-spinner .messenger-spinner-side-left .messenger-spinner-fill {
|
||||||
|
left: 100%;
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
-webkit-animation-name: ui-spinner-rotate-left;
|
||||||
|
-moz-animation-name: ui-spinner-rotate-left;
|
||||||
|
-ms-animation-name: ui-spinner-rotate-left;
|
||||||
|
-o-animation-name: ui-spinner-rotate-left;
|
||||||
|
animation-name: ui-spinner-rotate-left;
|
||||||
|
-webkit-transform-origin: 0 50%;
|
||||||
|
-moz-transform-origin: 0 50%;
|
||||||
|
-ms-transform-origin: 0 50%;
|
||||||
|
-o-transform-origin: 0 50%;
|
||||||
|
transform-origin: 0 50%;
|
||||||
|
}
|
||||||
|
/* line 152, ../../src/sass/messenger-spinner.scss */
|
||||||
|
.messenger-spinner .messenger-spinner-side-right {
|
||||||
|
left: 50%;
|
||||||
|
}
|
||||||
|
/* line 155, ../../src/sass/messenger-spinner.scss */
|
||||||
|
.messenger-spinner .messenger-spinner-side-right .messenger-spinner-fill {
|
||||||
|
left: -100%;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
-webkit-animation-name: ui-spinner-rotate-right;
|
||||||
|
-moz-animation-name: ui-spinner-rotate-right;
|
||||||
|
-ms-animation-name: ui-spinner-rotate-right;
|
||||||
|
-o-animation-name: ui-spinner-rotate-right;
|
||||||
|
animation-name: ui-spinner-rotate-right;
|
||||||
|
-webkit-transform-origin: 100% 50%;
|
||||||
|
-moz-transform-origin: 100% 50%;
|
||||||
|
-ms-transform-origin: 100% 50%;
|
||||||
|
-o-transform-origin: 100% 50%;
|
||||||
|
transform-origin: 100% 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* line 15, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future {
|
||||||
|
-webkit-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.24), 0px 1px 5px rgba(0, 0, 0, 0.6);
|
||||||
|
-moz-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.24), 0px 1px 5px rgba(0, 0, 0, 0.6);
|
||||||
|
box-shadow: inset 0px 1px rgba(255, 255, 255, 0.24), 0px 1px 5px rgba(0, 0, 0, 0.6);
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
-ms-border-radius: 4px;
|
||||||
|
-o-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-o-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5c5b5b), color-stop(100%, #353535));
|
||||||
|
background-image: -webkit-linear-gradient(#5c5b5b, #353535);
|
||||||
|
background-image: -moz-linear-gradient(#5c5b5b, #353535);
|
||||||
|
background-image: -o-linear-gradient(#5c5b5b, #353535);
|
||||||
|
background-image: linear-gradient(#5c5b5b, #353535);
|
||||||
|
background-color: #5c5b5b;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
/* line 23, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message {
|
||||||
|
-webkit-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 0px -1px rgba(0, 0, 0, 0.23), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07);
|
||||||
|
-moz-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 0px -1px rgba(0, 0, 0, 0.23), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07);
|
||||||
|
box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 0px -1px rgba(0, 0, 0, 0.23), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07);
|
||||||
|
-webkit-border-radius: 0px;
|
||||||
|
-moz-border-radius: 0px;
|
||||||
|
-ms-border-radius: 0px;
|
||||||
|
-o-border-radius: 0px;
|
||||||
|
border-radius: 0px;
|
||||||
|
position: relative;
|
||||||
|
border: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
font-size: 13px;
|
||||||
|
background: transparent;
|
||||||
|
color: #f0f0f0;
|
||||||
|
text-shadow: 0px 1px #111111;
|
||||||
|
font-weight: 500;
|
||||||
|
padding: 10px 30px 13px 65px;
|
||||||
|
}
|
||||||
|
/* line 36, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message a {
|
||||||
|
color: #5599ff;
|
||||||
|
}
|
||||||
|
/* line 39, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message .messenger-close {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
right: 0px;
|
||||||
|
color: #888888;
|
||||||
|
text-shadow: 0px 1px black;
|
||||||
|
opacity: 1;
|
||||||
|
font-weight: bold;
|
||||||
|
display: block;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
padding: 8px 10px 7px 7px;
|
||||||
|
cursor: pointer;
|
||||||
|
background: transparent;
|
||||||
|
border: 0;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
/* line 56, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message .messenger-close:hover {
|
||||||
|
color: #bbbbbb;
|
||||||
|
}
|
||||||
|
/* line 59, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message .messenger-close:active {
|
||||||
|
color: #777777;
|
||||||
|
}
|
||||||
|
/* line 62, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message .messenger-actions {
|
||||||
|
float: none;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
/* line 66, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message .messenger-actions a {
|
||||||
|
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.1);
|
||||||
|
-moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.1);
|
||||||
|
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.1);
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
-ms-border-radius: 4px;
|
||||||
|
-o-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 10px;
|
||||||
|
color: #aaaaaa;
|
||||||
|
text-shadow: 0px 1px #222222;
|
||||||
|
margin-right: 10px;
|
||||||
|
padding: 3px 10px 5px;
|
||||||
|
text-transform: capitalize;
|
||||||
|
}
|
||||||
|
/* line 78, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message .messenger-actions a:hover {
|
||||||
|
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.2);
|
||||||
|
-moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.2);
|
||||||
|
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 1px rgba(255, 255, 255, 0.2);
|
||||||
|
color: #f0f0f0;
|
||||||
|
}
|
||||||
|
/* line 82, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message .messenger-actions a:active {
|
||||||
|
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.28), inset 0px 1px rgba(0, 0, 0, 0.1);
|
||||||
|
-moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.28), inset 0px 1px rgba(0, 0, 0, 0.1);
|
||||||
|
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.28), inset 0px 1px rgba(0, 0, 0, 0.1);
|
||||||
|
background: rgba(0, 0, 0, 0.04);
|
||||||
|
color: #aaaaaa;
|
||||||
|
}
|
||||||
|
/* line 87, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message .messenger-actions .messenger-phrase {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
/* line 90, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message .messenger-message-inner:before {
|
||||||
|
-webkit-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.6), 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
|
||||||
|
-moz-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.6), 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.6), 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
|
||||||
|
-webkit-border-radius: 50%;
|
||||||
|
-moz-border-radius: 50%;
|
||||||
|
-ms-border-radius: 50%;
|
||||||
|
-o-border-radius: 50%;
|
||||||
|
border-radius: 50%;
|
||||||
|
position: absolute;
|
||||||
|
left: 17px;
|
||||||
|
display: block;
|
||||||
|
content: " ";
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -8px;
|
||||||
|
height: 13px;
|
||||||
|
width: 13px;
|
||||||
|
z-index: 20;
|
||||||
|
}
|
||||||
|
/* line 103, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message.alert-success .messenger-message-inner:before {
|
||||||
|
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5fca4a), color-stop(100%, #098d38));
|
||||||
|
background-image: -webkit-linear-gradient(top, #5fca4a, #098d38);
|
||||||
|
background-image: -moz-linear-gradient(top, #5fca4a, #098d38);
|
||||||
|
background-image: -o-linear-gradient(top, #5fca4a, #098d38);
|
||||||
|
background-image: linear-gradient(top, #5fca4a, #098d38);
|
||||||
|
background-color: #5fca4a;
|
||||||
|
}
|
||||||
|
/* line 107, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message.alert-info .messenger-message-inner:before {
|
||||||
|
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #61c4b8), color-stop(100%, #1992a3));
|
||||||
|
background-image: -webkit-linear-gradient(top, #61c4b8, #1992a3);
|
||||||
|
background-image: -moz-linear-gradient(top, #61c4b8, #1992a3);
|
||||||
|
background-image: -o-linear-gradient(top, #61c4b8, #1992a3);
|
||||||
|
background-image: linear-gradient(top, #61c4b8, #1992a3);
|
||||||
|
background-color: #61c4b8;
|
||||||
|
}
|
||||||
|
/* line 113, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message.alert-error .messenger-message-inner:before {
|
||||||
|
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #dd6a45), color-stop(100%, #91361a));
|
||||||
|
background-image: -webkit-linear-gradient(top, #dd6a45, #91361a);
|
||||||
|
background-image: -moz-linear-gradient(top, #dd6a45, #91361a);
|
||||||
|
background-image: -o-linear-gradient(top, #dd6a45, #91361a);
|
||||||
|
background-image: linear-gradient(top, #dd6a45, #91361a);
|
||||||
|
background-color: #dd6a45;
|
||||||
|
}
|
||||||
|
/* line 32, ../../src/sass/messenger-spinner.scss */
|
||||||
|
ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-soon .messenger-spinner {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
/* line 37, ../../src/sass/messenger-spinner.scss */
|
||||||
|
ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-soon .messenger-spinner .messenger-spinner-side .messenger-spinner-fill {
|
||||||
|
background: #dd6a45;
|
||||||
|
-webkit-animation-duration: 20s;
|
||||||
|
-moz-animation-duration: 20s;
|
||||||
|
-ms-animation-duration: 20s;
|
||||||
|
-o-animation-duration: 20s;
|
||||||
|
animation-duration: 20s;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
/* line 45, ../../src/sass/messenger-spinner.scss */
|
||||||
|
ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-soon .messenger-spinner:after {
|
||||||
|
content: "";
|
||||||
|
background: #333333;
|
||||||
|
position: absolute;
|
||||||
|
width: 26px;
|
||||||
|
height: 26px;
|
||||||
|
border-radius: 50%;
|
||||||
|
top: 3px;
|
||||||
|
left: 3px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
/* line 32, ../../src/sass/messenger-spinner.scss */
|
||||||
|
ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-later .messenger-spinner {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
/* line 37, ../../src/sass/messenger-spinner.scss */
|
||||||
|
ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-later .messenger-spinner .messenger-spinner-side .messenger-spinner-fill {
|
||||||
|
background: #dd6a45;
|
||||||
|
-webkit-animation-duration: 600s;
|
||||||
|
-moz-animation-duration: 600s;
|
||||||
|
-ms-animation-duration: 600s;
|
||||||
|
-o-animation-duration: 600s;
|
||||||
|
animation-duration: 600s;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
/* line 45, ../../src/sass/messenger-spinner.scss */
|
||||||
|
ul.messenger-theme-future .messenger-message.alert-error.messenger-retry-later .messenger-spinner:after {
|
||||||
|
content: "";
|
||||||
|
background: #333333;
|
||||||
|
position: absolute;
|
||||||
|
width: 26px;
|
||||||
|
height: 26px;
|
||||||
|
border-radius: 50%;
|
||||||
|
top: 3px;
|
||||||
|
left: 3px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
/* line 125, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message-slot.messenger-last .messenger-message {
|
||||||
|
-webkit-border-radius: 4px 4px 0px 0px;
|
||||||
|
-moz-border-radius: 4px 4px 0px 0px;
|
||||||
|
-ms-border-radius: 4px 4px 0px 0px;
|
||||||
|
-o-border-radius: 4px 4px 0px 0px;
|
||||||
|
border-radius: 4px 4px 0px 0px;
|
||||||
|
}
|
||||||
|
/* line 128, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message-slot.messenger-first .messenger-message {
|
||||||
|
-webkit-border-radius: 0px 0px 4px 4px;
|
||||||
|
-moz-border-radius: 0px 0px 4px 4px;
|
||||||
|
-ms-border-radius: 0px 0px 4px 4px;
|
||||||
|
-o-border-radius: 0px 0px 4px 4px;
|
||||||
|
border-radius: 0px 0px 4px 4px;
|
||||||
|
-webkit-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07);
|
||||||
|
-moz-box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07);
|
||||||
|
box-shadow: inset 0px 1px rgba(255, 255, 255, 0.13), inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07);
|
||||||
|
}
|
||||||
|
/* line 132, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-message-slot.messenger-first.messenger-last .messenger-message {
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
-ms-border-radius: 4px;
|
||||||
|
-o-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
-webkit-box-shadow: inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07);
|
||||||
|
-moz-box-shadow: inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07);
|
||||||
|
box-shadow: inset 48px 0px 0px rgba(0, 0, 0, 0.3), inset 46px 0px 0px rgba(255, 255, 255, 0.07);
|
||||||
|
}
|
||||||
|
/* line 136, ../../src/sass/messenger-theme-future.sass */
|
||||||
|
ul.messenger-theme-future .messenger-spinner {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
left: 7px;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -18px;
|
||||||
|
z-index: 999;
|
||||||
|
height: 32px;
|
||||||
|
width: 32px;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
|
@ -0,0 +1,101 @@
|
||||||
|
/* line 4, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
/* line 8, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger > li {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
/* line 14, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
/* line 17, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger .messenger-message {
|
||||||
|
overflow: hidden;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
/* line 20, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger .messenger-message.messenger-hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
/* line 23, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger .messenger-message .messenger-phrase, ul.messenger .messenger-message .messenger-actions a {
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
/* line 26, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger .messenger-message .messenger-actions {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
/* line 29, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger .messenger-message .messenger-actions a {
|
||||||
|
cursor: pointer;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
/* line 33, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger .messenger-message ul, ul.messenger .messenger-message ol {
|
||||||
|
margin: 10px 18px 0;
|
||||||
|
}
|
||||||
|
/* line 36, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed {
|
||||||
|
position: fixed;
|
||||||
|
z-index: 10000;
|
||||||
|
}
|
||||||
|
/* line 40, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed .messenger-message {
|
||||||
|
min-width: 0;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
/* line 45, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed .message .messenger-actions {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
/* line 48, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed.messenger-on-top {
|
||||||
|
top: 20px;
|
||||||
|
}
|
||||||
|
/* line 51, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed.messenger-on-bottom {
|
||||||
|
bottom: 20px;
|
||||||
|
}
|
||||||
|
/* line 54, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed.messenger-on-top, ul.messenger.messenger-fixed.messenger-on-bottom {
|
||||||
|
left: 50%;
|
||||||
|
width: 800px;
|
||||||
|
margin-left: -400px;
|
||||||
|
}
|
||||||
|
@media (max-width: 960px) {
|
||||||
|
/* line 54, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed.messenger-on-top, ul.messenger.messenger-fixed.messenger-on-bottom {
|
||||||
|
left: 10%;
|
||||||
|
width: 80%;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* line 64, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed.messenger-on-top.messenger-on-right, ul.messenger.messenger-fixed.messenger-on-bottom.messenger-on-right {
|
||||||
|
right: 20px;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
/* line 68, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed.messenger-on-top.messenger-on-left, ul.messenger.messenger-fixed.messenger-on-bottom.messenger-on-left {
|
||||||
|
left: 20px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
/* line 72, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed.messenger-on-right, ul.messenger.messenger-fixed.messenger-on-left {
|
||||||
|
width: 350px;
|
||||||
|
}
|
||||||
|
/* line 75, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger.messenger-fixed.messenger-on-right .messenger-actions, ul.messenger.messenger-fixed.messenger-on-left .messenger-actions {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
/* line 78, ../../src/sass/messenger.sass */
|
||||||
|
ul.messenger .messenger-spinner {
|
||||||
|
display: none;
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
.mask{
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: 0px 0 0 0;
|
||||||
|
width: 690px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.header2{
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #f4f4f4
|
||||||
|
}
|
||||||
|
.colleft{
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
right: 50%;
|
||||||
|
background-color: #000000
|
||||||
|
}
|
||||||
|
.col1{
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
float: left;
|
||||||
|
width: 50%;
|
||||||
|
left: 100%;
|
||||||
|
|
||||||
|
}
|
||||||
|
.col2{
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
float: left;
|
||||||
|
width: 50%;
|
||||||
|
left: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover, a:active {
|
||||||
|
color: #c61a1a;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
||||||
|
|
||||||
|
# This model initially had no columns defined. If you add columns to the
|
||||||
|
# model remove the '{}' from the fixture names and add the columns immediately
|
||||||
|
# below each fixture, per the syntax in the comments below
|
||||||
|
#
|
||||||
|
one: {}
|
||||||
|
# column: value
|
||||||
|
#
|
||||||
|
two: {}
|
||||||
|
# column: value
|
|
@ -0,0 +1,7 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class RelativeMemoToOpenSourceProjectTest < ActiveSupport::TestCase
|
||||||
|
# test "the truth" do
|
||||||
|
# assert true
|
||||||
|
# end
|
||||||
|
end
|
Loading…
Reference in New Issue