Public Backlog

WebinOne announcements, releases, updates and achievements

v7.5 Release date: 10 Sep, 2025

Mailchimp Full CRM Sync

This release introduces major updates to mailing list management, Mailchimp synchronization, and email content editing, giving you more control, flexibility, and clarity when working with subscribers.

What’s new

Mailchimp list import

  • New Import from Mailchimp action with a dropdown to select lists (showing subscriber counts).
  • Mailing lists view now includes a Subscribers column with counts from Mailchimp.

General settings for mailing lists

  • Added in the 'General Settings' section with two options:
    • Email opt-in method (Double opt-in / Single opt-in) – stored per list and applied only to new subscribers.
    • Tags management – view tags, add via popup, and store them with each list.

Subscription status sync

  • CRM status changes (subscribed/unsubscribed) are now synced with Mailchimp.

Mailchimp sync tab

  • New 'Mailchimp Sync' tab for comparing and aligning audiences.
  • Options to sync manually (in addition to auto-sync every 24h).
  • Contact mismatch resolution with per-field radio buttons or bulk apply from CRM/Mailchimp.
  • Visual highlighting of differences and per-contact sync actions.

Tag synchronization and bulk management

  • Tags now sync on subscribe/unsubscribe events.
  • Bulk add/remove tags for selected contacts via toolbar.

Mailing lists field in Form Builder

  • Mailing lists remain available as a default user field.
  • Displayed as checkboxes inside forms, with related tags shown under each list.
  • Selected lists and tags are saved and visible in user profiles.

WYSIWYG Editor for All Admin Code Editors

A WYSIWYG (visual) editor is now available across all admin code editors, making it easier to create and format content.

What’s new

  • Enabled WYSIWYG mode in all admin code editors.

Code Editor in Full Screen Mode

The built-in code editor can now be expanded to full screen, giving developers more space and focus when working with code.

What’s new

  • Added an option to toggle the code editor into full screen mode.

Multiple Data Source property

A new option has been added to Data Source properties, allowing multiple values to be selected instead of just one. This makes properties more flexible and better suited for scenarios where multiple related items should be stored together.

What’s new

  • Added a “Multiple” checkbox for Data Source custom properties.
  • When enabled:
    • Users can select multiple Data Source items.
    • The property value is stored as an array (with item ID, Name, and URL).

System Emails And Autoresponders Test Button

A new "Send Test Email" button has been added across all types of system and autoresponder emails, making it easier to preview messages before sending them to real contacts.

What’s new

  • The "Send Test Email" button is now available in the bottom action bar for:
    • System emails
    • Workflow, follow-up, abandoned cart, and reminder emails
    • Autoresponders (including module-based ones)
  • The button appears only after the email content has been saved.
  • Clicking it sends the email to the selected address exactly as it is in the template, with sample test data substituted where needed.

Control Auto-Generated SEO Content

You can now control whether SEO metadata tags are auto-added when values are set in the items SEO settings, or only taken from your custom page or template code. This gives developers and SEO specialists more flexibility in managing search-optimized metadata.

What’s new

  • Added a new checkbox setting: "Auto-generate SEO Content" (located in 'Settings' > 'SEO').
  • Default value: Enabled (True).
  • When enabled, SEO meta tags are added automatically (current behavior).
  • When disabled, auto-generation is skipped, and only manually defined SEO metadata in the site code is used.

Extend DateTime Field Support in Form Fields

The DateTime field in forms now supports both date and time selection, making it more flexible for scheduling and time-specific submissions.

What’s new

  • DateTime field upgrade: previously worked as a simple Date field, now supports full date + time input.
  • Added a new Date only checkbox in Form Builder:
    • Enabled → renders <input type="date">.
    • Disabled → renders <input type="datetime-local">.

For more info, see the HTML specs for the differences between 'datetime-local' and 'date' input types.

Liquid File List Access

The feature previously called API (File system) has been renamed and repositioned to make its purpose clearer and more accessible.

What’s new

Bugfixes

The following bugs have been fixed:

  • Fixed the removal of expired extensions after the trial period.
  • Fixed uploading folders (with files) via FTP.
  • Fixed reversed forloop.rindex and forloop.rindex0 values (0-based now starts at 0; 1-based at 1).
  • Fixed HiddenValidator: it now trims spaces in name and capitalizes the following word.
  • Fixed incorrect redirect URL in the Portal after changing the billing cycle via PayPal.
  • Fixed the Prices tab not showing for events on the Pro plan.
  • Fixed login creating a 30-day member cookie when “Remember Me” is unchecked – it now expires after 24 hours.
  • Fixed an issue preventing workflow deletion on Business and Starter plans.
  • Fixed the error message when deleting an admin user who owns a non-shareable custom report.
  • Fixed API error when creating a custom module item with Disable detail layout enabled.
  • Fixed Admin list-view sorting resetting to A–Z on navigation – the chosen sort now persists.
  • Fixed searchScope filtering: multiple conditions are again combined with AND.
  • Fixed in the On-Site Editor, clicking Add item with the toolbar closed no longer reopens the toolbar.
  • Fixed in the On-Site Editor, when adding an item with the toolbar closed, the Content field no longer collapses.
  • Fixed in the On-Site Editor, multiline fields no longer expand to full screen height.
{% endraw %}
v7.4 Release date: 16 Jul, 2025

AgentOne - Design Parser

Converts Figma designs into ready-to-use HTML/CSS/JS code in just a few clicks — no manual coding required.

Simply design your layout in Figma as usual; the parser automatically reads your layers, frames, and components. It generates clean HTML, responsive CSS (using Tailwind 4.1), and lightweight JS, ready for development or publishing.

Works instantly, making it easy to go from design to working webpage in minutes. Great for landing pages, home screens, UI mockups, and more — no need to rebuild layouts manually. It is built to understand common naming conventions and structure, so well-prepared designs are transformed more accurately.

Recommendations for best results

  • Use keywords in layer names:

    • e.g., icon, ico, logo, bg, or background
    • Examples: insta-icon, dentist-icon, header-bg --> Helps the parser treat them as single assets instead of raw SVG vector sets.

  • Name the main frame using home or landing:

    • Examples: home screen, landing page --> The parser uses this to generate the main index.html.
  • Keep Figma designs structured, with clean layers and components.

  • Avoid excessive repetition or duplicated frames for more accurate parsing.

What’s new

  • ~50% faster CSS generation

  • Now outputs Tailwind 4.1 code using the Vite Build Tool

  • Improved background image handling: now uses bg-[url()] classes instead of absolutely-positioned <img> elements

  • New walkthrough video How to use the Design Parser

AgentOne - Implementor

Implements finished HTML/CSS/JS projects into WebinOne components, ready to publish with no extra setup needed.

Implementor can be used in three ways

  1. One-click from Design Parser – if the generated code is ready, you can send it directly to Implementor via the “To Implementor” button.

  2. After code review and edits – make any necessary changes to the Design Parser output, then repackage it as a .zip and upload it manually to Implementor.

  3. Using your own project – upload any valid HTML/CSS/JS project following the structure above to generate a working WebinOne site.

