Compare commits

...
4 changed files with 20 additions and 9 deletions
@@ -50,6 +50,9 @@ public class WebSessionEventsFilter {
}
public boolean isEventAllowed(WSEvent event) {
if (event.isForceProcessed()) {
return true;
}
if (!subscribedEventTopics.isEmpty() && !subscribedEventTopics.contains(event.getTopicId())
) {
return false;
@@ -795,6 +795,10 @@ public class WebSQLProcessor implements WebSessionProvider {
cellRawValue,
false,
true);
//FIXME: fix array editing for nosql databases
if (realCellValue == null && cellRawValue != null && updateAttribute.getDataKind() == DBPDataKind.ARRAY) {
throw new DBCException("Array update is not supported");
}
} catch (DBCException e) {
//checks if this function is used only for script generation
if (justGenerateScript) {
@@ -1140,7 +1144,8 @@ public class WebSQLProcessor implements WebSessionProvider {
return filter.hasFilters() ? DBCExecutionPurpose.USER_FILTERED : DBCExecutionPurpose.USER;
}
private Object setCellRowValue(Object cellRow, WebSession webSession, DBCSession dbcSession, DBDAttributeBinding allAttributes, boolean withoutExecution) {
private Object setCellRowValue(Object cellRow, WebSession webSession, DBCSession dbcSession, DBDAttributeBinding allAttributes, boolean withoutExecution)
throws DBException {
if (cellRow instanceof Map<?, ?>) {
Map<String, Object> variables = (Map<String, Object>) cellRow;
if (variables.get(FILE_ID) != null) {
@@ -1153,14 +1158,10 @@ public class WebSQLProcessor implements WebSessionProvider {
var file = Files.newInputStream(path);
return convertInputCellValue(dbcSession, allAttributes, file, withoutExecution);
} catch (IOException | DBCException e) {
return new DBException(e.getMessage());
throw new DBException(e.getMessage());
}
}
}
try {
return convertInputCellValue(dbcSession, allAttributes, cellRow, withoutExecution);
} catch (DBCException e) {
return new DBException(e.getMessage());
}
return convertInputCellValue(dbcSession, allAttributes, cellRow, withoutExecution);
}
}
@@ -21,7 +21,7 @@ export const ProductInfoDrawerItem: React.FC<AdministrationItemDrawerProps> = fu
const newVersionAvailable = versionUpdateService.newVersionAvailable;
const translate = useTranslate();
useResource(ProductInfoDrawerItem, VersionResource, CachedMapAllKey);
useResource(ProductInfoDrawerItem, VersionResource, CachedMapAllKey, { silent: true });
return (
<Tab
@@ -13,6 +13,7 @@ import {
} from '@cloudbeaver/core-administration';
import { importLazyComponent } from '@cloudbeaver/core-blocks';
import { Dependency, injectable } from '@cloudbeaver/core-di';
import { ServerLicenseStatusResource } from '@cloudbeaver/core-root';
import { ITabInfoOptions, TabsContainer } from '@cloudbeaver/core-ui';
const ProductInfoDrawerItem = importLazyComponent(() => import('./ProductInfoDrawerItem').then(m => m.ProductInfoDrawerItem));
@@ -24,7 +25,10 @@ export class ProductInfoService extends Dependency {
readonly tabsContainer: TabsContainer<AdministrationItemContentProps>;
private readonly administrationItem: IAdministrationItem;
constructor(private readonly administrationItemService: AdministrationItemService) {
constructor(
private readonly administrationItemService: AdministrationItemService,
private readonly serverLicenseStatusResource: ServerLicenseStatusResource,
) {
super();
this.tabsContainer = new TabsContainer('Product information administration settings');
@@ -33,6 +37,9 @@ export class ProductInfoService extends Dependency {
type: AdministrationItemType.Administration,
getContentComponent: () => ProductInfoPage,
getDrawerComponent: () => ProductInfoDrawerItem,
onActivate: async () => {
await this.serverLicenseStatusResource.load();
},
order: 12,
});
}