836 lines
36 KiB
Text
836 lines
36 KiB
Text
@using Kreta.Framework
|
|
@using Kreta.Web.Helpers
|
|
@using Kreta.Resources
|
|
@using Kreta.Web.Areas.Orarend.Models
|
|
@using Kreta.Enums.ManualEnums
|
|
@model AdminOsztalyOrarendModel
|
|
|
|
@section AddSearchPanel {
|
|
@using (Html.SearchPanelSideBar("searchForm", null, postSubmitFunction: "Orarend.FormSearch"))
|
|
{
|
|
if(Model.IsFromSzervezet)
|
|
{
|
|
@Html.KretaComboBoxFor(x => x.Osztaly, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetLathatoDualisCsoportok" }), useGroup: false, isSingleElementSet: false).AutoBind(true).RenderSearchPanelSideBar()
|
|
}
|
|
else
|
|
{
|
|
@Html.KretaComboBoxFor(x => x.Osztaly, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetOsztalyCsoportListByEvfolyam" }), useGroup: true).AutoBind(true).RenderSearchPanelSideBar()
|
|
}
|
|
}
|
|
}
|
|
|
|
@Html.HiddenFor(x => x.CopyOrarendJson)
|
|
|
|
@Html.KretaTabStripAjax("AdminTanariOrarendTabStrip", Model.TabList, "Orarend.OnTabStripActivate", "Orarend.OnTabStripSelect")
|
|
|
|
@section AddCss {
|
|
@Styles.Render(Constants.General.JqueryContextCss)
|
|
}
|
|
|
|
@section AddJs {
|
|
@Scripts.Render("~/bundles/Calendar")
|
|
@Scripts.Render(Constants.General.JqueryContextJs)
|
|
|
|
<script type="text/javascript">
|
|
$(function () {
|
|
window.copyUrl = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "CalendarApi", action = "CopyOrarendiElem" })";
|
|
window.preValidationUrl = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "CalendarApi", action = "PreValidationOnCopyOrarendiElem" })";
|
|
var calendarNames = Orarend.GetCalendarContainer().calendars;
|
|
|
|
$.contextMenu({
|
|
selector: `#${calendarNames.OrarendiOrak} .fc-time-grid-event`,
|
|
callback: function (key, options) {
|
|
|
|
if (key == "copy") {
|
|
$(this).trigger({
|
|
type: 'mousedown',
|
|
which: 888
|
|
});
|
|
}
|
|
else if (key == "paste") {
|
|
$(this).trigger({
|
|
type: 'mousedown',
|
|
which: 999
|
|
});
|
|
}
|
|
},
|
|
items: {
|
|
"copy": {
|
|
name: "Másolás", icon: "copy"
|
|
},
|
|
"paste": {
|
|
name: "Beillesztés", icon: "paste",
|
|
disabled: function (key, opt) {
|
|
return (typeof calendarCopyData === 'undefined') || calendarCopyData.oraType !== 1 || calendarCopyData.orarendViewStart === null || calendarCopyData.orarendViewEnd == null;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
$.contextMenu({
|
|
selector: `#${calendarNames.TanoranKivuliFoglalkozasok} .fc-time-grid-event,.fc-time-grid-container`,
|
|
hideOnSecondTrigger: true,
|
|
callback: function (key, options) {
|
|
if (key == "copy") {
|
|
|
|
$(this).trigger({
|
|
type: 'mousedown',
|
|
which: 888
|
|
});
|
|
}
|
|
else if (key == "paste") {
|
|
var calendar = new SDAFullCalendar();
|
|
var json = {};
|
|
json.copyId = window.calendarCopyData.id;
|
|
json.dateFrom = CommonUtils.SetUtcDateTimeFromDatetime(window.calendarCopyData.orarendViewStart);
|
|
json.dateTo = CommonUtils.SetUtcDateTimeFromDatetime(window.calendarCopyData.orarendViewEnd);
|
|
json.oraszam = window.calendarCopyData.hanyadikora;
|
|
$('#CopyOrarendJson').val(JSON.stringify(json));
|
|
calendar.pasteNapirendCalendarData(window.calendarCopyData, calendarNames.TanoranKivuliFoglalkozasok);
|
|
}
|
|
},
|
|
items: {
|
|
"copy": {
|
|
name: "Másolás", icon: "copy",
|
|
disabled: function (key, opt) {
|
|
return !this.context.classList.contains('fc-time-grid-event');
|
|
}
|
|
},
|
|
"paste": {
|
|
name: "Beillesztés", icon: "paste",
|
|
disabled: function (key, opt) {
|
|
return (typeof calendarCopyData === 'undefined') || calendarCopyData.oraType !== 3;
|
|
}
|
|
}
|
|
},
|
|
autoHide: true
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<script type="text/javascript">
|
|
var Orarend = (function () {
|
|
var orarend = function () { };
|
|
|
|
var calendars = {
|
|
OrarendiOrak: "FullCalendar-0",
|
|
TanoranKivuliFoglalkozasok: "FullCalendar-1",
|
|
}
|
|
|
|
var calendarContainer = {
|
|
activeTabIndex: null,
|
|
osztalyId: -1,
|
|
view: null,
|
|
calendars
|
|
}
|
|
|
|
orarend.successOnPrevalidation = function () {
|
|
var json = CommonUtils.JSONparse($('#CopyOrarendJson').val());
|
|
AjaxHelper.DoPost(window.copyUrl, json, Orarend.successCopy);
|
|
};
|
|
|
|
orarend.successCopy = function () {
|
|
Orarend.FormSearch("searchForm");
|
|
}
|
|
|
|
orarend.GetCalendarContainer = function () {
|
|
return calendarContainer;
|
|
}
|
|
|
|
orarend.SetCalendarContainerActiveTabIndex = function (value) {
|
|
calendarContainer.activeTabIndex = value;
|
|
}
|
|
|
|
orarend.SetCalendarContainerView = function (value) {
|
|
calendarContainer.view = value;
|
|
}
|
|
|
|
orarend.OnTabStripSelect = function (e) {
|
|
showLoadingIndicator();
|
|
Orarend.SetCalendarContainerActiveTabIndex(e.sender.select().index()); // A régi tab indexe, amelyikről ellép
|
|
var fullCalendarId = "FullCalendar-" + Orarend.GetCalendarContainer().activeTabIndex;
|
|
var view = $("#" + fullCalendarId).fullCalendar("getView");
|
|
Orarend.SetCalendarContainerView(view);
|
|
}
|
|
|
|
orarend.OnTabStripActivate = function (e) {
|
|
Orarend.SetCalendarContainerActiveTabIndex(e.sender.select().index()); // Az új tab indexe, amelyikre lép
|
|
var fullCalendarId = "FullCalendar-" + Orarend.GetCalendarContainer().activeTabIndex;
|
|
Orarend.CreateCalendar(fullCalendarId);
|
|
}
|
|
|
|
orarend.FormSearch = function (formId) {
|
|
var formContent = $("#" + formId).serializeObject();
|
|
calendarContainer.osztalyId = formContent.Osztaly;
|
|
|
|
var calendarId = "FullCalendar-" + calendarContainer.activeTabIndex;
|
|
var calendar = $("#" + calendarId);
|
|
var view = calendar.fullCalendar("getView");
|
|
calendarContainer.view = view;
|
|
|
|
Orarend.CreateCalendar(calendarId);
|
|
}
|
|
|
|
orarend.closeNaplozasWindow = function () {
|
|
KretaWindowHelper.destroyWindow("naplozasWindow");
|
|
};
|
|
|
|
orarend.CreateCalendar = function (calendarName) {
|
|
CreateCalendar(calendarName, calendarContainer.osztalyId);
|
|
}
|
|
|
|
function CreateCalendar(calendarName, osztalyId) {
|
|
$("#" + calendarName).fullCalendar("destroy");
|
|
if (osztalyId == "") {
|
|
osztalyId = -1;
|
|
}
|
|
|
|
var calendar = new SDAFullCalendar();
|
|
var pram = calendar.getParameters();
|
|
pram.calendar = calendarName;
|
|
pram.osztalyCsoportId = osztalyId;
|
|
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" })';
|
|
|
|
if (calendarContainer.view) {
|
|
pram.defaultView = calendarContainer.view.name;
|
|
pram.calendarStartDate = calendarContainer.view.intervalStart.format();
|
|
} else {
|
|
pram.calendarStartDate = "@DateTime.Now.ToString("yyyy-MM-dd")";
|
|
}
|
|
|
|
switch (calendarName) {
|
|
case calendars.OrarendiOrak:
|
|
pram.serviceURL = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "CalendarApi", action = "GetAdminOsztalyOrarendOrarendiOrak", isFromSzervezet = Model.IsFromSzervezet })";
|
|
pram.clickEvent = OrarendiOrak.CalendarClickEvent;
|
|
pram.isNewEventEnabled = false;
|
|
pram.kellCsengetesiRendMegjelenites = true;
|
|
pram.minTime = '@Model.CsengetesiRendMinTime';
|
|
pram.maxTime = '@Model.CsengetesiRendMaxTime';
|
|
pram.orarendView = true;
|
|
pram.mouseoverEvent = showTooltip;
|
|
pram.mouseoutEvent = hideTooltip;
|
|
break;
|
|
case calendars.TanoranKivuliFoglalkozasok:
|
|
pram.serviceURL = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "CalendarApi", action = "GetAdminOsztalyOrarendTanoranKivuliFoglalkozasok", isFromSzervezet = Model.IsFromSzervezet })";
|
|
pram.selectEvent = Foglalkozasok.CalendarSelectEvent;
|
|
pram.clickEvent = Foglalkozasok.CalendarClickEvent;
|
|
pram.isNewEventEnabled = true;
|
|
pram.eventType = @Html.Raw((int)EventTypeEnum.UjOraFelvitele);
|
|
pram.minTime = '@ViewBag.napirendStart';
|
|
pram.maxTime = '@ViewBag.napirendEnd';
|
|
pram.mouseoverEvent = showTooltip;
|
|
pram.mouseoutEvent = hideTooltip;
|
|
break;
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
hideLoadingIndicator();
|
|
|
|
if (calendarName === calendars.TanoranKivuliFoglalkozasok) {
|
|
var napirendView = $(`#${calendars.TanoranKivuliFoglalkozasok}`).fullCalendar('getView');
|
|
var napirendContainer = document.querySelector(`#${calendars.TanoranKivuliFoglalkozasok} .fc-time-grid-container`);
|
|
napirendContainer.addEventListener('contextmenu', function () { paste(napirendView) });
|
|
}
|
|
}
|
|
|
|
function paste(napirendView) {
|
|
if (typeof window.calendarCopyData !== 'undefined' && window.calendarCopyData.oraType === 3) {
|
|
napirendView.coordMap.build();
|
|
var rightClickTarget = napirendView.coordMap.getCell(event.clientX, event.clientY);
|
|
var start = Date.parse(rightClickTarget.start._d);
|
|
var duration = Date.parse(window.calendarCopyData.end._d) - Date.parse(window.calendarCopyData.start._d);
|
|
var end = start + duration;
|
|
window.calendarCopyData.orarendViewStart = moment.utc(start).format("YYYY-MM-DDTHH:mm:ss");
|
|
window.calendarCopyData.orarendViewEnd = moment.utc(end).format("YYYY-MM-DDTHH:mm:ss");
|
|
}
|
|
}
|
|
|
|
function showTooltip(data, element) {
|
|
var elem = $(element).data('kendoTooltip');
|
|
var contentMsgResource = '@OrarendResource.DateTooltipMsg';
|
|
var contentMsg = contentMsgResource.format(data.OraErvenyessegKezdete, data.OraErvenyessegVege);
|
|
|
|
if ((data.oraType == '@((int)CalendarOraTypeEnum.OrarendiOra)' || data.oraType == '@((int)CalendarOraTypeEnum.TanoranKivuliFoglalkozas)') && CommonUtils.isNullOrUndefined(elem)) {
|
|
$(element).kendoTooltip({
|
|
width: 250,
|
|
position: "top",
|
|
content: contentMsg
|
|
}).data("kendoTooltip").show();
|
|
}
|
|
}
|
|
|
|
function hideTooltip(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();
|
|
}
|
|
}
|
|
}
|
|
|
|
function showLoadingIndicator() {
|
|
AjaxHelper.ShowIndicator();
|
|
}
|
|
|
|
function hideLoadingIndicator() {
|
|
AjaxHelper.HideIndicator();
|
|
}
|
|
|
|
return orarend;
|
|
})();
|
|
</script>
|
|
|
|
<script type="text/javascript">
|
|
var OrarendiOrak = (function () {
|
|
var orarendiOrak = function () { };
|
|
var datePickerChanged = false;
|
|
var tanarChanged = false;
|
|
var osztalyChanged = false;
|
|
var tantargyChanged = false;
|
|
|
|
var formName = "OrarendiOraForm";
|
|
|
|
var clickNewURL = "@Url.Action("OpenNewOrarendiOraPopUp", Model.ControllerName, new { area = "Orarend" })";
|
|
var clickModifyURL = "@Url.Action("OpenModifyOrarendiOraPopUp", Model.ControllerName, new { area = "Orarend" })";
|
|
var preValidationOrarendiOraURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "PreValidationOrarendiOra" })";
|
|
var saveOrarendiOraURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "SaveOrarendiOra" })";
|
|
var deleteOrarendiOraURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "DeleteOrarendiOra" })";
|
|
var titleURL = "@Url.Action("GetOrarendiOraWindowTitle", Model.ControllerName, new { area = "Orarend" })";
|
|
var getFoglalkozasURL = "@Url.HttpRouteUrl("ActionApi", new { controller = "ComboBoxHelperApi", action = "GetFoglalkozasDataById" })";
|
|
var hasHazifeladatOrHelyettesitesOrSzamonkeresForOrarendiOraURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "HasHazifeladatOrHelyettesitesOrSzamonkeresForOrarendiOra" })";
|
|
var hasHazifeladatOrHelyettesitesOrSzamonkeresNotInIdoszakURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "HasHazifeladatOrHelyettesitesOrSzamonkeresNotInIdoszak" })";
|
|
|
|
orarendiOrak.CalendarClickEvent = function (e) {
|
|
window.CalendarModel = e;
|
|
|
|
if (e.oraType == 5) {
|
|
return; /*TanevRendjeEsemeny*/
|
|
}
|
|
if (e.eventType == 0) {
|
|
AjaxHelper.DoPost(titleURL, e, setWindowTitle);
|
|
|
|
var json = {};
|
|
json.CalendarModel = e;
|
|
json.OsztalyId = $("#searchForm #Osztaly").val();
|
|
|
|
AjaxHelper.DoPost(clickNewURL, json, popUpNewOrarendiOraWindow);
|
|
} else {
|
|
AjaxHelper.DoPost(titleURL, e, setWindowTitle);
|
|
AjaxHelper.DoPost(clickModifyURL, e, popUpModifyOrarendiOraWindow);
|
|
}
|
|
};
|
|
|
|
orarendiOrak.newOrarendiOraCancel = function () {
|
|
KretaWindowHelper.destroyWindow("newOrarendiOraWindow");
|
|
}
|
|
|
|
orarendiOrak.OrarendhezSave = function () {
|
|
saveOrarendiOra(@((int)OraModositasiIdoszakTipus.TeljesIdoszak));
|
|
}
|
|
|
|
orarendiOrak.EttolHettolSave = function () {
|
|
saveOrarendiOra(@((int)OraModositasiIdoszakTipus.AdottNaptol));
|
|
}
|
|
|
|
orarendiOrak.EddigHetigSave = function () {
|
|
saveOrarendiOra(@((int)OraModositasiIdoszakTipus.AdottNapig));
|
|
}
|
|
|
|
orarendiOrak.EgyOraHozzaadasaSave = function () {
|
|
if (CommonUtils.parseBool("@Model.IsFromSzervezet")) {
|
|
CalendarDateTimeChangeHelper.setDatum('OraErvenyessegKezdete', $("#ValasztottDatum").val());
|
|
CalendarDateTimeChangeHelper.setDatum('OraErvenyessegVege', $("#ValasztottDatum").val());
|
|
}
|
|
saveOrarendiOra(@((int)OraModositasiIdoszakTipus.EgyOra));
|
|
}
|
|
|
|
function saveOrarendiOra(modositasiIdoszakTipus) {
|
|
$("#OrarendiOraForm #ModositasiIdoszakTipus").val(modositasiIdoszakTipus);
|
|
$("#OrarendiOraForm #JSHelperNev").val("@Kreta.Web.Constants.JSHelperName.OrarendiOra");
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
AjaxHelper.DoValidationPost(preValidationOrarendiOraURL, formName, data, OrarendiOrak.Save);
|
|
}
|
|
|
|
orarendiOrak.Save = function () {
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
AjaxHelper.DoValidationPost(saveOrarendiOraURL, formName, data, orarendiOraSaveResponseOk);
|
|
}
|
|
|
|
orarendiOrak.modCancel = function () {
|
|
KretaWindowHelper.destroyWindow("modifyOrarendiOraWindow");
|
|
}
|
|
|
|
orarendiOrak.modOrarendiOraDeleteConfirmWindow = function () {
|
|
deleteConfirm(modOrarendiOraDelete);
|
|
}
|
|
|
|
function modOrarendiOraDelete() {
|
|
deleteOrarendiOra(@((int)OraModositasiIdoszakTipus.TeljesIdoszak));
|
|
}
|
|
|
|
orarendiOrak.modOrarendiOraDeleteFromConfirmWindow = function () {
|
|
deleteConfirm(modOrarendiOraDeleteFrom);
|
|
}
|
|
|
|
function modOrarendiOraDeleteFrom() {
|
|
deleteOrarendiOra(@((int)OraModositasiIdoszakTipus.AdottNaptol));
|
|
}
|
|
|
|
var modOrarendiOraDeleteTo = function () {
|
|
deleteOrarendiOra(@((int)OraModositasiIdoszakTipus.AdottNapig));
|
|
}
|
|
|
|
orarendiOrak.modOrarendiOraDeleteToConfirmWindow = function () {
|
|
deleteConfirm(modOrarendiOraDeleteTo);
|
|
}
|
|
|
|
orarendiOrak.modOrarendiOraDeleteDayConfirmWindow = function () {
|
|
deleteConfirm(modOrarendiOraDeleteDay);
|
|
}
|
|
|
|
function modOrarendiOraDeleteDay() {
|
|
deleteOrarendiOra(@((int)OraModositasiIdoszakTipus.EgyOra));
|
|
}
|
|
|
|
function deleteConfirm(deleteFunc) {
|
|
KretaWindowHelper.confirmWindow("@(CommonResource.Kerdes)", "@(CommonResource.BiztosanTorli)", deleteFunc);
|
|
}
|
|
|
|
function deleteOrarendiOra(modositasiIdoszakTipus) {
|
|
$("#OrarendiOraForm #ModositasiIdoszakTipus").val(modositasiIdoszakTipus);
|
|
AjaxHelper.DoPostElement(deleteOrarendiOraURL, formName, orarendiOraDeleteResponseOk);
|
|
}
|
|
|
|
orarendiOrak.modOrarendiOraSave = function () {
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
AjaxHelper.DoValidationPost(preValidationOrarendiOraURL, formName, data, OrarendiOrak.ModConfirmSave);
|
|
}
|
|
|
|
orarendiOrak.ModConfirmSave = function () {
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
if (tanarChanged || tantargyChanged || osztalyChanged) {
|
|
AjaxHelper.DoValidationPost(hasHazifeladatOrHelyettesitesOrSzamonkeresForOrarendiOraURL, formName, data, openDeleteConfirm)
|
|
} else {
|
|
if (datePickerChanged) {
|
|
AjaxHelper.DoValidationPost(hasHazifeladatOrHelyettesitesOrSzamonkeresNotInIdoszakURL, formName, data, openDeleteConfirm)
|
|
} else {
|
|
OrarendiOrak.ModSave();
|
|
}
|
|
}
|
|
}
|
|
|
|
function openDeleteConfirm(data) {
|
|
if (data == "True") {
|
|
KretaWindowHelper.confirmWindow("@CommonResource.Figyelmeztetes", "@OrarendResource.AKorabbanRogzitettElemekTorlodniFognakBiztosanFolytatja", OrarendiOrak.ModSave, undefined, undefined, "@CommonResource.Folytatas", "@CommonResource.Megse");
|
|
} else {
|
|
OrarendiOrak.ModSave();
|
|
}
|
|
}
|
|
|
|
orarendiOrak.ModSave = function () {
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
AjaxHelper.DoValidationPost(saveOrarendiOraURL, formName, data, orarendiOraSaveResponseOk);
|
|
}
|
|
|
|
orarendiOrak.tovabbiOrarendiOraFelvetele = function () {
|
|
var json = {};
|
|
json.OsztalyId = $("#TTFModel_OsztalyID").val();
|
|
json.CalendarModel = window.CalendarModel;
|
|
json.CalendarModel.eventId = $("#CsengetesiRendOraID").val();
|
|
|
|
KretaWindowHelper.destroyAllWindow();
|
|
CalendarDateTimeChangeHelper.changeCalendarModelOrakezdeteVegeToUtc(json.CalendarModel);
|
|
AjaxHelper.DoPost(clickNewURL, json, popUpNewOrarendiOraWindow);
|
|
}
|
|
orarendiOrak.dtChanged = function () {
|
|
datePickerChanged = true;
|
|
}
|
|
|
|
orarendiOrak.tanarChanged = function () {
|
|
tanarChanged = true;
|
|
}
|
|
|
|
/* módosítás */
|
|
orarendiOrak.modOrarendiOraSaveDay = function () {
|
|
modOrarendiOra(@((int)OraModositasiIdoszakTipus.EgyOra));
|
|
}
|
|
|
|
orarendiOrak.modOrarendiOraSaveTo = function () {
|
|
modOrarendiOra(@((int)OraModositasiIdoszakTipus.AdottNapig));
|
|
}
|
|
|
|
orarendiOrak.modOrarendiOraSaveFrom = function () {
|
|
modOrarendiOra(@((int)OraModositasiIdoszakTipus.AdottNaptol));
|
|
}
|
|
|
|
orarendiOrak.modOrarendiOraSaveTanev = function () {
|
|
modOrarendiOra(@((int)OraModositasiIdoszakTipus.TeljesIdoszak));
|
|
}
|
|
|
|
function modOrarendiOra(modositasiIdoszakTipus) {
|
|
if (modositasiIdoszakTipus != @((int)OraModositasiIdoszakTipus.TeljesIdoszak) && datePickerChanged && !CommonUtils.parseBool("@Model.IsFromSzervezet")) {
|
|
KretaWindowHelper.warningWindow(Globalization.Figyelem, '@OrarendResource.OranrendModositasnalDatumValtozasFigyelmeztetes', OrarendiOrak.ReOpenMod)
|
|
}
|
|
else {
|
|
$("#OrarendiOraForm #ModositasiIdoszakTipus").val(modositasiIdoszakTipus);
|
|
$("#OrarendiOraForm #JSHelperNev").val("@Kreta.Web.Constants.JSHelperName.OrarendiOra");
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
AjaxHelper.DoValidationPost(preValidationOrarendiOraURL, formName, data, OrarendiOrak.ModConfirmSave);
|
|
}
|
|
}
|
|
|
|
orarendiOrak.ReOpenMod = function () {
|
|
KretaWindowHelper.destroyAllWindow();
|
|
var data = window.CalendarModel;
|
|
orarendiOrak.CalendarClickEvent(data);
|
|
datePickerChanged = false;
|
|
tanarChanged = false;
|
|
osztalyChanged = false;
|
|
tantargyChanged = false;
|
|
}
|
|
/* módosítás */
|
|
|
|
function setWindowTitle(data) {
|
|
window.windowTitle = data;
|
|
}
|
|
|
|
function popUpNewOrarendiOraWindow(data) {
|
|
var config = KretaWindowHelper.getWindowConfigContainer();
|
|
config.title = "@(OrarendResource.CsengetesiRendhezKotottOrarendiOraFelvetele)" + window.windowTitle; /*Csengetési rendhez kötött órarendi óra felvétele*/
|
|
config.content = data;
|
|
|
|
var modal = KretaWindowHelper.createWindow("newOrarendiOraWindow", config);
|
|
KretaWindowHelper.openWindow(modal, true);
|
|
}
|
|
|
|
function popUpModifyOrarendiOraWindow(data) {
|
|
var config = KretaWindowHelper.getWindowConfigContainer();
|
|
config.title = "@(OrarendResource.CsengetesiRendhezKotottOrarendiOraModositasa)" + window.windowTitle; /*Csengetési rendhez kötött órarendi óra módosítása*/
|
|
config.content = data;
|
|
|
|
var modal = KretaWindowHelper.createWindow("modifyOrarendiOraWindow", config);
|
|
datePickerChanged = false;
|
|
tanarChanged = false;
|
|
osztalyChanged = false;
|
|
tantargyChanged = false;
|
|
KretaWindowHelper.openWindow(modal, true);
|
|
}
|
|
|
|
function orarendiOraSaveResponseOk() {
|
|
KretaWindowHelper.destroyAllWindow();
|
|
Orarend.FormSearch("searchForm");
|
|
}
|
|
|
|
function orarendiOraDeleteResponseOk() {
|
|
KretaWindowHelper.destroyAllWindow();
|
|
Orarend.FormSearch("searchForm");
|
|
}
|
|
|
|
orarendiOrak.onCascadeFoglalkozas = function (e) {
|
|
if (e.sender.selectedIndex != -1) {
|
|
AjaxHelper.DoPostQuery(getFoglalkozasURL, null, { foglalkozasId: e.sender.value() }, changeFoglalkozasResponseOk);
|
|
}
|
|
}
|
|
|
|
function changeFoglalkozasResponseOk(result) {
|
|
var data = result.table[0];
|
|
$("#TTFModel_OsztalyID").data('kendoComboBox').value(data.OsztalyCsoportId);
|
|
$("#TTFModel_TantargyID").data('kendoComboBox').value(data.TantargyId);
|
|
|
|
setOraVege(data.CsoportTipusId);
|
|
}
|
|
|
|
orarendiOrak.changeOsztaly = function () {
|
|
$("#TTFModel_FoglalkozasID").data('kendoComboBox').value('');
|
|
osztalyChanged = true;
|
|
|
|
var osztalycsoportId = $("#TTFModel_OsztalyID").data('kendoComboBox').value();
|
|
var GetOsztalycsoportURL = "@Url.HttpRouteUrl("ActionApi", new { controller = "ComboBoxHelperApi", action = "GetOsztalycsoportCsoportTipus" })";
|
|
AjaxHelper.DoPostQuery(GetOsztalycsoportURL, null, { osztalycsoportId: osztalycsoportId === "" ? -1 : osztalycsoportId }, osztalycsoportResponse);
|
|
}
|
|
|
|
function osztalycsoportResponse(result) {
|
|
setOraVege(result);
|
|
}
|
|
|
|
function setOraVege(csoportTipusId) {
|
|
if (@Json.Encode(Model.IsOravegeBeallitasOrahosszAlapjan)) {
|
|
if ($("#CsengetesiRendOraID").val() !== "0" && $("#CsengetesiRendOraID").val() !== "-1" && $("#OraKezdete").data('kendoTimePicker').value() != null) { //Csak akkor kell tenni bármit is ha nem napirend van
|
|
var oraPercArray = $.grep(window.csoportTipusOraPerc, function (obj) { return obj.Id === csoportTipusId; });
|
|
if (oraPercArray.length) {
|
|
$("#OraVege").data('kendoTimePicker').value(new Date(moment($("#OraKezdete").data('kendoTimePicker').value()).add(oraPercArray[0].OraPerc, 'minutes')));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
orarendiOrak.changeTeremByOsztaly = function () {
|
|
var osztalycsoportId = $("#TTFModel_OsztalyID").data('kendoComboBox').value();
|
|
|
|
var GetOsztalyCsoportTeremURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "GetOsztalyCsoportTerem" })";
|
|
AjaxHelper.DoGet(GetOsztalyCsoportTeremURL, { osztalycsoportId: osztalycsoportId === "" ? 0 : osztalycsoportId }, changeTeremResponseOk);
|
|
}
|
|
|
|
function changeTeremResponseOk(result) {
|
|
if (result > 0) {
|
|
$("#TeremID").data('kendoComboBox').value(result);
|
|
}
|
|
else {
|
|
$("#TeremID").data('kendoComboBox').value("");
|
|
}
|
|
}
|
|
|
|
orarendiOrak.changeTantargy = function () {
|
|
$("#TTFModel_FoglalkozasID").data('kendoComboBox').value('');
|
|
tantargyChanged = true;
|
|
}
|
|
|
|
return orarendiOrak;
|
|
})();
|
|
</script>
|
|
|
|
<script type="text/javascript">
|
|
var Foglalkozasok = (function () {
|
|
var foglalkozasok = function () { };
|
|
var datePickerChanged = false;
|
|
|
|
var formName = "OrarendiOraForm";
|
|
|
|
var clickNewURL = "@Url.Action("OpenNewFoglalkozasokOraPopUp", Model.ControllerName, new { area = "Orarend" })";
|
|
var clickModifyURL = "@Url.Action("OpenModifyFoglalkozasokOraPopUp", Model.ControllerName, new { area = "Orarend" })";
|
|
var preValidationFoglalkozasURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "PreValidationOrarendiOra" })";
|
|
var saveFoglalkozasURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "SaveOrarendiOra" })";
|
|
var deleteFoglalkozasURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "DeleteOrarendiOra" })";
|
|
var getTanarokNeveURL = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "GetTanarokNeve" })";
|
|
var titleURL = "@Url.Action("GetFoglalkozasWindowTitle", Model.ControllerName, new { area = "Orarend" })";
|
|
|
|
var calendarElement;
|
|
var isOrarendiNap = "@Url.HttpRouteUrl("ActionApi", new { controller = Model.ApiControllerName, action = "IsOrarendiNap" })";
|
|
var hasTanitasiNap = "@Url.HttpRouteUrl("ActionApi", new { controller = "AdminTanariOrarendApi", action = "HasTanitasiNap" })";
|
|
|
|
foglalkozasok.CalendarClickEvent = function (e) {
|
|
window.CalendarModel = e;
|
|
|
|
if (e.eventType == 1 && e.oraType == 3) {
|
|
AjaxHelper.DoPost(titleURL, e, function (d) { setWindowTitle(d); AjaxHelper.DoPost(clickModifyURL, e, popUpModifyFoglalkozasWindow); });
|
|
}
|
|
};
|
|
|
|
foglalkozasok.CalendarSelectEvent = function (e) {
|
|
window.CalendarModel = e;
|
|
calendarElement = e;
|
|
|
|
if (calendarElement.eventType == 0) {
|
|
if (!e.allDay) {
|
|
AjaxHelper.DoGet(hasTanitasiNap, { date: moment(calendarElement.start).utc().format("YYYY-MM-DD HH:mm") }, openFoglalkozasokOraPopUp);
|
|
}
|
|
else {
|
|
KretaWindowHelper.notification("@(OrarendResource.NapirendFelviteleCsakEgyNapra)", "error");
|
|
}
|
|
}
|
|
};
|
|
|
|
foglalkozasok.newFoglalkozasCancel = function () {
|
|
KretaWindowHelper.destroyWindow("newFoglalkozasWindow");
|
|
}
|
|
|
|
foglalkozasok.OrarendhezSave = function () {
|
|
saveFoglalkozas(@((int)OraModositasiIdoszakTipus.TeljesIdoszak));
|
|
}
|
|
|
|
foglalkozasok.EttolHettolSave = function () {
|
|
saveFoglalkozas(@((int)OraModositasiIdoszakTipus.AdottNaptol));
|
|
}
|
|
|
|
foglalkozasok.EddigHetigSave = function () {
|
|
saveFoglalkozas(@((int)OraModositasiIdoszakTipus.AdottNapig));
|
|
}
|
|
|
|
foglalkozasok.EgyOraHozzaadasaSave = function () {
|
|
if (CommonUtils.parseBool("@Model.IsFromSzervezet")) {
|
|
CalendarDateTimeChangeHelper.setDatum('OraErvenyessegKezdete', $("#ValasztottDatum").val());
|
|
CalendarDateTimeChangeHelper.setDatum('OraErvenyessegVege', $("#ValasztottDatum").val());
|
|
}
|
|
saveFoglalkozas(@((int)OraModositasiIdoszakTipus.EgyOra));
|
|
}
|
|
|
|
foglalkozasok.Save = function () {
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
AjaxHelper.DoValidationPost(saveFoglalkozasURL, formName, data, foglalkozasSaveResponseOk);
|
|
}
|
|
|
|
foglalkozasok.modFoglalkozasCancel = function () {
|
|
KretaWindowHelper.destroyWindow("modifyFoglalkozasWindow");
|
|
}
|
|
|
|
foglalkozasok.modFoglalkozasDeleteConfirmWindow = function () {
|
|
deleteConfirm(modFoglalkozasDelete);
|
|
}
|
|
|
|
foglalkozasok.modFoglalkozasDeleteFromConfirmWindow = function () {
|
|
deleteConfirm(modFoglalkozasDeleteFrom);
|
|
}
|
|
|
|
foglalkozasok.modFoglalkozasDeleteToConfirmWindow = function () {
|
|
deleteConfirm(modFoglalkozasDeleteTo);
|
|
}
|
|
|
|
foglalkozasok.modFoglalkozasDeleteDayConfirmWindow = function () {
|
|
deleteConfirm(modFoglalkozasDeleteDay);
|
|
}
|
|
|
|
foglalkozasok.modFoglalkozasSave = function () {
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
AjaxHelper.DoValidationPost(preValidationFoglalkozasURL, formName, data, Foglalkozasok.ModSave);
|
|
}
|
|
|
|
foglalkozasok.ModSave = function () {
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
AjaxHelper.DoValidationPost(saveFoglalkozasURL, formName, data, foglalkozasSaveResponseOk);
|
|
}
|
|
|
|
foglalkozasok.tovabbiFoglalkozasFelvetele = function () {
|
|
var csengetesiRendId = $("#CsengetesiRendOraID").val();
|
|
KretaWindowHelper.destroyAllWindow();
|
|
|
|
var data = window.CalendarModel;
|
|
data.eventId = csengetesiRendId;
|
|
CalendarDateTimeChangeHelper.changeCalendarModelOrakezdeteVegeToUtc(data);
|
|
AjaxHelper.DoPost(clickNewURL, data, popUpNewFoglalkozasWindow);
|
|
}
|
|
|
|
foglalkozasok.dtChanged = function () {
|
|
datePickerChanged = true;
|
|
}
|
|
/* módosítás */
|
|
foglalkozasok.modFoglalkozasSaveDay = function () {
|
|
modFoglalkozas(@((int)OraModositasiIdoszakTipus.EgyOra));
|
|
}
|
|
|
|
foglalkozasok.modFoglalkozasSaveTo = function () {
|
|
modFoglalkozas(@((int)OraModositasiIdoszakTipus.AdottNapig));
|
|
}
|
|
|
|
foglalkozasok.modFoglalkozasSaveFrom = function () {
|
|
modFoglalkozas(@((int)OraModositasiIdoszakTipus.AdottNaptol));
|
|
}
|
|
|
|
foglalkozasok.modFoglalkozasSaveTanev = function () {
|
|
modFoglalkozas(@((int)OraModositasiIdoszakTipus.TeljesIdoszak));
|
|
}
|
|
|
|
function modFoglalkozas(modositasiIdoszakTipus) {
|
|
if (modositasiIdoszakTipus != @((int)OraModositasiIdoszakTipus.TeljesIdoszak) && datePickerChanged && !CommonUtils.parseBool("@Model.IsFromSzervezet")) {
|
|
KretaWindowHelper.warningWindow(Globalization.Figyelem, '@OrarendResource.OranrendModositasnalDatumValtozasFigyelmeztetes', Foglalkozasok.ReOpenMod)
|
|
}
|
|
else {
|
|
$("#OrarendiOraForm #ModositasiIdoszakTipus").val(modositasiIdoszakTipus);
|
|
$("#OrarendiOraForm #JSHelperNev").val("@Kreta.Web.Constants.JSHelperName.Foglalkozas");
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName);
|
|
AjaxHelper.DoValidationPost(preValidationFoglalkozasURL, formName, data, Foglalkozasok.ModSave);
|
|
}
|
|
}
|
|
|
|
foglalkozasok.ReOpenMod = function () {
|
|
KretaWindowHelper.destroyAllWindow();
|
|
var data = window.CalendarModel;
|
|
foglalkozasok.CalendarClickEvent(data);
|
|
datePickerChanged = false;
|
|
}
|
|
/* módosítás */
|
|
|
|
function saveFoglalkozas(modositasiIdoszakTipus) {
|
|
$("#OrarendiOraForm #ModositasiIdoszakTipus").val(modositasiIdoszakTipus);
|
|
$("#OrarendiOraForm #JSHelperNev").val("@Kreta.Web.Constants.JSHelperName.Foglalkozas");
|
|
var data = CalendarDateTimeChangeHelper.changeDataOrakezDetOraVegToUtc(formName)
|
|
AjaxHelper.DoValidationPost(preValidationFoglalkozasURL, formName, data, Foglalkozasok.Save);
|
|
}
|
|
|
|
function modFoglalkozasDelete() {
|
|
deleteFoglalkozas(@((int)OraModositasiIdoszakTipus.TeljesIdoszak));
|
|
}
|
|
|
|
function modFoglalkozasDeleteFrom() {
|
|
deleteFoglalkozas(@((int)OraModositasiIdoszakTipus.AdottNaptol));
|
|
}
|
|
|
|
function modFoglalkozasDeleteTo() {
|
|
deleteFoglalkozas(@((int)OraModositasiIdoszakTipus.AdottNapig));
|
|
}
|
|
|
|
function modFoglalkozasDeleteDay() {
|
|
deleteFoglalkozas(@((int)OraModositasiIdoszakTipus.EgyOra));
|
|
}
|
|
|
|
function deleteConfirm(deleteFunc) {
|
|
KretaWindowHelper.confirmWindow("@(CommonResource.Kerdes)", "@(CommonResource.BiztosanTorli)", deleteFunc);
|
|
}
|
|
|
|
function deleteFoglalkozas(modositasiIdoszakTipus) {
|
|
$("#OrarendiOraForm #ModositasiIdoszakTipus").val(modositasiIdoszakTipus);
|
|
$("#OrarendiOraForm #JSHelperNev").val("@Kreta.Web.Constants.JSHelperName.Foglalkozas");
|
|
AjaxHelper.DoPostElement(deleteFoglalkozasURL, formName, foglalkozasDeleteResponseOk);
|
|
}
|
|
|
|
function setWindowTitle(data) {
|
|
window.windowTitle = data;
|
|
}
|
|
|
|
function popUpNewFoglalkozasWindow(data) {
|
|
var config = KretaWindowHelper.getWindowConfigContainer();
|
|
config.title = "@(OrarendResource.NapirendFelvetele)" + window.windowTitle; /*Napirend felvétele*/
|
|
config.content = data;
|
|
|
|
var modal = KretaWindowHelper.createWindow("newFoglalkozasWindow", config);
|
|
KretaWindowHelper.openWindow(modal, true);
|
|
}
|
|
|
|
function popUpModifyFoglalkozasWindow(data) {
|
|
var config = KretaWindowHelper.getWindowConfigContainer();
|
|
config.title = "@(OrarendResource.NapirendModositasa)" + window.windowTitle; /*Napirend módosítása*/
|
|
config.content = data;
|
|
|
|
var modal = KretaWindowHelper.createWindow("modifyFoglalkozasWindow", config);
|
|
KretaWindowHelper.openWindow(modal, true);
|
|
}
|
|
|
|
function foglalkozasSaveResponseOk() {
|
|
KretaWindowHelper.destroyAllWindow();
|
|
Orarend.FormSearch("searchForm");
|
|
}
|
|
|
|
function foglalkozasDeleteResponseOk() {
|
|
KretaWindowHelper.destroyAllWindow();
|
|
Orarend.FormSearch("searchForm");
|
|
}
|
|
|
|
function openFoglalkozasokOraPopUp(data) {
|
|
if (data === true || CommonUtils.parseBool("@Model.IsFromSzervezet")) {
|
|
CalendarDateTimeChangeHelper.changeCalendarModelOrakezdeteVegeToUtc(calendarElement);
|
|
AjaxHelper.DoPost(titleURL, calendarElement, function (d) { setWindowTitle(d); AjaxHelper.DoPost(clickNewURL, calendarElement, popUpNewFoglalkozasWindow); });
|
|
}
|
|
}
|
|
|
|
return foglalkozasok;
|
|
})();
|
|
</script>
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function () {
|
|
var GetCsoportTipusURL = "@Url.HttpRouteUrl("ActionApi", new { controller = "ComboBoxHelperApi", action = "GetCsoportTipusOraPerc" })";
|
|
AjaxHelper.DoPost(GetCsoportTipusURL, null, csoportTipusResponse);
|
|
|
|
function csoportTipusResponse(data) { window.csoportTipusOraPerc = data; }
|
|
});
|
|
</script>
|
|
}
|