How it works

  • Simply upload a .zip file containing your project.

    • Include your main HTML files and asset folders like JS, CSS, fonts, and images.

  • No configuration or cleanup required – the system automatically maps your files into WebinOne components and structure.

Limit

  • Supports archives up to 300 MB.

Ideal for turning design output into a real, editable, and publishable website on the WebinOne platform, quickly and seamlessly.

Implement WebP ImageProcessor Plugin

The ImageProcessor now includes built-in support for WebP images via a new plugin.

What’s new

  • Added WebP plugin to the ImageProcessor toolset

  • Enables handling, optimizing, and serving .webp files natively

  • Improves image compression and performance across supported browsers

This update helps ensure modern image standards are fully supported, making websites faster and more efficient, especially for mobile users.

New System Order Statuses

New post-purchase order statuses have been added for improved tracking and clarity in order management.

  • Return Requested – indicates that the customer has initiated a return.

  • Partially Refunded – reflects a refund applied to part of the order.

  • Refunded – shows that the full order amount has been refunded.

These statuses enhance transparency in the order lifecycle and help both merchants and customers better understand the state of each transaction.

Option To Index Custom Fields

A new setting now allows you to include or exclude custom fields from Site Search indexing, giving you more control over what content is searchable on your website.

What’s new

  • Added a checkbox in Custom Properties settings labeled: Enable for Site Search

  • Available for the following field types:

    • Lists — Checkbox / Dropdown / Radio

    • Single Line (Text)

    • Multiline (Text)

    • Media

When the checkbox is enabled:

  • The field is included in the search index

  • Site Search will return results based on the field’s content

When disabled:

  • The field is excluded from indexing and search results

This update gives you flexible indexing control so that only relevant custom data contributes to on-site search — helping deliver more accurate and useful results to users.

Open API v2 (new endpoints)

Expands the Open API with new endpoints, providing developers with greater control over integrations, site data, and automation workflows. Supports the creation of more efficient and intelligent connections with external tools.

  • MENUS

  • SNIPPETS

  • FORMS

  • MEMBER AREAS

  • WORKFLOWS

  • EMAILS

  • EMAIL TEMPLATES

  • SYSTEM EMAILS

  • ADVANCED CRM GROUPS

  • ORDER STATUSES

  • ECOMMERCE SETTINGS

  • SYSTEM PAGES

  • ADMIN MENU CONFIGURATOR

  • URL REDIRECTS

  • URL REWRITES

  • ADMIN USERS

  • ADMIN USER ROLES

  • PAYMENT GATEWAYS

Bug Fixes

  1. Mailbox password reset in the Portal now works correctly and applies a new password as expected.

  2. Media files (e.g., .mov, .mp4, .webm) no longer trigger 500 errors; they are now served properly on the frontend.

  3. Invalid admin logins no longer lead to a 404 page. Users now see a proper error message when entering an incorrect email.

  4. Admin user invitations now function as intended; new admin users can be invited without issues.

  5. The Back button on module item pages now behaves consistently across tabs such as Settings and SEO, returning to the correct folder every time.

  6. Sorting blog posts no longer affects the entire blog module; post-level sorting is now applied correctly.

  7. Stability improvements and multiple fixes have been made to the OSE module.

  8. The Insert Link pop-up now appears above the full-screen WYSIWYG editor in both the Admin Panel and OSE, ensuring proper visibility.

  9. Volume discounts can now be added without errors.

  10. Custom module layouts edited via File Manager after module duplication now sync properly and reflect changes as expected.

  11. Shipping calculations in the shopping cart now exclude products that don’t require shipping.

  12. Addressed UI display issues on tablets.

{% endraw %}
v7.3 Release date: 20 May, 2025

Email Accounts

A new extension for managing email mailboxes is now available.

Buying Mailboxes:

  • Buy any number of 5 GB mailboxes ($2 each)
  • Purchase via popup with quantity input
  • New mailboxes appear in the list instantly

Managing Mailboxes:

  • View list with email address, used/total storage
  • Real-time updates when changes are made

Actions via dropdown:

  • Add Vault: +5GB ($2), +15GB ($4), +25GB ($6), +45GB ($10), +95GB ($20)
  • Reset Password
  • Delete Mailbox (with confirmation)

Buttons:

  • Buy Mailbox (opens popup)
  • Add New Mailbox (quick add from dashboard)

Payments:

  • Charges are added to the main account
  • Payment confirmations shown in the interface
  • All changes are applied in real-time

File Manager - Trash and Version History Management

Several new features and improvements were added to the File Manager.

Trash Bucket:

  • New section to view deleted files
  • Search by file name
  • Sort by name, size, or date deleted
  • Restore latest or any previous version
  • Preview deleted files (text files open in popup)
  • Permanently delete files (single or bulk)
  • Bulk restore

File Version History:

  • All files now keep version history for 30 days
  • You can preview or restore any version

Access Control:

  • New admin role permission: Can Access File History
  • History features are only available if:
    • User has this permission
    • Website Backup extension is active

Drag & Drop Upload:

  • Added simple drag-and-drop upload area

HiddenValidator Field for Anti-Bot Protection (Honeypot)

Added a new custom field type HiddenValidator to help prevent bot submissions.

How It Works:

  • HiddenValidator fields are invisible to users but included in form validation.

Submission is allowed only if:

  • All HiddenValidator fields are empty, or
  • The fields exist in the Form Builder but were not added to the layout (not submitted).

Validation Rules:

  • Fields are ignored if:
    • Not added in the Form Builder
    • Have incorrect HTML (type, name, or mismatched field name)

HiddenValidator values are not saved in form records and not sent in email notifications.

Monaco Code Editor

Replaced the built-in code editor in the admin panel with the Monaco Editor (used in VS Code).

Key Benefits:

  • Improved performance
  • Syntax highlighting for multiple languages
  • IntelliSense support
  • Professional, developer-friendly editing experience

Notification About Mandatory Update to Version 7+

Sites running on version 6.11 that exceed system limits must now be upgraded to version 7. Limit checks are updated daily.

Upgrade Required If:

  • More than 25 custom properties per module
  • Over 2,000 items (system or custom modules items)
  • Over 10,000 CRM records

Portal Notifications:

  • A warning banner is shown in the portal header for affected 6.11 sites
  • Includes a link to a detailed page listing all affected sites with upgrade recommendations
  • The banner is visible only if the site exceeds the limits

Reseller Role Upgrade

Added the ability for resellers to upgrade their role directly from the My Settings page in the admin, under the Profile tab.

Upgrade Options:

  • Associate – $999
  • Partner – $1,999
  • Agency – $4,999

If a reseller already has a paid role, only higher roles are available for upgrade (downgrades not needed). The user pays only the difference in price.

