Merge branch 'szzh' of http://repository.trustie.net/xianbo/trustie2 into szzh
This commit is contained in:
commit
da82a4e842
|
@ -64,7 +64,7 @@ class AttachmentsController < ApplicationController
|
|||
# modify by nwb
|
||||
# 下载添加权限设置
|
||||
candown = false
|
||||
if @attachment.container.class.to_s != "HomeworkAttach" &&(@attachment.container.has_attribute?(:project) || @attachment.container.has_attribute?(:project_id)) && @attachment.container.project
|
||||
if @attachment.container.class.to_s != "HomeworkAttach" && (@attachment.container.has_attribute?(:project) || @attachment.container.has_attribute?(:project_id)) && @attachment.container.project
|
||||
project = @attachment.container.project
|
||||
candown= User.current.member_of?(project) || (project.is_public && @attachment.is_public == 1)
|
||||
elsif @attachment.container.is_a?(Project)
|
||||
|
@ -89,6 +89,7 @@ class AttachmentsController < ApplicationController
|
|||
elsif @attachment.container_type == "Bid" && @attachment.container && @attachment.container.courses
|
||||
candown = User.current.member_of_course?(@attachment.container.courses.first) || (course.is_public == 1 && @attachment.is_public == 1)
|
||||
else
|
||||
|
||||
candown = @attachment.is_public == 1
|
||||
end
|
||||
if candown || User.current.admin? || User.current.id == @attachment.author_id
|
||||
|
|
|
@ -331,18 +331,9 @@ class HomeworkAttachController < ApplicationController
|
|||
if User.current.admin? || User.current.member_of_course?(course)
|
||||
name = params[:homework_name]
|
||||
description = params[:homework_description]
|
||||
if params[:homework_attach]
|
||||
if params[:homework_attach][:project_id]
|
||||
project_id = params[:homework_attach][:project_id]
|
||||
else
|
||||
project_id = 0
|
||||
end
|
||||
else
|
||||
project_id = 0
|
||||
end
|
||||
@homework.name = name
|
||||
@homework.description = description
|
||||
@homework.project_id = project_id
|
||||
@homework.project_id = params[:project_id] || 0
|
||||
if params[:attachments]
|
||||
@homework.save_attachments(params[:attachments])
|
||||
end
|
||||
|
|
|
@ -376,12 +376,13 @@ class UsersController < ApplicationController
|
|||
"show_changesets" => true
|
||||
}
|
||||
scope = User.logged.status(@status)
|
||||
scope = scope.like(params[:name],params[:search_by][:id]) if params[:name].present?
|
||||
@search_by = params[:search_by] ? params[:search_by][:id] : 0
|
||||
scope = scope.like(params[:name],@search_by) if params[:name].present?
|
||||
@user_count = scope.count
|
||||
@user_pages = Paginator.new @user_count, @limit, params['page']
|
||||
@user_base_tag = params[:id] ? 'base_users':'users_base'
|
||||
@offset ||= @user_pages.reverse_offset
|
||||
unless @offset == 0
|
||||
unless @offset == 0
|
||||
@users = scope.offset(@offset).limit(@limit).all.reverse
|
||||
else
|
||||
limit = @user_count % @limit
|
||||
|
|
|
@ -47,6 +47,7 @@ class WordsController < ApplicationController
|
|||
# 删除留言功能要调用destroy,也记得在destroy.js中修改
|
||||
|
||||
# deny api. api useless
|
||||
@show_real_name = params[:show_real_name] || false
|
||||
parent_id = params[:reference_id]
|
||||
author_id = User.current.id
|
||||
reply_user_id = params[:reference_user_id]
|
||||
|
|
|
@ -54,6 +54,17 @@ module FilesHelper
|
|||
s.html_safe
|
||||
end
|
||||
|
||||
#判断用户是否拥有课程,需用户在该课程中角色为教师
|
||||
def has_course? user
|
||||
result = false
|
||||
user.courses.each do |course|
|
||||
if is_course_teacher(user,course)
|
||||
return true
|
||||
end
|
||||
end
|
||||
result
|
||||
end
|
||||
|
||||
# 判断指定的资源时候符合类型
|
||||
def isTypeOk(attachment, type, contentType)
|
||||
result = false
|
||||
|
|
|
@ -60,7 +60,7 @@ module HomeworkAttachHelper
|
|||
memberships = User.current.memberships.all(:conditions => cond)
|
||||
projects = memberships.map(&:project)
|
||||
not_have_project = []
|
||||
not_have_project << "NO PROJECT"
|
||||
not_have_project << Setting.please_chose
|
||||
not_have_project << 0
|
||||
type = []
|
||||
type << not_have_project
|
||||
|
|
2030
app/models/user.rb
2030
app/models/user.rb
File diff suppressed because it is too large
Load Diff
|
@ -1,95 +1,98 @@
|
|||
<% @nav_dispaly_home_path_label = 1
|
||||
@nav_dispaly_main_course_label = 1
|
||||
@nav_dispaly_main_project_label = 1
|
||||
@nav_dispaly_main_contest_label = 1 %>
|
||||
<% @nav_dispaly_forum_label = 1%>
|
||||
<%= call_hook :view_account_login_top %>
|
||||
|
||||
<script type="text/javascript" language="javascript">
|
||||
function clearInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == content) {
|
||||
$('#' + id).val('');
|
||||
}
|
||||
}
|
||||
|
||||
function showInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == '') {
|
||||
$('#' + id).val(content);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div id="login-form">
|
||||
<%= form_tag(signin_path) do %>
|
||||
<%= back_url_hidden_field_tag %>
|
||||
<table>
|
||||
<tr>
|
||||
<td align="right">
|
||||
<label for="username">
|
||||
<%=l(:lable_user_name)%>:
|
||||
</label>
|
||||
</td>
|
||||
<td align="left">
|
||||
<%= text_field_tag 'username', params[:username], :tabindex => '1' , :value => "#{l(:label_login_prompt)}",
|
||||
:onfocus => "clearInfo('username','#{l(:label_login_prompt)}')",
|
||||
:onblur => "showInfo('username','#{l(:label_login_prompt)}')",
|
||||
:style => "resize: none;font-size: 12px;color: #818283;"%>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
<label for="password">
|
||||
<%=l(:field_password)%>:
|
||||
</label>
|
||||
</td>
|
||||
<td align="left">
|
||||
<%= password_field_tag 'password', nil, :tabindex => '2' %>
|
||||
</td>
|
||||
</tr>
|
||||
<% if Setting.openid? %>
|
||||
<tr>
|
||||
<td align="right">
|
||||
<label for="openid_url">
|
||||
<%=l(:field_identity_url)%>
|
||||
</label>
|
||||
</td>
|
||||
<td align="left">
|
||||
<%= text_field_tag "openid_url", nil, :tabindex => '3' %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td align="left">
|
||||
<% if Setting.autologin? %>
|
||||
<label for="autologin">
|
||||
<%= check_box_tag 'autologin', 1, false, :tabindex => 4 %>
|
||||
<%= l(:label_stay_logged_in) %>
|
||||
</label>
|
||||
<% end %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" >
|
||||
|
||||
<span style="float: left">
|
||||
<% if Setting.lost_password? %>
|
||||
<%= link_to l(:label_password_lost), lost_password_path %>
|
||||
<% end %></span>
|
||||
|
||||
<span style="float: right">
|
||||
<input type="submit" class="small" name="login" value="<%=l(:button_login)%> »" tabindex="5"/></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<% end %>
|
||||
</div>
|
||||
<%= call_hook :view_account_login_bottom %>
|
||||
|
||||
<% if params[:username].present? %>
|
||||
<%= javascript_tag "$('#password').focus();" %>
|
||||
<% else %>
|
||||
<%= javascript_tag "$('#username').focus();" %>
|
||||
<% end %>
|
||||
<% @nav_dispaly_home_path_label = 1
|
||||
@nav_dispaly_main_course_label = 1
|
||||
@nav_dispaly_main_project_label = 1
|
||||
@nav_dispaly_main_contest_label = 1 %>
|
||||
<% @nav_dispaly_forum_label = 1%>
|
||||
<%= call_hook :view_account_login_top %>
|
||||
|
||||
<script type="text/javascript" language="javascript">
|
||||
function clearInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == content) {
|
||||
$('#' + id).val('');
|
||||
}
|
||||
}
|
||||
|
||||
function showInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == '') {
|
||||
$('#' + id).val(content);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=9">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />
|
||||
</head>
|
||||
<div id="login-form">
|
||||
<%= form_tag(signin_path) do %>
|
||||
<%= back_url_hidden_field_tag %>
|
||||
<table>
|
||||
<tr>
|
||||
<td align="right">
|
||||
<label for="username">
|
||||
<%=l(:lable_user_name)%>:
|
||||
</label>
|
||||
</td>
|
||||
<td align="left">
|
||||
<%= text_field_tag 'username', params[:username], :tabindex => '1' , :value => "#{l(:label_login_prompt)}",
|
||||
:onfocus => "clearInfo('username','#{l(:label_login_prompt)}')",
|
||||
:onblur => "showInfo('username','#{l(:label_login_prompt)}')",
|
||||
:style => "resize: none;font-size: 12px;color: #818283;"%>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
<label for="password">
|
||||
<%=l(:field_password)%>:
|
||||
</label>
|
||||
</td>
|
||||
<td align="left">
|
||||
<%= password_field_tag 'password', nil, :tabindex => '2' %>
|
||||
</td>
|
||||
</tr>
|
||||
<% if Setting.openid? %>
|
||||
<tr>
|
||||
<td align="right">
|
||||
<label for="openid_url">
|
||||
<%=l(:field_identity_url)%>
|
||||
</label>
|
||||
</td>
|
||||
<td align="left">
|
||||
<%= text_field_tag "openid_url", nil, :tabindex => '3' %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td align="left">
|
||||
<% if Setting.autologin? %>
|
||||
<label for="autologin">
|
||||
<%= check_box_tag 'autologin', 1, false, :tabindex => 4 %>
|
||||
<%= l(:label_stay_logged_in) %>
|
||||
</label>
|
||||
<% end %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" >
|
||||
|
||||
<span style="float: left">
|
||||
<% if Setting.lost_password? %>
|
||||
<%= link_to l(:label_password_lost), lost_password_path %>
|
||||
<% end %></span>
|
||||
|
||||
<span style="float: right">
|
||||
<input type="submit" class="small" name="login" value="<%=l(:button_login)%> »" tabindex="5"/></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<% end %>
|
||||
</div>
|
||||
<%= call_hook :view_account_login_bottom %>
|
||||
|
||||
<% if params[:username].present? %>
|
||||
<%= javascript_tag "$('#password').focus();" %>
|
||||
<% else %>
|
||||
<%= javascript_tag "$('#username').focus();" %>
|
||||
<% end %>
|
||||
|
|
|
@ -58,16 +58,10 @@
|
|||
<span style="float: right">
|
||||
<% if User.current.logged? && is_cur_course_student(@course) %>
|
||||
<% cur_user_homework = cur_user_homework_for_bid(bid) %>
|
||||
<% if cur_user_homework!= nil && cur_user_homework.empty? %>
|
||||
<% if bid.comment_status == 0 || bid.comment_status == 2%>
|
||||
<span class="span_wping">
|
||||
<%= link_to l(:label_commit_homework),new_exercise_book_path(bid) %>
|
||||
</span>
|
||||
<% else %>
|
||||
<span title="匿评阶段不可提交作业!" class="span_wping">
|
||||
<a style="width:80px; margin:20px 0 0 350px;background:#8e8e8e;">提交作业</a>
|
||||
</span>
|
||||
<% end %>
|
||||
<% if cur_user_homework && cur_user_homework.empty? %>
|
||||
<span class="span_wping">
|
||||
<%= link_to l(:label_commit_homework),new_exercise_book_path(bid) %>
|
||||
</span>
|
||||
<% else %>
|
||||
<span style="color: green; float: right">
|
||||
<%= l(:lable_has_commit_homework)%>
|
||||
|
|
|
@ -18,9 +18,9 @@
|
|||
<%= form_for @message, :url => new_board_message_path(@board), :html => {:multipart => true, :id => 'message-form'} do |f| %>
|
||||
<%= render :partial => 'messages/form', :locals => {:f => f} %>
|
||||
<p>
|
||||
<!--<input type="button" onclick="submitProjectBoard();" class = "ButtonColor m3p10" value="<%= l(:button_submit)%>">-->
|
||||
<a herf="#" onclick="submitProjectBoard();" class="ButtonColor m3p10"><%= l(:button_submit)%></a>
|
||||
<%= link_to l(:button_cancel), "#", :onclick => '$("#add-message").hide(); return false;', :class => 'ButtonColor m3p10' %></p>
|
||||
<%= link_to l(:button_cancel), "#", :onclick => '$("#add-message").hide(); return false;', :class => 'ButtonColor m3p10' %>
|
||||
</p>
|
||||
<% end %>
|
||||
<div id="preview" class="wiki"></div>
|
||||
<% end %>
|
||||
|
|
|
@ -9,7 +9,9 @@
|
|||
<% if User.current.logged? && (User.current.admin? || (!Member.where('user_id = ? and course_id = ?', User.current.id, @course.id).first.nil? && (Member.where('user_id = ? and course_id = ?', User.current.id, @course.id).first.roles&Role.where(id: [3, 4, 7, 9] )).size >0))%>
|
||||
<%= link_to(l(:label_course_homework_new), {:controller => 'courses', :action => 'new_homework'}, :class => 'icon icon-add') %>
|
||||
<% else %>
|
||||
<span class="font_lighter"><%= l(:label_coursejoin_tip) %></span>
|
||||
<span class="font_lighter">
|
||||
<%= l(:label_coursejoin_tip) %>
|
||||
</span>
|
||||
<% end %>
|
||||
</div>
|
||||
<div id="bid-show">
|
||||
|
|
|
@ -31,11 +31,6 @@
|
|||
$('#insite').attr("class", "re_schbtn b_dblue");
|
||||
}
|
||||
}
|
||||
function buttoncss()
|
||||
{
|
||||
$('#incourse').attr("class", "re_schbtn b_lblue");
|
||||
$('#insite').attr("class", "re_schbtn b_lblue");
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
@ -44,8 +39,8 @@
|
|||
<div class="re_top">
|
||||
<%= form_tag( search_course_files_path(@course), method: 'get',:class => "re_search f_l",:remote=>true) do %>
|
||||
<%= text_field_tag 'name', params[:name], name: "name", :class => 're_schbox',:style=>"padding: 0px"%>
|
||||
<%= submit_tag "课内搜索", :class => "re_schbtn b_lblue",:name => "incourse",:id => "incourse", :onmouseover => "presscss('incourse')",:onmouseout =>"buttoncss()" %>
|
||||
<%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite",:id => "insite",:onmouseover => "presscss('insite')",:onmouseout =>"buttoncss()" %>
|
||||
<%= submit_tag "课内搜索", :class => "re_schbtn b_lblue",:name => "incourse",:id => "incourse", :onclick => "presscss('incourse')"%>
|
||||
<%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite",:id => "insite",:onclick => "presscss('insite')" %>
|
||||
<% end %>
|
||||
<% if is_course_teacher(User.current,@course) %>
|
||||
<a href="javascript:void(0)" class="re_fabu f_r b_lblue" onclick="show_upload()">上传资源</a>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<%= link_to_attachment file, :download => true,:text => truncate(file.filename,length: 35, omission: '...'), :title => file.filename+"\n"+file.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis;",:class => "c_dblue f_14 f_b f_l" %>
|
||||
<% if User.current.logged? %>
|
||||
<% if is_course_teacher(User.current,@course) && file.author_id == User.current.id %>
|
||||
<%= link_to "选入我的其他课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true %>
|
||||
<%= link_to("选入我的其他课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true) if has_course?(User.current) %>
|
||||
|
||||
<% if delete_allowed && file.container_id == @course.id && file.container_type == "Course" %>
|
||||
<span id="is_public_<%= file.id %>">
|
||||
|
@ -31,7 +31,7 @@
|
|||
<!-- <#%= link_to (file.is_public? ? "公开":"私有"),"javascript:void(0)",:class=>"f_l re_open" %> -->
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= link_to "选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true %>
|
||||
<%= link_to("选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true) if has_course?(User.current) %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<% end %>
|
||||
|
|
|
@ -49,8 +49,8 @@
|
|||
<% else %>
|
||||
<!-- 是学生 -->
|
||||
<% if is_my_homework %>
|
||||
<!-- 我的作品,显示为编辑和删除 -->
|
||||
<% if @bid.comment_status == 0 %>
|
||||
<!-- 我的作品,在未开启匿评和未使用匿评,显示为编辑和删除 -->
|
||||
<% if @bid.comment_status == 0 || @bid.open_anonymous_evaluation == 0 %>
|
||||
<li class="wmine" style="padding-top: 4px;">
|
||||
<%= link_to l(:button_edit), edit_homework_attach_path(homework) %>
|
||||
<% if homework.user == User.current || User.current.admin? %>
|
||||
|
@ -68,10 +68,14 @@
|
|||
<a style="color:#8e8e8e;"><%= l(:button_edit) %></a>
|
||||
<% if homework.user == User.current || User.current.admin? %>
|
||||
<!-- 作业创建者显示删除作业 -->
|
||||
<a style="color:#8e8e8e;"><%=l(:label_bid_respond_delete)%></a>
|
||||
<a style="color:#8e8e8e;">
|
||||
<%=l(:label_bid_respond_delete)%>
|
||||
</a>
|
||||
<% else %>
|
||||
<!-- 作业参与者显示退出作业 -->
|
||||
<a style="color:#8e8e8e;"><%=l(:label_logout) %></a>
|
||||
<a style="color:#8e8e8e;">
|
||||
<%=l(:label_logout) %>
|
||||
</a>
|
||||
<% end %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
@ -88,7 +92,9 @@
|
|||
<% elsif @bid.comment_status == 2%>
|
||||
<!-- 处于匿评已关闭阶段,不容许评分 -->
|
||||
<li class="wping" title="关闭匿评后不可继续评分">
|
||||
<a style="background:#8e8e8e;"><%= l(:label_anonymous_comments) %></a>
|
||||
<a style="background:#8e8e8e;">
|
||||
<%= l(:label_anonymous_comments) %>
|
||||
</a>
|
||||
<% if Time.parse(@bid.deadline.to_s).strftime("%Y-%m-%d") < Time.parse(homework.created_at.to_s).strftime("%Y-%m-%d") %>
|
||||
<span class="c_red"> 迟交!</span>
|
||||
<% end %>
|
||||
|
|
|
@ -35,16 +35,9 @@
|
|||
</span>
|
||||
</li>
|
||||
<li class="c_red" style="margin:25px 0 0 20px;"> 您还没交作业,请创建作业!</li>
|
||||
<% if @bid.comment_status == 0 || @bid.open_anonymous_evaluation == 0%>
|
||||
<!-- 老师布置的作业在创建和开启匿评这段时间才允许创建作品 -->
|
||||
<li class="wping">
|
||||
<%= link_to "提交作业", new_exercise_book_path(@bid), :style => "width:80px; margin:20px 0 0 350px;" %>
|
||||
</li>
|
||||
<% else %>
|
||||
<li class="wping" title="匿评阶段不可提交作业!">
|
||||
<a style="width:80px; margin:20px 0 0 350px;background:#8e8e8e;">提交作业</a>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
<% end %>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<% show_real_name ||= false %>
|
||||
<% reply_allow = JournalsForMessage.create_by_user? User.current %>
|
||||
<% ids_r = 'reply_respond_form_'+ reply.id.to_s %>
|
||||
<div class="recall" id='word_li_<%=reply.id.to_s%>' onmouseover="$('#<%= ids_r %>').show()" onmouseout="$('#<%= ids_r %>').hide()">
|
||||
|
@ -12,8 +13,13 @@
|
|||
<% id = 'project_respond_form_'+ reply.id.to_s %>
|
||||
<%= link_to reply.user.name, user_path(reply.user) %>
|
||||
回复
|
||||
<% if show_name %>
|
||||
<%= link_to reply.at_user.name,user_path(reply.at_user) %>
|
||||
<% parent_jour = JournalsForMessage.find reply.m_reply_id %>
|
||||
<% if show_name && parent_jour %>
|
||||
<% if show_real_name%>
|
||||
<%= link_to parent_jour.user.lastname+parent_jour.user.firstname, user_path(parent_jour.user) %>
|
||||
<% else %>
|
||||
<%= link_to parent_jour.user.name, user_path(parent_jour.user) %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= l(:label_anonymous) %>
|
||||
<% end %>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<% if @save_succ %>
|
||||
var pre_append = $('<%= j(
|
||||
render :partial => "journal_reply_items",
|
||||
:locals => {:reply => @jfm, :journal => @jfm.parent, :m_reply_id => @jfm}
|
||||
:locals => {:reply => @jfm, :journal => @jfm.parent, :m_reply_id => @jfm, :show_real_name => true}
|
||||
) %>').hide();
|
||||
$('#journal_reply_ul_<%=@jfm.m_parent_id%>').append(pre_append);
|
||||
pre_append.fadeIn(600);
|
||||
|
|
|
@ -41,13 +41,13 @@
|
|||
<div class="Newwork">
|
||||
<div id="tb_" class="tb_">
|
||||
<ul>
|
||||
<li id="tb_1" class="hovertab" onclick="switchTab(1);this.blur();return false;" style="width: auto; padding:5px 10px 0;">
|
||||
<li id="tb_1" class="hovertab" onclick="switchTab(1);this.blur();return false;" style="width: auto; padding:10px 10px 0;">
|
||||
修改作业
|
||||
</li>
|
||||
<li id="tb_2" class="normaltab" onclick="switchTab(2);this.blur();return false;">
|
||||
成员
|
||||
</li>
|
||||
<li class="N_top" style="width: 747px;">
|
||||
<li class="N_top" style="width: 747px;line-height: 1.9;">
|
||||
<%= link_to(l(:label_project_new), {:controller => 'projects',
|
||||
:action => 'new',
|
||||
:course => 0,
|
||||
|
|
|
@ -41,10 +41,10 @@
|
|||
<div class="Newwork">
|
||||
<div id="tb_" class="tb_">
|
||||
<ul>
|
||||
<li id="tb_1" class="hovertab" onmouseover="x:HoverLi(1);" style="width: auto; padding:5px 10px 0;">
|
||||
<li id="tb_1" class="hovertab" onmouseover="x:HoverLi(1);" style="width: auto; padding:10px 10px 0;">
|
||||
创建作品
|
||||
</li>
|
||||
<li class="N_top" style="width: 835px;">
|
||||
<li class="N_top" style="width: 835px;line-height: 1.9;">
|
||||
<%= link_to(l(:label_project_new), {:controller => 'projects',
|
||||
:action => 'new',
|
||||
:course => 0,
|
||||
|
|
|
@ -27,23 +27,26 @@
|
|||
<p id="attachments_form"><label><%= l(:label_attachment_plural) %></label><%= render :partial => 'attachments/form', :locals => {:container => @issue} %></p>
|
||||
|
||||
<% if @issue.safe_attribute? 'watcher_user_ids' -%>
|
||||
<p id="watchers_form"><label><%= l(:label_issue_watchers) %></label>
|
||||
<span id="watchers_inputs">
|
||||
<%= watchers_checkboxes(@issue, @available_watchers) %>
|
||||
</span>
|
||||
<span class="search_for_watchers">
|
||||
<%= link_to l(:label_search_for_watchers),
|
||||
{:controller => 'watchers', :action => 'new', :project_id => @issue.project},
|
||||
:remote => true,
|
||||
:method => 'get' %>
|
||||
</span>
|
||||
<p id="watchers_form">
|
||||
<label>
|
||||
<%= l(:label_issue_watchers) %>
|
||||
</label>
|
||||
<span id="watchers_inputs">
|
||||
<%= watchers_checkboxes(@issue, @available_watchers) %>
|
||||
</span>
|
||||
<span class="search_for_watchers">
|
||||
<%= link_to l(:label_search_for_watchers),
|
||||
{:controller => 'watchers', :action => 'new', :project_id => @issue.project},
|
||||
:remote => true,
|
||||
:method => 'get' %>
|
||||
</span>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= submit_tag l(:button_create), :class => "ButtonAddTags"%>
|
||||
<%= submit_tag l(:button_create_and_continue), :class => 'ButtonAddTags' %>
|
||||
<%= preview_link preview_new_issue_path(:project_id => @project), 'issue-form','preview',{:class => "ButtonColor"}%>
|
||||
<a href="#" class="ButtonColor m3p10" onclick="$('#issue-form').submit();">
|
||||
<%= l(:button_create)%>
|
||||
</a>
|
||||
<%= preview_link preview_new_issue_path(:project_id => @project), 'issue-form','preview',{:class => "ButtonColor m3p10"}%>
|
||||
|
||||
<%= javascript_tag "$('#issue_subject').focus();" %>
|
||||
<% end %>
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
$.ajax({
|
||||
url: '<%= update_score_user_path(:format => 'js') %>',
|
||||
type: 'get',
|
||||
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
|
||||
data: 'id=<%= @user.id %>',
|
||||
remote: true
|
||||
}) ;
|
||||
|
@ -82,7 +81,11 @@
|
|||
break;
|
||||
}
|
||||
}
|
||||
document.getElementById('td_tech_title').innerHTML = title1;
|
||||
var obj = document.getElementById('td_tech_title');
|
||||
if(!(obj == "undefined" || obj == null))
|
||||
{
|
||||
obj.innerHTML = title1;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -15,7 +15,9 @@
|
|||
} do |f| %>
|
||||
<%= render :partial => 'form',
|
||||
:locals => {:f => f, :replying => !@message.parent.nil?} %>
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<%= preview_link({:controller => 'messages', :action => 'preview', :board_id => @board, :id => @message}, 'message-form') %>
|
||||
<a href="#" onclick="$('#message-form').submit();" class="ButtonColor m3p10">
|
||||
<%= l(:button_save) %>
|
||||
</a>
|
||||
<%= link_to l(:button_cancel), board_message_url(@message.board, @message.root, :r => (@message.parent_id && @message.id)), :class => "ButtonColor m3p10" %>
|
||||
<% end %>
|
||||
<div id="preview" class="wiki"></div>
|
||||
|
|
|
@ -55,6 +55,18 @@
|
|||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
function submit_my_account_form()
|
||||
{
|
||||
var lastname = document.getElementById('user_lastname').value;
|
||||
var firstname = document.getElementById('user_firstname').value;
|
||||
if(lastname != "" && firstname != "")
|
||||
{
|
||||
$("#my_account_form").submit();
|
||||
}
|
||||
else {
|
||||
parent.alert("姓氏和名字不能为空");
|
||||
}
|
||||
}
|
||||
function get_options(value) {
|
||||
var prefix = "";
|
||||
if(location.href.indexOf('ros')>=0)
|
||||
|
@ -385,7 +397,7 @@
|
|||
<%= render :partial => 'users/user_extensions' %></div>
|
||||
</fieldset>
|
||||
<!-- end -->
|
||||
<%= submit_tag l(:button_save) %>
|
||||
<input type="button" class="enterprise" value="<%=l(:button_save) %>" onclick="submit_my_account_form();" >
|
||||
</fieldset>
|
||||
<% end %>
|
||||
<% html_title(l(:label_my_account)) -%>
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
<script type="text/javascript">
|
||||
function formSubmit()
|
||||
{
|
||||
document.getElementById("tag_for_save").submit()
|
||||
}
|
||||
</script>
|
||||
<div id="tags">
|
||||
<%#begin
|
||||
1 代表是user类型
|
||||
|
@ -83,7 +77,9 @@
|
|||
<%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%>
|
||||
<%= f.text_field :object_flag,:value=> object_flag,:style=>"display:none"%>
|
||||
<!--<%#= f.submit l(:button_project_tags_add),:class => "ButtonColor m3p10" %>-->
|
||||
<a href="#" onclick='$("form").submit()' class="ButtonColor m3p10" ><%= l(:button_project_tags_add)%></a>
|
||||
<a href="#" onclick='$("#tags_name").parent().submit();' class="ButtonColor m3p10" >
|
||||
<%= l(:button_project_tags_add)%>
|
||||
</a>
|
||||
<%= link_to_function l(:button_cancel), '$("#put-tag-form").hide();',:class=>'ButtonColor m3p10'%>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
</td>
|
||||
<td rowspan="2" >
|
||||
<div class="project-search" style="float: right">
|
||||
<label for="user_browse_label"><%= l(:label_user_search_type) %></label>
|
||||
<%= select "search_by", "id",
|
||||
<!--label for="user_browse_label"><%#= l(:label_user_search_type) %></label-->
|
||||
<%#= select "search_by", "id",
|
||||
{ l(:label_search_by_login) => "0", l(:label_search_by_name) => "1", l(:label_search_by_email) => "2" },
|
||||
:size => 20 %>
|
||||
<%= text_field_tag 'name', params[:name], :size => 30 %>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<% parent_jour = JournalsForMessage.find reply.m_reply_id %>
|
||||
<% if show_name && parent_jour %>
|
||||
<% if show_real_name%>
|
||||
<%= link_to parent_jour.user.lastname+reply.user.firstname, user_path(parent_jour.user) %>
|
||||
<%= link_to parent_jour.user.lastname+parent_jour.user.firstname, user_path(parent_jour.user) %>
|
||||
<% else %>
|
||||
<%= link_to parent_jour.user.name, user_path(parent_jour.user) %>
|
||||
<% end %>
|
||||
|
@ -51,7 +51,7 @@
|
|||
</div>
|
||||
<div id='<%=id%>' class="respond-form">
|
||||
<% if reply_allow %>
|
||||
<%= render :partial => "words/new_respond", :locals => {:journal => journal, :m_reply_id => m_reply_id,:show_name => show_name} %>
|
||||
<%= render :partial => "words/new_respond", :locals => {:journal => journal, :m_reply_id => m_reply_id,:show_name => show_name, :show_real_name => show_real_name} %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
<%= form_tag(words_create_reply_path, :remote => true) do %>
|
||||
<% show_real_name ||= false%>
|
||||
<%= form_tag(words_create_reply_path(:show_real_name=>show_real_name), :remote => true) do %>
|
||||
<%= text_area_tag 'user_notes', "", :class => 'noline',
|
||||
:style => "resize: none;", :rows => 4,
|
||||
:placeholder => l(:label_projects_feedback_respond_content),
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<% if @save_succ %>
|
||||
var pre_append = $('<%= j(
|
||||
render :partial => "words/journal_reply_items",
|
||||
:locals => {:reply => @jfm, :journal => @jfm.parent, :m_reply_id => @jfm,:show_name => @show_name}
|
||||
:locals => {:reply => @jfm, :journal => @jfm.parent, :m_reply_id => @jfm,:show_name => @show_name, :show_real_name=>@show_real_name}
|
||||
) %>').hide();
|
||||
$('#journal_reply_ul_<%=@jfm.m_parent_id%>').append(pre_append);
|
||||
pre_append.fadeIn(600);
|
||||
|
|
|
@ -256,6 +256,8 @@ course_domain:
|
|||
default: course.trustie.net
|
||||
repository_domain:
|
||||
default: repository.trustie.net
|
||||
please_chose:
|
||||
default: 请选择
|
||||
plugin_redmine_ckeditor:
|
||||
serialized: true
|
||||
default: --- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,696 @@
|
|||
//= require_directory ./rateable
|
||||
/* Redmine - project management software
|
||||
Copyright (C) 2006-2013 Jean-Philippe Lang */
|
||||
|
||||
function cleanArray (actual){
|
||||
var newArray = new Array();
|
||||
for (var i = 0; i< actual.length; i++){
|
||||
if (actual[i]){
|
||||
newArray.push(actual[i]);
|
||||
}
|
||||
}
|
||||
return newArray;
|
||||
}
|
||||
|
||||
function checkAll(id, checked) {
|
||||
if (checked) {
|
||||
$('#'+id).find('input[type=checkbox]').attr('checked', true);
|
||||
} else {
|
||||
$('#'+id).find('input[type=checkbox]').removeAttr('checked');
|
||||
}
|
||||
}
|
||||
|
||||
function toggleCheckboxesBySelector(selector) {
|
||||
var all_checked = true;
|
||||
$(selector).each(function(index) {
|
||||
if (!$(this).is(':checked')) { all_checked = false; }
|
||||
});
|
||||
$(selector).attr('checked', !all_checked);
|
||||
}
|
||||
|
||||
function showAndScrollTo(id, focus) {
|
||||
$('#'+id).show();
|
||||
if (focus !== null) {
|
||||
$('#'+focus).focus();
|
||||
}
|
||||
$('html, body').animate({scrollTop: $('#'+id).offset().top}, 400);
|
||||
}
|
||||
|
||||
function toggleRowGroup(el) {
|
||||
var tr = $(el).parents('tr').first();
|
||||
var n = tr.next();
|
||||
tr.toggleClass('open');
|
||||
while (n.length && !n.hasClass('group')) {
|
||||
n.toggle();
|
||||
n = n.next('tr');
|
||||
}
|
||||
}
|
||||
|
||||
function collapseAllRowGroups(el) {
|
||||
var tbody = $(el).parents('tbody').first();
|
||||
tbody.children('tr').each(function(index) {
|
||||
if ($(this).hasClass('group')) {
|
||||
$(this).removeClass('open');
|
||||
} else {
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function expandAllRowGroups(el) {
|
||||
var tbody = $(el).parents('tbody').first();
|
||||
tbody.children('tr').each(function(index) {
|
||||
if ($(this).hasClass('group')) {
|
||||
$(this).addClass('open');
|
||||
} else {
|
||||
$(this).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function toggleAllRowGroups(el) {
|
||||
var tr = $(el).parents('tr').first();
|
||||
if (tr.hasClass('open')) {
|
||||
collapseAllRowGroups(el);
|
||||
} else {
|
||||
expandAllRowGroups(el);
|
||||
}
|
||||
}
|
||||
|
||||
function toggleFieldset(el) {
|
||||
var fieldset = $(el).parents('fieldset').first();
|
||||
fieldset.toggleClass('collapsed');
|
||||
fieldset.children('div').toggle();
|
||||
}
|
||||
|
||||
function hideFieldset(el) {
|
||||
var fieldset = $(el).parents('fieldset').first();
|
||||
fieldset.toggleClass('collapsed');
|
||||
fieldset.children('div').hide();
|
||||
}
|
||||
|
||||
function initFilters(){
|
||||
$('#add_filter_select').change(function(){
|
||||
addFilter($(this).val(), '', []);
|
||||
});
|
||||
$('#filters-table td.field input[type=checkbox]').each(function(){
|
||||
toggleFilter($(this).val());
|
||||
});
|
||||
$('#filters-table td.field input[type=checkbox]').live('click',function(){
|
||||
toggleFilter($(this).val());
|
||||
});
|
||||
$('#filters-table .toggle-multiselect').live('click',function(){
|
||||
toggleMultiSelect($(this).siblings('select'));
|
||||
});
|
||||
$('#filters-table input[type=text]').live('keypress', function(e){
|
||||
if (e.keyCode == 13) submit_query_form("query_form");
|
||||
});
|
||||
}
|
||||
|
||||
function addFilter(field, operator, values) {
|
||||
var fieldId = field.replace('.', '_');
|
||||
var tr = $('#tr_'+fieldId);
|
||||
if (tr.length > 0) {
|
||||
tr.show();
|
||||
} else {
|
||||
buildFilterRow(field, operator, values);
|
||||
}
|
||||
$('#cb_'+fieldId).attr('checked', true);
|
||||
toggleFilter(field);
|
||||
$('#add_filter_select').val('').children('option').each(function(){
|
||||
if ($(this).attr('value') == field) {
|
||||
$(this).attr('disabled', true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function buildFilterRow(field, operator, values) {
|
||||
var fieldId = field.replace('.', '_');
|
||||
var filterTable = $("#filters-table");
|
||||
var filterOptions = availableFilters[field];
|
||||
var operators = operatorByType[filterOptions['type']];
|
||||
var filterValues = filterOptions['values'];
|
||||
var i, select;
|
||||
|
||||
var tr = $('<tr class="filter">').attr('id', 'tr_'+fieldId).html(
|
||||
'<td class="field"><input checked="checked" id="cb_'+fieldId+'" name="f[]" value="'+field+'" type="checkbox"><label for="cb_'+fieldId+'"> '+filterOptions['name']+'</label></td>' +
|
||||
'<td class="operator"><select id="operators_'+fieldId+'" name="op['+field+']"></td>' +
|
||||
'<td class="values"></td>'
|
||||
);
|
||||
filterTable.append(tr);
|
||||
|
||||
select = tr.find('td.operator select');
|
||||
for (i=0;i<operators.length;i++){
|
||||
var option = $('<option>').val(operators[i]).text(operatorLabels[operators[i]]);
|
||||
if (operators[i] == operator) { option.attr('selected', true); }
|
||||
select.append(option);
|
||||
}
|
||||
select.change(function(){ toggleOperator(field); });
|
||||
|
||||
switch (filterOptions['type']){
|
||||
case "list":
|
||||
case "list_optional":
|
||||
case "list_status":
|
||||
case "list_subprojects":
|
||||
tr.find('td.values').append(
|
||||
'<span style="display:none;"><select class="value" id="values_'+fieldId+'_1" name="v['+field+'][]"></select>' +
|
||||
' <span class="toggle-multiselect"><a>复选/multi-select</a></span></span>'
|
||||
);
|
||||
select = tr.find('td.values select');
|
||||
if (values.length > 1) { select.attr('multiple', true); }
|
||||
for (i=0;i<filterValues.length;i++){
|
||||
var filterValue = filterValues[i];
|
||||
var option = $('<option>');
|
||||
if ($.isArray(filterValue)) {
|
||||
option.val(filterValue[1]).text(filterValue[0]);
|
||||
if ($.inArray(filterValue[1], values) > -1) {option.attr('selected', true);}
|
||||
} else {
|
||||
option.val(filterValue).text(filterValue);
|
||||
if ($.inArray(filterValue, values) > -1) {option.attr('selected', true);}
|
||||
}
|
||||
select.append(option);
|
||||
}
|
||||
break;
|
||||
case "date":
|
||||
case "date_past":
|
||||
tr.find('td.values').append(
|
||||
'<span style="display:none;"><input type="text" name="v['+field+'][]" id="values_'+fieldId+'_1" size="10" class="value date_value" /></span>' +
|
||||
' <span style="display:none;"><input type="text" name="v['+field+'][]" id="values_'+fieldId+'_2" size="10" class="value date_value" /></span>' +
|
||||
' <span style="display:none;"><input type="text" name="v['+field+'][]" id="values_'+fieldId+'" size="3" class="value" /> '+labelDayPlural+'</span>'
|
||||
);
|
||||
$('#values_'+fieldId+'_1').val(values[0]).datepicker(datepickerOptions);
|
||||
$('#values_'+fieldId+'_2').val(values[1]).datepicker(datepickerOptions);
|
||||
$('#values_'+fieldId).val(values[0]);
|
||||
break;
|
||||
case "string":
|
||||
case "text":
|
||||
tr.find('td.values').append(
|
||||
'<span style="display:none;"><input type="text" name="v['+field+'][]" id="values_'+fieldId+'" size="30" class="value" /></span>'
|
||||
);
|
||||
$('#values_'+fieldId).val(values[0]);
|
||||
break;
|
||||
case "relation":
|
||||
tr.find('td.values').append(
|
||||
'<span style="display:none;"><input type="text" name="v['+field+'][]" id="values_'+fieldId+'" size="6" class="value" /></span>' +
|
||||
'<span style="display:none;"><select class="value" name="v['+field+'][]" id="values_'+fieldId+'_1"></select></span>'
|
||||
);
|
||||
$('#values_'+fieldId).val(values[0]);
|
||||
select = tr.find('td.values select');
|
||||
for (i=0;i<allProjects.length;i++){
|
||||
var filterValue = allProjects[i];
|
||||
var option = $('<option>');
|
||||
option.val(filterValue[1]).text(filterValue[0]);
|
||||
if (values[0] == filterValue[1]) { option.attr('selected', true); }
|
||||
select.append(option);
|
||||
}
|
||||
case "integer":
|
||||
case "float":
|
||||
tr.find('td.values').append(
|
||||
'<span style="display:none;"><input type="text" name="v['+field+'][]" id="values_'+fieldId+'_1" size="6" class="value" /></span>' +
|
||||
' <span style="display:none;"><input type="text" name="v['+field+'][]" id="values_'+fieldId+'_2" size="6" class="value" /></span>'
|
||||
);
|
||||
$('#values_'+fieldId+'_1').val(values[0]);
|
||||
$('#values_'+fieldId+'_2').val(values[1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function toggleFilter(field) {
|
||||
var fieldId = field.replace('.', '_');
|
||||
if ($('#cb_' + fieldId).is(':checked')) {
|
||||
$("#operators_" + fieldId).show().removeAttr('disabled');
|
||||
toggleOperator(field);
|
||||
} else {
|
||||
$("#operators_" + fieldId).hide().attr('disabled', true);
|
||||
enableValues(field, []);
|
||||
}
|
||||
}
|
||||
|
||||
function enableValues(field, indexes) {
|
||||
var fieldId = field.replace('.', '_');
|
||||
$('#tr_'+fieldId+' td.values .value').each(function(index) {
|
||||
if ($.inArray(index, indexes) >= 0) {
|
||||
$(this).removeAttr('disabled');
|
||||
$(this).parents('span').first().show();
|
||||
} else {
|
||||
$(this).val('');
|
||||
$(this).attr('disabled', true);
|
||||
$(this).parents('span').first().hide();
|
||||
}
|
||||
|
||||
if ($(this).hasClass('group')) {
|
||||
$(this).addClass('open');
|
||||
} else {
|
||||
$(this).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function toggleOperator(field) {
|
||||
var fieldId = field.replace('.', '_');
|
||||
var operator = $("#operators_" + fieldId);
|
||||
switch (operator.val()) {
|
||||
case "!*":
|
||||
case "*":
|
||||
case "t":
|
||||
case "ld":
|
||||
case "w":
|
||||
case "lw":
|
||||
case "l2w":
|
||||
case "m":
|
||||
case "lm":
|
||||
case "y":
|
||||
case "o":
|
||||
case "c":
|
||||
enableValues(field, []);
|
||||
break;
|
||||
case "><":
|
||||
enableValues(field, [0,1]);
|
||||
break;
|
||||
case "<t+":
|
||||
case ">t+":
|
||||
case "><t+":
|
||||
case "t+":
|
||||
case ">t-":
|
||||
case "<t-":
|
||||
case "><t-":
|
||||
case "t-":
|
||||
enableValues(field, [2]);
|
||||
break;
|
||||
case "=p":
|
||||
case "=!p":
|
||||
case "!p":
|
||||
enableValues(field, [1]);
|
||||
break;
|
||||
default:
|
||||
enableValues(field, [0]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function toggleMultiSelect(el) {
|
||||
if (el.attr('multiple')) {
|
||||
el.removeAttr('multiple');
|
||||
} else {
|
||||
el.attr('multiple', true);
|
||||
}
|
||||
}
|
||||
|
||||
function submit_query_form(id) {
|
||||
selectAllOptions("selected_columns");
|
||||
$('#'+id).submit();
|
||||
}
|
||||
|
||||
function showTab(name) {
|
||||
$('div#content .tab-content').hide();
|
||||
$('div.tabs a').removeClass('selected');
|
||||
$('#tab-content-' + name).show();
|
||||
$('#tab-' + name).addClass('selected');
|
||||
return false;
|
||||
}
|
||||
|
||||
function moveTabRight(el) {
|
||||
var lis = $(el).parents('div.tabs').first().find('ul').children();
|
||||
var tabsWidth = 0;
|
||||
var i = 0;
|
||||
lis.each(function(){
|
||||
if ($(this).is(':visible')) {
|
||||
tabsWidth += $(this).width() + 6;
|
||||
}
|
||||
});
|
||||
if (tabsWidth < $(el).parents('div.tabs').first().width() - 60) { return; }
|
||||
while (i<lis.length && !lis.eq(i).is(':visible')) { i++; }
|
||||
lis.eq(i).hide();
|
||||
}
|
||||
|
||||
function moveTabLeft(el) {
|
||||
var lis = $(el).parents('div.tabs').first().find('ul').children();
|
||||
var i = 0;
|
||||
while (i<lis.length && !lis.eq(i).is(':visible')) { i++; }
|
||||
if (i>0) {
|
||||
lis.eq(i-1).show();
|
||||
}
|
||||
}
|
||||
|
||||
function displayTabsButtons() {
|
||||
var lis;
|
||||
var tabsWidth = 0;
|
||||
var el;
|
||||
$('div.tabs').each(function() {
|
||||
el = $(this);
|
||||
lis = el.find('ul').children();
|
||||
lis.each(function(){
|
||||
if ($(this).is(':visible')) {
|
||||
tabsWidth += $(this).width() + 6;
|
||||
}
|
||||
});
|
||||
if ((tabsWidth < el.width() - 60) && (lis.first().is(':visible'))) {
|
||||
el.find('div.tabs-buttons').hide();
|
||||
} else {
|
||||
el.find('div.tabs-buttons').show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function setPredecessorFieldsVisibility() {
|
||||
var relationType = $('#relation_relation_type');
|
||||
if (relationType.val() == "precedes" || relationType.val() == "follows") {
|
||||
$('#predecessor_fields').show();
|
||||
} else {
|
||||
$('#predecessor_fields').hide();
|
||||
}
|
||||
}
|
||||
|
||||
function showModal(id, width) {
|
||||
var el = $('#'+id).first();
|
||||
if (el.length === 0 || el.is(':visible')) {return;}
|
||||
var title = el.find('h3.title').text();
|
||||
el.dialog({
|
||||
width: width,
|
||||
modal: true,
|
||||
resizable: false,
|
||||
dialogClass: 'modal',
|
||||
title: title
|
||||
});
|
||||
el.find("input[type=text], input[type=submit]").first().focus();
|
||||
}
|
||||
|
||||
function hideModal(el) {
|
||||
var modal;
|
||||
if (el) {
|
||||
modal = $(el).parents('.ui-dialog-content');
|
||||
} else {
|
||||
modal = $('#ajax-modal');
|
||||
}
|
||||
modal.dialog("close");
|
||||
}
|
||||
|
||||
function submitPreview(url, form, target) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'post',
|
||||
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
|
||||
data: $('#'+form).serialize(),
|
||||
success: function(data){
|
||||
$('#'+target).html(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function collapseScmEntry(id) {
|
||||
$('.'+id).each(function() {
|
||||
if ($(this).hasClass('open')) {
|
||||
collapseScmEntry($(this).attr('id'));
|
||||
}
|
||||
$(this).hide();
|
||||
});
|
||||
$('#'+id).removeClass('open');
|
||||
}
|
||||
|
||||
function expandScmEntry(id) {
|
||||
$('.'+id).each(function() {
|
||||
$(this).show();
|
||||
if ($(this).hasClass('loaded') && !$(this).hasClass('collapsed')) {
|
||||
expandScmEntry($(this).attr('id'));
|
||||
}
|
||||
});
|
||||
$('#'+id).addClass('open');
|
||||
}
|
||||
|
||||
function scmEntryClick(id, url) {
|
||||
el = $('#'+id);
|
||||
if (el.hasClass('open')) {
|
||||
collapseScmEntry(id);
|
||||
el.addClass('collapsed');
|
||||
return false;
|
||||
} else if (el.hasClass('loaded')) {
|
||||
expandScmEntry(id);
|
||||
el.removeClass('collapsed');
|
||||
return false;
|
||||
}
|
||||
if (el.hasClass('loading')) {
|
||||
return false;
|
||||
}
|
||||
el.addClass('loading');
|
||||
$.ajax({
|
||||
url: url,
|
||||
success: function(data){
|
||||
el.after(data);
|
||||
el.addClass('open').addClass('loaded').removeClass('loading');
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
function randomKey(size) {
|
||||
var chars = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
|
||||
var key = '';
|
||||
for (i = 0; i < size; i++) {
|
||||
key += chars[Math.floor(Math.random() * chars.length)];
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
// Can't use Rails' remote select because we need the form data
|
||||
function updateIssueFrom(url) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'post',
|
||||
data: $('#issue-form').serialize()
|
||||
});
|
||||
}
|
||||
|
||||
function updateBulkEditFrom(url) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'post',
|
||||
data: $('#bulk_edit_form').serialize()
|
||||
});
|
||||
}
|
||||
|
||||
function clearMessage(id) {
|
||||
$('#'+id).val("");
|
||||
}
|
||||
|
||||
|
||||
function observeAutocompleteField(fieldId, url, options) {
|
||||
$(document).ready(function() {
|
||||
$('#'+fieldId).autocomplete($.extend({
|
||||
source: url,
|
||||
select: function(e,ui){self.location="/issues/"+ui.item.value;},
|
||||
minLength: 2,
|
||||
search: function(){$('#'+fieldId).addClass('ajax-loading');},
|
||||
response: function(){$('#'+fieldId).removeClass('ajax-loading');
|
||||
}
|
||||
}, options));
|
||||
$('#'+fieldId).addClass('autocomplete');
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function observeSearchfield(fieldId, targetId, url) {
|
||||
$('#'+fieldId).each(function() {
|
||||
var $this = $(this);
|
||||
$this.addClass('autocomplete');
|
||||
$this.attr('data-value-was', $this.val());
|
||||
var check = function() {
|
||||
var val = $this.val();
|
||||
if ($this.attr('data-value-was') != val){
|
||||
$this.attr('data-value-was', val);
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'get',
|
||||
data: {q: $this.val()},
|
||||
success: function(data){ if(targetId) $('#'+targetId).html(data); },
|
||||
beforeSend: function(){ $this.addClass('ajax-loading'); },
|
||||
complete: function(){ $this.removeClass('ajax-loading'); }
|
||||
});
|
||||
}
|
||||
};
|
||||
var reset = function() {
|
||||
if (timer) {
|
||||
clearInterval(timer);
|
||||
timer = setInterval(check, 300);
|
||||
}
|
||||
};
|
||||
var timer = setInterval(check, 300);
|
||||
$this.bind('keyup click mousemove', reset);
|
||||
});
|
||||
}
|
||||
|
||||
function observeProjectModules() {
|
||||
var f = function() {
|
||||
/* Hides trackers and issues custom fields on the new project form when issue_tracking module is disabled */
|
||||
if ($('#project_enabled_module_names_issue_tracking').attr('checked')) {
|
||||
$('#project_trackers').show();
|
||||
}else{
|
||||
$('#project_trackers').hide();
|
||||
}
|
||||
};
|
||||
|
||||
$(window).load(f);
|
||||
$('#project_enabled_module_names_issue_tracking').change(f);
|
||||
}
|
||||
|
||||
function initMyPageSortable(list, url) {
|
||||
$('#list-'+list).sortable({
|
||||
connectWith: '.block-receiver',
|
||||
tolerance: 'pointer',
|
||||
update: function(){
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'post',
|
||||
data: {'blocks': $.map($('#list-'+list).children(), function(el){return $(el).attr('id');})}
|
||||
});
|
||||
}
|
||||
});
|
||||
$("#list-top, #list-left, #list-right").disableSelection();
|
||||
}
|
||||
|
||||
var warnLeavingUnsavedMessage;
|
||||
function warnLeavingUnsaved(message) {
|
||||
warnLeavingUnsavedMessage = message;
|
||||
|
||||
$('form').submit(function(){
|
||||
$('textarea').removeData('changed');
|
||||
});
|
||||
$('textarea').change(function(){
|
||||
$(this).data('changed', 'changed');
|
||||
});
|
||||
window.onbeforeunload = function(){
|
||||
var warn = false;
|
||||
$('textarea').blur().each(function(){
|
||||
if ($(this).data('changed')) {
|
||||
warn = true;
|
||||
}
|
||||
});
|
||||
if (warn) {return warnLeavingUnsavedMessage;}
|
||||
};
|
||||
}
|
||||
|
||||
function setupAjaxIndicator() {
|
||||
|
||||
$('#ajax-indicator').bind('ajaxSend', function(event, xhr, settings) {
|
||||
|
||||
if ($('.ajax-loading').length === 0 && settings.contentType != 'application/octet-stream') {
|
||||
$('#ajax-indicator').show();
|
||||
}
|
||||
});
|
||||
|
||||
$('#ajax-indicator').bind('ajaxStop', function() {
|
||||
$('#ajax-indicator').hide();
|
||||
});
|
||||
}
|
||||
|
||||
function hideOnLoad() {
|
||||
$('.hol').hide();
|
||||
}
|
||||
|
||||
function addFormObserversForDoubleSubmit() {
|
||||
$('form[method=post]').each(function() {
|
||||
if (!$(this).hasClass('multiple-submit')) {
|
||||
$(this).submit(function(form_submission) {
|
||||
if ($(form_submission.target).attr('data-submitted')) {
|
||||
form_submission.preventDefault();
|
||||
} else {
|
||||
$(form_submission.target).attr('data-submitted', true);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function blockEventPropagation(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
function toggleAndSettingWordsVal(parent_widget, text_widget, value){
|
||||
text_widget.val(value)
|
||||
parent_widget.slideToggle(400)
|
||||
}
|
||||
function transpotUrl (scope) {
|
||||
$(scope).each(function(){
|
||||
var tmpContent = $(this).html();
|
||||
tmpContent = tmpContent.replace(/(^|[^\"\'])(http|ftp|mms|rstp|news|https)(\:\/\/[^<\s\+,,]+)/gi,"$1<a href='$2$3' target='_blank'>$2$3<\/a>");
|
||||
// tmpContent = tmpContent.replace(/(^|[^\/])(www\.[^<\s\+,,]+)/gi,"$1<a href='http:\/\/$2' style='color:blue' target='_blank'>$2</a>");
|
||||
$(this).html(tmpContent);
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(setupAjaxIndicator);
|
||||
$(document).ready(hideOnLoad);
|
||||
$(document).ready(addFormObserversForDoubleSubmit);
|
||||
$(document).ready(function(){
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
}
|
||||
)
|
||||
|
||||
function img_thumbnails() {
|
||||
$('.thumbnails a').colorbox({rel:'nofollow'});
|
||||
$('.attachments').find('a').each(function(index, element) {
|
||||
var href_value = $(element).attr('href');
|
||||
if (/\.(jpg|png|gif|bmp)$/.test(href_value)) {
|
||||
$(element).colorbox({rel:'nofollow'});
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
$(document).ready(img_thumbnails);
|
||||
|
||||
function TimeClose(dateText, inst) {
|
||||
if(inst.id=="issue_start_date"){
|
||||
time=dateText;
|
||||
}
|
||||
}
|
||||
var time=new Date();
|
||||
function TimeBeforeShow(input){
|
||||
if(input.id=="issue_due_date"){
|
||||
//var minDate = $(input).datepicker('option', 'minDate');
|
||||
var tempdata=$("#issue_start_date").attr("value");
|
||||
|
||||
$(input).datepicker('option', 'minDate',new Date(tempdata.replace(/-/g, "/")));
|
||||
//$('.selector').datepicker('option', 'minDate', '12/25/2012');
|
||||
}
|
||||
}
|
||||
|
||||
function SetMinValue(){
|
||||
/// var tempdata=$("#issue_start_date").attr("value");
|
||||
//$('.selector').datepicker('option', 'minDate', '12/25/2012');
|
||||
//alert(tempdata);
|
||||
//$("#issue_due_date").datepicker({
|
||||
// minDate: new Date(2014,08,23)
|
||||
//var datepickerOptions=
|
||||
//{dateFormat: 'yy-mm-dd',minDate: new Date(2014,08,23), showOn: 'button', buttonImageOnly: true, buttonImage: "path_to_image('/images/calendar.png')", showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true};
|
||||
//alert( $('.issue_due_date').length);
|
||||
//$('.selector')[1].datepicker('option', 'minDate', new Date(2014, 0 - 8, 23));
|
||||
//$("#issue_due_date").datepicker(datepickerOptions);
|
||||
//$("##{issue_due_date}").datepicker(datepickerOptions);
|
||||
//$("#issue_due_date").datepicker(
|
||||
// {dateFormat: 'yy-mm-dd',minDate: new Date(2014,08,23), showOn: 'button', buttonImageOnly: true, buttonImage: "path_to_image('/images/calendar.png')", showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true}
|
||||
//)
|
||||
//});
|
||||
}
|
||||
function PrecentChange(obj){
|
||||
var _v= obj;
|
||||
if(_v==100)
|
||||
{
|
||||
//var select=$("select[id='issue_status_id']");
|
||||
$("select[id='issue_status_id']").find("option[value='3']").attr("selected","selected");
|
||||
}
|
||||
else if(_v==0)
|
||||
{
|
||||
//alert(1);
|
||||
$("select[id='issue_status_id']").find("option[value='1']").attr("selected","selected");
|
||||
}
|
||||
else if(_v!=100&&_v!=0)
|
||||
{
|
||||
// alert(2);
|
||||
$("select[id='issue_status_id']").find("option[value='2']").attr("selected","selected");
|
||||
}
|
||||
}
|
|
@ -2220,7 +2220,7 @@ button.tab-right {
|
|||
}
|
||||
|
||||
#content .tabs_new ul li a.selected {
|
||||
background-color: rgba(28, 158, 199, 0.68);
|
||||
background-color: #1C9EC7;
|
||||
border: 1px solid #15BCCF;
|
||||
border-bottom: 1px solid #fff;
|
||||
color:#FFF;
|
||||
|
@ -2894,4 +2894,26 @@ div.repos_explain{
|
|||
#membership_project_id option
|
||||
{
|
||||
width: 190px;
|
||||
}
|
||||
|
||||
input[class~='ButtonClolr'],.ButtonColor{
|
||||
|
||||
color: #fffbff !important;
|
||||
padding: 5px;
|
||||
width: auto;
|
||||
height: 24px ;
|
||||
font-family: '微软雅黑',Arial,Helvetica,sans-serif;
|
||||
font-size: 15px;
|
||||
text-align: center;
|
||||
background: #15bccf !important;
|
||||
border: 0px solid #15bccf ;
|
||||
display:inline-block
|
||||
}
|
||||
|
||||
input[class~='m3p10'], .m3p10 {
|
||||
margin: 0;
|
||||
padding: 3px 10px !important;
|
||||
height: 20px;
|
||||
display: inline-block;
|
||||
color: #ffffff;
|
||||
}
|
|
@ -55,7 +55,7 @@ ul.wlist{ float:right; border-bottom:none; height:30px; margin-top:20px;line-hei
|
|||
.c_grey{ color:#999; font-weight:normal;}
|
||||
.dis ul li.wname02 a{ width:200px; font-size:14px; color:#595959; padding:20px 0 0 15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
|
||||
.dis ul li.wmine{ margin:12px 0 0 10px;}
|
||||
.dis ul li.wmine a{ color:#3d7ec2; text-align:center; width:50px; font-weight: bold;}
|
||||
.dis ul li.wmine a{ color:#3d7ec2; text-align:center; width:50px; font-weight: bold;line-height: 1.9;}
|
||||
.wzan{ margin:15px 0 0 25px; width:32px; height:44px;}
|
||||
.wzan a{ display: block;text-align: center;}
|
||||
a.wzan_img{background:url(images/pic_zan.png) 0 -59px no-repeat; display:block; height:31px; width:30px; color:#fff;}
|
||||
|
@ -130,7 +130,7 @@ a:hover.ping_sub{ background:#14a8b9;}
|
|||
.w350{ width:350px;}
|
||||
.w620{ width:580px; height:160px; border:1px solid #CCC !important; padding-left: 3px !important;}
|
||||
.bo{height:26px; border:1px solid #CCC !important; padding: 0 !important;}
|
||||
a.tijiao{ height:28px !important; display:block !important; width:80px !important; color:#fff !important; background:#15bccf !important; text-align:center !important; padding-top:4px !important; float:left !important; margin-right:10px !important;}
|
||||
a.tijiao{ height:28px !important; display:block !important; width:80px !important; color:#fff !important; background:#15bccf !important; text-align:center !important; padding-top:4px !important; float:left !important; margin-right:10px !important;line-height: 1.9;}
|
||||
a:hover.tijiao{ background:#0f99a9 !important;}
|
||||
.members_left{ float:left; width:570px; margin-right:20px;}
|
||||
.members_left{}
|
||||
|
|
|
@ -474,20 +474,6 @@ body {
|
|||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
input[class~='ButtonClolr'],.ButtonColor{
|
||||
|
||||
color: #fffbff !important;
|
||||
padding: 5px;
|
||||
width: auto;
|
||||
height: 24px ;
|
||||
font-family: '微软雅黑',Arial,Helvetica,sans-serif;
|
||||
font-size: 15px;
|
||||
text-align: center;
|
||||
background: #15bccf !important;
|
||||
border: 0px solid #15bccf ;
|
||||
display:inline-block
|
||||
}
|
||||
|
||||
|
||||
input[class~='whiteButton'], .whiteButton {
|
||||
-moz-box-shadow: inset 0px 1px 0px 0px #ffffff;
|
||||
|
@ -537,14 +523,6 @@ input[class~='whiteButton']:active, .whiteButton:active {
|
|||
color: #ffffff;
|
||||
}
|
||||
|
||||
input[class~='m3p10'], .m3p10 {
|
||||
margin: 0;
|
||||
padding: 3px 10px !important;
|
||||
height: 20px;
|
||||
display: inline-block;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
input[class~='h30'], .h30 {
|
||||
height: 30px;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue