Merge branch 'develop' into szzh

This commit is contained in:
yanxd 2014-05-26 09:05:36 +08:00
commit 12b1553a33
44 changed files with 1526 additions and 947 deletions

View File

@ -293,7 +293,7 @@ class ContestsController < ApplicationController
###我要参赛
def show_attendingcontest
##取出参赛项目
##取出参赛项目--项目列表
@membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current))
@option = []
# @contesting_project_count = @contesting_project_all.count
@ -333,7 +333,7 @@ class ContestsController < ApplicationController
@contesting_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade}
end
end
##取出参赛应用
##取出参赛应用 --应用列表
@softapplication = Softapplication.all
@contesting_softapplication = @contest.contesting_softapplications.
joins("LEFT JOIN softapplications ON contesting_softapplications.softapplication_id=softapplications.id").

View File

@ -65,6 +65,8 @@ class OpenSourceProjectsController < ApplicationController
offset(@topic_pages.offset).
order(sort_clause).
all
@bugs = @open_source_project.bugs.limit(6)
respond_to do |format|
format.html {

View File

@ -505,6 +505,7 @@ class ProjectsController < ApplicationController
@issue_custom_fields = IssueCustomField.sorted.all
@trackers = Tracker.sorted.all
@project = Project.new
@project.user_id = User.current.id
@project.safe_attributes = params[:project]
if @course_tag == '1'
@project.identifier = @course.extra

View File

@ -47,6 +47,7 @@ class SoftapplicationsController < ApplicationController
def show
@softapplication = Softapplication.find(params[:id])
@project = Project.find_by_identifier(@softapplication.deposit_project)
# 打分统计
stars_reates = @softapplication.
rates(:quality)
@ -86,7 +87,11 @@ class SoftapplicationsController < ApplicationController
# GET /softapplications/new.json
def new
@softapplication = Softapplication.new
#添加当前用户创建过的项目作为托管项目(下拉项目列表)
project = Project.find(params[:user_id])
#end
respond_to do |format|
format.html # new.html.erb
format.json { render json: @softapplication }
@ -96,6 +101,21 @@ class SoftapplicationsController < ApplicationController
# GET /softapplications/1/edit
def edit
@softapplication = Softapplication.find(params[:id])
@membership = User.current.memberships.all(:conditions => Project.visible_condition(User.current))
@option = []
# @contesting_project_count = @contesting_project_all.count
# @contesting_project_pages = Paginator.new @contesting_project_count, per_page_option, params['page']
@membership.each do |membership|
unless(membership.project.project_type==1)
membership.member_roles.each{|role|
if(role.role_id == 3)
@option << membership.project
end
}
end
end
end
# POST /softapplications
@ -122,12 +142,14 @@ class SoftapplicationsController < ApplicationController
def create
@softapplication = Softapplication.new(params[:softapplication])
@softapplication.user = User.current
@softapplication.deposit_project = params[:project]
@softapplication.save_attachments(params[:attachments])
respond_to do |format|
if @softapplication.save
ContestingSoftapplication.create(:contest_id => params[:contest_id], :softapplication_id => @softapplication.id)
format.js
format.html { redirect_to show_attendingcontest_contest_path(:id => params[:contest_id]) }
format.html { redirect_to show_attendingcontest_contest_path(:id => params[:contest_id]), notice: l(:notice_attendingcontest_work_successfully_created) }
# format.json { render json: @softapplication, status: :created, location: @softapplication }
else
format.js { render status: 406 }
@ -148,9 +170,10 @@ class SoftapplicationsController < ApplicationController
# @softapplication = Softapplication.find(params[:id])
@softapplication.attachments.map{|attach| attach.destroy }
@softapplication.save_attachments(params[:attachments])
@softapplication.deposit_project = params[:project]
respond_to do |format|
if @softapplication.update_attributes(params[:softapplication])
format.html { redirect_to @softapplication, notice: 'Softapplication was successfully updated.' }
format.html { redirect_to @softapplication, notice: l(:notice_softapplication_was_successfully_updated) }
format.json { head :no_content }
else
format.html { render action: "edit" }

View File

@ -473,7 +473,7 @@ module ApplicationHelper
end
def user_url_and_time(user_name, user_url, created)
unless user_name.nil?
unless user_name.nil? || user_name == ''
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
@ -740,7 +740,15 @@ module ApplicationHelper
end
end
end
def select_option_helper option
tmp = Hash.new
tmp={"" => ""}
option.each do |project|
tmp[project.name] = project.identifier
end
tmp
end
# Redmine links
#
# Examples:

View File

@ -145,13 +145,13 @@ module BidsHelper
people.include?(User.current)
end
def select_option_helper option
tmp = Hash.new
option.each do |project|
tmp[project.name] = project.identifier
end
tmp
end
# def select_option_helper option
# tmp = Hash.new
# option.each do |project|
# tmp[project.name] = project.identifier
# end
# tmp
# end
def can_delete_project_homework bind_project,current_user
current_user.id == bind_project.user.id || current_user.admin

View File

@ -157,13 +157,14 @@ module ContestsHelper
people.include?(User.current)
end
def select_option_helper option
tmp = Hash.new
option.each do |project|
tmp[project.name] = project.identifier
end
tmp
end
# def select_option_helper option
# tmp = Hash.new
# tmp={"" => ""}
# option.each do |project|
# tmp[project.name] = project.identifier
# end
# tmp
# end
def select_option_app_helper options
tmp = Hash.new
options.each do |option|

View File

@ -38,4 +38,12 @@ module OpenSourceProjectsHelper
def show_origin(url)
end
def show_description(bug, open_source_project)
description = BugToOsp.where("osp_id = ? and relative_memo_id = ?", open_source_project.id, bug.id).first.description
if description.nil? || description == ''
description = open_source_project.name + l(:label_bug)
end
description
end
end

View File

@ -13,6 +13,15 @@ module SoftapplicationsHelper
content = content_tag('ul', content)
content_tag('div', content, :class => "tabs")
end
# def select_option_helper option
# tmp = Hash.new
# option.each do |project|
# tmp[project.name] = project.identifier
# end
# tmp
# end
end

8
app/models/bug_to_osp.rb Normal file
View File

@ -0,0 +1,8 @@
class BugToOsp < ActiveRecord::Base
# attr_accessible :title, :body
belongs_to :open_source_project, :foreign_key => "osp_id"
belongs_to :bug, :class_name => 'RelativeMemo', :foreign_key => "relative_memo_id"
validates_presence_of :osp_id, :relative_memo_id
end

View File

@ -13,6 +13,10 @@ class OpenSourceProject < ActiveRecord::Base
has_many :admin, :through => :masters, :class_name => 'User'
has_many :apply_tips, :class_name => 'ApplyProjectMaster', :as => :apply, :dependent => :delete_all, :conditions => "#{ApplyProjectMaster.table_name}.status = 1"
has_many :applicants, :class_name => 'User', :through => :apply_tips, :source => :user
has_many :bugs_to_osp, :class_name => 'BugToOsp', :foreign_key => 'osp_id', :dependent => :destroy
has_many :bugs, :through => :bugs_to_osp, :class_name => "RelativeMemo", :order => "#{RelativeMemo.table_name}.created_at DESC"
validates_uniqueness_of :name

View File

@ -55,6 +55,8 @@ class Project < ActiveRecord::Base
#added by xianbo for delete biding_project
has_many :biding_projects, :dependent => :destroy
has_many :contesting_projects, :dependent => :destroy
has_many :projecting_softapplications, :dependent => :destroy
has_many :softapplications, :through => :projecting_softapplications
#ended by xianbo
# added by fq
has_many :journals_for_messages, :as => :jour, :dependent => :destroy

View File

@ -0,0 +1,16 @@
class ProjectingSoftapplication < ActiveRecord::Base
attr_accessible :project_id, :softapplication_id, :user_id
belongs_to :project
belongs_to :softapplication
belongs_to :user
def self.create_softapplication_projecting(project_id, softapplication_id)
self.create(:user_id => User.current.id, :project_id => project_id,
:softapplication_id => softapplication_id)
end
end

View File

@ -11,6 +11,9 @@ class RelativeMemo < ActiveRecord::Base
has_many :no_uses, :as => :no_use, :dependent => :delete_all
has_many :bugs_to_osp, :class_name => 'BugToOsp', :foreign_key => 'relative_memo_id', :dependent => :destroy
acts_as_taggable
validates_presence_of :subject

View File

@ -1,12 +1,14 @@
class Softapplication < ActiveRecord::Base
attr_accessible :android_min_version_available, :app_type_id, :app_type_name, :description, :name, :user_id, :contest_id, :application_developers, :deposit_project_url
attr_accessible :android_min_version_available, :app_type_id, :app_type_name, :description, :name, :user_id, :contest_id, :application_developers, :deposit_project_url, :deposit_project
acts_as_attachable
seems_rateable :allow_update => true, :dimensions => :quality
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
has_many :contesting_softapplications, :dependent => :destroy
has_many :projecting_softapplications, :dependent => :destroy
belongs_to :user
belongs_to :project
has_many :contests, :through => :contesting_softapplications
def add_jour(user, notes, reference_user_id = 0, options = {})

View File

@ -87,6 +87,7 @@ class User < Principal
has_many :biding_projects, :dependent => :destroy
has_many :contesting_projects, :dependent => :destroy
has_many :contesting_softapplications, :dependent => :destroy
has_many :projecting_softapplications, :dependent => :destroy
belongs_to :softapplication, :foreign_key => 'id', :dependent => :destroy
##ended by xianbo

View File

@ -59,35 +59,44 @@
}
</script>
<%= render_flash_messages %>
<!--参赛步骤-->
<div style="padding-left: 17px; padding-bottom: 10px; color: grey">
温馨提示:如果您准备参加竞赛,请点击下面的"新建参赛作品"
<div style="padding-left: 23px; padding-bottom: 10px; color: grey; font-size: 12px">
<div>温馨提示:如果您准备参加竞赛,请点击下面的"新建参赛作品"</div>
<div style="margin-left: 59px; padding-top: 2px">1) 若您已完成开发,且只希望发布您的作品,“托管项目”一项可以不选;</div>
<div style="margin-left: 59px; padding-top: 2px">2) 若您希望托管竞赛数据和代码以及保留开发和提交代码的轨迹,请从“托管项目”中选择一项您已创建好的项目作为该参赛作品的托管项目,若您还没有创建项目,请点击右边的“创建项目”,然后回到本页再选择。</div>
</div>
<% if User.current.logged? %>
<div style="padding-bottom: 10px; line-height: 15px">
<div style="padding-left: 82px; font-size: 14px">
<span><strong>参加竞赛:</strong></span>
<span><%= link_to '新建参赛作品', "javascript:void(0);", onclick: "$('#put-project-form').toggle();" %></span>
<div style="padding-bottom: 10px; line-height: 15px">
<div style="padding-left: 82px; font-size: 14px">
<span><strong>参加竞赛:</strong></span>
<span><%= link_to '新建参赛作品', "javascript:void(0);", onclick: "$('#put-project-form').toggle();" %></span>
</div>
<!-- <div style="padding-left: 82px; ">
<span style="padding-top: 50px">步骤1</span>
<span><%#= link_to '新建参赛作品', new_softapplication_path(:target=>'_blank'), :target=>'_blank' %></span>
<span><%= link_to '新建参赛作品', "javascript:void(0);", onclick: "$('#put-project-form').toggle();" %></span>
<span style="font-size: 12px; color: grey">先点击“新建参赛作品”然后刷新页面再继续步骤2。</span>
</div> -->
</div>
<!-- <div style="padding-left: 82px; ">
<span style="padding-top: 50px">步骤1</span>
<span><%#= link_to '新建参赛作品', new_softapplication_path(:target=>'_blank'), :target=>'_blank' %></span>
<span><%= link_to '新建参赛作品', "javascript:void(0);", onclick: "$('#put-project-form').toggle();" %></span>
<span style="font-size: 12px; color: grey">先点击“新建参赛作品”然后刷新页面再继续步骤2。</span>
</div> -->
</div>
<% else %>
<div style="font-size: 14px;margin:10px;padding-left: 73px">
<%= l(:label_user_login_attending_contest) %>
<%= link_to l(:label_user_login_new), signin_path %>
</div>
<% end %>
<!--点击新建参赛作品弹出框新建参赛作品并关联到竞赛中-->
<div id="put-project-form" style="display: none; padding-left: 83px; width: 88%">
<%= form_for Softapplication.new, :url => softapplications_path do |f| %>
<fieldset class="contes-new-box", style="padding-left: 36px; line-height: 10px">
<fieldset class="contes-new-box", style="padding-left: 36px; line-height: 8px; margin-left: 1px">
<%= hidden_field_tag 'contest_id', @contest.id %>
<tr style="width:700px; margin-left: -10px;">
<span><%= l(:label_work_name) %></span>
<span class="contest-star"> * </span>: <td ><%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %></td>
<span style="font-size: 10px">(25个汉字以内)</span>
</tr><br/>
<br />
<br />
@ -124,12 +133,20 @@
</tr><br/>
<br />
<br />
<tr style="width:800px;">
<span><%= l(:label_work_deposit_project) %></span>
<span style="padding-left: 4px"><%= select_tag 'project', options_for_select(select_option_helper(@option)), :name => 'project', :class => 'grayline2' %></span>
<span><%= link_to '创建项目', new_project_path(course: 0, project_type: 0), :target=>'_blank'%></span>
</tr><br/>
<br />
<br />
<fieldset style="width: 500px; padding-top: 10px">
<legend>
上传作品软件包和作品截图
</legend>
<%= render_flash_messages %>
<%#= render_flash_messages %>
<p id="put-bid-form-partial">
<%= render :partial => 'attachments/form' %>
</p>
@ -138,9 +155,6 @@
<br>
2、<%= l(:label_upload_softapplication_photo_condition)%>
</p>
<p style="font-size: 11px; color: red">
<%= l(:label_updated_caution)%>
</p>
</fieldset>
</fieldset></br>
@ -154,7 +168,7 @@
</div>
<% end %>
<div class="underline-contests_three"></div>

