diff --git a/client/VERSION b/client/VERSION index e393c3c55..b38513792 100644 --- a/client/VERSION +++ b/client/VERSION @@ -1 +1 @@ -2.4.11 \ No newline at end of file +2.4.12 \ No newline at end of file diff --git a/client/package.json b/client/package.json index e82e56ed9..daecce28c 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "lowcoder-frontend", - "version": "2.4.11", + "version": "2.4.12", "type": "module", "private": true, "workspaces": [ diff --git a/client/packages/lowcoder/src/comps/comps/buttonComp/buttonComp.tsx b/client/packages/lowcoder/src/comps/comps/buttonComp/buttonComp.tsx index d329ebee9..8b03c0492 100644 --- a/client/packages/lowcoder/src/comps/comps/buttonComp/buttonComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/buttonComp/buttonComp.tsx @@ -136,7 +136,7 @@ const ButtonTmpComp = (function () { }; return new UICompBuilder(childrenMap, (props) => { return( - + {(editorState) => ( ` line-height:${(props) => props.$buttonStyle?.lineHeight}; `; -export const ButtonCompWrapper = styled.div<{ disabled: boolean }>` +export const ButtonCompWrapper = styled.div<{ $disabled: boolean }>` + display: flex; + // The button component is disabled but can respond to drag & select events ${(props) => - props.disabled && + props.$disabled && ` cursor: not-allowed; button:disabled { diff --git a/client/packages/lowcoder/src/comps/comps/buttonComp/dropdownComp.tsx b/client/packages/lowcoder/src/comps/comps/buttonComp/dropdownComp.tsx index 1ce2b491e..a27c4ab83 100644 --- a/client/packages/lowcoder/src/comps/comps/buttonComp/dropdownComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/buttonComp/dropdownComp.tsx @@ -116,7 +116,7 @@ const DropdownTmpComp = (function () { ); return ( - + {props.onlyMenu ? ( + + { * @return {String} Container height in pixels. */ containerHeight(): string { - const { margin, rowHeight, fixedRowCount } = this.props as Required; + const { margin, rowHeight, fixedRowCount, isCanvas } = this.props as Required; const { extraHeight, emptyRows } = this.props; const positionParams = genPositionParams(this.props); - const { containerPadding } = positionParams; const layout = this.getUILayout(undefined, true); + let nbRow = bottom(layout); - if (!_.isNil(emptyRows) && (_.size(layout) === 0 || fixedRowCount)) { - nbRow = emptyRows;// === Infinity ? 0 : emptyRows; + if (!_.isNil(emptyRows) && (_.size(layout) === 0 || (fixedRowCount && isCanvas))) { + nbRow = emptyRows; } const containerHeight = Math.max( nbRow * rowHeight + (nbRow - 1) * margin[1] + containerPadding[1] * 2 diff --git a/client/packages/lowcoder/src/util/styleUtils.tsx b/client/packages/lowcoder/src/util/styleUtils.tsx index e59a8fc25..77c4dc14f 100644 --- a/client/packages/lowcoder/src/util/styleUtils.tsx +++ b/client/packages/lowcoder/src/util/styleUtils.tsx @@ -5,7 +5,7 @@ const getBackgroundStyle = (style: Record) => { return css` ${isValidColor(style.background) && `background-color: ${style.background}`}; ${isValidGradient(style.background) && !Boolean(style.backgroundImage) && `background-image: ${style.background}`}; - ${!isValidGradient(style.background) && Boolean(style.backgroundImage) && `background-image: ${style.backgroundImage}`}; + ${!isValidGradient(style.background) && Boolean(style.backgroundImage) && `background-image: url(${style.backgroundImage})`}; ${isValidGradient(style.background) && Boolean(style.backgroundImage) && `background-image: url(${style.backgroundImage}), ${style.background}`}; ${style.backgroundImageRepeat && `background-repeat: ${style.backgroundImageRepeat};`}; diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java index e533b42e5..ddf0422ab 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java @@ -301,11 +301,29 @@ public void addGidIndexesUnique(MongockTemplate mongoTemplate) { ensureIndexes(mongoTemplate, LibraryQuery.class, makeIndex("gid").unique()); } + private int getMongoDBVersion(MongockTemplate mongoTemplate) { + Document buildInfo = mongoTemplate.executeCommand(new Document("buildInfo", 1)); + String versionString = buildInfo.getString("version"); + if(versionString == null) return -1; + String[] versionParts = versionString.split("\\."); + int majorVersion = Integer.parseInt(versionParts[0]); + return majorVersion; + } + @ChangeSet(order = "026", id = "add-time-series-snapshot-history", author = "") public void addTimeSeriesSnapshotHistory(MongockTemplate mongoTemplate, CommonConfig commonConfig) { + int mongoVersion = getMongoDBVersion(mongoTemplate); + if (mongoVersion < 5) { + log.warn("MongoDB version is below 5. Time-series collections are not supported. Upgrade the MongoDB version."); + } + // Create the time-series collection if it doesn't exist if (!mongoTemplate.collectionExists(ApplicationHistorySnapshotTS.class)) { - mongoTemplate.createCollection(ApplicationHistorySnapshotTS.class, CollectionOptions.empty().timeSeries("createdAt")); + if(mongoVersion < 5) { + mongoTemplate.createCollection(ApplicationHistorySnapshotTS.class); + } else { + mongoTemplate.createCollection(ApplicationHistorySnapshotTS.class, CollectionOptions.empty().timeSeries("createdAt")); + } } Instant thresholdDate = Instant.now().minus(commonConfig.getQuery().getAppSnapshotKeepDuration(), ChronoUnit.DAYS); List snapshots = mongoTemplate.find(new Query().addCriteria(Criteria.where("createdAt").gte(thresholdDate)), ApplicationHistorySnapshot.class); diff --git a/server/api-service/pom.xml b/server/api-service/pom.xml index 200dfebf5..b71c43f86 100644 --- a/server/api-service/pom.xml +++ b/server/api-service/pom.xml @@ -12,7 +12,7 @@ - 2.4.11 + 2.4.12 17 ${java.version} ${java.version} diff --git a/server/node-service/package.json b/server/node-service/package.json index 9827f6799..34a525d3b 100644 --- a/server/node-service/package.json +++ b/server/node-service/package.json @@ -1,6 +1,6 @@ { "name": "lowcoder-node-server", - "version": "2.4.11", + "version": "2.4.12", "private": true, "engines": { "node": "^14.18.0 || >=16.0.0"