leguwork_public/events.php
2021-04-02 10:30:40 +08:00

349 lines
8.6 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?
/*
require_once "api.php";
$boardid = r('boardid');
$boards = getboards();
$cards = getmycards();
//we($mycards);
//$lists = getlists($boardid);
//$cards = getcards($boardid,array_keys($lists));
$users = getusers();
$list = array();
foreach($cards as $cid=>$card){
$borderid = $card['boardId'];
if($list[$borderid])continue;
if(!$boards[ $borderid ]['title'])continue;
$list[ $borderid ] = array(
"archived"=>false,
"title"=> $boards[ $borderid ]['title'],
"_id"=> $borderid
);
}
$DATA = array(
'boardid' => $boardid,
'boards' => $boards,
'lists' => $list,
'cards' => $cards,
'users'=>$users
);
*/
?>
<!DOCTYPE html>
<html>
<head>
<? require_once "header.html"; ?>
<link rel="stylesheet" type="text/css" href="css/fullcalendar.css">
<script src='fullcalendarjs/jquery-ui-1.10.2.custom.min.js'></script>
<script src='fullcalendarjs/fullcalendar.min.js'></script>
</head>
<body>
<? require_once "leftbar.html"; ?>
<? require_once "projectheader.html"; ?>
<button id="opener">打开对话框</button>
<div id="dialog" title="事件管理">
<form class=''>
<label>输入事件内容 (<span id="dialog_date"></span>)</label><br/><br/>
<input class='form-control' id='title' autocomplete=off type=text value='' style="line-height:25px;width:450px" />
</form>
</div>
<script>
$( "#dialog" ).dialog({ autoOpen: false,modal: true,
minWidth: 500,
buttons: [
{
text: "保存",
click: function() {
//$( this ).dialog( "close" );
}
},
{
text: "关闭",
click: function() {
$( this ).dialog( "close" );
}
}
]
});
</script>
<div id="wrap">
<div id="calendar" style="margin:15px;">
</div>
</div>
<script type="text/javascript">
var canEdit = (MYINFO && MYINFO.extData && MYINFO.extData.admin)?true:false;
var ORGID = "";
$(function () {
$('.projectheader h1').html('公共事件');
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
calendar = $('#calendar');
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
firstDay: 1,
aspectRatio: 2.4,
editable: false,
timeFormat: 'H:mm',
axisFormat: 'H:mm',
events: function (start, end, callback) {
var _start = Math.round(start.getTime() / 1000);
var _end = Math.round(end.getTime() / 1000);
$.ajax({
url: './?app=api&apiact=getEvents&orgid='+(ORGID||""),
dataType: 'json',
data: {
start: _start,
end: _end,
},
success: function (doc) {
callback(doc);
}
});
},
eventRender: function (event, element) {
//element.html('<i class="eventboardtitle">' + event.boardtitle + "</i> " + event.title.substr(0, 40)).css('background', //fmtColorByBID(event.boardid));
element.html(event.title);
},
editable: canEdit, //canEdit?
eventDrop: function(event,dayDelta,minuteDelta,allDay,revertFunc) {
dict={id:event._id};
dict.start = $.fullCalendar.formatDate(event.start,'yyyy-MM-dd');
dict.end = $.fullCalendar.formatDate(event.end,'yyyy-MM-dd');
console.log(dict);
//return;
//loading.show();
$.post('./?app=api&apiact=movepmcalendar',dict,function(txt){
//loading.hide();
if(txt=='1'){
calendar.fullCalendar('refetchEvents');
}
});
return false;
},
selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
if(!canEdit)return;
dict = {};
console.log('select',start, end, allDay);
dict.start = $.fullCalendar.formatDate(start,'yyyy-MM-dd');
dict.end = $.fullCalendar.formatDate(end,'yyyy-MM-dd');
showEventInfo(dict.start,{
"save" : {
"label" : "保存",
"className" : "btn-sm btn-success",
"callback": function() {
dict.game = $('#game').val();
dict.allday = 1;
dict.title = $('#title').val();
dict.event = $('#event').val();
if(dict.game=='' || dict.title=='')return;
$.post('./?app=api&apiact=newcalendar',dict,function(txt){
if(txt=='1'){
calendar.fullCalendar('refetchEvents');
}
});
$('#dialog').dialog( "close" );
}
} ,
"close" : {
"label" : "关闭",
"className" : "btn-sm",
"callback" : function(){
$('#dialog').dialog( "close" );
}
}
},'new');
calendar.fullCalendar('unselect');
}
,
eventClick: function(calEvent, jsEvent, view) {
if(!canEdit)return;
console.log('calEvent',calEvent,jsEvent,view);
dict={};
/*
$.post('./?app=pmcalendar&act=getEventByid',{id:calEvent.id},function(txt){
var j = JSON.parse(txt);
dict.start = j.start;
dict.end = j.end;
dict.id = calEvent.id;
$('#game').val(j.game);
$('#hour').val(j.shour);
$('#min').val(j.smin);
$('#event').val(j.event);
$('#title').val(j.title);
hourChange($('#hour'));
});
*/
var dstr = $.fullCalendar.formatDate(calEvent.start,'yyyy-MM-dd');
dict.start = dstr;
dict.end = dstr;
dict.id = calEvent._id;
$('#title').val(calEvent.title);
console.log('dict',dict);
showEventInfo(dstr,{
"save" : {
"label" : "保存",
"className" : "btn-sm btn-success",
"callback": function() {
//dict.game = $('#game').val();
//dict.allday = 1;
//dict.event = $('#event').val();
dict.title = $('#title').val();
//if(dict.game=='' || dict.event=='')return;
//loading.show();
$.post('./?app=api&apiact=modipmcalendar',dict,function(txt){
//loading.hide();
if(txt=='1'){
calendar.fullCalendar('refetchEvents');
}
});
$('#dialog').dialog( "close" );
}
} ,
"delete" : {
"label" : "删除事件",
"className" : "btn-sm btn-danger",
"callback": function() {
if(confirm('确认要【删除】这个事件吗?')){
//loading.show();
$.post('./?app=api&apiact=delpmcalendar',{id:calEvent._id},function(txt){
//loading.hide();
if(txt=='1'){
calendar.fullCalendar('refetchEvents');
}
});
}
$('#dialog').dialog( "close" );
}
} ,
"close" : {
"label" : "关闭",
"className" : "btn-sm",
"callback" : function(){
$('#dialog').dialog( "close" );
}
}
},'modify');
}
});
});
/*
var bid2color = {};
function fmtColorByBID(bid) {
if (!bid2color[bid]) bid2color[bid] = getRandomSafeColor();
return bid2color[bid];
}
function getRandomSafeColor() {
var base = ['00', '11', '22', '33', '44', '55', '66', '77', '88', '99', 'aa', 'bb', 'cc'];//基础色代码
var res = '#';
for (var i = 0; i < 3; i++) {
res += base[Math.floor(Math.random() * base.length)];
}
return res;
}
*/
function showEventInfo(start,btns,stype){
$('#dialog_date').html(start);
var nbtns = {};
for(var id in btns){
nbtns[ btns[id].label ] = btns[id].callback;
}
$('#dialog').dialog('option', 'buttons', nbtns);
$( "#dialog" ).dialog( "open" );
/*
var form = $("<form class=''><label>选择游戏和事件类型 ("+ start +")</label><div class='space-1'></div></form>");
form.append('&nbsp<select id="event"><option value="打包">打包</option><option value="版本更新">版本更新</option><option value="修复外网">修复外网</option><option value="上线">上线</option><option value="节点">节点</option></select>');
form.append("<div class='space-5'></div><label for='form-field-mask-1'>事件内容</label><input class='form-control' id='title' autocomplete=off type=text value='' /> ");
var div = bootbox.dialog({
message: form,
buttons: btns
});
form.on('submit', function(){
//calEvent.title = form.find("input[type=text]").val();
//calendar.fullCalendar('updateEvent', calEvent);
div.modal("hide");
return false;
});
*/
}
$('#selectorg').on('change',function(){
ORGID = $(this).val();
console.log(ORGID);
calendar.fullCalendar('refetchEvents');
});
</script>
<style>
.fc-week .fc-sun{
color: red;
}
.fc-week .fc-sat{
color: red;
}
</style>
</body>
</html>