v 4.14 Release date: 29 Jan, 2020
New Feature

eCommerce beta

Ecommerce release schedule
  • Products
  • Catalogs
  • Discounts
  • Taxes
  • Shipping
  • Gift vouchers
  • Related products
  • Shopping cart and checkout process

  • Ecommerce
v 4.12 Release date: 25 Dec, 2019
Improvement

Treepl Portal: Monthly Billing

Ability to bill by the month
  • Treepl Portal
v 4.11 Release date: 27 Nov, 2019

Full Release Notes

Backlog

Secure Zone Subscription:
Settings for recurring subscription

Enable Paid Access control:

  • fields for paid Membership subscription:
    • Membership Fees Amount (Price)
    • Membership Renewal Rate (Recurring period)
      • Monthly
      • Yearly
  • If Paid Access is selected, hide expiration date settings and show fields for Membership subscription and vice versa
  • on saving settings with changed recurring period - validate that there is no secure zone subscriptions in the system that used different, previous subscription period. If found - show error message.

Setting page (http://prntscr.com/q77nx4)

Backlog

Secure Zone Subscription:
CRM Contact update

Subscription page (http://prntscr.com/q77mxb)

  • Add Cancel subscription button near secure zones that have one. Once clicked - trigger Cancel Membership subscription flow
  • On successful canceling - remove all canceling links related to this subscription

Backlog

Secure Zone Subscription:
Recurring Payment flow on form with secure zone submit

Once form is submitted

  • Check if form has event subscriptions
    • if yes continue GENERAL Event payment FLOW
    • if no Check if form has attached secure zones
      • if yes
        • take formData.amount and assert it with SUM(sz.membershipPrice) for each secureZone => sz
        • if equals - proceed subscription
        • if no - show validation error message
      • if no - continue GENERAL FLOW

Backlog

Secure Zone Subscription:
Cancel Membership subscription flow

Once Cancel Membership subscription flow triggered:

  • check if subscription contains several secure zones
    • if found several - show attention popup and ability to continue or cancel
    • if not found - show Are you sure default popup, similar to the one that’s shown on delete flow.
  • if user chooses to proceed further - cancel subscription in stripe and remove cancel subscription link.
  • Show successful canceling message

Backlog

Secure Zone Subscription:
Form saving changes to assigned secure zones

On saving Form settings with changed secure zones list - validate that all secure zones have the same recurring period or have no recurring at all. If found different recurring period - show error message

Backlog

Secure Zone Subscription:
Sell membership form selector in toolbox

Add new toolbox item (http://prntscr.com/pu6m4d)

  • Secure Zone
    • Sell Membership Form

Shows list of forms that have assigned secure zones WITH sell membership option enabled.

On selecting a Form, show form tag with price attribute that corresponds to the SUM of all secure zones prices

Example:

{% component type: "form", alias: "membership_form", price: "25.25" %}

Backlog

Secure Zone Subscription:
Already subscribed membership price change

Behavior for saving secure zone membership settings if there are already existing subscriptions in the system.

1) On disable membership or setting membership price lower than before - show popup:
“You can't set price for membership lower than before since you have active subscriptions”
[Cancel all memberships and save changes] [Cancel]

2) On setting membership price higher than before - show popup:

“You have active subscriptions for this membership in the system.
Should it be canceled?”
[Leave all memberships and save changes] [Cancel all memberships and save changes] [Cancel]

http://prntscr.com/q77owl

Bug

Page URL link broken in Pages Module

Page URL display link in admin not linking correctly.

https://forum.treepl.co/t/bug-page-url-link-broken-in-pages-module/805

Bug

Admin console breadcrumbs with incorrect links

Admin console breadcrumbs for module items incorrectly linking back to parent items.

https://forum.treepl.co/t/bug-admin-console-breadcrumbs-url-incorrect/795

Bug

Rebuild index Fix

After being renamed, Custom Module items would disappear from the list view on the front end. Only after re-indexing the site it displays again.

Bug

Secure Zone - delete contact with secure zone

Attempting to delete a contact assigned to a secure zone results in error “Internal Error”

Bug

Forloop.index is missing in nested loops bug

When using nested for loops then forloop.index and other properties of forloop was working in the deepest loop only. Expected to get it working in each level of nested for loops.
Example: http://prntscr.com/q781gb
Was: http://prntscr.com/q781m4
Now: http://prntscr.com/q781ph

Show more less
New Feature

Sell Secure Zone Memberships

Functionality to sell membership to a secure zone e.g.: on annual, monthly, weekly, daily basis.
Payment gateway: Stripe.
  • Ecommerce
  • Secure Zones
v 4.10 Release date: 15 Nov, 2019

Full Release Notes

Template

“Travel”

https://treepl.co/cms-template/travel

Misc

Performance Optimization

Performed several core improvements that increase

  • module item list and tree view load speed in admin
  • pages load speed

Misc

"module_category_list" component improvements

Modifications:

  • Modify component type:"module_category_list" to set twice URL encoded category fullName to URL
  • this will allow to find categories that contain special characters (comma) in their names
  • On filtering or searching - apply twice URL decode functionality to category fullName in order to correctly split them by comma and not break categories that contain commas in their names.
  • Modify component type:"categories" to set to option values URL encoded category fullNames
  • Add two fields to Single category item context if Advanced multi-level categories flag is enabled:
    • Id
    • FullName

Beta

Advanced multi-level categories update

Force enable flag “Advanced multi-level categories”

NOTE: This feature flag activation may need a manual site index rebuild from the admin. If any module item lists on frontend used filtering by category – they may show nothing until index is rebuilt.

Bug

Advanced URL manager fixes

Core bugs that previously broke saving and duplication of module items when Advanced URL Manager was enabled has been fixed.

Bug

Corrupted images in file manager

When replacing image in file manager, image becomes corrupted

https://www.loom.com/share/7bd0760eaf5e4b07973556abeccc2a6a

Bug

Verified domains in Firefox

Verified email domains could not be added via Firefox

https://forum.treepl.co/t/verified-domains-and-workflows-notification-emails/776

Bug

Email tags for Case and Contact admin links

Case and Contact admin links generated via Liquid tag render old admin links and needed updating

https://forum.treepl.co/t/bug-case-and-contact-admin-links-need-updating/763

v 4.10.1 Patch

Bug

Email domain verification autoresponders

Verifying a domain using the new email domain verification method, autoresponders are not coming through

Bug

Advanced URL Manager

Testing multi slug: Custom Module ‘Items’ fail (404) (https://forum.treepl.co/t/treehouse-meeting-10/767/22)

Bug

Filter by tag

Filter by tag doesn't work - in collection (patch will force rebuild index process)

Bug

Site Search

Site search shows "Liquid Error: Object reference not set to an instance of an object"

Show more less
v 4.9 Release date: 23 Oct, 2019

Full Release Notes

Beta

Advanced URL Manager Part 1

Beta Feature needs turning on to use.

Advanced URL Manager

Allows setting multiple parent items to a single item in order to get several URLs leading to the item's detail page

Beta

Advanced URL Manager Part 1: URL manager reconstruction

Create custom URL manager that will improve Module and Module Items URL management.

  • Allows:
    • To set URL prefix to module that contains several slugs (http://prntscr.com/ov1ezq). Right now only one slug for the module URL is allowed (http://prntscr.com/ov1esj).
      Example:
      /eng/my-custom-module
    • To make module url to NOT HOLD that url to any module item. Right now module url occupies the url that is set on the settings page and no module item allowed to be created under the same url.
      Example:
      Module with url "/my-custom-module" should not occupy "/my-custom-module" URL.
      So user can create module item using slug "my-custom-module".
    • user to choose empty (root) url for module so it's items will have urls that starts from domain without prefix slug (http://prntscr.com/ov1gjq)
    • to set to any custom module a URL that is already used by any other module. But validate module items url to be UNIQUE between ALL global set of URL's of all module items.
  • Item Full URL structure description due to points above:
    • /module/url-part/parent-item-url-slug/sub-parent-item-url-slug/item-url-slug
    • Where:
      Black part is module URL.
      Description:
      Can contain several url slugs.
      Should not actually reserve URL. That's why:
      • Can be the same as in any other module
      • Can be the same as already used full URL of any item
      • Can be empty
    • Blue part is list of parent items slugs. Can contain several slugs. Slugs represent nested parent-child module item structure.

    • Red part is module item slug

Beta

Advanced URL Manager Part 1: Ability to assign multiple URLs for a single content item

Allow to assign multiple parent module items to the single module item in order to get multiple URLs for an item.

Module Settings


Add new module setting

  • Advanced Settings -> Allow multiple parent items

If option of the child module is enabled - display Tab with the value of "name" setting of Parent (for child module item view) or Child (for parent module item view) module.

Example:

  • Module ’Catalogs’ is parent to ’Products’
  • If ’Products’ module has ”Allow multiple parent items” = true than ’product item’ page will contain ’Catalogs’ tab
    And ’catalog item’ page will contain ’Products’ tab

The tab content is multiple item selector

https://prnt.sc/pn2ysg

Selecting multiple parents should save list of the parent module items.

List of parent module items determines the list of urls each of will lead to the detail page of the item.

Beta

Email domains verification: Email Domains Page

Beta Feature turned on by default.

Ability to verify domain with Amazon SES to use in "From" field in your email notifications.

This avoids emails being rejected or delivered as spam.

Add tabs to ‘Settings’ > ‘Domains’

  • “Site Domains” tab
    As per current “Domains” page content.
  • “Email Domains” tab
    New page provide ability to:
    • view list of site domains with states:
      • verified
      • not verified
      • verification failed
    • add new domain verification process
    • apply verification
    • delete domain

Beta

Email domains verification: Email validation on FROM fields

  • For all ’From’ field provide an indicator of the email verification (if using verified domain or not).
    • On changing email - run verification checking (js).
    • Places where From field occurs:
      • Each workflow email (Email notification -> Workflow Emails)
      • Each system email (Email notification -> System Emails)
      • Each module settings -> Autoresponder settings (Any module -> Settings -> Auto-response open-close)
      • Each form autoresponder (Any form-> Settings -> Auto-response)
      • Mailing List
      • Email Campaign
      • Create Email Toolbox
  • When clicking on email verification indicator (unverified state) - show description of unverified domain and link to allowed verified domains
    • Clicking on the link will show all verified domains in toolbox panel.

Beta

Email domains verification: Email sender applying flow

Setup new email sending flow (via amazon account).

On each email sending - check From email

  • If email has verified domain - send via new email sender (amazon account)
  • Otherwise - send via old email sender

Backlog

SSO integration: Authorization Token Renew

Adding background token renew flow to avoid unnecessary re-authentication.

https://forum.treepl.co/t/admin-logged-out-warning-or-keep-alive/717/5

Backlog

WYSIWYG Editor

Remove the default width from the images when placed using the WYSIWYG editor:

https://forum.treepl.co/t/resizing-image-with-editor/738/3

Backlog

Forms list view

‘Workflow’ name column added to Forms list:

https://forum.treepl.co/t/one-more-column-in-forms/731/2

Backlog

Improve custom table columns

Include ‘Meta Description’ in custom table columns:

https://forum.treepl.co/t/request-meta-description-included-in-custom-table-columns/713

Backlog

Liquid filter inconsistency (replace_first, remove_first)

Original filter ‘replacefirst’, now added ‘replace_first’
Original filter ‘removefirst’, now added ‘remove_first’
to match Shopify documented syntax.
Note: Original filters continue to work.

https://forum.treepl.co/t/liquid-filter-inconsistency-replace-first-remove-first/718/2

Show more less
New Feature

Advanced URL Management Part 1

UPDATE TO EXISTING MULTIPLE URL MANAGER
- Ability to assign multiple URL's for a single content item (by attaching mulitple parents items)
- Ability to assign multi-slug for Custom Modules (for example: eng/my-module)
- Ability to assign already taken slug for Custom Module (for example: /inventory - is a page or page folder. Custom Module inventory can also take /inventory...
  • General
  • Pages and Templates
New Feature

Email Domain Verification

Ability to verify domain with Amazon SES to use in "From" field in your email notifications.
This allows avoiding emails to be rejected or delivered as spam.
  • Emails
  • Workflow
Improvement

Authorization Token Renew

Adding background token renew flow to avoid unnecessary re-authentication.
  • Admin Panel
v 4.8.0-2 Release date: 03 Oct, 2019

Full Release Notes

Portal

Primary domain change/secondary domain deletion

Ability to mark a secondary domain as a primary one http://prntscr.com/pb2z50 and delete a secondary domain http://prntscr.com/pb2zf1

Portal

Live/trial sites search option

Ability to search sites by site name and url http://prntscr.com/panppi

Portal

Live/trial sites columns sorting

Ability to sort domains by site name, url, status, expiration date and plan http://prntscr.com/papd0j

Portal

Site activation improvements

1) Ability to activate a domain without www: http://prntscr.com/pans0e

2) "Site type" step removed

3) Automatic nameservers check and ability to skip "checking NS" step and move to the final "Add A record"

Portal

My invoices section

Ability to view invoices for the sites http://prntscr.com/paov9o with an option to send an invoice to your email address http://prntscr.com/paovsf and download it http://prntscr.com/paow9v http://prntscr.com/pasvyo

Portal

Password recovery

Ability to recover your password using recover link here: http://prntscr.com/pde73q

Backlog

Single Sign-On integration with admin:

Login flow

Change the login to Treepl admin flow to use Single Sign-On identity provider:

When a user goes to /admin - check his logged in state on identity provider

  • Check the logged in state on identity provider
  • If logged in, redirect to the dashboard
  • Otherwise, redirect to partner’s branded identity login page. If the login is successful, redirect to the site’s dashboard.

Backlog

Single Sign-On integration with admin:

Reset password flow

Add Restore Password link to the login form http://prntscr.com/pcyqxh

Add Reset Password Page similar to login page (branded page). Fields:

  • Email

Add Restore Password Confirm Page similar to login page (branded page). Fields:

  • Password
  • Confirm Password

On successful restore password confirmation, redirect to the login page.

Backlog

Single Sign-On integration with admin:

Invite user flow (invite/register)

Redesign Add/edit admin user views:

  • remove add/edit user and set password pages
  • Add new user button will call a popup
  • name field
  • email field
  • choose role field
  • role field
  • Edit users also calls a popup:
  • Name and email - displayed as a text.
  • choose role field
  • reset password button
  • For all existing admin users – show re-invite button that needs to be clicked by a partner in order to trigger invite admin flow with password reset email sent to the admin user in order to allow them to set a password.
    All the admin users that have not passed this flow will not be able to login to the cms admin.

Backlog

Single Sign-On integration with admin:

Invite Admin User system email

Create new System email

  • Name
  • Invite Admin User
  • Content
  • See Acceptance Criteria below
  • Email liquid:
  • {{this.siteURL}} should return Primary live domain or Default domain if site is trial
  • {{this.invitePasswordSetUrl}} should be replaced with the invitation link
  • {{this.isNewUser}} - Boolean. True is if an admin user has been created and false if just invited an existing one.

Design - http://prntscr.com/pcyrv1

Backlog

Single Sign-On integration with admin:

Restore Admin User Password system email

Create new System email

  • Name
  • Restore Admin User Password
  • Content
  • See Acceptance Criteria below
  • Email liquid:
  • {{this.restorePasswordUrl}} should be replaced with the link to set password page.

Design - http://prntscr.com/pcysal

Backlog

Single Sign-On integration with admin:

D
elete admin user

Clicking on delete admin user should launch un-invite flow on identity server.

Backlog

Ecommerce New Plan

Plans restrictions changes

Rename Pro+ plan to eCommerce

Restrict for all plans lower than eCommerce and allow on eCommerce CRUD and list operations

  • eCommerce Settings
  • Tax
  • Discount codes
  • Gift vouchers
  • Shipping options

  • Customizable columns are available starting Business plan (Update existing restrictions)
  • API integrations are now available starting Business plan (Add this new restriction for future use)
  • Payable events, items, forms are available starting Pro plan (Add this new restriction and use it for)
  • Payment gateways are available starting Pro plan (Add this new restriction and use it for Settings->payment page)

Beta

Payment Settings: Currency and format settings

Beta Feature:

Title:

  • Currency and price format settings

Description:

  • Improves payment flow using defined by the customer price formats and currencies associated with the domain the payment was made from.

Beta

Payment Settings: Currency and format setting:

Modify "payment gateway" setting page to "payment settings" page

  • New Payment Settings Page should contain the tabs as follows:
  • gateway
  • Move old "payment gateway" page content to gateway tab
  • Remove Currency selector from gateway section.
  • currency and format
  • Display list of added Payment Format settings to the system
  • On clicking add button - display a form with the following fields allowing to add new Payment Format settings
  • Name - (string)
  • Culture - (select) list of cultures
  • use list of cultures
  • Currency - (select) Options:
  • use table of currencies already set into the system in order to show currencies
  • Number of digits after coma - (select) options:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Edit button should display the same form with preselected fields
  • On clicking delete, display standard confirmation dialog box

Beta

Payment Settings: Currency and format setting:

Default format setting

  • Pre-create one format setting - Default.
  • Make it undeletable and not editable "default" format (no edit or delete buttons and no possibility to delete it via API).
  • This format setting will be used as default format setting if no format setting specified for the domain.
  • Use
  • Name
  • English (United States)
  • Culture - (select) list of cultures
  • English (United States)
  • Currency
  • USD
  • Number of digits after coma
  • 2

Beta

Payment Settings: Currency and format setting:

Extend Domains settings by "Currency and Price format" and "Country"

  • Show list of created "Currency and Price format" settings
  • Use Default by default
  • Setting "Country"
  • Show list of countries (use list of countries that is used in the forms)
  • Use United States by default

Beta

Payment Settings: Currency and format setting:

Format rules for Format setting

Display dates in the admin using default domain Format setting

Beta

Payment Settings: Currency and format setting:

Save domain currency and number format settings to the order

When creating an order - save currency and price format settings chosen for the domain purchase made from the order at the moment of purchase.

So that if an admin changes the currency and price format settings for the domain, the order will still keep those settings that were at the moment of purchase

Beta

Payment Settings: Currency and format setting:

Orders in admin list and detail view modification

Use saved currency and format settings in orders in order to display prices in order list and detail view:

Beta

Payment Settings: Currency and format setting:

Invoice System Email modification

Use saved currency and format settings in orders in order to display prices in invoice email.

Liquid changes:

  • {{this.order.items}}
  • {{item.price}} - no changes
  • {{item.TotalCost}} - no changes
  • {{item.formattedPrice}} - ADD new property. Apply price format and currency position settings saved in the order in order to retrieve formatted price string
  • {{item.formattedTotalCost}} - ADD new property. Apply price format and currency position settings saved in the order in order to retrieve formatted price string

  • use currency that is saved in the order for the following properties:
  • {{item.currency.code}} - use currency that is saved in the order
  • {{item.currency.symbol}} - use currency that is saved in the order
  • {{item.currency.digitalCode}} - use currency that is saved in the order
  • {{item.currency.name}} - use currency that is saved in the order

  • {{this.order.totalCost}} - no changes
  • {{this.order.formattedTotalCost}} - ADD new property. Apply price format and currency position settings saved in the order in order to retrieve formatted price string
  • use currency that is saved in the order for the following properties:
  • {{this.order.currency.code}}
  • {{this.order.currency.symbol}}
  • {{this.order.currency.digitalCode}}
  • {{this.order.currency.name}}

Beta

Payment Settings: Currency and format setting:

Add liquid filter | domain_number_format

Add new liquid filter:

  • Pattern:
  • {{ numberVar | domain_number_format }}
  • When applied -
  • If variable is a number - should convert number to formatted string based on current domain Currency and format setting without currency related settings
    if liquid parsing works outside of domain scope, use default domain and its settings.
  • otherwise - do not change the variable

Beta

Payment Settings: Currency and format setting:

Add liquid filter | domain_money_format

Add new liquid filter:

  • Pattern:
  • {{ numberVar | domain_money_format }}
  • When applied -
  • If variable is a number - should convert number to formatted string based on current domain Currency and format setting including all currency related settings
    if liquid parsing works outside of domain scope - use default domain and its settings.
  • otherwise- do not change the variable

Beta

Ecommerce Settings: Tax

Ecommerce -> Taxes Page

Ability to view list of taxes and perform create/edit and delete tax operations.


Columns of the list view:

  • Name
  • Tax Percentage Amount
  • Country
  • Actions

Provide ability to pre-create taxes for countries:

  • USA

http://prntscr.com/ovgi09 - clicking on the button should create set of tax codes for selected country if system has preset of taxes for that country.

Create/edit form:

  • Country (select). Options:
  • use the same list of countries that was used for Domains settings ->"Country"
  • On adding new tax - preselect the country that is attached to the main domain by default
  • Tax Code (string) (required)
  • Tax Rate (number) - (type float) number of percent. Value should be between 0 and 100 including edges.

Beta

Ecommerce Settings: Discount codes

Ecommerce -> Discount codes Page

Ability to view list of discount codes and perform create/edit and delete discount code operations.

Columns of the list view:

  • Code
  • Type
  • Amount
  • Release Date
  • Expiry Date
  • Enabled
  • Actions

Create/edit form:

  • Code (string) (required)
  • Description (string).
  • Type (select). options:
  • Fixed Amount (used by default)
  • Percentage of Order
  • Free Shipping
  • Amount (number) - (type float) discount amount. Value may represent an actual amount or percentage of the order.
  • Currency (select). options
  • use list of currencies applied to all domains of the site
  • Min Order Cost Limitation (number) - (type float).
  • Expire after x redemptions (number) - (type int). Validate values to be int and greater or equal to 0.
  • Catalogs (multi-select). Options:
  • list of ecommerce catalogs module items.
  • Release Date (datetime)
  • Expiry Date (datetime)
  • Enabled (bool) - checked by default

Beta

Ecommerce Settings: Gift vouchers

Ecommerce -> Gift Vouchers Page

Ability to view list of Gift Vouchers and perform create/edit and delete Gift Voucher operations.

Columns of the list view:

  • Name
  • Amount (show values with 3 letter currency code)
  • Balance (show values with 3 letter currency code)
  • Recipient
  • Enabled
  • Actions

Create/edit form:

Details tab:

  • Currency (select) - options:
  • use the same list of countries that were used for Domains settings -> Country
  • Name (string) (required) - unique value
  • Amount (number) - (type float). (required)
  • Balance (number) - (type float).
  • Type (select). Not selectable. Preselect value by default or based on initial value. Options:
  • Manual (default)
  • Via Shop
  • Enabled (bool) - checked by default

Recipient tab:

  • Name (string) (required)
  • Email (string) (required)
  • Message (string) (required)

Buttons:

  • Email me - sends gift voucher system email to the current logged in admin user.
  • Email Recipient - sends gift voucher system email to the recipient in the form above.

Beta

Ecommerce Settings: Gift vouchers

Ecommerce -> Gift Vouchers System Email

Add new system email

  • Name
  • Gift Voucher
  • Content
  • see acceptance criteria

Liquid scope (this):

  • RecipientName - use the data from gift voucher -> recipient record
  • RecipientAddress - use the data from gift voucher -> recipient record (Email)
  • PurchaserName - this will be the full name from the CRM record that is assigned to the order that contains gift voucher product that creates this gift voucher and triggers the system email. Leave empty if gift voucher was created manually.
  • GiftVoucherCode - use the data from gift voucher -> Details record
  • GiftVoucherAmount - use the data from gift voucher -> Details record
  • GiftVoucherCurrency - object - use currency that is related with the gift voucher country
  • code
  • symbol
  • digitalCode
  • name
  • Message - use the data from gift voucher -> recipient record
  • SiteUrl - protocol and site domain. Use the same logic as in "Secure Zone Login Details"

Beta

Ecommerce Settings: Shipping options

Ecommerce -> Shipping options Page

Ability to view list of Shipping options and perform create/edit and delete Shipping options operations.

Columns of the list view:

  • Name
  • Price (show values with 3 letter currency code)
  • Currency/Country
  • Actions

Create/edit form:

Details tab:

  • Name (string) (required)
  • Price (number) - (type float). (required)
  • Currency/Country (select) - options:
  • use pairs of country and currency that are retrieved from
  • list of currencies applied to all domains of the site
  • list of countries applied to all domains of the site
  • Type (select). Options: (required)
  • User Defined (default)
  • Tax Code (select). Options:
  • None (default)
  • list of discount codes for the selected country

Settings tab:

  • Handling Charge (number) - (type float).
  • Additional Per Item Handling Charge (number) - (type float).
  • Weight Limitations
  • Min (number) - (type float).
  • Max (number) - (type float).
  • Width Limitations
  • Min (number) - (type float).
  • Max (number) - (type float).
  • Height Limitations
  • Min (number) - (type float).
  • Max (number) - (type float).
  • Depth Limitations
  • Min (number) - (type float).
  • Max (number) - (type float).
  • Order Price Limitations
  • Min (number) - (type float).
  • Max (number) - (type float).
  • Show Shipping option to (select) - options:
  • All (default)
  • Consumer
  • Wholesaler
  • Limit Delivery to Following Countries (multi-select)
  • use the same list of all countries
  • Exclude Shipping if Purchasing from these Catalogs (multi-select)
  • future list of catalogs. Leave empty for now.

Misc

Image processor Fix

Fix imageprocessor

When:

  • upload image under the same name as one of the images in the folder via FTP or File Manager
  • DO: remove all cached versions of the image.
  • delete image from the folder via FTP or File Manager
  • DO: remove all cached versions of the image.
  • Load File Manager tab
  • DO: load cached images instead of forced image resizing via URL random param (task for JS)

Misc

Export functionality redo

Modify export flow not to open in a new tab

Bug

Bug in file manager

Bug in the new file manager when opening longer code by the tree-view in a bigger browser window.

Bug

Workflow doesn't work on Business Plan

  1. Go to client site, e.g. CLIENTSITE.com/admin/custom-workflow
  2. Workflow doesn't work

Bug

BUG: Liquid ‘capitalize’ filter

Treepl’s implementation of the Liquid capitalize filter actually does Title Case instead of the documented Capitalize function:

https://shopify.github.io/liquid/filters/capitalize/ 1

Both case changes are handy though, so since Title Case is obviously possible I’d ask that a new custom Liquid filter be created called “titlecase” which does what the currently implemented capitalize filter does, then fix the current capitalize filter to work as per the Liquid docs.

Show more less
New Feature

Advanced URL Management Part 2

- "/url/path/index.html" page to be always resolved under "/url/path/" URL.
  • General
  • Pages and Templates
New Feature

eCommerce part 1

Payment Settings: Currency and format settings
Taxes
Discount codes
Gift vouchers
Shipping options
  • Ecommerce
New Feature

Single Account Identity Provider (SSO)

Single Account Identity Provider (SSO) via systemaccess.co for:
- FTP + Treepl admin + Treepl portal
- FTP + General Admin user
- Ability to send an invite to an already created admin user
- Ability for an admin user to have access to multiple treepl sites (on multiple DC's) with single credentials
  • General
  • Infrastructure
  • Treepl Portal
Improvement

Changes in Treepl's pricing plans/restrictions

Integration of changes in our pricing plans that were announced several weeks ago
Changes will be applied to all existing and new sites.
Pro+ plan renamed to eCommerce
eCommerce features available in eCommerce plan only
Advanced module settings for system modules available in eCommerce plan only
Payable events, items, forms available starting Pro plan (used to be an extension), together...
  • General
Improvement

Invoices for paid sites

Ability to download a properly formatted invoice receipt
  • Treepl Portal
Improvement

Remove "Title" From Blank Site Content Template

When starting from a Blank site, the default code inserted for the Content Template includes a restrictive <title> element: <!DOCTYPE html> <html> <head> <title>Treepl CMS Features for Treepl Partners & CMS Resellers</title> <title>{ this['name'] }</title> </head> <body> { pageContent } </body> </html> I'd suggest removing the <title> element altogether since the system now handles document titles automatically and in accordance with the Name or Meta Title value.
  • General
  • Pages and Templates
v 4.7 Release date: 21 Aug, 2019

Full Release Notes

Bug

Site Information incorrect “Value” column

The Value column in the Site Information Module, shows the Field Type, instead of the Field Value.

Bug

Boolean value is ON instead of TRUE

A boolean form field now returns string “true” or “false” instead of “on” (changes made in liquid formSubmissionData object and on CRM -> form submission -> submission detail page). http://prntscr.com/ovp5e4 

Bug

{{counter}} tag issue with  ‘New Liquid Engine’

Counter tag in list layouts when ‘New Liquid Engine’ beta feature is enabled now renders as intended.

Beta

Custom Columns In List View

Customizable columns for module items view.

Allows customized columns on custom and system modules list and tree views.

Create new module settings page for editing columns settings. Showing preview of columns and ability to change their order position via drag and drop.

If there are too many columns on the view - show horizontal scroll. When drag column to the right or left edge of the view - trigger auto scroll functionality in order to provide the ability to move that column out of visible columns area.

Ability to go to add, edit and delete columns. Add/Edit view consists of the following settings:

  • Title - input field - name that will be viewed as column title.
  • Property - selector of system and custom properties of the module.
  • Column Width -  input field - number of pixels that determines the column width.
  • Mobile Column Width -  input field - number of pixels the determines the column width in mobile view.
  • Hide on mobile - checkbox 

The ‘Actions’ column will always be present and will be the last column in the view.


Design:

http://prntscr.com/ovpcpq 

New List/Tree view layout for custom columns:

  • All custom columns that reflects module properties should support sorting (ASC, DESC) by clicking column header.
  • When layout contains more columns than allowed by screen width - add horizontal scroll.
  • Move preview link and action icons (duplicate, edit, delete...) to one separate ‘Actions’ column fixed to the right of the table. 
  • Allow columns resizing via dragging the edges of the column title.

Design:

http://prntscr.com/ovpd5m 

Tree View Layout:

Merge columns of two modules by their names. Merging should take equal named columns and all unique child module columns (basically columns of tree view are ALWAYS child module table columns). 
Unique Parent module columns should be skipped. 
For each parent module item on tree view show empty cell is column attached to child module only.

Example:
Module 1 has Property 1Property 2 and Name
Module 2 has Property 1Property 3 and Name

Module 1 is parent module to Module 2

Columns selected for 
Module 1 is Property 1Property 2 and Name
Columns selected for 
Module 2 is Property 1Property 3 and Name

Result view on tree view of both modules: 
Module 1 or Module 2

| Name                 | Property 1      | Property 3    |
|----------------------|-------------------|------------------|
| Module 1 item  | some value 1 |                         |
| Module 2 item  | some value 2 | some value 3 |

Pagination Changes:

1) Display current page number as input with number value between prev and next buttons http://prntscr.com/o70umf.

On change - show page that is entered in the input.

2) Duplicate pagination to the top of the table.

Lowest plan allowed is ”Pro+”

Add feature to the Admin User Roles: “Can Edit Module Items Columns Settings”

Backlog

Module settings UI change

Redesign ‘steps’ into ‘tabs’ on module settings sections.
From this:
http://prntscr.com/osng3p

To this: http://prntscr.com/ovpetu 

Backlog

File System' API Endpoint (Component Tag)

Add new component tag of type:"api", source:"File System"

Pattern:

{% component type:"api", resource:"File System", folder:"[[folderUrl]]", collectionVariable:"[[variableName]]" %}

  • type:"api" system param
  • resource: ”File System”
  • collectionVariable: name of Liquid variable for object data.
  • folder (not required param): folder URL to retrieve files from (default value is "/" for root directory). 

Examples

{% component type:"api", resource:"File System", folder:"/images/galleries/gallery 001", collectionVariable:"myVar" %}

item context contains:

  • url (file URL)

This component does not render any layout. If no collectionVariable specified - just skip the component processing.

Added to Component Toolbox:

1) Add new toolbox group:

"Liquid Data"

  • "File System"

provides ability to build component type:"api", resource:"File System" 

2) For folder selection use folder picker:

  • clicking on folder in picker modifies component code
  • clicking on icon next to folder modifies code and copies it to clipboard