View File

@ -1,73 +0,0 @@
<!--add by huang-->
<div class="clearfix"></div>
<<<<<<< HEAD
<div id="footer" style="margin-left:-5px;padding-top: 50px;clear: both;font-size: 12px;">
<div style="border-top:solid 1px #C6E9F1;width: auto;margin-top: 80px;"></div>
<div class="base_footer">
<div align="center">
<!--gcm-->
<p>
<span>主办单位:</span>
<span class="footer_text_link"><%= link_to "国防科学技术大学并行与分布处理国家重点实验室","http://www.nudt.edu.cn/ArticleShow.asp?ID=47",:target=>"_blank"%></span>
<span class="footer_text_link"><%= link_to "计算机科学与技术系", "http://www.nudt.edu.cn/ArticleShow.asp?ID=41", :target => "_blank" %></span>
<span id="copyright">版权@2007~2014</span>
<span id="contact_us" class="footer_text_link"><%= link_to "联系我们","http://forge.trustie.net/projects/2/member",:target=>"_blank"%></span>
<span id="record"class="footer_text_link"><%= link_to "湘ICP备09019772","http://www.miibeian.gov.cn/"%></span>
</p>
<div id="logo_link">
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/nudt.png',:size=>'100x30',:alt=>"国防科学技术大学计算机学院"),"http://www.nudt.edu.cn/special.asp?classid=12"%></span>
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/peking_eecs.png',:size=>'100x30',:alt=>"北京大学信息科学技术学院软件研究所"), "http://eecs.pku.edu.cn"%></span>
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/buaa_scse.png',:size=>'100x30',:alt=>"北京航空航天大学计算机学院"), "http://scse.buaa.edu.cn/"%></span>
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/iscas.png',:size=>'100x30',:alt=>"中国科学院软件研究所"), "http://www.iscas.ac.cn"%></span>
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/inforbus.png',:size=>'100x30',:alt=>"山东中创软件商用中间件股份有限公司"), "http://www.inforbus.com"%></span>
</div>
<!--gcm-->
</div>
</div>
=======
<div id="footer" style="margin-left:-5px;padding-top: 150px;clear: both;font-size: 12px;">
<div style="border-top:solid 1px #C6E9F1;"></div>
<div class="base_footer">
<div align="center">
<!--gcm-->
<p>
<span>主办单位:</span>
<span class="footer_text_link"><%= link_to "国防科学技术大学并行与分布处理国家重点实验室","http://www.nudt.edu.cn/ArticleShow.asp?ID=47",:target=>"_blank"%></span>
<span class="footer_text_link"><%= link_to "计算机科学与技术系", "http://www.nudt.edu.cn/ArticleShow.asp?ID=41", :target => "_blank" %></span>
<span id="copyright">版权@2007~2014</span>
<span id="contact_us" class="footer_text_link"><%= link_to "联系我们","http://forge.trustie.net/projects/2/member",:target=>"_blank"%></span>
<span id="record"class="footer_text_link"><%= link_to "湘ICP备09019772","http://www.miibeian.gov.cn/"%></span>
</p>
<div id="logo_link">
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/nudt.png',:size=>'100x30',:alt=>"国防科学技术大学计算机学院"),"http://www.nudt.edu.cn/special.asp?classid=12"%></span>
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/peking_eecs.png',:size=>'100x30',:alt=>"北京大学信息科学技术学院软件研究所"), "http://eecs.pku.edu.cn"%></span>
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/buaa_scse.png',:size=>'100x30',:alt=>"北京航空航天大学计算机学院"), "http://scse.buaa.edu.cn/"%></span>
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/iscas.png',:size=>'100x30',:alt=>"中国科学院软件研究所"), "http://www.iscas.ac.cn"%></span>
<span class="footer_logo_link"><%= link_to image_tag('/images/footer_logo/inforbus.png',:size=>'100x30',:alt=>"山东中创软件商用中间件股份有限公司"), "http://www.inforbus.com"%></span>
</div>
<!--gcm-->
</div>
</div>
>>>>>>> develop
</div>
</div>
<div class="debug">
<%= debug(params) if Rails.env.development? %>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-46523987-1', 'trustie.net');
ga('send', 'pageview');
</script>
</div>

