diff --git a/.github/scripts/get-changelog-from-change-txt.js b/.github/scripts/get-changelog-from-change-txt.js index 0ec3984229d0..3969db3f891c 100644 --- a/.github/scripts/get-changelog-from-change-txt.js +++ b/.github/scripts/get-changelog-from-change-txt.js @@ -10,23 +10,27 @@ if (!VERSION) { return; } -for (let fileName of ['changelog.txt', 'readme.txt'] ) { - try { - const changelogText = fs.readFileSync(`${fileName}`, 'utf-8'); - const data = marked.lexer(changelogText); - const headerIndex = data.findIndex((section) => { - const text = section?.text?.match(/\d+\.\d+\.\d+/g)?.[0] || ''; - return section.type === 'paragraph' && VERSION == text; - }); - if (headerIndex === -1) { - console.error(`Change log for release ${version} not found in ${filename}`); +for (let fileName of ['changelog', 'readme'] ) { + (async () => { + try { + const changelogText = fs.readFileSync(`${fileName}.txt`, 'utf-8'); + const data = marked.lexer(changelogText); + const headerIndex = data.findIndex((section, index) => { + const text = section?.text?.match(/\d+\.\d+\.\d+/g)?.[0] || '' + if (index < 10) console.log(1, section.type, 2, section.text, 3, text); + return section.type === 'paragraph' && VERSION == text; + }); + if (headerIndex === -1) { + console.error(`Failed to find version: ${VERSION} in ${fileName}.txt file`); + process.exit(1); + return; + } + const versionLog = data[headerIndex + 1].raw; + fs.writeFileSync(`temp-${fileName}.txt`, versionLog); + console.log('success: ', fileName); + } catch (err) { + console.error('this is my error', fileName, err) process.exit(1); - return; } - const versionLog = data[headerIndex + 1].raw; - fs.writeFileSync(`temp-${fileName}`, versionLog); - } catch (err) { - console.error(err) - process.exit(1); - } + })(); } diff --git a/.github/workflows/generate-changelog/action.yml b/.github/workflows/generate-changelog/action.yml index c43aa5f47537..009c109dce16 100644 --- a/.github/workflows/generate-changelog/action.yml +++ b/.github/workflows/generate-changelog/action.yml @@ -21,7 +21,7 @@ runs: - name: Generate Changelog shell: bash env: - TOKEN: ${{ inputs.TOKEN }} + TOKEN: ${{ github.token }} REPOSITORY: ${{ inputs.REPOSITORY }} HEAD_BRANCH_NAME: ${{ inputs.HEAD_BRANCH_NAME }} BASE_TAG_NAME: ${{ inputs.BASE_TAG_NAME }} @@ -38,4 +38,4 @@ runs: fi fi - name: Generate Changelog Content For Slack - uses: ./.github/workflows/generate-slack-changelog \ No newline at end of file + uses: ./.github/workflows/generate-slack-changelog diff --git a/.github/workflows/get-changelog-from-changelog-txt/action.yml b/.github/workflows/get-changelog-from-changelog-txt/action.yml index f9dc6251175b..f32c22cfe783 100644 --- a/.github/workflows/get-changelog-from-changelog-txt/action.yml +++ b/.github/workflows/get-changelog-from-changelog-txt/action.yml @@ -1,5 +1,5 @@ -name: Get change log From changelog and readme text files -description: Get change log From changelog.txt and readme.txt text files - publish in wordpress.org. +name: Get Changelog From Changelog Text File +description: Get Changelog From Changelog Text File - publish in wordpress.org. inputs: VERSION: @@ -13,5 +13,6 @@ runs: env: VERSION: ${{ inputs.VERSION }} run: | + npm install --no-package-lock --no-save marked@12.0.2 node ./.github/scripts/get-changelog-from-change-txt.js diff --git a/.github/workflows/get-previous-release/action.yml b/.github/workflows/get-previous-release/action.yml index b8f10d6d94ef..271821ddc7f5 100644 --- a/.github/workflows/get-previous-release/action.yml +++ b/.github/workflows/get-previous-release/action.yml @@ -26,7 +26,9 @@ runs: # If the channel is "ga", fetch all Git tags matching the semantic versioning pattern "vX.Y.Z" # and store them in the 'tags' variable. e.g. "refs/tags/v3.11.1 , refs/tags/v3.11.2" + echo "HIHIHI" if [[ ${{ inputs.CHANNEL }} == "ga" ]]; then + echo "123123123" tags=$(git ls-remote --tags | grep "refs/tags/[0-9]\+\.[0-9]\+\.[0-9]\+$") fi diff --git a/.github/workflows/one-click-release.yml b/.github/workflows/one-click-release.yml index 027a188614b7..8e7a3d30e350 100644 --- a/.github/workflows/one-click-release.yml +++ b/.github/workflows/one-click-release.yml @@ -63,6 +63,11 @@ jobs: CHANNEL: ${{ env.CHANNEL }} POSTFIX: '' OVERRIDE_PACKAGE_VERSION: true + - name: Get Changelog From Changelog Text File +# if: github.event.inputs.channel == 'ga' + uses: ./.github/workflows/get-changelog-from-changelog-txt + with: + VERSION: ${{ env.CLEAN_PACKAGE_VERSION }} - name: Update Readme.txt if: env.CHANNEL != 'cloud' uses: ./.github/workflows/update-readme-txt @@ -72,29 +77,24 @@ jobs: PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} - name: Install Dependencies run: npm ci - - name: Build plugin - uses: ./.github/workflows/build-plugin - with: - PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} - BUILD_SCRIPT_PATH: "./.github/scripts/build-zip.sh" - - name: Get Release Name - uses : ./.github/workflows/get-release-name - with: - BUILD_ZIP_FILE_PATH: ${{ github.event.repository.name }}-${{ env.PACKAGE_VERSION }}.zip - PLUGIN_NAME: ${{ github.event.repository.name }} - - name: Generate changelog - uses: ./.github/workflows/generate-changelog - with: - TOKEN: ${{ secrets.MAINTAIN_TOKEN }} - REPOSITORY: ${{ github.repository }} - HEAD_BRANCH_NAME: ${{ github.ref }} - BASE_TAG_NAME: ${{ env.PREVIOUS_TAG_SHA }} - GENERATE_EMPTY_CHANGELOG: true - - name: Check that the version contains an updated change log - if: github.event.inputs.channel == 'ga' - uses: ./.github/workflows/get-changelog-from-changelog-txt - with: - VERSION: ${{ env.CLEAN_PACKAGE_VERSION }} + # - name: Build plugin + # uses: ./.github/workflows/build-plugin + # with: + # PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }} + # BUILD_SCRIPT_PATH: "./.github/scripts/build-zip.sh" + # - name: Get Release Name + # uses : ./.github/workflows/get-release-name + # with: + # BUILD_ZIP_FILE_PATH: ${{ github.event.repository.name }}-${{ env.PACKAGE_VERSION }}.zip + # PLUGIN_NAME: ${{ github.event.repository.name }} + # - name: Generate changelog + # uses: ./.github/workflows/generate-changelog + # with: + # TOKEN: ${{ secrets.MAINTAIN_TOKEN }} + # REPOSITORY: ${{ github.repository }} + # HEAD_BRANCH_NAME: ${{ github.ref }} + # BASE_TAG_NAME: ${{ env.PREVIOUS_TAG_SHA }} + # GENERATE_EMPTY_CHANGELOG: true - name: Create GitHub release uses: softprops/action-gh-release@v1 with: @@ -105,64 +105,64 @@ jobs: ${{ env.CHANGELOG_FILE }} prerelease: ${{ github.event.inputs.pre_release }} body_path: ${{ env.CHANGELOG_FILE }} - - name: Publish to WordPress.org SVN - if: env.CHANNEL != 'cloud' && github.repository_owner == 'elementor' && github.event.inputs.pre_release == 'false' # We don't publish cloud to WordPress.org, ga, beta, dev are published. - env: - PLUGIN_VERSION: ${{ env.RELEASE_NAME }} - SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} - SVN_USERNAME: ${{ secrets.SVN_USERNAME }} - CHANNEL: ${{ env.CHANNEL }} - PACKAGE_VERSION : ${{ env.PACKAGE_VERSION }} - run: | - bash "${GITHUB_WORKSPACE}/.github/scripts/validate-build-files.sh" - bash "${GITHUB_WORKSPACE}/.github/scripts/publish-to-wordpress-org.sh" - - name: Release Dev From Beta - if: env.CHANNEL == 'beta' # Only for beta releases - uses: ./.github/workflows/release-dev-from-beta - with: - BUILD_ZIP_FILE_PATH: ${{ github.event.repository.name }}-${{ env.RELEASE_FILENAME }}.zip - PLUGIN_NAME: ${{ github.event.repository.name }} - REPOSITORY_OWNER: ${{ github.repository_owner }} - SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} - SVN_USERNAME: ${{ secrets.SVN_USERNAME }} - PRE_RELEASE: ${{ github.event.inputs.pre_release }} - PACKAGE_VERSION : ${{ env.PACKAGE_VERSION }} - - name: Post To Slack Created Release - if: github.event.inputs.pre_release == 'false' - uses : ./.github/workflows/post-to-slack - with: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_TOKEN }} - SLACK_TAG_CHANNELS: ${{ secrets.SLACK_CHANNEL_RELEASE }} - PAYLOAD: | - { - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "Hi All :smile:\n\nWe just released *Elementor*\n`${{ env.RELEASE_NAME }}`" - } - }, - { - "type": "divider" - }, - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "GitHub Release *${{ env.RELEASE_NAME }}* \nCreated by ${{ github.actor }}" - }, - "accessory": { - "type": "button", - "text": { - "type": "plain_text", - "text": "Open :point_left:", - "emoji": true - }, - "value": "open-release", - "url": "https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_NAME }}", - "action_id": "button-action" - } - } - ] - } +# - name: Publish to WordPress.org SVN +# if: env.CHANNEL != 'cloud' && github.repository_owner == 'elementor' && github.event.inputs.pre_release == 'false' # We don't publish cloud to WordPress.org, ga, beta, dev are published. +# env: +# PLUGIN_VERSION: ${{ env.RELEASE_NAME }} +# SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} +# SVN_USERNAME: ${{ secrets.SVN_USERNAME }} +# CHANNEL: ${{ env.CHANNEL }} +# PACKAGE_VERSION : ${{ env.PACKAGE_VERSION }} +# run: | +# bash "${GITHUB_WORKSPACE}/.github/scripts/validate-build-files.sh" +# bash "${GITHUB_WORKSPACE}/.github/scripts/publish-to-wordpress-org.sh" +# - name: Release Dev From Beta +# if: env.CHANNEL == 'beta' # Only for beta releases +# uses: ./.github/workflows/release-dev-from-beta +# with: +# BUILD_ZIP_FILE_PATH: ${{ github.event.repository.name }}-${{ env.RELEASE_FILENAME }}.zip +# PLUGIN_NAME: ${{ github.event.repository.name }} +# REPOSITORY_OWNER: ${{ github.repository_owner }} +# SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} +# SVN_USERNAME: ${{ secrets.SVN_USERNAME }} +# PRE_RELEASE: ${{ github.event.inputs.pre_release }} +# PACKAGE_VERSION : ${{ env.PACKAGE_VERSION }} +# - name: Post To Slack Created Release +# if: github.event.inputs.pre_release == 'false' +# uses : ./.github/workflows/post-to-slack +# with: +# SLACK_BOT_TOKEN: ${{ secrets.SLACK_TOKEN }} +# SLACK_TAG_CHANNELS: ${{ secrets.SLACK_CHANNEL_RELEASE }} +# PAYLOAD: | +# { +# "blocks": [ +# { +# "type": "section", +# "text": { +# "type": "mrkdwn", +# "text": "Hi All :smile:\n\nWe just released *Elementor*\n`${{ env.RELEASE_NAME }}`" +# } +# }, +# { +# "type": "divider" +# }, +# { +# "type": "section", +# "text": { +# "type": "mrkdwn", +# "text": "GitHub Release *${{ env.RELEASE_NAME }}* \nCreated by ${{ github.actor }}" +# }, +# "accessory": { +# "type": "button", +# "text": { +# "type": "plain_text", +# "text": "Open :point_left:", +# "emoji": true +# }, +# "value": "open-release", +# "url": "https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_NAME }}", +# "action_id": "button-action" +# } +# } +# ] +# } diff --git a/changelog.txt b/changelog.txt index ccf8b9ebe90a..cdc588deaa26 100644 --- a/changelog.txt +++ b/changelog.txt @@ -25,47 +25,11 @@ = 3.22.3 - 2024-06-26 = -* Fix: PHP error appears on the front when using gradient background with the Optimized Control Loading feature activated ([#27733](https://github.com/elementor/elementor/issues/27733)) - -= 3.22.2 - 2024-06-24 = - -* Security Fix: Improved code security enforcement in Shape Divider -* Fix: Refresh the media library after inserting an AI edited image - -= 3.22.1 - 2024-06-17 = - -* Fix: Editor not loading due to compatibility issue between Elementor AI and third-party plugins - -= 3.22.0 - 2024-06-16 = - -* New: Introducing Element Caching experiment - Enhance site speed by caching elements for faster rendering -* New: Introducing the Performance Tab - Centralizing all stable performance features in one accessible location ([#21194](https://github.com/elementor/elementor/issues/21194)) -* New: Generate post excerpts with AI for concise summaries -* New: Generate and edit images with AI from WordPress media library -* Tweak: Updated Google Fonts list with 170+ new fonts ([#25095](https://github.com/elementor/elementor/issues/25095)) -* Tweak: Improved Elementor translation functionality with `just-in-time` translation loading (props [@swissspidy](https://github.com/swissspidy), [#27199](https://github.com/elementor/elementor/issues/27199)) -* Tweak: Added View Page link to the Editor Top Bar ([#21925](https://github.com/elementor/elementor/issues/21925)) -* Tweak: Replaced `waypoints.js` library with the native Intersection Observer API -* Tweak: Changed child containers' Content Width to Full Width as default -* Tweak: Reorganized User Preferences panel for improved user experience -* Tweak: Hide icon position & spacing controls if there is an icon but no text in Button widget -* Tweak: Extended Alignment and Position capabilities in Button widget -* Tweak: Implemented CSS logical properties to Icon Spacing control in Button widget -* Tweak: Implemented CSS logical properties to Icon Position control in Button widget -* Tweak: Promoted Grid Container feature to Stable status -* Tweak: Activated Optimized Control Loading by default for new sites -* Tweak: Changed Generative Fill AI image feature to use Clipdrop text-inpainting -* Tweak: Added functionality to delay the running of the ready triggers on inner elements -* Tweak: Deactivated Landing Page feature for new sites -* Fix: "Exit to" functionality is not working with the Editor Top Bar ([#22828](https://github.com/elementor/elementor/issues/22828)) -* Fix: Row-reversed direction is not working on mobile portrait breakpoint in Container ([#23710](https://github.com/elementor/elementor/issues/23710)) -* Fix: The What's' New string in the Editor is not translatable (props [@DAnn2012](https://github.com/DAnn2012)) -* Fix: Fatal error appears when updating a page with Tabs widget -* Fix: Transparency indicator not visible in UI Light theme for Color Picker -* Fix: AI Expand Images not working on local and protected websites -* Fix: `all: unset` assigned to buttons cause focus issues -* Fix: Links to Elementor Settings are broken in various locations -* Fix: `RunReadyTrigger` returning incorrectly in various scenarios +* Fix: Can't click on the AI consent modal checkbox + += 3.23.0 - 2024-05-29 = + +* Fix: Can't click on the AI consent modal checkbox = 3.21.8 - 2024-05-26 = diff --git a/includes/managers/elements.php b/includes/managers/elements.php index 68dc93d9fc0c..4fa6939b7f3f 100644 --- a/includes/managers/elements.php +++ b/includes/managers/elements.php @@ -280,6 +280,10 @@ private function init_categories() { 'title' => esc_html__( 'Layout', 'elementor' ), 'hideIfEmpty' => true, ], + 'charts' => [ + 'title' => esc_html__( 'Charts', 'elementor' ), + 'icon' => 'eicon-font', + ], 'basic' => [ 'title' => esc_html__( 'Basic', 'elementor' ), 'icon' => 'eicon-font',