Lowest plan allowed is “Pro”

Add feature to the Admin User Roles:

Liquid Data

  • File System

Backlog

Analytics dashboard settings

Remove condition that requires ’TrackingID’ for displaying analytics dashboard page. 

Only ‘ViewId’ is required
(This change allows you to add Google js snippet yourself using desired custom options but still having an ability to see analytics in the dashboard)

Backlog

Component type module_tag_list

Add new component tag of type:"module_tag_list"

Pattern:

{% component type:"module_tag_list", object:"[[object]]", module:"[[moduleIdentifier]]", parentItemId:"[[parentItemId]]", limit:"[[limit]]", collectionVariable:"", layout:"", sortBy:"", sortOrder:"" %}

  • module (required param) - moduleName or moduleId.
  • parentItemId (not required param) - id of the module parent group to retrieve tagged items from
  • object (not required param) - item|collection (default is collection)
  • limit (not required param) - max number of tags to be rendered (default value is ALL)
  • collectionVariable (not required param) - liquid data variable
  • layout (not required param) - path to FTP file that will contain layout content to be parsed. 
    If empty string - does not render anything.
    If not specified at all - render default virtual layout (see below).
  • sortBy (not required param):
    - Name (default)
    - ItemsCount 
  • sortOrder (not required param):
    - ASC (default)
    - DESC

item context contains:

  • Name
  • Url
    Pattern:
    [[parentItemUrl]]?prop_ModuleId=[[moduleId]]&prop_ParentId=[[parentItemId]]&prop_ItemTags=[[tagName (UrlEncoded) ]]

    Example, using the following component tag with ‘parentItemId’:
    {% component type:"module_tag_list", module:"Blog Post", parentItemId:"1234" %}
    Where 1234 - is ID of the Blog "My Blog"
    URL output is:
    /my-blog?prop_ModuleId=1534&prop_ParentId=1234&prop_ItemTags=My%20Tag

    Example, using the following component tag with no ‘parentItemId’:
    {% component type:"module_tag_list", module:"Blog Post" %}
    URL output is:
    ?prop_ModuleId=1534&prop_ItemTags=My%20Tag
  • ItemsCount - number of module items tagged by this tag

