'use strict';
|
|
define([
|
'app'
|
],
|
function (app) {
|
app.controller('issueReservationController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$filter', 'parameter', 'IssueReservation',
|
function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $filter, parameter, IssueReservation) {
|
|
$scope.fn = {
|
cancel : cancel, // 팝업 창 닫기
|
formSubmit : formSubmit, // 폼 전송
|
formCheck : formCheck, // 폼 체크
|
initReservation : initReservation, // 이슈 발생 예약 정보를 초기화한다.
|
getIssueReservation : getIssueReservation // 이슈 발생 예약 정보를 조회한다.
|
};
|
|
$scope.vm = {
|
form : {
|
id : "",
|
issueId : parameter.issueId, // 이슈 번호
|
issueReservationType : "", // 예약 유형
|
reservation : "", // 예약일
|
reservationMonth : "", // 예약 유형이 매년 일때 월
|
reservationDay : "" // 예약 유형이 매년 일때 일
|
}
|
};
|
|
// 이슈 발생 예약 정보를 초기화한다.
|
function initReservation() {
|
$scope.vm.form.reservation = "";
|
$scope.vm.form.reservationMonth = "";
|
$scope.vm.form.reservationDay = "";
|
}
|
|
// 폼 체크
|
function formCheck(formInvalid) {
|
if (formInvalid) {
|
return true;
|
}
|
|
return false;
|
}
|
|
// 폼 전송
|
function formSubmit() {
|
$rootScope.spinner = true;
|
|
var content = {
|
id : $scope.vm.form.id,
|
issueId : $scope.vm.form.issueId,
|
issueReservationType : $scope.vm.form.issueReservationType,
|
reservation : (function () {
|
var reservation = $scope.vm.form.reservation;
|
|
if ($scope.vm.form.issueReservationType === "YEAR") {
|
reservation = $scope.vm.form.reservationMonth + "-" + $scope.vm.form.reservationDay;
|
}
|
|
return reservation;
|
|
})()
|
};
|
|
IssueReservation.modify($resourceProvider.getContent(
|
content,
|
$resourceProvider.getPageContent(0, 10))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.vm.form.id = result.data.data.id;
|
$scope.fn.cancel();
|
SweetAlert.success($filter("translate")("issue.succeededIssueReservation"), result.data.message.messages); // 이슈 발생 예약 저장 성공
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedIssueReservation"), result.data.message.messages); // 이슈 발생 예약 저장 실패
|
}
|
|
$rootScope.spinner = false;
|
});
|
}
|
|
// 이슈 발생 예약 정보를 조회한다.
|
function getIssueReservation() {
|
$rootScope.spinner = true;
|
|
IssueReservation.detail($resourceProvider.getContent(
|
{
|
issueId : $scope.vm.form.issueId
|
},
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
$scope.vm.form.id = result.data.data.id;
|
$scope.vm.form.issueReservationType = result.data.data.issueReservationType;
|
|
if ($scope.vm.form.issueReservationType === "YEAR") {
|
var reservationDate = result.data.data.reservation.split("-");
|
|
$scope.vm.form.reservationMonth = reservationDate[0];
|
$scope.vm.form.reservationDay = reservationDate[1];
|
|
}
|
else {
|
$scope.vm.form.reservation = result.data.data.reservation;
|
}
|
|
}
|
else {
|
SweetAlert.error($filter("translate")("issue.failedToIssueReservationDetails"), result.data.message.message); // 이슈 발생 예약 상세 조회 실패
|
}
|
|
$rootScope.spinner = false;
|
});
|
}
|
|
// 팝업 창 닫기
|
function cancel() {
|
$rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정
|
$uibModalInstance.dismiss('cancel');
|
$(document).unbind("keydown"); // 단축키 이벤트 제거
|
}
|
|
// 이슈 발생 예약 정보를 조회한다.
|
$scope.fn.getIssueReservation();
|
}]);
|
});
|