ucan-ext-js-kitchen-sink
Version:
my-ext-gen-app description for Ext JS app MyExtGenApp
86 lines (80 loc) • 3.73 kB
JavaScript
Ext.define('UCAN.shareComponent.src.Util', {
singleton: true,
getTranslatedGridColumnMenuConfiguration: function(objectReference) {
return {
items: {
sortAsc: {
bind: {
text: '{' + objectReference + '.translator.sort_ascending}'
}
},
sortDesc: {
bind: {
text: '{' + objectReference + '.translator.sort_descending}'
}
},
groupByThis: {
bind: {
text: '{' + objectReference + '.translator.group_by_this_field}'
}
},
showInGroups: {
bind: {
text: '{' + objectReference + '.translator.show_in_groups}'
}
}
}
};
},
getTranslatedGridColumnMenuItemConfiguration: function(objectReference) {
return {
bind: {
text: '{' + objectReference + '.translator.columns}'
}
};
},
setAccountsGroupsGridTranslation: function(accountsGrid, groupsGrid, translator) {
accountsGrid.setLoadingText(translator.get('loading_data'));
accountsGrid.setEmptyText(translator.get('empty_text'));
accountsGrid.getColumnMenu().items.sortAsc.text = translator.get('sort_ascending');
accountsGrid.getColumnMenu().items.sortDesc.text = translator.get('sort_ascending');
accountsGrid.getColumnMenu().items.groupByThis.text = translator.get('sort_ascending');
accountsGrid.getColumnMenu().items.showInGroups.text = translator.get('sort_ascending');
accountsGrid.getColumnsMenuItem().setText(translator.get('columns'));
accountsGrid.getColumns().find(column => column.getDataIndex() === 'id').setText(translator.get('id'));
accountsGrid.getColumns().find(column => column.getDataIndex() === 'firstName').setText(translator.get('first_name'));
accountsGrid.getColumns().find(column => column.getDataIndex() === 'lastName').setText(translator.get('last_name'));
const accountsGridWidgetColumn = accountsGrid.getColumns().find(column => column.getCell().xtype === 'widgetcell');
accountsGridWidgetColumn.setText(translator.get('rights'));
groupsGrid.setLoadingText(translator.get('loading_data'));
groupsGrid.setEmptyText(translator.get('empty_text'));
groupsGrid.getColumnMenu().items.sortAsc.text = translator.get('sort_ascending');
groupsGrid.getColumnMenu().items.sortDesc.text = translator.get('sort_ascending');
groupsGrid.getColumnMenu().items.groupByThis.text = translator.get('sort_ascending');
groupsGrid.getColumnMenu().items.showInGroups.text = translator.get('sort_ascending');
groupsGrid.getColumnsMenuItem().setText(translator.get('columns'));
groupsGrid.getColumns().find(column => column.getDataIndex() === 'id').setText(translator.get('id'));
groupsGrid.getColumns().find(column => column.getDataIndex() === 'name').setText(translator.get('group_name'));
const groupsGridWidgetColumn = groupsGrid.getColumns().find(column => column.getCell().xtype === 'widgetcell');
groupsGridWidgetColumn.setText(translator.get('rights'));
},
joinReadWriteArrays: function(read, write) {
const map = new Map();
read.forEach((readAccess) => {
map.set(readAccess.get('type') + '-' + readAccess.get('id'), readAccess);
});
write.forEach((writeAccess) => {
const existingShare = map.get(writeAccess.get('type') + '-' + writeAccess.get('id'));
if (existingShare) {
for (const prop in writeAccess.data) {
if (prop !== 'id') {
existingShare.set(prop, writeAccess.get(prop));
}
}
} else {
map.set(writeAccess.get('type') + '-' + writeAccess.get('id'), writeAccess);
}
});
return Array.from(map.values());
}
});