Default virtual layout:

<ul>

    {% for item in this.items %}

        <li> 

            <a href="{{item.url}}" title="{{item.name}}">{{item.name}} <span>({{item.itemsCount}})</span></a>

        </li>

    {% endfor %}

</ul>

VIRTUAL LAYOUT RETURNS ITEMS THAT HAVE itemsCount > 0  ONLY

Backlog

Component type module_category_list

Add new component tag component type:"module_category_list"

Pattern:

{% component type:"module_category_list", object:"[[object]]", module:"[[moduleIdentifier]]", parentItemId:"[[parentItemId]]", limit:"[[limit]]", collectionVariable:"", layout:"", sortBy:"", sortOrder:""  %}

  • module (required param) - moduleName or moduleId.
  • parentItemId (not required param) - id of the module parent group to retrieve categorized items from
  • object (not required param) - item|collection (default is collection)
  • limit (not required param) - max number of tags to be rendered (default value is ALL)
  • collectionVariable (not required param) - liquid data variable
  • layout (not required param) - path to FTP file that will contain layout content to be parsed. 
    If empty string - does not render anything.
    If not specified at all - render default virtual layout (see below).
  • sortBy (not required param):
    - Name (default)
    - ItemsCount 
  • sortOrder (not required param):
    - ASC (default)
    - DESC

item context contains:

  • Name
  • Url
    Pattern:
    [[parentItemUrl]]?prop_ModuleId=[[moduleId]]&prop_ParentId=[[parentItemId]]&prop_ItemCategories=[[categoryName (UrlEncoded) ]]

    Example, using the following component tag with ‘parentItemId’:
    {% component type:"module_category_list", module:"Blog Post", parentItemId:"1234" %}
    Where 1234 - is ID of the Blog "My Blog"
    URL output is:
    /my-blog?prop_ModuleId=1534&prop_ParentId=1234&prop_ItemCategories=My%20Tag

    Example, using the following component tag with no ‘parentItemId’:
    {% component type:"module_category_list", module:"Blog Post" %}
    URL output is:
    ?prop_ModuleId=1534&prop_ItemCategories=My%20Tag
  • ItemsCount - number of module items categorized by this category

Default virtual layout:

<ul>

    {% for item in this.items %}

        <li> 

            <a href="{{item.url}}" title="{{item.name}}">{{item.name}} <span>({{item.itemsCount}})</span></a>

        </li>

    {% endfor %}

</ul>

VIRTUAL LAYOUT RETURNS ITEMS THAT HAVE itemsCount > 0  ONLY

Backlog

Component type module_archive

Add new component tag component type:"module_archive"

Pattern:

{% component type:"module_archive", object:"[[object]]", module:"[[moduleIdentifier]]", parentItemId:"[[parentItemId]]", numberOfMonth:"[[numberOfMonth]]", collectionVariable:"", layout:"", sortBy:"", sortOrder:""  %}

  • module (required param) - moduleName or moduleId.
  • parentItemId (not required param) - id of the module parent group to retrieve categorized items from
  • object (not required param) - item|collection (default is collection)
  • numberOfMonth (not required param) - max number of months into the past to be rendered (default value is Eternity)
  • collectionVariable (not required param) - liquid data variable
  • layout (not required param) - path to FTP file that will contain layout content to be parsed. 
    If empty string - does not render anything.
    If not specified at all - render default virtual layout (see below).
  • sortBy (not required param):
    - Date (default)
  • sortOrder (not required param):
    - ASC (default)
    - DESC

Item context contains:

years (array)

  • Name - year (Example: 2018)
  • Url
    Pattern:
    [[parentItemUrl]]?prop_ModuleId=[[moduleId]]&prop_ParentId=[[parentItemId]]&prop_ReleaseDate_Min=[[periodStartDate]]&prop_ReleaseDate_Max=[[periodEndDate]]

    Example, with parentItemID:
    {% component type:"module_archive", module:"Blog Post", parentItemId:"1234" %}
    Where 1234 - is ID of the Blog "My Blog"
    URL (for period of 2018):
    /my-blog?prop_ModuleId=1534&prop_ParentId=1234&prop_ReleaseDate_Min=2018-01-01&prop_ReleaseDate_Max=2018-12-31

    Example, without parentItemID:
    {% component type:"module_archive", module:"Blog Post" %}
    URL (for period of 2018):
    ?prop_ModuleId=1534&prop_ReleaseDate_Min=2018-01-01&prop_ReleaseDate_Max=2018-12-31
  • ItemsCount - number of module items in the year
  • Months (array)
    - Name - month (Example: August)
    - Url
    Pattern:
    [[parentItemUrl]]?prop_ModuleId=[[moduleId]]&prop_ParentId=[[parentItemId]]&prop_ReleaseDate_Min=[[periodStartDate]]&prop_ReleaseDate_Max=[[periodEndDate]]

    Example, with parentItemId:
    {% component type:"module_archive", module:"Blog Post", parentItemId:"1234" %}
    Where 1234 - is ID of the Blog "My Blog"
    URL (for period of August ):
    /my-blog?prop_ModuleId=1534&prop_ParentId=1234&prop_ReleaseDate_Min=2018-08-01&prop_ReleaseDate_Max=2018-08-31

    Example, without parentItemId:
    {% component type:"module_archive", module:"Blog Post" %}
    URL (for period of August ):
    ?prop_ModuleId=1534&prop_ReleaseDate_Min=2018-08-01&prop_ReleaseDate_Max=2018-08-31

    - ItemsCount - number of module items in the month

Default virtual layout:

<ul>
    {% for yearData in this.years %}

            {% for month in yearData.months %}

                <li> 

                    <a href="{{month.url}}" title="{{yearData.name}}-{{month.name}}">{{month.name}} {{yearData.name}} ({{month.itemsCount}})</a>

                </li>

            {% endfor %}

    {% endfor %}

</ul>

MODULE RETURNS ITEMS THAT HAVE itemsCount > 0  ONLY

Backlog

Component type module searchScope extending

Component type module extended by param that allows using FULL search capabilities WITHOUT actual search via GET params (search form). Realization is described below:

1) Extend component type module with new param:

  • searchScope: ""

2) Parse content of search scope as JSON. If any exception occured while parsing - ignore this param.

3) Use retrieved object just like GET parameters from a search.

Priorities when several params and/or search via GET params occured:

filterBy, FilterValue pair < searchScope < GET params if searching THIS module

Example:

Both options described below should show the same result

  • Option 1:
    URL
    /blog_1?prop_ModuleId=1534&prop_ReleaseDate_Min=2018-07-01&prop_ReleaseDate_Max=2018-07-31&prop_ParentId=1842&prop_ItemTags=tag1&prop_ItemTags=tag2&page=2

    Component  on the /blog_1 page
    {% component type:"module", source: "Blog Post", layout:"List", isSearchResult: "true", filterBy:"id", filterValue:"123" %}

  • Option 2
    URL
    /blog_1

    Component on the /blog_1 page
    {% component type:"module", source: "Blog Post", layout:"List", searchScope: '{"prop_ReleaseDate_Min":"2018-07-01","prop_ReleaseDate_Max":"2018-07-31","prop_ParentId":"1842","prop_ItemTags":["tag1","tag2"],"page":"2"}', filterBy:"id", filterValue:"123" %}

    OR

    {% capture searchScopeVar %}{"prop_ReleaseDate_Min":"2018-07-01","prop_ReleaseDate_Max":"2018-07-31","prop_ParentId":"1842","prop_ItemTags":["tag1","tag2"],"page":"2"}{% endcapture %}

    {% component type:"module", source: "Blog Post", layout:"List", searchScope: "{{searchScopeVar}}", filterBy:"id", filterValue:"123" %}
Show more less
Improvement

Custom Columns In List View

Give the user the ability to setup how list view is shown in the different modules/pages etc. to match the need of the user.

See an example in this video

  • General
  • UI/UX
Improvement

File System' API Endpoint (Component Tag) That Can List Files And Folders From The File Manager

This, for example, could allow us to build gallery apps from a directory of images, list downloadable files from organised in directories, and other file system related functions. Similar to BCs File System API here: https://docs.worldsecuresystems.com/reference/rest-apis/file-system/get-folder-content.html

  • API
  • File Manager
v 4.6 Release date: 31 Jul, 2019

Full Release Notes

Backlog

File Manager Improvements

Design - http://prntscr.com/onhp35

Added and improved functionality:

  1. Upgrade to angular 8
  2. Tooltips with full file names in the left list section http://prntscr.com/onhv20
  3. Separate scroll for main and tree-view section http://prntscr.com/onhyz7
  4. Mouse right click for context menu: http://prntscr.com/oe4vex
  5. Improved and reworked tree view http://prntscr.com/onhwwm
  6. Manage files in the tree view http://prntscr.com/onhu7e
  7. Download for files and folders http://prntscr.com/onhw3p
  8. Duplicate for files and folders http://prntscr.com/onhwhm
  9. Renaming for files and folders http://prntscr.com/onhwot
  10. Quick edit from tree view http://prntscr.com/njyf77
  11. New Mobile layout http://prntscr.com/onhy3y

Bug

Random param not working when filtering by tag/category

Random attribute not working for Custom Modules when filtering by tags/categories. eg:

{% component source: "My Module", layout: "List", filterBy: "ItemTags", filterValue: "Header", limit: "1", random: "true", type: "module" %}

Bug

Incorrect params rendering

Under the new Liquid rendering engine (beta feature), was not able to render custom params passed to a Snippet.

The 'this' object only seems to reference the parent page/item and not the Snippet itself.

Example;

{% component type: "snippet", alias: "testsnippet", foo: "bar" %}

Using {{this.Params.foo}} to render the param did not work.

Show more less
Improvement

Multiple Improvements In File Manager

Design: http://prntscr.com/onhp35
Added and improved functionality:
1. Tooltips with full file names in the sidebar: http://prntscr.com/onhv20
2. Separate scroll for main and tree-view section: http://prntscr.com/onhyz7 3. Edit file (edit and quick edit): http://prntscr.com/njyf77
4. Download of files and folders: http://prntscr.com/onhw3p
5. Right click menu: http://prntscr.com/oe4vex
6. Files in tree view and ability to manage them: http://prntscr.com/onhu7e
7....
  • File Manager
Improvement

Treepl Portal: Data Center Assigned To Website

Ability to see Data Center assigned to website
  • Treepl Portal
v 4.5 Release date: 10 Jul, 2019

Full Release Notes

Beta

Features moved out of Beta

These features work consistently now and have been implemented into the CMS:

  • Advanced Search
  • Date Time Management

NOTE: Any feature flag will go through this flow:

  • Round #1 (sprint release) – released in beta features (disabled by default so it won’t crash anything on the live sites.
    Partners are able to see if it operates properly on those sites and report any issues for us to fix.
    Partner is able to turn off the feature himself instantly.
  • Round #2 (1 or 2 sprints after round #1) – feature flag goes to internal section and set to true (checked).
    Partners are not able to uncheck it but can send a support ticket in case of some issues and we will disable it from our end and fix it
  • Round #3 (1 or 2 sprints after round #2) – feature flag will be deleted.
    Old logic will be removed from the code.
    The result is that feature adopts the new behavior on a permanent basis.

Beta

New Liquid engine &nICE v2.0

New Liquid engine & nICE 2.0


+ nICE v2.0:

The ability to use style options like bold, italic, colors, etc in nICE editor interface.

New styles interface is available for all content except for module item properties that don’t have a field type of ‘multiline’ or ‘WYSIWYG’ (ie: date/time fields, single line string fields, etc).

