123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- BemsWebApplication.PatrolGroup = function (params, viewInfo) {
- "use strict";
-
- var PI_SEARCH = 0,
- PI_MODIFICATION = 1,
- PI_BUSINESS_FIELD = 2;
- var selectedUserData = ko.observable();
- var eq = BWA.DataUtil.constructEqualFilter;
- var and = BWA.DataUtil.andFilter;
- selectedUserData.subscribe(function (value) {
- if (isMainContactor) {
- viewModel.dataModel.MainContactorUserId(value.UserId);
- viewModel.dataModel.MainContactorUserName(value.Name);
- }
- else {
- viewModel.dataModel.SubContactorUserId(value.UserId);
- viewModel.dataModel.SubContactorUserName(value.Name);
- }
- });
- var CmPatrolGroupDataSource = BemsWebApplication.db.createDataSource('CmPatrolGroup');
- var PatrolGroupInfo = ko.observableArray();
- var RowName;
- var PatrolGroupDataSource = BWA.db.createDataSource('CmPatrolGroup'),
- PatrolGroupUserDataSource = BWA.DataUtil.createDataSource({
- dataSourceOptions: {
- select: ['SiteId', 'UserId', 'CmUser/Name', 'CmUser/CmDepartment/Name', ],
- expand: ['CmUser', 'CmUser/CmDepartment'],
- extendOptions: {
- forceOriginalField: true
- },
- filter: [
- ['SiteId', '=', BWA.UserInfo.SiteId()]
-
-
-
-
-
- ]
- }
- }, 'CmPatrolGroupUser'),
- usersInView = ko.observableArray(),
-
- deleteDisabled = ko.observable(true),
- popupVisible = ko.observable(false),
- selectedPatrolGroup = ko.observable(null),
- viewModel,
-
- sidemenuHashSet;
-
-
-
-
-
-
- var menuDataGridOptions = utils.datagrid.defaultOptions({
-
- dataSource: usersInView,
- width: '100%',
-
- height: 685,
- columns: [
- { dataField: 'UserId', caption: '아이디', width: '35%', sortOrder: 'asc' },
-
- { dataField: 'CmUser/Name', caption: $G('name'), width: '25%' },
- { dataField: 'CmUser/CmDepartment/Name', caption: '부서', width: '25%' },
- ],
-
- paging: {
- enabled: true,
- pageSize: 19
- },
- pager: {
- },
- selection: {
- mode: 'multiple',
- allowSelectAll: true,
- },
-
- selectionChanged: function (clickRow) {
- var array = utils.datagrid.getSelectedRowsData('gridContainer2');
- deleteDisabled(!(array.length > 0));
-
-
- },
-
- });
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmPatrolGroup', {
- height: 685,
- popupWidth: 480,
- columns: [
- { dataField: 'Number', caption: $G('number'), width: '20%', allowSorting: false },
- { dataField: 'Name', caption: '순찰조명', width: '80%' }
- ],
- paging: {
- enabled: true,
- pageSize: 19
- },
-
- pager: {
- },
- NoSearchView: true,
- handleViewShown: function () {
- sidemenuHashSet = $SideMenu.getSidemenuHashSet();
-
- $SearchView.visibleObservable(false);
- },
- handlePopupShowing2: function (selectedId) {
- var data = selectedPatrolGroup();
- selectedId.SiteId = data.SiteId();
- selectedId.PatrolGroupId = data.PatrolGroupId();
- selectedId.Name = data.Name();
- },
-
-
- handlePopupShowing: function (isNewInPopup, dataViewModel) {
- CmPatrolGroupDataSource.filter([
- ["SiteId", "=", BWA.UserInfo.SiteId()]
- ]);
- CmPatrolGroupDataSource.load().done(function (result) {
- PatrolGroupInfo(result);
- });
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- var data = clickRow.data;
- RowName = data.Name;
- selectedPatrolGroup(data);
- PatrolGroupUserDataSource.filter([
- eq('SiteId', data.SiteId()),
- and,
- eq('PatrolGroupId', data.PatrolGroupId()),
- ]);
- PatrolGroupUserDataSource.load().done(function (users) {
- usersInView(users);
-
-
-
- $('#gridContainer2').dxDataGrid('instance').refresh();
- });
-
- },
- beforeInsertingDataViewModel: function (dataModel, dbModelId) {
- var dfd = $.Deferred();
- var isDuplicated = false;
- for (var i = 0; i < PatrolGroupInfo().length; i++) {
- if (dataModel.Name() == PatrolGroupInfo()[i].Name()) {
- isDuplicated = true;
- }
- }
- if (!BWA.DataUtil.isValidInputValue(dataModel.Name()))
- return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보(*)를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)');
- else {
- if (isDuplicated)
- return dfd.resolve(false, '이미 동일 정보가 존재합니다.');
- else
- return dfd.resolve(true);
- }
- },
- beforeUpdateDataViewModel: function () {
- var isDuplicated = false;
- for (var i = 0; i < PatrolGroupInfo().length; i++) {
- if (viewModel.dataModel.Name() == PatrolGroupInfo()[i].Name() && (RowName() != PatrolGroupInfo()[i].Name())) {
- isDuplicated = true;
- }
- }
- if (!BWA.DataUtil.isValidInputValue(viewModel.dataModel.Name())) {
- utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보(*)를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');
- return 0;
- }
- else {
- if (isDuplicated) {
- utils.toast.show('이미 동일 이름이 존재합니다.', 'error');
- return 0;
- }
- else
- return 2;
- }
- },
-
-
-
-
-
- });
- function handleDelete() {
- DevExpress.ui.dialog.confirm($G('deleteConfirmMsg'), "삭제").then(function (result) {
- if (result) {
- var array = utils.datagrid.getSelectedRowsData('gridContainer2');
- var data = selectedPatrolGroup();
- var PatrolGroupId = data.PatrolGroupId();
- var postData;
- postData = _.map(array, function (m) {
- return {
- SiteId: m.SiteId(),
- PatrolGroupId: PatrolGroupId,
- UserId: m.UserId(),
- };
- });
- BWA.api.post('CmPatrolGroup/DeleteGroupUser', postData).done(function () {
- utils.toast.show($G('successDatabaseProcessMsg'));
- PatrolGroupUserDataSource.load().done(function (users) {
- usersInView(users);
- $('#gridContainer2').dxDataGrid('instance').refresh();
- });
- });
- }
- });
- }
-
- function handleUserAdd() {
- viewModel.userSearchPopup.show();
- }
- function handleEdit() {
-
-
- viewModel.popupVisible(true);
-
- }
-
- function onSelectedUsers(selectedUsers) {
- var data = selectedPatrolGroup();
- var PatrolGroupId = data.PatrolGroupId();
-
- var postData;
- postData = _.map(selectedUsers, function (m) {
- try {
- return {
- SiteId: m.SiteId(),
- PatrolGroupId: PatrolGroupId,
- UserId: m.UserId(),
- };
- } catch (e) {
- return {
- SiteId: m.SiteId,
- PatrolGroupId: PatrolGroupId,
- UserId: m.UserId,
- };
- }
- });
- BWA.api.post('CmPatrolGroup/UpdateGroupUser', postData).done(function () {
- _.each(selectedUsers, function (sm) {
-
-
-
-
- var found = _.some(usersInView(), function (m) {
- try {
- return m.UserId() === sm.UserId();
- } catch (e) {
- return m.UserId() === sm.UserId;
- }
- });
- if (found) return;
- try {
- usersInView.push({
- SiteId: ko.observable(sm.SiteId()),
- PatrolGroupId: ko.observable(PatrolGroupId),
- UserId: ko.observable(sm.UserId()),
- 'CmUser/Name': ko.observable(sm.Name()),
- 'CmUser/CmDepartment/Name': ko.observable(sm.CmDepartment_Name()),
- });
- } catch (e) {
- usersInView.push({
- SiteId: ko.observable(sm.SiteId),
- PatrolGroupId: ko.observable(PatrolGroupId),
- UserId: ko.observable(sm.UserId),
- 'CmUser/Name': ko.observable(sm.Name),
- 'CmUser/CmDepartment/Name': ko.observable(sm.CmDepartment_Name),
- });
- }
- });
- PatrolGroupUserDataSource.filter([
- eq('SiteId', data.SiteId()),
- and,
- eq('PatrolGroupId', data.PatrolGroupId()),
- ]);
- PatrolGroupUserDataSource.load().done(function (users) {
- usersInView(users);
- $('#gridContainer2').dxDataGrid('instance').refresh();
- });
- utils.toast.show($G('successDatabaseProcessMsg'));
- });
- }
- viewModel.popupVisible.subscribe(function (visible) {
- var i = {};
- });
- viewModel.menuDataGridOptions = menuDataGridOptions;
- viewModel.handleUserAdd = handleUserAdd;
- viewModel.handleEdit = handleEdit;
- viewModel.handleDelete = handleDelete;
- viewModel.selectedPatrolGroup = selectedPatrolGroup;
- viewModel.deleteDisabled = deleteDisabled;
-
- viewModel.userSearchPopup = $UserSearchPopup(viewModel, selectedUserData, true, onSelectedUsers);
- viewModel.handleSearchInSearchView2 = function (filter) {
- var filterA = [];
- _.each(filter, function (x) {
- filterA.push(x);
- });
- PatrolGroupUserDataSource.filter(filterA);
- PatrolGroupUserDataSource.load().done(function (result) {
-
-
- });
- };
- return viewModel;
- };
|