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);
- }
- };
- }
- }
- });
|