NOTE: This feature requires valid HTML for proper nICE 2.0 operation in edit mode.


+ New Liquid engine:

IMPORTANT: After enabling this feature, please check all site's custom liquid and JS implementations.
In cases where you might output the collection variables as JSON (like ajax search result) the new Liquid engine renders the JSON object with camelCased property names.
Example:

The output will be different for old and new liquid engine:
http://prntscr.com/oh7ytj

Also, if you are using the {{params}} variable make sure you are using it via {{this.params}}. The names of the custom params will also be in camelCase http://prntscr.com/oh82n5

Forum discussion on the topic of params: https://forum.treepl.co/t/new-liquid-engine-changes-to-referencing-parameters-in-custom-layouts/517

This feature flag will be available in beta for 2 sprints and then also will be auto-enabled for all sites.

Beta

Multi-level Categories

Advanced multi-level categories

The feature allows creating multi-level categories.


+ New ‘ItemCategoryIdList’ property added to Liquid scope:

New property stores comma separated list of category IDs (existing category property stores list of category Names)

Existing: {{this['ItemCategories']}}

New: {{this['ItemCategoryIdList']}}


+ Convert Categories to nested categories

On appstart if categories wasn't previously converted, for each category:

  • Get category name
  • Split it by "/"
  • Create new nested categories from split values


+ New interface when creating categories/subcategories

Design - http://prntscr.com/oh6ht2

Categories now sorted in the tree structure.

By this button: http://prntscr.com/nod8lh the user is able to create a new category.

The user is also able to create/remove/rename the category/subcategory clicking on this button: http://prntscr.com/nodeyz .

User is able to change the name of the category/subcategory: http://prntscr.com/noddvd .

If the user created/changed the name of the category/subcategory and clicks anywhere but not on this button: http://prntscr.com/nodg1b changes should not be saved.


+ Ability to create/edit categories using the new interface when within a module item

Design - http://prntscr.com/oh6i7v

If user wants to create/edit category tree by clicking here: http://prntscr.com/npvq9l the flow is the same as on the settings page.

If user wants to assign the category to the module there should be the dropdown: http://prntscr.com/npvqod where the level number will be indicated with (----).


+ Default Parent category setting

For modules where you have access to its properties ("Edit Module">"Item Properties">"Default Properties") There will be the ability to specify the parent category to be used when creating/editing module items.

The default selection is the Root category level (value -1). if set to any category, than only the subcategories of the set category will be available to the module items (in both the Category field and the pop-out side panel as a tree of categories when clicking ‘Add new category button’.


+ Change import/export format for categories.

Old format example:

  • Cat 1,Cat 2,SubCat 1

New format example:

  • /Cat 1;/Cat 2;/Cat 2/SubCat 1;

Change method type from "Get" to "Post"


+ Change logic for category filtration:

  • if filterBy is ‘itemCategories’
  • Read filterValue as fullName
  • find category by fullName
  • find items by ItemCategoryIdList property of the module using retrieved category id.
  • if searching by ItemCategory - apply same logic as for filterBy


+ Addition of new component tag of type "categories"

Component pattern:

{% component type:"categories", parentCategory:"[[parentCategoryId]]", levelsDeep:"[[numberOfLevelsToRender]]", collectionVariable:"[[variableName]]" %}

  • parentCategory (not required param) - id of the category to start selecting subcategories from.
  • Default value for parentCategory = -1. Means start selecting categories from root.
  • levelsDeep (not required param) - number of levels in-depth starting from parentCategory that need to be retrieved.
  • Default value for levelsDeep = -1. Means render all levels in-depth.

Example:

{% component type:"categories", parentCategory:"111", levelsDeep:"2", collectionVariable:"myVar" %}

Renders virtual layout by pattern below:

<option value="[[itemContext.fullName]]">[["----" x (itemContext.level-1)]][[itemContext.name]]</option>

Liquid output example (of “myvar”):

{

"items": [

{

"NestingLevel": 2,

"FullName": "Cat 2/SubCat 1",

"Id": 112,

"Name": "----SubCat 1"

},{

"NestingLevel": 2,

"FullName": "Cat 2/SubCat 2",

"Id": 113,

"Name": "----SubCat 2"

}

]

}

NOTES: On generation of ‘search module form’ modification shown in ACCEPTANCE CRITERIA - see further below.

Replicate the same to ‘create module form’

Replicate the same to ‘edit module form’


+ Component Toolbox shows category tree

In the toolbox (for custom module, blogs, events, etc) when selecting filterBy ‘itemCategories’ - display options as flat tree in filterValue field in the format described below:

  • <option> label: "Category" or "---- Sub Category" or "-------- Sub Sub Category" depending on the level of the category (the deepest level has the most "----" prefix in front of the category name).
  • <option> value: "/category/sub category"

Backlog

New Email Accounts

Add Email accounts tab on live site edit page (in portal.treepl.co)

Design - http://prntscr.com/oh730f

Flow:

  • Check if live site domain exists in Treepl’s Open SRS account.
  • If exist – show email CRUD layout
  • If not – try create domain in the Open SRC account
  • On success - show email CRUD layout
  • On fail – show error popup message and try again button.

Email CRUD layout provides ability to:

  • Create email
  • Create domain alias
  • Create email alias
  • View list of email accounts and domain aliases
  • Shows storage of the particular email account
  • Delete email accounts
  • Delete domain alias
  • Delete email alias
  • Reset email password

Backlog

Contacts Import/Export flow

Import/Export flow.

Fields:
all contact fields:

  • Id (ignore on import)
  • First Name
  • Last Name
  • Email
  • Address
  • City
  • State
  • ZipCode
  • Country
  • Site
  • Phone
  • Status
  • Notes
  • Date Created
  • Date Updated (ignore on import)
  • Secure Zone
  • Secure Zone Expiration Date
    Example:
    http://prntscr.com/o1wy67
    if there is no date in Secure Zone Expiration Date but there is secure zone name in Secure Zone field:
    - on create CRM contact; set 9999-Dec-31
    - on edit CRM contact; do not edit existing expiration date

Notes:

Only ‘Secure Zone’ and ’Secure Zone Expiration Date’ cells will be imported for those additional secure zone rows added under a contact’s record (with no email address present). All other cells will be ignored in these rows.

Backlog

Admin Roles - Import Contacts

Extend restrictions list for admin roles.
New option under ‘Contacts’:

  • Can Import Contacts

If ’Can Import Contacts’ = false - disallow importing Contacts action for Admins with such roles.

Existing configured roles have this disabled by default.

Backlog

Multiple Workflows enabled on Business plan

Unlock Workflow notification Create / Read / Update / Delete operations for Business plan to enable multiple workflow capability. Now restricted only to having different Workflow Emails for those notification.

(Multiple Workflow Emails remain only on Pro/Pro+ plans)

Backlog

Ecommerce menu items

Set all sub items in Ecommerce menu as inactive:

eCommerce

  • Products
  • Catalogs
  • Discount codes
  • Gift vouchers
  • Taxes
  • Shipping options

Backlog

Data Source Property - Default Empty Option

Original issue:
https://forum.treepl.co/t/data-source-property-default-empty-option/473

For Custom Module Data Source fields, it was not possible to be set back to null/empty after a selection was assigned.

Now an empty ‘Please select’ option is available.

Backlog

Re-index module button

Added ability to re-index only one particular module http://prntscr.com/oh898g

Useful for selectively re-indexing specific modules only or to resolve possible issues with specific module search.

Bug

Force disabling from search engines for all trial sites

Force addition of <meta name="robots" content="noindex, nofollow"> meta tag (regardless of page property "Disable from search engines") for any page request under subdomain of *.treepl.co or *.trialsite.co

Bug

BUG: SEO Priority Default Setting

Original bug summary:

https://treepl.co/public-backlog-state/request/bug-seo-priority-default-setting

Custom Modules default SEO Priority is only visually applied in admin view and does not actually apply until SEO tab is saved.

Solution:

Apply the Default Priority field value to any newly created item (http://prntscr.com/nvztgl ):

- Front-end form

  • always

- Admin add item form

  • always

- Import process

  • if priority column wasn't specified or cell is empty

Bug

BUG: {{this.member}} data does not output to system Invoice email

Original bug summary:

https://treepl.co/public-backlog-state/request/bug-raw-this-member-endraw-data-does-not-output-to-system-invoice-email

{{this.member}} data does not output to the system Invoice email layout.

Bug

Custom module - Content Template changed upon front-end update

Steps to reproduce:

  1. Create form for updating item from front-end
  2. Go to custom module settings and change default content template http://prntscr.com/o4qaoz
  3. Go to item and set any template (not default and not the one that is selected as default in module settings in step 2).
  4. Go to front-end and click button Update

Expected:

  • Template should not be changed

Actual:

Bug

Advanced search - doesn't search in blog

Fixed the issue that reindex process wasn’t indexing the items that where located in “folder/group” items (like posts in blogs or pages under some page folders).

Bug

BUG: Spaces generated in form code

Original bug summary:

https://forum.treepl.co/t/bug-spaces-generated-in-form-code/474

Generated form code for Event and Payment fields had incorrect spaces in the HTML syntax.

Bug

Update item from front-end would clear info when update

Steps to reproduce:

  1. Create module and item
  2. Generate update item form
  3. Remove from the html code any fields except of itemId
  4. Place form to the page
  5. Submit form from front end

Expected

  • All fields sending via the form updates the item properties. All properties that AREN’T added to the form should NOT be updated

Actual

  • All properties that AREN’T added to the form ERASES the content of those item’s properties.
Show more less
New Feature

New Email Accounts

Ability to create new email accounts for every hosted/activated site from Treepl Portal. Currently, you can request email accounts to be created by emailing to support@treepl.co
  • Treepl Portal
Improvement

BONUS: Advanced Multi-level Categories

Ability to create and easilty manage global multi-level categories.
Currently available as one of the "Beta Features" and needs to be enabled manually on every Treepl site.
  • Admin Panel
  • General
Improvement

Contacts Import

The ability to import/export CRM contacts. For example for users of secure zones that should be imported from BC

  • CRM
  • Treepl Portal
Bugfix

BUG: {{this.member}} data does not output to system Invoice email

{{this.member}}data does not output to the system Invoice email layout.
It works on the system Workflow email but not the Invoice....
  • Bugs
Bugfix

BUG: SEO Priority Default Setting

In Custom Modules, when the SEO Priority default is set (under step 2. Item Properties), it is visually applied in admin view for all existing and new items but doesn’t actually apply to the item (not reflected in sitemap or in Liquid...

  • Bugs
Bugfix

BUG: Spaces Generated In Form Code

When adding Event and Payment fields to a Form, the generated HTML code has incorrect spaces forming.

space-generated-code.png
  • Bugs
v 4.4 Release date: 19 Jun, 2019

Full Release Notes

Beta

Implementation of previous beta items

  • Advanced Module Import/Export
  • Improved module search

Features above work constantly now and have been implemented.

Beta

Date and time fields

Date Time Management:

Allows choosing time in date fields on custom and system modules.

Backlog

Set time on add/edit module items

1) Provide ability to set time on date properties in the admin.

Fields are:

  • system fields
  • Release Date
  • Expiration Date
  • Event Start Date
  • Event End Date
  • custom fields
  • any field with type = "Date Time"

2) Set default time for the date fields above if time not set - use 00:00:00 as default time when saving any of datetime properties above.

Backlog

Save time on import/export items

Use time from the date fields in the excel columns to set date time in the timezone of the site.

Fields are:

  • system fields
  • Release Date
  • Expiration Date
  • Event Start Date
  • Event End Date
  • custom fields
  • any field with type = "Date Time"

If not set - use 00:00:00 as default time.

Backlog

Save time on create/update item (user submitted)

1) Save selected time when creating/updating module item via user submitted items.


