commit
b805fdc666
@ -0,0 +1,16 @@
|
|||||||
|
<% issue_list(issues) do |issue, level| -%>
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
sd_create_editor_from_data(<%= issue.id%>, null, "100%", "<%= issue.class.name %>");
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<%= render :partial => 'issues/project_issue', :locals => {:activity => issue, :user_activity_id => issue.id} %>
|
||||||
|
<% end %>
|
||||||
|
<div style="text-align:center;">
|
||||||
|
<div class="pages" style="width:auto; display:inline-block;">
|
||||||
|
<ul id="issue_list_pagination">
|
||||||
|
<%= pagination_links_full @issue_pages, @issue_count, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true%>
|
||||||
|
</ul>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -0,0 +1 @@
|
|||||||
|
<span class="issues_nav_tag ml5" ><%= @issues_filter_assign_count %></span>
|
@ -0,0 +1 @@
|
|||||||
|
<span class="issues_nav_tag ml5" ><%= @issue_count %></span>
|
@ -0,0 +1 @@
|
|||||||
|
<span class="issues_nav_tag ml5"><%= @issues_filter_author_count %><%#= @project.issues.where(:author_id => User.current.id ).visible.all.count %></span>
|
@ -0,0 +1,93 @@
|
|||||||
|
<div class="issues_con fl">
|
||||||
|
<div class="clear mb5">
|
||||||
|
<a href="<%= new_project_issue_path(@project)%>" class="sy_btn_green fl mr10">新 增</a>
|
||||||
|
<div class="issues_statistics fl">
|
||||||
|
<ul>
|
||||||
|
<li>所有<a href="javascript:void(0);" class="issues_greycirbg_btn "><%= @project.project_score.issue_num %></a></li>
|
||||||
|
<li>开启<a href="javascript:void(0);" class="issues_greycirbg_btn "><%= @project.issues.where('status_id in (1,2,3,4,6)').visible.all.count %></a></li>
|
||||||
|
<li>关闭<a href="javascript:void(0);" class="issues_greycirbg_btn "><%= @project.issues.where(:status_id => 5 ).visible.all.count %></a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!--issues_statistics end-->
|
||||||
|
<a href="<%=project_issues_path(:project_id => @project, :format => 'xls')%>" class="hw_btn_blue fr" alt="导出EXCEL">导出EXCEL</a>
|
||||||
|
</div>
|
||||||
|
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
|
||||||
|
<%= form_tag({:controller => 'issues', :action => 'index', :project_id => @project},:remote=>'true', :method => :get,:id=>"issue_query_form", :class => 'query_form') do %>
|
||||||
|
<%= hidden_field_tag 'set_filter', '1' %>
|
||||||
|
<div class="clear mb10">
|
||||||
|
<div class="hw_search_box fl ">
|
||||||
|
<input class="hw_search-input" placeholder="请输入问题名称" type="text" id="v_subject" name="subject" onkeypress="EnterPress(event)" onkeydown="EnterPress()">
|
||||||
|
<a href="javascript:void(0);" class="hw_btn_search" onclick="remote_function();" ></a>
|
||||||
|
</div>
|
||||||
|
<a href="javascript:void(0);" class="sy_btn_grey fl ml5" onclick="nh_reset_form();">清除</a>
|
||||||
|
<div class="calendar_div fr">
|
||||||
|
<input name="issue_create_date_end" nhname="date_val" type="hidden"/>
|
||||||
|
<input type="text" nhname="date_show" id="issue_create_date_end_show" class="InputBox fl W120 calendar_input" readonly="readonly" size="13" placeholder="结束日期">
|
||||||
|
<%= calendar_for('issue_create_date_end_show')%>
|
||||||
|
</div>
|
||||||
|
<div class="calendar_div fr">
|
||||||
|
<input name="issue_create_date_start_show" nhname="date_val" type="hidden"/>
|
||||||
|
<input type="text" nhname="date_show" id="issue_create_date_start_show" class="InputBox fl W120 calendar_input" readonly="readonly" size="13" placeholder="开始日期">
|
||||||
|
<%= calendar_for('issue_create_date_start_show')%>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--<input type="text" placeholder="开始日期" class="issues_calendar_input fl " ><a href="" class="issues_data_img fl" style="border-right:none;"></a>-->
|
||||||
|
<!--<input type="text" placeholder="结束日期" class="issues_calendar_input fl " ><a href="" class="issues_data_img fl"></a>-->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="issues_con_list" style="position: relative;">
|
||||||
|
<ul id="issues_list_nav" >
|
||||||
|
<li id="issues_list_nav_1" class="issues_nav_hover" onclick="HoverLi(1);">
|
||||||
|
<a href="javascript:void(0);" onclick="all_reset_form();" id="issues_type_1" >所有<span class="issues_nav_tag ml5"><%= @project.project_score.issue_num %></span></a>
|
||||||
|
</li>
|
||||||
|
<li id="issues_list_nav_2" onclick="HoverLi(2);">
|
||||||
|
<a href="javascript:void(0);" onclick="switch_assign_to(<%= User.current.id %>)" id="issues_type_2" >指派给我<span class="issues_nav_tag ml5"><%= @project.issues.where(:assigned_to_id => User.current.id ).visible.all.count %></span></a>
|
||||||
|
</li>
|
||||||
|
<li id="issues_list_nav_3" onclick="HoverLi(3);">
|
||||||
|
<a href="javascript:void(0);" onclick="createByMe(<%= User.current.id %>)" id="issues_type_3" >我的发布<span class="issues_nav_tag ml5"><%= @project.issues.where(:author_id => User.current.id ).visible.all.count %></span></a>
|
||||||
|
</li>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</ul>
|
||||||
|
<div class="issues_filter ">
|
||||||
|
<div class="issues_form_filter mt5 mr5">
|
||||||
|
<%= select(:issue, :tracker_id, [["缺陷",1],["功能",2],["支持",3],["任务",4],["周报",5]].unshift(["类型",0]),
|
||||||
|
{:include_blank => false, :selected => @tracker_id ? @tracker_id : 0},
|
||||||
|
{:onchange => "remote_function();", :id => "tracker_id", :name => "tracker_id", :class => "fl issues_filter_select_min"}) %>
|
||||||
|
<%= select( :issue, :user_id, principals_options_for_isuue_list(@project),
|
||||||
|
{ :include_blank => false,:selected=>@assign_to_id ? @assign_to_id : 0},
|
||||||
|
{:onchange=>"remote_function();",:id=>"assigned_to_id",:name=>"assigned_to_id",:class=>"fl"})
|
||||||
|
%>
|
||||||
|
|
||||||
|
<%= select(:issue, :fixed_version_id, options_for_version_isuue_list(@project),
|
||||||
|
{:include_blank => false, :selected => @fixed_version_id ? @fixed_version_id : 0},
|
||||||
|
{:onchange => "remote_function();", :id => "fixed_version_id", :name => "fixed_version_id", :class => "f1"}) %>
|
||||||
|
|
||||||
|
<%= select( :issue,:status, [["新增",1],["正在解决",2],["已解决",3],["反馈",4],["关闭",5],["拒绝",6]].unshift(["状态",0]),
|
||||||
|
{ :include_blank => false,:selected=>@status_id ? @status_id : 0
|
||||||
|
},
|
||||||
|
{:onchange=>"remote_function();",:id=>"status_id",:name=>"status_id",:class=>"fl issues_filter_select_min"}
|
||||||
|
) %>
|
||||||
|
|
||||||
|
<%= select(:issue, :done_ratio, [["10%",1],["20%",2],["30%",3],["40%",4],["50%",5],["60%",6],["70%",7],["80%",8],["90%",9],["10%",10]].unshift(["完成度",0]),
|
||||||
|
{:include_blank => false, :selected => @done_ratio ? @done_ratio : 0 },
|
||||||
|
{:onchange => "remote_function();", :id => "done_ratio", :name => "done_ratio", :class => "f1"}) %>
|
||||||
|
|
||||||
|
<%= select(:issue, :test, [["最早创建",1],["最早更新",2]].unshift(["排序",0]),
|
||||||
|
{:include_blank => false, :selected => @order ? @order : 0 },
|
||||||
|
{:onchange => "remote_function();", :id => "test", :name => "test", :class => "fr issues_filter_select_min"}) %>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div><!--issues_filter end-->
|
||||||
|
<% if @issues.empty? %>
|
||||||
|
<p class="nodata"><%= l(:label_no_data) %></p>
|
||||||
|
<% else %>
|
||||||
|
<div id="issue_list">
|
||||||
|
<%= render :partial => 'issues/all_list', :locals => {:issues => @issues, :query => @query,:issue_pages=>@issue_pages,:issue_count=>@issue_count,:project=>@project,:subject=>@subject} %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<%#= render :partial => 'issues/all_list', :locals => {:issues => @issues, :query => @query,:issue_pages=>@issue_pages,:issue_count=>@issue_count,:project=>@project,:subject=>@subject} %>
|
||||||
|
</div><!--issues_con_list end-->
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
@ -0,0 +1,99 @@
|
|||||||
|
<% unless activity.author.nil? %>
|
||||||
|
<div class="issues_list_box clear" id="user_activity_<%= user_activity_id%>">
|
||||||
|
<div class="issues_ciricons fl ">
|
||||||
|
<% if activity.status_id.to_i == 5 %>
|
||||||
|
<span class="issues_ciricons_02"></span>
|
||||||
|
<% else %>
|
||||||
|
<span class="issues_ciricons_01"></span>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class=" fl ml5">
|
||||||
|
<div class="issues_list_titlebox clear">
|
||||||
|
<a href="<%= issue_path(activity) %>" class="issues_list_title fl" target="_blank" title="<%= activity.subject.to_s %>"><%= activity.subject.to_s %></a>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<div class="issues_list_small">
|
||||||
|
<% if activity.try(:author).try(:realname) == ' ' %>
|
||||||
|
<%= link_to activity.try(:author), user_path(activity.author_id), :class => "fl issues_list_name" %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "fl issues_list_name" %>
|
||||||
|
<% end %>
|
||||||
|
<p class="fl ml10"> <span class="mr5"><%=format_time(activity.created_on) %></span>发布</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<ul class="issues_list_txt fr">
|
||||||
|
<li class="issues_list_min c_grey">
|
||||||
|
<% case activity.tracker_id %>
|
||||||
|
<% when 1%>
|
||||||
|
缺陷
|
||||||
|
<% when 2%>
|
||||||
|
功能
|
||||||
|
<% when 3%>
|
||||||
|
支持
|
||||||
|
<% when 4%>
|
||||||
|
任务
|
||||||
|
<% when 5%>
|
||||||
|
周报
|
||||||
|
<% end %>
|
||||||
|
</li>
|
||||||
|
<!--li class="c_grey">
|
||||||
|
<#% if activity.try(:author).try(:realname) == ' ' %>
|
||||||
|
<%#= link_to activity.try(:author), user_path(activity.author_id), :class => "c_grey" %>
|
||||||
|
<#% else %>
|
||||||
|
<%#= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "c_grey" %>
|
||||||
|
<%# end %>
|
||||||
|
</li-->
|
||||||
|
<li class="c_grey">
|
||||||
|
<% unless activity.assigned_to_id.nil? %>
|
||||||
|
<% if activity.try(:assigned_to).try(:realname).empty? %>
|
||||||
|
<%= link_to activity.assigned_to, user_path(activity.assigned_to_id), :class => "c_grey" %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to activity.try(:assigned_to).try(:realname), user_path(activity.assigned_to_id), :class => "c_grey" %>
|
||||||
|
<% end %>
|
||||||
|
<% end %></li>
|
||||||
|
<li class="c_grey" style="width: 60px; padding-right: 10px" title="<%= activity.fixed_version %>"><%= activity.fixed_version %></li>
|
||||||
|
<li class="issues_list_min c_grey" ><%= activity.status.name%></li>
|
||||||
|
<li class="<%=(activity.done_ratio == 100 ? 'c_red' : 'c_green') %>"><%= activity.done_ratio %>%</li>
|
||||||
|
<li class="issues_list_min pr">
|
||||||
|
<% if activity.journals.count > 0%>
|
||||||
|
<span class="issues_icons_mes fl mr5" style="margin-top:-3px;"></span>
|
||||||
|
<span class="fl mr5"><%= activity.journals.count %></span>
|
||||||
|
<% end %>
|
||||||
|
<div class="undis" style="position: absolute; <%= activity.journals.count >0 ? 'top:15px;' : 'top:-15px;' %>">
|
||||||
|
<%= link_to "", issue_path(activity.id, :edit => 'true'), :class => 'sy_icons_edit fl mt15', :accesskey => accesskey(:edit) if activity.editable? && User.current.allowed_to?(:edit_issues, activity.project) %>
|
||||||
|
<% if !defined?(project_id) && !defined?(user_id) %>
|
||||||
|
<%= link_to "", issue_path(activity.id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %>
|
||||||
|
<% elsif defined?(project_id) %>
|
||||||
|
<%= link_to "", issue_path(activity.id, :page_classify => "project_page", :page_id => project_id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %>
|
||||||
|
<% elsif defined?(user_id) %>
|
||||||
|
<%= link_to "", issue_path(activity.id, :page_classify => "user_page", :page_id => user_id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(".issues_list_box").mouseover(function(){
|
||||||
|
var iconOrder;
|
||||||
|
var iconSize = $(this).children().eq(2).children().eq(5).children().size();
|
||||||
|
if(iconSize > 1){
|
||||||
|
iconOrder = 2;
|
||||||
|
} else{
|
||||||
|
iconOrder = 0;
|
||||||
|
}
|
||||||
|
$(this).children().eq(2).children().eq(5).children().eq(iconOrder).show();
|
||||||
|
});
|
||||||
|
$(".issues_list_box").mouseout(function(){
|
||||||
|
var iconOrder;
|
||||||
|
var iconSize = $(this).children().eq(2).children().eq(5).children().size();
|
||||||
|
if(iconSize > 1){
|
||||||
|
iconOrder = 2;
|
||||||
|
} else{
|
||||||
|
iconOrder = 0;
|
||||||
|
}
|
||||||
|
$(this).children().eq(2).children().eq(5).children().eq(iconOrder).hide();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,46 @@
|
|||||||
|
<div class="sy_class_infobox mb10 clear">
|
||||||
|
<div class="sy_class_logo fl">
|
||||||
|
<div class="pr" style="width: 110px; height:110px;">
|
||||||
|
<% if User.current.logged? && (User.current.allowed_to?({:controller => 'projects', :action => 'settings'}, @project) || User.current.admin?) %>
|
||||||
|
<%=link_to image_tag(url_to_avatar(@project), width:"110", height: "110", :id => 'nh_source_tx'), my_clear_user_avatar_temp_path(:course => @project.id), :remote => true%>
|
||||||
|
<div class="homepageEditProfile undis">
|
||||||
|
<%=link_to '', my_clear_user_avatar_temp_path(:project => @project.id), :class => 'homepageEditProfileIcon', :title => '点击编辑头像', :remote => true %>
|
||||||
|
</div>
|
||||||
|
<% else %>
|
||||||
|
<%= image_tag(url_to_avatar(@project), :width => "110", :height => "110", :alt => "项目logo") %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%# 更新访问数,刷新的时候更新访问次数 %>
|
||||||
|
<% update_visiti_count @project %>
|
||||||
|
<div class="sy_class_id fl"><p><%= l(:label_project_ivite_code)%><br /><span class="sy_corange"><%= (User.current.member_of?(@project) || User.current.admin?) ? @project.invite_code : "******" %></span></p></div>
|
||||||
|
<div class="sy_class_info fl ml15">
|
||||||
|
<div class="sy_class_titbox clear">
|
||||||
|
<h3 class="fl sy_class_title">
|
||||||
|
<a href="javascript:void(0);"class="mr5 c_dark"><%= @project.creater %></a>/
|
||||||
|
<a href="javascript:void(0);"class=" ml5 c_dark"><%= @project.name %></a>
|
||||||
|
</h3>
|
||||||
|
<span class="sy_new_orange fl ml10 mt5"><%= @project.is_public? ? l(:label_public) : l(:label_private) %></span>
|
||||||
|
</div>
|
||||||
|
<p class="sy_cgrey">
|
||||||
|
<span class=" mr15">项目评分:
|
||||||
|
<% if @project.project_type == 0 %>
|
||||||
|
<%# unless static_project_score(@project.project_score) == 0 %>
|
||||||
|
<%= link_to(format("%.2f" ,static_project_score(@project.project_score)).to_i,
|
||||||
|
{:controller => 'projects',
|
||||||
|
:action => 'show_projects_score',
|
||||||
|
:remote => true,
|
||||||
|
:id => @project.id}, :class => "sy_cblue" ) %>
|
||||||
|
<%# end %>
|
||||||
|
<% end %>
|
||||||
|
</span>
|
||||||
|
<span class=" mr15">浏览:<a class="sy_corange"><%= @project.visits.to_i %></a></span>
|
||||||
|
<span class=" mr15">关注:<%= link_to "#{@project.watcher_users.count}", {:controller=>"projects", :action=>"watcherlist", :id => @project.id}, :class => 'sy_corange' %></span>
|
||||||
|
<span class=" mr15">成员:<%= link_to "#{@project.members.count}", project_member_path(@project), :class => 'sy_corange', :id => 'project_members_number' %></span>
|
||||||
|
</p>
|
||||||
|
<div class="mt15 clear" id="join_exit_project_div">
|
||||||
|
<%= render 'layouts/join_exit_project' %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
@ -1,19 +1,18 @@
|
|||||||
<div class="pr_info_join fl">
|
|
||||||
<!--关注:非项目成员-->
|
<!--关注:非项目成员-->
|
||||||
<div id="join_in_project_applied">
|
<%= render :partial => "projects/applied_status" %>
|
||||||
<%= render :partial => "projects/applied_status" %>
|
|
||||||
</div>
|
|
||||||
<!--配置项目-->
|
<!--配置项目-->
|
||||||
<% if User.current.admin? || User.current.allowed_to?({:controller => 'projects', :action => 'settings'}, @project) %>
|
<% if User.current.admin? || User.current.allowed_to?({:controller => 'projects', :action => 'settings'}, @project) %>
|
||||||
<%= link_to "<span class='pr_setting'></span>#{l(:button_configure)}".html_safe, settings_project_path(@project), :class => "pr_join_a" %>
|
<%= link_to "#{l(:button_configure)}", settings_project_path(@project), :class => "sy_btn_blue mr5" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<!--项目类型-->
|
<!--项目类型-->
|
||||||
<% if (User.current.login? && User.current.member_of?(@project) && Member.where(:user_id => User.current.id, :project_id => @project.id).first.roles.to_s.include?("Manager")) || User.current.admin? %>
|
<!--<%# if (User.current.login? && User.current.member_of?(@project) && Member.where(:user_id => User.current.id, :project_id => @project.id).first.roles.to_s.include?("Manager")) || User.current.admin? %>-->
|
||||||
<%= link_to "<span class='#{typeclass}'></span>#{text}".html_safe,"javascript:void(0)" ,:onClick => "show_window();", :class => "pr_join_a",:id => "setting_project_type"%>
|
<!--<%#= link_to "<span class='#{typeclass}'></span>#{text}".html_safe,"javascript:void(0)" ,:onClick => "show_window();", :class => "pr_join_a",:id => "setting_project_type"%>-->
|
||||||
<% end %>
|
<!--<%# end %>-->
|
||||||
<!--退出项目-->
|
<!--退出项目-->
|
||||||
<% if (User.current.member_of? @project) && User.current.login? && !User.current.admin &&
|
<% if (User.current.member_of? @project) && User.current.login? && !User.current.admin &&
|
||||||
!Member.where(:user_id => User.current.id, :project_id => @project.id).first.roles.to_s.include?("Manager") %>
|
!Member.where(:user_id => User.current.id, :project_id => @project.id).first.roles.to_s.include?("Manager") %>
|
||||||
<%= exit_project_link(@project) %>
|
<%= exit_project_link(@project) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
class ChangePorojectType < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
projects = Project.where("project_new_type !=?", 1)
|
||||||
|
projects.update_all(:project_new_type => 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
end
|
||||||
|
end
|
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,53 @@
|
|||||||
|
/***** Calendar *****/
|
||||||
|
table#calender td{padding: 2px;}
|
||||||
|
table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;}
|
||||||
|
table.cal thead th {width: 14%; background-color:#EEEEEE; padding: 4px; }
|
||||||
|
table.cal thead th.week-number {width: auto;}
|
||||||
|
table.cal tbody tr {height: 100px;}
|
||||||
|
table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;}
|
||||||
|
table.cal td.week-number { background-color:#EEEEEE; padding: 4px; border:none; font-size: 1em;}
|
||||||
|
table.cal td p.day-num {font-size: 1.1em; text-align:right;}
|
||||||
|
table.cal td.odd p.day-num {color: #bbb;}
|
||||||
|
table.cal td.today {background:#ffffdd;}
|
||||||
|
table.cal td.today p.day-num {font-weight: bold;}
|
||||||
|
table.cal .starting a, p.cal.legend .starting {background: url(/images/bullet_go.png) no-repeat -1px -2px; padding-left:16px;}
|
||||||
|
table.cal .ending a, p.cal.legend .ending {background: url(/images/bullet_end.png) no-repeat -1px -2px; padding-left:16px;}
|
||||||
|
table.cal .starting.ending a, p.cal.legend .starting.ending {background: url(/images/bullet_diamond.png) no-repeat -1px -2px; padding-left:16px;}
|
||||||
|
p.cal.legend span {display:block;}
|
||||||
|
|
||||||
|
/***** Tooltips ******/
|
||||||
|
.tooltip{position:relative;z-index:24;}
|
||||||
|
.tooltip:hover{z-index:25;color:#000;}
|
||||||
|
.tooltip span.tip{display: none; text-align:left;}
|
||||||
|
|
||||||
|
div.tooltip:hover span.tip{
|
||||||
|
display:block;
|
||||||
|
position:absolute;
|
||||||
|
top:12px; left:24px; width:270px;
|
||||||
|
border:1px solid #555;
|
||||||
|
background-color:#fff;
|
||||||
|
padding: 4px;
|
||||||
|
font-size: 0.8em;
|
||||||
|
color:#505050;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.ui-datepicker-trigger {
|
||||||
|
display: block;
|
||||||
|
background: url(/images/public_icon.png) -31px 0 no-repeat;
|
||||||
|
cursor: pointer;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-top: 5px;
|
||||||
|
width: 16px;
|
||||||
|
height: 15px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.issue {background:#FFFFEC; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;}
|
||||||
|
.tooltip{position:relative;z-index:24;}
|
||||||
|
.tooltip:hover{z-index:25;color:#000;}
|
||||||
|
.tooltip span.tip{display: none; text-align:left;}
|
||||||
|
.task.parent.marker.starting { position: absolute; background: url(/images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; left: 0px; top: -1px;}
|
||||||
|
|
||||||
|
/*.icon*/
|
||||||
|
.icon-package { background-image: url(/images/package.png); }
|
@ -0,0 +1,177 @@
|
|||||||
|
fieldset.collapsible { border-width: 1px 0 0 0; font-size: 0.9em; }
|
||||||
|
fieldset.collapsible>legend { padding-left: 16px; background: url(/images/arrow_expanded.png) no-repeat 0% 40%; cursor:pointer; }
|
||||||
|
fieldset.collapsible.collapsed>legend { background-image: url(/images/arrow_collapsed.png); }
|
||||||
|
|
||||||
|
/***** Gantt chart *****/
|
||||||
|
.gantt_hdr {
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
height:16px;
|
||||||
|
border-top: 1px solid #c0c0c0;
|
||||||
|
border-bottom: 1px solid #c0c0c0;
|
||||||
|
border-right: 1px solid #c0c0c0;
|
||||||
|
text-align: center;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gantt_hdr.nwday {background-color:#f1f1f1;}
|
||||||
|
|
||||||
|
.gantt_subjects { font-size: 0.8em; }
|
||||||
|
.gantt_subjects div { line-height:16px;height:16px;overflow:hidden;white-space:nowrap;text-overflow: ellipsis; }
|
||||||
|
|
||||||
|
.task {
|
||||||
|
position: absolute;
|
||||||
|
height:8px;
|
||||||
|
font-size:0.8em;
|
||||||
|
color:#888;
|
||||||
|
padding:0;
|
||||||
|
margin:0;
|
||||||
|
line-height:16px;
|
||||||
|
white-space:nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.task.label {width:100%;}
|
||||||
|
.task.label.project, .task.label.version { font-weight: bold; }
|
||||||
|
|
||||||
|
.task_late { background:#f66 url(/images/task_late.png); border: 1px solid #f66; }
|
||||||
|
.task_done { background:#00c600 url(/images/task_done.png); border: 1px solid #00c600; }
|
||||||
|
.task_todo { background:#aaa url(/images/task_todo.png); border: 1px solid #aaa; }
|
||||||
|
|
||||||
|
.task_todo.parent { background: #888; border: 1px solid #888; height: 3px;}
|
||||||
|
.task_late.parent, .task_done.parent { height: 3px;}
|
||||||
|
.task.parent.marker.starting { position: absolute; background: url(/images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; left: 0px; top: -1px;}
|
||||||
|
.task.parent.marker.ending { position: absolute; background: url(/images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; right: 0px; top: -1px;}
|
||||||
|
|
||||||
|
.version.task_late { background:#f66 url(/images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
|
||||||
|
.version.task_done { background:#00c600 url(/images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
|
||||||
|
.version.task_todo { background:#fff url(/images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
|
||||||
|
.version.marker { background-image:url(/images/version_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
|
||||||
|
|
||||||
|
.project.task_late { background:#f66 url(/images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
|
||||||
|
.project.task_done { background:#00c600 url(/images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
|
||||||
|
.project.task_todo { background:#fff url(/images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
|
||||||
|
.project.marker { background-image:url(/images/project_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
|
||||||
|
|
||||||
|
.version-behind-schedule a, .issue-behind-schedule a {color: #f66914;}
|
||||||
|
.version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;}
|
||||||
|
/*end*/
|
||||||
|
|
||||||
|
dt.issue { background-image: url(/images/ticket.png); }
|
||||||
|
dt.issue-edit { background-image: url(/images/ticket_edit.png); }
|
||||||
|
dt.issue-closed { background-image: url(/images/ticket_checked.png); }
|
||||||
|
dt.issue-note { background-image: url(/images/ticket_note.png); }
|
||||||
|
dt.changeset { background-image: url(/images/changeset.png); }
|
||||||
|
dt.news { background-image: url(/images/news.png); }
|
||||||
|
dt.message { background-image: url(/images/message.png); }
|
||||||
|
dt.reply { background-image: url(/images/comments.png); }
|
||||||
|
dt.wiki-page { background-image: url(/images/wiki_edit.png); }
|
||||||
|
dt.attachment { background-image: url(/images/attachment.png); }
|
||||||
|
dt.document { background-image: url(/images/document.png); }
|
||||||
|
dt.project { background-image: url(/images/projects.png); }
|
||||||
|
dt.time-entry { background-image: url(/images/time.png); }
|
||||||
|
|
||||||
|
/***** Icons *****/
|
||||||
|
.icon {
|
||||||
|
background-position: 0% 50%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
font-family: '微软雅黑'; /*modify by men*/
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-top: 2px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
.icon_enterprise {
|
||||||
|
background-position: 0% 50%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
font-family: '微软雅黑'; /*modify by men*/
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-top: 2px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
}
|
||||||
|
.icon_enterprise-add { background-image: url(/images/add_enterprise.png); }
|
||||||
|
.icon-add { background-image: url(/images/add.png); }
|
||||||
|
.icon-edit { /*background-image: url(../images/edit.png);*/ }
|
||||||
|
.icon-copy { background-image: url(/images/copy.png); }
|
||||||
|
.icon-duplicate { background-image: url(/images/duplicate.png); }
|
||||||
|
.icon-del { /*background-image: url(../images/delete.png); */}
|
||||||
|
.icon-move { background-image: url(/images/move.png); }
|
||||||
|
.icon-save { background-image: url(/images/save.png); }
|
||||||
|
.icon-cancel { background-image: url(/images/cancel.png); }
|
||||||
|
.icon-multiple { background-image: url(/images/table_multiple.png); }
|
||||||
|
.icon-folder { background-image: url(/images/folder.png); }
|
||||||
|
.open .icon-folder { background-image: url(/images/folder_open.png); }
|
||||||
|
.icon-package { background-image: url(/images/package.png); }
|
||||||
|
.icon-user { background-image: url(/images/user.png); }
|
||||||
|
.icon-projects { background-image: url(/images/projects.png); }
|
||||||
|
.icon-help { background-image: url(/images/help.png); }
|
||||||
|
.icon-attachment { background-image: url(/images/attachment.png);padding-left: 20px !important; }
|
||||||
|
.icon-history { background-image: url(/images/history.png); }
|
||||||
|
.icon-time { background-image: url(/images/time.png); }
|
||||||
|
.icon-time-add { background-image: url(/images/time_add.png); }
|
||||||
|
.icon-stats { background-image: url(/images/stats.png); }
|
||||||
|
.icon-warning { background-image: url(/images/warning.png); }
|
||||||
|
.icon-fav { background-image: url(/images/fav.png); }
|
||||||
|
.icon-fav-off { background-image: url(/images/fav_off.png); }
|
||||||
|
.icon-reload { background-image: url(/images/reload.png); }
|
||||||
|
.icon-lock { background-image: url(/images/locked.png); }
|
||||||
|
.icon-unlock { background-image: url(/images/unlock.png); }
|
||||||
|
.icon-checked { background-image: url(/images/true.png); }
|
||||||
|
.icon-details { background-image: url(/images/zoom_in.png); }
|
||||||
|
.icon-report { background-image: url(/images/report.png); }
|
||||||
|
.icon-comment { /*background-image: url(../images/comment.png); */}
|
||||||
|
.icon-summary { background-image: url(/images/lightning.png); }
|
||||||
|
.icon-server-authentication { background-image: url(/images/server_key.png); }
|
||||||
|
.icon-issue { background-image: url(/images/ticket.png); }
|
||||||
|
.icon-zoom-in { background-image: url(/images/zoom_in.png); }
|
||||||
|
.icon-zoom-out { background-image: url(/images/zoom_out.png); }
|
||||||
|
.icon-passwd { background-image: url(/images/textfield_key.png); }
|
||||||
|
.icon-test { background-image: url(/images/bullet_go.png); }
|
||||||
|
|
||||||
|
.icon-file { background-image: url(/images/files/default.png); }
|
||||||
|
.icon-file.text-plain { background-image: url(/images/files/text.png); }
|
||||||
|
.icon-file.text-x-c { background-image: url(/images/files/c.png); }
|
||||||
|
.icon-file.text-x-csharp { background-image: url(/images/files/csharp.png); }
|
||||||
|
.icon-file.text-x-java { background-image: url(/images/files/java.png); }
|
||||||
|
.icon-file.text-x-javascript { background-image: url(/images/files/js.png); }
|
||||||
|
.icon-file.text-x-php { background-image: url(/images/files/php.png); }
|
||||||
|
.icon-file.text-x-ruby { background-image: url(/images/files/ruby.png); }
|
||||||
|
.icon-file.text-xml { background-image: url(/images/files/xml.png); }
|
||||||
|
.icon-file.text-css { background-image: url(/images/files/css.png); }
|
||||||
|
.icon-file.text-html { background-image: url(/images/files/html.png); }
|
||||||
|
.icon-file.image-gif { background-image: url(/images/files/image.png); }
|
||||||
|
.icon-file.image-jpeg { background-image: url(/images/files/image.png); }
|
||||||
|
.icon-file.image-png { background-image: url(/images/files/image.png); }
|
||||||
|
.icon-file.image-tiff { background-image: url(/images/files/image.png); }
|
||||||
|
.icon-file.application-pdf { background-image: url(/images/files/pdf.png); }
|
||||||
|
.icon-file.application-zip { background-image: url(/images/files/zip.png); }
|
||||||
|
.icon-file.application-x-gzip { background-image: url(/images/files/zip.png); }
|
||||||
|
|
||||||
|
img.gravatar {
|
||||||
|
padding: 2px;
|
||||||
|
border: solid 1px #d5d5d5;
|
||||||
|
background: #fff;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.issue img.gravatar {
|
||||||
|
float: left;
|
||||||
|
margin: 0 6px 0 0;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.issue table img.gravatar {
|
||||||
|
height: 14px;
|
||||||
|
width: 14px;
|
||||||
|
padding: 2px;
|
||||||
|
float: left;
|
||||||
|
margin: 0 0.5em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 img.gravatar {margin: -2px 4px -4px 0;}
|
||||||
|
h3 img.gravatar {margin: -4px 4px -4px 0;}
|
||||||
|
h4 img.gravatar {margin: -6px 4px -4px 0;}
|
||||||
|
td.username img.gravatar {margin: 0 0.5em 0 0; vertical-align: top;}
|
||||||
|
#activity dt img.gravatar {float: left; margin: 0 1em 1em 0;}
|
||||||
|
/* Used on 12px Gravatar img tags without the icon background */
|
||||||
|
.icon-gravatar {float: left; margin-right: 4px;}
|
||||||
|
|
||||||
|
.buttons { font-size: 0.9em; margin-bottom: 1.4em; margin-top: 1em; }
|
Loading…
Reference in new issue