socialforge/public/javascripts/project.js

685 lines
20 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//验证搜索时输入字
function regexName(content) {
var name = $.trim($("#name").val());
if (name.length == 0) {
$("#project_name_span").text(content);
$("#project_name_span").css('color', '#ff0000');
$("#project_name_span").focus();
return false;
}
else {
$("#project_name_span").text("");
return true;
}
}
function submitSerch(content) {
if (regexName(content)) {
$("#project_search_form").submit();
}
}
// 项目描述超过展开
//$(function(){
// $(".subNav").click(function(){
//
// })
//})
function expand_tools_expand(content) {
if (content == "invit") {
$("#expand_tools_expand_invit").toggleClass("currentDd").siblings(".subNav").removeClass("currentDd");
$("#expand_tools_expand_invit").toggleClass("currentDt").siblings(".subNav").removeClass("currentDt");
$("#expand_tools_expand_invit").next(".navContent").slideToggle(500).siblings(".navContent").slideUp(500);
}
else {
// $("#expand_tools_expand").toggleClass("currentDd").siblings(".subNav").removeClass("currentDd");
// $("#expand_tools_expand").toggleClass("currentDt").siblings(".subNav").removeClass("currentDt");
// $("#expand_tools_expand").next(".navContent").slideToggle(500).siblings(".navContent").slideUp(500);
$("#navContent").toggle(500);
}
// 修改数字控制速度, slideUp(500)控制卷起速度
}
// 描述显示更多信息
function show_more_msg() {
$("#course_description").toggleClass("course_description_none");
var information = $("#expend_more_information");
var arrow = $("#arrow");
var val = information.attr("value");
if (val == "show_more") {
$("#expend_more_information").text("收起描述信息");
information.attr("value", "hide_more");
arrow.attr("src", "/images/jiantouup.jpg")
}
else {
$("#expend_more_information").text("展开更多信息");
information.attr("value", "show_more");
arrow.attr("src", "/images/jiantou.jpg")
}
}
function show_more_reply(contentid, id2, id3) {
$(contentid).toggleClass("course_description_none");
var information = $(id2);
var arrow = $(id3);
var val = information.attr("value");
if (val == "show_more") {
$(id2).text("[收起]");
information.attr("value", "hide_more");
information.attr("style", "color:#3ca5c6");
arrow.attr("src", "/images/jiantouup.jpg")
}
else {
$(id2).text("[展开]");
information.attr("value", "show_more");
arrow.attr("src", "/images/jiantou.jpg")
information.attr("style", "color:#0781b4;");
}
}
function show_more_reply1(contentid, id2, id3) {
$(contentid).toggleClass("course_description_none");
var information = $(id2);
var arrow = $(id3);
var val = information.attr("value");
if (val == "show_more") {
$(id2).text("[收起]");
information.attr("value", "hide_more");
information.attr("style", "color:#3ca5c6");
arrow.attr("src", "/images/jiantouup.jpg")
}
else {
$(id2).text("[展开]");
information.attr("value", "show_more");
arrow.attr("src", "/images/jiantou.jpg")
information.attr("style", "color:#0781b4;");
}
}
//项目版本库git帮助文档显示
//function showhelpAndScrollTo(id) {
// $('#' + id).toggle();
// if(cookieget("repositories_visiable") == "true")
// {
// cookiesave("repositories_visiable", false,'','','');
// }
// else
// {
// cookiesave("repositories_visiable", true,'','','');
// }
// var information = $("#showgithelp");
// var val = information.attr("value");
// if(val=="show_help")
// {
// $("#showgithelp").text("收起Git操作指南");
// information.attr("value", "hide_help");
// }
// else
// {
// $("#showgithelp").text("展开Git操作指南");
// information.attr("value", "show_help");
// }
//}
function showhelpAndScrollToMessage(id, id1, count) {
$('#' + id).toggle();
if(cookieget("repositories_visiable") == "true")
{
cookiesave("repositories_visiable", false,'','','');
}
else
{
cookiesave("repositories_visiable", true,'','','');
}
var information = $(id1);
var val = information.attr("value");
if(val=="show_help")
{
$(id1).text("收起回复(" + count + ")" );
information.attr("value", "hide_help");
information.attr("style", "color:#3ca5c6");
}
else
{
$(id1).text("展开回复(" + count + ")");
information.attr("value", "show_help");
information.attr("style", "color:#0781b4;");
}
}
$(function(){
var information = $("#showgithelp");
var val = information.attr("value");
if(cookieget("repositories_visiable") == "true")
{
$('#repos_git_more').hide();
}
else
{
$('#repos_git_more').show();
$("#showgithelp").text("收起Git操作指南");
information.attr("value", "hide_help");
}
});
///////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////项目讨论区
function regexSubject(id) {
var subjectid = "#message_subject" + id ;
var content = $.trim($(subjectid).val());
var message = "#subject_span" + id;
if (content.length == 0) {
$(message).text("主题不能为空");
$(message).css('color', '#ff0000');
return false;
}
else {
$(message).text("填写正确");
$(message).css('color', '#008000');
return true;
}
return false;
}
function regexContent(){
}
function regexContentxx(id) {
var contentid = "#message_content" + id;
var message = "#message_content_span"+ id;
var ps=document.getElementById('message_content' + id).previousElementSibling.children[1].children[0];
alert(ps);
document.getElementById('message_content' + id).value = ps.value;
var content = $.trim($(contentid).val());
alert(content);
if (content.length == 0) {
$(message).text("描述不能为空");
$(message).css('color', '#ff0000');
return false;
}
else {
$(message).text("填写正确");
$(message).css('color', '#008000');
return true;
}
return false;
}
// 项目讨论区编辑和提交
function submitProjectsBoard(id) {
var formid = "#message-form" + id;
if (regexSubject(id) && regexContent(id)) {
$(formid).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() {
project_news_description_editor.sync();
var name = project_news_description_editor.html();
if (name.length == 0) {
$("#description_notice_span").text("描述不能为空");
$("#description_notice_span").css('color', '#ff0000');
$("#description_notice_span").focus();
return false;
}
/*else if (name.length > 10000)
{
$("#description_notice_span").text("描述超过10000个字符");
$("#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();
}
function submitComment()
{
if (newsReplyVerify()) {
comment_editor.sync();
$("#add_comment_form").submit();
}
}
function newsReplyVerify() {
var content = comment_editor.html();
if(comment_editor.isEmpty()) {
$("#add_reply_news").text("评论不能为空");
$("#add_reply_news").css('color', '#ff0000');
$("#news_submit_comment").one('click',function(){
submitComment();
});
return false;
} else {
$("#add_reply_news").text("填写正确");
$("#add_reply_news").css('color', '#008000');
return true;
}
}
//当项目描述长度小于112px时不显示更多按钮
$(function () {
// alert($("#course_description_content").height());
if ($("#course_description_content").height() > 400) {
$("#lg-foot").show();
}
});
//配置项目信息
function course_setting(id) {
//alert(id);
$('#tb_' + id).removeClass().addClass("hwork_hovertab");
$('#tbc_0' + id).removeClass().addClass("dis");
$('#tb_' + (3 - id)).removeClass().addClass("hwork_normaltab");
$('#tbc_0' + (3 - id)).removeClass().addClass("undis");
}
//项目类型(朋友圈、开发组、科研组)
function show_window() {
$('#light').css('display', 'block');
$('#fade').css('display', 'block');
}
function close_window(type) {
$('#light').css('display', 'none');
$('#fade').css('display', 'none');
$("#" + type).attr("checked", "checked");
}
//弹框l
/////////////////////////////////////////////
//项目配置
function project_setting(n) {
for (var i = 1; i < 9; i++) {
if (i == n) {
$("#pro_st_tb_" + i).removeClass().addClass("active");
$("#pro_st_tbc_0" + i).removeClass().addClass("pro_st_dis");
}
else {
$("#pro_st_tb_" + i).removeClass().addClass("pro_st_normaltab");
$("#pro_st_tbc_0" + i).removeClass().addClass("pro_st_undis");
}
}
}
//配置-验证项目名称
function regex_project_name() {
var name = $.trim($("#project_name").val());
if (name.length == 0) {
$("#project_name_notice").show();
return false;
}
else {
$("#project_name_notice").hide();
return true;
}
}
//配置-信息提交
function submit_edit_project(id) {
project_setting_editor.sync();
if (regex_project_name()) {
$("#edit_project_" + id).submit();
}
}
//配置--成员---申请列表--拒绝
function refusal_applied_member() {
$('#new_membership').append("<input name = 'refusal_button' style='display: none;'>");
$('#new_membership').submit();
}
//新闻描述显示更多信息
function news_show_more_des(id) {
$('#news_description_' + id).toggleClass("news_description_none");
}
$(document).ready(function () {
$("#issue_project_id").css("width", "100%");
$("#issue_project_id").css("overflow ", "hidden");
// $(".jstEditor").css("margin-left ","80px");
//issue_project_id
});
function showAndScrollTo(id, focus) {
$('#' + id).show();
if (focus !== null) {
$('#' + focus).focus();
issue_journal_kind_reply.focus();
}
$('html, body').animate({scrollTop: $('#' + id).offset().top}, 400);
}
function quote_issue_journal(){
alert("test");
issue_journal_kind_reply.focus();
issue_journal_kind_reply.cmd.range.setStart(issue_journal_kind_reply.cmd.range.startOffset)
}
/*缺陷完成度决定缺陷状态*/
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");
}
}
// Can't use Rails' remote select because we need the form data
// 根据缺陷状态值改变完成度状态
function updateIssueFrom(url) {
$.ajax({
url: url,
type: 'post',
data: $('#issue-form').serialize()
});
}
// firefox pre标签换行
$(document).ready(function () {
var userAgent = navigator.userAgent.toLowerCase();
var browser = {
version: (userAgent.match(/.+(?:rv|it|ra|ie)[/: ]([d.]+)/) || [])[1],
safari: /webkit/.test(userAgent),
opera: /opera/.test(userAgent),
msie: /msie/.test(userAgent) && !/opera/.test(userAgent),
mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
};
if (browser.mozilla || browser.opera) {
$("pre").addClass("break_word_firefox");
}
else {
$("pre").addClass("break_word");
}
});
//论坛提交
function submitProjectBoard()
{
if(regexSubject()&&regexContent())
{
$("#message-form").submit();
}
}
//cookie记忆html区块 显示/隐藏 的代码 start
$(function(){
var personalized_expand_key = "personalized_expand";
function personalized_init(){
var personalized_map = cookieget(personalized_expand_key);
if(personalized_map!=false){
personalized_map = JSON.parse(personalized_map);
$("*[nhtype='toggle4cookie']").each(function(){
var personalized_id=$(this).data('id');
var val = personalized_map[personalized_id];
if(val!=undefined && val!=$(this).data('val')){
personalized_click($(this),0);
}
});
}
}
function personalized_click(obj,timeout){
var target = $(obj.data('target'));
var oldval = obj.data('val');
var val='';
if(oldval=='expand'){val='retract';}else{val='expand';}
obj.data('val',val);
var personalized_map = cookieget(personalized_expand_key);
if(personalized_map == false){
personalized_map={};
}else{
personalized_map = JSON.parse(personalized_map);
}
var personalized_id=obj.data('id');
personalized_map[personalized_id]=val;
cookiesave(personalized_expand_key,JSON.stringify(personalized_map));
target.toggle(timeout);
}
$("*[nhtype='toggle4cookie']").on('click',function(){
personalized_click($(this),500);
});
personalized_init();
});
//cookie记忆html区块 显示/隐藏 的代码 end
// 新建项目的时候判断是否与我已有的项目重复
function judgeprojectname(){
$('#new_project').validate({
errorPlacement: function(error, element){
alert('error')
},
success: function(label){
alert('ok')
},
onkeyup: false,
rules : {
name:{required : true,
remote : {
url : 'projects/judge_same_projectname',
type:'get',
dataType:'text',
data:{
name : function(){ return $.trim( $("#name").val() ); }
},
dataFilter:function( data ){
if( data=='true')return false; else return true;
}
}
}
},
messages : {
name:{required : "请填写项目名称!",remote:'您已新建过同名项目,请修改项目名称!'}
}
});
}
//用户反馈
function submitProjectFeedback() {
$("#project_feedback_form").submit();
}
// 点击按钮复制功能
function jsCopy(){
var e=document.getElementById("copy_rep_content");
e.select();
document.execCommand("Copy");
}
function jsCopy2(id){
//alert("copy_rep_content2_" + id);
var e=document.getElementById("copy_rep_content2_" + id);
e.select();
document.execCommand("Copy");
}
function zip(){
alert("该功能正在紧张的开发中,我们会争取在最短时间内上线,如若对您工作造成不便敬请谅解!")
}
//取消关联
function cancel_relation(orgId,projectId){
if(confirm("确定取消关联吗?") == false) return;
$.ajax({
url:'/org_projects/'+orgId+"?project_id="+projectId,
type:'DELETE',
success:function(data) {
$.ajax({
url: ' /projects/'+projectId+'/search_public_orgs_not_in_project?hint_flag=true',
type:'get'
});
}
});
}
function issueEditShow(){
$("#issue_detail").hide();
$(".resources ").hide();
$("#issue_edit").show();
$("#project_issue_info_show").hide();
}
function issueDetailShow(){
$("#issue_edit").hide();
$("#issue_detail").show();
$(".resources ").show();
$("#project_issue_info_show").show();
}
//项目讨论区提交
function regexTopicSubject() {
var name = $("#message_subject").val();
if(name.length ==0)
{
$("#subjectmsg").text("标题不能为空");
$("#subjectmsg").css('color','#ff0000');
$("#message_subject").focus();
return false;
}
else if(name.length <= 255)
{
$("#subjectmsg").text("填写正确");
$("#subjectmsg").css('color','#008000');
return true;
}
else
{
$("#subjectmsg").text("标题超过255个字符");
$("#subjectmsg").css('color','#ff0000');
$("#message_subject").focus();
return false;
}
}
function regexTopicDescription()
{
var name = message_content_editor.html();
if(message_content_editor.isEmpty())
{
$("#message_content_span").text("描述不能为空");
$("#message_content_span").css('color','#ff0000');
return false;
}
// else if(name.length >=6000){
// $("#message_content_span").text("描述最多3000个汉字(或6000个英文字符)");
// $("#message_content_span").css('color','#ff0000');
// return false;
// }
else
{
$("#message_content_span").text("填写正确");
$("#message_content_span").css('color','#008000');
return true;
}
}
function submit_topic_project()
{
if(regexTopicSubject() && regexTopicDescription())
{
message_content_editor.sync();
$("#message-form-project").submit();
}
}
function reset_topic(){
}
//查找TAG资源
var clickFunction = null; //单击事件函数
var isdb = false; //是否双击
function search_tag_attachment(url,tag_name,q,course_id,sort)
{
//alert("111");
//clearTimeout(clickFunction);
clickFunction = setTimeout(function() {
search_func()
}, 500);
function search_func(){
if(isdb!= false ) return;
$.get(
url,
{
tag_name: tag_name,
q: q,
course_id:course_id
},
function (data) {
}
);
}
}
function choice_branch(name, branch, source_rev, forked_rev) {
switch (name) {
case "source_project_name" :
var branchOptions = source_rev;
break;
case "forked_project_name" :
var branchOptions = forked_rev;
break;
default:
var branchOptions = source_rev;
break;
}
branch.options.length = 0;
for (var i = 0; i < branchOptions.length; i++) {
branch.options[i] = new Option(branchOptions[i]);
}
}