Server_AccessControl/web/js/assign.js

215 lines
7.3 KiB
JavaScript

$(function () {
$("#schedule-department-tree").height($("#create-schedule-main").height() - 28);
$("#schedule-door-lists").height($("#create-schedule-main").height() - 28);
checkboxInit();
$('#checkbox-staff-schedule-all').iCheck({
checkboxClass: 'icheckbox_flat-red'
});
$('#checkbox-staff-schedule-all').on('ifChanged', function (event) {
if (event.target.checked) {
$('.checkbox-staff-schedule').iCheck('check');
} else {
$('.checkbox-staff-schedule').iCheck('uncheck');
}
});
});
var schedule = {};
schedule.tree = function (e) {
var stt = $(e).attr("data-stt");
if (stt === "true") {
$(e).removeClass("fa-minus-square-o").addClass("fa-plus-square-o").attr("data-stt", "false");
$("#sub-department-schedule-" + $(e).attr("data")).addClass("hidden");
} else {
$(e).removeClass("fa-plus-square-o").addClass("fa-minus-square-o").attr("data-stt", "true");
$("#sub-department-schedule-" + $(e).attr("data")).removeClass("hidden");
}
};
schedule.chooseDepartment = function (e) {
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
success: function (data) {
common.modalBlock(false);
$("#btn-check-all").removeClass("hidden");
$("input[name='currentDepartment']").val($(e).attr("data"));
$("#schedule-search-staff").html(data);
$(".department-schedule").removeClass("department-schedule-active");
$(e).addClass("department-schedule-active");
$("#staff-list").on('pjax:success', function () {
common.checkboxInit("staff-schedule");
if ($("#checkbox-staff-schedule-all:checked").length > 0)
$('.checkbox-staff-schedule').iCheck('check');
});
common.checkboxInit("staff-schedule");
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
};
schedule.searchStaff = function (e) {
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
data: {
key: $(e).val()
},
success: function (data) {
common.modalBlock(false);
$("#btn-check-all").addClass("hidden");
$("#schedule-search-staff").html(data);
$(".department-schedule").removeClass("department-schedule-active");
common.checkboxInit("staff-schedule");
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
};
schedule.setSchedule = function (e) {
var staffs = [];
$.each($("input[name='checkbox-staff-schedule']:checked"), function () {
if ($(this).val() !== "0") {
staffs.push($(this).val());
}
});
if (staffs.length == 0) {
alert("Hãy chọn nhân viên");
return;
}
var doors = [];
$.each($("input[name='checkbox-door-schedule']:checked"), function () {
if ($(this).val() !== "0") {
doors.push($(this).val());
}
});
if (doors.length == 0) {
alert("Hãy chọn cửa");
return;
}
var all = false;
if ($("#checkbox-staff-schedule-all:checked").length > 0)
all = true;
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
data: {
schedule: $("select[name='ScheduleLists']").val(),
doors: doors,
staffs: staffs,
currentDepartment: $("input[name='currentDepartment']").val(),
all: all
},
success: function (data) {
common.modalBlock(false);
notification.success("Đã lưu thông tin", 1000);
$.each($("input[name='checkbox-staff-schedule']:checked"), function () {
if ($(this).val() !== "0") {
var id = $(this).val();
$("#schedule-staff-results-" + id).html(data.schedule);
var alert = "";
var hidden = "";
if (data.doors.length <= 2) {
alert = "<div id='short-{$model->id}'>" + data.doors.join("<br>") + "</div>";
} else {
alert = "<div id='short-" + id + "'>" + data.doors[0] + "<br>" + data.doors[1] + "<br><a href='#' onclick='openDoorList(this, true);return false;' data='" + id + "'><i class='fa fa-chevron-down'></i> Xem thêm</a></div>";
hidden = "<div id='full-" + id + "' class='hidden'>" + data.doors.join("<br>") + "<br><a href='#' onclick='openDoorList(this, false);return false;' data='" + id + "'><i class='fa fa-chevron-up'></i> Thu gọn</a></div>";
}
$("#schedule-door-results-" + id).html(alert + hidden);
}
});
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
};
function openDoorList(e, stt) {
var id = $(e).attr("data");
if (stt) {
$("#short-" + id).addClass("hidden");
$("#full-" + id).removeClass("hidden");
} else {
$("#short-" + id).removeClass("hidden");
$("#full-" + id).addClass("hidden");
}
}
function filterDevice(e) {
var data = $(e).val();
if (data === "") {
if ($("#FilterArea").val() !== "") {
$(".door-lists-" + $("#FilterArea").val()).removeClass("hidden");
} else {
$(".door-lists").removeClass("hidden");
}
} else {
$(".door-lists").addClass("hidden");
$(".door-lists-" + data).removeClass("hidden");
}
}
function filterArea(e) {
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
data: {
area: $(e).val()
},
success: function (data) {
$("#deviceFilterForm").html(data);
var value = $(e).val();
$("#FilterDevice").val("");
if (value === "") {
$(".door-lists").removeClass("hidden");
filterAllDevice();
} else {
$(".door-lists").addClass("hidden");
$(".door-lists-" + value).removeClass("hidden");
}
},
error: function (jqXHR, textStatus, errorThrown) {
common.ajaxError();
}
});
}
function filterAllDevice() {
$.ajax({
url: $("input[name='filter_all_device_url']").val(),
type: 'POST',
success: function (data) {
$("#deviceFilterForm").html(data);
},
error: function (jqXHR, textStatus, errorThrown) {
common.ajaxError();
}
});
}
function checkboxInit() {
$('.checkbox-door-schedule').iCheck({
checkboxClass: 'icheckbox_flat-blue'
});
$('#checkall-door-schedule').on('ifChanged', function (event) {
$.each($('.checkbox-door-schedule'), function () {
if (!$(this).closest("tr").hasClass("hidden")) {
if (event.target.checked) {
$(this).iCheck('check');
} else {
$(this).iCheck('uncheck');
}
}
});
});
}