View File

@ -14,7 +14,12 @@
<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 valign="top" width="500px" class="<%= topic.sticky ? 'sticky' : '' %> <%= topic.locked? ? 'locked' : '' %>">
<% if topic.url.nil? || topic.url == '' %>
<%= link_to h(topic.subject), open_source_project_relative_memo_path(open_source_project, topic) %>
<% else %>
<%= link_to h(topic.subject), topic.url %>
<% end %></td>
<td align="right" rowspan="3">
<table class="borad-count">
<tr>
@ -48,11 +53,11 @@
<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 %>
<tr>
<td align="left" colspan="2" ><span class="font_lighter"><%= user_url_and_time topic.username, topic.userhomeurl, topic.created_at %>
<br />
</span></td>
</tr> -->
</tr>
<tr>
<td align="left" colspan="2" >帖子来源:<span class="font_lighter" style="color: #068d9c"><%=link_to 'OSChina', topic.url %>
</span></td>

View File

@ -24,25 +24,29 @@
<div class="fixed"></div>
<div class="li_list" style="margin-top:10px;margin-left:10px">
<ul style="list-style-type: square;">
<% @bugs.each do |bug| %>
<li><span class="li_time">>[<%= show_description(bug, open_source_project) %>]</span><%= link_to bug.subject, bug.url %></li>
<% end %>
<!-- <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">>[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">>[远程溢出漏洞]</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-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">>[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">>[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-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>
<!-- <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>
@ -52,23 +56,32 @@
<script type="text/javascript">
$(function(){
var flow=[];
for(var i=0;i<35;i++){
for(var i=0;i<24+5;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',
name :'',
value:flow,
color:'#0d8ecf',
line_width:2
}
];
var labels = ["","2010","2011","2012","2013","2014"];
//创建x轴标签文本
var date = new Date()
var labels = [];
/* labels.push(date.getFullYear()-2);
labels.push(date.getFullYear()-1);
labels.push(date.getFullYear());*/
labels=["2012","","","","","","","","","","","","2013","","","","","","","","","","","","2014","","","",""];
var line = new iChart.LineBasic2D({
render : 'canvasDiv',
data: data,
@ -109,9 +122,30 @@
width:2,
color:'#3f8695'
},
},
listeners:{
//tip:提示框对象、name:数据名称、value:数据值、text:当前文本、i:数据点的索引
parseText:function(tip,name,value,text,i){
return name+"漏洞数:"+value;
}
} ,
},
tipMocker:function(tips,i){
var index;
if (Math.floor(i/12)==0) {
index=0;
}else if (Math.floor(i/12)==1) {
index=12;
}else{
index=24;
};
return "<div style='font-weight:400'>"+
labels[index]+" "+//日期
((i%12)==0?"1 月":((i%12+1))+"月")+ //时间
"</div>"+tips.join("<br/>");
},
// legend : {
// legend : {
// enable : true,
// row:1,//设置在一行上显示与column配合使用
// column : 'max',
@ -226,7 +260,7 @@
<!-- <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-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>
@ -243,22 +277,35 @@
<script type="text/javascript">
$(function(){
var flow=[];
for(var i=0;i<35;i++){
for(var i=0;i<24+5;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',
name : '',
value:flow,
color:'#0d8ecf',
line_width:2
}
];
var labels = ["","2010","2011","2012","2013","2014"];
//创建x轴标签文本
var date = new Date()
var labels = [];
/* labels.push(date.getFullYear()-2);
labels.push(date.getFullYear()-1);
labels.push(date.getFullYear());
labels.push(date.getFullYear()+1);*/
labels=["2012","","","","","","","","","","","","2013","","","","","","","","","","","","2014","","","",""];
var line = new iChart.LineBasic2D({
render : 'canvasDiv2',
@ -300,7 +347,29 @@
width:2,
color:'#3f8695'
},
listeners:{
//tip:提示框对象、name:数据名称、value:数据值、text:当前文本、i:数据点的索引
parseText:function(tip,name,value,text,i){
return name+"帖子数:"+value+"万";
}
} ,
},
tipMocker:function(tips,i){
var index;
if (Math.floor(i/12)==0) {
index=0;
}else if (Math.floor(i/12)==1) {
index=12;
}else{
index=24;
};
return "<div style='font-weight:400'>"+
labels[index]+" "+//日期
((i%12)==0?"1 月":((i%12+1))+"月")+ //时间
"</div>"+tips.join("<br/>");
},
crosshair:{
enable:true, //十字交叉线
line_color:'#62bce9'
@ -352,7 +421,7 @@
</script>
<!--我是分割线2===================================================================================================-->
<div class="borad-topic-count" style="margin-top:10px">
<!-- 共有 <%= link_to memos.count %> 个贴子 -->
<!-- 共有 <%#= 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>
@ -366,7 +435,7 @@
<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 valign="top" width="500px" class="<%= topic.sticky ? 'sticky' : '' %> <%= topic.locked? ? 'locked' : '' %>"><%= link_to h(topic.subject), topic.url %></td>
<td align="right" rowspan="3">
<table class="borad-count">
<tr>

View File

@ -148,7 +148,7 @@ li {
<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">
<div id ="buglist" 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>
@ -178,22 +178,32 @@ li {
<script type="text/javascript">
$(function(){
var flow=[];
for(var i=0;i<35;i++){
for(var i=0;i<24+5;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',
name : '',
value:flow,
color:'#0d8ecf',
line_width:2
}
];
//创建x轴标签文本
var date = new Date()
var labels = [];
/* labels.push(date.getFullYear()-2);
labels.push(date.getFullYear()-1);
labels.push(date.getFullYear());*/
labels=["2012","","","","","","","","","","","","2013","","","","","","","","","","","","2014","","","",""];
var labels = ["","2010","2011","2012","2013","2014"];
//var labels = ["","2010","2011","2012","2013","2014"];
var line = new iChart.LineBasic2D({
render : 'canvasDiv',
@ -220,8 +230,29 @@ li {
radius : 5,
width:2,
color:'#3f8695'
},
},
listeners:{
//tip:提示框对象、name:数据名称、value:数据值、text:当前文本、i:数据点的索引
parseText:function(tip,name,value,text,i){
return name+"漏洞数:"+value;
}
} ,
},
tipMocker:function(tips,i){
var index;
if (Math.floor(i/12)==0) {
index=0;
}else if (Math.floor(i/12)==1) {
index=12;
}else{
index=24;
};
return "<div style='font-weight:400'>"+
labels[index]+" "+//日期
((i%12)==0?"1 月":((i%12+1))+"月")+ //时间
"</div>"+tips.join("<br/>");
},
legend : {
enable : true,

View File

@ -14,7 +14,7 @@
<fieldset class="contes-new-box">
<tr style="width:700px; margin-left: -10px">
<span><%= l(:label_softapplication_name) %></span>
<span><%= l(:label_work_name) %></span>
<span class="contest-star"> * </span>: <td ><%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %></td>
<span><%= l(:label_softapplication_name_condition)%></span>
</tr></ br>
@ -22,7 +22,7 @@
<br />
<tr style="width:800px;">
<span><%= l(:label_softapplication_version_available) %></span>
<span><%= l(:label_running_platform) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :android_min_version_available, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr></ br>
@ -30,7 +30,7 @@
<br />
<tr style="width:800px;">
<span><%= l(:label_softapplication_type) %></span>
<span><%= l(:label_work_type) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %></td>
@ -39,9 +39,9 @@
<br />
<tr style="width:800px;">
<span><%= l(:label_softapplication_description) %></span>
<span><%= l(:label_work_description) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :description, :required => true, :size => 60, :style => "width:400px;" %></td>
<span><%= l(:label_softapplication_description_condition)%></span>
</tr></ br>
<br />
<br />
@ -52,10 +52,20 @@
</tr></ br>
<br />
<br />
<br />
<tr style="width:800px;">
<span><%= l(:label_work_deposit_project) %></span>
<span style="padding-left: 4px"><%= select_tag 'project', options_for_select(select_option_helper(@option)), :name => 'project', :class => 'grayline3' %></span>
<span><%#= link_to '创建项目', new_project_path(course: 0, project_type: 0), :target=>'_blank'%></span>
</tr><br/>
<br />
<br />
<fieldset style="width: 500px">
<legend>上传应用软件包和应用截图</legend>
<legend>上传作品软件包和作品截图</legend>
<%= render_flash_messages %>
<p id="put-bid-form-partial">
<%= render :partial => 'attachments/form' %>

View File

@ -28,25 +28,26 @@
</div>
<% if User.current.logged? %>
<table border="0" width="525px" align="center" >
<tr>
<td><%= f.text_area 'message', :rows => 3, :cols => 65, :placeholder => l(:label_my_respond), :style => "resize: none;", :class => 'noline'%></td>
</tr>
</table>
<%= f.text_field :reference_user_id, :style=>"display:none"%> <!--what function?-->
<!-- modified by bai -->
<table border="0" width="518px" align="center">
<tr>
<td align="right"> <%= submit_tag l(:label_button_ok), :name => nil , :class => "softapplication_btn", :onmouseout => "this.style.backgroundPosition = 'left top'", :onmouseover => "this.style.backgroundPosition = 'left -31px'"%>
<%= submit_tag l(:button_clear_requirement), :name => nil, :onclick => "clearMessage('softapplication_message_message');", :type => 'button', :class => "bid_btn", :onmouseout => "this.style.backgroundPosition = 'left top'", :onmouseover => "this.style.backgroundPosition = 'left -31px'" %> </td>
</tr>
</table>
<!-- end -->
<% unless User.current.id == @softapplication.user_id %>
<table border="0" width="525px" align="center" >
<tr>
<td><%= f.text_area 'message', :rows => 3, :cols => 65, :placeholder => l(:label_my_respond), :style => "resize: none;", :class => 'noline'%></td>
</tr>
</table>
<%= f.text_field :reference_user_id, :style=>"display:none"%> <!--what function?-->
<!-- modified by bai -->
<table border="0" width="518px" align="center">
<tr>
<td align="right"> <%= submit_tag l(:label_button_ok), :name => nil , :class => "softapplication_btn", :onmouseout => "this.style.backgroundPosition = 'left top'", :onmouseover => "this.style.backgroundPosition = 'left -31px'"%>
<%= submit_tag l(:button_clear_requirement), :name => nil, :onclick => "clearMessage('softapplication_message_message');", :type => 'button', :class => "bid_btn", :onmouseout => "this.style.backgroundPosition = 'left top'", :onmouseover => "this.style.backgroundPosition = 'left -31px'" %> </td>
</tr>
</table>
<% end %>
<% else %>
<div style="font-size: 14px;margin:10px;">
<%= l(:label_user_login_tips) %>
<%= l(:label_user_login_score_and_comment) %>
<%= link_to l(:label_user_login_new), signin_path %>
</div>
<% end %>

View File

@ -1,4 +1,4 @@
<h3 style="font-size: 18px"><%= l(:label_edit_softapplication)%></h3>
<h3 style="font-size: 18px"><%= l(:label_edit_work)%></h3>
<%= render partial: 'form', locals:{softapplication: @softapplication} %>

View File

@ -1,12 +0,0 @@
<h3><%=l(:label_release_softapplication)%></h3>
<!-- <%= render 'form' %>
<%= link_to 'Back', softapplications_path %> -->
<%= labelled_form_for @softapplication, :url => {:controller => 'softapplications', :action => 'create'}, method: :post do |f| %>
<div class="box tabular">
<%= render :partial => 'form', :locals => { :f => f } %>
<%= submit_tag l(:button_create) %>
<% end %>
</div>

View File

@ -1,12 +0,0 @@
<h3><%=l(:label_release_softapplication)%></h3>
<!-- <%= render 'form' %>
<%= link_to 'Back', softapplications_path %> -->
<%= labelled_form_for @softapplication, :url => {:controller => 'softapplications', :action => 'create'}, method: :post do |f| %>
<div class="box tabular">
<%= render :partial => 'form', :locals => { :f => f } %>
<%= submit_tag l(:button_create) %>
<!-- <%= javascript_tag "$('#bid_name').focus();" %> -->
<% end %>
</div>

View File

@ -1,64 +0,0 @@
<h3><%= l(:label_release_softapplication)%></h3> <!-- <%= render 'form' %>
<%= link_to 'Back', softapplications_path %> -->
<div id="put-bid-form" style="">
<%= form_for Softapplication.new, :url => {:controller => 'softapplications', :action => 'create'}, :update => "bidding_project_list", :complete => '$("#put-bid-form").hide();', :html => {:multipart => true, :id => 'add_homework_form'} do |f| %>
<fieldset>
<legend>
<%= l(:label_attachment_plural) %>
</legend>
<tr style="width:700px; margin-left: -10px">
<td><%= l(:label_softapplication_name) %></td>
<td style="require, color: #bb0000"> * </td>: <td ><%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %></td>
<td><%= l(:label_softapplication_name_condition)%></td>
</tr></ br>
<br />
<br />
<tr style="width:800px;">
<td><%= l(:label_softapplication_version_available) %></td>
<td style="require, color: #bb0000"> * </td>: <td style="width: 100px"><%= f.text_field :android_min_version_available, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr></ br>
<br />
<br />
<tr style="width:800px;">
<td><%= l(:label_softapplication_type) %></td>
<td style="require, color: #bb0000"> * </td>: <td style="width: 100px"><%= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr></ br>
<br />
<br />
<tr style="width:800px;">
<td><%= l(:label_softapplication_description) %></td>
<td style="require, color: #bb0000"> * </td>: <td style="width: 100px"><%= f.text_field :description, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr></ br>
<br />
<br />
<%= render_flash_messages %>
<p id="put-bid-form-partial">
<%= render :partial => 'attachments/form' %>
</p>
</fieldset>
<%= submit_tag l(:button_create), :onclick => "return true" %>
<script type="text/javascript">
function j_submit () {
alert('start')
var submit_homework = function(){
$('#add_homework_form').clone().attr('action', '<%= url_for({:controller => "softapplications", :action => "create"})+".js" %>').ajaxSubmit()
};
alert('stop')
$.globalEval(submit_homework());
return false;
}
</script>
</div>
<% end %>
</div>

View File

@ -1,6 +1,6 @@
<%= render :partial => 'layouts/base_softapplication_top_content' %>
<p id="notice"><%= notice %></p>
<div style="height: auto; padding-bottom: 10px">
<tr>
@ -32,22 +32,25 @@
</span>
</td>
<td>开发人员:<%= @softapplication.application_developers %></td>
</tr>
<tr>
<td style="padding-left: 40px">平均评分: <%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></td>
<td>发布时间:<%= format_time @softapplication.created_at %></td>
</tr>
<tr>
<td style="padding-left: 40px">
<% unless @softapplication.deposit_project_url.nil? %>
<%= textilizable ("托管项目网址: " + @softapplication.deposit_project_url) %>
<% end %>
</td>
</tr>
</table>
</td>
</tr>
<td>开发人员:<%= @softapplication.application_developers %></td>
</tr>
<tr>
<td style="padding-left: 40px">平均评分: <%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></td>
<td>发布时间:<%=format_time @softapplication.created_at %></td>
</tr>
<tr>
<td style="padding-left: 40px">
<% if (@softapplication.deposit_project != "nil" && @softapplication.deposit_project != "") %>
<%#= textilizable ("托管项目: " + @project.name) %>
托管项目:<%= link_to "#@project", project_path(@project.id) %>
<% end %>
</td>
</tr>
</table>
</td>
</tr>
</div>
<div class="underline-contests_one"></div>
@ -117,8 +120,10 @@
<div style="height: 50px">
<div style="font-size: 15px"><strong>作品评论:</strong></div>
<div style="padding-left: 210px">评分: <%= rating_for @softapplication, dimension: :quality, class: 'rateable div_inline' %>
<span style="font-size: 11px">(您可以重新打分,打分结果以最后一次打分为主!)</span></div>
<% if (User.current.logged? and User.current.id != @softapplication.user_id) %>
<div style="padding-left: 210px">评分: <%= rating_for @softapplication, dimension: :quality, class: 'rateable div_inline' %>
<span style="font-size: 11px">(您可以重新打分,打分结果以最后一次打分为主!)</span></div>
<% end %>
</div>

View File

@ -189,7 +189,7 @@
<% find_new_forum_topics(11).each do |topic|%>
<li class="message-brief-intro" style="min-height: 60px; line-height:2em; ">
<div style="display: inline-block; width: 100%;">
<span class="memo_activity" style="color:gray; display: inline-block; margin-bottom:6px; background: url('/images/list-icon.png') no-repeat scroll ;background-position: left center;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="memo_activity text_nowrap" style="color:gray; display: inline-block; margin-bottom:6px; background: url('/images/list-icon.png') no-repeat scroll ;background-position: left center;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<%= link_to '['+topic.forum.name + ']',forum_path(topic.forum),:class => 'memo_Bar_title' %><%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray" , :style => "font-size: 10pt !important;" %>
</span>
<div class='memo_activity memo_attr'>

View File

@ -234,7 +234,7 @@
<% find_new_forum_topics(10).each do |topic|%>
<li class="message-brief-intro" style="min-height: 65px; line-height:2em; ">
<div style="display: inline-block; width: 100%;">
<span class="memo_activity" style="color:gray; display: inline-block; margin-bottom:6px; background: url('/images/list-icon.png') no-repeat scroll ;background-position: left center;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span class="memo_activity text_nowrap" style="color:gray; display: inline-block; margin-bottom:6px; background: url('/images/list-icon.png') no-repeat scroll ;background-position: left center;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<%= link_to '['+topic.forum.name + ']',forum_path(topic.forum),:class => 'memo_Bar_title' %><%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray" , :style => "font-size: 10pt !important;" %>
</span>
<div class='memo_activity memo_attr'>

View File

@ -112,7 +112,7 @@
<div class="welcome-box-list-new memo_activity">
<% find_new_forum_topics(7).each do |topic|%>
<li class="message-brief-intro">
<div class='memo_title'>
<div class='memo_title text_nowrap'>
<%= link_to '['+topic.forum.name + ']',forum_path(topic.forum),:class => 'memo_Bar_title' %><%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url,title: topic.subject %>
</div>
<div class='memo_attr'>

View File

@ -561,6 +561,8 @@ zh:
label_user_login_tips: 您还没有登录,请登录后留言
label_user_login_course_board: 您还没有登录,请登录后参与课程讨论
label_user_login_project_board: 您还没有登录,请登录后参与项目讨论
label_user_login_attending_contest: 您还没有登录,请登录后参赛
label_user_login_score_and_comment: 您还没有登录,请登录后对作品进行打分评价
#end
#by huang # modified by bai
label_college: 高校进入
@ -1871,7 +1873,7 @@ zh:
label_upload_softapplication_photo: 上传产品截图
label_upload_softapplication_packets_mustpacketed: 作品相关代码及相关说明文件必须打包后以压缩包的形式上传,便于上传和下载
label_upload_softapplication_photo_condition: 作品截图需上传0~4张格式为gif/jpg/png 每张小于5M
label_updated_caution: 注意:若参赛作品,则之前上传的软件包和截图都将被删除,请重新上传!
label_updated_caution: 注意:若编辑参赛作品,则之前上传的软件包和截图都将被删除,请重新上传!
label_softapplication_name: 应用名称
label_work_name: 作品名称
label_softapplication_description: 应用简介
@ -1883,7 +1885,9 @@ zh:
label_softapplication_developer: 上传人员
label_softapplication_developers: 开发人员
label_work_deposit_project_url: 托管项目网址
label_work_deposit_project: 托管项目
label_softapplication_name_condition: 25个汉字以内50个字符
label_softapplication_description_condition: 125个汉字以内
label_user_login_softapplication_board: 您还没有登录,请登录后参与应用评价。
label_contest_description_no: 暂无描述。
label_no_contest_softapplication: 暂无参赛应用
@ -1895,6 +1899,7 @@ zh:
label_add_contest_succeed_fail: 添加失败,该应用已参赛.
label_no_ftapplication: 暂无应用
label_edit_softapplication: 修改应用
label_edit_work: 修改作品
label_contest_delete: 删除竞赛
label_softapplication_list: 应用列表
label_contest_work_list: 参赛作品列表
@ -1914,6 +1919,10 @@ zh:
label_contest_delete: 删除竞赛
label_noawards_current: 暂未评奖
notice_account_updated: 帐号更新成功
notice_attendingcontest_work_successfully_created: 恭喜您,参赛作品创建成功!
notice_softapplication_was_successfully_updated: 恭喜您,参赛作品更新成功!
# ajax异步验证
modal_valid_passing: 可以使用
label_bug: 漏洞

View File

@ -0,0 +1,5 @@
class AddUserIdToProjects < ActiveRecord::Migration
def change
add_column :projects, :user_id, :integer
end
end

View File

@ -0,0 +1,14 @@
class CreateProjectingSoftapplictions < ActiveRecord::Migration
def up
create_table :projecting_softapplictions do |t|
t.integer :user_id
t.integer :softapplication_id
t.integer :project_id
t.timestamps
end
def down
drop_table :projecting_softapplictions
end
end
end

View File

@ -0,0 +1,5 @@
class AddDepositProjectToSoftapplications < ActiveRecord::Migration
def change
add_column :softapplications, :deposit_project, :string
end
end

View File

@ -0,0 +1,5 @@
class AddTopicResourceToRelativeMemo < ActiveRecord::Migration
def change
add_column :relative_memos, :topic_resource, :string
end
end

View File

@ -0,0 +1,10 @@
class CreateBugToOsps < ActiveRecord::Migration
def change
create_table :bug_to_osps do |t|
t.integer :osp_id
t.integer :relative_memo_id
t.string :description
t.timestamps
end
end
end

View File

@ -121,6 +121,14 @@ ActiveRecord::Schema.define(:version => 20140519074133) do
add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id"
add_index "boards", ["project_id"], :name => "boards_project_id"
create_table "bug_to_osps", :force => true do |t|
t.integer "osp_id"
t.integer "relative_memo_id"
t.string "description"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "changes", :force => true do |t|
t.integer "changeset_id", :null => false
t.string "action", :limit => 1, :default => "", :null => false
@ -699,6 +707,7 @@ ActiveRecord::Schema.define(:version => 20140519074133) do
t.string "username"
t.string "userhomeurl"
t.date "date_collected"
t.string "topic_resource"
end
create_table "repositories", :force => true do |t|
@ -787,6 +796,7 @@ ActiveRecord::Schema.define(:version => 20140519074133) do
t.integer "softapplication_id"
t.integer "is_public"
t.string "application_developers"
t.string "deposit_project_url"
t.string "deposit_project"
end

1074
db/schema.rb.orig Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,582 +1,15 @@
@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;
@ -588,104 +21,18 @@ 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 {
.li_list 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;
@ -693,14 +40,16 @@ list-style-type:square;
padding:2px;
}
.fixed,.clear {
clear:both;
}
h1,h2 {
font-size:18px;
}
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;
}

View File

@ -399,7 +399,7 @@ a.attachments_list_color {
/************************** 贴吧动态 开始 *****************************/
/*贴吧活动*/
.memo_activity{
max-width: 100%;
}
/*帖子li*/
.memo_activity .message-brief-intro{
@ -418,6 +418,7 @@ a.attachments_list_color {
padding-left: 20px;
background: url('../images/list-icon.png') no-repeat scroll left center;
font-size: 10pt;
max-width: 100%
}
/*帖子标题前吧名*/
.memo_activity .memo_Bar_title{

View File

@ -1867,6 +1867,23 @@ a.reference {
color: #ACAEB1;
width: 100%;
}
.grayline2{
border: #039EA0 1px solid;
/*border: rgb(3,158,160) 1px solid;*/
font-size: 12px;
color: #ACAEB1;
width: 72.4%;
}
.grayline3{
border: #039EA0 1px solid;
/*border: rgb(3,158,160) 1px solid;*/
font-size: 12px;
color: #ACAEB1;
width: 48.4%;
}
div.tableline{
height: 1px;
background-color: #ACAEB1;

11
test/fixtures/bug_to_osps.yml vendored Normal file
View File

@ -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

View File

@ -0,0 +1,7 @@
require 'test_helper'
class BugToOspTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
end