2) Change generated input form (via toolbox) from date to datetime-local input

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local

If not set to the datetime field - use 00:00:00 as default time.

Backlog

Event calendar redo for date time

Modify calendar JS to use time part of the event start and event end date instead of relying on forcing 00:00:00 to the start date and 23:59:59 to the end date.

Backlog

Liquid output for displaying timezone

Add new property to request object:

"timezone" :

{

    "label" : "string",

    "offset" : int

}

Where label is a string value of the timezone name and offset is the difference in hours between UTC and current timezone

Example Output:
"timezone" :
{

    "label" : "(UTC-06:00) Central Time (US & Canada)",

    "offset" : -6

}

Example Liquid Usage:

{{request.timezone.offset}}

Would give value: -6

Backlog

Duplicating of existing module

Duplicate module with:

  • settings
  • default properties
  • custom properties
  • layouts

Allow selecting new name and url when clicking duplicate button.

Duplicate button located on Module Settings tab.

http://prntscr.com/o3wjp2

Plan restriction for duplicate Custom Module: Pro+

Backlog

WYSIWYG and ACE editor for form autoresponder with switcher

Add WYSIWYG and ACE editor options to the Form -> Settings -> Autoresponder body.

System Flow:

When user saves Settings - last selected editor should be saved as well.

When user comes to the form setting page - last chosen editor should be applied to the Body field.

If no editor was saved for the Form setting section - ACE editor should be chosen by default.

Chosen editor should be saved to the particular form, not for all forms in general.


When user clicks save the whole Settings section:

  • If WYSIWYG editor chosen AND previously was chosen ACE - show confirm message: Switching to WYSIWYG may corrupt some of your data. Confirm?
    - if clicked OK - continue saving process.
    - if clicked cancel - reject saving process.

Bug

(HOTFIX) Calendar toolbox builder - default options depended in Advanced Search flag

If Advanced search feature flag is enabled:

  • All - value = "0"
  • Ungrouped - value = "-1"

Old logic (if flag is off) :

  • All - value = "-1"
  • Ungrouped - value = "[[hiddenRootItemID]]"

http://prntscr.com/nux3hw

Bug

(HOTFIX) Calendar for Advanced search feature flag beta param

Modify calendar js and include file to use beta feature flag param.

Set param to 1 if Advanced search feature flag is on.

Bug

(HOTFIX) Add Image Bug (not adding actual uploaded image path)

When adding an image to an image field using the image manager it would add an incorrect image reference.

Bug

URL Redirect - when using .html

Fix URL redirect to recognize such url’s ("/myurl.html" and "/myurl") as different urls.

The fix allows creating redirect like

"/myurl.html" => "/myurl"

Bug

BUGS: User-Submitted Custom Module Items

BUG 1:
Not sure that user-submitted CM items are honouring site timezone for release date and expiry date IN THE WEB FORM RESPONSE - actual dates in the admin and when later rendering on site are correct.
(I’m testing with a Sydney timezone set)
Release date is always different.
Expiry is different when the date is set in the Create Item form, but not when ‘number of days till expiry’ is used or when left as default/no date set.

BUG 2:
User-submitted items do not honour the expiry date ‘number of days’ value set in the modules default properties.

BUG 3:
Expiry date fields are generated in the Create/Update Item forms even if expiry date is disabled from the CM default properties. (although they are removed if turned off from the Settings > Site User Permissions - but I’d think it should work the same in both cases?)

BUG 4:
Expiration Date input in the Create/Update Item forms is added as a type=“text” input - suggest changing to a type=“date” (as per custom properties dateTime fields)"

Show more less
New Feature

Duplicate Existing Custom Module

The ability to duplicate existing custom module.
Extended feature could be the ability to export settings/layouts etc. for Custom Module and import it in to another site.
Available in Pro+ plan
  • Custom Modules
New Feature

Release Time

Release *time* for blog posts, custom module items, pages etc. So instead of just a release date, also have the ability to choose a specific time the content is released.

  • Custom Modules
  • General
  • Pages and Templates
New Feature

Webform Autoresponders WYSIWYG

WYSIWYG editor so that customers can update the content in autoresponders.

  • General
  • WYSIWYG Editor
Bugfix

BUGS: User-Submitted Custom Module Items

BUG 1:
Not sure that user-submitted CM items are honouring site timezone for release date and expiry date IN THE WEB FORM RESPONSE - actual dates in the admin and when later rendering on site are correct.
(I’m testing with a Sydney timezone set)
Release date is always different.
Expiry is different when the date is set in the Create...
  • Bugs
v 4.3 Release date: 29 May, 2019

Full Release Notes

Backlog

Site speed increase

Performed CMS code optimization that slightly increase working speed of site pages (up to 15%).

Backlog

Liquid Context Rendering

New liquid object of {{LiquidContext}} to output all the available liquid for the current layout.

eg:

{% assign myCustomVar = "some value" %}

{{liquidContext}}

OUTPUT:

{

"this" :

{

"Name": "value",

"Description": "value"

...

},

"request" :

{

"request_url": {...},

"currentmember": {...}

...

},

"myCustomVar" : "some value"

}

Backlog

URL Redirects Import/Export

Ability to Import/Export URL redirects using an .xlsx file.

Backlog

Global Variables (Site Information) Builder

The ability to have a "Site Setting" App, where it is possible to add settings for the client that one could then feed and use throughout the entire site. It could be things like logo, phone, email, address etc.

With the ability to have the option of setting the liquid names/aliases so the tags are customisable. So instead of having for example something like {{siteInformation.companyContacts.webAddress}} one could specify an alias like {{si.cc.web}}

http://prntscr.com/nuymj4

Backlog

Toolbox -> Global variables (Site Information)

Add ability to get Site Information tags via the toolbox.

Toolbox options:

  • Group dropdown
  • Property dropdown (shows only when group is selected)
    Two liquid tags then shown for selected property for full alias and short alias.

Backlog

Secure Zone Subscriptions + Expiry dates

Added 2 system fields to the form builder relating to Secure Zones:

  • Secure Zone Expiry date
  • Secure Zone Expiry duration

Creating the input fields:

<input type="date" name="SZ_ExpiryDate">

<input type="number" name="SZ_ExpireAfterDays">:

User is not able to save the form with two chosen options.

If both options are present in the form the Expiry Date field will have priority.

Backlog

Secure Zone Expiration Settings

Create a new option on the Secure Zone Page:

  • Expiration option
    • Not specified (could be set from the form);
      this option is selected by default.
      If selected - allow applying date chosen on the form.
      If no value sent with the form - apply 31-Dec-9999.
  • Custom date;
    • if selected shows additional field type date.
      Apply to the form submission regardless of the Secure Zone Expiration field selected on the form.
  • Number of Days.
    • if selected shows additional number field.
      Apply to the form submission regardless of the Secure Zone Expiration field selected on the form.

Backlog

Add .kml, .kmz extension to allowed extension list

Add allowed file extensions:

  • .kml (application/vnd.google-earth.kml+xml)
  • .kmz (application/vnd.google-earth.kmz)

Backlog

Categorized rendering of events in the calendar.

Now using the component toolbox you can generate the calendar include widget that will render calendar of events by category.

Backlog

Import/Export of the detail layout

Now you can specify detail layout id in import and export file for module items.

Backlog

Data Center displaying in the portal.

Fixed the displaying of the data center in the partner portal. Partner should be able to see the actual information of which data center the website is located.

Backlog

Module lists in Admin to list by release date

Item lists in admin where release date is relevant now can be sorted by the release date column header.

Beta

Advanced search feature

Advanced search added to beta.

This feature uses new module index that allows retrieving searched module items in module search faster.

Current feature impacts:

  • Module Search load speed will be highly increased.
  • Filter by Event fields (such as start date end date price etc) will be highly increased.
  • Filter by url will be highly increased.
  • Added/edited module items via admin, frontent form or import functionality will be added to the index instantly (note – item may not be added to the index if reindex function is in process).
  • Events on the calendar will be loaded faster.

ATTENTION: all features under beta will be released one or two sprints after their released sprint. Some of them may change the logic already implemented (by way of improvement). So check if these features impact your site before the full feature release.

Beta

(HOTFIX) Calendar toolbox builder - default options logic change (when BETA Advanced Search enabled)

If Advanced Search BETA feature is enabled:

Toolbox -> Event -> Calendar generation will be changed:

  • Option “All“ will generate value = "0"
  • Option “Ungrouped“ will generate value = "-1"

Old logic (if flag is off) :

  • Option “All“ will generate value = "-1"
  • Option “Ungrouped“ will generate value = "[[systemRootItemID]]"

System will support both legacy version of the calendar and new version of the calendar.

Beta

Remove “Disable from site search” influence on MODULE specific search

Beta setting: Improved module search

Removes the effect of "Disable from site search" property for module specific searches.

Site search will not be affected by enabling this feature.

"Disable from site search" property should only be used for Site Search.

Bug

Time with calendar - on IOS

On iPhone if site has timezone set to “–GMT” - events were displayed one day back on certain time set on users device.

http://prntscr.com/nuvu5w

http://prntscr.com/nuvuhx

Bug

Form - Options in reverse order

Form fields that have options (ie: checkboxes, radios, dropdowns...) would have those options listed in reverse order in the generated layout

http://prntscr.com/nu9kbr

Bug

Admin - List View Pagination

When updating a custom module item on page 20 for example it jumps back to page 1. Which is frustrating if wanting to update multiple items on page 20.

Bug

Suspend Site text truncated

Descriptive text for Site Suspension options is truncated.

http://prntscr.com/nmv3vr

Bug

Bug with liquid

Module component tags configured with pagination would show total items count as the value in the ‘limit’ parameter.

Should shown total items count.

As a result generated pagination shows incorrect page numbers.

Bug

Event item showing on calendar before release date

Event item with release date in the future incorrectly shown on the calendar when it should not show at all until release date reached.

http://prntscr.com/nuw0ca

Show more less
Improvement

URL Redirects Import

Ability to import URL redirects using a .csv file.
Including PDF’s, media items, images, urls ending with a forward slash “/” and unusual urls that include special characters like &, =, $ or .aspx, .php etc. Ability to create wildcard redirects
  • General
  • SEO
New Feature

Global Variables Builder

The ability to have a "Site Setting" App, where it is possible to add settings for the client that one could then feed and use throughout the entire site. It could be things like logo, phone, email, address etc.

With the ability to have the option of setting the liquid names/aliases so the tags are customisable. So instead of...
  • Admin Panel
Improvement

BONUS: Form Fields Sorting

Sorting of form fields when making a form is reversed in the final layout.

form-sorting-reversed.jpg
  • Forms
Improvement

Liquid Context Rendering

The ability to output all available liquid on the current page.
The BC equivalent would be {{this|json}}

...
  • Liquid
v 4.2 Release date: 08 May, 2019

Full Release Notes

Backlog

Ability for partners to block the admin access and pause the websites for clients which are not paying.

If a partner chooses the soft option:

  • There’ll be a banner placed on the home page where the explanation of the issue can be described. The visitor of the website can confirm it and the banner will disappear. Then the visitor can continue browsing the website;
  • Clients can't access the admin dashboard using their credentials and will get the message with the issue

