391 lines
17 KiB
Text
391 lines
17 KiB
Text
@using Kreta.Web.Areas.Orarend.Models;
|
|
@using Kreta.Web.Helpers.Modal;
|
|
@using Kreta.Framework;
|
|
@using Kreta.Web.Security;
|
|
@using Kreta.Web.Helpers;
|
|
@using Kreta.Web.Areas.Orarend.Models;
|
|
@using Kreta.Resources;
|
|
@using Kreta.Web.Helpers.Grid;
|
|
@using Kreta.BusinessLogic.Classes;
|
|
@using Kreta.Core;
|
|
@using Kreta.Web.Areas.Tanar.Models;
|
|
@using Kreta.Enums.ManualEnums;
|
|
|
|
@model HaziFeladatNaplozas
|
|
|
|
@{
|
|
Layout = null;
|
|
const string HaziFeladatCsatolmanyokApi = Kreta.Web.Constants.ApiControllers.HaziFeladatCsatolmanyokApi;
|
|
const string gridName = "HFCsatolmanyGrid";
|
|
}
|
|
|
|
<style>
|
|
.uploadInfo {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.uploadInfo ul > li {
|
|
margin-left: 15px;
|
|
}
|
|
|
|
.k-upload-selected {
|
|
display:none;
|
|
}
|
|
.k-button.k-clearUploadButton {
|
|
margin-left: 5px;
|
|
}
|
|
</style>
|
|
|
|
<script type="text/javascript">
|
|
var HazifeladatFileUploadHelper = (function () {
|
|
var hazifeladatFileUploadHelper = function () { };
|
|
|
|
var gridName = "@gridName";
|
|
var uploadDone = true;
|
|
|
|
var url = {
|
|
DeleteCsatolmany: "@Url.HttpRouteUrl(Kreta.Web.Constants.RouteKey.ActionApi, new { controller = HaziFeladatCsatolmanyokApi, action = "DeleteCsatolmany" })",
|
|
DownloadCsatolmany: "@Url.HttpRouteUrl(Kreta.Web.Constants.RouteKey.ActionApi, new { controller = HaziFeladatCsatolmanyokApi, action = "DownloadCsatolmanyFile" })",
|
|
}
|
|
|
|
var currentFilesSizeInBytes = 0;
|
|
|
|
hazifeladatFileUploadHelper.select = function (e) {
|
|
KretaFileUpload.StopAnimation();
|
|
var attachments = e.files;
|
|
|
|
var allowedFileExtensionArray = @Html.Raw(Json.Encode(Model.AllowedFileExtensions));
|
|
|
|
for (var i = 0; i < attachments.length; i++) {
|
|
if ($.inArray(attachments[i].extension.toLowerCase(), allowedFileExtensionArray) === -1) {
|
|
e.preventDefault();
|
|
KretaWindowHelper.feedbackWindow("@CommonResource.Hiba", "@ErrorResource.AFajlKiterjeszteseVagyTipusaNemMegfelelo", true);
|
|
return;
|
|
}
|
|
}
|
|
|
|
var usedFilesSizeInKiloBytes = parseInt("@Model.UsedFilesSizeInKiloBytes");
|
|
var maxAllowedFilesSizeInKiloBytes = parseInt("@Model.MaxAllowedFilesSizeInKiloBytes");
|
|
var usedFilesSizeInBytesTotal = parseInt("@Model.UsedFilesSizeInKiloBytesTotal");
|
|
var maxAllowedFilesSizeInKiloBytesTotal = parseInt("@Model.MaxAllowedFilesSizeInKiloBytesTotal");
|
|
|
|
currentFilesSizeInBytes += attachments.reduce((acc, curr) => acc + curr.size, 0);
|
|
|
|
if (maxAllowedFilesSizeInKiloBytes < ((currentFilesSizeInBytes / 1024) + usedFilesSizeInKiloBytes)) {
|
|
e.preventDefault();
|
|
|
|
var errorMessage = "@ErrorResource.AtlepteAHazifeladathozMegengedettFeltolthetoAdatmennyiseget";
|
|
|
|
errorMessage = errorMessage.format(
|
|
"<br />",
|
|
maxAllowedFilesSizeInKiloBytes,
|
|
(usedFilesSizeInKiloBytes).toFixed(2),
|
|
(currentFilesSizeInBytes / 1024).toFixed(2));
|
|
|
|
currentFilesSizeInBytes -= attachments.reduce((acc, curr) => acc + curr.size, 0);
|
|
|
|
KretaWindowHelper.feedbackWindow("@CommonResource.Hiba", errorMessage, true);
|
|
return;
|
|
}
|
|
|
|
if (maxAllowedFilesSizeInKiloBytesTotal < ((currentFilesSizeInBytes / 1024) + (usedFilesSizeInBytesTotal / 1024))) {
|
|
e.preventDefault();
|
|
|
|
var errorMessage = "@ErrorResource.AtlepteAzOsszesenMegengedettFeltolthetoAdatmennyiseget";
|
|
|
|
errorMessage = errorMessage.format(
|
|
"<br />",
|
|
maxAllowedFilesSizeInKiloBytesTotal,
|
|
(usedFilesSizeInBytesTotal / 1024).toFixed(2),
|
|
(currentFilesSizeInBytes / 1024).toFixed(2));
|
|
|
|
currentFilesSizeInBytes -= attachments.reduce((acc, curr) => acc + curr.size, 0);
|
|
|
|
KretaWindowHelper.feedbackWindow("@CommonResource.Hiba", errorMessage, true);
|
|
return;
|
|
}
|
|
|
|
$(".k-clearUploadButton").remove();
|
|
$(".k-upload-button").after('<button type="button" class="k-button k-clearUploadButton" onclick = "HazifeladatFileUploadHelper.ClearFileUpload()"> Törlés</button>');
|
|
}
|
|
|
|
hazifeladatFileUploadHelper.ClearFileUpload = function () {
|
|
$("#csatolmany").data("kendoUpload")._removeFileEntry($(".k-file"));
|
|
$(".k-clearUploadButton").remove();
|
|
}
|
|
|
|
hazifeladatFileUploadHelper.success = function (e) {
|
|
var csatolmanyId = e.response;
|
|
|
|
if (typeof csatolmanyId === "number") {
|
|
$("#CsatolmanyId").val(csatolmanyId);
|
|
}
|
|
}
|
|
|
|
hazifeladatFileUploadHelper.deleteConfirm = function (rowData) {
|
|
KretaWindowHelper.confirmWindow("@CommonResource.Figyelmeztetes", "@(TanarResource.BiztosanToroliSzeretneCsatolmanyt)", deleteCsatolmany, rowData.ID);
|
|
}
|
|
|
|
function deleteCsatolmany(data) {
|
|
AjaxHelper.DoPost(url.DeleteCsatolmany, data, deleteResponseOk, responseError);
|
|
}
|
|
|
|
function responseError(data) {
|
|
KretaGridHelper.refreshGrid(gridName);
|
|
AjaxHelper.ShowError(data);
|
|
}
|
|
|
|
function deleteResponseOk() {
|
|
$("#CsatolmanyId").val('');
|
|
KretaGridHelper.refreshGrid(gridName);
|
|
}
|
|
|
|
hazifeladatFileUploadHelper.download = function (rowData) {
|
|
CommonUtils.formFileDownload(url.DownloadCsatolmany, rowData.ID);
|
|
};
|
|
|
|
function responseError(data) {
|
|
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
|
|
AjaxHelper.ShowError(data);
|
|
}
|
|
|
|
hazifeladatFileUploadHelper.upload = function (e) {
|
|
uploadDone = false;
|
|
}
|
|
|
|
hazifeladatFileUploadHelper.complete = function (e) {
|
|
uploadDone = true;
|
|
}
|
|
|
|
hazifeladatFileUploadHelper.uploadIsDone = function () {
|
|
return uploadDone;
|
|
}
|
|
|
|
hazifeladatFileUploadHelper.error = function (e) {
|
|
//var err = $.parseJSON(e.XMLHttpRequest.responseText);
|
|
//KretaWindowHelper.feedbackWindow(Globalization.Hiba, err.Message.replace(CommonUtils.LineBreakRegex, '<br />'), true);
|
|
}
|
|
|
|
return hazifeladatFileUploadHelper;
|
|
})();
|
|
</script>
|
|
|
|
@Html.ValidationSummary()
|
|
<div class="container-fluid">
|
|
@Html.HiddenFor(m => m.Id)
|
|
@Html.HiddenFor(m => m.OrarendiOraId)
|
|
@Html.HiddenFor(m => m.NapDatuma)
|
|
@Html.HiddenFor(m => m.HelyettesitoId)
|
|
@Html.HiddenFor(m => m.CsatolmanyId)
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
@Html.KretaDatePickerFor(m => m.Hatarido).Min(DateTime.Today.AddDays(1)).Max(DateTime.Parse(Kreta.Core.Constants.MinMaxValues.MaxDate)).RenderWithName(isCustomRequired: true)
|
|
</div>
|
|
<div style="float:right; padding-left: 5px;">
|
|
@if (Model.IsTanarVehetFelHazitNaplozasNelkul)
|
|
{
|
|
@Html.KretaButton(new ModalButtonModel() { Name = "haziFeladatMentes", Text = "HÁZI FELADAT MENTÉSE", Enabled = true, EventName = Model.IsHaziFeladatHelper ? "function(){ HazifeladatHelper.SaveHaziFeladat(); }" : "function(){ Naplozashelper.SaveHaziFeladat(); }" })
|
|
}
|
|
@if (Model.Id != null)
|
|
{
|
|
@Html.KretaButton(new ModalButtonModel() { Name = "haziFeladatTorles", Text = "HÁZI FELADAT TÖRLÉSE", Enabled = true, EventName = "function(){ HazifeladatHelper.DeleteHaziFeladat(); }" })
|
|
}
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
@Html.KretaHtmlEditorFor(m => m.HaziFeladat).PasteCleanup(p => p
|
|
.Css(false)
|
|
.MsAllFormatting(false)
|
|
.Span(false)
|
|
).Events(x=>x.Paste("function(e) { HazifeladatHelper.onPasteEvent(e); }"))
|
|
</div>
|
|
</div>
|
|
@{
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
@Html.KretaFileUpload(
|
|
"csatolmany",
|
|
Url.Action("UploadCsatolmany", "TanariOrarend"),
|
|
uploadText: CommonResource.Feltoltes,
|
|
onSelectEvent: "function(e) { HazifeladatFileUploadHelper.select(e); }",
|
|
onSuccessEvent: "function(e) { HazifeladatFileUploadHelper.success(e); }",
|
|
onUploadEvent: "function(e) { HazifeladatFileUploadHelper.upload(e); }",
|
|
onCompleteEvent: "function(e) { HazifeladatFileUploadHelper.complete(e); }",
|
|
onErrorEvent: "function(e) { HazifeladatFileUploadHelper.error(e); }",
|
|
htmlAttributes: new Dictionary<string, object> { { "accept", string.Join(", ", Model.AllowedFileExtensions) } }
|
|
)
|
|
</div>
|
|
<div class="col-sm-12">
|
|
@Html.Label(string.Format(TanarResource.KorabbanMarFeltoltottAdatmennyiseg, string.Format("{0:0.00}", CommonUtils.ConvertByteToMByte(Model.UsedFilesSizeInKiloBytesTotal))))
|
|
<br />
|
|
@Html.Label(string.Format(TanarResource.MaximalisMegengedettAdatmennyiseg, string.Format("{0:0.00}", CommonUtils.ConvertKByteToGByte(Model.MaxAllowedFilesSizeInKiloBytes))))
|
|
</div>
|
|
<div class="col-sm-12 uploadInfo">
|
|
<span>@CommonResource.MegengedettTipusok</span>
|
|
<ul>
|
|
<li>.txt, .pdf, .doc, .docx</li>
|
|
<li>.xls, .xlsx</li>
|
|
<li>.ppt, .pptx</li>
|
|
<li>.bmp, .jpg, .jpeg, .png</li>
|
|
<li>.rar, .zip</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
if (Model.Id.IsEntityId())
|
|
{
|
|
<div class="row">
|
|
<div class="col-sm-12" id="sumHaziFeladatCsatolmanyokGridDiv">
|
|
<a id="haziFeladatCsatolmanyokIcon" class="k-icon k-plus" href="#"></a>
|
|
<label class="windowInputLabel">@OrarendResource.CsatoltAllomanyok:</label>
|
|
</div>
|
|
<script>
|
|
$(document).ready(function () {
|
|
$("#sumHaziFeladatCsatolmanyokGridDiv").click(function () {
|
|
if ($("#haziFeladatCsatolmanyokGridDiv").hasClass("displayNone")) {
|
|
$("#haziFeladatCsatolmanyokGridDiv").removeClass("displayNone");
|
|
$("#haziFeladatCsatolmanyokIcon").removeClass("k-plus").addClass("k-minus");
|
|
}
|
|
else {
|
|
$("#haziFeladatCsatolmanyokGridDiv").addClass("displayNone");
|
|
$("#haziFeladatCsatolmanyokIcon").removeClass("k-minus").addClass("k-plus");
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
</div>
|
|
<div class="row displayNone" id="haziFeladatCsatolmanyokGridDiv">
|
|
<div class="col-sm-12">
|
|
@(
|
|
Html.KretaGrid<HFCsatolmanyGridModel>
|
|
(
|
|
gridName,
|
|
new GridApiUrl(HaziFeladatCsatolmanyokApi, "GetHFCsatolmanyokGridForHazi",
|
|
new Dictionary<string, string>
|
|
{
|
|
{ "haziFeladatId", Model.Id.ToString() }
|
|
}),
|
|
allowScrolling: true,
|
|
showSorszam: false,
|
|
sort: sort => sort.Add(s => s.FeltoltesDatum).Ascending()
|
|
)
|
|
.Columns(columns =>
|
|
{
|
|
columns.Bound(c => c.FajlNev).Width("30%");
|
|
columns.Bound(c => c.FajlMeretMB).Format("{0:n}").Width("30%");
|
|
columns.Bound(c => c.FeltoltesDatum).Width("30%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
|
|
})
|
|
.RowFunction(Html, new List<RowFunction>
|
|
{
|
|
new RowFunction
|
|
{
|
|
Name = CommonResource.Torles,
|
|
ClientAction= "HazifeladatFileUploadHelper.deleteConfirm",
|
|
IconEnum = GridRowFunctionIconEnum.Torles
|
|
}
|
|
})
|
|
.RowFunction(Html, new List<RowFunction>
|
|
{
|
|
new RowFunction
|
|
{
|
|
Name = CommonResource.Letoltes,
|
|
ClientAction= "HazifeladatFileUploadHelper.download",
|
|
IconEnum = GridRowFunctionIconEnum.Letoltes
|
|
}
|
|
})
|
|
.Sortable(sortable => sortable
|
|
.AllowUnsort(true)
|
|
.SortMode(GridSortMode.MultipleColumn))
|
|
)
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
var HazifeladatHelper = (function () {
|
|
var hazifeladatHelper = function () { };
|
|
|
|
var tanarHaziFeladatId = parseInt("@Model.Id");
|
|
if (isNaN(tanarHaziFeladatId)) { tanarHaziFeladatId = null; }
|
|
var saveURL = '@Url.HttpRouteUrl("ActionApi", new {controller = "TanariOrarendApi", action = "SaveHaziFeladatFromDetail" })';
|
|
|
|
hazifeladatHelper.getModel = function () { return getModel(); };
|
|
hazifeladatHelper.onTabActiv = function () { refreshEditor(); };
|
|
|
|
hazifeladatHelper.SaveHaziFeladat = function () {
|
|
if (!HazifeladatFileUploadHelper.uploadIsDone()) {
|
|
KretaWindowHelper.confirmWindow("@(CommonResource.Kerdes)", "@(CommonResource.ACsatolmanyFeltolteseNemFejezedottBeBiztosanFolytatja)", function () { saveHazi(); });
|
|
} else {
|
|
saveHazi();
|
|
}
|
|
}
|
|
|
|
function saveHazi() {
|
|
var model = getModel();
|
|
AjaxHelper.DoPost(saveURL, model, function (data) { sikeresHazifeladatMentes(data); });
|
|
}
|
|
|
|
function sikeresHazifeladatMentes(data) {
|
|
var csatolmanyElement = $("#csatolmany");
|
|
var fileuploadbutton = $('.k-upload-selected');
|
|
if (data.HazifeladatId > 0 && csatolmanyElement.length > 0 && fileuploadbutton.length > 0) {
|
|
var uploader = csatolmanyElement.data("kendoUpload");
|
|
uploader.bind("upload", function (e) { AjaxHelper.ShowIndicator(); e.data = { hfId: data.HazifeladatId } });
|
|
uploader.bind("complete", function (e) { AjaxHelper.HideIndicator(); KretaWindowHelper.destroyAllWindow(); TanariOrarend.FormSearch("searchForm"); KretaWindowHelper.successFeedBackWindow(); });
|
|
uploader.bind("error", function (e) { alert("Sikertelen file feltöltés!") });
|
|
setTimeout(function () { fileuploadbutton.click(); }, 1); /*set timeout kiveszi a fuggvényt a post success ágából és így külön fel tudjuk dobni neki busy indikatort*/
|
|
} else {
|
|
KretaWindowHelper.destroyAllWindow(); TanariOrarend.FormSearch("searchForm"); KretaWindowHelper.successFeedBackWindow();
|
|
}
|
|
}
|
|
|
|
hazifeladatHelper.DeleteHaziFeladat = function () {
|
|
var model = {
|
|
"Id": $("#Id").val()
|
|
,"OrarendiOraId": $("#OrarendiOraId").val()
|
|
, "TanitasiOraId" : "@Model.TanitasiOraId"
|
|
};
|
|
AjaxHelper.DoPost(saveURL, model, function () { KretaWindowHelper.destroyAllWindow(); TanariOrarend.FormSearch("searchForm"); KretaWindowHelper.successFeedBackWindow(); });
|
|
}
|
|
|
|
function getModel() {
|
|
var hatarido = null;
|
|
if ($("#Hatarido").data("kendoDatePicker").value() != null) {
|
|
hatarido = moment.utc(kendo.parseDate($("#Hatarido").data("kendoDatePicker").value(), "u")).local().format();
|
|
}
|
|
else {
|
|
if ($("#Hatarido").val()) {
|
|
hatarido = new Date(($("#Hatarido").val()).replaceAll('.','-'));
|
|
}
|
|
}
|
|
|
|
var model = {
|
|
"HaziFeladat": $("#HaziFeladat").data("kendoEditor").value(),
|
|
"Hatarido": hatarido,
|
|
"Id": $("#Id").val(),
|
|
"OrarendiOraId": $("#OrarendiOraId").val(),
|
|
"NapDatuma": $("#NapDatuma").val(),
|
|
"HelyettesitoId": $("#HelyettesitoId").val(),
|
|
"CsatolmanyId": $("#CsatolmanyId").val(),
|
|
"IsElmaradt": "@Model.IsElmaradt",
|
|
"TanitasiOraId" : "@Model.TanitasiOraId"
|
|
};
|
|
|
|
return model;
|
|
}
|
|
|
|
function refreshEditor() {
|
|
$("#HaziFeladat").getKendoEditor().refresh();
|
|
}
|
|
|
|
hazifeladatHelper.onPasteEvent = function (e) {
|
|
if ((/^<img src="data:image/).test(e.html)) {
|
|
e.html = "";
|
|
}
|
|
}
|
|
|
|
return hazifeladatHelper;
|
|
})();
|
|
</script>
|