| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 | BemsWebApplication.CheckGroupManagement = function(params, viewInfo) {    "use strict";    var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true);    var businessFields = ko.observableArray(),        searchBusinessFields = ko.observableArray();    var factory = BemsWebApplication.Factory.CheckGroup;    var deferredForSearch = new $.Deferred();    var selectedCheckGroupId;    var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsFacilityScheduleCheckGroup', {        dataSourceOptions: factory.getDataSourceOptions(),        columns: factory.defaultColumns,        promiseDataInSearchView: deferredForSearch.promise(),        searchViewItems: [            { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: searchBusinessFields },            { id: 'Name' }        ],        handleViewShowing: function() {            businessFieldDataSource.load().done(function(result) {                businessFields(result);                searchBusinessFields($SearchView.createDefaultArray('BusinessFieldId').slice(0).concat(businessFields()));                deferredForSearch.resolve();            });        },        handlePopupShowing: function(that) {        },        handlePopupShown: function(that) {            var targetFacilityDataGrid = $('#gridTargetFacilityContainer').dxDataGrid('instance');            targetFacilityDataGrid.filter([                ['SiteId', '=', BWA.UserInfo.SiteId()],                'and',                ['CheckGroupId', '=', selectedCheckGroupId]            ]);        },        handleDataGridRowClick: function(id, dataGrid, clickRow, popupVisible) {            dataGrid.clearSelection();            var data = clickRow.data;            var dataModel = viewModel.dataModel;            dataModel.BusinessFieldName = $KoSet(dataModel.BusinessFieldName, data.BusinessFieldName);            selectedCheckGroupId = data.CheckGroupId();            popupVisible(true);        },        handleSaveButtonInPopup: function() {            return BemsWebApplication.api.postWithDataGrid('FmsFacilityScheduleCheckGroupToFacility', 'gridFacilityContainer', {                SiteId: BWA.UserInfo.SiteId(),                CheckGroupId: selectedCheckGroupId,                FacilityCode: null            });            //var facilityDataGrid = $( '#gridFacilityContainer' ).dxDataGrid( 'instance' );            //var items = facilityDataGrid.getSelectedRowsData();            //var postData = [];            //$.each( items, function( i, item ) {            //    postData.push( {            //        SiteId: $KoValue( item.SiteId ),            //        CheckGroupId: selectedCheckGroupId,            //        FacilityCode: $KoValue( item.FacilityCode )            //    } );            //} );            //BemsWebApplication.api.post( 'FmsFacilityScheduleCheckGroupToFacility', postData );        },        handleInitializeDataModelValue: function(v) {            v.WorkTypeId($Code.WorkType.REGULAR_CHECK);        }    });    var targetFacilityDataSource = BWA.DataUtil.createDataSource({        dataSourceOptions: {            store: BemsWebApplication.odata.CheckGroupTargetFacility,            select: [                'SiteId', 'CheckGroupId', 'FacilityCode', 'ParentFacilityName', 'FirstClassName', 'SecondClassName', 'ThirdClassName', 'Name', 'Nickname',                'BuildingName', 'FloorName', 'ZoneName', 'ManufactureModel', 'MainContactorUserName', 'SubContactorUserName'            ]        }    });    var facilityDataSource = BWA.DataUtil.createDataSource({        dataSourceOptions: {            store: BemsWebApplication.odata.Facility,            select: [                'SiteId', 'FacilityCode', 'ParentFacilityName', 'FirstClassName', 'SecondClassName', 'ThirdClassName', 'Name', 'Nickname',                'BuildingName', 'FloorName', 'ZoneName', 'ManufactureModel', 'MainContactorUserName', 'SubContactorUserName'            ]        }    });    var cellPrepared = function(cellElement, cellInfo) {        switch (cellInfo.column.dataField) {            case 'ClassName':            {                $(cellElement).text(cellInfo.data.FirstClassName() + '-' + cellInfo.data.SecondClassName() + '-' + cellInfo.data.ThirdClassName());                break;            }            case 'Name':            {                $(cellElement).text(cellInfo.data.Name() + ' / ' + cellInfo.data.Nickname());                break;            }            case 'Location':            {                $(cellElement).text(cellInfo.data.BuildingName() + ' ' + cellInfo.data.FloorName() + ' ' + cellInfo.data.ZoneName());                break;            }        }    }    var dataGridOptions = {        dxDataSource: targetFacilityDataSource,        columns: [            { dataField: 'ClassName', caption: $G('facilityClassName'), width: '25%', alignment: 'center', allowFiltering: false },            { dataField: 'Name', caption: $G('facilityName'), width: '25%', alignment: 'center' },            { dataField: 'MainContactorUserName', caption: $G('facilityMainContactorUserName'), width: '15%', alignment: 'center', allowFiltering: false },            { dataField: 'SubContactorUserName', caption: $G('facilitySubContactorUserName'), width: '15%', alignment: 'center', allowFiltering: false },            { dataField: 'Location', caption: $G('facilityLocation'), width: '20%', alignment: 'center' }        ]    };    viewModel.isNewInPopup.subscribe(function(value) {        if (value) {            var facilityDataGrid = $('#gridFacilityContainer').dxDataGrid('instance');            if (facilityDataGrid !== undefined) facilityDataGrid.clearSelection();        }    });    viewModel.isEditModeInPopup.subscribe(function(value) {        var facilityDataGrid = $('#gridFacilityContainer').dxDataGrid('instance');        var targetFacilityDataGrid = $('#gridTargetFacilityContainer').dxDataGrid('instance');        if (facilityDataGrid !== undefined && value) {            facilityDataGrid.clearSelection();            var items = targetFacilityDataGrid._controllers.data._dataSource._items;            var keys = [];            $.each(items, function(i, item) {                keys.push({                    FacilityCode: item.FacilityCode(),                    SiteId: item.SiteId()                });            });            facilityDataGrid.selectRows(keys);        }        else {        }    });    viewModel.tabsItems = [        { text: '기본 정보' },        { text: '대상 시설' }    ];    viewModel.currentTabIndex = ko.observable(0);    var dataModel = viewModel.dataModel;    viewModel.multiViewItems = [        {            dataModel: dataModel,            viewModel: viewModel,            template: 'generalInfo'        },        {            dataModel: dataModel,            viewModel: viewModel,            facilityDataGridOptions: utils.datagrid.defaultOptions($.extend({}, dataGridOptions, {                visible: viewModel.isEditModeInPopup,                dxDataSource: facilityDataSource,                selection: { mode: 'multiple', allowSelectAll: true },                cellPrepared: BemsWebApplication.Factory.Facility.cellPrepared            })),            targetFacilityDataGridOptions: utils.datagrid.defaultOptions($.extend({}, dataGridOptions, {                visible: viewModel.viewModeInPopup,                dxDataSource: targetFacilityDataSource,                cellPrepared: BemsWebApplication.Factory.Facility.cellPrepared,                contentReadyAction: function(e) {                    console.log(e.model);                }            })),            template: 'targetFacility'        }    ];    viewModel.businessFields = businessFields;    return viewModel;};
 |