|
@ -1921,6 +1921,8 @@ module ApplicationHelper
|
||||||
forum_link = link_to l(:label_forum_all), {:controller => "forums", :action => "index"}
|
forum_link = link_to l(:label_forum_all), {:controller => "forums", :action => "index"}
|
||||||
stores_link = link_to l(:label_stores_index), {:controller => 'stores', :action=> 'index'}
|
stores_link = link_to l(:label_stores_index), {:controller => 'stores', :action=> 'index'}
|
||||||
school_all_school_link = link_to l(:label_school_all), {:controller => 'school', :action => 'index'}
|
school_all_school_link = link_to l(:label_school_all), {:controller => 'school', :action => 'index'}
|
||||||
|
project_new_link = link_to l(:label_project_new), {:controller => 'projects', :action => 'new', :host => Setting.project_domain}
|
||||||
|
# project_mine_link = link_to l(:label_my_project), {:controller => 'users', :action => 'user_projects', :host => Setting.project_domain}
|
||||||
|
|
||||||
#@nav_dispaly_project_label
|
#@nav_dispaly_project_label
|
||||||
nav_list = Array.new
|
nav_list = Array.new
|
||||||
|
@ -1933,6 +1935,8 @@ module ApplicationHelper
|
||||||
nav_list.push(main_contest_link) if @nav_dispaly_main_contest_label && @show_contest == 1
|
nav_list.push(main_contest_link) if @nav_dispaly_main_contest_label && @show_contest == 1
|
||||||
|
|
||||||
nav_list.push(courses_link) if @nav_dispaly_course_label && @show_course == 1
|
nav_list.push(courses_link) if @nav_dispaly_course_label && @show_course == 1
|
||||||
|
nav_list.push(project_new_link) if @nav_dispaly_project_label
|
||||||
|
# nav_list.push(project_mine_link) if @nav_dispaly_main_project_label
|
||||||
# nav_list.push(projects_link) if @nav_dispaly_project_label
|
# nav_list.push(projects_link) if @nav_dispaly_project_label
|
||||||
#nav_list.push(users_link) if @nav_dispaly_user_label
|
#nav_list.push(users_link) if @nav_dispaly_user_label
|
||||||
# nav_list.push(contest_link) if @nav_dispaly_contest_label && @show_contest == 1
|
# nav_list.push(contest_link) if @nav_dispaly_contest_label && @show_contest == 1
|
||||||
|
|
|
@ -35,6 +35,16 @@ module AttachmentsHelper
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def link_to_attachment_project(container, options = {})
|
||||||
|
options.assert_valid_keys(:author, :thumbnails)
|
||||||
|
|
||||||
|
if container.attachments.any?
|
||||||
|
options = {:deletable => container.attachments_deletable?, :author => true}.merge(options)
|
||||||
|
render :partial => 'attachments/project_file_links',
|
||||||
|
:locals => {:attachments => container.attachments, :options => options, :thumbnails => (options[:thumbnails] && Setting.thumbnails_enabled?)}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def link_to_attachments_course(container, options = {})
|
def link_to_attachments_course(container, options = {})
|
||||||
options.assert_valid_keys(:author, :thumbnails)
|
options.assert_valid_keys(:author, :thumbnails)
|
||||||
|
|
||||||
|
|
|
@ -304,7 +304,7 @@ module WatchersHelper
|
||||||
def exit_project_link(project)
|
def exit_project_link(project)
|
||||||
link_to(l(:label_exit_project),exit_cur_project_path(project.id),
|
link_to(l(:label_exit_project),exit_cur_project_path(project.id),
|
||||||
:remote => true, :confirm => l(:lable_sure_exit_project),
|
:remote => true, :confirm => l(:lable_sure_exit_project),
|
||||||
:style => "color: #fff; display:block;font-size:12px; padding: 0px 5px; margin-right: 10px; height: 20px; line-height: 22px; background: none repeat scroll 0% 0% #64BDD9; TES;padding-top:1px;" )
|
:class => "pr_join_a" )
|
||||||
end
|
end
|
||||||
|
|
||||||
#项目关注、取消关注
|
#项目关注、取消关注
|
||||||
|
@ -321,7 +321,7 @@ module WatchersHelper
|
||||||
:object_id => (objects.size == 1 ? objects.first.id : objects.map(&:id).sort))
|
:object_id => (objects.size == 1 ? objects.first.id : objects.map(&:id).sort))
|
||||||
method = watched ? 'delete' : 'post'
|
method = watched ? 'delete' : 'post'
|
||||||
link_to text, url, :remote => true, :method => method,
|
link_to text, url, :remote => true, :method => method,
|
||||||
:class => "project_watch_new" ,:id=>id
|
:class => "pr_join_a" ,:id=>id
|
||||||
end
|
end
|
||||||
|
|
||||||
#申请加入项目
|
#申请加入项目
|
||||||
|
@ -339,7 +339,7 @@ module WatchersHelper
|
||||||
:user_id => user.id,
|
:user_id => user.id,
|
||||||
:project_id => project.id)
|
:project_id => project.id)
|
||||||
method = applied ? 'delete' : 'post'
|
method = applied ? 'delete' : 'post'
|
||||||
link_to text, url, :remote => true, :method => method , :class => "project_watch_new",:id => id
|
link_to text, url, :remote => true, :method => method , :class => "pr_join_a",:id => id
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
<span id="attachments_fields" xmlns="http://www.w3.org/1999/html">
|
||||||
|
<% if defined?(container) && container && container.saved_attachments %>
|
||||||
|
<% if isReply %>
|
||||||
|
<% container.saved_attachments.each_with_index do |attachment, i| %>
|
||||||
|
<span id="attachments_p<%= i %>" class="attachment">
|
||||||
|
<%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename readonly', :readonly=>'readonly')%>
|
||||||
|
<%= text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 255, :placeholder => l(:label_optional_description), :class => 'description', :style=>"display: inline-block;") +
|
||||||
|
link_to(' '.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload') %>
|
||||||
|
<%#= render :partial => 'tags/tag', :locals => {:obj => attachment, :object_flag => "6"} %>
|
||||||
|
<span class="ispublic-label"><%= l(:field_is_public)%>:</span>
|
||||||
|
<%= check_box_tag("attachments[p#{i}][is_public_checkbox]", attachment.is_public,attachment.is_public == 1 ? true : false, :class => 'is_public')%>
|
||||||
|
<%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<% container.attachments.each_with_index do |attachment, i| %>
|
||||||
|
<span id="attachments_p<%= i %>" class="attachment">
|
||||||
|
<%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename readonly', :readonly=>'readonly')%>
|
||||||
|
<%= text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 255, :placeholder => l(:label_optional_description), :class => 'description', :style=>"display: inline-block;") +
|
||||||
|
link_to(' '.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload') %>
|
||||||
|
<%#= render :partial => 'tags/tag', :locals => {:obj => attachment, :object_flag => "6"} %>
|
||||||
|
<span class="ispublic-label"><%= l(:field_is_public)%>:</span>
|
||||||
|
<%= check_box_tag("attachments[p#{i}][is_public_checkbox]", attachment.is_public,attachment.is_public == 1 ? true : false, :class => 'is_public')%>
|
||||||
|
<%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</span></br>
|
||||||
|
<script type='text/javascript'>
|
||||||
|
// function CompatibleSend()
|
||||||
|
// {
|
||||||
|
// var obj=document.getElementById("_file");
|
||||||
|
// var file= $(obj).clone();
|
||||||
|
// file.click();
|
||||||
|
// }
|
||||||
|
</script>
|
||||||
|
<span class="add_attachment">
|
||||||
|
<%#= button_tag "浏览", :type=>"button", :onclick=>"CompatibleSend();" %>
|
||||||
|
<!--%= link_to image_tag(),"javascript:void(0)", :onclick => "_file.click()"%-->
|
||||||
|
<%= button_tag "浏览", :type=>"button", :onclick=>"_file.click()",:class =>"sub_btn",:style => ie8? ? 'display:none' : '' %>
|
||||||
|
<%= file_field_tag 'attachments[dummy][file]',
|
||||||
|
:id => '_file',
|
||||||
|
:class => 'file_selector',
|
||||||
|
:multiple => true,
|
||||||
|
:onchange => 'addInputFiles(this);',
|
||||||
|
:style => 'display:none',
|
||||||
|
:data => {
|
||||||
|
:max_file_size => Setting.attachment_max_size.to_i.kilobytes,
|
||||||
|
:max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)),
|
||||||
|
:max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
|
||||||
|
:upload_path => uploads_path(:format => 'js'),
|
||||||
|
:description_placeholder => l(:label_optional_description),
|
||||||
|
:field_is_public => l(:field_is_public),
|
||||||
|
:are_you_sure => l(:text_are_you_sure),
|
||||||
|
:file_count => l(:label_file_count),
|
||||||
|
:delete_all_files => l(:text_are_you_sure_all)
|
||||||
|
} %>
|
||||||
|
<span id="upload_file_count" :class="c_grey"><%= l(:label_no_file_uploaded)%></span>
|
||||||
|
(<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<% content_for :header_tags do %>
|
||||||
|
<%= javascript_include_tag 'attachments' %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
<div class="attachments" style="font-weight:normal;">
|
||||||
|
<% is_float ||= false %>
|
||||||
|
<% for attachment in attachments %>
|
||||||
|
<p style="width: 100%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
|
||||||
|
<%if is_float%>
|
||||||
|
<div style="max-width:55%;white-space: nowrap; overflow: hidden; text-overflow: ellipsis;float: left;">
|
||||||
|
<% end%>
|
||||||
|
<span title="<%= attachment.filename%>" id = "attachment_">
|
||||||
|
<% if options[:length] %>
|
||||||
|
<%= link_to_short_attachment attachment, :class => ' link_file_board', :download => true,:length => options[:length] -%>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to_short_attachment attachment, :class => ' link_file_board', :download => true -%>
|
||||||
|
<% end %>
|
||||||
|
</span>
|
||||||
|
<%if is_float%>
|
||||||
|
</div>
|
||||||
|
<% end%>
|
||||||
|
|
||||||
|
<% if attachment.is_text? %>
|
||||||
|
<%= link_to image_tag('magnifier.png'),
|
||||||
|
:controller => 'attachments',
|
||||||
|
:action => 'show',
|
||||||
|
:id => attachment,
|
||||||
|
:filename => attachment.filename%>
|
||||||
|
<% end %>
|
||||||
|
<span title="<%= attachment.description%>">
|
||||||
|
<%= h(truncate(" - #{attachment.description}", length: options[:length] ? options[:length]:15, omission: '...')) unless attachment.description.blank? %>
|
||||||
|
</span>
|
||||||
|
<span class="size">(
|
||||||
|
<%= number_to_human_size attachment.filesize %>)
|
||||||
|
</span>
|
||||||
|
<% if options[:deletable] %>
|
||||||
|
<% if attachment.container_type == 'HomeworkAttach' %>
|
||||||
|
<%= link_to image_tag('delete.png'), {:controller => 'attachments', :action => 'delete_homework', :id => attachment.id},
|
||||||
|
:data => {:confirm => l(:text_are_you_sure)},
|
||||||
|
:method => :delete,
|
||||||
|
:class => 'delete delete-homework-icon',
|
||||||
|
:remote => true,
|
||||||
|
:title => l(:button_delete) %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to image_tag('delete.png'), attachment_path(attachment),
|
||||||
|
:data => {:confirm => l(:text_are_you_sure)},
|
||||||
|
:method => :delete,
|
||||||
|
:class => 'delete',
|
||||||
|
#:remote => true,
|
||||||
|
#:id => "attachments_" + attachment.id.to_s,
|
||||||
|
:title => l(:button_delete) %>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<% if options[:wrap] %>
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
<% if options[:author] %>
|
||||||
|
<span class="author" title="<%= attachment.author%>">
|
||||||
|
<%= link_to h(truncate(attachment.author.name, length: 10, omission: '...')),user_path(attachment.author) %>,
|
||||||
|
<%= format_time(attachment.created_on) %>
|
||||||
|
</span>
|
||||||
|
<% end %>
|
||||||
|
</p>
|
||||||
|
<% end %>
|
||||||
|
<% if defined?(thumbnails) && thumbnails %>
|
||||||
|
<% images = attachments.select(&:thumbnailable?) %>
|
||||||
|
<% if images.any? %>
|
||||||
|
<div class="thumbnails">
|
||||||
|
<% images.each do |attachment| %>
|
||||||
|
<div><%= thumbnail_tag(attachment) %></div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
|
@ -1,4 +1,4 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript" xmlns="http://www.w3.org/1999/html">
|
||||||
function submitProjectBoard()
|
function submitProjectBoard()
|
||||||
{
|
{
|
||||||
if(regexSubject()&®exContent())
|
if(regexSubject()&®exContent())
|
||||||
|
@ -37,7 +37,6 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<!-- 内容显示部分 -->
|
<!-- 内容显示部分 -->
|
||||||
<div class="project_right">
|
|
||||||
<div class="project_r_h">
|
<div class="project_r_h">
|
||||||
<h2 class="project_h2"><%= h @board.name %></h2>
|
<h2 class="project_h2"><%= h @board.name %></h2>
|
||||||
</div>
|
</div>
|
||||||
|
@ -45,7 +44,7 @@
|
||||||
<div class="fl">项目讨论区共有<span><%= @topic_count %></span>个帖子 </div>
|
<div class="fl">项目讨论区共有<span><%= @topic_count %></span>个帖子 </div>
|
||||||
<% if @project.enabled_modules.where("name = 'boards'").count > 0 && User.current.member_of?(@project) %>
|
<% if @project.enabled_modules.where("name = 'boards'").count > 0 && User.current.member_of?(@project) %>
|
||||||
<span><%= link_to l(:label_message_new), new_board_message_path(@board),
|
<span><%= link_to l(:label_message_new), new_board_message_path(@board),
|
||||||
:class => 'problem_new_btn fl',
|
:class => 'problem_new_btn fl c_dorange',
|
||||||
:onclick => 'showAndScrollTo("add-message", "message_subject"); return false;' if User.current.logged? %></span>
|
:onclick => 'showAndScrollTo("add-message", "message_subject"); return false;' if User.current.logged? %></span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
@ -54,34 +53,26 @@
|
||||||
<% if @topics.any? %>
|
<% if @topics.any? %>
|
||||||
<% @topics.each do |topic| %>
|
<% @topics.each do |topic| %>
|
||||||
<div class="problem_main">
|
<div class="problem_main">
|
||||||
<a>
|
<%= link_to image_tag(url_to_avatar(topic.author), :width=>"32",:height=>"32"), user_path(topic.author),:class => 'problem_pic talk_pic fl' %>
|
||||||
<%= link_to image_tag(url_to_avatar(topic.author), :class => "problem_pic talk_pic fl"), user_path(topic.author) %>
|
|
||||||
</a>
|
|
||||||
<div class="talk_txt fl">
|
<div class="talk_txt fl">
|
||||||
<div>
|
<%= link_to h(topic.subject), board_message_path(@board, topic), title:topic.subject.to_s, :class =>"problem_tit fl" %>
|
||||||
<span><%= link_to h(topic.subject), board_message_path(@board, topic), title:topic.subject.to_s, :class =>"problem_tit fl" %></span>
|
|
||||||
<% if topic.sticky? %>
|
<% if topic.sticky? %>
|
||||||
<span class="talk_up">置顶</span>
|
<span class="talk_up fl c_red">置顶</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<br/>
|
||||||
|
<p>由<%= link_to topic.author, user_path(topic.author), :class =>"problem_name c_orange" %>添加于<%= format_time topic.created_on %></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="problem_line">
|
<%=link_to (l(:label_reply) + topic.replies_count.to_s), board_message_path(@board, topic),:class => "talk_btn fr c_white" %>
|
||||||
<span>由<%= link_to topic.author, user_path(topic.author), :class =>"problem_name" %></span>
|
|
||||||
<span>添加于<%= format_time topic.created_on %></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<span class="talk_btn fr">回复<%= link_to (topic.replies_count), board_message_path(@board, topic), :style =>"color:#fff;" %></span>
|
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div><!--讨论主类容 end-->
|
</div><!--讨论主类容 end-->
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<p class="nodata"><%= l(:label_no_data) %></p>
|
||||||
|
<% end %>
|
||||||
<ul class="wlist">
|
<ul class="wlist">
|
||||||
<%= pagination_links_full @topic_pages, @topic_count, :per_page_links => false, :remote => false, :flag => true %>
|
<%= pagination_links_full @topic_pages, @topic_count, :per_page_links => false, :remote => false, :flag => true %>
|
||||||
</ul>
|
</ul>
|
||||||
<% else %>
|
|
||||||
<p class="nodata"><%= l(:label_no_data) %></p>
|
|
||||||
<% end %>
|
|
||||||
<!--讨论主类容 end-->
|
<!--讨论主类容 end-->
|
||||||
<div class="cl"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<% other_formats_links do |f| %>
|
<% other_formats_links do |f| %>
|
||||||
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
||||||
|
|
|
@ -1,69 +1,28 @@
|
||||||
<div class="autoscroll">
|
|
||||||
<ul>
|
|
||||||
<% issue_list(issues) do |issue, level| -%>
|
<% issue_list(issues) do |issue, level| -%>
|
||||||
<% if @query.grouped? && (group = @query.group_by_column.value(issue)) != previous_group %>
|
<% if @query.grouped? && (group = @query.group_by_column.value(issue)) != previous_group %>
|
||||||
<% reset_cycle %>
|
<% reset_cycle %>
|
||||||
<% previous_group = group %>
|
<% previous_group = group %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div style="">
|
<!-- CONTENT LIST -->
|
||||||
<li id="issue-<%= issue.id %>" class="hascontextmenu-1 <%= issue.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
|
<div class="problem_main">
|
||||||
|
<!--< id="issue-<%#= issue.id %>" class="hascontextmenu-1 <%#= issue.css_classes %> <%#= level > 0 ? "idnt idnt-#{level}" : nil %>" >-->
|
||||||
<% column_content = ( query.inline_columns.map {|column| "#{column_content_new(column, issue)}"}) %>
|
<% column_content = ( query.inline_columns.map {|column| "#{column_content_new(column, issue)}"}) %>
|
||||||
<% if issue.tracker_id == 1 %>
|
|
||||||
<%= image_tag("/images/task.png", :class => "img-tag-issues") %>
|
|
||||||
<% end %>
|
|
||||||
<% if issue.tracker_id == 2 %>
|
|
||||||
<%= image_tag("/images/feature.png", :class => "img-tag-issues") %>
|
|
||||||
<% end %>
|
|
||||||
<% if issue.tracker_id == 3 %>
|
|
||||||
<%= image_tag("/images/support.png", :class => "img-tag-issues") %>
|
|
||||||
<% end %>
|
|
||||||
<% if issue.tracker_id == 4 %>
|
|
||||||
<%= image_tag("/images/issues.png", :class => "img-tag-issues") %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<ul class="issue_list">
|
|
||||||
<% unless issue.author.nil? || issue.author.name == "Anonymous" %>
|
<% unless issue.author.nil? || issue.author.name == "Anonymous" %>
|
||||||
<ul class="list-group-item-meta" style="word-break: break-all;word-wrap: break-word;width: 100%;">
|
<a class="problem_pic fl"><%= image_tag(url_to_avatar(issue.author), :width => "42", :height => "42") %></a>
|
||||||
<!-- 在这里添加赞和踩-->
|
<div class="problem_txt fl">
|
||||||
<span id="praise_tread" style="float: right">
|
<%= link_to issue.author.name, user_path(issue.author), :class => "problem_name c_orange fl" %>
|
||||||
<%= render :partial => "/praise_tread/praise_tread",:locals =>
|
<span class="fl"><%= l(:label_post_on_issue) %>(<%= "#{raw column_content[2]}" %>):</span>
|
||||||
{:obj => issue,:show_flag => true,:user_id =>User.current.id,:horizontal => false}%>
|
<%=link_to column_content[4], issue_path(issue.id), :class => "problem_tit fl" %><br />
|
||||||
</span>
|
<p><%= textilizable issue, :description %></p><br/>
|
||||||
<span>
|
<p>
|
||||||
<%= link_to issue.author.name, user_path(issue.author), :class => "bid_user_u" %>
|
|
||||||
</span>
|
|
||||||
<%= l(:label_post_on)%>
|
|
||||||
<% a = [] %>
|
|
||||||
<% a << column_content[1] %>
|
|
||||||
<%# a << "##{column_content[0]}" << "(#{raw column_content[2]}):" << column_content[4] %>
|
|
||||||
<% a << "#{issue.source_from}" << "(#{raw column_content[2]}):" << column_content[4] %>
|
|
||||||
<%= link_to a.join(' '), issue_path(issue.id), :class => "issue-link" , :target =>"_blank"%>
|
|
||||||
|
|
||||||
<ul class="list-group-item-meta">
|
|
||||||
<div class="wiki" style="width: 100%;word-break: break-all;word-wrap: break-word;">
|
|
||||||
<%= textilizable issue, :description %>
|
|
||||||
</div>
|
|
||||||
</ul>
|
|
||||||
</ul>
|
|
||||||
<ul class="list-group-item-meta" style="margin-top: -15px;">
|
|
||||||
<% unless issue.assigned_to_id.nil? %>
|
<% unless issue.assigned_to_id.nil? %>
|
||||||
<span>
|
<%= l(:field_assigned_to) %>
|
||||||
<%= l(:field_assigned_to)%>
|
<%=link_to issue.assigned_to(@user), user_path(issue.assigned_to(@user)), :class => "problem_name c_orange f1" %>
|
||||||
</span>
|
|
||||||
<%= raw column_content[5] %>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= l(:label_updated_time_on, format_date(issue.updated_on)).html_safe %>
|
<%= l(:label_updated_time_on, format_date(issue.updated_on)).html_safe %>
|
||||||
<div class="find-comment-class">
|
</p>
|
||||||
<span>
|
|
||||||
<%= link_to l(:label_find_all_comments), issue_path(issue.id) %>
|
|
||||||
</span>
|
|
||||||
<%= l(:label_comments_count, :count => issue.journals.all.count) %>
|
|
||||||
</div>
|
</div>
|
||||||
</ul>
|
<% end %>
|
||||||
<% end -%>
|
<div class="cl"></div>
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</div>
|
</div>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</ul>
|
|
||||||
</div>
|
|
|
@ -79,11 +79,12 @@
|
||||||
</p>
|
</p>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= render :partial => 'issues/list', :locals => {:issues => @issues, :query => @query} %>
|
<%= render :partial => 'issues/list', :locals => {:issues => @issues, :query => @query} %>
|
||||||
<div class="pagination">
|
<ul class="wlist">
|
||||||
<ul><%= pagination_links_full @issue_pages, @issue_count %></ul>
|
<%= pagination_links_full @issue_pages, @issue_count, :per_page_links => false, :remote => false, :flag => true %>
|
||||||
</div>
|
</ul>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<div style="float: right; padding-top: 30px">
|
<div style="float: left; padding-top: 30px">
|
||||||
<% other_formats_links do |f| %>
|
<% other_formats_links do |f| %>
|
||||||
<%= f.link_to 'Atom', :url => params.merge(:key => User.current.rss_key) %>
|
<%= f.link_to 'Atom', :url => params.merge(:key => User.current.rss_key) %>
|
||||||
<%= f.link_to 'CSV', :url => params, :onclick => "showModal('csv-export-options', '330px'); return false;" %>
|
<%= f.link_to 'CSV', :url => params, :onclick => "showModal('csv-export-options', '330px'); return false;" %>
|
||||||
|
|
|
@ -10,89 +10,58 @@
|
||||||
<meta name="keywords" content="issue,bug,tracker" />
|
<meta name="keywords" content="issue,bug,tracker" />
|
||||||
<%= csrf_meta_tag %>
|
<%= csrf_meta_tag %>
|
||||||
<%= favicon %>
|
<%= favicon %>
|
||||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', 'nyan', :media => 'all' %>
|
|
||||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= heads_for_theme %>
|
<%= heads_for_theme %>
|
||||||
<%= hubspot_head %>
|
<%= stylesheet_link_tag 'public', 'pleft', 'project' %>
|
||||||
|
<%= javascript_include_tag 'project', 'header' %>
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
</head>
|
</head>
|
||||||
<!--add by huang-->
|
<!--add by huang-->
|
||||||
<body class="<%= h body_css_classes %>">
|
<body>
|
||||||
<div id="wrapper">
|
<div id="Container">
|
||||||
<div id="wrapper2">
|
<%= render :partial => 'layouts/new_header'%>
|
||||||
<div id="wrapper3">
|
<div class="cl"></div>
|
||||||
<%= render :partial => 'layouts/base_header'%>
|
|
||||||
<div id="main">
|
|
||||||
<div class="top-content">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td class="info_font" style="width: 240px;" rowspan="2"><a href="http://<%= Setting.host_name%>" style="color: #15bccf;"> <%= l(:label_projects_community)%> </a></td>
|
|
||||||
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
|
|
||||||
<td rowspan="2" width="250px">
|
|
||||||
<div class="top-content-search">
|
|
||||||
<script type="text/javascript">
|
|
||||||
function regexName()
|
|
||||||
{
|
|
||||||
var name = $.trim($("#name").val());
|
|
||||||
if(name.length == 0)
|
|
||||||
{
|
|
||||||
$("#project_name_span").text("<%= l(:label_search_conditions_not_null) %>");
|
|
||||||
$("#project_name_span").css('color','#ff0000');
|
|
||||||
$("#project_name_span").focus();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$("#project_name_span").text("");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 项目描述超过展开
|
<!--TopBar begin-->
|
||||||
$(function(){
|
<div id="TopBar">
|
||||||
$(".subNav").click(function(){
|
<div class="topbar_info02 fl">
|
||||||
$(this).toggleClass("currentDd").siblings(".subNav").removeClass("currentDd")
|
<h2>
|
||||||
$(this).toggleClass("currentDt").siblings(".subNav").removeClass("currentDt")
|
<a href="http://<%= Setting.host_name %>" target="_blank" class="c_blue">
|
||||||
|
<%= l(:label_projects_community) %>
|
||||||
|
</a>
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
<%= l(:label_user_location) %> :
|
||||||
|
<%= link_to l(:field_homepage), home_path %>
|
||||||
|
>
|
||||||
|
<a href="http://<%= Setting.host_name %>">
|
||||||
|
<%=l(:label_project_hosting_platform) %>
|
||||||
|
</a>
|
||||||
|
>
|
||||||
|
<%= link_to @project.name, nil %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="search fl">
|
||||||
|
|
||||||
// 修改数字控制速度, slideUp(500)控制卷起速度
|
<%= form_tag(projects_search_path, :method => :get, :id => "project_search_form", :class => "search_form") do %>
|
||||||
$(this).next(".navContent").slideToggle(500).siblings(".navContent").slideUp(500);
|
<%= text_field_tag 'name', params[:name], :placeholder => "项目名称", :class => "search_text fl", :onkeyup => "regexName('#{l(:label_search_conditions_not_null)}');" %>
|
||||||
})
|
<a href="#" onclick="submitSerch('<%= l(:label_search_conditions_not_null) %>');" class="search_btn fl f14 c_white" >
|
||||||
})
|
<%= l(:label_search)%>
|
||||||
|
</a>
|
||||||
function show_more_msg()
|
|
||||||
{$("#course_description").toggleClass("course_description_none");}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<%= form_tag(projects_search_path, :method => :get, :id => "project_search_form") do %>
|
|
||||||
<%= text_field_tag 'name', params[:name], :size => 20, :onkeyup => "regexName();", :style => "float:left" %>
|
|
||||||
<%= hidden_field_tag 'project_type', params[:project_type] %>
|
|
||||||
<%#= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
|
|
||||||
<a href="#" onclick="submitSerch();" class="ButtonColor m3p10" style="float:left;padding-top: 3px; margin: 0px;padding-bottom:0px;" > <%= l(:label_search)%> </a>
|
|
||||||
<br />
|
<br />
|
||||||
<span id="project_name_span" style="float: left"></span>
|
<span id="project_name_span" style="float: left"></span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p class="top-content-list">
|
|
||||||
<%= link_to l(:label_home),home_path %> >
|
|
||||||
<%= link_to @project, project_path(@project) %>
|
|
||||||
</p></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 左边侧栏内容 -->
|
</div><!--TopBar end-->
|
||||||
<div id="sidebar">
|
<div id="content">
|
||||||
<div class="project_left">
|
<div id="LSide" class="fl">
|
||||||
<div class="project_info">
|
<div class="project_info">
|
||||||
<div class="pr_info_logo fl mr10 mb5">
|
<div class="pr_info_logo fl mr10 mb5">
|
||||||
<%= image_tag(url_to_avatar(@project), :style => 'width:61px; height:61px;') %>
|
<%= image_tag(url_to_avatar(@project), :width => "60", :height => "60") %>
|
||||||
</div>
|
</div>
|
||||||
<div class="pr_info_id fl mb5">
|
<div class="pr_info_id fl mb5 f14">
|
||||||
<%= l(:label_project_id)%><%= @project.id %>
|
<%= l(:label_project_id)%><%= @project.id %>
|
||||||
</div>
|
</div>
|
||||||
<!--关注、申请加入/退出项目-->
|
<!--关注、申请加入/退出项目-->
|
||||||
|
@ -101,96 +70,99 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- 项目得分 -->
|
<!-- 项目得分 -->
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<div class="pr_info_name f1">
|
<div>
|
||||||
<%= link_to @project.name, project_path(@project), :style => "color:#3E4040"%>
|
<a class="pr_info_name fl c_dark fb" href="javascript:void(0)" target="_blank">
|
||||||
<% if !@project.is_public? %>
|
<%= l(:label_project_name) %><%= @project.name %></a>
|
||||||
|
<% if @project.is_public? %>
|
||||||
|
<span class="img_private"><%= l(:label_public)%></span>
|
||||||
|
<% else %>
|
||||||
<span class="img_private"><%= l(:label_private)%></span>
|
<span class="img_private"><%= l(:label_private)%></span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<div class="pr_info_score">
|
<div>
|
||||||
<% if @project.project_type == 0 %>
|
<% if @project.project_type == 0 %>
|
||||||
<%= l(:label_project_score)%> :
|
<span class="fb f14 "><%= l(:label_project_score)%> :</span>
|
||||||
<%= link_to(format("%.2f" ,project_scores(@project) ).to_i, {:controller => 'projects',
|
<%= link_to(format("%.2f" ,project_scores(@project) ).to_i, {:controller => 'projects',
|
||||||
:action => 'show_projects_score',
|
:action => 'show_projects_score',
|
||||||
:remote => true,
|
:remote => true,
|
||||||
:id => @project.id },
|
:id => @project.id
|
||||||
:style => "color: #EC6300;") %>
|
}, :class => "c_orange f14" ) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
<!--参数-->
|
||||||
<div class="pr_info_foot">
|
<div class="pr_info_foot">
|
||||||
<%= l(:label_member) %>(<span class="info_foot_num" >
|
<%= l(:label_member) %>(<%= link_to "#{@project.members.count}", project_member_path(@project), :class => 'info_foot_num c_blue' %>)
|
||||||
<%= link_to "#{@project.members.count}", project_member_path(@project), :style => "color:#3CA5C6;font-weight:bold" %></span>)
|
<span>| </span>
|
||||||
<span>| </span>
|
<%= l(:label_user_watcher) %>(<%= link_to "#{@project.watcher_users.count}", {:controller=>"projects", :action=>"watcherlist", :id => @project.id}, :class => 'info_foot_num c_blue' %>)
|
||||||
<%= l(:label_user_watcher) %>(<span class="info_foot_num">
|
<span>| </span>
|
||||||
<%= link_to "#{@project.watcher_users.count}", {:controller=>"projects", :action=>"watcherlist", :id => @project.id}, :style => "color:#3CA5C6;font-weight:bold" %></span>)
|
<%= l(:project_module_attachments) %>(
|
||||||
<span>| </span>
|
|
||||||
<%= l(:project_module_attachments) %>(<span class="info_foot_num" >
|
|
||||||
<% attaments_num = @project.attachments.count+Attachment.where(["`container_type` = 'Version' and `container_id` in (?)",@project.versions.map{ |v| v.id}]).all.count %>
|
<% attaments_num = @project.attachments.count+Attachment.where(["`container_type` = 'Version' and `container_id` in (?)",@project.versions.map{ |v| v.id}]).all.count %>
|
||||||
<%= link_to "#{attaments_num}", project_files_path(@project), :style => "color:#3CA5C6;font-weight:bold" %></span>)
|
<%= link_to "#{attaments_num}", project_files_path(@project), :class => 'info_foot_num c_blue' %></span>)
|
||||||
</div>
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div><!--项目信息 end-->
|
</div><!--参数 end-->
|
||||||
|
<!--邀请加入-->
|
||||||
<div class="subNavBox">
|
<div class="subNavBox">
|
||||||
<% if User.current.member_of?(@project) %>
|
<% if User.current.member_of?(@project) %>
|
||||||
<div class="subNav currentDd currentDt subNav_jiantou"><%= l(:label_invite)%></div>
|
<div class="subNav currentDd currentDt subNav_jiantou"><%= l(:label_invite)%></div>
|
||||||
<ul class="navContent " style="display:block; padding-left: 0px; margin-top:0px;">
|
<ul class="navContent " style="display:block">
|
||||||
<li><%= link_to l(:label_invite_new_user), :controller=>"projects", :action=>"invite_members_by_mail", :id => @project %></li>
|
<li><%= link_to l(:label_invite_new_user), :controller=>"projects", :action=>"invite_members_by_mail", :id => @project %></li>
|
||||||
<li><%= link_to l(:label_invite_trustie_user), :controller=>"projects", :action=>"invite_members", :id => @project %></li>
|
<li><%= link_to l(:label_invite_trustie_user), :controller=>"projects", :action=>"invite_members", :id => @project %></li>
|
||||||
</ul>
|
</ul>
|
||||||
<% end %>
|
<% end %><!--end-->
|
||||||
|
<!--menu -->
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :style => "color:#3CA5C6" %>
|
<%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %>
|
||||||
<% unless ForgeActivity.where("project_id = ?", @project.id).count == 0 %>
|
<% unless ForgeActivity.where("project_id = ?", @project.id).count == 0 %>
|
||||||
<span class="subnav_num">(<%= ForgeActivity.where("project_id = ?", @project.id).count %>)</span>
|
<a class="subnav_num">(<%= ForgeActivity.where("project_id = ?", @project.id).count %>)</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
|
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:label_issue_tracking), project_issues_path(@project), :style => "color:#3CA5C6" %>
|
<%= link_to l(:label_issue_tracking), project_issues_path(@project), :class => "f14 c_blue02" %>
|
||||||
<% unless @project.issues.count == 0 %>
|
<% unless @project.issues.count == 0 %>
|
||||||
<span class="subnav_num">(<%= @project.issues.count %>)</span><span>
|
<a class="subnav_num">(<%= @project.issues.count %>)</a><span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if User.current.member_of?(@project) %>
|
<% if User.current.member_of?(@project) %>
|
||||||
<%= link_to "+"+l(:label_release_issue), new_project_issue_path(@project) , :style => "font-size:12px !important;color:#fff; padding:1px 3px 3px 3px;height:16px;margin-top:4px;background:#28be6c;float:right;line-height:20px;" %></span>
|
<%= link_to "+"+l(:label_release_issue), new_project_issue_path(@project) , :class => "subnav_green" %></span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% unless @project.enabled_modules.where("name = 'boards'").empty? %>
|
<% unless @project.enabled_modules.where("name = 'boards'").empty? %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:project_module_boards), project_boards_path(@project), :style => "color:#3CA5C6" %>
|
<%= link_to l(:project_module_boards), project_boards_path(@project), :class => "f14 c_blue02" %>
|
||||||
<% unless @project.boards.first.topics.count == 0 %>
|
<% unless @project.boards.first.topics.count == 0 %>
|
||||||
<span class="subnav_num">(<%= @project.boards.first.topics.count %>)</span>
|
<a class="subnav_num">(<%= @project.boards.first.topics.count %>)</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if User.current.member_of?(@project) %>
|
<% if User.current.member_of?(@project) %>
|
||||||
<%= link_to "+"+l(:project_module_boards_post), project_boards_path(@project, :flag => true), :layout => 'base_projects',:style => "font-size:12px !important;color:#fff; padding:0px 3px 3px 3px;height:16px;margin-top:5px;background:#28be6c;float:right;line-height:20px;" %>
|
<%= link_to "+"+l(:project_module_boards_post), project_boards_path(@project, :flag => true), :layout => 'base_projects', :class => "subnav_green ml105" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end%>
|
<% end%>
|
||||||
<% unless @project.enabled_modules.where("name = 'files'").empty? %>
|
<% unless @project.enabled_modules.where("name = 'files'").empty? %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:project_module_files), project_files_path(@project), :style => "color:#3CA5C6" %>
|
<%= link_to l(:project_module_files), project_files_path(@project), :class => "f14 c_blue02" %>
|
||||||
<% unless attaments_num == 0 %>
|
<% unless attaments_num == 0 %>
|
||||||
<span class="subnav_num">(<%= attaments_num %>)</span>
|
<a class="subnav_num">(<%= attaments_num %>)</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if User.current.member_of?(@project) %>
|
<% if User.current.member_of?(@project) %>
|
||||||
<%= link_to "+"+l(:label_upload_files), project_files_path(@project,:flag => true),:style => "font-size:12px !important;color:#fff; padding:1px 3px 3px 3px;height:16px;margin-top:4px;background:#28be6c;float:right;line-height:20px;" %>
|
<%= link_to "+"+l(:label_upload_files), project_files_path(@project,:flag => true), :class => "subnav_green ml95" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end%>
|
<% end%>
|
||||||
<% unless @project.enabled_modules.where("name = 'repository'").empty? || @project.repositories.count == 0 %>
|
<% unless @project.enabled_modules.where("name = 'repository'").empty? || @project.repositories.count == 0 %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:project_module_repository), {:controller => 'repositories', :action => 'show', :id => @project.id}, :style => "color:#3CA5C6" %>
|
<%= link_to l(:project_module_repository), {:controller => 'repositories', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %>
|
||||||
<span class="subnav_num">(<%= @project.repositories.count %>)</span>
|
<a class="subnav_num">(<%= @project.repositories.count %>)</a>
|
||||||
<%# if User.current.member_of?(@project) %>
|
<%# if User.current.member_of?(@project) %>
|
||||||
<%#= link_to "+"+l(:project_module_create_repository), new_project_repository_path(@project),:style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:3px;background:#28be6c;float:right;line-height:20px;" %>
|
<%#= link_to "+"+l(:project_module_create_repository), new_project_repository_path(@project),:style => "font-size:12px;color:#fff; padding:1px 3px 3px 3px;height:18px;margin-top:3px;background:#28be6c;float:right;line-height:20px;" %>
|
||||||
<%# end %>
|
<%# end %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %><!--meny end -->
|
||||||
|
<!-- more -->
|
||||||
<div class="subNav subNav_jiantou"><%= l(:label_project_more) %></div>
|
<div class="subNav subNav_jiantou"><%= l(:label_project_more) %></div>
|
||||||
<ul class="navContent" style="padding-left: 0px">
|
<ul class="navContent">
|
||||||
<%= render 'projects/tools_expand' %>
|
<%= render 'projects/tools_expand' %>
|
||||||
</ul>
|
</ul>
|
||||||
</div><!--项目侧导航 end-->
|
</div><!--项目侧导航 end-->
|
||||||
|
@ -204,36 +176,33 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- tag模块 -->
|
<!-- tag模块 -->
|
||||||
<div class="project_Label">
|
<div class="project_Label">
|
||||||
<h4 class="project_h4"><%= l(:label_tag)%>:</h4>
|
<h4 class="mb5"><%= l(:label_tag)%>:</h4>
|
||||||
<div class="tag_h">
|
<div class="tag_h">
|
||||||
<div class="user_tags">
|
|
||||||
<div id="tags">
|
<div id="tags">
|
||||||
<%= render :partial => 'tags/project_tag', :locals => {:obj => @project,:object_flag => "2"}%>
|
<%= render :partial => 'tags/project_tag', :locals => {:obj => @project,:object_flag => "2"}%>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div><!--项目标签 end-->
|
</div><!--项目标签 end-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="content">
|
|
||||||
|
|
||||||
|
<div id="RSide" class="fl">
|
||||||
<%= render_flash_messages %>
|
<%= render_flash_messages %>
|
||||||
<%= yield %>
|
<%= yield %>
|
||||||
<%= call_hook :view_layouts_base_content %>
|
<%= call_hook :view_layouts_base_content %>
|
||||||
<div style="clear:both;"></div>
|
<div style="clear:both;"></div>
|
||||||
</div>
|
</div>
|
||||||
<%= render :partial => 'layouts/base_footer'%>
|
<div style="clear:both;"></div>
|
||||||
</div>
|
<div class="cl"></div>
|
||||||
|
<%= render :partial => 'layouts/new_footer'%>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div><!--Container end-->
|
||||||
<div id="ajax-indicator" style="display:none;">
|
<div id="ajax-indicator" style="display:none;">
|
||||||
<span><%= l(:label_loading) %></span>
|
<span><%= l(:label_loading) %></span>
|
||||||
</div>
|
</div>
|
||||||
<div id="ajax-modal" style="display:none;"></div>
|
<div id="ajax-modal" style="display:none;"></div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<%= call_hook :view_layouts_base_body_bottom %>
|
<%= call_hook :view_layouts_base_body_bottom %>
|
||||||
</div>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
<%= error_messages_for 'message' %>
|
||||||
|
<% replying ||= false %>
|
||||||
|
<% extra_option = replying ? { readonly: true} : { maxlength: 200 } %>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<label><span class="c_red">*</span> <%= l(:field_subject) %> :</label>
|
||||||
|
<% if replying %>
|
||||||
|
<%= f.text_field :subject, { size: 60, id: "message_subject",:class=>"talk_input w585" }.merge(extra_option) %>
|
||||||
|
<% else %>
|
||||||
|
<%= f.text_field :subject, { size: 60, id: "message_subject", onkeyup: "regexSubject();",:class=>"talk_input w585" }.merge(extra_option) %>
|
||||||
|
<% end %>
|
||||||
|
<p id="subject_span" class="ml55"></p>
|
||||||
|
</li>
|
||||||
|
<li class="ml60 mb5">
|
||||||
|
<% unless replying %>
|
||||||
|
<% if @message.safe_attribute? 'sticky' %>
|
||||||
|
<%= f.check_box :sticky %>
|
||||||
|
<%= label_tag 'message_sticky', l(:label_board_sticky) %>
|
||||||
|
<% end %>
|
||||||
|
<% if @message.safe_attribute? 'locked' %>
|
||||||
|
<%= f.check_box :locked %>
|
||||||
|
<%= label_tag 'message_locked', l(:label_board_locked) %>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div id="message_quote" class="wiki" style="width: 100%;word-break: break-all;word-wrap: break-word;"></div>
|
||||||
|
<label class="fl" ><span class="c_red">*</span> <%= l(:field_description) %> :</label>
|
||||||
|
<%= text_area :quote,:quote,:style => 'display:none' %>
|
||||||
|
<%= f.text_area :content, :class => 'talk_text fl', :id => 'message_content', :onkeyup => "regexContent();", :maxlength => 5000,:placeholder => "最多3000个汉字(或6000个英文字符)" %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<p id="message_content_span" class="ml55"></p>
|
||||||
|
</li>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<li>
|
||||||
|
<label class="fl"> <%= l(:label_attachment_plural) %> :</label>
|
||||||
|
<div class="fl">
|
||||||
|
<%= render :partial => 'attachments/form_project', :locals => {:container => @message,:isReply => @isReply} %>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li >
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
|
@ -1,209 +1,114 @@
|
||||||
<style type="text/css">
|
|
||||||
.lz {
|
|
||||||
position: relative;
|
|
||||||
min-height: 200px;
|
|
||||||
margin: 10px 2px;
|
|
||||||
border-radius: 5px;
|
|
||||||
box-shadow: 1px 1px 6px #97EBF4;
|
|
||||||
}
|
|
||||||
.lz-left {
|
|
||||||
float: left;
|
|
||||||
margin: 2%;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.memo-section {
|
|
||||||
width: auto;
|
|
||||||
margin-left: 15%;
|
|
||||||
padding-top: 1%;
|
|
||||||
border-left: 2px dotted #EEE;/*#8BE9F3;*/
|
|
||||||
}
|
|
||||||
.memo-title {
|
|
||||||
margin: 1em 0;
|
|
||||||
padding-left: 1%;
|
|
||||||
padding-bottom: 1%;
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: 1px dashed rgb(204, 204, 204);
|
|
||||||
}
|
|
||||||
.memo-content {
|
|
||||||
width: 82%;
|
|
||||||
padding: 1%;
|
|
||||||
margin: 1%;
|
|
||||||
margin-bottom: 40px;
|
|
||||||
background-color: #F6F6F6;
|
|
||||||
white-space: normal;
|
|
||||||
word-break: break-all;
|
|
||||||
word-wrap: break-word;
|
|
||||||
/*word-wrap: break-word;*/
|
|
||||||
}
|
|
||||||
.memo-timestamp {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0px;
|
|
||||||
/*right: 0;*/
|
|
||||||
left: 0;
|
|
||||||
margin: 20px;
|
|
||||||
}
|
|
||||||
.replies {
|
|
||||||
float: right;
|
|
||||||
/*max-width: 90%;*/
|
|
||||||
}
|
|
||||||
.reply-box {
|
|
||||||
float: right;
|
|
||||||
width: 640px;
|
|
||||||
padding: 3%;
|
|
||||||
/*border: 2px solid #C6F3F9;*/
|
|
||||||
border-top: 2px double #C6F3F9;
|
|
||||||
/*border-radius: 10px;*/
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div class="lz">
|
|
||||||
<div class="project_r_h">
|
<div class="project_r_h">
|
||||||
<h2 class="project_h2"><%= h @board.name %></h2>
|
<h2 class="project_h2"><%= h @board.name %></h2>
|
||||||
</div>
|
</div>
|
||||||
<!-- 在这里添加赞和踩-->
|
<div class="problem_main">
|
||||||
<span id="praise_tread" style="float: right">
|
<div class="ping_dispic">
|
||||||
<%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @topic,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%>
|
<%=link_to image_tag(url_to_avatar(@topic.author), :width => "46", :height => "46"), user_path(@topic.author) %>
|
||||||
</span>
|
</div>
|
||||||
<div class="contextual">
|
<div class="talk_txt fl">
|
||||||
<%= watcher_link(@topic, User.current) %>
|
<p class="problem_tit fl fb" >
|
||||||
<%= link_to(
|
<%= link_to @topic.subject, project_boards_path(@topic.project),title: @topic.subject.to_s %></p>
|
||||||
l(:button_quote),
|
<br/>
|
||||||
{:action => 'quote', :id => @topic},
|
<p>由<%= link_to_user_header @topic.author,false,:class=> 'problem_name c_orange' %> 添加于<%= format_time(@topic.created_on) %></p>
|
||||||
:remote => true,
|
</div>
|
||||||
:method => 'get',
|
<!-- <a class="talk_edit fr">删除</a><a class="talk_edit fr">编辑</a><a class="talk_edit fr">置顶</a> -->
|
||||||
:class => 'icon icon-comment',
|
<%#= watcher_link(@topic, User.current) %>
|
||||||
:remote => true) if !@topic.locked? && authorize_for('messages', 'reply') %>
|
|
||||||
<%= link_to(
|
<%= link_to(
|
||||||
l(:button_edit),
|
l(:button_edit),
|
||||||
{:action => 'edit', :id => @topic},
|
{:action => 'edit', :id => @topic},
|
||||||
:class => 'icon icon-edit'
|
:class => 'talk_edit fr'
|
||||||
) if @message.editable_by?(User.current) %>
|
) if @message.editable_by?(User.current) %>
|
||||||
<%= link_to(
|
<%= link_to(
|
||||||
l(:button_delete),
|
l(:button_delete),
|
||||||
{:action => 'destroy', :id => @topic},
|
{:action => 'destroy', :id => @topic},
|
||||||
:method => :post,
|
:method => :post,
|
||||||
:data => {:confirm => l(:text_are_you_sure)},
|
:data => {:confirm => l(:text_are_you_sure)},
|
||||||
:class => 'icon icon-del'
|
:class => 'talk_edit fr'
|
||||||
) if @message.destroyable_by?(User.current) %>
|
) if @message.destroyable_by?(User.current) %>
|
||||||
</div>
|
<div class="cl"></div>
|
||||||
|
<div class="talk_info mb10"><%= textilizable(@topic, :content) %></div>
|
||||||
<div class="lz-left">
|
<div class="talk_info mb10"><%= link_to_attachment_project @topic, :author => false %></div>
|
||||||
<div class="">
|
<!-- <a href="#" class=" link_file ml60">附件:爱覅俄方if.zip(27.5kB)</a>-->
|
||||||
<%= link_to image_tag(url_to_avatar(@topic.author), :class => "avatar"), user_path(@topic.author) %>
|
<div class="cl"></div>
|
||||||
</div>
|
|
||||||
<p class="">
|
|
||||||
<%= link_to @topic.author, user_path(@topic.author) %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="memo-section" style="width: 100%;word-break: break-all;word-wrap: break-word;">
|
|
||||||
<div class="memo-title <%= @topic.sticky? ? 'sticky' : '' %> <%= @topic.locked? ? 'locked' : '' %>" style="width: 53%;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">
|
|
||||||
<% if @project %>
|
|
||||||
<%= label_tag l(:field_subject) %>:
|
|
||||||
<%= link_to @topic.subject, project_boards_path(@topic.project),title: @topic.subject.to_s %>
|
|
||||||
<% elsif @course %>
|
|
||||||
<%= label_tag l(:field_subject) %>:
|
|
||||||
<%= link_to @topic.subject, course_boards_path(@topic.course),title: @topic.subject.to_s %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<div class="memo-content">
|
|
||||||
<%= textilizable(@topic, :content) %>
|
|
||||||
<%= link_to_attachments @topic, :author => false %>
|
|
||||||
</div>
|
|
||||||
<div class="memo-timestamp">
|
|
||||||
<div style="float: left">
|
|
||||||
<%= authoring @topic.created_on, @topic.author %>
|
|
||||||
</div>
|
|
||||||
<div style="float: right">
|
|
||||||
<% if User.current.logged? %>
|
<% if User.current.logged? %>
|
||||||
<%= toggle_link l(:button_reply), "reply", :focus => 'message_content' %>
|
<%= toggle_link l(:button_reply), "reply", :focus => 'message_content',:class => 'talk_edit fr' %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= link_to l(:button_reply), signin_path %>
|
<%= link_to l(:button_reply), signin_path,:class => 'talk_edit fr' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
<%= link_to(
|
||||||
</div>
|
l(:button_quote),
|
||||||
</div>
|
{:action => 'quote', :id => @topic},
|
||||||
<br />
|
:remote => true,
|
||||||
</div>
|
:method => 'get',
|
||||||
|
:class => 'talk_edit fr',
|
||||||
|
:remote => true) if !@topic.locked? && authorize_for('messages', 'reply') %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div><!--讨论主类容 end-->
|
||||||
<% unless @replies.empty? %>
|
<% unless @replies.empty? %>
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<h3 class="comments"><%= l(:label_reply_plural) %> (<%= @reply_count %>)</h3>
|
|
||||||
<% reply_count = 0 %>
|
<% reply_count = 0 %>
|
||||||
<% @replies.each do |message| %>
|
<% @replies.each do |message| %>
|
||||||
<div class="message reply" id="<%= "message-#{message.id}" %>">
|
<div class="ping_C mb10" id="<%= "message-#{message.id}" %>">
|
||||||
<table class="borad-text-list">
|
<div class="ping_dispic"><%= link_to image_tag(url_to_avatar(message.author), :width => '46',:height => '46'), user_path(message.author) %></div>
|
||||||
<tr>
|
<div class="ping_discon">
|
||||||
<td rowspan="3" valign="top" width="60px">
|
<div class="ping_distop">
|
||||||
<%= link_to image_tag(url_to_avatar(message.author), :class => "avatar"), user_path(message.author) %>
|
<%= link_to_user_header message.author,false,:class => 'c_blue fb fl mb10 ' %>
|
||||||
</td>
|
<span class="c_grey fr"><%= format_time(message.created_on) %></span>
|
||||||
<td>
|
<div class="cl"></div>
|
||||||
<div class="contextual-borad">
|
<p><%= textilizable message,:content,:attachments => message.attachments %></p>
|
||||||
|
<%= link_to_attachments message, :author => false %>
|
||||||
|
</div>
|
||||||
|
<div class="ping_disfoot">
|
||||||
<%= link_to(
|
<%= link_to(
|
||||||
"引用",
|
l(:button_quote),
|
||||||
{:action => 'quote', :id => message},
|
{:action => 'quote', :id => message},
|
||||||
:remote => true,
|
:remote => true,
|
||||||
:method => 'get',
|
:method => 'get',
|
||||||
:title => l(:button_quote)) if !@topic.locked? && authorize_for('messages', 'reply') %>
|
:title => l(:button_quote)) if !@topic.locked? && authorize_for('messages', 'reply') %>
|
||||||
<%= link_to(
|
<%= link_to(
|
||||||
#image_tag('edit.png'),
|
#image_tag('edit.png'),
|
||||||
"编辑",
|
l(:button_edit),
|
||||||
{:action => 'edit', :id => message},
|
{:action => 'edit', :id => message},
|
||||||
:title => l(:button_edit)
|
:title => l(:button_edit)
|
||||||
) if message.editable_by?(User.current) %>
|
) if message.course_editable_by?(User.current) %>
|
||||||
<%= link_to(
|
<%= link_to(
|
||||||
#image_tag('delete.png'),
|
#image_tag('delete.png'),
|
||||||
"删除",
|
l(:button_delete),
|
||||||
{:action => 'destroy', :id => message},
|
{:action => 'destroy', :id => message},
|
||||||
:method => :post,
|
:method => :post,
|
||||||
:data => {:confirm => l(:text_are_you_sure)},
|
:data => {:confirm => l(:text_are_you_sure)},
|
||||||
:title => l(:button_delete)
|
:title => l(:button_delete)
|
||||||
) if message.destroyable_by?(User.current) %>
|
) if message.course_destroyable_by?(User.current) %>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
<div class="cl"></div>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="comments">
|
|
||||||
<div class="wiki" style="width: 100%;word-break: break-all;word-wrap: break-word;">
|
|
||||||
<%= textilizable message,:content,:attachments => message.attachments %>
|
|
||||||
</div>
|
|
||||||
<%= link_to_attachments message, :author => false %>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="font_lighter" style="float: left">
|
|
||||||
<%= authoring message.created_on, message.author %>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div><!---留言内容-->
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="pagination">
|
|
||||||
<%= pagination_links_full @reply_pages, @reply_count, :per_page_links => false %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if !@topic.locked? && authorize_for('messages', 'reply') %>
|
<% if !@topic.locked? && authorize_for('messages', 'reply') %>
|
||||||
<div id="reply" style="display:none;">
|
<div id="reply" style="display:none;">
|
||||||
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
|
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
||||||
<%= render :partial => 'form', :locals => {:f => f, :replying => true} %>
|
<%= render :partial => 'form', :locals => {:f => f, :replying => true} %>
|
||||||
<input type="button" class="enterprise" value="<%=l(:button_submit) %>" onclick="submit_message_replay();" >
|
<a href="#" onclick="submit_message_replay();"class="blue_btn fl c_white" style="margin-left: 50px;"><%= l(:button_submit)%></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div id="preview" class="wiki"></div>
|
<div id="preview" class="wiki"></div>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<ul class="wlist">
|
||||||
|
<%= pagination_links_full @reply_pages, @reply_count, :per_page_links => false, :remote => false, :flag => true%>
|
||||||
|
</ul>
|
||||||
<% html_title @topic.subject %>
|
<% html_title @topic.subject %>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var flag = false;
|
// var flag = false;
|
||||||
jQuery(document).ready(function($) {
|
// jQuery(document).ready(function($) {
|
||||||
transpotUrl('#content');
|
// transpotUrl('#content');
|
||||||
});
|
// });
|
||||||
function submit_message_replay()
|
function submit_message_replay()
|
||||||
{
|
{
|
||||||
if(flag)
|
if(flag)
|
||||||
{
|
{
|
||||||
$("#message-form").submit();
|
$("#message_form").submit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function regexContent()
|
function regexContent()
|
||||||
|
|
|
@ -3,22 +3,22 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% if @message.project %>
|
<% if @message.project %>
|
||||||
<%= board_breadcrumb(@message) %>
|
<%#= board_breadcrumb(@message) %>
|
||||||
<h3><%= avatar(@topic.author, :size => "24") %><span style = "width:100%;word-break:break-all;word-wrap: break-word;"><%=h @topic.subject %></span></h3>
|
<!--<h3><%#= avatar(@topic.author, :size => "24") %><span style = "width:100%;word-break:break-all;word-wrap: break-word;"><%#=h @topic.subject %></span></h3>-->
|
||||||
|
<div class="talk_new ml15">
|
||||||
<%= form_for @message, {
|
<ul>
|
||||||
:as => :message,
|
<%= form_for @message, { :as => :message,
|
||||||
:url => {:action => 'edit'},
|
:url => {:action => 'edit'},
|
||||||
:html => {:multipart => true,
|
:html => {:multipart => true,
|
||||||
:id => 'message-form',
|
:id => 'message-form',
|
||||||
:method => :post}
|
:method => :post}
|
||||||
} do |f| %>
|
} do |f| %>
|
||||||
<%= render :partial => 'form',
|
<%= render :partial => 'form_project',
|
||||||
:locals => {:f => f, :replying => !@message.parent.nil?} %>
|
:locals => {:f => f, :replying => !@message.parent.nil?} %>
|
||||||
<a href="#" onclick="$('#message-form').submit();" class="ButtonColor m3p10">
|
<a href="#" onclick="submitProjectsBoard();"class="blue_btn fl c_white"><%= l(:button_submit)%></a>
|
||||||
<%= l(:button_save) %>
|
<%= link_to l(:button_cancel), board_message_url(@message.board, @message.root, :r => (@message.parent_id && @message.id)), :class => "blue_btn grey_btn fl c_white" %>
|
||||||
</a>
|
</ul>
|
||||||
<%= link_to l(:button_cancel), board_message_url(@message.board, @message.root, :r => (@message.parent_id && @message.id)), :class => "ButtonColor m3p10" %>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% elsif @message.course %>
|
<% elsif @message.course %>
|
||||||
<%#= course_board_breadcrumb(@message) %>
|
<%#= course_board_breadcrumb(@message) %>
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
<li class="ml45">
|
||||||
|
<label><span class="c_red">*</span> <%= l(:field_title) %> :</label>
|
||||||
|
<input type="text" name="news[title]" class="hwork_input" id="news_title" size="60" onkeyup="regexTitle();" maxlength="60" placeholder="60个字符以内" value="<%= is_new ? '' : @news.title %>">
|
||||||
|
<p id="title_notice_span" class="ml55"></p>
|
||||||
|
</li>
|
||||||
|
<li class="ml45">
|
||||||
|
<label class="fl" ><span class="c_red">*</span> <%= l(:field_description) %> :</label>
|
||||||
|
<textarea id="news_description" name="news[description]" placeholder="最多3000个汉字(或6000个英文字符)" class="hwork_text fl" onkeyup="regexDescription();" maxlength="6000"><%= is_new ? '' : @news.description %></textarea>
|
||||||
|
<p id="description_notice_span" class="ml55"></p>
|
||||||
|
</li>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<li class="ml45">
|
||||||
|
<label class="fl"> <%= l(:label_attachment_plural) %> :</label>
|
||||||
|
<%= render :partial => 'attachments/new_form', :locals => {:container => @news} %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
||||||
|
<li class=" ml90" >
|
||||||
|
<% if is_new %>
|
||||||
|
<%= link_to l(:button_create), "#", :onclick => 'submitNews();', :onmouseover => 'submitFocus(this);', :class => 'blue_btn fl c_white' %>
|
||||||
|
<%= link_to l(:button_cancel), project_news_index_path(@project), :onclick => '$("#add-news").hide()', :class => 'blue_btn grey_btn fl c_white' %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to l(:button_save), "#", :onclick => 'submitNews();',:onmouseover => 'this.focus()',:class => 'blue_btn fl c_white' %>
|
||||||
|
<%= link_to l(:button_cancel), "#", :onclick => '$("#edit-news").hide(); return false;',:class => 'blue_btn grey_btn fl c_white' %>
|
||||||
|
<% end %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
||||||
|
<!-- <#%= wikitoolbar_for 'news_description'%>-->
|
|
@ -1,95 +1,21 @@
|
||||||
<div class="project_r_h">
|
|
||||||
<h2 class="project_h2"><%= l(:label_news) %></h2>
|
|
||||||
</div>
|
|
||||||
<script type="text/javascript">
|
|
||||||
function regexTitle()
|
|
||||||
{
|
|
||||||
var name = $("#news_title").val();
|
|
||||||
if(name.length ==0)
|
|
||||||
{
|
|
||||||
$("#title_notice_span").text("标题不能为空");
|
|
||||||
$("#title_notice_span").css('color','#ff0000');
|
|
||||||
$("#title_notice_span").focus();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if(name.length <= 60)
|
|
||||||
{
|
|
||||||
$("#title_notice_span").text("填写正确");
|
|
||||||
$("#title_notice_span").css('color','#008000');
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$("#title_notice_span").text("标题超过60个字符");
|
|
||||||
$("#title_notice_span").css('color','#ff0000');
|
|
||||||
$("#title_notice_span").focus();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function regexDescription()
|
|
||||||
{
|
|
||||||
var name = $("#news_description").val();
|
|
||||||
if(name.length ==0)
|
|
||||||
{
|
|
||||||
$("#description_notice_span").text("描述不能为空");
|
|
||||||
$("#description_notice_span").css('color','#ff0000');
|
|
||||||
$("#description_notice_span").focus();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$("#description_notice_span").text("填写正确");
|
|
||||||
$("#description_notice_span").css('color','#008000');
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function submitNews()
|
|
||||||
{
|
|
||||||
if(regexTitle() && regexDescription())
|
|
||||||
{
|
|
||||||
$("#news-form").submit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function submitFocus(obj)
|
|
||||||
{
|
|
||||||
$(obj).focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<%
|
<%
|
||||||
if @project.project_type == Project::ProjectType_course
|
|
||||||
btn_tips = l(:label_news_notice)
|
|
||||||
label_tips = l(:label_course_news)
|
|
||||||
else
|
|
||||||
btn_tips = l(:label_news_new)
|
btn_tips = l(:label_news_new)
|
||||||
label_tips = l(:label_news)
|
label_tips = l(:label_news)
|
||||||
end
|
|
||||||
%>
|
%>
|
||||||
<% if @project.enabled_modules.where("name = 'news'").count > 0 && User.current.member_of?(@project) %>
|
<div class="project_r_h">
|
||||||
<%= link_to(btn_tips,
|
<h2 class="project_h2"><%= label_tips %></h2>
|
||||||
new_project_news_path(@project),
|
|
||||||
:class => 'icon icon-add',
|
|
||||||
:onclick => 'showAndScrollTo("add-news", "news_title"); return false;') %>
|
|
||||||
<% end %>
|
|
||||||
<% if @project && User.current.allowed_to?(:manage_news, @project) %>
|
|
||||||
<div id="add-news" class="add_frame" style="display:none;">
|
|
||||||
<%= labelled_form_for @news, :url => project_news_index_path(@project),
|
|
||||||
:html => {:id => 'news-form', :multipart => true} do |f| %>
|
|
||||||
<%= render :partial => 'news/form', :locals => {:f => f} %>
|
|
||||||
<%#= submit_tag l(:button_create), :class => 'whiteButton m3p10 h30', :name => nil %><!-- button-submit -->
|
|
||||||
<%= link_to l(:button_create), "#", :onclick => 'submitNews();',:onmouseover => 'submitFocus(this);', :class => 'ButtonColor m3p10' %>
|
|
||||||
|
|
||||||
<%#= preview_link preview_news_path(:project_id => @project), 'news-form', target='preview', {:class => 'whiteButton m3p10'} %>
|
|
||||||
|
|
||||||
<%= link_to l(:button_cancel), "#", :onclick => '$("#add-news").hide()', :class => 'ButtonColor m3p10' %>
|
|
||||||
<% end if @project %>
|
|
||||||
<div id="preview" class="wiki"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="talk_top">
|
||||||
|
<p class="fl"><%= l(:label_total_news) %><span><%= @news_count %></span><%= l(:label_project_new_list) %></p>
|
||||||
|
<% if @project && User.current.allowed_to?(:manage_news, @project) %>
|
||||||
|
<%= link_to(btn_tips, new_project_news_path(@project),
|
||||||
|
:class => 'problem_new_btn fl c_dorange') %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<% if @newss.empty? %>
|
<% if @newss.empty? %>
|
||||||
<p class="nodata">
|
<p class="nodata">
|
||||||
|
@ -97,58 +23,25 @@
|
||||||
</p>
|
</p>
|
||||||
<% else %>
|
<% else %>
|
||||||
<% @newss.each do |news| %>
|
<% @newss.each do |news| %>
|
||||||
|
<div class="problem_main">
|
||||||
|
<%= link_to image_tag(url_to_avatar(news.author),:width => 42,:height => 42), user_path(news.author), :class => "problem_pic fl" %>
|
||||||
|
<div class="problem_txt fl mt5">
|
||||||
|
<%= link_to_user_header(news.author,false,{:class=> 'problem_name c_orange fl'}) if news.respond_to?(:author) %>
|
||||||
|
<span class="fl"> <%= l(:label_release_news) %>:</span><%= link_to h(news.title), news_path(news),:class => 'problem_tit fl fb c_dblue' %><br />
|
||||||
|
<div class="cl mb5"></div>
|
||||||
|
<p id="news_description_<%= news.id %>" class="news_description mt5"><%= news.description %><br /> <%= l(:label_create_time) %> :<%= format_time(news.created_on) %></p>
|
||||||
|
<div class="news_foot" style="display: none;" onclick="news_show_more_des(<%= news.id %>);" id="news_foot_<%= news.id %>"><%= l(:label_expend_information) %> <span class="g-arr-down"><img src="/images/jiantou.jpg" width="12" height="6" /></span></div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div><!--problem_main end-->
|
||||||
|
|
||||||
<table class="content-text-list">
|
|
||||||
<tr>
|
|
||||||
<td colspan="2" valign="top" width="50">
|
|
||||||
<%= link_to image_tag(url_to_avatar(news.author), :class => "avatar"), user_path(news.author) %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<table width="580px" border="0">
|
|
||||||
<% if @project.project_type == 1 %>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2" valign="top">
|
|
||||||
<strong><%= link_to_user(news.author) if news.respond_to?(:author) %></strong>
|
|
||||||
<span style="margin-left: 4px;" class="font_lighter"><%= l(:label_project_notice) %></span>
|
|
||||||
<span><%= link_to h(news.title), news_path(news) %></span>
|
|
||||||
<span style="float: right"><%= delete_link news_path(news) if User.current.allowed_to?(:manage_news, @project) %> </span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<% else %>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2" valign="top">
|
|
||||||
<strong><%= link_to_user(news.author) if news.respond_to?(:author) %></strong>
|
|
||||||
<span style="margin-left: 4px;" class="font_lighter"><%= l(:label_project_newshare) %></span>
|
|
||||||
<span> <%= link_to h(news.title), news_path(news) %></span>
|
|
||||||
<span style="float: right" class='delete_icon'>
|
|
||||||
<%= delete_link news_path(news) if User.current.allowed_to?(:manage_news, @project) %>
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<% end %>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2" width="580px">
|
|
||||||
<span class="font_description"><%= textilizable(news, :description) %></span></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left"><span class="font_lighter"> <%= l :label_update_time %>
|
|
||||||
: <%= format_time(news.created_on) %></span></td>
|
|
||||||
<td width="350" align="right" class="a"><%= link_to l(:label_project_newother), news_path(news) %><%= "(#{l(:label_x_comments, :count => news.comments_count)})" if news.comments_count >= 0 %></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<!--end-->
|
<!--end-->
|
||||||
<div style="padding-right: 10px">
|
<ul class="wlist">
|
||||||
<div class="pagination">
|
<%= pagination_links_full @news_pages, @news_count, :per_page_links => false, :remote => false, :flag => true%>
|
||||||
<ul>
|
|
||||||
<%= pagination_links_full @news_pages %>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
|
||||||
|
|
||||||
<% other_formats_links do |f| %>
|
<% other_formats_links do |f| %>
|
||||||
<%= f.link_to 'Atom', :url => {:project_id => @project, :key => User.current.rss_key} %>
|
<%= f.link_to 'Atom', :url => {:project_id => @project, :key => User.current.rss_key} %>
|
||||||
|
@ -160,7 +53,6 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% html_title(l(:label_news_plural)) -%>
|
<% html_title(l(:label_news_plural)) -%>
|
||||||
</div>
|
|
||||||
|
|
||||||
<script type='text/javascript'>
|
<script type='text/javascript'>
|
||||||
$(document).ready(function ($) {
|
$(document).ready(function ($) {
|
||||||
|
|
|
@ -4,12 +4,23 @@
|
||||||
label_tips = l(:label_course_news)
|
label_tips = l(:label_course_news)
|
||||||
%>
|
%>
|
||||||
<% if @project %>
|
<% if @project %>
|
||||||
|
<div class="project_r_h">
|
||||||
|
<h2 class="project_h2"><%= l(:label_news) %></h2>
|
||||||
|
</div>
|
||||||
|
<div class="hwork_new">
|
||||||
|
<%= error_messages_for @news %>
|
||||||
|
<p class="talk_top pl15" >
|
||||||
|
<%= l(:label_news_new)%>
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
<%= labelled_form_for @news, :url => project_news_index_path(@project),
|
<%= labelled_form_for @news, :url => project_news_index_path(@project),
|
||||||
:html => {:id => 'news-form', :multipart => true} do |f| %>
|
:html => {:id => 'news-form', :multipart => true} do |f| %>
|
||||||
<%= render :partial => 'news/form', :locals => {:f => f} %>
|
<%= render :partial => 'news/project_form', :locals => {:f => f, :is_new => true} %>
|
||||||
<%= submit_tag l(:button_create), :class => "whiteButton m3p10 h30" %>
|
|
||||||
<%#= preview_link preview_news_path(:project_id => @project), 'news-form', target='preview', {:class => 'whiteButton m3p10'} %>
|
<% end if @project %>
|
||||||
<% end %>
|
</ul>
|
||||||
|
<div id="preview" class="wiki"></div>
|
||||||
|
</div>
|
||||||
<% elsif @course %>
|
<% elsif @course %>
|
||||||
<div class="project_r_h">
|
<div class="project_r_h">
|
||||||
<h2 class="project_h2"><%= label_tips %></h2>
|
<h2 class="project_h2"><%= label_tips %></h2>
|
||||||
|
|
|
@ -1,213 +1,133 @@
|
||||||
|
<%= javascript_include_tag "jquery.infinitescroll.js" %>
|
||||||
<div class="project_r_h">
|
<div class="project_r_h">
|
||||||
<h2 class="project_h2"><%= l(:label_activity) %></h2>
|
<h2 class="project_h2"><%= l(:label_activity) %></h2>
|
||||||
</div>
|
</div>
|
||||||
<%= javascript_include_tag "jquery.infinitescroll.js" %>
|
<!--CONTENT LIST-->
|
||||||
<script>
|
|
||||||
/* $(document).ready(function (){ //别忘了加这句,除非你没学Jquery
|
|
||||||
$("#container").infinitescroll({
|
|
||||||
navSelector: "#paginator", //页面分页元素--成功后自动隐藏
|
|
||||||
nextSelector: "#paginator a[rel='next']", //下一页的按钮,但是貌似这个选不中
|
|
||||||
itemSelector: ".scroll " ,
|
|
||||||
path: function(current){ var page = parseInt(current)+1;
|
|
||||||
var project_id = <%= @project.id %>;
|
|
||||||
return "/projects/"+project_id+"?page="+page
|
|
||||||
}, //下一页的路径
|
|
||||||
animate: true,
|
|
||||||
maxPage: 500
|
|
||||||
});
|
|
||||||
});*/
|
|
||||||
</script>
|
|
||||||
<div id="container">
|
|
||||||
<div class="scroll">
|
|
||||||
<% unless @events_pages.empty? %>
|
<% unless @events_pages.empty? %>
|
||||||
<% @events_pages.each do |e| -%>
|
<% @events_pages.each do |e| -%>
|
||||||
|
<!--创建-->
|
||||||
<% if e.forge_act_type == "ProjectCreateInfo"%>
|
<% if e.forge_act_type == "ProjectCreateInfo"%>
|
||||||
<div class="font_description">
|
<div class="problem_main">
|
||||||
<table width="660">
|
<a class="problem_pic fl"><%= image_tag(url_to_avatar(e.user), :width => "42", :height => "42") %></a>
|
||||||
<tr>
|
<div class="problem_txt fl mt5">
|
||||||
<td>
|
<%= link_to e.user, user_path(e.user), :class => "problem_name c_orange fl" %><span class="fl"> <%= l(:label_project_new) %> :</span>
|
||||||
<%= image_tag(url_to_avatar(e.user), :class => "avatar") %>
|
<%= link_to e.project.name, :class => "problem_tit fl fb" %></a><br />
|
||||||
</td>
|
<p class="mt5"><br /> <%= l :label_create_time %> :<%= format_time(e.project.created_on) %></p>
|
||||||
<td colspan="2">
|
</div>
|
||||||
<table width="580">
|
<div class="cl"></div>
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
|
|
||||||
<%= link_to_user(e.user)%>
|
|
||||||
|
|
||||||
<%= l(:label_project_new) %>
|
|
||||||
<%= link_to e.project.name %>
|
|
||||||
<strong> !</strong>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="font_lighter" >
|
|
||||||
<%= l :label_create_time %>:
|
|
||||||
<%= format_time(e.project.created_on) %>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% next if e.forge_act_type.safe_constantize.nil?
|
<% next if e.forge_act_type.safe_constantize.nil?
|
||||||
act = e.forge_act;
|
act = e.forge_act;
|
||||||
next if act.nil? %>
|
next if act.nil? %>
|
||||||
|
<!--缺陷动态-->
|
||||||
<% if e.forge_act_type == "Issue" %>
|
<% if e.forge_act_type == "Issue" %>
|
||||||
<div class="activity-item underline-evreycontent" style="font-size: 14px;line-height:1.5em;width: 100%;word-wrap: break-word;word-break: break-all;margin-top: 10px;">
|
<div class="problem_main">
|
||||||
<div class="activity-avatar" style="float: left; margin:3px; height: 100%;">
|
<a class="problem_pic fl"><%= image_tag(url_to_avatar(act.author), :width => "42", :height => "42") %></a>
|
||||||
<%= image_tag(url_to_avatar(act.author), :class => "avatar") %>
|
<div class="problem_txt fl mt5">
|
||||||
</div>
|
<a class="problem_name fl ">
|
||||||
|
<%= h(e.project) if @project.nil? || @project.id != e.project_id %>
|
||||||
<div class="activity-content" style="padding:5px 5px 5px 70px;">
|
<%= link_to act.author, user_path(act.author), :class => "problem_name c_orange fl" %><span class="fl"> <%= l(:label_new_activity) %> :</span>
|
||||||
<strong> <%= h(e.project) if @project.nil? || @project.id != e.project_id %></strong>
|
|
||||||
<span class="activity-title font_lighter">
|
|
||||||
<%= link_to_user(act.author) %>
|
|
||||||
<%= l(:label_new_activity) %>
|
|
||||||
</span>
|
|
||||||
<%= link_to format_activity_title("#{act.source_from}##{act.project_issues_index} (#{act.status}): #{act.tracker.name} #{act.subject}"),
|
<%= link_to format_activity_title("#{act.source_from}##{act.project_issues_index} (#{act.status}): #{act.tracker.name} #{act.subject}"),
|
||||||
{:controller => 'issues',
|
{:controller => 'issues',
|
||||||
:action => 'show',
|
:action => 'show',
|
||||||
:id => act.id} %>
|
:id => act.id},
|
||||||
<div class="activity_description info-break" style="font-size: 13px;width: 100%;word-break: break-all;word-wrap: break-word;">
|
:class => "problem_tit fl fb " %>
|
||||||
<%= textAreailizable act,:description %>
|
|
||||||
</div>
|
|
||||||
<div class="activity_status" style="position:relative; padding-top: 3px;">
|
|
||||||
<span class="font_lighter"> <%= l :label_activity_time %>
|
|
||||||
: <%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></span>
|
|
||||||
<div class="" style="display:inline-block;position:absolute; right:2%;">
|
|
||||||
<span> <%= link_to l(:label_find_all_comments), issue_path(act.id) %> </span><span class="font_lighter"><%= l(:label_comments_count, :count => act.journals.count) %></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% elsif e.forge_act_type == "Journal" %>
|
|
||||||
<div class="activity-item underline-evreycontent" style="font-size: 14px;line-height:1.5em;width: 100%;word-wrap: break-word;word-break: break-all;">
|
|
||||||
<div class="activity-avatar" style="float: left; margin:3px; height: 100%;">
|
|
||||||
<%= image_tag(url_to_avatar(e.user), :class => "avatar") %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="activity-content" style="padding:5px 5px 5px 70px;">
|
</a><br />
|
||||||
<strong> <%= h(e.project) if @project.nil? || @project.id != e.project_id %></strong>
|
<p class="mt5"><%= textAreailizable act,:description %><br />
|
||||||
<span class="activity-title font_lighter">
|
<%= l :label_activity_time %> :<%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %>
|
||||||
<%= link_to(h(e.user), user_path(e.user_id)) %>
|
</p>
|
||||||
<%= l(:label_new_activity) %>
|
</div>
|
||||||
</span>
|
<div class="cl"></div>
|
||||||
<%= link_to(l(:label_activity_project)+act.issue.project.name, project_path(act.issue.project.id)) %>
|
</div>
|
||||||
|
<!--jou留言-->
|
||||||
|
<% elsif e.forge_act_type == "Journal" %>
|
||||||
|
<div class="problem_main">
|
||||||
|
<a class="problem_pic fl"><%= image_tag(url_to_avatar(e.user), :width => "42", :height => "42") %></a>
|
||||||
|
<div class="problem_txt fl mt5">
|
||||||
|
<a class="problem_name fl ">
|
||||||
|
<%= h(e.project) if @project.nil? || @project.id != e.project_id %>
|
||||||
|
<%= link_to h(e.user), user_path(e.user_id), :class => "problem_name c_orange fl" %>
|
||||||
|
</a><span class="fl"> <%= l(:label_new_activity) %> :</span>
|
||||||
|
<a class="problem_tit fl fb">
|
||||||
|
<%= link_to(l(:label_activity_project)+act.issue.project.name, project_path(act.issue.project.id), :class => "problem_tit fl fb") %>
|
||||||
<%= link_to format_activity_title("#{act.issue.tracker} ##{act.issue.project_issues_index}: #{act.issue.subject}"),
|
<%= link_to format_activity_title("#{act.issue.tracker} ##{act.issue.project_issues_index}: #{act.issue.subject}"),
|
||||||
{:controller => 'issues', :action => 'show', :id => act.issue.id, :anchor => "change-#{act.id}"} %>
|
{:controller => 'issues', :action => 'show', :id => act.issue.id, :anchor => "change-#{act.id}"}, :class => "problem_tit fl fb" %>
|
||||||
<div class="activity_description info-break" style="font-size: 13px;width: 100%;word-break: break-all;word-wrap: break-word;">
|
</a><br />
|
||||||
<%= textAreailizable act,:notes %>
|
<p class="mt5"><%= textAreailizable act,:notes %><br />
|
||||||
</div>
|
<%= l :label_activity_time %> :<%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></p>
|
||||||
<div class="activity_status" style="position:relative; padding-top: 3px;">
|
|
||||||
<span class="font_lighter"> <%= l :label_activity_time %>
|
|
||||||
: <%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<!--message -->
|
||||||
<% elsif e.forge_act_type == "Message" %>
|
<% elsif e.forge_act_type == "Message" %>
|
||||||
<div class="activity-item underline-evreycontent" style="font-size: 14px;line-height:1.5em;width: 100%;word-wrap: break-word;word-break: break-all;">
|
<div class="problem_main">
|
||||||
<div class="activity-avatar" style="float: left; margin:3px; height: 100%;">
|
<a class="problem_pic fl"><%= image_tag(url_to_avatar(e.user), :width => "42", :height => "42") %></a>
|
||||||
<%= image_tag(url_to_avatar(e.user), :class => "avatar") %>
|
<div class="problem_txt fl mt5">
|
||||||
</div>
|
<a class="problem_name fl ">
|
||||||
<div class="activity-content" style="padding:5px 5px 5px 70px;">
|
<%= h(e.project) if @project.nil? || @project.id != e.project_id %>
|
||||||
<strong> <%= h(e.project) if @project.nil? || @project.id != e.project_id %></strong>
|
<%= link_to h(e.user), user_path(e.user_id), :class => "problem_name c_orange fl" %></a><span class="fl"> <%= l(:label_new_activity) %> :</span>
|
||||||
<span class="activity-title font_lighter">
|
|
||||||
<%= link_to(h(e.user), user_path(e.user_id)) %>
|
|
||||||
<%= l(:label_new_activity) %>
|
|
||||||
</span>
|
|
||||||
<%= link_to format_activity_title("#{act.board.name}: #{act.subject}"),
|
<%= link_to format_activity_title("#{act.board.name}: #{act.subject}"),
|
||||||
{:controller => 'messages',
|
{:controller => 'messages',
|
||||||
:action => 'show',
|
:action => 'show',
|
||||||
:board_id => act.board_id}.merge(act.parent_id.nil? ? {:id => act.id} : {:id => act.parent_id, :r => act.id, :anchor => "message-#{act.id}"}) %>
|
:board_id => act.board_id}.merge(act.parent_id.nil? ? {:id => act.id} : {:id => act.parent_id, :r => act.id, :anchor => "message-#{act.id}"}),
|
||||||
<div class="activity_description info-break" style="font-size: 13px;width: 100%;word-break: break-all;word-wrap: break-word;">
|
:class => "problem_tit fl fb " %>
|
||||||
<%= textAreailizable act,:content %>
|
<br />
|
||||||
</div>
|
<p class="mt5"><%= textAreailizable act,:content %><br />
|
||||||
<div class="activity_status" style="position:relative; padding-top: 3px;">
|
<%= l :label_create_time %> :<%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></p>
|
||||||
<span class="font_lighter"> <%= l :label_activity_time %>
|
|
||||||
: <%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<!--new 新闻-->
|
||||||
<% elsif e.forge_act_type == "News" %>
|
<% elsif e.forge_act_type == "News" %>
|
||||||
<div class="activity-item underline-evreycontent" style="font-size: 14px;line-height:1.5em;width: 100%;word-wrap: break-word;word-break: break-all;">
|
<div class="problem_main">
|
||||||
<div class="activity-avatar" style="float: left; margin:3px; height: 100%;">
|
<a class="problem_pic fl"><%= image_tag(url_to_avatar(e.user), :width => "42", :height => "42") %></a>
|
||||||
<%= image_tag(url_to_avatar(e.user), :class => "avatar") %>
|
<div class="problem_txt fl mt5">
|
||||||
</div>
|
<a class="problem_name fl ">
|
||||||
<div class="activity-content" style="padding:5px 5px 5px 70px;">
|
<%= h(e.project) if @project.nil? || @project.id != e.project_id %>
|
||||||
<strong> <%= h(e.project) if @project.nil? || @project.id != e.project_id %></strong>
|
<%= link_to h(e.user), user_path(e.user_id), :class => "problem_name c_orange fl" %></a><span class="fl"> <%= l(:label_new_activity) %> :</span>
|
||||||
<span class="activity-title font_lighter">
|
<a class="problem_tit fl fb">
|
||||||
<%= link_to(h(e.user), user_path(e.user_id)) %>
|
|
||||||
<%= l(:label_new_activity) %>
|
|
||||||
</span>
|
|
||||||
<% unless act.nil? %>
|
<% unless act.nil? %>
|
||||||
<%= link_to format_activity_title("#{l(:label_news)}: #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id} %>
|
<%= link_to format_activity_title("#{l(:label_news)}: #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id}, :class => "problem_tit fl fb " %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="activity_description info-break" style="font-size: 13px;width: 100%;word-break: break-all;word-wrap: break-word;">
|
</a><br />
|
||||||
<%= textAreailizable act,:description %>
|
<p class="mt5"><%= textAreailizable act,:description %><br />
|
||||||
</div>
|
<%= l :label_create_time %> :<%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></p>
|
||||||
<div class="activity_status" style="position:relative; padding-top: 3px;">
|
|
||||||
<span class="font_lighter"> <%= l :label_activity_time %>
|
|
||||||
: <%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></span>
|
|
||||||
<div class="" style="display:inline-block;position:absolute; right:2%;">
|
|
||||||
<span>
|
|
||||||
<%= link_to l(:label_find_all_comments), {:controller => 'news', :action => 'show', :id => act.id} %>
|
|
||||||
</span>
|
|
||||||
<span class="font_lighter">
|
|
||||||
<%= l(:label_comments_count, :count => act.comments_count) %>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<!--Document-->
|
||||||
<% elsif e.forge_act_type == "Document" %>
|
<% elsif e.forge_act_type == "Document" %>
|
||||||
<div class="activity-item underline-evreycontent" style="font-size: 14px;line-height:1.5em;width: 100%;word-wrap: break-word;word-break: break-all;">
|
<div class="problem_main">
|
||||||
<div class="activity-avatar" style="float: left; margin:3px; height: 100%;">
|
<a class="problem_pic fl"><%= image_tag(url_to_avatar(e.user), :width => "42", :height => "42") %></a>
|
||||||
<%= image_tag(url_to_avatar(e.user), :class => "avatar") %>
|
<div class="problem_txt fl mt5">
|
||||||
</div>
|
<a class="problem_name fl ">
|
||||||
<div class="activity-content" style="padding:5px 5px 5px 70px;">
|
<%= h(e.project) if @project.nil? || @project.id != e.project_id %>
|
||||||
<strong> <%= h(e.project) if @project.nil? || @project.id != e.project_id %></strong>
|
<%= link_to h(e.user), user_path(e.user_id), :class => "problem_name c_orange fl" %></a><span class="fl"> <%= l(:label_new_activity) %> :</span>
|
||||||
<span class="activity-title font_lighter">
|
|
||||||
<%= link_to(h(e.user), user_path(e.user_id)) %>
|
|
||||||
<%= l(:label_new_activity) %>
|
|
||||||
</span>
|
|
||||||
<%= link_to format_activity_title("#{l(:label_document)}: #{act.title}"), {:controller => 'documents', :action => 'show', :id => act.id} %>
|
|
||||||
<div class="activity_description info-break" style="font-size: 13px;width: 100%;word-break: break-all;word-wrap: break-word;">
|
|
||||||
<%= textAreailizable act,:description %>
|
|
||||||
</div>
|
|
||||||
<div class="activity_status" style="position:relative; padding-top: 3px;">
|
|
||||||
<span class="font_lighter"> <%= l :label_activity_time %>
|
|
||||||
: <%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></span>
|
|
||||||
|
|
||||||
|
<%= link_to format_activity_title("#{l(:label_document)}: #{act.title}"), {:controller => 'documents', :action => 'show', :id => act.id}, :class => "problem_tit fl fb" %><br />
|
||||||
|
<p class="mt5"><%= textAreailizable act,:description %><br />
|
||||||
|
<%= l :label_create_time %> :<%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<!--Attachment -->
|
||||||
<% elsif e.forge_act_type == "Attachment" %>
|
<% elsif e.forge_act_type == "Attachment" %>
|
||||||
<div class="activity-item underline-evreycontent" style="font-size: 14px;line-height:1.5em;width: 100%;word-wrap: break-word;word-break: break-all;">
|
<div class="problem_main">
|
||||||
<div class="activity-avatar" style="float: left; margin:3px; height: 100%;">
|
<a class="problem_pic fl"><%= image_tag(url_to_avatar(e.user), :width => "42", :height => "42") %></a>
|
||||||
<%= image_tag(url_to_avatar(e.user), :class => "avatar") %>
|
<div class="problem_txt fl mt5">
|
||||||
</div>
|
<a class="problem_name fl ">
|
||||||
<div class="activity-content" style="padding:5px 5px 5px 70px;">
|
<%= h(e.project) if @project.nil? || @project.id != e.project_id %>
|
||||||
<strong> <%= h(e.project) if @project.nil? || @project.id != e.project_id %></strong>
|
<%= link_to h(e.user), user_path(e.user_id), :class => "problem_name c_orange fl" %></a><span class="fl"> <%= l(:label_new_activity) %> :</span>
|
||||||
<span class="activity-title font_lighter">
|
<%= link_to format_activity_title("#{l(:label_attachment)}: #{act.filename}"), {:controller => 'attachments', :action => 'show', :id => act.id}, :class => "problem_tit fl fb" %></a><br />
|
||||||
<%= link_to(h(e.user), user_path(e.user_id)) %>
|
<p class="mt5"><%= textAreailizable act,:description %><br />
|
||||||
<%= l(:label_new_activity) %>
|
<%= l :label_create_time %> :<%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></p>
|
||||||
</span>
|
|
||||||
<%= link_to format_activity_title("#{l(:label_attachment)}: #{act.filename}"), {:controller => 'attachments', :action => 'show', :id => act.id} %>
|
|
||||||
<div class="activity_description info-break" style="font-size: 13px;width: 100%;word-break: break-all;word-wrap: break-word;">
|
|
||||||
<%= textAreailizable act,:description %>
|
|
||||||
</div>
|
|
||||||
<div class="activity_status" style="position:relative; padding-top: 3px;">
|
|
||||||
<span class="font_lighter"> <%= l :label_activity_time %>
|
|
||||||
: <%= format_activity_day(act.created_on) %> <%= format_time(act.created_on, false) %></span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= paginate @events_pages, :left => 3, :right => 3%>
|
<%= paginate @events_pages, :left => 3, :right => 3%>
|
|
@ -1,30 +1,15 @@
|
||||||
<div id="tags_show" style="float: left;">
|
<div id="tags_show">
|
||||||
<%= render :partial => "tags/tag_name",:locals => {:obj => obj,:non_list_all => false ,:object_flag => object_flag} %>
|
<%= render :partial => "tags/tag_name",:locals => {:obj => obj,:non_list_all => false ,:object_flag => object_flag} %>
|
||||||
</div>
|
</div>
|
||||||
<div style="float: left;">
|
|
||||||
<% if User.current.logged?%>
|
<% if User.current.logged?%>
|
||||||
<span> <%= toggle_link (l(:label_add_tag)), 'put-tag-form', {:focus => 'tags_name'} %> </span>
|
<a href="javascript:void(0)" class="yellowBtn f_l" onclick="$('#add_tag01').slideToggle();"><%= l(:label_add_tag)%></a>
|
||||||
<% end %>
|
<span id="add_tag01" style="display:none; vertical-align: middle;" class="ml10 f_l">
|
||||||
|
<%= form_for "tag_for_save",:remote=>true,:url=>save_tag_path,:update => "tags_show",:complete => '$("#put-tag-form").slideUp();' do |f| %>
|
||||||
<div id="put-tag-form" style="display: none;text-align: center">
|
<%= f.text_field :name ,:id => "tags_name",:size=>"20",:require=>true,:maxlength => Setting.tags_max_length,:minlength=>Setting.tags_min_length,:class =>"isTxt w90 f_l" %>
|
||||||
<%= form_for "tag_for_save",:remote=>true,:url=>tag_path,
|
|
||||||
:update => "tags_show",
|
|
||||||
:complete => '$("#put-tag-form").slideUp();' do |f| %>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<%= f.text_field :name ,:id => "tags_name",:size=>"20",
|
|
||||||
:require=>true,
|
|
||||||
:maxlength => Setting.tags_max_length,
|
|
||||||
:minlength=>Setting.tags_min_length %>
|
|
||||||
</td>
|
|
||||||
<%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%>
|
<%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%>
|
||||||
<%= f.text_field :object_flag,:value=> object_flag,:style=>"display:none"%>
|
<%= f.text_field :object_flag,:value=> object_flag,:style=>"display:none"%>
|
||||||
<td style="margin-left: 5px" vertical-valign="middle" >
|
<input type="button" class="submit f_l" onclick="$('#tags_name').parent().submit();" />
|
||||||
<a href="#" onclick='$("#tags_name").parent().submit();' type="button" class="submit f_l"></a>
|
|
||||||
</td>
|
|
||||||
<tr>
|
|
||||||
</table>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</span>
|
||||||
</div>
|
<% end%>
|
||||||
|
|
||||||
|
|
|
@ -31,10 +31,10 @@
|
||||||
<!-- 用来显示三大对象的主页中的tag 故是全部显示 -->
|
<!-- 用来显示三大对象的主页中的tag 故是全部显示 -->
|
||||||
<% if @tags.size > 0 %>
|
<% if @tags.size > 0 %>
|
||||||
<% @tags.each do |tag| %>
|
<% @tags.each do |tag| %>
|
||||||
<!--项目暂时单独出来,后面重构-->
|
<!--object_flag == '2'为项目 项目暂时单独出来,后面其它几个选项也需样式重构-->
|
||||||
<% if object_flag == '2' %>
|
<% if object_flag == '2' %>
|
||||||
<span class="re_tag f_l">
|
<span class="re_tag f_l">
|
||||||
<%= link_to tag, :controller => "tags", :action => "index", :q => tag, :object_flag => object_flag, :obj_id => obj.id %>
|
<%= link_to tag, :controller => "tags", :action => "index", :q => tag, :object_flag => object_flag, :obj_id => obj.id, :class => 'pt5' %>
|
||||||
<% if (ProjectInfo.find_by_project_id(obj.id)).try(:user_id) == User.current.id %>
|
<% if (ProjectInfo.find_by_project_id(obj.id)).try(:user_id) == User.current.id %>
|
||||||
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
||||||
:taggable_id => obj.id, :taggable_type => object_flag %>
|
:taggable_id => obj.id, :taggable_type => object_flag %>
|
||||||
|
|
|
@ -12,6 +12,9 @@ zh:
|
||||||
#
|
#
|
||||||
label_project_new: "新建项目"
|
label_project_new: "新建项目"
|
||||||
label_join_project: "加入项目"
|
label_join_project: "加入项目"
|
||||||
|
label_my_project: "我的项目"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -20,13 +23,23 @@ zh:
|
||||||
# 热门项目栏
|
# 热门项目栏
|
||||||
#
|
#
|
||||||
lable_hot_projects: 热门项目
|
lable_hot_projects: 热门项目
|
||||||
|
label_project_name: 项目名称:
|
||||||
label_private: 私有
|
label_private: 私有
|
||||||
|
label_public: 公开
|
||||||
label_project_member_amount:
|
label_project_member_amount:
|
||||||
one: "%{count}人"
|
one: "%{count}人"
|
||||||
other: "%{count}人"
|
other: "%{count}人"
|
||||||
label_project_score_tips: 项目得分,综合考虑了项目的各项活动,反映了该项目的活跃程度
|
label_project_score_tips: 项目得分,综合考虑了项目的各项活动,反映了该项目的活跃程度
|
||||||
label_project_score: 项目评分
|
label_project_score: 项目评分
|
||||||
|
|
||||||
|
#
|
||||||
|
# 项目托管平台主页
|
||||||
|
#
|
||||||
|
# TopBar
|
||||||
|
#
|
||||||
|
label_project_hosting_platform: 项目托管平台
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# 项目托管平台主页
|
# 项目托管平台主页
|
||||||
|
@ -36,7 +49,7 @@ zh:
|
||||||
label_project_id: "项目ID:"
|
label_project_id: "项目ID:"
|
||||||
|
|
||||||
label_apply_project: "+申请加入"
|
label_apply_project: "+申请加入"
|
||||||
label_button_following: "+关注"
|
label_button_following: "+添加关注"
|
||||||
label_exit_project: 退出项目
|
label_exit_project: 退出项目
|
||||||
label_apply_project_waiting: 已处理申请,请等待管理员审核
|
label_apply_project_waiting: 已处理申请,请等待管理员审核
|
||||||
label_unapply_project: 取消申请
|
label_unapply_project: 取消申请
|
||||||
|
@ -52,7 +65,7 @@ zh:
|
||||||
|
|
||||||
|
|
||||||
project_module_boards: 讨论区
|
project_module_boards: 讨论区
|
||||||
project_module_boards_post: 发帖
|
project_module_boards_post: 发帖新帖
|
||||||
project_module_files: 资源库
|
project_module_files: 资源库
|
||||||
project_module_repository: 版本库
|
project_module_repository: 版本库
|
||||||
project_module_create_repository: 创建版本库
|
project_module_create_repository: 创建版本库
|
||||||
|
@ -253,6 +266,7 @@ zh:
|
||||||
# 项目得分
|
# 项目得分
|
||||||
#
|
#
|
||||||
label_projects_score: 项目综合得分
|
label_projects_score: 项目综合得分
|
||||||
|
label_project_new_list: 条项目新闻
|
||||||
|
|
||||||
label_issue_score: issue得分
|
label_issue_score: issue得分
|
||||||
label_issue_number: issue的数量
|
label_issue_number: issue的数量
|
||||||
|
|
|
@ -1225,6 +1225,7 @@ zh:
|
||||||
label_author_name: 由%{author_name}发表了
|
label_author_name: 由%{author_name}发表了
|
||||||
|
|
||||||
label_post_on: 发表了
|
label_post_on: 发表了
|
||||||
|
label_post_on_issue: 发表了问题
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 521 B |
After Width: | Height: | Size: 714 B |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 502 B |
|
@ -0,0 +1,129 @@
|
||||||
|
//验证搜索时输入字
|
||||||
|
function regexName() {
|
||||||
|
var name = $.trim($("#name").val());
|
||||||
|
if (name.length == 0) {
|
||||||
|
$("#project_name_span").text("<%= l(:label_search_conditions_not_null) %>");
|
||||||
|
$("#project_name_span").css('color', '#ff0000');
|
||||||
|
$("#project_name_span").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$("#project_name_span").text("");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 项目描述超过展开
|
||||||
|
$(function(){
|
||||||
|
$(".subNav").click(function(){
|
||||||
|
$(this).toggleClass("currentDd").siblings(".subNav").removeClass("currentDd")
|
||||||
|
$(this).toggleClass("currentDt").siblings(".subNav").removeClass("currentDt")
|
||||||
|
|
||||||
|
// 修改数字控制速度, slideUp(500)控制卷起速度
|
||||||
|
$(this).next(".navContent").slideToggle(500).siblings(".navContent").slideUp(500);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
// 描述显示更多信息
|
||||||
|
function show_more_msg()
|
||||||
|
{$("#course_description").toggleClass("course_description_none");}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////项目讨论区
|
||||||
|
function regexSubject()
|
||||||
|
{
|
||||||
|
var content = $.trim($("#message_subject").val());
|
||||||
|
if(content.length ==0)
|
||||||
|
{
|
||||||
|
$("#subject_span").text("主题不能为空");
|
||||||
|
$("#subject_span").css('color','#ff0000');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#subject_span").text("填写正确");
|
||||||
|
$("#subject_span").css('color','#008000');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
function regexContent()
|
||||||
|
{
|
||||||
|
var content = $.trim($("#message_content").val());
|
||||||
|
if(content.length ==0)
|
||||||
|
{
|
||||||
|
$("#message_content_span").text("描述不能为空");
|
||||||
|
$("#message_content_span").css('color','#ff0000');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#message_content_span").text("填写正确");
|
||||||
|
$("#message_content_span").css('color','#008000');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 项目编辑和提交
|
||||||
|
function submitProjectsBoard()
|
||||||
|
{
|
||||||
|
if(regexSubject()&®exContent()){$("#message-form").submit();}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交新闻
|
||||||
|
function regexTitle()
|
||||||
|
{
|
||||||
|
var name = $("#news_title").val();
|
||||||
|
if(name.length ==0)
|
||||||
|
{
|
||||||
|
$("#title_notice_span").text("标题不能为空");
|
||||||
|
$("#title_notice_span").css('color','#ff0000');
|
||||||
|
$("#title_notice_span").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if(name.length <= 60)
|
||||||
|
{
|
||||||
|
$("#title_notice_span").text("填写正确");
|
||||||
|
$("#title_notice_span").css('color','#008000');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#title_notice_span").text("标题超过60个字符");
|
||||||
|
$("#title_notice_span").css('color','#ff0000');
|
||||||
|
$("#title_notice_span").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function regexDescription()
|
||||||
|
{
|
||||||
|
var name = $("#news_description").val();
|
||||||
|
if(name.length ==0)
|
||||||
|
{
|
||||||
|
$("#description_notice_span").text("描述不能为空");
|
||||||
|
$("#description_notice_span").css('color','#ff0000');
|
||||||
|
$("#description_notice_span").focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#description_notice_span").text("填写正确");
|
||||||
|
$("#description_notice_span").css('color','#008000');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function submitNews()
|
||||||
|
{
|
||||||
|
if(regexTitle() && regexDescription())
|
||||||
|
{
|
||||||
|
$("#news-form").submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function submitFocus(obj)
|
||||||
|
{
|
||||||
|
$(obj).focus();
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
.topbar_info02{ margin:5px 10px;width:480px; }
|
||||||
|
.topbar_info02 p{color: #7f7f7f;}
|
||||||
|
.search{ margin-top:8px; margin-left:71px;}
|
||||||
|
/*信息*/
|
||||||
|
.project_info{ background:#fff; padding:10px; padding-right:0px;width:222px; padding-right:8px; margin-bottom:10px;}
|
||||||
|
.pr_info_id{ width:137px; color:#5a5a5a; font-size:14px; margin-top:5px;}
|
||||||
|
.pr_info_logo{ border:1px solid #eaeaea; width:60px; height:60px; padding:1px;}
|
||||||
|
.pr_info_logo:hover{ border:1px solid #64bdd9; }
|
||||||
|
.pr_info_join{}
|
||||||
|
a.pr_join_a{ color:#fff; display:block; padding:0 5px 0 3px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background-color:#64bdd9; float:left; }
|
||||||
|
a:hover.pr_join_a{ background:#41a8c8;}
|
||||||
|
.pr_join_span{color: #fff; display:block; padding:0 5px; padding-top:2px; height:20px; margin-right:5px; float:left; text-align:center; background: #CCC;}
|
||||||
|
.pr_setting{ display:block; background:url(../images/leftside.png) -1px 0 no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
|
||||||
|
.pr_copy{ display:block; background:url(../images/leftside.png) -1px -23px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
|
||||||
|
.pr_close{ display:block; background:url(../images/leftside.png) -1px -49px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
|
||||||
|
.pr_add{display:block; background:url(../images/leftside.png) 0px -71px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
|
||||||
|
.pr_arrow{display:block; background:url(../images/leftside.png) 0px -90px no-repeat; width:11px; height:11px; margin-top:3px; float:left; }
|
||||||
|
.pr_info_name{ color:#3e4040; font-size:14px; line-height:1.5;}
|
||||||
|
.pr_info_name:hover{ color:#3ca5c6;}
|
||||||
|
.pr_info_score{ font-size:14px; color:#3e4040; }
|
||||||
|
.pr_info_score a{ color:#ff7143;}
|
||||||
|
.pr_info_score a:hover{ color:#64bdd9;}
|
||||||
|
.img_private{ background:url(../images/new_project/img_project.png) 0 0 no-repeat; width:33px; height:16px; color:#fff; font-size:12px; padding-left:7px; }
|
||||||
|
.info_foot_num{ color:#3ca5c6; }
|
||||||
|
.pr_info_foot{ color:#7f7f7f; margin-top:5px; }
|
||||||
|
.info_foot_num:hover{ color:#2390b2;}
|
||||||
|
.info_box{background:#fff; padding:10px;width:220px; }
|
||||||
|
.info_box ul li{ font-size:12px; color: #3e4040; line-height:1.7;}
|
||||||
|
|
||||||
|
/*左侧导航*/
|
||||||
|
.subNavBox{width:240px; background:#fff;margin:10px 10px 0 0;}
|
||||||
|
.subNav{border-bottom:solid 1px #e5e3da;cursor:pointer;font-weight:bold;font-size:14px;color:#3ca5c6; height:26px;padding-left:10px;background-color:#fff; padding-top:2px;}
|
||||||
|
a.subNav_jiantou{background:url(../images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;}
|
||||||
|
a:hover.subNav_jiantou:hover{color:#0781b4; }
|
||||||
|
.currentDd{color:#0781b4; }
|
||||||
|
.currentDt{background-color:#fff; }
|
||||||
|
.navContent{display: none;border-bottom:solid 1px #e5e3da; }
|
||||||
|
.navContent li a{display:block;width:240px;heigh:28px;text-align:center;font-size:12px;line-height:28px;color:#333}
|
||||||
|
.navContent li a:hover{color:#fff;background-color:#b3e0ee}
|
||||||
|
a.subnav_num{ font-weight:normal; color:#ff7143; font-size:12px;}
|
||||||
|
a.subnav_green{ background:#28be6c; color:#fff; font-size:12px; font-weight:normal;height:18px; padding:0px 5px; padding-top:2px; display:block; margin-top:2px; margin-bottom:5px; float:right; margin-right:5px;}
|
||||||
|
a:hover.subnav_green{ background:#14ad5a;}
|
||||||
|
|
||||||
|
|
||||||
|
/*简介*/
|
||||||
|
.project_intro{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; color:#6d6d6d; line-height:1.9;}
|
||||||
|
.course_description{max-height: 112px;overflow:hidden; word-break: break-all;word-wrap: break-word;}
|
||||||
|
.course_description_none{max-height: none;}
|
||||||
|
.lg-foot{ border:1px solid #e8eef2; color: #929598; text-align:center; width:220px; height:23px; cursor:pointer;}
|
||||||
|
.lg-foot:hover{ color:#787b7e; border:1px solid #d4d4d4;}
|
||||||
|
/****标签(和资源库的tag样式一致)***/
|
||||||
|
.project_Label{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; margin-bottom:10px;}
|
||||||
|
a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;}
|
||||||
|
.submit{height:21px;border:0; cursor:pointer; background:url(../images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; }
|
||||||
|
.isTxt{background:#fbfbfb url(../images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;}
|
||||||
|
.re_tag{ width: auto; padding:0 5px; padding-top:2px; height:20px; border:1px solid #f8df8c; background:#fffce6; margin-right:5px; }
|
||||||
|
.re_tag a{ color:#0d90c3;}
|
||||||
|
.tag_h{ }
|
||||||
|
.tag_h span,.tag_h a{ margin-bottom:5px;}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,72 +1,17 @@
|
||||||
@charset "utf-8";
|
|
||||||
/* CSS Document */
|
|
||||||
body{ font-size:12px; font-family:"微软雅黑","宋体"; line-height:1.9; background:#eaebec; font-style:normal;}
|
|
||||||
div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span,ol{ margin:0; padding:0;}
|
|
||||||
div,img,tr,td,table{ border:0;}
|
|
||||||
table,tr,td{border:0;cellspacing:0; cellpadding:0;}
|
|
||||||
ol,ul,li{ list-style-type:none}
|
|
||||||
.cl{ clear:both; overflow:hidden; }
|
|
||||||
a{ text-decoration:none; cursor:pointer;}
|
|
||||||
.ml10{ margin-left:10px;}
|
|
||||||
.ml20{ margin-left:20px;}
|
|
||||||
.mr10{ margin-right:10px;}
|
|
||||||
.mb5{ margin-bottom:5px;}
|
|
||||||
.mb10{ margin-bottom:10px;}
|
|
||||||
.fl{ float: left;}
|
|
||||||
.fr{ float:right;}
|
|
||||||
.project_h4{ font-size:14px; color:#3b3b3b;}
|
.project_h4{ font-size:14px; color:#3b3b3b;}
|
||||||
|
|
||||||
|
|
||||||
.project_content{ width:940px; margin:10px auto;}
|
.project_content{ width:940px; margin:10px auto;}
|
||||||
.project_left{ float:left;}
|
.project_left{ float:left;}
|
||||||
.project_right{ width:670px; float:left;background:#fff; padding:10px;}
|
.project_right{ width:670px; float:left;background:#fff; padding:10px;}
|
||||||
/*项目信息*/
|
|
||||||
.project_info{ background:#fff; padding:10px;width:222px; padding-right:8px;}
|
|
||||||
.pr_info_id{ width:137px; color:#5a5a5a; font-size:14px;}
|
|
||||||
.pr_info_join{}
|
|
||||||
.pr_info_join a{ color:#fff; display:block; padding:0 5px; margin-right:10px; float:left; height:22px; background:#64bdd9; text-align:center; }
|
|
||||||
.pr_info_join a:hover{ background:#41a8c8;}
|
|
||||||
a.pr_info_name{ color:#3e4040; font-size:14px; line-height:1.5;}
|
|
||||||
a:hover.pr_info_name{ color:#3ca5c6;}
|
|
||||||
.pr_info_score{ font-size:14px; color:#3e4040; }
|
|
||||||
.pr_info_score a{ color:#ff7143;}
|
|
||||||
.pr_info_score a:hover{ color:#64bdd9;}
|
|
||||||
.img_private{ background:url(../images/img_project.png) 0 0 no-repeat; width:32px; height:16px; color:#fff; font-size:12px; padding-left:7px; }
|
|
||||||
a.info_foot_num{ font-weight: bold; color:#3ca5c6; }
|
|
||||||
.pr_info_foot{ color:#7f7f7f; margin-top:5px; }
|
|
||||||
a:hover.info_foot_num{ color:#2390b2;}
|
|
||||||
|
|
||||||
/*左侧导航*/
|
|
||||||
.subNavBox{width:240px; background:#fff;margin:10px 10px 0 0;}
|
|
||||||
.subNav{border-bottom:solid 1px #e5e3da;cursor:pointer;font-weight:bold;font-size:14px;color:#3ca5c6;line-height:28px;padding-left:10px;background-color:#fff;}
|
|
||||||
.subNav_jiantou{background:url(../images/jiantou1.jpg) no-repeat;background-position:95% 50%; background-color:#fff;}
|
|
||||||
.subNav_jiantou:hover{color:#0781b4; }
|
|
||||||
.currentDd{color:#0781b4; }
|
|
||||||
.currentDt{background-color:#fff; }
|
|
||||||
.navContent{display: none;border-bottom:solid 1px #e5e3da; }
|
|
||||||
.navContent li a{display:block;width:240px;heigh:28px;text-align:center;font-size:12px;line-height:28px;color:#333}
|
|
||||||
.navContent li a:hover{color:#fff;background-color:#b3e0ee}
|
|
||||||
.subnav_num{ font-weight:normal; color:#ff7143; font-size:12px;}
|
|
||||||
a.subnav_green{ background:#28be6c; color:#fff; font-size:12px; font-weight:normal;height:20px; padding:0px 5px; text-align:center; margin-top:5px; margin-left:82px;}
|
|
||||||
a.ml95{ margin-left:97px;}
|
|
||||||
a.ml105{ margin-left:120px;}
|
|
||||||
a:hover.subnav_green{ background:#14ad5a;}
|
|
||||||
|
|
||||||
/*简介*/
|
/*简介*/
|
||||||
.project_intro{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; color:#6d6d6d;}
|
.project_intro{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px; color:#6d6d6d;}
|
||||||
.lg-foot{ border:1px solid #e8eef2; color: #929598; text-align:center; width:220px; height:23px; cursor:pointer;}
|
a.lg-foot{ border:1px solid #e8eef2; color: #929598; text-align:center; width:220px; height:23px; cursor:pointer;}
|
||||||
.lg-foot:hover{ color:#787b7e;}
|
a:hover.lg-foot{ color:#787b7e;}
|
||||||
/****标签(和资源库的tag样式一致)***/
|
|
||||||
.project_Label{ width:220px; padding:10px; background:#fff; margin-top:10px; padding-top:5px;}
|
|
||||||
a.yellowBtn{ display:inline-block;color:#0d90c3; height:22px;}
|
|
||||||
.submit{height:21px;border:0; cursor:pointer; background:url(../images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; }
|
|
||||||
.isTxt{background:#fbfbfb url(../images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;}
|
|
||||||
.re_tag{ width: auto; padding:0 5px; height:22px; border:1px solid #f8df8c; background:#fffce6; margin-right:5px; }
|
|
||||||
.re_tag a{ color:#0d90c3;}
|
|
||||||
.tag_h span,.tag_h a{ margin-bottom:5px;}
|
|
||||||
/*右侧内容--动态*/
|
/*右侧内容--动态*/
|
||||||
.project_r_h{ width:670px; height:40px; background:#eaeaea;}
|
.project_r_h{ width:670px; height:40px; background:#eaeaea; margin-bottom:10px;}
|
||||||
.project_h2{ background:#64bdd9; color:#fff; height:37px; width:90px; text-align:center; font-weight:normal; padding-top:3px; font-size:16px;}
|
.project_h2{ background:#64bdd9; color:#fff; height:33px; width:90px; text-align:center; font-weight:normal; padding-top:7px; font-size:16px;}
|
||||||
.project_r_box{ border:1px solid #e2e1e1; width:670px; margin-top:10px;}
|
.project_r_box{ border:1px solid #e2e1e1; width:670px; margin-top:10px;}
|
||||||
.project_h3 { color:#646464; font-size:14px; padding:0 10px; border-bottom:1px solid #e2e1e1;}
|
.project_h3 { color:#646464; font-size:14px; padding:0 10px; border-bottom:1px solid #e2e1e1;}
|
||||||
a.more{ float:right; font-size:12px; font-weight:normal; color:#a9a9a9; margin-top:3px;}
|
a.more{ float:right; font-size:12px; font-weight:normal; color:#a9a9a9; margin-top:3px;}
|
||||||
|
@ -77,78 +22,95 @@ a:hover.more{ color:#64bdd9;}
|
||||||
.img_talk{ background:url(../images/img_project.png) 0 -62px no-repeat;}
|
.img_talk{ background:url(../images/img_project.png) 0 -62px no-repeat;}
|
||||||
.img_ziyuan{ background:url(../images/img_project.png) 0 -115px no-repeat;}
|
.img_ziyuan{ background:url(../images/img_project.png) 0 -115px no-repeat;}
|
||||||
.img_edition{ background:url(../images/img_project.png) 0 -167px no-repeat;}
|
.img_edition{ background:url(../images/img_project.png) 0 -167px no-repeat;}
|
||||||
.project_name{ color:#058c42;}
|
a.project_name{ color:#058c42;}
|
||||||
.project_name:hover{ color:#016f33;}
|
a:hover.project_name{ color:#016f33;}
|
||||||
.project_txt{ color:#0781b4; width:445px; display:block; float:left; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
|
a.project_txt{ color:#0781b4; width:445px; display:block; float:left; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
|
||||||
.project_txt02{ color:#0781b4; width:618px; display:block; float:left; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
|
a.project_txt02{ color:#0781b4; width:618px; display:block; float:left; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
|
||||||
.project_txt:hover{ color:#066e9a;}
|
a:hover.project_txt{ color:#066e9a;}
|
||||||
.noline{ border-bottom:none;}
|
.noline{ border-bottom:none;}
|
||||||
|
|
||||||
/*弹框*/
|
/*弹框*/
|
||||||
.floatbox{ width:420px; border:3px solid #15bccf; background:#fff; padding:5px;}
|
.floatbox{ width:420px; border:3px solid #15bccf; background:#fff; padding:5px;}
|
||||||
.box_close{ display:block; float:right; width:16px; height:16px; background:url(../images/img_floatbox.png) 0 0 no-repeat;}
|
a.box_close{ display:block; float:right; width:16px; height:16px; background:url(../images/img_floatbox.png) 0 0 no-repeat;}
|
||||||
.box_close:hover{background:url(../images/img_floatbox.png) -22px 0 no-repeat;}
|
a:hover.box_close{background:url(../images/img_floatbox.png) -22px 0 no-repeat;}
|
||||||
/*邮件邀请*/
|
/*邮件邀请*/
|
||||||
.box_main{ width:345px; margin:0 auto;}
|
.box_main{ width:345px; margin:0 auto;}
|
||||||
|
.box_main02{ width:390px; margin:15px auto;}
|
||||||
.box_h3{ color:#15bccf; text-align:center; font-size:16px;}
|
.box_h3{ color:#15bccf; text-align:center; font-size:16px;}
|
||||||
.box_p{ color:#404040; margin-bottom:5px;}
|
.box_p{ color:#404040; margin-bottom:5px;}
|
||||||
.fb_item{ color:#919191; border:1px solid #919191; height:28px; margin-bottom:10px; padding-left:5px; width:290px;}
|
.fb_item{ color:#919191; border:1px solid #919191; height:28px; margin-bottom:10px; padding-left:5px; width:290px;}
|
||||||
.icon_addm{ background:url(../images/img_floatbox.png) 0 -33px no-repeat; width:16px; height:16px; display:block; margin:5px 0 0 5px;}
|
a.icon_addm{ background:url(../images/img_floatbox.png) 0 -33px no-repeat; width:16px; height:16px; display:block; margin:5px 0 0 5px;}
|
||||||
.icon_addm:hover{background:url(../images/img_floatbox.png) 0 -61px no-repeat; }
|
a:hover.icon_addm{background:url(../images/img_floatbox.png) 0 -61px no-repeat; }
|
||||||
.icon_removem{ background:url(../images/img_floatbox.png) -22px -33px no-repeat;width:16px; height:16px; display:block; margin:5px 0 0 5px}
|
a.icon_removem{ background:url(../images/img_floatbox.png) -22px -33px no-repeat;width:16px; height:16px; display:block; margin:5px 0 0 5px}
|
||||||
.icon_removem:hover{background:url(../images/img_floatbox.png) -22px -61px no-repeat;}
|
a:hover.icon_removem{background:url(../images/img_floatbox.png) -22px -61px no-repeat;}
|
||||||
.btn_free{ background:#ff5722; display:block; width:80px; text-align:center; color:#fff; height:26px; padding-top:3px; margin-bottom:10px;}
|
a.btn_free{ background:#ff5722; display:block; text-align:center; color:#fff; padding:3px 0; width:80px; margin-bottom:10px;}
|
||||||
.btn_free:hover{ background:#d63502;}
|
a:hover.btn_free{ background:#d63502;}
|
||||||
/*成员邀请*/
|
/*成员邀请*/
|
||||||
.invi_search{ width:230px; margin:0 auto;}
|
.invi_search{ margin-left:50px;}
|
||||||
.invi_search_input{ border:1px solid #15bccf; width:180px; height:24px; color:#9b9b9b; padding-left:5px; margin-bottom:10px;}
|
.invi_search_input{ border:1px solid #15bccf; width:180px; height:24px; color:#9b9b9b; padding-left:5px; margin-bottom:10px;}
|
||||||
.invi_search_btn{ background:#15bccf; color:#fff; text-align: center; width:40px; height:22px;border:1px solid #15bccf; padding-top:2px; cursor:pointer;}
|
a.invi_search_btn{ background:#15bccf; color:#fff; text-align: center; width:40px; height:22px;border:1px solid #15bccf; padding-top:2px; cursor:pointer;}
|
||||||
.invi_search_btn:hover{ background:#0da1b2; border:1px solid #0da1b2;}
|
a:hover.invi_search_btn{ background:#0da1b2; border:1px solid #0da1b2;}
|
||||||
|
.rolebox{ margin:10px 0;}
|
||||||
/*问题跟踪*/
|
/*问题跟踪*/
|
||||||
.problem_top{ margin:10px 0 ;}
|
.problem_top{ margin:10px 0 ;}
|
||||||
.problem_search_input{ border:1px solid #64bdd9; width:180px; height:24px; color:#9b9b9b; padding-left:5px; margin-bottom:10px;}
|
.problem_search_input{ border:1px solid #64bdd9; width:180px; height:24px; color:#9b9b9b; padding-left:5px; margin-bottom:10px;}
|
||||||
.problem_search_btn{ background:#64bdd9; color:#fff; text-align: center; width:40px; height:22px;border:1px solid #64bdd9; padding-top:2px; cursor:pointer;}
|
a.problem_search_btn{ background:#64bdd9; color:#fff; text-align: center; width:40px; height:22px;border:1px solid #64bdd9; padding-top:2px; cursor:pointer;}
|
||||||
.problem_search_btn:hover{ background:#3da1c1; border:1px solid #3da1c1;}
|
a:hover.problem_search_btn{ background:#3da1c1; border:1px solid #3da1c1;}
|
||||||
.problem_new_btn{ margin-left:10px; border:1px solid #ff7143; color:#ff7143; width:60px; height:22px; font-size:12px; text-align:center; padding-top:2px;}
|
a.problem_new_btn{ margin-left:10px; border:1px solid #ff7143; color:#ff7143; padding:1px 3px; font-size:12px; text-align:center; padding-top:2px;}
|
||||||
.problem_new_btn:hover{ background:#ff7143; color:#fff;}
|
a:hover.problem_new_btn{ background:#ff7143; color:#fff;}
|
||||||
.problem_p{ color:#535252; margin-top:5px;}
|
.problem_p{ color:#535252; margin-top:5px;}
|
||||||
.problem_p span{ color:#ff3e00;}
|
.problem_p span{ color:#ff3e00;}
|
||||||
.problem_pic{ display:block; width:42px; height:42px; padding:3px; border:1px solid #e3e3e3; margin-top:5px;}
|
a.problem_pic{ display:block; width:42px; height:42px; padding:3px; border:1px solid #e3e3e3; margin-top:5px;}
|
||||||
.problem_pic:hover{border:1px solid #64bdd9;}
|
a:hover.problem_pic{border:1px solid #64bdd9;}
|
||||||
.problem_txt{ width:610px; margin-left:10px; color:#777777;}
|
.problem_txt{ width:610px; margin-left:10px; color:#777777;}
|
||||||
.problem_name{ color:#ff5722;}
|
a.problem_name{ color:#ff5722;}
|
||||||
.problem_name:hover{ color:#d33503;}
|
a:hover.problem_name{ color:#d33503;}
|
||||||
.problem_tit{ color:#0781b4; width:430px; display:block; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
|
a.problem_tit{ color:#0781b4; width:430px; display:block; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
|
||||||
.problem_tit:hover{ color:#09658c; }
|
a:hover.problem_tit{ color:#09658c; }
|
||||||
.problem_main{ border-bottom:1px dashed #d4d4d4; padding-bottom:10px; margin-bottom:10px;}
|
.problem_main{ border-bottom:1px dashed #d4d4d4; padding-bottom:10px; margin-bottom:10px;}
|
||||||
/****翻页***/
|
/****翻页***/
|
||||||
.wlist{}
|
ul.wlist{ float:right; border-bottom:none; height:30px; margin-top:20px; }
|
||||||
.wlist a{ float:right; border:1px solid #64bdd9; padding:0 5px; margin-left:3px; color:#64bdd9;}
|
ul.wlist li{float: left;}
|
||||||
.wlist a:hover{border:1px solid #64bdd9; background-color:#64bdd9; color:#fff; text-decoration:none;}
|
ul.wlist li a{ border:1px solid #15bccf; padding: 1px 4px 1px 4px; margin-left:3px;}
|
||||||
.wlist_select a { background-color:#48aac9; color:#fff;}
|
ul.wlist li a:hover{ background:#15bccf; color:#fff; text-decoration:none;}
|
||||||
|
/*.wlist_select { background-color:#64bdd9; color:#fff; padding: 1px 5px 0px 5px; margin-left:3px;margin-top: -2px; border:1px solid #64bdd9;}*/
|
||||||
|
.wlist_select a{background-color: #64bdd9;cursor: default;}
|
||||||
/****讨论区***/
|
/****讨论区***/
|
||||||
.talk_top{ margin:10px 0; font-size:14px; color:#4c4c4c;}
|
.talk_top{ margin:10px 0; font-size:14px; color:#4c4c4c;}
|
||||||
.talk_top span{ color:#ff7143;}
|
.talk_top span{ color:#ff7143;}
|
||||||
.talk_txt{ width:460px; margin-left:10px; color:#676868;}
|
.talk_txt{ width:460px; margin-left:10px; color:#676868;}
|
||||||
.talk_up{ color:#f63c00;}
|
.talk_up{ color:#f63c00;}
|
||||||
.talk_pic{width:32px; height:32px; padding:2px;}
|
a.talk_pic{ display:block; width:32px; height:32px; padding:3px; border:1px solid #e3e3e3;}
|
||||||
.talk_btn{ background:#64bdd9; width:50px; height:22px; color:#fff; text-align:center; margin-top:12px; padding-top:2px;}
|
a:hover.talk_pic{border:1px solid #64bdd9;}
|
||||||
.talk_btn:hover{ background:#2a9dc1;}
|
a.talk_btn{ background:#64bdd9; width:50px; height:20px; color:#fff; text-align:center; margin-top:12px; padding-top:3px;}
|
||||||
|
a:hover.talk_btn{ background:#2a9dc1;}
|
||||||
/****讨论区内页***/
|
/****讨论区内页***/
|
||||||
.mt0{ margin-top:0px;}
|
.mt0{ margin-top:0px;}
|
||||||
.talk_info{ color:#7d7d7d; margin-left:50px; margin-top:10px;}
|
.talk_info{ color:#7d7d7d; margin-left:60px; margin-top:10px;}
|
||||||
.talk_edit{ color:#426e9a; margin-right:5px;}
|
a.talk_edit{ color:#426e9a; margin-right:5px;}
|
||||||
.talk_edit:hover{ color:#ff5722;}
|
a:hover.talk_edit{ color:#ff5722;}
|
||||||
.talk_reply { background:#eeeeee; padding:10px; margin-bottom:10px;}
|
.talk_reply { background:#eeeeee; padding:10px; margin-bottom:10px;}
|
||||||
.talk_text{ border:1px solid #64bdd9; width:600px; color:#7d7d7d; padding:5px; margin:10px 0 10px 50px;}
|
.talkpage_text{ border:1px solid #64bdd9; width:600px; color:#7d7d7d; padding:5px; margin:10px 0 10px 50px; background:#fff;}
|
||||||
|
/*.ping_dispic a{ display:block; height:46px; width:46px; border:1px solid #CCC; padding:1px; float:left;}*/
|
||||||
|
/*.ping_dispic a:hover{border:1px solid #15bccf;}*/
|
||||||
|
/****新建讨论***/
|
||||||
|
.talk_new{ color:#4c4c4c;}
|
||||||
|
.talk_input{ border:1px solid #64bdd9; height:16px; width:585px; background:#fff; margin-bottom:10px; padding:5px;}
|
||||||
|
.talk_text{ border:1px solid #64bdd9; height:100px;width:585px; background:#fff; margin-left:5px; padding:5px; margin-bottom:10px;}
|
||||||
|
.talk_new ul li{ }
|
||||||
|
.sb{width:70px; height:26px; color:#606060; cursor:pointer;}
|
||||||
|
a.blue_btn{ background:#64bdd9; display:block; font-size:14px;color:#fff; font-weight:normal; text-align:center; margin-left:10px; margin-bottom:10px; padding:2px 10px;}
|
||||||
|
a:hover.blue_btn{ background:#329cbd;}
|
||||||
|
a.grey_btn{ background:#d9d9d9; color:#656565;font-size:14px; font-weight:normal; text-align:center; margin-left:10px; margin-bottom:10px; padding:2px 10px;}
|
||||||
|
a:hover.grey_btn{ background:#717171; color:#fff;}
|
||||||
/****资源库***/
|
/****资源库***/
|
||||||
.f_l{ float:left;}
|
|
||||||
.f_r{ float:right;}
|
|
||||||
.resource a{ text-align:center;}
|
.resource a{ text-align:center;}
|
||||||
.b_lblue{ background:#64bdd9;}
|
.b_lblue{ background:#64bdd9;}
|
||||||
.b_dblue{ background:#55a1b9; cursor:pointer;}
|
.b_dblue{ background:#55a1b9; cursor:pointer;}
|
||||||
.f_b{ font-weight: bold;}
|
.f_b{ font-weight: bold;}
|
||||||
.c_blue{ color:#64bdd9;}
|
.c_blue{ color:#64bdd9;}
|
||||||
|
a.c_dblue{ color: #3ca5c6;}
|
||||||
|
a:hover.c_dblue{ color: #0781b4;}
|
||||||
.c_grey{ color:#999999;}
|
.c_grey{ color:#999999;}
|
||||||
.c_grey02{ color:#666666;}
|
.c_grey02{ color:#666666;}
|
||||||
.f_14{ font-size:14px;}
|
.f_14{ font-size:14px;}
|
||||||
|
@ -166,17 +128,118 @@ a:hover.re_fabu{background:#55a1b9;}
|
||||||
.re_con{ margin:5px; width:665px;}
|
.re_con{ margin:5px; width:665px;}
|
||||||
.re_con_top{color:#494949; }
|
.re_con_top{color:#494949; }
|
||||||
.re_con_top span{ color:#999999; font-weight:bold;}
|
.re_con_top span{ color:#999999; font-weight:bold;}
|
||||||
a.re_select{ display:block; width:88px; height:22px; border:1px solid #ff9900; color:#ff9900; margin-left:10px;}
|
a.re_select{ display:block; padding:2px 10px; border:1px solid #ff9900; color:#ff9900; margin-left:10px;}
|
||||||
a:hover.re_select{ background:#ff9900; color:#fff; text-decoration:none;}
|
a:hover.re_select{ background:#ff9900; color:#fff; text-decoration:none;}
|
||||||
.re_open{display:block; width:46px; height:22px; border:1px solid #64bdd9; color:#64bdd9; margin-left:10px;}
|
a.re_open{display:block; padding:2px 10px; border:1px solid #64bdd9; color:#64bdd9; margin-left:10px;}
|
||||||
a:hover.re_open{ background:#64bdd9; color:#fff; text-decoration:none;}
|
a:hover.re_open{ background:#64bdd9; color:#fff; text-decoration:none;}
|
||||||
a.re_de{ color:#6883b6; margin-left:15px;}
|
a.re_de{ color:#6883b6; margin-left:15px;}
|
||||||
.re_con_box{ border-bottom:1px dashed #dadada; padding-bottom:10px; margin-bottom:10px;}
|
.re_con_box{ border-bottom:1px dashed #dadada; padding-bottom:10px; margin-bottom:10px;}
|
||||||
/****资源库***/
|
|
||||||
.setting{ background:url(../images/setting.jpg) 0 0 no-repeat; width:670px; height:443px;}
|
|
||||||
|
|
||||||
|
.upload_con { }
|
||||||
|
.upload_con h2{ display:block; background:#eaeaea; font-size:14px; color:#343333; height:31px; width: auto; margin-top:25px; padding-left:20px; padding-top:5px;}
|
||||||
|
.upload_box{ width:430px; height:80px;}
|
||||||
|
a.upload_btn02{ display:block; float:left; margin-top:15px; width:80px; height:30px; text-align: center; color:#fff; font-size:14px; background:#15bccf; margin-right:15px;}
|
||||||
|
a:hover.upload_btn02{ background:#55a1b9;}
|
||||||
|
a.upload_btn_grey{background:#a3a3a3;}
|
||||||
|
a:hover.upload_btn_grey{background:#8a8a8a;}
|
||||||
|
.upload_btn{width:80px; height:26px;}
|
||||||
|
.upload_check{ margin-top:4px;}
|
||||||
|
|
||||||
|
a.link_file{ background:url(../images/courses/pic_file.png) 0 2px no-repeat; padding-left:20px; color:#64bdd9; }
|
||||||
|
a:hover.link_file{ background:url(../images/courses/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;}
|
||||||
|
.r_txt_tit{width:510px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;color:#15bccf; float:left; color:#09658c; font-size:14px;}
|
||||||
|
/* 新建问题 */
|
||||||
|
.newpro_box{ color:#6d6d6d;}
|
||||||
|
.newpro_box02{ color:#6d6d6d; margin-left:30px; margin-bottom:10px; }
|
||||||
|
.newpro_box ul li{ }
|
||||||
|
.newpro_box input{ height:26px; float:left; margin-bottom:10px;}
|
||||||
|
.newpro_box textarea{ height:150px; float:left; margin-bottom:10px;}
|
||||||
|
.newpro_box select{ height:26px; float:left; margin-bottom:10px;}
|
||||||
|
.label{ width:80px; text-align:right; font-size:14px; display:block; float:left;}
|
||||||
|
.label02{ width:110px; text-align:right; font-size:14px; display:block; float:left;}
|
||||||
|
.collapsible{ border-left:none;border-right:none;border-bottom:none; border-top:1px solid #e4e4e4; padding-left:30px; padding-top:10px; }
|
||||||
|
|
||||||
|
/* 弹框 新样式还没设计出来,暂时用的课程那边的样式 */
|
||||||
|
.alert .close{width:26px;height:26px;overflow:hidden;position:absolute;top:-10px;right:-502px;background:url(images/close.png) no-repeat;cursor:pointer;}
|
||||||
|
.alert .C{width:476px;height:296px;position:absolute;left:5px;top:5px; }
|
||||||
|
.ping_con{ margin:5px; border-bottom:1px dashed #CCC; padding-bottom:5px;}
|
||||||
|
.ping_con ul{ height:30px;}
|
||||||
|
.ping_con ul li{ float:left; color:#656767; font-weight:bold;}
|
||||||
|
.ping_con h2{ font-size:14px; color:#444443; margin-bottom:10px; float:left;}
|
||||||
|
.ping_con p{ color:#777777; font-size:12px; border-bottom:1px dashed #CCC; padding-bottom:5px;}
|
||||||
|
.ping_con p span a{ color:#777777;}
|
||||||
|
.ping_star{ width:160px; color:#333; font-weight:bold; margin-bottom:5px;}
|
||||||
|
.ping_star span a{ float:right; width:20px; height:20px; background:url(images/star.png) -2px 0 no-repeat; margin-right:3px;}
|
||||||
|
.ping_star span a:hover{background:url(images/star.png) -24px 0 no-repeat;}
|
||||||
|
.ping_con textarea{ width:455px; height:76px; border:1px solid #15bccf; margin-bottom:5px; color:#666; font-size:12px;}
|
||||||
|
a.ping_sub{ float:right; height:22px; width:60px; background:#15bccf; color:#fff; text-align:center;}
|
||||||
|
a:hover.ping_sub{ background:#14a8b9;}
|
||||||
|
.recall{ border-top:1px solid #CCC; padding:5px 0;}
|
||||||
|
.recall_head{ float:left;}
|
||||||
|
.recall_head a{ display:block; width:30px; height:30px; border:1px solid #CCC; padding:1px;}
|
||||||
|
.recall_head a:hover{border:1px solid #15bccf;}
|
||||||
|
.recall_con{ float:left;color:#777777; width:520px; margin-left:10px;word-break: break-all;word-wrap: break-word; }
|
||||||
|
.recall_con a{ color:#15bccf; }
|
||||||
|
.ping_list{ margin-top:15px;}
|
||||||
|
.ping_ttl{height:18px;}
|
||||||
|
.ping_ctt{height:auto;padding:6px;clear:both;}
|
||||||
|
.ping_tb_{ border-bottom:3px solid #e4e4e4; text-align:center;}
|
||||||
|
.ping_tb_ ul{height:24px;}
|
||||||
|
.ping_tb_ li{float:left;height: 24px;width: auto; padding:0 10px;cursor:pointer;}
|
||||||
|
.ping_normaltab { color:#15bccf ; border-bottom:3px solid #e4e4e4;}
|
||||||
|
.ping_hovertab { color:#656767; font-weight:bold; border-bottom:3px solid #15bccf; }
|
||||||
|
.ping_dis{display:block; }
|
||||||
|
.ping_undis{display:none;}
|
||||||
|
.ping_C{border-bottom:1px dashed #CCC; padding:10px 0 0px;}
|
||||||
|
.ping_dispic a{ display:block; height:46px; width:46px; border:1px solid #CCC; padding:1px; float:left;}
|
||||||
|
.ping_dispic a:hover{border:1px solid #15bccf;}
|
||||||
|
.ping_discon{ float:left; width:610px; margin-left:10px; }
|
||||||
|
/*.ping_distop span{ float:left;}*/
|
||||||
|
.ping_distop p{ color:#5f5f5f;word-break: break-all;word-wrap: break-word;}
|
||||||
|
.ping_disfoot a{ float:right; color: #6883b6; margin-left:5px; margin-bottom:5px;}
|
||||||
|
/*.ping_distop span a{ float:right; width:20px; height:20px; background:url(images/star.png) -24px 0 no-repeat; margin-right:3px;}*/
|
||||||
|
|
||||||
|
/*上传资源弹出框样式*/
|
||||||
|
.popbox_polls{width:300px;height:100px;position:fixed !important;z-index:100;left:50%;top:50%;margin:-100px 0 0 -150px; background:#fff; -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; box-shadow:0px 0px 8px #194a81; overflow:auto;}
|
||||||
|
.upload_con h2{ display:block; background:#eaeaea; font-size:14px; color:#343333; height:31px; width: auto; margin-top:25px; padding-left:20px; padding-top:5px;}
|
||||||
|
.upload_box{ width:430px; margin:15px auto;}
|
||||||
|
|
||||||
|
a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;}
|
||||||
|
.r_txt_tit{width:500px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;color:#15bccf; float:left; color:#09658c; font-size:14px;}
|
||||||
|
|
||||||
|
blockquote {background: #eeeeee;padding: 10px;margin-bottom: 10px;}
|
||||||
|
.respond-form{display: none;margin: auto;clear: both;}
|
||||||
|
|
||||||
|
.reply_btn{ cursor:pointer; -moz-border-radius:3px; -webkit-border-radius:3px; border:1px solid #ccc; color:#999; border-radius:3px; padding:2px 10px; margin-bottom:10px;display: block;margin-left: 470px;}
|
||||||
|
.reply_btn:hover{ background:#999; color:#fff; }
|
||||||
|
|
||||||
|
#attachments_fields input.description {margin-left: 4px;width: 100px;}
|
||||||
|
#attachments_fields span.ispublic-label {display: inline-block;width: 30px;margin-left: 10px;}
|
||||||
|
a.remove-upload {background: url(../images/delete.png) no-repeat 1px 50%;width: 1px;display: inline-block;padding-left: 16px;}
|
||||||
|
#attachments_fields input.filename {border: 0;height: 1.8em;width: 150px;color: #555;background-color: inherit;background: url(../images/attachment.png) no-repeat 1px 50%;padding-left: 18px;padding-top: 2px;}
|
||||||
|
span.add_attachment {font-size: 80%;line-height: 2.5em;}
|
||||||
|
#attachments_fields span {display: block;white-space: nowrap;}
|
||||||
|
.file_selector{position: relative;opacity: 0;filter: alpha(opacity:0);}
|
||||||
|
#attachments_fields .ajax-waiting input.filename {background:url(../images/hourglass.png) no-repeat 0px 50%;}
|
||||||
|
#attachments_fields .ajax-loading input.filename {background:url(../images/loading.gif) no-repeat 0px 50%;}
|
||||||
|
.reply_btn{ cursor:pointer; -moz-border-radius:3px; -webkit-border-radius:3px; border:1px solid #ccc; color:#999; border-radius:3px; padding:2px 10px; margin-bottom:10px;display: block;margin-left: 470px;}
|
||||||
|
.reply_btn:hover{ background:#999; color:#fff; }
|
||||||
|
|
||||||
|
#attachments_fields div.ui-progressbar { width: 100px; height:14px; margin: 2px 0 -5px 8px; display: inline-block; }
|
||||||
|
.ui-widget {
|
||||||
|
font-family: Verdana, sans-serif;
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
.ui-widget-content {
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
.ui-progressbar-value{margin:-1px;height:100%}
|
||||||
|
.ui-widget-header{border:1px solid #628db6;background:#759fcf url(jquery/images/ui-bg_gloss-wave_35_759fcf_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold}
|
||||||
|
.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}
|
||||||
|
.link_file{ background:url(../images/pic_file.png) 0 7px no-repeat !important; padding-left:20px !important; color:#64bdd9 !important; }
|
||||||
|
a:hover.link_file_board{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;}
|
||||||
|
a.link_file_board{ background:url(../images/pic_file.png) 0 3px no-repeat !important; padding-left:20px !important; color:#64bdd9 !important; }
|
||||||
|
|
||||||
|
#course_member_pagination_links{height: auto;float: left;}
|
||||||
|
#course_member_pagination_links li{margin-bottom: 5px;}
|
||||||
|
|