If a partner chooses the hard option:

  • The website is blocked and will not display. Every page will display the block-page with the description of the issue.
  • Clients can't access the admin dashboard using their credentials and get the message with the issue

Backlog

Ability to add multiple domain names to a website and point to different landing pages.

If the home page isn't set at all, there should be a customisable system page displayed.

‘Settings’ > ‘System Pages’ > “missing-home-page”


Ability for the user to set up the default pages in the Domains list section via the admin dashboard.

  • If the page option is not set for any domain the default page should be used.
  • If the default page option is not set on the default page, there should be "Not Set" status.

If the visitor enters on the custom domain of the current website;

  • If the page for the domain is set the system displays the page as the landing page;
  • If the page for the domain is not set the system shows the page of the default domain;
  • If the page is not set on the default domain the system shows the system page.

Backlog

Update Liquid To Include Date & Time Filters

Added date filters:

site_date

{{ “now” | date }} outputs "09-Jan-2015"

site_datetime

{{ “now” | datetime }} outputs "09-Jan-2015 02:46 PM"

date_utc

{{ “now” | date_utc }} converts a date to UTC (assuming that the date is always given in the site’s timezone)

date_add

myDate - filter input should be a date time object or a string convertible to a date time object

amount - an integer number or a string convertible to an integer number representing the amount of date or time units to add (if positive) or to subtract (if negative) from the input date time object

datePart - a string representing the date or time parts to be added or subtracted. The allowed values are:

  • "year"
  • "month"
  • "day"
  • "hour"
  • "minute"
  • "second"
  • "millisecond"

E.g. using either one of the variables below:




and

3016-06-15 12:30:30Z will output 3016-06-15T12:30:30

2016-09-15 12:30:30Z will output 2016-09-15T12:30:30

2016-06-30 12:30:30Z will output 2016-06-30T12:30:30

2016-06-16 08:30:30Z will output 2016-06-16T08:30:30

2016-06-15 11:50:30Z will output 2016-06-15T11:50:30

2016-06-15 13:00:30Z will output 2016-06-15T13:00:30

2015-06-16T08:30:29.900 will output 2015-06-16T08:30:29.900

If one of the parameters is of an incompatible type or value, the filter will not alter the input.

Backlog

Contact assignment to the Secure Zone.

Admin able to set/edit the expiry date of the secure zone for a contact

The configuration can be managed in the contact setting - http://prntscr.com/nip1uq.

Backlog

Default Expiry date for the Secure Zone.

If any of the forms have a secure zone, but the expiry date for it isn't specified, the default expiry date should be 31-Dec-9999.

Backlog

System Page if the access to the Secure Zone is expired.

If the expiry date of the contacts secure zone subscription is bigger than the set expiry date, the system should show the system page (403). The user should not be able to enter the secure zone by any means until the expiry date is less smaller than the current one.

Backlog

Change SEO Title To Meta Title In Liquid Properties

{{this[‘MetaTitle’]}} Added and renders the same value as {{this[‘SEOTitle’]}}

Backlog

Timezone for form submissions

The form submission times in the CRM now showing time in site timezone.

Backlog

Customise the “Create New” item name in modules

Admin is able to add the name for the "Create New" button on the "treeView" for modules:

The field where the admin can add the Alternative Item name - http://prntscr.com/nl0ow4.

The name for the "treeView" module should be displayed here - http://prntscr.com/nl0oob.

Backlog

Add support of .webp images

Add support of files with extension: ".webp" type: "image/webp"

Backlog

UI Improvements

File Manager:

  • filemanager download file option
  • filemanager duplicate file
  • filemanager download folder option
  • filemanager duplicate folder

Modules:

Component Manager:

Backlog

URL Redirect 302 status code changed to 301

Change current

  • 302 (Temporary redirect) status code to
  • 301 (Permanent redirect)

Bug

URL redirects with .html extension as source

Any url redirect that is added to the system with .html as the source url won’t redirect.

Another usability issue is that when you make a change to a url and go ‘back’ it takes you back to the first page of results every time and not just back to the page you were up to. It also defaults back to 20 results instead of 50.

Bug

Import/Export - doesn't react to Disable for site search

  1. Go to Galleries/Slider
  2. Create slider
  3. Export this item
  4. In file add one item and change Disable for site search to True and save
  5. Import this file
  6. New item doesn’t have checked checkbox for Disable from site search

Bug

Change Timezone - event in calendar displays one day back

  1. Create event and show item on Calendar http://prntscr.com/ne19h1
  2. Change time on your computer
  3. In calendar event start date change to one day back http://prntscr.com/ne1ad4

Bug

Custom Module and Event pagination no display results

When using Custom Module or Events search module with pagination, the paged views don’t show any items.

Bug

New Image manager not recognizing .jpg images

Image manager in WYSIWYG editor not displaying .jpg images in the file system and so cannot be selected.

Bug

New Image manager - breadcrumbs don't work correctly

Image manager in WYSIWYG editor not displaying breadcrumb/folder location correctly if reopening the image manager for a second time.

Bug

Create item from front end - change type

Expiration Date input in the Create/Update Item forms is added as a type=“text” input - suggest changing to a type=“date” (as per custom properties dateTime fields)

Bug

Business plan - disable advanced settings

Sites on Business plan had Advanced Settings enabled for Custom Modules when they should be disabled.

Bug

Set at Home and nICE

Page with ‘Set as Home Page’ enabled will revert to disabled if saved via nICE editor.

Bug

Default priority - doesn't save during import

  1. Go to custom module with Default priority http://prntscr.com/ndjzba
  2. Create item – priority doesn’t get saved until clicking save on seo tab

Bug

New Image manager - show full breadcrumbs

  1. Go to Image manager WYSIWYG
  2. Open folder with several folder inside - doesn’t show full path https://prnt.sc/nf57sh

Bug

Set up Time zone on create item in Custom module

User-submitted Custom Module items are not honouring site timezone for release date and expiry date IN THE WEB FORM RESPONSE - actual dates in the admin and when later rendering on site are correct. Initial response Release date is always different.
Expiry is different when the date is set in the Create Item form, but not when ‘number of days till expiry’ is used or when left as default/no date set.

Bug

Create item from front end - expiry days issue

With ‘Expiry Days’ set for user submitted custom module (http://prntscr.com/nfs5pk)

On item submission item is created with system default expiry date + expiry days - but should be calculated from today’s date http://prntscr.com/nfqq1b

Show more less
New Feature

Multiple Domain Names

Ability to add multiple domain names to a website and point to different landing pages.
  • SEO
New Feature

Pause Clients Which Are Not Paying

The ability to pause clients access to the admin and their email if they are not paying their bills.

  • Treepl Portal
Improvement

BONUS: Alternate Name Of Custom Module Item

cm-custom-name.png
Ability to set a custom name for custom module item.
Very useful when using nested custom modules.
  • Custom Modules
Improvement

BONUS: “Author” and “Added By” fields to include links to those CMS items

Add a link to the CRM record next to any “Added By” field.
Add a link to the Author item next to any “Author” field.
  • CRM
Improvement

BONUS: Change SEO Title To Meta Title In Liquid Properties

Version 3.2 brought a change to the SEO section changing the ‘SEO Title’ field name to ‘Meta Title’.

It would be great to have this passed through to the Liquid property naming also for consistency.

ie: {{this.metatitle}}

We may need both {{this.seotitle}} (old) and {{this.metatitle}} (new) available for backwards compatability

...
  • Liquid
  • SEO
Improvement

BONUS: Duplicate, Download Files & Folders

- Ability to download file from File Manager
- Ability to download folder from File Manager (as a seperate zip file)
- Ability to duplicate file and/or folder in File Manager
- Files and folders to render in alphabetical order
  • File Manager
Improvement

BONUS: Expiry Dates For Subscriptions

Functionality for admins to set expiry date for a customer to access a secure zone. (eg: access expires 31.12.2019)

  • Secure Zones
Improvement

Update Liquid To Include Date & Time Filters

Date Filters can be very important to web sites that use dates and calendering.

See the following link for BC's Date Filters:

Link to BC docs
  • Liquid
v 4.1 Release date: 17 Apr, 2019

Full Release Notes

Backlog

Code View In Custom Module WYSIWYG

For Custom Modules, the ability to switch to “Code View” in custom WYSIWYG fields.

Backlog

Menu Layouts and layoutGroups management

Add Menu layouts and layoutGroups management to the admin similar to other module layouts.

1) User should be able to create new layoutGroups

Creating layoutGroup should create folder in "/Content/MenuLayouts/[menuAlias]/[layoutGroupName]" and create there 3 files with default content.

2) User should not be able to delete Default layoutGroup.

3) User should be able to edit any layout inside layout group.

4) Creating new menu should create "/Content/MenuLayouts/[menuAlias]/Default" folder and insert default layout there instead of the previous location "/_MenuLayouts/[menuAlias]".

Backlog

Menu LayoutGroups FTP changes

FTP changes (for app start if _MenuLayouts" folder exist):

1) Copy "_MenuLayouts" folder from ftp root to "Content" folder.

Rename it to "MenuLayouts":

http://prntscr.com/n4ocag

2) Inside each menu alias named folder in "/Content/MenuLayouts/" folder - create Default folder. Move layout files from the "/Content/MenuLayouts/[menuAlias]" to "/Content/MenuLayouts/[[menuAlias]]/Default" folder.

3) Go through every layout "*.layout" file inside each "/Content/MenuLayouts/[[menuAlias]]/[[layoutGroup]]" folders and change the include string part like this:

/_MenuLayouts/{{this.alias}}

to

/Content/MenuLayouts/{{this.alias}}/{{this.layoutGroup}}

Backlog

Add Menu LayoutGroups to liquid component

Extend module component to use layoutGroup param:

{% component type: "menu", alias: "test", layoutGroup:"myCustomLayout" %}


If layoutGroup is empty string or null (parameter is not set) - use default.

layoutGroup should work the way described below:

  • Find /Content/MenuLayouts/{{this.alias}}/{{this.layoutGroup}}/menu.layout file and parse it instead of old /_MenuLayouts/{{this.alias}}/menu.layout
  • if file was not found - render empty string

Liquid changes:

add layoutGroup to this scope

Backlog

Upgrade menu in component toolbox

Selecting menu should be similar to Event subscription form:

http://prntscr.com/n4ops8

Default value for layoutGroup should be "Default".


New component parameters look like:

{% component type: "menu", alias: "[[someAlias]]", layoutGroup: "[[selectedLayoutGroupName]]"

%}

Backlog

‘Delete all items’ button (improved UI)

Add button "Delete all items" to bulk action list on list-view of a module.

Confirm window should be the same as for existed bulk delete action.

If user leaves the page while deleting process still running - show alert message:
Deleting items is still in process.

It will continue after you leave this page.

Design: http://prntscr.com/nd9k2w

Backlog

Custom Module - Properties - Advanced custom property editing

Ability to change custom module custom property data types.

Add alert message when type change will cause irreversible data changes:

WARNING: changing field type will cause data loss. Do you wish to proceed anyway?

Transformations are based on rules described in the documentation for Custom Modules.

Backlog

Edit & Re-shuffle Tags In Modules

Add ability to edit "Tags" in modules.

Add ability to reorder tags.

Backlog

Image manager in wysiwyg

Ability to access the file manager for image placement within WYSIWYG tools.

Beta

Import/Export feature improvement

Extended version of import/export file.

Add “disable from site search” property to the import/export file

Beta feature: Activate by checking the ‘Advanced Module Import/Export’ flag in the Beta area.

Bug

Release date issue on module items

