| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 | $(function () {    'use strict';    BWA.Popup = BWA.Popup || {};    BWA.Popup.VirtualFacility = {        create: function (viewModel, selectedTreeItem) {            var facilityTypeDataSource = BemsWebApplication.db.createDataSource('BemsFacilityType'),                CmfacilityTypeDataSource = BemsWebApplication.db.createDataSource('CmFacility'),                facilityTypes = ko.observableArray(),                FacilityTypeInfo = ko.observableArray(),                isNew = ko.observable(false),                popupVisible = ko.observable(),                isEditMode = ko.observable(false),                isViewMode = ko.observable(true),                cancelButtonVisible = ko.observable(true),                facilityDataModel = new BWA.CmFacilityViewModel(),                popupOptions = {                    position: { offset: '-450 0' },                    width: '520px',                    height: 'auto',                    //shading: false,                    shadingColor: 'rgba(0,0,0,0.0)',                    visible: popupVisible,                    closeOnOutsideClick: false,                    animation: utils.popup.createAnimation(),                    shownAction: function () {                    },                },                toolbarItems = [                    { location: 'before', text: $G('detailInfo') },                    { location: 'after', widget: 'button', options: { text: $G('edit'), icon: 'edit', visible: isViewMode, disabled: viewModel.hasnotModificationPermission, clickAction: handlePopupButtonEdit } },                    { location: 'after', widget: 'button', options: { text: $G('delete'), type: 'danger', icon: 'remove', visible: isViewMode, disabled: viewModel.hasnotModificationPermission, clickAction: handlePopupButtonDelete } },                    { location: 'after', widget: 'button', options: { text: $G('cancel'), icon: 'cancel', visible: cancelButtonVisible, clickAction: handlePopupButtonCancel } },                    { location: 'after', widget: 'button', options: { text: $G('save'), icon: 'save', visible: isEditMode, disabled: viewModel.hasnotModificationPermission, clickAction: handlePopupButtonSave } },                    { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handlePopupButtonClose } }                ]            ;            facilityDataModel.FacilityTypeName = ko.observable();            isEditMode.subscribe(function (isEdit) {                isViewMode(!isEdit);            });            var facilityTempName = ko.observable();            var EditNameDev;            function handlePopupButtonEdit() {                isEditMode(true);                cancelButtonVisible(true);                facilityTempName(facilityDataModel.toJS().Name);            }            function handlePopupButtonCancel() {                facilityDataModel.Name(facilityTempName());                isEditMode(false);                cancelButtonVisible(false);            }            function handlePopupButtonClose() {                facilityDataModel.Name(undefined);      // 팝업에 기존 이름 보이기 방지                popupVisible(false);            }            function refreshList() {                CmfacilityTypeDataSource.filter([                    ["SiteId", "=", BWA.UserInfo.SiteId()]                ]);                CmfacilityTypeDataSource.load().done(function (result) {                    FacilityTypeInfo(result);                });                if (selectedTreeItem())                    $('#facilityTreeView').cwTreeView('reload', selectedTreeItem().parentData);            }            function getDoneFunc(messageId) {                return function () {                    refreshList();                    popupVisible(false);                    utils.toast.show($G(messageId));                };            }            function handlePopupButtonDelete() {                BWA.db.CmFacility.remove(                    BWA.DataUtil.pickKeys(facilityDataModel, 'CmFacility')                ).done(getDoneFunc('successDatabaseDeleteMsg'));                facilityDataModel.Name(undefined);      // 팝업에 기존 이름 보이기 방지            }            function handlePopupButtonSave() {                var dfd = $.Deferred();                var isDuplicated = false;                for (var i = 0; i < FacilityTypeInfo().length; i++) {                    if (facilityDataModel.toJS().Name == FacilityTypeInfo()[i].Name() && EditNameDev != FacilityTypeInfo()[i].Name()) {                        isDuplicated = true;                        break;                    }                }                if (!BWA.DataUtil.isValidInputValue(facilityDataModel.toJS().Name)) {                    utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');                    return 0;                }                else {                    if (isDuplicated) {                        utils.toast.show('이미 동일 명칭이 존재합니다.', 'error');                        return 0;                    }                    else {                        if (isNew()) {                            facilityDataModel.SiteId(BWA.UserInfo.SiteId());                            BWA.db.CmFacility.insert(facilityDataModel.toJS()).done(getDoneFunc('successDatabaseInsertionMsg'));                        }                        else {                            BWA.db.CmFacility.update(                                BWA.DataUtil.pickKeys(facilityDataModel, 'CmFacility'),                                facilityDataModel.toJS()                            ).done(getDoneFunc('successDatabaseUpdateMsg'));                        }                    }                }                facilityDataModel.Name(undefined);      // 팝업에 기존 이름 보이기 방지            }            function handleViewShown() {                refreshList();                facilityDataModel.SiteId(BWA.UserInfo.SiteId());                facilityTypeDataSource.load().done(function (dbFacilityTypes) {                    facilityTypes(dbFacilityTypes);                });            }            return {                facilityTypes: facilityTypes,                dataModel: facilityDataModel,                isNew: isNew,                isEditMode: isEditMode,                options: popupOptions,                toolbarItems: toolbarItems,                handleViewShown: handleViewShown,                show: function (facilityJson, EditName) {                    if (_.isUndefined(facilityJson)) {                        // 등록                        isNew(true);                        isEditMode(true);                        cancelButtonVisible(false);                        facilityDataModel.FacilityTypeId(99);                        facilityDataModel.IsVirtualFacility(true);                    }                    else {                        isNew(false);                        isEditMode(false);                        cancelButtonVisible(false);                        facilityDataModel.fromJS(facilityJson);                        facilityDataModel.FacilityTypeName(facilityJson['BemsFacilityType/Name']);                    }                    EditNameDev = EditName;                    popupVisible(true);                }            };        }    }});
 |