I have created recurring having multiple entry in the DB.
I am able to create the recurring events multiple entry can cant able to edit it.
function init() {
scheduler.config.xml_date = "%Y-%m-%d %H:%i";
var day_week = scheduler.date.date_to_str("%d <span class='weeknr' >%W</span>");
scheduler.templates.month_day = function(date) {
if (date.getDay() == 1)
return day_week(date);
return date.getDate();
}
scheduler.config.prevent_cache = true;
var sections = [
<?php foreach ($section as $value) { ?>
{key:<?php echo $value['id'] ?>, label: "<?php echo $value['name'] ?>"},
<?php } ?>
];
scheduler.config.lightbox.sections=[
{name:"description", height:43, map_to:"text", type:"textarea" , focus:true},
{name:"body", height:130, type:"textarea", map_to:"BODY" },
{name:"location", height:43, type:"textarea", map_to:"DETAILS" },
{name:"uid", height:1, type:"textarea", map_to:"PERSNR",default_value:<?php echo $selected; ?> },
{name:"recurring", height:115, type:"recurring", map_to:"rec_type", button:"recurring"},
{name:"time", height:72, type:"time", map_to:"auto"}
]
scheduler.config.first_hour = 0;
scheduler.config.repeat_date = "%d.%m.%Y";
scheduler.config.last_hour = 24
scheduler.config.multi_day = true;
scheduler.config.left_border = true
scheduler.locale.labels.section_location = "<?php echo $translator->translate('Location'); ?>";
scheduler.locale.labels.section_description = "<?php echo $translator->translate('Title'); ?>";
scheduler.locale.labels.section_body = "<?php echo $translator->translate('Description'); ?>";
<?php if ((isset($_SESSION['user']['uid']) && strpos($_SESSION['user']['uid'], ',') !== false) || (!isset($_SESSION['user']['uid']))) { ?>
// scheduler.config.readonly = true;
<?php } ?>
scheduler.templates.workweek_date = scheduler.templates.week_date;
scheduler.templates.workweek_scale_date = scheduler.templates.week_scale_date;
scheduler.locale.labels.unit_tab = "Balken"
scheduler.locale.labels.agenda_tab = "Termine"
scheduler.config.details_on_create = true;
scheduler.config.details_on_dblclick = true;
scheduler.config.icons_select = [];
scheduler.config.scroll_hour = 6;
//scheduler.config.month_date = '%M %Y (%W)';
scheduler.init('scheduler_here',null,"week");
scheduler.createUnitsView({
name: "unit",
property: "PERSNR",
list: sections
});
var temp_counter = 0;
var temp_user = [];
var user_array = JSON.parse('<?php echo json_encode($json); ?>');
var onload = 1;
scheduler.templates.event_class = function(start, end, event) {
for (i in user_array)
{
if (user_array[i].uid == event.PERSNR) {
return user_array[i].color;
}
}
onload = 0;
}
scheduler.load("<?php echo $Dir; ?>/events.php?uid=" + scheduler.uid());
var dp = new dataProcessor("<?php echo $Dir; ?>/events.php");
dp.init(scheduler);
<?php if ($addSeparateEvent) { ?>
dp.attachEvent("onAfterUpdate", function(sid, action, tid, tag)
{
if (action == "inserted")
{
if (scheduler.getEvent(tid).rec_type != '' && scheduler.getEvent(tid).rec_type != 'none')
{
var eventText = scheduler.getEvent(tid).DETAILS;
var eventBODY = scheduler.getEvent(tid).BODY;
var repeatArray = new Array();
var repeatArray = scheduler.getRecDates(tid);
var repeatCount = repeatArray.length;
var new_id = scheduler.uid(); //added
var completed = scheduler.getEvent(tid).completed;
var eventArr = [];
var i;
var title = scheduler.getEvent(tid).text;
//console.log(completed+‘–’);
for (i = 0; i < repeatCount; i++)
{
var start_date = repeatArray[i][‘start_date’];
var end_date = repeatArray[i][‘end_date’];
scheduler.addEvent({
id: new_id, //added
start_date: start_date,
end_date: end_date,
BODY: eventBODY,
DETAILS: eventText,
text: title,
event_length: start_date.valueOf() / 1000,
rec_type: "",
event_pid: tid,
completed: completed
});
// scheduler._add_rec_marker(scheduler.getEvent(new_id),start_date);
// if (new_id!=tid) //added
// dp.setUpdated(new_id, true, "inserted"); //added
new_id = scheduler.uid(); //added
}// render updated event
var timer = setTimeout(function() {
if (i == repeatCount) {
// location.reload();
}
}, 1000);
}
else
return true;
}
})
<?php } ?>
var calendar = scheduler.renderCalendar({
container: "mini_calendar",
date: new Date(),
navigation: true,
handler: function(date, calendar) {
scheduler.setCurrentView(date);
}
});
var monthNames = [
"January", "February", "March",
"April", "May", "June",
"July", "August", "September",
"October", "November", "December"
];
scheduler.linkCalendar(calendar);
scheduler.templates.day_date = function(date) {
return date.getDate() + "." + date.getMonth() + "." + date.getFullYear() + " (KW" + date.getWeek() + ")";
};
scheduler.templates.week_date = function(date1, date2) {
return date1.getDate() + "." + date1.getMonth() + " - " + date2.getDate() + "." + date2.getMonth() + "." + date2.getFullYear() + " (KW " + date1.getWeek() + ")";
};
//alert(scheduler.date.week_start);
// scheduler.attachEvent("onDblClick",chk_auth);
//scheduler.attachEvent("onDblClick",check_save_delete);
scheduler.attachEvent("onClick",chk_auth);
scheduler.attachEvent("onBeforeDrag",chk_auth);
scheduler.attachEvent("onLightbox",hide_ele);
function chk_auth(id){
if (!id) return true;
var ev = this.getEvent(id);
var user_active = "<?= $user ?>";
var user = user_active.split("-");
//alert(user[0]);
// TODO change that in time
// Dangerous Quick and Dirty!!!!!!!!!!
// It works only because there is only one PERSNR in ifsg application
ev.PERSNR = user[0];
if(user[0] == ev.PERSNR){
scheduler.config.icons_select = ['icon_details', 'icon_edit', 'icon_delete'];
$(".dhx_btn_set").show();
$(".dhx_cal_ltext textarea").attr('disabled',false);
$(".dhx_custom_button").css('display','block');
$(".dhx_section_time select").attr('disabled',false);
return true;
}
else{
scheduler.config.icons_select = [];
// $(".dhx_btn_set").hide();
// $(".dhx_cancel_btn_set").show();
// $(".dhx_cal_ltext textarea").attr('disabled','disabled');
//$(".dhx_cal_ltext textarea").attr('disabled','disabled');
return false;
}
}
function hide_ele(id) {
scheduler.form_blocks.textarea.set_value=function(node,value,ev){
node.firstChild.value=value||"";
node.firstChild.disabled = ev.disabled; //or just '= true' to disable all events
var user_active = "<?= $user ?>";
var user = user_active.split("-");
// /** TODO Quick and Dirty, works but is not safe at all **/
ev.PERSNR = user[0];
if (user[0] == ev.PERSNR) {
$(".dhx_btn_set").show();
$(".dhx_cal_ltext textarea").attr('disabled', false);
$(".dhx_custom_button").css('display', 'block');
$(".dhx_section_time select").attr('disabled', false);
}
else {
if (ev.PERSNR == undefined) {
$(".dhx_btn_set").show();
$(".dhx_cal_ltext textarea").attr('disabled', false);
$(".dhx_custom_button").css('display', 'block');
$(".dhx_section_time select").attr('disabled', false);
}
else {
$(".dhx_btn_set").hide();
$(".dhx_cancel_btn_set").show();
$(".dhx_cal_ltext textarea").attr('disabled', true);
$(".dhx_custom_button").css('display', 'none');
$(".dhx_section_time select").attr('disabled', true);
}
}
}
$('.dhx_repeat_left label:first').hide();
$('.dhx_repeat_left label:last').hide();
$('.dhx_repeat_right label:first').hide();
$('.dhx_repeat_right label:last .dhx_repeat_radio').prop("checked", true);
$('.dhx_cal_lsection').each(function() {
if ($(this).html() == 'undefined')
$(this).parent().hide();
});
/* if ($('#magruppe_select').val() != '-1') {
$('.dhx_cal_checkbox').parent().show();
$('select').parent().parent('.dhx_wrap_section').show();
if (str_flag) {
// var str = ‘
Mtarbeiter
<?php echo $thisUser['user_username'] ?>
’;// $(‘.dhx_cal_checkbox’).parent().prepend(str);
str_flag = false;
}
} else {
$(‘.dhx_cal_checkbox’).parent().hide();
$(‘select’).parent().parent(‘.dhx_wrap_section’).hide();
} */
scheduler.setLightboxSize();
}
var str_flag = true;
download_label();
}
Please help me in this
codebase.zip (228 KB)