init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,241 @@
|
|||
@using Kreta.Web.Areas.Orarend.Models
|
||||
|
||||
@model CsoportOrarendTorleseModel
|
||||
|
||||
<style>
|
||||
#csoport-select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#CsoportOrarendTorlesVisszaBtn {
|
||||
margin-left: 80px;
|
||||
}
|
||||
|
||||
#CsoportOrarendTorlesTorlesBtn {
|
||||
margin-right: 80px;
|
||||
}
|
||||
|
||||
.selected-torles-btn > button {
|
||||
padding: 3px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@using (Html.KretaForm("CsoportOrarendTorlesForm"))
|
||||
{
|
||||
@Html.KretaValidationSummary()
|
||||
|
||||
<div class="row">
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
@Html.KretaComboBox("FeladatellatasiHelyCmb", Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetFeladatellatasiHelyWithMukodesiHelyList" }), onChangeFunction: "CsoportOrarendTorleseHelper.cmbOnChange()", placeholder: CommonResource.PleaseChoose)
|
||||
<select id="csoport-select" class="form-control" multiple="multiple" style="height: 400px;"></select>
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
<div class="@BootsrapHelper.GetSizeClasses(12)">
|
||||
@Html.Partial("KozosParameterekView")
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(12)" style="margin-top: 40px;">
|
||||
<span class="col-sm-4">@OrarendekTorleseResource.KivalasztottCsoportok</span>
|
||||
<div id="selected-csoport-container" class="col-sm-12"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" style="margin-top: 40px;">
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
@Html.KretaButton("CsoportOrarendTorlesVisszaBtn", CommonResource.Vissza, clickEventName: "OrarendekTorleseHelper.vissza")
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6) BtnDelete">
|
||||
@Html.KretaButton("CsoportOrarendTorlesTorlesBtn", CommonResource.Torles, clickEventName: "function () { OrarendekTorleseHelper.torles(CsoportOrarendTorleseHelper.torles); }")
|
||||
</div>
|
||||
</div>
|
||||
<div hidden>
|
||||
@Html.KretaTextBoxFor(x => x.SelectedCsoportok)
|
||||
</div>
|
||||
}
|
||||
|
||||
<script type="text/javascript">
|
||||
var CsoportOrarendTorleseHelper = (function () {
|
||||
var csoportOrarendTorleseHelper = function () { };
|
||||
|
||||
var csoportSelectId = "#csoport-select";
|
||||
var selectedCsoportContainerId = "#selected-csoport-container";
|
||||
var formName = "CsoportOrarendTorlesForm";
|
||||
var formId = "#" + formName;
|
||||
var selectedCsoportokId = "#SelectedCsoportok";
|
||||
var feladatellatasiHelyCmbName = "FeladatellatasiHelyCmb";
|
||||
|
||||
var csoportList = @Html.Raw(Json.Encode(Model.CsoportList));
|
||||
|
||||
var url = {
|
||||
CsoportOrarendekTorlese: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.OrarendekTorleseApi, action = "CsoportOrarendekTorlese" })"
|
||||
}
|
||||
|
||||
csoportOrarendTorleseHelper.cmbOnChange = function () {
|
||||
setUpCsoportSelectRows();
|
||||
}
|
||||
|
||||
function setUpCsoportSelectRows() {
|
||||
var feladatellatasiHelyId = KretaComboBoxHelper.getKendoValue(feladatellatasiHelyCmbName);
|
||||
$(csoportSelectId).empty();
|
||||
|
||||
var csoportokByFeladatellatasiHely = csoportList.filter(function (cs) {
|
||||
return cs.FeladatellatasiHelyId == feladatellatasiHelyId;
|
||||
});
|
||||
csoportokByFeladatellatasiHely.forEach(function (item) {
|
||||
createOptionRow(item);
|
||||
});
|
||||
}
|
||||
|
||||
function createOptionRow(csoport) {
|
||||
var option = $("<option></option>")
|
||||
.attr("value", csoport.Id)
|
||||
.append(csoport.Nev);
|
||||
|
||||
if (csoport.IsSelected) {
|
||||
option.attr("selected", true);
|
||||
}
|
||||
|
||||
$(csoportSelectId).append(option);
|
||||
}
|
||||
|
||||
csoportOrarendTorleseHelper.selectOption = function (o) {
|
||||
var csoportId = $(o).attr("value");
|
||||
if (!CommonUtils.isNullOrUndefined(csoportId)) {
|
||||
var csoport = csoportList.filter(function (cs) {
|
||||
return cs.Id == csoportId;
|
||||
})[0];
|
||||
|
||||
csoport.IsSelected = !csoport.IsSelected;
|
||||
|
||||
if (csoport.IsSelected) {
|
||||
createSelection(csoport);
|
||||
addSelectedCsoportToInputString(csoport.Id);
|
||||
}
|
||||
else {
|
||||
csoportOrarendTorleseHelper.deleteSelection(csoportId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function createSelection(csoport) {
|
||||
var nev = $("<div></div>")
|
||||
.addClass("col-sm-6")
|
||||
.append(csoport.Nev);
|
||||
|
||||
var torlesBtnName = "SelectedTorlesBtn" + csoport.Id;
|
||||
var torlesBtn = $("<button></button>")
|
||||
.addClass("k-button")
|
||||
.attr("id", torlesBtnName)
|
||||
.attr("onclick", "CsoportOrarendTorleseHelper.deleteSelection(" + csoport.Id + ");")
|
||||
.append("@CommonResource.Eltavolitas");
|
||||
var torles = $("<div></div>")
|
||||
.addClass("col-sm-6 BtnDelete selected-torles-btn")
|
||||
.append(torlesBtn);
|
||||
|
||||
var row = $("<div></div>")
|
||||
.addClass("row")
|
||||
.attr("data-csoport-id", csoport.Id)
|
||||
.append(nev)
|
||||
.append(torles);
|
||||
|
||||
$(selectedCsoportContainerId).append(row);
|
||||
}
|
||||
|
||||
csoportOrarendTorleseHelper.deleteSelection = function (csoportId) {
|
||||
var csoport = csoportList.filter(function (cs) {
|
||||
return cs.Id == csoportId;
|
||||
})[0];
|
||||
|
||||
csoport.IsSelected = false;
|
||||
|
||||
setUpCsoportSelectRows();
|
||||
|
||||
$(selectedCsoportContainerId + " > div.row[data-csoport-id='" + csoportId + "']").remove();
|
||||
|
||||
removeSelectedCsoportFromInputString(csoportId);
|
||||
}
|
||||
|
||||
csoportOrarendTorleseHelper.torles = function () {
|
||||
var form = $(formId);
|
||||
if (form.valid()) {
|
||||
var formData = form.toObject();
|
||||
|
||||
if (formData.hasOwnProperty(feladatellatasiHelyCmbName + "_input")) {
|
||||
delete formData.FeladatellatasiHelyCmb_input;
|
||||
}
|
||||
|
||||
if (formData.hasOwnProperty(feladatellatasiHelyCmbName)) {
|
||||
delete formData.FeladatellatasiHelyCmb;
|
||||
}
|
||||
|
||||
AjaxHelper.DoValidationPost(url.CsoportOrarendekTorlese, formName, formData, OrarendekTorleseHelper.torlesSuccessCallBack);
|
||||
}
|
||||
}
|
||||
|
||||
function addSelectedCsoportToInputString(csoportId) {
|
||||
var json = parseSelectedCsoportokJson();
|
||||
|
||||
json.push({
|
||||
Id: csoportId
|
||||
});
|
||||
|
||||
stringifySelectedCsoportokJson(json);
|
||||
|
||||
$(selectedCsoportokId).valid();
|
||||
}
|
||||
|
||||
function removeSelectedCsoportFromInputString(csoportId) {
|
||||
var json = parseSelectedCsoportokJson();
|
||||
|
||||
json = json.filter(function (obj) {
|
||||
return obj.Id != csoportId;
|
||||
});
|
||||
|
||||
stringifySelectedCsoportokJson(json);
|
||||
|
||||
$(selectedCsoportokId).valid();
|
||||
}
|
||||
|
||||
function parseSelectedCsoportokJson() {
|
||||
var jsonString = $(selectedCsoportokId).val();
|
||||
var jsonObj = null;
|
||||
if (jsonString.length > 0) {
|
||||
jsonObj = CommonUtils.JSONparse(jsonString);
|
||||
}
|
||||
else {
|
||||
jsonObj = [];
|
||||
}
|
||||
return jsonObj;
|
||||
}
|
||||
|
||||
function stringifySelectedCsoportokJson(json) {
|
||||
if (json.length == 0) {
|
||||
$(selectedCsoportokId).val("");
|
||||
}
|
||||
else {
|
||||
$(selectedCsoportokId).val(JSON.stringify(json));
|
||||
}
|
||||
}
|
||||
|
||||
return csoportOrarendTorleseHelper;
|
||||
})();
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
// https://stackoverflow.com/questions/24543862/selecting-multiple-from-an-html-select-element-without-using-ctrl-key
|
||||
$("select").mousedown(function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var select = this;
|
||||
var scroll = select.scrollTop;
|
||||
|
||||
e.target.selected = !e.target.selected;
|
||||
|
||||
CsoportOrarendTorleseHelper.selectOption(e.target);
|
||||
|
||||
setTimeout(function () { select.scrollTop = scroll; }, 0);
|
||||
|
||||
$(select).focus();
|
||||
}).mousemove(function (e) { e.preventDefault() });
|
||||
})
|
||||
</script>
|
|
@ -0,0 +1,95 @@
|
|||
@using Kreta.Web.Areas.Orarend.Models
|
||||
|
||||
@model FelhelyOrarendTorleseModel
|
||||
|
||||
@{
|
||||
var formName = "felhelyOrarendTorleseForm";
|
||||
}
|
||||
|
||||
<style type="text/css">
|
||||
.k-checkbox-label::before {
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
.k-checkbox-label {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
#FelhelyOrarendTorlesVisszaBtn {
|
||||
margin-left: 80px;
|
||||
}
|
||||
|
||||
#felhelyOrarendTorlesTorles {
|
||||
margin-right: 80px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div style="padding: 40px;">@Html.Raw(OrarendekTorleseResource.FelhelyInformaciosSzoveg)</div>
|
||||
@using (Html.KretaForm("FelhelyOrarendekTorlese", Constants.Controllers.OrarendekTorlese, FormMethod.Post, formName))
|
||||
{
|
||||
@Html.KretaValidationSummary()
|
||||
<div style="display: none;">
|
||||
@Html.KretaTextBoxFor(x => x.KivalasztottFelhelyekIds)
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="@BootsrapHelper.GetSizeClasses(12)">
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
<div class="hiba">Feladatellátási helyek:</div>
|
||||
@Html.KretaCheckBoxList("FeladatEllatasiHelyIds", Model.FelhelyList, isPostAsArray: false)
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
@Html.Partial("KozosParameterekView")
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" style="margin-top: 40px;">
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
@Html.KretaButton("FelhelyOrarendTorlesVisszaBtn", CommonResource.Vissza, clickEventName: "OrarendekTorleseHelper.vissza")
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6) BtnDelete">
|
||||
@Html.KretaButton("felhelyOrarendTorlesTorles", CommonResource.Torles, clickEventName: "function () { OrarendekTorleseHelper.torles(FelhelyOrarendTorleseHelper.submitForm); }")
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<script type="text/javascript">
|
||||
var FelhelyOrarendTorleseHelper = (function () {
|
||||
var felhelyOrarendTorleseHelper = function () { };
|
||||
|
||||
var urls = {
|
||||
FelhelyOrarendTorlesUrl: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.OrarendekTorleseApi, action = "FelhelyOrarendekTorlese" })"
|
||||
}
|
||||
|
||||
felhelyOrarendTorleseHelper.submitForm = function () {
|
||||
if ($('#@formName').valid()) {
|
||||
var data = $('#@formName').toObject();
|
||||
AjaxHelper.DoValidationPost(urls.FelhelyOrarendTorlesUrl, "@formName", data, OrarendekTorleseHelper.torlesSuccessCallBack, felhelyOrarendTorleseHelper.error);
|
||||
}
|
||||
}
|
||||
|
||||
felhelyOrarendTorleseHelper.error = function (data) {
|
||||
if (data.responseJSON.ModelState === undefined) {
|
||||
KretaWindowHelper.warningWindow("@Html.Raw(ErrorResource.Hiba)", data.responseJSON.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return felhelyOrarendTorleseHelper;
|
||||
})();
|
||||
|
||||
$(document).ready(function () {
|
||||
$('[name^="FeladatEllatasiHelyIds"]').unbind("change");
|
||||
$('[name^="FeladatEllatasiHelyIds"]').bind("change", felhelychanged);
|
||||
});
|
||||
|
||||
function felhelychanged(e) {
|
||||
var yourArray = [];
|
||||
$("input:checkbox:checked").each(function () {
|
||||
yourArray.push($(this).val());
|
||||
});
|
||||
var a = yourArray.join();
|
||||
var container = $("#KivalasztottFelhelyekIds")
|
||||
container.val(a);
|
||||
container.trigger('keyup');
|
||||
}
|
||||
</script>
|
92
KretaWeb/Areas/Orarend/Views/OrarendekTorlese/Index.cshtml
Normal file
92
KretaWeb/Areas/Orarend/Views/OrarendekTorlese/Index.cshtml
Normal file
|
@ -0,0 +1,92 @@
|
|||
@{
|
||||
Layout = "~/Views/Shared/_MasterLayout.cshtml";
|
||||
}
|
||||
|
||||
<div id="orarendek-torlese-container" class="view-container" style="padding: 40px 0px;"></div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var OrarendekTorleseHelper = (function () {
|
||||
var orarendekTorleseHelper = function () { };
|
||||
|
||||
var popupName = "SelectorPopup";
|
||||
var viewContainerClassName = ".view-container";
|
||||
var oraTipusRdoListContainerId = "#ora-tipus-rdo-list-container";
|
||||
|
||||
var url = {
|
||||
OpenPopup: "@Url.Action("OpenSelectorPopup", Constants.Controllers.OrarendekTorlese, new { area = Constants.Areas.Orarend })",
|
||||
LoadFeladatellatasiHelyView: "@Url.Action("LoadFeladatellatasiHelyView", Constants.Controllers.OrarendekTorlese, new { area = Constants.Areas.Orarend })",
|
||||
LoadOsztalyView: "@Url.Action("LoadOsztalyView", Constants.Controllers.OrarendekTorlese, new { area = Constants.Areas.Orarend })",
|
||||
LoadCsoportView: "@Url.Action("LoadCsoportView", Constants.Controllers.OrarendekTorlese, new { area = Constants.Areas.Orarend })",
|
||||
}
|
||||
|
||||
orarendekTorleseHelper.openSelector = function () {
|
||||
$(viewContainerClassName).empty();
|
||||
var postData = { url: "@Request.Headers["Referer"]" };
|
||||
AjaxHelper.DoPost(url.OpenPopup, postData, selectorPopup);
|
||||
}
|
||||
|
||||
function selectorPopup(data) {
|
||||
var config = KretaWindowHelper.getWindowConfigContainer();
|
||||
config.title = "@OrarendekTorleseResource.OrarendekTorlese";
|
||||
config.content = data;
|
||||
config.width = 500;
|
||||
config.height = 292;
|
||||
|
||||
var modal = KretaWindowHelper.createWindow(popupName, config);
|
||||
KretaWindowHelper.openWindow(modal, true);
|
||||
}
|
||||
|
||||
orarendekTorleseHelper.vissza = function () {
|
||||
KretaWindowHelper.confirmWindow("@CommonResource.Kerdes", "@OrarendekTorleseResource.VisszaConfirmText", orarendekTorleseHelper.openSelector);
|
||||
}
|
||||
|
||||
orarendekTorleseHelper.loadFeladatellatasiHelyView = function () {
|
||||
AjaxHelper.DoPost(url.LoadFeladatellatasiHelyView, null, loadView);
|
||||
$('.view-buttons').removeClass('hidden');
|
||||
}
|
||||
|
||||
orarendekTorleseHelper.loadOsztalyView = function () {
|
||||
AjaxHelper.DoPost(url.LoadOsztalyView, null, loadView);
|
||||
}
|
||||
|
||||
orarendekTorleseHelper.loadCsoportView = function () {
|
||||
AjaxHelper.DoPost(url.LoadCsoportView, null, loadView);
|
||||
}
|
||||
|
||||
orarendekTorleseHelper.visszaUrl = function (url) {
|
||||
window.location = url;
|
||||
}
|
||||
|
||||
function loadView(data) {
|
||||
$(viewContainerClassName).append(data);
|
||||
KretaWindowHelper.destroyWindow(popupName);
|
||||
}
|
||||
|
||||
orarendekTorleseHelper.torles = function (torlesFunction) {
|
||||
KretaWindowHelper.confirmWindow("@CommonResource.Torles", "@OrarendekTorleseResource.TorlesConfirmText", torlesFunction);
|
||||
}
|
||||
|
||||
orarendekTorleseHelper.rdoListOnChange = function () {
|
||||
$(oraTipusRdoListContainerId).find("label.labelError").removeClass("labelError");
|
||||
}
|
||||
|
||||
orarendekTorleseHelper.torlesSuccessCallBack = function (result) {
|
||||
KretaWindowHelper.notification("@OrarendekTorleseResource.TorlesSikeresText", "success");
|
||||
if (!CommonUtils.isNullOrEmpty(result) && result.isBase64()) {
|
||||
var dataUri = "data:text/plain;base64," + result;
|
||||
kendo.saveAs({
|
||||
dataURI: dataUri,
|
||||
fileName: "@OrarendekTorleseResource.ExportZipFileName"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return orarendekTorleseHelper;
|
||||
})();
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
OrarendekTorleseHelper.openSelector();
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,76 @@
|
|||
@using Kreta.Web.Areas.Orarend.Models
|
||||
|
||||
@model BaseOrarendTorleseModel
|
||||
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)" style="padding-top: 20px;">
|
||||
@Html.Raw(OrarendekTorleseResource.OraTipusText)
|
||||
</div>
|
||||
<div id="ora-tipus-rdo-list-container" class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
@Html.KretaRadioButtonListFor(x => x.OraTipus, Model.OraTipusok, isNeedValidation: true, onChangeFunction: "OrarendekTorleseHelper.rdoListOnChange()")
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(4)">
|
||||
@Html.KretaDatePickerFor(x => x.KezdeteDatum).Min(Model.MinDatum).Max(Model.MaxDatum)
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(2)" style="height: 40px; line-height: 40px;">
|
||||
<span>-tól</span>
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(4)">
|
||||
@Html.KretaDatePickerFor(x => x.VegeDatum).Min(Model.MinDatum).Max(Model.MaxDatum)
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(2)" style="height: 40px; line-height: 40px;">
|
||||
<span>-ig</span>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$('label[for^="OraTipus"]').css({ paddingLeft: "2em", lineHeight: "0.7em" });
|
||||
|
||||
var mask = "0000. 00. 00.";
|
||||
var format = "yyyy. MM. dd.";
|
||||
var culture = "en-US";
|
||||
|
||||
var kezdeteDatum = $("#KezdeteDatum");
|
||||
|
||||
kezdeteDatum.kendoMaskedTextBox({
|
||||
mask: mask,
|
||||
culture: culture
|
||||
});
|
||||
|
||||
kezdeteDatum.kendoDatePicker({
|
||||
format: format
|
||||
});
|
||||
|
||||
kezdeteDatum.closest(".k-datepicker")
|
||||
.add(kezdeteDatum)
|
||||
.removeClass("k-textbox");
|
||||
|
||||
var vegeDatum = $("#VegeDatum");
|
||||
|
||||
vegeDatum.kendoMaskedTextBox({
|
||||
mask: mask,
|
||||
culture: culture
|
||||
});
|
||||
|
||||
vegeDatum.kendoDatePicker({
|
||||
format: format
|
||||
});
|
||||
|
||||
vegeDatum.closest(".k-datepicker")
|
||||
.add(vegeDatum)
|
||||
.removeClass("k-textbox");
|
||||
|
||||
$("#orarendek-torlese-container > form").kendoValidator({
|
||||
rules: {
|
||||
dateValidation: function (input, params) {
|
||||
if (input.is("[name$='Datum']") && input.val() != "") {
|
||||
var date = kendo.parseDate(input.val(), format);
|
||||
if (!date) {
|
||||
input.val("");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,312 @@
|
|||
@using Kreta.Web.Areas.Orarend.Models
|
||||
|
||||
@model OsztalyOrarendTorleseModel
|
||||
|
||||
<style>
|
||||
#osztaly-select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#OsztalyOrarendTorlesVisszaBtn {
|
||||
margin-left: 80px;
|
||||
}
|
||||
|
||||
#OsztalyOrarendTorlesTorlesBtn {
|
||||
margin-right: 80px;
|
||||
}
|
||||
|
||||
.selected-torles-btn > button {
|
||||
padding: 3px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@using (Html.KretaForm("OsztalyOrarendTorlesForm"))
|
||||
{
|
||||
@Html.KretaValidationSummary()
|
||||
|
||||
<div class="row">
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
@Html.KretaComboBox("FeladatellatasiHelyCmb", Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetFeladatellatasiHelyWithMukodesiHelyList" }), onChangeFunction: "OsztalyOrarendTorleseHelper.cmbOnChange()", placeholder: CommonResource.PleaseChoose)
|
||||
<select id="osztaly-select" class="form-control" multiple="multiple" style="height: 400px;"></select>
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
<div class="@BootsrapHelper.GetSizeClasses(12)">
|
||||
@Html.Partial("KozosParameterekView")
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(12)" style="margin-top: 40px;">
|
||||
<span class="col-sm-3">@OrarendekTorleseResource.KivalasztottOsztalyok</span>
|
||||
<span class="col-sm-3" style="text-align: center">@OrarendekTorleseResource.OsztalybontottCsoportok</span>
|
||||
<span class="col-sm-3" style="text-align: center">@OrarendekTorleseResource.KapcsolodoCsoportok</span>
|
||||
<div id="selected-osztaly-container" class="col-sm-12"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" style="margin-top: 40px;">
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6)">
|
||||
@Html.KretaButton("OsztalyOrarendTorlesVisszaBtn", CommonResource.Vissza, clickEventName: "OrarendekTorleseHelper.vissza")
|
||||
</div>
|
||||
<div class="@BootsrapHelper.GetSizeClasses(6) BtnDelete">
|
||||
@Html.KretaButton("OsztalyOrarendTorlesTorlesBtn", CommonResource.Torles, clickEventName: "function () { OrarendekTorleseHelper.torles(OsztalyOrarendTorleseHelper.torles); }")
|
||||
</div>
|
||||
</div>
|
||||
<div hidden>
|
||||
@Html.KretaTextBoxFor(x => x.SelectedOsztalyok)
|
||||
</div>
|
||||
}
|
||||
|
||||
<script type="text/javascript">
|
||||
var OsztalyOrarendTorleseHelper = (function () {
|
||||
var osztalyOrarendTorleseHelper = function () { };
|
||||
|
||||
var osztalySelectId = "#osztaly-select";
|
||||
var selectedOsztalyContainerId = "#selected-osztaly-container";
|
||||
var formName = "OsztalyOrarendTorlesForm";
|
||||
var formId = "#" + formName;
|
||||
var selectedOsztalyokId = "#SelectedOsztalyok";
|
||||
var feladatellatasiHelyCmbName = "FeladatellatasiHelyCmb";
|
||||
|
||||
var osztalyList = @Html.Raw(Json.Encode(Model.OsztalyList));
|
||||
|
||||
var url = {
|
||||
OsztalyOrarendekTorlese: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.OrarendekTorleseApi, action = "OsztalyOrarendekTorlese" })"
|
||||
}
|
||||
|
||||
osztalyOrarendTorleseHelper.cmbOnChange = function () {
|
||||
setUpOsztalySelectRows();
|
||||
}
|
||||
|
||||
function setUpOsztalySelectRows() {
|
||||
var feladatellatasiHelyId = KretaComboBoxHelper.getKendoValue(feladatellatasiHelyCmbName);
|
||||
$(osztalySelectId).empty();
|
||||
|
||||
var osztalyokByFeladatellatasiHely = osztalyList.filter(function (o) {
|
||||
return o.FeladatellatasiHelyId == feladatellatasiHelyId;
|
||||
});
|
||||
osztalyokByFeladatellatasiHely.forEach(function (item) {
|
||||
createOptionRow(item);
|
||||
});
|
||||
}
|
||||
|
||||
function createOptionRow(osztaly) {
|
||||
var option = $("<option></option>")
|
||||
.attr("value", osztaly.Id)
|
||||
.append(osztaly.Nev);
|
||||
|
||||
if (osztaly.IsSelected) {
|
||||
option.attr("selected", true);
|
||||
}
|
||||
|
||||
$(osztalySelectId).append(option);
|
||||
}
|
||||
|
||||
osztalyOrarendTorleseHelper.selectOption = function (o) {
|
||||
var osztalyId = $(o).attr("value");
|
||||
if (!CommonUtils.isNullOrUndefined(osztalyId)) {
|
||||
var osztaly = osztalyList.filter(function (osztaly) {
|
||||
return osztaly.Id == osztalyId;
|
||||
})[0];
|
||||
|
||||
osztaly.IsSelected = !osztaly.IsSelected;
|
||||
|
||||
if (osztaly.IsSelected) {
|
||||
createSelection(osztaly);
|
||||
addSelectedOsztalyToInputString(osztaly.Id);
|
||||
}
|
||||
else {
|
||||
osztalyOrarendTorleseHelper.deleteSelection(osztalyId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function createSelection(osztaly) {
|
||||
var nev = $("<div></div>")
|
||||
.addClass("col-sm-3")
|
||||
.append(osztaly.Nev);
|
||||
|
||||
var osztalybontottCsoportokChkName = "OsztalybontottCsoportokChk" + osztaly.Id;
|
||||
var osztalybontottCsoportokChk = $("<input/>")
|
||||
.addClass("k-checkbox")
|
||||
.attr("type", "checkbox")
|
||||
.attr("id", osztalybontottCsoportokChkName)
|
||||
.attr("name", osztalybontottCsoportokChkName)
|
||||
.attr("onclick", "OsztalyOrarendTorleseHelper.osztalybontottOnClick(" + osztaly.Id + ");");
|
||||
var osztalybontottCsoportokLbl = $("<label></label>")
|
||||
.addClass("k-checkbox-label")
|
||||
.attr("for", osztalybontottCsoportokChkName)
|
||||
.css("display", "inline-block");
|
||||
var osztalybontottCsoportok = $("<div></div>")
|
||||
.addClass("col-sm-3")
|
||||
.css("text-align", "center")
|
||||
.append(osztalybontottCsoportokChk)
|
||||
.append(osztalybontottCsoportokLbl);
|
||||
|
||||
var kapcsolodoCsoportokChkName = "KapcsolodCsoportokChk" + osztaly.Id;
|
||||
var kapcsolodoCsoportokChk = $("<input/>")
|
||||
.addClass("k-checkbox")
|
||||
.attr("type", "checkbox")
|
||||
.attr("id", kapcsolodoCsoportokChkName)
|
||||
.attr("name", kapcsolodoCsoportokChkName)
|
||||
.attr("onclick", "OsztalyOrarendTorleseHelper.kapcsolodOnClick(" + osztaly.Id + ");");
|
||||
var kapcsolodoCsoportokLbl = $("<label></label>")
|
||||
.addClass("k-checkbox-label")
|
||||
.attr("for", kapcsolodoCsoportokChkName)
|
||||
.css("display", "inline-block");
|
||||
var kapcsolodoCsoportok = $("<div></div>")
|
||||
.addClass("col-sm-3")
|
||||
.css("text-align", "center")
|
||||
.append(kapcsolodoCsoportokChk)
|
||||
.append(kapcsolodoCsoportokLbl);
|
||||
|
||||
var torlesBtnName = "SelectedTorlesBtn" + osztaly.Id;
|
||||
var torlesBtn = $("<button></button>")
|
||||
.addClass("k-button")
|
||||
.attr("id", torlesBtnName)
|
||||
.attr("onclick", "OsztalyOrarendTorleseHelper.deleteSelection(" + osztaly.Id + ");")
|
||||
.append("@CommonResource.Eltavolitas");
|
||||
var torles = $("<div></div>")
|
||||
.addClass("col-sm-3 BtnDelete selected-torles-btn")
|
||||
.append(torlesBtn);
|
||||
|
||||
var row = $("<div></div>")
|
||||
.addClass("row")
|
||||
.attr("data-osztaly-id", osztaly.Id)
|
||||
.append(nev)
|
||||
.append(osztalybontottCsoportok)
|
||||
.append(kapcsolodoCsoportok)
|
||||
.append(torles);
|
||||
|
||||
$(selectedOsztalyContainerId).append(row);
|
||||
}
|
||||
|
||||
osztalyOrarendTorleseHelper.deleteSelection = function (osztalyId) {
|
||||
var osztaly = osztalyList.filter(function (o) {
|
||||
return o.Id == osztalyId;
|
||||
})[0];
|
||||
|
||||
osztaly.IsSelected = false;
|
||||
|
||||
setUpOsztalySelectRows();
|
||||
|
||||
$(selectedOsztalyContainerId + " > div.row[data-osztaly-id='" + osztalyId + "']").remove();
|
||||
|
||||
removeSelectedOsztalyIdFromInputString(osztalyId);
|
||||
}
|
||||
|
||||
osztalyOrarendTorleseHelper.torles = function () {
|
||||
var form = $(formId);
|
||||
if (form.valid()) {
|
||||
var formData = form.toObject();
|
||||
|
||||
if (formData.hasOwnProperty(feladatellatasiHelyCmbName + "_input")) {
|
||||
delete formData.FeladatellatasiHelyCmb_input;
|
||||
}
|
||||
|
||||
if (formData.hasOwnProperty(feladatellatasiHelyCmbName)) {
|
||||
delete formData.FeladatellatasiHelyCmb;
|
||||
}
|
||||
|
||||
AjaxHelper.DoValidationPost(url.OsztalyOrarendekTorlese, formName, formData, OrarendekTorleseHelper.torlesSuccessCallBack);
|
||||
}
|
||||
}
|
||||
|
||||
function addSelectedOsztalyToInputString(osztalyId) {
|
||||
var json = parseSelectedOsztalyokJson();
|
||||
|
||||
json.push({
|
||||
Id: osztalyId,
|
||||
IsKellKapcsolodoCsoportok: false,
|
||||
IsKellOsztalybontottCsoportok: false,
|
||||
});
|
||||
|
||||
stringifySelectedOsztalyokJson(json);
|
||||
|
||||
$(selectedOsztalyokId).valid();
|
||||
}
|
||||
|
||||
function removeSelectedOsztalyIdFromInputString(osztalyId) {
|
||||
var json = parseSelectedOsztalyokJson();
|
||||
|
||||
json = json.filter(function (obj) {
|
||||
return obj.Id != osztalyId;
|
||||
});
|
||||
|
||||
stringifySelectedOsztalyokJson(json);
|
||||
|
||||
$(selectedOsztalyokId).valid();
|
||||
}
|
||||
|
||||
function parseSelectedOsztalyokJson() {
|
||||
var jsonString = $(selectedOsztalyokId).val();
|
||||
var jsonObj = null;
|
||||
if (jsonString.length > 0) {
|
||||
jsonObj = CommonUtils.JSONparse(jsonString);
|
||||
}
|
||||
else {
|
||||
jsonObj = [];
|
||||
}
|
||||
return jsonObj;
|
||||
}
|
||||
|
||||
function stringifySelectedOsztalyokJson(json) {
|
||||
if (json.length == 0) {
|
||||
$(selectedOsztalyokId).val("");
|
||||
}
|
||||
else {
|
||||
$(selectedOsztalyokId).val(JSON.stringify(json));
|
||||
}
|
||||
}
|
||||
|
||||
osztalyOrarendTorleseHelper.osztalybontottOnClick = function (osztalyId) {
|
||||
var json = parseSelectedOsztalyokJson();
|
||||
|
||||
var osztaly = json.filter(function (obj) {
|
||||
return obj.Id == osztalyId;
|
||||
})[0];
|
||||
|
||||
osztaly.IsKellOsztalybontottCsoportok = !osztaly.IsKellOsztalybontottCsoportok;
|
||||
|
||||
stringifySelectedOsztalyokJson(json);
|
||||
}
|
||||
|
||||
osztalyOrarendTorleseHelper.kapcsolodOnClick = function (osztalyId) {
|
||||
var json = parseSelectedOsztalyokJson();
|
||||
|
||||
var osztaly = json.filter(function (obj) {
|
||||
return obj.Id == osztalyId;
|
||||
})[0];
|
||||
|
||||
osztaly.IsKellKapcsolodoCsoportok = !osztaly.IsKellKapcsolodoCsoportok;
|
||||
if (osztaly.IsKellKapcsolodoCsoportok) {
|
||||
osztaly.IsKellOsztalybontottCsoportok = true;
|
||||
$('#OsztalybontottCsoportokChk' + osztaly.Id).prop("checked", true).attr("disabled", true);
|
||||
}
|
||||
else {
|
||||
$('#OsztalybontottCsoportokChk' + osztaly.Id).removeAttr("disabled");
|
||||
}
|
||||
|
||||
stringifySelectedOsztalyokJson(json);
|
||||
}
|
||||
|
||||
return osztalyOrarendTorleseHelper;
|
||||
})();
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
// https://stackoverflow.com/questions/24543862/selecting-multiple-from-an-html-select-element-without-using-ctrl-key
|
||||
$("select").mousedown(function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var select = this;
|
||||
var scroll = select.scrollTop;
|
||||
|
||||
e.target.selected = !e.target.selected;
|
||||
|
||||
OsztalyOrarendTorleseHelper.selectOption(e.target);
|
||||
|
||||
setTimeout(function () { select.scrollTop = scroll; }, 0);
|
||||
|
||||
$(select).focus();
|
||||
}).mousemove(function (e) { e.preventDefault() });
|
||||
})
|
||||
</script>
|
|
@ -0,0 +1,36 @@
|
|||
<style>
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: 100%;
|
||||
|
||||
}
|
||||
|
||||
.grid-item {
|
||||
text-align: center;
|
||||
margin-top: 36px;
|
||||
}
|
||||
|
||||
.container-fluid:before {
|
||||
content: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="grid-container">
|
||||
|
||||
<div class="grid-item">
|
||||
@Html.KretaButton("FeladatelltasiHelyOrarendTorlesBtn", OrarendekTorleseResource.FeladatellatasiHelyekOrarendjenekTorlese, clickEventName: "OrarendekTorleseHelper.loadFeladatellatasiHelyView", htmlAttributes: new Dictionary<string, object> { { "style", "width: 350px;" } })
|
||||
</div>
|
||||
<div class="grid-item">
|
||||
@Html.KretaButton("OsztalyOrarendTorlesBtn", OrarendekTorleseResource.OsztalyokOrarendjenekTorlese, clickEventName: "OrarendekTorleseHelper.loadOsztalyView", htmlAttributes: new Dictionary<string, object> { { "style", "width: 350px;" } })
|
||||
</div>
|
||||
<div class="grid-item">
|
||||
@Html.KretaButton("CsoportOrarendTorlesBtn", OrarendekTorleseResource.CsoportokOrarendjenekTorlese, clickEventName: "OrarendekTorleseHelper.loadCsoportView", htmlAttributes: new Dictionary<string, object> { { "style", "width: 350px;" } })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$(".k-window-actions").hide();
|
||||
$(".modalOuter").css("height", "100%");
|
||||
});
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue