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

402 lines
No EOL
18 KiB
Text

@using Kreta.Web.Areas.Orarend.Models;
@using Kreta.Enums.ManualEnums;
@using Kreta.Web.Utils
@model CsoportVezetoOrarendModel
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
var formName = "TanariOraForm";
}
@section AddCss {
@Styles.Render(Constants.General.TanuloErtekelesCSS)
@Styles.Render(Constants.General.NaplozasAutoFeljegyzesCSS)
}
@Html.KretaTabStripAjax("TanariOrarendTabStrip", Model.TabList, "TanariOrarend.OnTabStripActivate", "TanariOrarend.OnTabStripSelect")
@section AddSearchPanel {
@using (Html.SearchPanelSideBar("searchForm", null, postSubmitFunction: "TanariOrarend.FormSearch"))
{
@Html.KretaComboBoxFor(x => x.CsoportId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetCsoportListByCsoportVezeto" }), useGroup: true).AutoBind(true).RenderSearchPanelSideBar()
}
}
@section AddJs {
@Scripts.Render("~/bundles/Calendar")
<script type="text/javascript">
//Index
var TanariOrarend = (function () {
var tanariOrarend = function () { };
var calendars = {
Tanorak: "FullCalendar-0",
TanoranKivuliFoglalkozasok: "FullCalendar-1",
}
var calendarContainer = {
activeTabIndex: null,
view: null,
element: null
}
tanariOrarend.GetCalendars = function () {
return calendars;
}
tanariOrarend.GetCalendarContainer = function () {
return calendarContainer;
}
tanariOrarend.SetCalendarContainerActiveTabIndex = function (value) {
calendarContainer.activeTabIndex = value;
}
tanariOrarend.SetCalendarContainerView = function (value) {
calendarContainer.view = value;
}
tanariOrarend.SetCalendarContainerElement = function (value) {
calendarContainer.element = value;
}
tanariOrarend.CreateCalendar = function (calendarName) {
CreateCalendar(calendarName);
}
tanariOrarend.OnTabStripSelect = function(e) {
showLoadingIndicator();
TanariOrarend.SetCalendarContainerActiveTabIndex(e.sender.select().index()); // A régi tab indexe, amelyikről ellép
var fullCalendarId = "FullCalendar-" + TanariOrarend.GetCalendarContainer().activeTabIndex;
var view = $('#' + fullCalendarId).fullCalendar( 'getView' );
TanariOrarend.SetCalendarContainerView(view);
}
tanariOrarend.OnTabStripActivate = function(e) {
TanariOrarend.SetCalendarContainerActiveTabIndex(e.sender.select().index()); // Az új tab indexe, amelyikre lép
var fullCalendarId = "FullCalendar-" + TanariOrarend.GetCalendarContainer().activeTabIndex;
TanariOrarend.CreateCalendar(fullCalendarId);
}
tanariOrarend.FormSearch = function () {
var calendarId = "FullCalendar-" + calendarContainer.activeTabIndex;
var calendar = $("#" + calendarId);
var view = calendar.fullCalendar( 'getView' );
calendarContainer.view = view;
TanariOrarend.CreateCalendar(calendarId);
}
var views = {
1: "agendaDay",
5: "workWeek",
6: "workWeekWithSaturday",
7: "agendaWeek"
};
function CreateCalendar(calendarName) {
$('#' + calendarName).fullCalendar( 'destroy' );
var calendar = new SDAFullCalendar();
var pram = calendar.getParameters();
pram.calendar = calendarName;
pram.minTime = '@Model.CalendarMinTime';
pram.maxTime = '@Model.CalendarMaxTime';
pram.hetirendek = '@Model.HetirendJson';
pram.naptariHetekHetirend = '@Model.NaptariHetekHetirendJson';
pram.selectHelper = true;
pram.selectOverlapAllowed = false;
pram.naptariHetekUrl = '@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "CalendarApi", action = "GetTanevHetek" })';
pram.defaultView = views[@((int)ProfileUtils.HaladasiNaploNezetTipusa)];
if (calendarContainer.view)
{
pram.defaultView = calendarContainer.view.name;
pram.calendarStartDate = calendarContainer.view.intervalStart.format();
}
else {
pram.calendarStartDate = "@DateTime.Now.ToString("yyyy-MM-dd")";
}
var csoportId = $("#CsoportId").data('kendoComboBox').value();
if (csoportId == "") {
csoportId = -1;
}
switch (calendarName)
{
case calendars.Tanorak:
pram.serviceURL = '@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "CalendarApi", action = "GetCsoportVezetoTanorak" })';
pram.osztalyCsoportId = csoportId;
pram.clickEvent = Tanorak.CalendarClickEvent;
pram.kellCsengetesiRendMegjelenites = true;
pram.kellTanoranKivuliFoglalkozasok = false;
pram.kellTevekenysegek = false;
pram.kellTanevRendje = true;
pram.isNewEventEnabled = false;
pram.minTime = '@Model.CsengetesiRendMinTime';
pram.maxTime = '@Model.CsengetesiRendMaxTime';
pram.orarendView = true;
pram.mouseoverEvent = showTemaTooltip;
pram.mouseoutEvent = hideTemaTooltip;
break;
case calendars.TanoranKivuliFoglalkozasok:
pram.serviceURL = '@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "CalendarApi", action = "GetCsoportVezetoTanorankivuliFoglalkozasok" })';
pram.osztalyCsoportId = csoportId;
pram.eventType = 0; // EventTypeEnum.UjOraFelvitele
pram.clickEvent = Foglalkozasok.CalendarClickEvent;
pram.selectEvent = Foglalkozasok.CalendarSelectEvent;
pram.kellCsengetesiRendMegjelenites = false;
pram.kellTanoranKivuliFoglalkozasok = true;
pram.kellTevekenysegek = false;
pram.kellTanevRendje = true;
pram.szuresTanevRendjeAlapjan = true;
pram.minTime = '@ViewBag.napirendStart';
pram.maxTime = '@ViewBag.napirendEnd';
pram.mouseoverEvent = showTemaTooltip;
pram.mouseoutEvent = hideTemaTooltip;
break;
}
calendar.initialize(pram);
hideLoadingIndicator();
}
function showLoadingIndicator() {
AjaxHelper.ShowIndicator();
}
function hideLoadingIndicator() {
AjaxHelper.HideIndicator();
}
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.replace('&', "&amp;").replace('<', "&lt;").replace('>', "&gt;").replace('"', "&quot;").replace('\'', "&#039;"));
}
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) && !data._allDay){
var kendoTooltipElement = $(element).data('kendoTooltip');
if (!CommonUtils.isUndefined(kendoTooltipElement) && !CommonUtils.isNullOrEmpty(kendoTooltipElement) && CommonUtils.isFunction(kendoTooltipElement.hide)){
kendoTooltipElement.destroy();
}
}
}
return tanariOrarend;
})();
</script>
<script>
//Tanorak
var Tanorak = (function () {
var tanorak = function () { };
var clickURL = '@Url.Action("TanorakOrarendEvent", "TanariOrarend", new { area = "Orarend" })';
var getNemNaplozottTanorakCountUrl = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "TanariOrarendApi", action = "GetNemNaplozottTanorakCount" })";
tanorak.tanoraMuveletWindow = "tanoraMuveletWindow";
tanorak.CalendarClickEvent = function (e) {
window.CalendarModel = e
if (e.oraType == 5) { /*TanevRendjeEsemeny*/ return; }
var json = {};
json.CalendarModel = window.CalendarModel;
AjaxHelper.DoPost(clickURL, json, popUpNaplozasWindow);
};
tanorak.closeTanoraMuveletWindow = function () {
KretaWindowHelper.destroyWindow(tanorak.tanoraMuveletWindow);
};
tanorak.popUpNaplozasWindow = function(data) {
popUpNaplozasWindow(data);
}
tanorak.FeedBackOKNaplozas = function() {
Tanorak.closeTanoraMuveletWindow();
TanariOrarend.FormSearch("searchForm");
AjaxHelper.DoGet(getNemNaplozottTanorakCountUrl, {}, tanorak.updateNemNapolzottTanorakCount);
}
tanorak.updateNemNapolzottTanorakCount = function (data) {
$("#NemNaplozottTanorakCount").attr('data-badge',data);
}
function popUpNaplozasWindow(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.content = data;
var modal = KretaWindowHelper.createWindow(tanorak.tanoraMuveletWindow, config);
KretaWindowHelper.openWindow(modal, true);
$("#" + tanorak.tanoraMuveletWindow).data("kendoWindow").refresh();
}
return tanorak;
})();
</script>
<script>
//Foglalkozasok
var Foglalkozasok = (function(){
var foglalkozasok = function(){};
var eventURL = '@Url.Action("TanorakOrarendEvent", "TanariOrarend", new { area = "Orarend" })';
foglalkozasok.CalendarClickEvent = function (e) {
window.CalendarModel = e;
var json = {};
json.CalendarModel = e;
if (e.oraType == 3 || e.oraType == 8) { /*TanoranKivuliFoglalkozas || TanoranKivuliNaplózottFoglalkozas*/
e.isPast = (new Date(e.start).setHours(0, 0, 0, 0) <= new Date(@DateTime.Now.Year , @DateTime.Now.Month - 1 , @DateTime.Now.Day));
if(e.isPast) {
AjaxHelper.DoPost(eventURL, json, Tanorak.popUpNaplozasWindow);
}
else {
return;
}
} else { return; }
};
return foglalkozasok;
})();
</script>
<script>
var SzamonkeresElorejelzesHelper = (function () {
var szamonkeresElorejelzesHelper = function () { };
var formName = "SzamonkeresElorejelzesForm";
var gridName = "SzamonkeresElorejelzesGrid";
var validateUrl = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "SzamonkeresElorejelzesApi", action = "ValidateSzamonkeresElorejelzes" })";
var saveUrl = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "SzamonkeresElorejelzesApi", action = "SaveSzamonkeresElorejelzes" })";
var deleteUrl = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "SzamonkeresElorejelzesApi", action = "DeleteSzamonkeresElorejelzes" })";
var getmodlistandcomboitemscolorUrl = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "SzamonkeresElorejelzesApi", action = "GetModListAndComboItemColor" })";
szamonkeresElorejelzesHelper.onSzamonkeresModListDataBound = function (e) {
SetSzamonkeresModListColor();
}
function SetSzamonkeresModListColor() {
var form = $('#' + formName);
var data = form.toObject();
AjaxHelper.DoGet(getmodlistandcomboitemscolorUrl, { OraGroupId: data.OraGroupId, OsztalyCsoportId: data.OsztalyCsoportId, Datum: data.Datum, }, GetModListAndComboItemColorCallback);
}
function GetModListAndComboItemColorCallback(result) {
var ertekelesModIdArray = result.ErtekelesModList;
var kendocombo = $('#ErtekelesModId').data('kendoComboBox');
$(kendocombo.items()).each(function (index, item) {
var datatitem = kendocombo.dataItem(index);
if (ertekelesModIdArray.includes(Number(datatitem.Value))) {
switch (result.color) {
case "green":
default:
$(item).css('background-color', '#74A942');
break;
case "orange":
$(item).css('background-color', '#E39F0B');
break;
case "red":
$(item).css('background-color', '#A94442');
break;
}
}
});
}
szamonkeresElorejelzesHelper.isTorolheto = function (rowData) {
return rowData.Torolheto_BOOL;
}
szamonkeresElorejelzesHelper.deleteConfirm = function (rowData) {
var postData = { id: rowData.ID };
KretaWindowHelper.confirmWindow("@(CommonResource.BiztosanTorli)", "@(OrarendResource.BiztosanTorliASzamonkeresElorejelzest)", deleteSzamonkeresElorejelzes, postData);
}
function deleteSzamonkeresElorejelzes(postData) {
AjaxHelper.DoPostQuery(deleteUrl, null, postData, deleteSuccessCallBack, deleteErrorCallBack);
}
function deleteSuccessCallBack() {
KretaGridHelper.refreshGrid(gridName);
TanariOrarend.FormSearch("searchForm");
}
function deleteErrorCallBack(data) {
KretaWindowHelper.feedbackWindow("@(CommonResource.Hiba)", data.responseJSON.Message, true);
}
szamonkeresElorejelzesHelper.Save = function () {
var form = $('#' + formName);
var data = form.toObject();
AjaxHelper.DoValidationPost(validateUrl, formName, data, SzamonkeresElorejelzesHelper.ValidateCallback);
//AjaxHelper.DoValidationPost(saveUrl, formName, data, SaveFeedBackOk,SaveFeedBackError);
}
szamonkeresElorejelzesHelper.ValidateCallback = function (postData) {
var form = $('#' + formName);
var data = form.toObject();
if (postData.Valid) {
AjaxHelper.DoValidationPost(saveUrl, formName, data, SaveFeedBackOk);
} else {
KretaWindowHelper.confirmWindow("@(CommonResource.Figyelmeztetes)", postData.Text, confirmWindowOK);
}
}
szamonkeresElorejelzesHelper.setSaveButton = function () {
var gridName = "SzamonkeresElorejelzesGrid";
var dataSource = KretaGridHelper.getKendoGridData(gridName).dataSource.data();
var disablesavebutton = false;
$.each(dataSource, function (index, value) {
if (value.Torolheto_BOOL) {
disablesavebutton = true;
}
});
var button = $("#SzamonkeresElorejelzesSave").data("kendoButton");
if (disablesavebutton) {
button.enable(false);
}
else {
button.enable(true);
}
SetSzamonkeresModListColor();
}
function confirmWindowOK() {
var form = $('#' + formName);
var data = form.toObject();
AjaxHelper.DoValidationPost(saveUrl, formName, data, SaveFeedBackOk);
}
function SaveFeedBackOk() {
KretaWindowHelper.successFeedBackWindow(KretaWindowHelper.destroyAllWindow);
TanariOrarend.FormSearch("searchForm");
}
function SaveFeedBackError() {
KretaGridHelper.refreshGrid(gridName);
}
return szamonkeresElorejelzesHelper;
})();
</script>
}