kreta/KretaWeb/Areas/Orarend/Views/TeremOrarendKereso/Index.cshtml
2024-03-13 00:33:46 +01:00

117 lines
No EOL
5.3 KiB
Text

@*TEREM*@
@using Kreta.Web.Helpers
@using Kreta.Web.Areas.Orarend.Models
@using Kreta.Enums.ManualEnums;
@model OrarendKeresoModel
@section AddSearchPanel {
@using (Html.SearchPanelSideBar("searchForm", null, postSubmitFunction: "OrarendKereso.FormSearch"))
{
@Html.KretaComboBoxFor(x => x.Terem, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetTeremList" }), useGroup: false).AutoBind(true).RenderSearchPanelSideBar()
}
}
@section AddJs {
@Scripts.Render("~/bundles/Calendar")
<script type="text/javascript">
var CalendarHelper = (function () {
var calendarHelper = function () { };
var calendarName = "FullCalendarTerem";
calendarHelper.RefreshCalendar = function () {
var currentCalendarView = $("#" + calendarName).fullCalendar('getView');
var startDate = currentCalendarView.intervalStart._d;
$("#" + calendarName).fullCalendar('destroy');
createCalendar(startDate);
};
function createCalendar(startDate) {
var calendar = new SDAFullCalendar();
var pram = calendar.getParameters();
pram.calendarStartDate = startDate;
pram.calendar = calendarName;
pram.minTime = '@Model.CalendarMinTime';
pram.maxTime = '@Model.CalendarMaxTime';
pram.hetirendek = '@Model.HetirendJson';
pram.naptariHetekHetirend = '@Model.NaptariHetekHetirendJson';
pram.naptariHetekUrl = '@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "CalendarApi", action = "GetTanevHetek" })';
pram.serviceURL = '@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "CalendarApi", action = "GetOrarendKereso" })';
pram.kellTanevRendje = true;
pram.minTime = '@ViewBag.napirendStart';
pram.maxTime = '@ViewBag.napirendEnd';
pram.mouseoverEvent = showTemaTooltip;
pram.mouseoutEvent = hideTemaTooltip;
var teremId = $("#Terem").data('kendoComboBox').value();
if (CommonUtils.isNullOrWhiteSpace(teremId)) {
teremId = -1;
}
pram.teremId = teremId;
calendar.initialize(pram);
// Amikor betöltődik, akkor hívja meg a hétválasztót, hogy kereséskor beálljon a megfelelő hétre
if (typeof setHetValaszto === 'function') {
$("#" + calendarName + "_tanevHetek").data('kendoComboBox').dataSource.one('change', setHetValaszto);
}
}
$(document).ready(function () {
createCalendar("@DateTime.Now.ToString("yyyy-MM-dd")");
});
function showTemaTooltip (data, element) {
var elem = $(element).data('kendoTooltip');
var contentDateResourceString = '@OrarendResource.DateTooltipMsg';
var contentResourceString = '@OrarendResource.TemaTooltipMsg';
var contentMessage = contentDateResourceString.format(data.OraKezdete, data.OraVege);
if (data.oraType == '@((int)CalendarOraTypeEnum.TanitasiOra)' || data.oraType == '@((int)CalendarOraTypeEnum.TanoranKivuliNaplozottFoglalkozas)')
{
contentMessage += '<br />' + contentResourceString.format('@OrarendResource.OraTemaja', data.isElmaradt? " - " : data.Tema );
}
if (data.BejelentettSzamonkeresContent != null) {
contentMessage += ' - ' + data.BejelentettSzamonkeresContent;
}
if((data.oraType == '@((int)CalendarOraTypeEnum.TanitasiOra)' || data.oraType == '@((int)CalendarOraTypeEnum.TanoranKivuliNaplozottFoglalkozas)')
|| (data.oraType == '@((int)CalendarOraTypeEnum.OrarendiOra)' || data.oraType == '@((int)CalendarOraTypeEnum.TanoranKivuliFoglalkozas)') && CommonUtils.isNullOrUndefined(elem)) {
$(element).kendoTooltip({
filter: ".tooltip",
width: 250,
position: "top",
content: contentMessage
}).data("kendoTooltip").show();
}
}
function hideTemaTooltip (data, element) {
if (!CommonUtils.isUndefined(element) && !CommonUtils.isNullOrEmpty(element)){
var kendoTooltipElement = $(element).data('kendoTooltip');
if (!CommonUtils.isUndefined(kendoTooltipElement) && !CommonUtils.isNullOrEmpty(kendoTooltipElement) && CommonUtils.isFunction(kendoTooltipElement.hide)){
kendoTooltipElement.destroy();
}
}
}
return calendarHelper;
})();
</script>
<script type="text/javascript">
var OrarendKereso = (function () {
var orarendKereso = function () { };
orarendKereso.FormSearch = function (formId) {
CalendarHelper.RefreshCalendar();
}
return orarendKereso;
})();
</script>
}
<div id="FullCalendarTerem"></div>