$(function () { "use strict"; var TEXTAREA_HEIGHT_MAX = 420, TEXTAREA_HEIGHT_MIN = 240; BWA.Popup = BWA.Popup || {}; BWA.Popup.UserLicense = { create: function (viewModel, params) { // 다운로드 기능은 다른 창으로 url를 열면 될 듯하다. var userDataModel = viewModel.dataModel, popupVisible = ko.observable(false), position = ko.observable(), isNewData = ko.observable(false), isVisibleDeleteButton = ko.observable(true), isVisibleSaveButton = ko.observable(false), timerObj = { timer: null }, mainPopupElement = params.mainPopupElement ; BWA.db.FmsDrawingHistory.modified.add(function () { reloadDrawingHistory(drawingId()); historyGridView.refresh(); }); function handleButtonSave() { historyViewModel.SiteId(BWA.UserInfo.SiteId()); historyViewModel.DrawingId(drawingId()); if (isNewData()) { if (_.isUndefined(historyViewModel.FileId())) { utils.toast.show('도면 파일을 업로드하여 주십시오.', 'error'); return; } historyViewModel.UpdatedDate(new Date()); historyViewModel.UpdatedUserId(BWA.UserInfo.UserId()); BWA.db.FmsDrawingHistory.insert(historyViewModel.toJS()).done(function (res) { utils.toast.show('도면 이력 항목이 성공적으로 저장되었습니다.'); dropZone.resetUploadedFileInfo(); popupVisible(false); }); } else { historyViewModel.RevisionNo(undefined); historyViewModel.FileId(undefined); historyViewModel.UpdatedDate(undefined); historyViewModel.UpdatedUserId(undefined); var keys = BWA.db.extractKeysObject('FmsDrawingHistory', historyViewModel); BWA.db.FmsDrawingHistory.update(keys, historyViewModel.toJS()).done(function (res) { utils.toast.show('도면 이력 항목이 성공적으로 저장되었습니다.'); popupVisible(false); }); } } function handleButtonDelete() { var keys = BWA.db.extractKeysObject('FmsDrawingHistory', historyViewModel); BWA.db.FmsDrawingHistory.remove(keys).done(function () { BWA.db.CmFile.remove({ SiteId: historyViewModel.SiteId(), FileId: historyViewModel.FileId() }).done(function () { utils.toast.show('도면 이력 항목 삭제 처리가 성공하였습니다.'); popupVisible(false); }); }); } function setupDropzone() { if (_.isNull(dropZone)) { dropZone = BWA.DropZone.create({ id: '#drawingHistoryFileUpload', categoryId: $Code.FileCategory.DRAWING, uploadedFileInfo: uploadedFileInfo, handleSuccess: function (fileInfo) { historyViewModel.FileId(fileInfo.FileId); }, handleRemovedFile: function () { historyViewModel.FileId(null); }, }); } } popupVisible.subscribe(utils.popup.getAttachFunc('#popupDetail', timerObj, position)); position.subscribe(function (value) { console.log(value); }); isNewData.subscribe(function (isNew) { // isVisibleDeleteButton(isNew === false); textAreaHistoryNoteHeight(isNew ? TEXTAREA_HEIGHT_MIN : TEXTAREA_HEIGHT_MAX); if (isNew && popupVisible()) { isVisibleDropZone('visible'); } else { isVisibleDropZone('hidden'); } }); viewModel.popupVisible.subscribe(function (value) { if (value === false) { popupVisible(false); } }); viewModel.isEditModeInPopup.subscribe(function (value) { if (value === false && isNewData()) { popupVisible(false); } isVisibleSaveButton(value); isVisibleDeleteButton(!value); }); return { visible: popupVisible, isNewData: isNewData, show: function () { popupVisible(true); }, hide: function () { popupVisible(false); }, popupOptions: { width: '480px', height: '616px', dragEnabled: false, position: position, visible: popupVisible, showingAction: function () { }, closeOnOutsideClick: false, shading: false, animation: { show: { type: "slide", duration: 150, from: { left: '-=10', opacity: 0 }, to: { opacity: 1 } }, hide: { type: "slide", duration: 150, from: { left: '-=10', opacity: 1 }, to: { opacity: 0 } } }, shownAction: function () { if (isNewData()) { isVisibleDropZone('visible'); } else { isVisibleDropZone('hidden'); } setupDropzone(); }, hidingAction: function () { dropZone.dispose(uploadedFileInfo); } }, toolbarItems: [ { location: 'before', text: $G('drawingHistoryDetailInfo') }, { location: 'after', widget: 'button', options: { text: $G('save'), icon: 'save', visible: isVisibleSaveButton, disabled: viewModel.hasnotModificationPermission, clickAction: handleButtonSave } }, { location: 'after', widget: 'button', options: { text: $G('delete'), icon: 'remove', type: 'danger', visible: isVisibleDeleteButton, disabled: viewModel.hasnotModificationPermission, clickAction: handleButtonDelete } }, { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: function () { popupVisible(false); } } } ], setDrawingHistoryGridViewInstance: function (instance) { historyGridView = instance; }, setSelectedDrawingHistory: function (history) { isNewData(false); BWA.DataUtil.copyViewModel(history, historyViewModel); historyViewModel.FileName(history['CmFile/Name']()); historyViewModel.UpdatedUserName(history['CmUser/Name']()); console.log(historyViewModel.toJS()); }, handleInsertDrawingHistory: function () { isNewData(true); BWA.DataUtil.resetDataModel(_.omit(historyViewModel, 'DrawingId')); var maxHistory = _.max(drawingHistories(), function (x) { return x.RevisionNo(); }); historyViewModel.RevisionNo(maxHistory.RevisionNo() + 1); historyViewModel.UpdatedUserName(BWA.UserInfo.Name()); popupVisible(true); } }; } } });