');
checkbox.appendTo(header);
checkbox.dxCheckBox({
value: headerCheckBoxValues(),
valueChangeAction: function (e) {
headerCheckBoxValues(e.value);
}
});
$('
')
.css('display', 'inline-block')
.html(info.column.caption)
.appendTo(header);
};
var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmMenu', {
popupWidth: 480,
columns: [
{ dataField: 'SiteId', caption: '번호', width: '10%', allowSorting: false },
{ dataField: 'MenuPath', caption: '메뉴 경로', width: '60%', allowSorting: true },
{ dataField: 'Name', caption: '메뉴 이름', width: '20%', allowSorting: false },
{ dataField: 'MenuId', caption: '메뉴 ID', width: '20%', allowSorting: false },
{ dataField: 'Used', caption: '사용', width: '20%', allowSorting: false },
],
"export": {
enabled: true,
fileName: '메뉴 목록',
},
onExporting: function (e) {
e.component.columnOption("SiteId", "visible", false);
},
onExported: function (e) {
e.component.columnOption("SiteId", "visible", true);
},
paging: {
pageSize: 18,
enabled: true
},
pager: {
},
cellPrepared: function (cellElement, cellInfo) {
if (cellInfo.columnIndex == 4) {
(function (element, info) {
if (info.rowType == 'data') {
var index = info.columnIndex - 4; //
var checker = (1 << index);
var checked = (info.value & checker);
//console.log(info.columnIndex + ' ' + checked);
$(cellElement).text('');
var checkbox = $('
');
checkbox.appendTo(element);
checkbox.dxCheckBox({
value: checked > 0 ? true : false,
valueChangeAction: function (e) {
var p = info.data.Used
if (e.value) {
p(p() | checker);
}
else {
p(p() & ~checker);
}
}
});
var dataCheckBoxes = info.data.checkboxes = info.data.checkboxes || [];
dataCheckBoxes[index] = checkbox;
}
})(cellElement, cellInfo);
}
},
selection: {
mode: 'none'
},
searchViewItems: [
{ id: 'MenuPath' },
{ id: 'Name' },
{ id: 'MenuId' }//ignoreValue: 0, defaultValue: 0, withCheckId: 'FirstClassId', value: searchFacilityClassValues[1], dataSource: searchFacilityClasses[1], handleChangedValue: handleSecondClassChangedValueInSearchView },
],
handleViewShown: function () {
sidemenuHashSet = $SideMenu.getSidemenuHashSet();
_.each(sidemenuHashSet, function (items, id) {
items['MenuId'] = id;
items['Used'] = true;
});
//$SearchView.visibleObservable(false);
},
handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
}
});
function handleSave() {
saving(true);
var rows = utils.datagrid.getItems($('#gridContainer').dxDataGrid('instance'));
var newmenus = [];
_.each(rows, function (menu) {
newmenus.push({
SiteId: BWA.UserInfo.SiteId(),
MenuId: menu.MenuId(),
MenuPath: menu.MenuPath(),
Used: menu.Used(),
Name: menu.Name(),
});
});
BWA.api.post('CmMenu/DeleteAll', { SiteId: BWA.UserInfo.SiteId() }).done(function () {
BWA.api.post('CmMenu/InsertAll', newmenus).done(function () {
viewModel.refreshList();
utils.toast.show($G('successDatabaseProcessMsg'));
saving(false);
});
});
}
// 메뉴 초기화
function handleEdit() {
var newmenus = [];
_.each(sidemenuHashSet, function (menu) {
newmenus.push({
SiteId: BWA.UserInfo.SiteId(),
MenuId: menu.MenuId,
MenuPath: menu.MenuPath,
Name: menu.Name,
Used: true,
});
});
BWA.api.post('CmMenu/DeleteAll', { SiteId: BWA.UserInfo.SiteId() }).done(function () {
BWA.api.post('CmMenu/InsertAll', newmenus).done(function () {
viewModel.refreshList();
utils.toast.show($G('successDatabaseProcessMsg'));
});
});
}
function handleHeaderCheckboxValueFunc(index) {
return function (check) {
var rows = utils.datagrid.getItems($('#gridContainer').dxDataGrid('instance'));
_.each(rows, function (data, i) {
data.checkboxes[index].dxCheckBox({
value: check
});
});
};
}
headerCheckBoxValues.subscribe(handleHeaderCheckboxValueFunc(0))
viewModel.popupVisible.subscribe(function (visible) {
});
viewModel.handleSave = handleSave;
viewModel.handleEdit = handleEdit;
viewModel.sidemenuHashSet = sidemenuHashSet;
viewModel.saving = saving;
return viewModel;
};