').addClass('timelinesphere');
parentDiv.prepend(timeline);
parentDiv.prepend(sphere);
}
var curTime = new Date();
var curCalView = jQuery(container).fullCalendar('getView');
var orarendView = curCalView.opt('orarendView');
if (orarendView) {
timeline.hide();
sphere.hide();
return;
}
if (
curCalView.intervalStart < curTime &&
curCalView.intervalEnd > curTime
) {
timeline.show();
sphere.show();
} else {
timeline.hide();
sphere.hide();
return;
}
var kezd = curCalView.opt('minTime').split(':');
var vege = curCalView.opt('maxTime').split(':');
var kezdmasodperc = kezd[0] * 1 * 60 * 60 + kezd[1] * 60;
var vegemasodperc = vege[0] * 1 * 60 * 60 + vege[1] * 60;
var curSeconds =
curTime.getHours() * 60 * 60 +
curTime.getMinutes() * 60 +
curTime.getSeconds() -
kezdmasodperc;
if (curSeconds > vegemasodperc - kezdmasodperc || curSeconds < 0) {
timeline.hide();
sphere.hide();
return;
}
var secondintable = vegemasodperc - kezdmasodperc;
var percentOfDay = curSeconds / secondintable; //86400; //24 * 60 * 60 = 86400, # of seconds in a day
var topLoc = Math.floor(parentDiv.height() * percentOfDay);
timeline.css('top', topLoc - 1 + 'px');
sphere.css('top', topLoc - 1 - 5 + 'px');
if (
curCalView.name == 'agendaWeek' ||
curCalView.name == 'workWeekWithSaturday' ||
curCalView.name == 'workWeek'
) {
//week view, don't want the timeline to go the whole way across
var dayCol = jQuery('.fc-today:visible', container);
if (dayCol.length > 0) {
var left = dayCol.position().left + 1;
var width = dayCol.width() - 2;
timeline.css({
left: left + 'px',
width: width + 'px'
});
sphere.css({
left: left - 7 + 'px'
});
} else {
timeline.hide();
sphere.hide();
}
}
}
function setHetirendekTitleFormat(calendar, naptariHetekHetirend) {
var view = $('#' + calendar).fullCalendar('getView');
if (view.name != 'initView') {
var hetirend = '';
if (CommonUtils.isNullOrEmpty(naptariHetekHetirend)) {
return;
}
var clientEvents = $('#' + calendar).fullCalendar('clientEvents');
var parsedHetirendek = CommonUtils.JSONparse(
naptariHetekHetirend.replace(/\"/g, '"')
);
var isFirstWeek = true;
var curr = new Date(view.start); // get start date
var first = curr.getDate() - curr.getDay() + 1; //megkapjuk a het elso napjat, de +1 mivel nem vasarnap a het elso napja hanem hetfo
var firstday = new Date(curr.setDate(first));
for (index in parsedHetirendek) {
var viewStartDate = firstday.toDateString();
var currentDatum = new Date(
parsedHetirendek[index].Datum
).toDateString();
if (viewStartDate == currentDatum) {
hetirend = parsedHetirendek[index].Hetirend_DNAME;
isFirstWeek = false;
break; // Ha megvan a hetirend, akkor ne keressük tovább.
}
}
var hetirendtitle = '';
if (isFirstWeek) {
hetirend = parsedHetirendek[0].Hetirend_DNAME;
}
hetirendtitle = ' (' + hetirend + ')';
var customTitleFormat = '';
switch (view.name) {
case 'agendaWeek':
case 'workWeekWithSaturday':
case 'workWeek':
case 'agendaDay':
customTitleFormat = hetirendtitle;
break;
}
// The title isn't rendered until after this callback, so we need to use a timeout.
window.setTimeout(function () {
if (
$('#' + calendar).find(
'.fc-toolbar > div > h2:contains("' +
customTitleFormat.replace('é', 'é') +
'")'
).length == 0
) {
if (
$('#' + calendar).find(
'.fc-toolbar > div > h2:contains("("):contains(")")'
).length == 0
) {
$('#' + calendar)
.find('.fc-toolbar > div > h2')
.append(customTitleFormat);
}
}
}, 0);
}
}
function setNaptariHetek(calendar, url) {
if ($('#' + calendar + '_tanevHetek').length == 0) {
$('#' + calendar)
.find('.fc-toolbar > .fc-left')
.append(
"
"
);
var script = document.createElement('script');
script.type = 'text/javascript';
script.text += "$('#" + calendar + '_tanevHetek' + "').kendoComboBox({";
script.text += " placeholder: 'Hétválasztó...',";
script.text += " dataTextField: 'Text',";
script.text += " dataValueField: 'Value',";
script.text += ' dataSource: {';
script.text += ' transport: {';
script.text += ' read: {';
script.text += " dataType: 'json',";
script.text += " url: '" + url + "',";
script.text += ' }';
script.text += ' }';
script.text += ' },';
script.text += ' change: function() {';
script.text += ' var value = this.value();';
script.text += ' if(value.length == 10) {';
script.text += ' var timestamp = Date.parse(value);';
script.text += ' if(!isNaN(timestamp)) {';
script.text +=
" $('#" +
calendar +
"').fullCalendar( 'gotoDate', value ) ";
script.text += ' }';
script.text += ' }';
script.text += ' }';
script.text += '});';
script.text += 'function setHetValaszto() {';
script.text +=
" var startDate = new Date($('#" +
calendar +
"').fullCalendar('getView').start);";
script.text +=
" var endDate = new Date($('#" +
calendar +
"').fullCalendar('getView').end);";
script.text +=
" var newDate = startDate.getFullYear() + '-' + ('0' + (startDate.getMonth() + 1)).slice(-2) + '-' + ('0' + startDate.getDate()).slice(-2);";
script.text +=
" var newEndDate = endDate.getFullYear() + '-' + ('0' + (endDate.getMonth() + 1)).slice(-2) + '-' + ('0' + endDate.getDate()).slice(-2);";
script.text +=
" var elements = $('#" +
calendar +
'_tanevHetek' +
"').data('kendoComboBox').dataSource.data();";
script.text += " var weekStartDate = '';";
script.text += ' $.each(elements, function (i, v) {';
script.text +=
' if (v.Value == newDate || (v.Value >= newDate && v.Value < newEndDate)) {';
script.text += ' weekStartDate = v.Value;';
script.text += ' }';
script.text += ' });';
script.text +=
" $('#" +
calendar +
'_tanevHetek' +
"').data('kendoComboBox').value(weekStartDate);";
script.text += '};';
script.text +=
"$('.fc-prev-button, .fc-next-button, .fc-today-button').click(function() {";
script.text += ' setHetValaszto();';
script.text +=
" $('#" + calendar + '_tanevHetek' + "').trigger('change')";
script.text += '});';
script.text += 'setTimeout(function() { setHetValaszto(); },0);';
$('head').append(script);
}
}
function appendFullScreenBtn(calendar) {
if ($('#' + calendar + '_fullScreenBtn').length == 0) {
$('#' + calendar)
.find('.fc-toolbar > .fc-right')
.append(
"
"
);
var script = document.createElement('script');
script.type = 'text/javascript';
script.text +=
"$('#" + calendar + '_fullScreenBtn' + "').click(function() {";
script.text += " if($(this).hasClass('nfs')) {";
script.text += " $(this).removeClass('nfs').addClass('fs');";
script.text += " $('.main-header').addClass('displayNone');";
script.text +=
" $('#layout_navigationBar').addClass('displayNone');";
script.text += ' } else {';
script.text += " $(this).removeClass('fs').addClass('nfs');";
script.text += " $('.main-header').removeClass('displayNone');";
script.text +=
" $('#layout_navigationBar').removeClass('displayNone');";
script.text += ' }';
script.text += '});';
$('head').append(script);
}
}
function appendRogzitettOrak(calendarId) {
var rogzitettOrakContainerName = calendarId + '-rogiztett-orak-container';
if ($('#' + rogzitettOrakContainerName).length === 0) {
var tooltipText = $('
')
.append(
"A munkaidő adminisztrációs segéd megjeleníti a 'Tanórák', a 'Napirend' nézetben és az adminisztrációs rendszerben (első érték); illetve a 'Kötött munkaidő neveléssel-oktatással le nem kötött része' nézetben (második érték) rögzített időelszámolást."
)
.css({
visibility: 'hidden',
'background-color': '#f4f4f4',
color: '#5c6a79',
'text-align': 'center',
'border-radius': '6px',
padding: '5px',
position: 'absolute',
'z-index': '10',
border: '1px solid silver'
});
var tooltipImg = $('
![]()
').css({
height: '10px',
padding: '0 10px 0 0',
'background-image':
'url(../Content/content/images/Information_icon.png)',
'background-size': '10px 10px',
'background-repeat': 'no-repeat'
});
var tooltipContainer = $('
')
.append(tooltipImg)
.append(tooltipText)
.css('padding', '5px 5px 0 0')
.hover(
function () {
$(this).children('span').css('visibility', 'visible');
},
function () {
$(this).children('span').css('visibility', 'hidden');
}
);
var kotottMunkaidoBox = $('
')
.attr('id', 'kotott-munkaido-box')
.css({
border: '1px solid',
padding: '5px 20px',
'border-radius': '25px 0px 0px 25px'
})
.append('00:00');
var nemKotottMunkaidoBox = $('
')
.attr('id', 'nem-kotott-munkaido-box')
.css({
border: '1px solid',
padding: '5px 20px',
'border-radius': '0px 25px 25px 0px',
'margin-left': '-1px'
})
.append('00:00');
var rogzitettOrakContainer = $('
')
.attr('id', rogzitettOrakContainerName)
.css('display', 'flex')
.append(tooltipContainer)
.append(kotottMunkaidoBox)
.append(nemKotottMunkaidoBox);
rogzitettOrakContainer.insertBefore(
$('#' + calendarId)
.find('.fc-toolbar > .fc-right')
.children()
.first()
);
}
}
function getRogzitettOrak(url, tanarId, start) {
if (tanarId > 0) {
var data = {
tanarId: tanarId,
start: start.format('YYYY-MM-DD')
};
AjaxHelper.DoGet(url, data, getRogzitettOrakSuccessCallBack);
}
}
function getRogzitettOrakSuccessCallBack(result) {
$('div[id$=rogiztett-orak-container] > div[id=kotott-munkaido-box]').each(
function (i, e) {
e.innerText = result.KotottMunkaido;
}
);
$(
'div[id$=rogiztett-orak-container] > div[id=nem-kotott-munkaido-box]'
).each(function (i, e) {
e.innerText = result.NemKotottMunkaido;
});
}
sDAFullCalendar.changeHetek = function (value) {
alert(value);
};
return sDAFullCalendar;
};
var CalendarDateTimeChangeHelper = (function () {
var calendarDateTimeChangeHelper = function () {};
calendarDateTimeChangeHelper.dateTimeFormat = 'YYYY-MM-DD HH:mm:ss';
calendarDateTimeChangeHelper.dateFormat = 'YYYY-MM-DD';
calendarDateTimeChangeHelper.dateTimeFormatWithoutSetTimezone =
'YYYY-MM-DDTHH:mm[Z]';
calendarDateTimeChangeHelper.changeCalendarModelOrakezdeteVegeToUtc =
function (calendarModel) {
if (!calendarModel.isDateAlreadyChangedToUtc) {
if (!CommonUtils.isNullOrUndefined(calendarModel.start)) {
calendarModel.start =
calendarDateTimeChangeHelper.getUtcDateTimeFromLocalDateTime(
calendarModel.start
); //utcStart
calendarModel.end =
calendarDateTimeChangeHelper.getUtcDateTimeFromLocalDateTime(
calendarModel.end
); //utcEnd
} else {
calendarModel.Start =
calendarDateTimeChangeHelper.getUtcDateTimeFromLocalDateTime(
calendarModel.Start
); //utcStart
calendarModel.End =
calendarDateTimeChangeHelper.getUtcDateTimeFromLocalDateTime(
calendarModel.End
); //utcEnd
}
calendarModel.isDateAlreadyChangedToUtc = true;
}
return calendarModel;
};
calendarDateTimeChangeHelper.getUtcTimeFromDateAndTime = function (
date,
time
) {
var datum;
if (CommonUtils.isNullOrUndefined(date)) {
datum = moment(new Date()).format(
calendarDateTimeChangeHelper.dateFormat
);
} else {
var parameterDateFormat =
date.indexOf('-') > -1
? calendarDateTimeChangeHelper.dateFormat
: 'YYYY. MM. DD.';
datum = moment(date, parameterDateFormat).format(
calendarDateTimeChangeHelper.dateFormat
);
}
var splittedTime = '';
if (time.length > 8) {
splittedTime = time.substr(time.length - 8);
} else {
splittedTime = moment(time, 'HH:mm:ss').format('LT'); // LT -> AM/PM szerepel a time-nál
}
var idopont = moment(
datum + splittedTime,
calendarDateTimeChangeHelper.dateTimeFormat
);
var utcIdopont = moment(idopont)
.utc()
.format(calendarDateTimeChangeHelper.dateTimeFormat);
var utcTime = moment(utcIdopont).format('HH:mm');
return utcTime;
};
calendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc = function (
formName
) {
var form = $('#' + formName);
var data = form.toObject();
if (!CommonUtils.isNullOrUndefined(data.Kezdet)) {
data.Kezdet = calendarDateTimeChangeHelper.getUtcTimeFromDateAndTime(
data.Datum,
data.Kezdet
);
data.Veg = calendarDateTimeChangeHelper.getUtcTimeFromDateAndTime(
data.Datum,
data.Veg
);
} else if (!CommonUtils.isNullOrUndefined(data.OraKezdete)) {
data.OraKezdete = calendarDateTimeChangeHelper.getUtcTimeFromDateAndTime(
data.Datum,
data.OraKezdete
);
data.OraVege = calendarDateTimeChangeHelper.getUtcTimeFromDateAndTime(
data.Datum,
data.OraVege
);
} else if (!CommonUtils.isNullOrUndefined(data.FogadoOraKezdete)) {
data.FogadoOraKezdete =
calendarDateTimeChangeHelper.getUtcTimeFromDateAndTime(
data.FogadoOraDatuma,
data.FogadoOraKezdete
);
data.FogadoOraVege =
calendarDateTimeChangeHelper.getUtcTimeFromDateAndTime(
data.FogadoOraDatuma,
data.FogadoOraVege
);
}
return data;
};
calendarDateTimeChangeHelper.getUtcDateTimeFromLocalDateTime = function (
dateTime
) {
var localDateTime = moment(
dateTime,
calendarDateTimeChangeHelper.dateTimeFormatWithoutSetTimezone
).format(calendarDateTimeChangeHelper.dateTimeFormat);
var utcDateTime = moment(localDateTime)
.utc()
.format(calendarDateTimeChangeHelper.dateTimeFormat); //utcStart
return utcDateTime;
};
calendarDateTimeChangeHelper.setDatum = function (controlId, datetime) {
$('#' + controlId)
.data('kendoDatePicker')
.value(datetime);
$('#' + controlId)
.focus()
.focusout();
$('#' + controlId)
.data('kendoDatePicker')
.trigger('change');
};
return calendarDateTimeChangeHelper;
})();