Joywork/calendar.php

155 lines
7.1 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
if(!$_SESSION['id']) {
header("location:index.php"); die("Доступ запрещён!");
}
require($_SERVER['DOCUMENT_ROOT']."/templates/new-header.php");
$get=clearInputData($_GET);
?>
<script type="text/javascript" src="/js/vue-multiselect.min.js"></script>
<script type="text/javascript" src="/js/vue-simple-progress.min.js"></script>
<script type="text/javascript" src="/js/vuejs-datepicker.min.js"></script>
<script src="/js/locale/translations/ru.js"></script>
<link rel="stylesheet" href="/css/vue-multiselect.min.css">
<link rel="stylesheet" href="/css/funnel.css?v=<?=filemtime($_SERVER['DOCUMENT_ROOT'].'/css/funnel.css')?>">
<link rel="stylesheet" href="/css/all.min.css">
<script type="text/javascript" src="/js/fotorama.js"></script>
<script type="text/javascript" src='/js/moment.min.js'></script>
<script type="text/javascript" src='/js/calendar.js'></script>
<script type="text/javascript" src='/js/calendar-ru.js'></script>
<script type="text/javascript" src="/js/vue-select.js?v=21"></script>
<link rel="stylesheet" href="/css/vue-select.css?v=21">
<script type="text/javascript">
setTimeout(function(){
var elem = document.createElement('script');
elem.type = 'text/javascript';
elem.src = 'https://api-maps.yandex.ru/2.1/?load=package.standard&apikey=898fc684-cdf6-4af8-af57-15e2781d68d1&lang=ru_RU';
document.getElementsByTagName('body')[0].appendChild(elem);
}, 1000);
</script>
<script>
$(document).ready(function() {
$('#tasks_active').change(function(){
getCalendar();
});
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'listWeek,month,agendaWeek,agendaDay'
},
locale: 'ru',
editable: false,
eventLimit: true,
timeFormat: 'H:mm',
titleFormat: 'D MMMM YYYY',
defaultTimedEventDuration: '01:00:00',
height: 'auto',
events: {
url: '/ajax/calendarEvents.php',
type: 'POST',
error: function(data) {
alert('there was an error while fetching events!');
console.log(data.responseText);
}
},
eventClick: function(event) {
if (event.object_id) {
/*if (event.table_id) {
updateEventState(event.table_id);
}*/
openEventsWindow(event.object_id);
}
if (event.client_id) {
if (event.table_id) {
updateClientEventState(event.table_id);
}
if(event.client_id != 0){
openClientEventsWindowNew(event.client_id, '<?=$_SESSION['to_send']?>');
} else if(event.req_id != 0){
openClientEventsWindowNew(0, '<?=$_SESSION['to_send']?>', 0, event.req_id);
}
else
{
openMes(event.table_id);
}
}
if (event.employee_id) {
openEmployeeInfoWindow(event.employee_id);
}
if (event.user_id) {
openUserInfoWindow(event.user_id);
}
}
});
});
function getCalendar(){
var active = 0;
if($('#tasks_active').prop('checked')){
active = 1;
}
var events = {
url: '/ajax/calendarEvents.php',
type: 'POST',
data: {'active': active},
error: function(data) {
//console.log(data.responseText);
alert('there was an error while fetching events!');
}
}
if($('#calendar ').hasClass('fc')){
$('#calendar').fullCalendar('removeEventSource', events);
$('#calendar').fullCalendar('addEventSource', events);
}
}
</script>
<div class="content-right">
<div class="inner">
<div class="main-title">
<h1>Календарь</h1>
</div>
<div class="jw__calendar-container">
<div class="filter-popup-input">
<div class="checkbox">
<input name="tasks_active" id="tasks_active" type="checkbox" value="">
<label for="tasks_active">Только активные</label>
</div>
</div>
<div id='calendar'></div>
<div class="jw__calendar-instructions instructions">
<div class="instructions-inner">
<h2>Справка</h2>
<ul>
<li>
<span class="li-number first"><b>1</b></span>
В календаре представлены все задачи (события), которые были запланированы на определенную дату и время. При клике на задачу откроется окно с объектом, по которому она была создана, и список всех задач и комментариев по нему.
</li>
<li>
<span class="li-number first"><b>2</b></span>
Слева в меню Календарь цифрой показывается количество событий, которые должны были наступить или уже наступили (запланированная дата меньше или равна текущей).
</li>
<li>
<span class="li-number first"><b>3</b></span>
При клике на такое событие оно помечается как просмотренное и будет отображаться серым шрифтом. Соответственно, просмотренные события не учитываются при подсчете количества событий в меню Календарь.
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<?php require($_SERVER['DOCUMENT_ROOT']."/templates/footer.php"); ?>
<script type="text/javascript" src="/js/crm_vue.js?v=<?=filemtime($_SERVER['DOCUMENT_ROOT'].'/js/crm_vue.js')?>"></script>
<script type="text/javascript" src="/js/clients_vue.js?v=<?=filemtime($_SERVER['DOCUMENT_ROOT'].'/js/clients_vue.js')?>"></script>