Upgrade Flow:

  • Dropdown with available roles appears under the Email field
  • On selection, a popup shows upgrade info and a PAY button
  • Payment is processed via Stripe
  • After successful payment, the role is upgraded automatically, and the user is returned to the Profile page

Notifications:

  • Email confirmation of successful payment
  • Email notice about role change

URL Rewrites

Added a new URL Rewrites section (available on PRO plan).

Key Features:

  • Add/edit rules with the following fields:
    • Rewritten URL* (RegExp), e.g. ^article/([0-9]+)/([_0-9a-z-]+)
    • Rewrite To* (RegExp), e.g. /article/article-detail-name
    • Enabled (default: true)

Notes:

  • Rewrites work only within the same application (domain).
  • Rules are stored in the same config file as domain redirects.
  • Admin user roles updated with new permissions: View, Add, Edit, Delete.

Change Partner Email

Users can now change their email address in the Profile section of the portal.

How It Works:

  • The Email field is now editable
  • After entering a new address, a confirmation email is sent to the new address
  • The email is updated only after confirmation via the link (expires in 24 hours)

UI Behavior:

On input:

  • "A confirmation email will be sent to your current email. The change will take effect only after confirmation."

After saving:

  • Confirmation popup is shown

If not yet confirmed, a warning is displayed under the field:

  • "Your email is not verified. Please check your inbox to confirm it or resend the confirmation email."

Until confirmed, the old email stays visible in the field.

Filter Reminder Recipients by States

Added a new Member State filter to recurring reminders.

Key Benefits:

  • Target reminders to members in specific (US) states
  • Reminders are sent only to contacts matching the selected states

Disable Sender ReplyTo Option in Workflows

