Select Git revision
SimpleDriver.class
project_display.js 14.13 KiB
// --这是用来展示在个人主页上的项目
//全局变量:当前登录用户的id
var strcookie = document.cookie;
var userIdStr = strcookie.split(";")[0];
var userId = userIdStr.split("=")[1];
//全局变量: 选中用户的id,可能为0
var url = window.location.href;
var urlArray = url.split("id=");
var otheruserId = 0;
if(urlArray.length > 0) otheruserId = url.split("id=")[1].split("#")[0];
//加载当前登录用户的project列表
function getMyProjectList(){
$("#filterTagBtn").html("");
$("#myProjectList").html("");
$.ajax({
type: 'post',
url: 'DisplayServlet',
async: false,
data: {
"type": "queryAll",
"userId": userId
},
dataType: 'json',
success: function(data){
console.log(data);
if(data.length == 0){
$("#myProjectList").append('<div class="me-empty">\n' +
' <div class="tips">\n' +
' <p>You haven\'t created any project item.</p>\n' +
' <p>Feel free to add new project.</p>\n' +
' </div>\n' +
' <div class="add-file">\n' +
' <a href="admin.html">\n' +
' <i class="fa fa-plus fa-3x"></i>\n' +
' </a>\n' +
' </div>\n' +
' </div>');
} else{
loadMyTagFilterBtn();
for(x in data){
loadMyProject(data[x]);
loadMyProjectTags(data[x].projectid, userId);
}
}
},
error : function(msg) {
alert("get projects failed");
console.log(msg)
}
});
}
//加载当前登录用户通过标签筛选后的列表
function loadMyProjectByTag(projectTag){
$("#myProjectList").html("");
$.ajax({
type: 'post',
url: 'DisplayServlet',
async: false,
data: {
"type": "queryProjectByTag",
"userId": userId,
"tag": projectTag
},
dataType: 'json',
success: function(data){
console.log(data);
for(x in data){
loadMyProject(data[x]);
loadMyProjectTags(data[x].projectid, userId);
}
},
error : function(msg) {
alert("get my projects by tag failed");
console.log(msg)
}
});
}
//加载(自己的)project到列表
function loadMyProject(data){
$("#myProjectList").append('<tr>\n' +
' <td class="proj-title">'+data.projectname+'</td>\n' +
' <td class="proj-tag" id="project-tag'+data.projectid+'">\n' +
' </td>\n' +
' <td class="proj-de">\n' +
' <a href="person-project.html?id='+data.projectid+'">\n' +
' <button class="request">Details</button>\n' +
' </a>\n' +
' </td>\n' +
' </tr>');
}
//加载(已批准或公开)project到列表
function loadApprovedProject(data){
$("#myProjectList").append('<tr>\n' +
' <td class="proj-title">'+data.projectname+'</td>\n' +
' <td class="proj-tag" id="project-tag'+data.projectid+'">\n' +
' </td>\n' +
' <td class="proj-de">\n' +
' <a href="other-person-project.html?id='+data.projectid+'">\n' +
' <button class="request">Details</button>\n' +
' </a>\n' +
' </td>\n' +
' </tr>');
}
//加载(需请求)project到列表
function loadRequestedProject(data){
$("#myProjectList").append('<tr>\n' +
' <td class="proj-title">'+data.projectname+'</td>\n' +
' <td class="proj-tag" id="project-tag'+data.projectid+'">\n' +
' </td>\n' +
' <td class="proj-de">\n' +
' <a href="#">\n' +
' <button type="button" data-toggle="modal" data-target="#send-req'+data.projectid+'">Details</button>\n' +
' </a>\n' +
' </td>\n' +
' </tr>');
}
//加载未登录时的列表(主要为了点击details按钮进行登录提示)
function loadUnloginProject(data){
$("#myProjectList").append('<tr>\n' +
' <td class="proj-title">'+data.projectname+'</td>\n' +
' <td class="proj-tag" id="project-tag'+data.projectid+'">\n' +
' </td>\n' +
' <td class="proj-de">\n' +
' <a href="#">\n' +
' <button class="request" onclick="confirmLogin()">Details</button>\n' +
' </a>\n' +
' </td>\n' +
' </tr>');
}
function confirmLogin(){
$.confirm({
title: 'You need login to see details',
content: 'Are You Sure Going Back And Login?\n',
icon: 'fa fa-warning',
theme: 'white',
buttons: {
ok: {
text: "ok",
btnClass: 'btn-primary',
keys: ['enter'],
action: function() {
window.location.href="index.html";
}
},
cancel: function(){
console.log('the user clicked cancel');
}
}
});
}
//获取指定project的所有tag
function loadMyProjectTags(projectId, user){
$.ajax({
type: 'post',
url: '/query.tag',
async: false,
data: {
"type": "queryOneProjectTag",
"userid": user,
"projectId": projectId
},
dataType: 'json',
success: function(data){
//console.log(data);
for(x in data){
//$("#tr-filter"+projectId).attr("class", "col-sm-4 portfolio-item filter "+data[x].projecttag);
$("#project-tag"+projectId).append('<span class="label-tag">'+data[x].projecttag+'</span>');
}
},
error : function(msg) {
alert("get tags failed");
console.log(msg)
}
});
}
//获取我的所有筛选tag按钮
function loadMyTagFilterBtn(){
$("#filterTagBtn").append('<button class="btn btn-general btn-green filter-b" onclick="getMyProjectList()">All</button>');
$.ajax({
type: 'post',
url: '/query.tag',
async: false,
data: {
"type": "queryAllTag",
"userid": userId
},
dataType: 'json',
success: function(data){
console.log(data);
for(x in data){
$("#filterTagBtn").append('<button class="btn btn-general btn-green filter-b" onclick="loadMyProjectByTag(\''+data[x].projecttag+'\')">'+data[x].projecttag+'</button>');
}
},
error : function(msg) {
alert("get my tag filter button failed");
console.log(msg)
}
});
}
//获取别人所有权限为2(公开)和1(申请可见)的project,其中对于类型为1的项目根据是否已批准来加载details按钮
function getOthersProjectList(){
// var url = window.location.href;
// var otheruserId = url.split("id=")[1];
$("#filterTagBtn").html("");
$("#myProjectList").html("");
$.ajax({
type: 'post',
url: 'DisplayServlet',
async: false,
data: {
"type": "queryAll",
"userId": otheruserId
},
dataType: 'json',
success: function(data){
console.log(data);
if(data.length == 0){
$("#myProjectList").append('<div class="empty">\n' +
' <span class="tip">Sorry, this user didn\'t create any project item.</span>\n' +
' </div>');
} else{
loadOthersTagFilterBtn();
if(strcookie==null || strcookie.length==0){
for(x in data){
var visibility = data[x].visibility;
if(visibility==2 || visibility==1){
loadUnloginProject(data[x]);
loadMyProjectTags(data[x].projectid, otheruserId);
}
}
} else{
for(x in data){
var visibility = data[x].visibility;
if(visibility == 2){
loadApprovedProject(data[x]);
loadMyProjectTags(data[x].projectid, otheruserId);
} else if(visibility == 1){
if(containsCurrentUser(data[x].visibleto)){
loadApprovedProject(data[x]);
} else{
loadRequestedProject(data[x]);
loadRequestModal(data[x]);
}
loadMyProjectTags(data[x].projectid, otheruserId);
}
}
}
}
},
error : function(msg) {
alert("get other projects failed");
console.log(msg)
}
});
}
function containsCurrentUser(visibleTo){
var users = visibleTo.split(",");
for(var i=0; i<users.length; i++){
if(parseInt(users[i]) == parseInt(userId)){
return true;
}
}
return false;
}
function loadOthersTagFilterBtn() {
$("#filterTagBtn").append('<button class="btn btn-general btn-green filter-b" onclick="getOthersProjectList()">All</button>');
$.ajax({
type: 'post',
url: '/query.tag',
async: false,
data: {
"type": "getOnesAllVisibleTag",
"userid": otheruserId
},
dataType: 'json',
success: function(data){
console.log(data);
for(x in data){
$("#filterTagBtn").append('<button class="btn btn-general btn-green filter-b" onclick="loadOtherProjectByTag(\''+data[x].projecttag+'\')">'+data[x].projecttag+'</button>');
}
},
error : function(msg) {
alert("get other tag filter button failed");
console.log(msg)
}
});
}
//加载别的用户通过标签筛选后的列表
function loadOtherProjectByTag(projectTag){
$("#myProjectList").html("");
$.ajax({
type: 'post',
url: 'DisplayServlet',
async: false,
data: {
"type": "queryProjectByTag",
"userId": otheruserId,
"tag": projectTag
},
dataType: 'json',
success: function(data){
console.log(data);
for(x in data){
var visibility = data[x].visibility;
if(visibility == 2){
loadApprovedProject(data[x]);
loadMyProjectTags(data[x].projectid, otheruserId);
} else if(visibility == 1){
if(containsCurrentUser(data[x].visibleto)){
loadApprovedProject(data[x]);
} else{
loadRequestedProject(data[x]);
loadRequestModal(data[x]);
}
loadMyProjectTags(data[x].projectid, otheruserId);
}
}
},
error : function(msg) {
alert("get other projects by tag failed");
console.log(msg)
}
});
}
function loadRequestModal(data){
$("#requestModal").append('<div class="modal fade" id="send-req'+data.projectid+'" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel1">\n' +
'<div class="modal-dialog" role="document">\n' +
' <div class="modal-content">\n' +
' <div class="modal-header">\n' +
' <h4 class="modal-title" id="exampleModalLabel1"> Project Request</h4>\n' +
' <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>\n' +
' </div>\n' +
' <div class="modal-body">\n' +
' <div class="line">\n' +
' <h5>Project Name: </h5>\n' +
' <span>'+data.projectname+'</span>\n' +
' </div>\n' +
' <div class="line">\n' +
' <h5>Project Description: </h5>\n' +
' <span>'+data.projectdescription+'</span>\n' +
' </div>\n' +
' <div class="remind">\n' +
' <p>This is a private project.</p>\n' +
' <p>If you want to see the whole content, please fill in the request below.</p>\n' +
' </div>\n' +
' <form>\n' +
' <div class="form-group">\n' +
' <label>Apply Reason:</label>\n' +
' <textarea class="form-control" id="reasonInput'+data.projectid+'"></textarea>\n' +
' </div>\n' +
' </form>\n' +
' </div>\n' +
' <div class="modal-footer">\n' +
' <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>\n' +
' <button type="button" class="btn btn-primary" onclick="sendRequest('+data.projectid+','+userId+','+data.userid+')">Submit</button>\n' +
' </div>\n' +
' </div>\n' +
' </div></div>');
}