diff --git a/app/client/.husky/check-staged-files.sh b/app/client/.husky/check-staged-files.sh index cf456b2339..8a73539c2d 100644 --- a/app/client/.husky/check-staged-files.sh +++ b/app/client/.husky/check-staged-files.sh @@ -2,14 +2,26 @@ is_server_change=$(git diff --cached --name-only | grep -c "app/server") is_client_change=$(git diff --cached --name-only | grep -c "app/client") +is_package_json_change=$(git diff --cached --name-only | grep -c "app/client/package.json") is_merge_commit=$(git rev-parse -q --verify MERGE_HEAD) +# Function to check TinyMCE version changes +check_tinymce_version() { + # Check if TinyMCE version is being changed + if git diff --cached app/client/package.json | grep -q '^-.*"tinymce": "6\.8\.3"' && + git diff --cached app/client/package.json | grep -q '^+.*"tinymce": "[^"]*"'; then + echo "❌ Error: Attempting to change TinyMCE version. This is not allowed as per team decision." + echo "Please keep TinyMCE at version 6.8.3" + exit 1 + fi +} + # Function to apply Spotless and only commit staged files apply_spotless_and_commit_staged_files() { - staged_server_files=$(git diff --cached --name-only | grep "app/server"| sed 's|app/server/||') + staged_server_files=$(git diff --cached --name-only | grep "app/server" | sed 's|app/server/||') mvn spotless:apply - # Check if Spotless succeeded + # Check if Spotless succeeded if [ $? -ne 0 ]; then echo "Spotless apply failed, Please run mvn spotless:apply" exit 1 @@ -21,11 +33,16 @@ apply_spotless_and_commit_staged_files() { if [ "$is_merge_commit" ]; then echo "Skipping server and client checks for merge commit" else + if [ "$is_package_json_change" -ge 1 ]; then + echo "Checking package.json changes..." + check_tinymce_version + fi + if [ "$is_server_change" -ge 1 ]; then echo "Applying Spotless to server files..." - pushd app/server > /dev/null + pushd app/server >/dev/null apply_spotless_and_commit_staged_files - popd > /dev/null + popd >/dev/null else echo "Skipping server side check..." fi diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/InfiniteScrollVariableHeightRows_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/InfiniteScrollVariableHeightRows_spec.ts index bd06c6c2dd..b5046d8fce 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/InfiniteScrollVariableHeightRows_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/InfiniteScrollVariableHeightRows_spec.ts @@ -43,6 +43,7 @@ describe( propPane.EnterJSContext("Table data", JSON.stringify(testData)); + propPane.TogglePropertyState("Server side pagination", "On"); propPane.TogglePropertyState("Infinite scroll", "On"); }); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/Table_InfiniteScroll_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/Table_InfiniteScroll_spec.ts index 6579ba49b2..5d8c88ed98 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/Table_InfiniteScroll_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/Table_InfiniteScroll_spec.ts @@ -48,6 +48,7 @@ describe( it("1. should enable infinite scroll and verify records are loaded automatically when scrolling", () => { // Enable infinite scroll in the property pane + propPane.TogglePropertyState("Server side pagination", "On"); propPane.TogglePropertyState("Infinite scroll", "On"); // Wait for network call to complete diff --git a/app/client/cypress/support/Objects/CommonLocators.ts b/app/client/cypress/support/Objects/CommonLocators.ts index 323d8e1cdd..ac2eadef94 100644 --- a/app/client/cypress/support/Objects/CommonLocators.ts +++ b/app/client/cypress/support/Objects/CommonLocators.ts @@ -315,11 +315,11 @@ export class CommonLocators { _fileUploadAddMore = ".uppy-DashboardContent-addMore"; _buttonText = ".bp3-button-text"; _richText_TitleBlock = "[aria-label='Block Paragraph']"; - _richText_Heading = "[aria-label='Heading 1']"; + _richText_Heading = "[title='Heading 1']"; _richText_Label_Text = ".tox-tbtn__select-label"; _richText_Text_Color = (color: string) => `[aria-label="Text color ${color}"] .tox-split-button__chevron`; - _richText_color = (value: string) => `[aria-label="${value}"]`; + _richText_color = (value: string) => `[title="${value}"]`; _richText_line = "#tinymce p span"; _treeSelectedContent = ".rc-tree-select-selection-item-content"; _switcherIcon = ".switcher-icon"; diff --git a/app/client/src/widgets/TableWidgetV2/widget/propertyConfig/contentConfig.ts b/app/client/src/widgets/TableWidgetV2/widget/propertyConfig/contentConfig.ts index bf12ab66c6..278554f7f1 100644 --- a/app/client/src/widgets/TableWidgetV2/widget/propertyConfig/contentConfig.ts +++ b/app/client/src/widgets/TableWidgetV2/widget/propertyConfig/contentConfig.ts @@ -200,8 +200,10 @@ export default [ updateCellEditabilityOnInfiniteScrollChange, updateSearchSortFilterOnInfiniteScrollChange, ]), - dependencies: ["primaryColumns"], - hidden: () => !Widget.getFeatureFlag(INFINITE_SCROLL_ENABLED), + dependencies: ["primaryColumns", "serverSidePaginationEnabled"], + hidden: (props: TableWidgetProps) => + !Widget.getFeatureFlag(INFINITE_SCROLL_ENABLED) || + !props.serverSidePaginationEnabled, }, { helpText: createMessage(TABLE_WIDGET_TOTAL_RECORD_TOOLTIP),