Under Email Notifications > Workflows, each Workflow's settings will have an option to Disable Sender ReplyTo.
When checked, the sender’s email (the user's email address used in the form submission) will not be added to the Reply-To field in the outgoing Workflow email. Instead, the receiving email client will use it's default reply-to method (likely the From Address, which will be the domain email used in the system Workflow Email's From field).

Cancel Subscription (Site Deactivation)

Added full support for canceling paid subscriptions and reverting sites to trial mode.

Subscription Info Page:

  • New Subscription tab in each live site's Settings page in the WebinOne portal
  • Shows current status, activation date, next billing date
  • Includes plan details, pricing and summary of all active features
  • Includes a Cancel Subscription button

Cancellation Flow:

  • Cancel subscription in Stripe and PayPal
  • Double confirmation required
  • Optional exit survey shown after cancellation

Site Changes After Cancellation:

  • Domains removed (except trial domain)
  • Removed from server monitoring
  • Site reset to trial mode
  • Email domains removed
  • Notification sent to partner via email
{% endraw %}
v7.2 Release date: 13 Mar, 2025

Global File Type Restrictions

A new section has been introduced under Misc Settings to enhance control over file uploads across the site.

Settings Configuration

Location: 'Settings' > 'Misc'

Section: Server File Settings

Setting Name: Enable file restrictions

Enable/Disable Control: A checkbox is provided to activate or deactivate file type restrictions.

Default Restricted List: When enabled, a default list of disallowed file types is applied, including but not limited to .exe and .php.

Custom Input: Administrators can add, remove, or modify the list of restricted file types to tailor restrictions to site requirements.

Scope of Restriction: The file type restriction applies to all key upload channels:

  • FTP uploads
  • File Manager uploads
  • Public forms (e.g., via custom forms or modules)

Validation Logic: Files are checked using extension-based validation and MIME type validation for enhanced security.

Error Messaging:

  • Frontend Forms: “The file upload failed because the file type {fileType} is not allowed on this site. Please ensure that your upload complies with the site's file type restrictions. If you need assistance, contact us.”
  • Admin/FTP Uploads: “File upload rejected. The file type {fileType} is not permitted based on the site's global file restrictions. To modify these restrictions, please review the prohibited file extensions settings in the site Admin.”

Enabling Restriction with Existing Files: If the checkbox is selected while restricted files are already present in the File Manager, the following error is shown:

“Unable to activate file type restrictions. Your site already contains files of the following restricted types: {restrictedFileTypes}. Please remove these files from the File Manager before enabling this option.”

Server Cache Exclusion Rules

A new option has been introduced under Misc Settings to allow administrators to exclude specific URLs from server-side caching, providing greater flexibility in cache management.

Settings Configuration

Location: 'Settings' > 'Misc'

Section: Server Cache Settings

Setting Name: Exclude URL Rules

Input Field: Administrators can specify URL rules that should be excluded from server caching.

URL Matching Rules:

  • Case-Insensitive Matching: All URL checks are performed case-insensitively. For example, /marketplace and /Marketplace are treated as identical.
  • Wildcard Support (*): If a rule ends with an asterisk (*), the system checks whether the current URL starts with the rule.
    Example: Setting: /marketplace/shopping_cart?* matches /marketplace/shopping_cart?item=123
  • Exact Match: If no wildcard (*) is used, only an exact match will trigger exclusion.
    Example: Setting: /marketplace/shopping_cart matches exactly /marketplace/shopping_cart but does not match /marketplace/shopping_cart?item=123

System Emails Delivery Options

A new dropdown menu has been introduced in the system email settings, allowing users to configure email sending behavior with predefined options.

Settings Configuration

Location: 'Email Notifications' > 'System Emails' > {EMAIL}

Section: Email Delivery Options

Setting Name: Delivery Option

Dropdown Options:

  • Send Always (Default behavior, currently active for all emails)
  • Never Send
  • Send Only for Main Orders (For invoice emails only)

Logic Implementation:

Invoice Emails

  • Send Always: Emails are sent for every invoice event.
  • Never Send: No invoice emails are sent.
  • Send Only for Main Orders: Based on the MainOrderId:
    If MainOrderId is null: The email is sent (indicating the main order).
    If MainOrderId has a value (e.g., "23293"): The email is not sent (indicating a sub-order).

Other System Emails

  • Send Always: Emails are sent for every event.
  • Never Send: No system emails are sent.

Recurring Subscription Reminder Emails

A new Recurring Subscription Reminder feature has been introduced, allowing users to configure and schedule automated email reminders for Member Areas, Events, Forms, and Products. The system supports item-based selection, filtering, and sorting, ensuring precise control over notification settings.

Settings Configuration

Location: 'Email Notifications' > 'Reminders'

Section: Reminders

Menu Update: A new Reminders option has been added to the admin menu between Workflows and Emails.

Reminder Fields:

  • Name* (string) – Reminder name
  • Email* (string) – Associated email
  • Type* (dropdown) – Options: Member Area, Events, Forms, Products
  • All Items (checkbox): If checked, the dropdown for items is hidden.
  • Items* (dropdown, multiple selection) – Available when “All Items” is unchecked
  • Days Before Notification* (int) – Defines when the reminder email should be sent

Email Notifications: A new Recurring Reminder Emails tab has been added under Emails with dynamic email tags:

  • {{this.item}} – Displays item data
  • {{this.member}} – Displays member data
  • {{this.recurringsubscription}} – Displays subscription details

Sending Logic:

  • If a specific item is selected, emails are sent only to subscribers of that item.
  • If no item is selected, emails are sent to all subscribers of the selected category.
  • Emails are sent N days before renewal, based on the configured value.

Stripe Customer ID in Member Component

A new property, stripeCustomerId, has been added to the {{request.currentmember}} component to improve Stripe integration and customer data management.

Component Update

Component: {{request.currentmember}}

New Property: stripeCustomerId

Behavior:

  • If a Stripe subscription exists, stripeCustomerId returns the corresponding Stripe Customer ID.
  • If no active subscription is found, stripeCustomerId returns null.

Angular Upgrade to v17

The system has been upgraded to Angular v17, providing enhanced performance, stability, and compatibility with the latest web technologies.

Key Improvements:

  • Performance Enhancements: Optimized rendering and reduced load times.
  • Compatibility: Improved support for modern browsers and frameworks.
  • Security Updates: Integrated latest security patches to safeguard against vulnerabilities.
  • Developer Experience: Enhanced tooling and debugging capabilities for faster development workflows.

Custom Form Validation Before Submission

Added support for manually triggering form validation before submission by calling a JavaScript function. This enhancement allows developers to apply validation to a specified DOM form element dynamically.

Implementation Details:

A new global function window.validateCmsForm(form) has been introduced. This function validates the given form element before submission.

Example Usage:

HTML:

<script>
let form = document.getElementById('validation');
window.validateCmsForm(form);
</script>
        

For individual fields:

  • class="validation-error" – Applied to fields with validation errors.
  • class="validation-success" – Applied to successfully validated fields.

For the entire form:

class="form-validation-error" – Applied if the form fails validation.

Improved Calendar Events - Cell by Cell Output

Enhanced the event calendar with Cell by Cell Events Output, improving event rendering and display for better clarity and usability.

Component Manager:

In the Component Manager, under 'Events' > 'Calendar', a new checkbox option is available for "Cell by Cell Events Output" which will configure the calendar output code with the appropriate parameter.

`include` parameter:

Enable 'Cell by Cell Events Output' with the addition of a parameter added to the Event Calendar include tag: cellByCellEventsOutput: "true", eg:
{% include "/cms-assets/includes/event-calendar.inc", group: "0", moduleId: "1234", cellByCellEventsOutput: "true" %}

Key Improvements:

  • Better Event Visualization: Events are now rendered within each individual calendar cell, ensuring a structured and intuitive layout.
  • Improved Readability: Events are displayed more clearly, reducing clutter and overlapping information.
  • Enhanced Usability: Users can interact with events more easily, improving the overall user experience.

Improved URL Redirects UI/UX

The user interface and experience for managing URL redirects is now consistant with other 'quick add' items by means of the pop-out sidebar, making the process more intuitive and user-friendly.

Installed Extensions Page

A new Installed Extensions page has been added to the site admin, providing better visibility and management of active extensions.

Found under the gear icon (top right of admin).

Order Transaction ID in Custom Reports

The Order Transaction ID is now available in custom reports, enabling improved tracking and filtering of transaction data.

Settings Configuration

Location: 'Admin' > 'Extensions' > 'Custom Reports'

Available In:

  • Report Fields
  • Report Filters
  • Report Results

Key Features:

  • New Field in Reports: Order Transaction ID can now be added to report outputs.
  • Filtering & Sorting: Users can filter reports based on specific transaction IDs or sort columns based on ID.
{% endraw %}
v7.0.3 Release date: 06 Sep, 2024

Validation for Module Names

New feature to prevent the creation of custom modules with duplicate names.

  • When you try to create a new module, the system will automatically check if a module with the same name already exists.
  • If a duplicate name is detected, a pop-up message will appear, advising you to change the module's name.

Screenshots:
https://prnt.sc/LPkuPb-A5CAU

Enhanced Export Logic for Orders

The Order Export feature has been enhanced to provide more detailed information and greater control over the data being exported.

The new capabilities include:

Screenshots:
https://prnt.sc/3OF_uujwkFj5
https://prnt.sc/t5-Lu3-FvxVP
https://prnt.sc/1PD-3dcGF46y
https://prnt.sc/-YJuwkISlCmc

New System Page: reset-password-result

A new system page for reset-password-result has been added. After resetting the password, the user is redirected to this page from the reset-password system page. This page also contains the formSubmissionData object, which, if there are errors, includes a list of errors that are displayed.

Added this.formSubmissionData liquid object with the following structure

{
     "form_alias": "reset-password",
     "error": 0,
     "errormessages": [],
     "formtype": "System"
}
  • 'formtype' is always 'System'
  • 'form_alias' is always 'reset-password'
  • 'error' and 'errormessages' should be set based on errors occurred during the reset-password flow. On success, 'error' = 0

Screenshots:
https://prnt.sc/Bx_O-nZ4DZNy
https://prnt.sc/pm10eXlMZxZu
https://prnt.sc/VvZs_4r7tkJG
https://prnt.sc/GjctWpl-FFBH

When we enter the same password reset link for the second time:
https://prnt.sc/4dMqo0FeWQLV
https://prnt.sc/QXPFHEKxNe5M

Add this.siteURL to all emails and provide all variables in toolbox

1) Add this.siteURL parameter to all email’s liquid context. The parameter should appear here in the toolbox https://prnt.sc/hdl6H0MHqPLq

It should contain protocol and domain (save that domain that was used by the site visitor at the time the email sending was scheduled).

List of emails:

  • form autoresponders
  • system emails
  • custom emails and custom workflows

2) Provide toolboxes ( https://prnt.sc/ru2bmo) to all emails with the list of variables that are accessible on this object in liquid context for:

  • form autoresponders
  • system emails
  • custom emails

Screenshots:
https://prnt.sc/uhHv1Mu4SSeq
https://prnt.sc/0eq81KiJLCh9

New Component for Booking Subscriptions

Add new component tag for Bookings.

The {% component type:"booking_subscriptions" %} component returns subscriptions. It either returns all existing subscriptions or only the subscriptions of the current user.

Pattern:

{% component type:"booking_subscriptions", viewType:"[[viewType]]", object:"[[object]]", currentMemberOnly: [[currentMemberOnly]], filterBy:"[[filterBy]]", filterValue:"[[filterValue]]", filterCondition:"[[filterCondition]]", collectionVariable:"", layout:"", sortBy:"", sortOrder:"", limit:"[[limit]]", offset:"[[offset]]" %}
  • viewType
    • List [default]
    • Detail
  • currentMemberOnly [Boolean | default = true] (not required)
    • if false get all booking subscriptions of all users
    • otherwise get booking subscriptions of current logged in CRM member only
  • object [item|collection - default = collection] (not required)
  • collectionVariable (not required)
    • works the same way as in type: module.
  • layout (not required)
    • path to FTP file that will contain layout content that needs to be parsed.
    • If specified empty string - do not render anything.
    • If not specified at all - render default virtual layout.
  • sortBy (not required)
    • Id [default]
    • FormId
    • MemberId
    • FormName
    • CreatedDateTime
  • sortOrder (not required)
    • ASC
    • DESC [default]
  • filterBy (not required) [default = empty]
    • Id
    • FormId
    • MemberId
    • FormName
    • CreatedDateTime
  • filterValue (not required)
    • value to use in filtering condition
  • filterCondition (not required)
    • Equally [default]
    • less
    • more
    • lessEqually
    • moreEqualy
    • contains
  • limit (not required) [default = 10]
  • offset (not required) [default = 0]

Single tag item context is described below.
If object = collection than this contains attribute property that holds the list of attributes (ie: {{this.items}}):

viewType == list

{
    "formId": 0,
    "memberId": 0,
    "id": 0,
    "formName": "",
    "EventName": "",
    "Allocation": 0,
    "Price": "",
    "dateSubmission": ""
}

viewType == detail

{
    "formId": 0,
    "memberId": 0,
    "fields": [
       {
          "name": "",
          "alias": "",
          "value": "",
          "type": ""
       }
    ],
    "id": 0,
    "formName": "",
    "EventName": "",
    "Allocation": 0,
    "Price": "",
    "dateSubmission": ""
}

Default virtual layout:

<ul>
    {% for item in this.items %}
    <li>
        <strong>{{item.formName}}</strong>
        <span>Date Submission: {{item.dateSubmission | format_date: "dddd, MMMM dd, yyyy"}}</span>
    </li>
    {% endfor %}
</ul>

The new component will be added here: https://prnt.sc/wqRi_L8xLv9o

Screenshots:
https://prnt.sc/6cP1FQJD1Z2y
https://prnt.sc/AS93RF_SyYZe

Improvement to the ‘Setup Analytics’ file input

If a Service Account Key File has already been uploaded, the file input will be filled with asterisks to indicate that a file is present.

A "Delete" button will now be visible. Clicking this button will trigger a confirmation popup: "Are you sure you want to remove this file?"

If the user clicks "Ok," the file data will be removed from the Google Analytics configuration in the database.

If a new file is uploaded and submitted with the setup analytics form, it will replace the old one.

If no file is submitted with the form, the existing file data in the Google Analytics configuration will not be removed.

DESIGN: https://invis.io/TA104JA6C9VP

Screenshots:
https://prnt.sc/g4sA72UFpT-F

Website Backup Scheduling Interface Updates

The Website Backup extension scheduling options have been adjusted.

The "Period" and "Every" dropdowns have been switched: https://prnt.sc/TJUqZPQ6NC5i

A new "Hour" option has been added to the "Period" dropdown.

If "Hour" is selected, the time dropdown will be removed.

When "Hour" is selected, the "Every" dropdown will show options for 6 and 12 hours (default is 12).

If a user had a backup previously, we would count a time based on the previous backup time. The tooltip should say: “Your next backup creation will be launched approximately at [time]”

If the user didn't have a backup and it's their first backup, we will do a backup within the next hour. The tooltip should say: “Your next backup creation will be launched approximately at [time]”

Screenshots:
https://prnt.sc/99KgYCCAX8Wm
https://prnt.sc/qEsk4gu7bUU8

eCommerce Сatalog duplication with or without sub-content

Now, users can choose to duplicate not only the catalogs but also the products within those catalogs.

When duplicating a catalog, a message will appear with two options:

  • Duplicate Sub-Catalogs Only:
    This option allows you to duplicate the catalog along with its sub-catalogs, but without duplicating the products.
  • Duplicate Sub-Catalogs and Products:
    This option duplicates both the catalog with its sub-catalogs and all the products within them.

Screenshots:
https://prnt.sc/kMUu0iyQ3C7O

Custom Modules Advanced Filtering

Public Backlog request link: https://webinone.com/public-backlog-state/delivered/custom-modules-advanced-filtering

Add the "Where" parameter to the admin panel. This parameter will be used for the items.

Add the "Filter Type" dropdown with the 2 options: "Simple Filtering" and "Advanced Filtering". The default is "Simple filtering". Default view will show a "Filter Type" dropdown and a "Filter by" dropdown.

If the user switches to "Advanced filtering" in the "Filter Type" dropdown, the "Filter By" dropdown will be removed and replaced with the "Where" drop-down, which will be a text input field.

If the user configures both "Filter By" and "Where", then "Where" will be prioritized, and the system will do filtering based on "Where". "Filter By" will be ignored in such case.

The filter value will use the JSON Query Language format as per: https://github.com/clue/json-query-language/blob/master/SYNTAX.md

Screenshot:
https://prnt.sc/-YJuwkISlCmc

Liquid Parser Inside Text Based Files

Backlog request: https://webinone.com/public-backlog-state/request/custom-modules-advanced-filtering

Liquid (and module rendering) is now available inside other text based files such as .css, .js, .xml, .json, .txt, etc.

Add the liquid parameter to the file URL to force it to be processed by the liquid engine.

Example

File:

/assets/css/main.css

In order to parse file with liquid reference the file with the URL parameter:

/assets/css/main.css?liquid=1

With the new functionality, the liquid will be parsed within the file, so the file is returned with the parsed liquid, providing the URL param is used when referencing the file.

{% endraw %}
v7.0 Release date: 05 Jun, 2024

Open API

OpenAPI version 2 is now released with a number of endpoints for sites on Treepl version 7.

Here is a link to the OpenAPI documentation:
https://docs.webinone.com/open-api-admin
and:
https://docs.webinone.com/open-api-frontend

Webhooks

After setting up an API application under ‘Settings’ > ‘API Application’, you can configure your Webhook on the “Webhooks” tab (https://prnt.sc/g_UDGnzrmDcF).

Choosing the entity/item type will then display the available actions (OnCreate, OnUpdate, OnDelete, OnTrigger) and if applicable, the modules/collections to receive webhooks - allowing you to enable just the modules you need to work with Webhooks.

Webhook documentation is here:

https://docs.webinone.com/webhooks

BUGFIX

Admin Roles: 'Abandoned Cart Reports' Restriction Incorrectly Displayed

  1. Go to any site without the "Abandoned Cart Recovery" extension.
  2. Navigate to Admin Roles.
  3. The "Abandoned Cart Reports" restriction should not be displayed.
  4. Additionally, the "Abandoned Cart Emails" restriction has been fixed.

Screenshot for reference: Link to screenshot

Orders: Internal Error When Setting Negative Product  Units

  1. Go to the Orders section.
  2. Create a new order.
  3. Open the order details and navigate to the Products tab.
  4. Open the toolbox for adding products.
  5. Select any product (Screenshot for reference: Link).
  6. Change the units to a negative value (validation works and the SAVE button is inactive) (Screenshot for reference: Link).
  7. Change the product without changing the units.
  8. Change the units value (Screenshot for reference: Link).
  9. Click SAVE (Screenshot for reference: Link).

Result: An internal error is displayed (Screenshot for reference: Link).

Module Item: Enable Draft

If the draft version of a page is enabled (Screenshot for reference: Link) while the live version is disabled (Screenshot for reference: Link), the draft preview will result in a 404 error (Screenshot for reference: Link).

Cancel on Bambora and PayPal Redirect

  1. Set up Bambora or PayPal redirect on the site.
  2. Add one product to the cart and choose to pay by Credit Card (Bambora).
  3. After being redirected to Bambora, click Cancel (Screenshot for reference: Link).
  4. On the checkout page, choose "Cash" as the payment method (Screenshot for reference: Link).
  5. In the admin panel, the order is displayed with "None" as the payment status (Screenshot for reference: Link).

Authorize.Net: Paid Secure Zone + Free Secure Zone Issue

  1. Set up Authorize.Net on the site to provide one-day access.
  2. Create a form that includes both a free secure zone and a paid secure zone.
  3. Submit this form.
  4. In the user's Subscribes, the free secure zone is not applied; only the paid secure zone is applied (Screenshot for reference: Link).

Roles for Portal Users: Display Informative Error

When a Portal user attempts to add their email to an Admin user:

  1. Display an error.
  2. The error popup should contain an informative message stating that this user cannot be added as an Admin user because they are a Portal user in some portal (Screenshot for reference: Link).

504 Gateway Timeout: Deleting Large Folder in File Manager

  1. Go to the File Manager.
  2. Try to delete a folder that is approximately 1 GB in size (Screenshot for reference: Link).
  3. After removing some large folders (Screenshot for reference: Link), a 500 error (Screenshot for reference: Link) or 504 error will be displayed.

Forms: Assigned CRM Groups Issue

  1. Create two different CRM groups: one applied to "Form Submissions" and the other to "Event Booking" (Screenshot for reference: Link).
  2. Go to Forms and create a new form.
  3. Assign both CRM groups to the created form (Screenshot for reference: Link).
  4. Submit the form from the frontend.
  5. Go to Form Submissions.
  6. The "Event Booking" CRM group should not be applied to form submissions (Screenshot for reference: Link).

The same issue occurs with event bookings, where the "Form Submissions" CRM group should not be applied to event bookings (Screenshot for reference: Link).

Catalogs: Deleting Assigned Catalog Issue

  1. Go to Catalogs.
  2. Create a new catalog.
  3. Assign this new catalog to any product (Screenshot for reference: Link).
  4. Delete the assigned catalog.

Expected: An alert should be shown indicating the catalog is assigned to a product (Screenshot for reference: Link).

Actual:

  • The catalog was deleted.
  • In the list view, the product shows an empty URL tab (Screenshot for reference: Link).
  • On the frontend, the product page is unavailable (Screenshot for reference: Link).

Product: Add to Cart Deleted Product

  1. Go to Products in the admin.
  2. Create a new product.
  3. Go to the frontend to view this product.
  4. Delete the product in the admin (Screenshot for reference: Link,Link).
  5. Attempt to add this product to the shopping cart on the frontend.

Result: An error is shown when trying to add the deleted product to the cart (Screenshot for reference: Link).

Payment: PayPal Flow ID Issue

  1. Go to the Payment section.
  2. Create a PayPal flow (Screenshot for reference: Link).
  3. The created PayPal flow initially has an ID of 0 (Screenshot for reference: Link).
  4. Reload the page.
  5. On the GET request for all payments, the PayPal flow now has a proper ID number (Screenshot for reference: Link).
  6. This ID is then used for the delete request (Screenshot for reference: Link).

Display Zero Values After Decimal Point in Prices

  1. Ensure that prices and totals are displayed with two decimal places, showing .00 after the decimal point (Screenshot for reference: Link).
  2. Apply a discount and check the displayed price, which should also show .00 after the decimal point (Screenshot for reference: Link).
  3. When JavaScript sends a request to:
    /public/api/forms/calculate-form-totalcost?‌Price=29&‌GiftVoucherCode=&‌DiscountCode=&‌Quantity=&‌EventId=0&‌FormAlias=patriot_membership_d
  4. After receiving the response, JavaScript updates the displayed price, ensuring it shows two decimal places.

Forms: Quote Form Should Not Include 'Accept Event Booking' Field

  1. Go to the Forms section.
  2. Create a generic form and include the "Accept Event Booking" field.
  3. Change the form type to "Quote".
  4. Click Save (Screenshot for reference: Link).

Expected Result:

  • The "Quote" form should not have the "Accept Event Booking" field (Screenshot for reference: Link).
  • An error should be displayed indicating that the "Accept Event Booking" field is not allowed in a "Quote" form (Screenshot for reference: Link).

Module Item: URL Duplicates (Inactive) Issue

  1. Go to Misc Settings and uncheck the checkbox (Screenshot for reference: Link).
  2. Go to the Custom Module and create an item (Screenshot for reference: Link).
  3. Go to Pages and create a page folder and a page with the same name as the custom module item (Screenshot for reference: Link).
  4. Both items should display a "duplicate warning" (Screenshots for reference: Link 1,Link 2).

Results:

  • The custom module item has a higher priority than the page.
  • If you click preview, the frontend shows the content of the custom module item (Screenshot for reference: Link).
  • If you set the custom module item to inactive (by choosing a future date for the release date) (Screenshot for reference: Link), the page content does not show on the frontend, and instead, a 404 page is displayed (Screenshot for reference: Link).
  • If you change the URL of the custom module item and set it to active (by choosing a past date for the release date) (Screenshot for reference: Link), the page content is shown on the frontend (Screenshot for reference: Link).

Custom Report: Internal Error When Using Duplicate Field Names

  1. Go to Forms.
  2. Create a new form with default and custom fields having the same names (e.g., "Address") (Screenshot for reference: Link).
  3. Submit this form from the frontend.
  4. Go to Custom Reports.
  5. Create a new report with the type "Contacts and Cases" and use the submitted form as a filter (Screenshot for reference: Link).
  6. Go to the Fields tab and select both checkboxes for "Address" (Screenshot for reference: Link).
  7. Go to the Results tab, where an internal error is displayed (Screenshot for reference: Link).

Email Marketing: Incorrect CreateDateTime Value in Email Campaigns

  1. Go to Email Marketing.
  2. Create a new mailing list.
  3. Go to Email Campaigns.
  4. Create a new campaign.
  5. Observe the CreateDateTime option on both the list and detail views, which displays an incorrect value (Screenshots for reference: Link 1,Link 2).

History: Preview Button Not Working

  1. Log in to the admin panel
  2. Go to Event settings and enable the Rollback extension.
  3. Go to the event item and make some changes.
  4. Open the history window and try to click the Preview button.

Result: An error is displayed when clicking the Preview button (Screenshot for reference: Link).

Order: Incorrect Shipping Option Calculation

  1. Create a new tax (Screenshot for reference: Link).
  2. Create a new shipping option with the applied tax (Screenshot for reference: Link).
  3. Create a new order.
  4. Go to the PRODUCTS tab and add any product.
  5. Select the created shipping option (Screenshot for reference: Link).

Result:

  • The total cost is not calculated correctly (Screenshot for reference: Link). The total should be $37.25.
  • From the frontend, the calculation is correct.
  • The shipping price does not recalculate when the shipping option is set up, only when something else is updated (Screenshot for reference: Link).

Portal: Site Copying Issue with Extensions

  1. Copy a site that includes extensions.
  2. Check the admin panel: the extensions remain enabled (Screenshot for reference: Link).
  3. Check the portal: the extensions are disabled (Screenshot for reference: Link).

Admin Roles: Remove Extra Restrictions

  1. Go to Admin Roles.
  2. Observe that extra restrictions are being added (Screenshots for reference: Link 1,Link 2).

Expected Result: The following restrictions should be removed from Admin Roles, as they are unnecessary:

  • Menus
  • ContentTemplates
  • Snippets
  • Forms
  • Contacts
  • AdvancedCrmGroups
  • Workflows
  • WorkflowEmails
  • EmailTemplates
  • EmailCampaigns
  • MailingLists
  • AdminUsers
  • AdminUserRoles
  • Taxes

Current Issue: These extra restrictions are appearing in various sections (Screenshot for reference: Link).

eCommerce: System Properties of Products Not Resetting to Zero

  1. Go to any product.
  2. Change the values in the system properties fields (Screenshot for reference: Link) and click SAVE.
  3. Clear those fields and click SAVE again (Screenshot for reference: Link).

Expected Result: The values should be reset to 0, similar to the behavior in stage v5 (Screenshots for reference: Link 1,Link 2).

Actual Result: After saving, the fields are restored with the last values instead of being reset to 0 (Screenshot for reference: Link).

Workflows: Incorrect Error Text Displayed

  1. Go to Comment Settings.
  2. Add a workflow notification to any module (Screenshot for reference: Link).
  3. Click SAVE.
  4. Go to Workflows.
  5. Delete the workflow selected in the comments (Screenshot for reference: Link).

Result: An error is displayed with incorrect text referring to forms instead of the relevant module (Screenshot for reference: Link).

Event Group: Naming Consistency

Issue: In the module names, which consist of two words, both words are capitalized except for "Event Group," where "group" is written in lowercase.

  1. Module names with inconsistent capitalization (Screenshots for reference: Link 1,Link 2).
  2. "Event Group" is displayed with "group" in lowercase (Screenshot for reference: Link).
  3. In the dropdown menu for modules, all names are capitalized except for "Event Group," which starts with a lowercase letter (Screenshot for reference: Link).

Expected Result:

  • "Event Group" should be consistently capitalized as "Event Group" in all instances, aligning with the naming convention used for other modules.

Forms: Inconsistent Aliases Between Admin and FTP

  1. Go to Forms.
  2. Create a form with a multi-word name from the admin panel (Screenshot for reference: Link). The alias is generated with an underscore.
  3. Create a form with a multi-word name from FTP (Screenshots for reference: Link 1,Link 2). The alias is generated with a dash.
  4. Observe that forms created from the admin and FTP have different aliases (Screenshot for reference: Link).

Expected Result: Forms created via FTP should use the same alias format as forms created in the admin panel, with underscores.

Actual Result: Forms created via FTP have dashes in their aliases, whereas forms created via the admin panel have underscores.

Custom Module: Creating Items from Frontend with Enabled Bookings

  1. Go to Custom Module settings.
  2. Enable bookings (Screenshot for reference: Link).
  3. Create a new module item from the admin and add a form for creating module items from the frontend on any page.

Result:

  • In the admin, the "Event Date End" field is required (Screenshot for reference: Link).
  • In the form for creating an item from the frontend, this field is not required (Screenshot for reference: Link).

Screen recording for reference.

Misc Settings: Inconsistent Use of Dots at the End of Sentences

  1. Go to Misc Settings.
  2. Observe that two select options have a dot at the end of the sentence, while the other two do not (Screenshot for reference: Link).

Expected Result: All select options should have consistent punctuation, either with or without dots at the end of the sentences.

Custom Module: Parent/Child Table List View Issue

  1. Go to the custom module with the parent-child relationship (Screenshot for reference: Link).
  2. Go to the table tab in the child module and add a new table (Screenshot for reference: Link).
  3. Go to the parent module with the items list view (Screenshot for reference: Link).

Expected Result: The child table should be displayed only in the tree view.

Actual Result: The child table is displayed in the items list view of the parent module (Screenshot for reference: Link).

Products: Incorrect Volume Discount Calculation

  1. Create a new product.
  2. Go to the Price tab.
  3. Create a new price with a volume discount, but ensure it is disabled (Screenshot for reference: Link,Link).
  4. Go to the frontend for this product and increase the quantity to 5 to get the discount.

Result:

  • The displayed price for 5 products is incorrect (Screenshots for reference: Link 1,Link 2).

Screen recording for reference.

Security Bug with Comments: Liquid Tags Rendering Issue

  1. Go to the comments section.
  2. Enter a comment containing Liquid tags, such as {{this}} or {% endraw %} {{this}} {% raw %}.
  3. Submit the comment.

Original request:
Possible Security Bug With Comments

When using the Comments module and submitting a comment, the CMS wraps the body text in Liquid RAW tags if there is Liquid present in the text. However, it's possible to get around this by adding opposing RAW tags around the Liquid to be injected. eg:

Some text {% endraw %} {{this}} {% raw %} more text...

I've tried this with regular forms and it is not successful and the CMS correctly blocks the Liquid injection attempt (I think by removing the submitted RAW tags).

So perhaps the Comments form needs an upgrade to the same security features used for regular forms.

Import/Export Parent/Child Module: Connection Issue

  1. Go to the Parent module settings atthis link.
  2. Export the Parent module (Screenshot for reference: Link).
  3. Go to the stage environment and import the module atthis link.
  4. After the import, observe that the connection between the parent and child modules is not displayed (Screenshot for reference: Link).

Expected Result: The connection between the parent and child modules should be preserved and displayed after importing the module.

Actual Result: The connection between the parent and child modules is not displayed after the import.

Comments: Default Item Limit Shows Strange Number in Liquid Output

  1. Use the Comment component in Liquid without specifying a limit value for comments or commentThreads.
  2. Observe the Pagination.ItemsPerPage in the Liquid output.

Expected Result: If the limit value is not specified, the Pagination.ItemsPerPage should show a reasonable default value.

Actual Result: The Pagination.ItemsPerPage shows a very large number when the limit value is not specified (Screenshots for reference: Link 1,Link 2).

Additional Information: When the limit parameter is specified, it correctly shows the specified value.

Event Subscribers: Incorrect Display of Capacity in Event List

  1. Create a free event.
  2. Open the event page in two separate tabs.
  3. In the first tab, fill in all fields and click Send.
  4. In the second tab, fill in all fields and click Send.
  5. Go to the Bookings tab and observe the displayed quantity.
  6. Go to the list of Events and observe the displayed capacity.

Expected Result: The capacity should be correctly updated and displayed in both the Bookings tab and the list of Events.

Actual Result: The Bookings tab displays the correct quantity, but the list of Events shows an incorrect capacity.

System/Custom Modules: Internal Error When All Columns Are Deleted

  1. Go to any module.
  2. Open the Settings and navigate to the Tables section.
  3. Delete all columns (Screenshot for reference: Link).
  4. Go to Module Items.

Expected Result: The module items should be displayed without errors.

Actual Result: An internal error is displayed (Screenshot for reference: Link).

"Events: Add Pagination to Follow-Up Tab

  1. Go to the Events module settings.
  2. Navigate to the Follow-Up tab (Screenshot for reference: Link).

Expected Result: Pagination should be added to the Follow-Up tab for better navigation and user experience.

Actual Result: Currently, there is no pagination on this page, which can make it difficult to navigate through a large number of follow-ups.

Comments: Inconsistent Capitalization in 'Comment Sending Policy' Dropdown

  1. Go to the Comments section.
  2. Navigate to Comments Settings.
  3. Click on the "Comment sending policy" dropdown (Screenshot for reference: Link).

Expected Result: The dropdown values should be consistently spelled with proper capitalization.

Actual Result: The two values are spelled differently, with one using capital letters and the other not (Screenshot for reference: Link).

Comments: Inconsistent Capitalization in 'Comment Sending Policy' Dropdown

  1. Go to the Comments section.
  2. Navigate to Comments Settings.
  3. Click on the "Comment Sending Policy" dropdown (Screenshot for reference: Link).

Expected Result: The dropdown values should be consistently capitalized.

Actual Result: The two values are spelled differently, with one using capital letters and the other not (Screenshot for reference: Link).

Custom Report: Inconsistent Capitalization in 'Fields' Tab

  1. Create a CRM group and apply it to every select (Screenshot for reference: Link).
  2. Go to any custom report.
  3. Navigate to the "Fields" tab.
  4. Observe the names of each block. The word "Fields" is written with a capital letter, while the CRM groups use a lowercase letter (Screenshot for reference: Link).

Expected Result: The capitalization should be consistent, with either both words capitalized or both in lowercase.

Actual Result: The word "Fields" is written with a capital letter, while the CRM groups use a lowercase letter.

Events: Missing Validation for Follow-Up Emails with Same Name

  1. Go to the Events module settings.
  2. Navigate to the Follow-Up tab (Screenshot for reference: Link).
  3. Create a new follow-up email (Screenshot for reference: Link).
  4. Create a second follow-up email with the same name.

Expected Result: An error or validation message should be displayed, preventing the creation of two follow-up emails with the same name.

Actual Result: Two follow-up emails with the same name were created without validation (Screenshot for reference: Link).

All Templates: Add Error Message on Thank You Page

Add validation to display an error message on the thank you page for all templates. This ensures that if a user submits a form and an error occurs, or if a user reloads the thank you page, an appropriate error message is shown.

Steps to Implement:

  1. Go to the system pages settings, specifically the Thank You page (Link).
  2. Add the following code snippet to the Thank You page template to handle error display:
{% if formSubmissionData == "" or formSubmissionData.error >= 1 %}
<div class="grid-container">
    <h1>Error</h1>
    <p>{{formSubmissionData.errormessages | default : "The form wasn't submitted"}}</p>
    ...

Expected Result:

  • When a form is submitted and an error occurs, the thank you page displays an error message.
  • When the thank you page is reloaded, an error message is displayed if the form data is invalid or contains errors.

This ensures users are informed about submission errors and prevents confusion when reloading the thank you page.

Backup: Restoring Issues

Issue: Backups are not being restored correctly. After initiating a backup restore, no files or data appear in the File Manager or other parts of the site. Additionally, backups are not deleted properly.

Steps to Reproduce:

  1. Go to the backup site: Backup Site.
  2. Test on the stage site with ID 32648.
  3. Observe that there are backups with storage sizes ranging from 300-900MB.
  4. Attempt to restore a backup (Screenshot for reference: Link).

Expected Result:

  • Files and data should appear in the File Manager and other parts of the site after restoring the backup.
  • Backups should be deleted properly when requested.

Actual Result:

  • After restoring a backup, no files or data appear in the File Manager or other parts of the site (Screenshot for reference: Link).
  • Backups are not being deleted properly (Screenshot for reference: Link).

Additional Information: Please investigate the issue to ensure backups are restored and deleted correctly.

System Pages: SEO URL Mappings Display Double Slashes

  1. Go to any system page.
  2. Navigate to the SEO settings (Example link).
  3. Open the request SEO settings.

Expected Result:

  • The UrlMappings should display a single /.

Actual Result:

  • The UrlMappings display double slashes // (Screenshot for reference: Link).

Action Required:

  • Investigate and correct the URL mapping to ensure it displays only a single /.

System Pages: CodeView/WYSIWYG Switching Issue

Issue: On system pages, switching between CodeView and WYSIWYG sends the correct values (true/false) in the request. However, after reloading the page, it always opens in WYSIWYG mode.

Steps to Reproduce:

  1. Go to any system page.
  2. Switch between CodeView and WYSIWYG.
  • The correct values (true/false) are sent in the request (Screenshots for reference: Link 1,Link 2).
  1. Reload the page.

Expected Result:

  • The editor should remember the last selected mode (CodeView or WYSIWYG) and open in that mode after reloading the page.

Actual Result:

  • After reloading the page, it always opens in WYSIWYG mode, regardless of the last selected mode.

Action Required:

  • Investigate and fix the issue to ensure the editor remembers and opens in the last selected mode after reloading the page.

Orders: Internal Error When Quickly Disabling Gift Certificate and Discount Code

  1. Create a new order.
  2. Add any product to the order.
  3. Add a discount code and a gift voucher to the order.
  4. Quickly disable the gift certificate and discount code without waiting for a response from the server.

Expected Result:

  • The system should handle the quick disable actions gracefully without causing any errors.

Actual Result:

  • An internal error is shown (Screenshot for reference: Link).

Additional Information:

Action Required:

  • Investigate and fix the issue to ensure that the system can handle rapid disable actions without causing an internal error.

Forms: Inconsistent Naming for reCaptcha Fields

  1. Go to Forms.
  2. Create a new form.
  3. Add reCaptcha v2 and reCaptcha v3 fields to the form.

Expected Result:

  • The reCaptcha fields should have consistent naming conventions.

Actual Result:

  • The reCaptcha fields have different names (Screenshot for reference: Link).

Action Required:

  • Ensure that both reCaptcha v2 and reCaptcha v3 fields have consistent and clear naming conventions.
{% endraw %}
v 6.9.1 Release date: 21 Jun, 2023
Google Analytics GA4 integration
{% endraw %}