215 lines
7.3 KiB
JavaScript
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');
|
|
}
|
|
}
|
|
});
|
|
});
|
|
} |