When creating custom module item - its release date saved with incorrect hours.

When click save again - date is changed again until release date is changed to +1 day.

Expected:

Release and expiry date should be saved with time 00:00:00 in the site's timezone. Time part of the submitted datetime should be fully ignored - just force 00:00:00 in the site's timezone

Resaving should not change the time.

Bug

“site.webmanifest” Files Not Supported

"site.webmanifest" files are not accessible via their URLs and are therefore not usable by browsers and other applications.

Expected:

When adding site.webmanifest file with content to ftp root.

Go to /site.webmanifest url.

Access file's content.

Actual:

HTTP ERROR 404

Bug

Login to admin - can't access first few times

Issue with admin login not allowing access and returning to the login screen several times before finally allowing access.

Bug

Site Search With Multiple Keywords

Site search using more than one word as the search term is not returning any results, even with site reindexed.

Bug

Link Manager Changes the Link text

When using the Link Manager in the WYSIWYG editor for linking to a page, the Link Manager will overwrite the text selected as link with the name of the page.

Example:

"This is my LINK"

Then select "LINK" and go to the Link Manager and choose "Page" and then choose a page called "Test".

Your link will now show: "This is my Test" instead of still showing: This is my LINK"

Show more less
New Feature

BONUS: Lawyer Template

New custom grid template "Lawyer" is available from Partner Portal for all types of users.
  • Templates
New Feature

BONUS: Photography Template (Foundation)

New Foundation template "Photography" is available from Partner Portal for all types of users.
  • Templates
Improvement

BONUS: Custom Module Import/Export

1) Extended version of import/export file
2) Add disable from site search property to the import/export file
  • Custom Modules
Improvement

BONUS: Edit & Re-shuffle Tags In Modules

Ability to edit and shuffle “Tags” in modules. Right now, you can only add. So, if you make a mistake, misspell, etc, you need to delete the tag and re-add it again.
Also, would be nice to have the ability to re-shuffle tags (i.e. order of tags)
  • Custom Modules
Improvement

Code View In Custom Module WYSIWYG

The ability to go to “Code View” in custom WYSIWYG field in Custom module. (Not in the native item description field where is works already)

code-view-wysiwyg.png

  • Custom Modules
  • UI/UX
  • WYSIWYG Editor
Improvement

Menu Layouts Inline With Other Modules

For consistency, I’d like to see Menu layouts brought into the admin more in line with how all other module layouts are managed.

Some mockups below: menu-layout1.png

menu-layout2.png

menu-layout2.png

  • Admin Panel
  • Menus
Improvement

Update Import Templates To Allow "Disable From Site Search" For Items During Import

Items imported into Treepl using Templates do not always need to be found by Site Search.

By default, all imported Items are found by Site Search.

In Use Cases where Items should not be searchable it is necessary to edit every Item after it is imported and check the Disable From Site Search check box.

A number of partners have encountered this issue,...

  • Treepl Portal
Bugfix

BUG: Site Search With Multiple Keywords

Site search using more than one word as the search term is not returning any results, even with site reindexed.
Tested on both a live site and a trial site.

  • Bugs
  • General
Bugfix

BUG: “site.webmanifest” Files Not Supported

“site.webmanifest” files are not accessible via their URLs and are therefore not usable by browsers and other applications.

  • Bugs
  • General
Bugfix

Link Manager Changes Link Name

When using the Link Manager in the WYSIWYG editor for linking to a page, the Link Manager will overwrite the text selected as link with the name of the page. 

Example:

"This is my LINK"

Then mark "LINK" and go to the Link Manager and press "Page" and then choose a page called "Test".

When...

  • Bugs
  • General
  • WYSIWYG Editor
v 4.0.2 Release date: 27 Mar, 2019
Improvement

Auto-Collapse Item Settings / Custom Properties Toggle

The ability to have a “cookie” set to remember when you click the toggle to collapse container?
This way when you go back it is still set as collapsed? Or somewhere in a General Settings area where you can have it set to Auto Collapse (like a Global Setting).

Also the ability to apply this to the ‘Items Per Page’ pop-up...

  • Admin Panel
Bugfix

Events Not Sorting By ‘EventDateStart’ And ‘EventDateEnd’

When using sortBy parameters in the component module for events, ‘EventDateStart’ and ‘EventDateEnd’ do not work to sort by those dates.

  • Bugs
  • Events
Bugfix

Saving Template Will “Postpends” A "-1"

When saving Templates after within Content Template, it “postpends” a -1 after it.
Even after -1 is removed it brings it back again.

If saving it again, adds a 2, saving it a third time adds a 3 etc.

Screen shot is after removing, saving, back to list view, saving, and it comes back again.

template.png

  • Bugs
  • Pages and Templates
v 4.0 Release date: 20 Mar, 2019

Full Release Notes

Backlog

UPDATE
Liquid date filter - convert number to date

Now Liquid can convert numbers to date (interpreted as number of seconds from 1st Jan 1970).

For example:
{% assign newStartDateSeconds = 'now' | date: '%s'| minus: 1209600 %}
{% assign newStartDate = newStartDateSeconds | date: '%e-%b-%Y' %}

Backlog

WYSIWYG - Image padding UI

Provide ability to add/edit spacing around images

http://prntscr.com/n0jspm

Backlog

Managing Content templates through FTP

Add ability to manage Content Template via FTP.

Folder to check files in:

/Content/ContentTemplates

File to check schema:

.html

If Content template created in admin contains unaccessible symbols for file name - replace them with empty string ("") for file name (name of the template remains the same).

Extend Content template with the same FTP Path variable as Pages has.

Managing functions are the same as for pages:

  • create file -> create template
  • delete file -> delete template
  • update file -> update template's content
  • rename file -> rename content template
  • All above vice versa

Backlog

Managing Snippets through FTP

Add ability to manage Snippets via FTP.

Folder to check files in:

/Content/Snippets

File to check schema:

.html

If Snippet created in admin contains unaccessible symbols for file name - replace them with empty string ("") for file name (name of the Snippet remains the same).

Extend Snippets with the same FTP Path variable as Pages has.

Managing functions are the same as for pages:

  • create file -> create Snippet
  • delete file -> delete Snippet
  • update file -> update Snippet's content
  • rename file -> rename Snippet (alias remain the same)
  • All above vice versa

Backlog

Managing Email templates through FTP

Add ability to manage Email Template via FTP.

Folder to check files in:

/Content/EmailTemplates

File to check schema:

.html

If Email template created in admin contains unaccessible symbols for file name - replace them with empty string ("") for file name (name of the template remains the same).

Extend Email template with the same FTP Path variable as Pages has.

Managing functions are the same as for pages:

  • create file -> create template
  • delete file -> delete template
  • update file -> update template's content
  • rename file -> rename Email template
  • All above vice versa

Backlog

Managing Module Layouts through FTP

Add ability to manage Module Layouts via FTP.

Folder to check files in:

/Content/ModuleLayouts/

File to check schema:

.html

If Module Layout created in admin contains unaccessible symbols for file name - replace them with empty string ("") for file name (name of the Module Layout remains the same).

Extend Module Layouts with the same FTP Path variable as Pages has.

Managing functions are the same as for pages:

  • create file -> create Module Layout (as list layout)
  • delete file -> delete Module Layout
  • update file -> update Module Layout's content
  • rename file -> rename Module Layout
  • All above vice versa

Backlog

Managing Forms through FTP

Add ability to manage Forms via FTP.

Folder to check files in:

/Content/Forms

File to check schema:

.html

If Form created in admin contains unaccessible symbols for file name - replace them with empty string ("") for file name (name of the Form remains the same).

Extend Forms with the same FTP Path variable as Pages has.

Managing functions are the same as for pages:

  • create file -> create Form
  • delete file -> delete Form
  • update file -> update Form's content
  • rename file -> rename Form (alias remain the same)
  • All above vice versa

Backlog

Managing System Pages through FTP

Add ability to manage System Pages via FTP.

Folder to check files in:

/Content/SystemPages

File to check schema:

.html

If System Pages created in admin contains unaccessible symbols for file name - replace them with empty string ("") for file name (name of the System Page remains the same).

Extend System Pages with the same FTP Path variable as Pages has.

Managing functions are the same as for pages:

  • create file -> No Action (disallowed action for this type of item)
  • delete file -> No Action (disallowed action for this type of item)
  • update file -> update System Page's content (create file if it was deleted by ftp)
  • rename file -> No Action (disallowed action for this type of item)
  • All above vice versa

Backlog

Managing System Emails through FTP

Add ability to manage System Emails via FTP.

Folder to check files in:

/Content/SystemEmails

File to check schema:

.html

If System Email created in admin contains unaccessible symbols for file name - replace them with empty string ("") for file name (name of the System Email remains the same).

Extend System Emails with the same FTP Path variable as Pages has.

Managing functions are the same as for pages:

  • create file -> No Action (disallowed action for this type of item)
  • delete file -> No Action (disallowed action for this type of item)
  • update file -> update System Email's content (create file if it was deleted by ftp)
  • rename file -> No Action (disallowed action for this type of item)
  • All above vice versa

Backlog

Managing Workflow Emails through FTP

Add ability to manage Workflow Emails via FTP.

Folder to check files in:

/Content/WorkflowEmails

File to check schema:

.html

If Workflow Email created in admin contains unaccessible symbols for file name - replace them with empty string ("") for file name (name of the Workflow Email remains the same).

Extend Workflow Emails with the same FTP Path variable as Pages has.

Managing functions are the same as for pages:

  • create file -> create Workflow Email
  • delete file -> delete Workflow Email
  • update file -> update Workflow Email 's content
  • rename file -> rename Workflow Email (alias remain the same)
  • All above vice versa

Backlog

Beta Feature flags

Ability to enable/disable some beta features before they become default.

http://prntscr.com/n0jx5m

Backlog

Default auth cookie life time to 24h

Extend cookie life time after log in to secure zone from 30 min to 24hrs

Backlog

Admin URL management improvement

  • Remove # from url routes in admin
  • On login - redirect user to previous page (if user was redirected to login by the app).
  • If user goes via old urls with # - redirect him to the correct new styled URL

Backlog

Liquid engine refactoring (ALPHA)

Refined and optimized Liquid Parsing process.
Feature is in ALPHA state for now and under internal feature flag.
Feature is disabled by default but we can manually enable it upon request for any of your trial sites if you wish to play with it.

Benefits of the feature:

  • Parsing process now goes starting from template instead of page content.
  • Liquid parsing speed is slightly increased.

Feature is incompatible with nICE for now (compatibility is under development).

Bug

Allow ‘Amount’ payment when Event Price is 0

When

  • Event Has Price field set to 0
  • Form Has AcceptPayment field ON
  • Form Has AcceptEventSubscription field ON
  • Form submission data has Amount > 0

Than - proceed payment the same way as it does for event by event.price BUT use FormSubmissionData.Amount as Price

Show more less
New Feature

WYSIWYG Editor - Image Manager

Need to have the ability to add Spacing and Image Compression options as well, similar to how Shopify handles this

Right now one need to manually go in and update Margins. Would also be good to assign a custom CSS class to images.

wysiwyg-image-manager.png
  • Admin Panel
  • WYSIWYG Editor
Improvement

FTP Access to Templates Etc.

FTP access to Pages, Menus, Content Templates, Snippets, Web forms (!), Blogs + Blog Posts, Events and Event Groups, Banners (Ad rotators), Galleries/Sliders (Photo Galleries), Authors, FAQ's, Custom Modules, Workflow Emails, System Emails, Email Templates and System Pages
  • FTP