26 Jun 2022 10:39 AMUpdate 5.20.1 Alpha
New: BusinessCollection.Import
can now merge matched rows giving preference to either the imported row or existing row.
New: BusinessCollection.Import
can now import from multiple line fields to one. If the property is of type MultipleLineText then the system will look for a column in the import ending in Line1, Line2, etc. For example, PostalAddressLine1, PostalAddressLine2 and PostalAddressLine3 will be imported into PostalAddress.
New: BusinessCollection.Import
can specify the date format being imported as one of the following:
- Day Month Year
- Month Day Year
- Year Month Day
New: Common.ConvertToDateTime(DateTimeText, GenericDateFormat) has been added to enable manual sorting within the parent group.
New: Group.Position has been added to enable manual sorting within the parent group.
New: All Articles menu item under content management.
New: Many functions on business objects have been modified to return self.
New: All object properties including application and collection now can specify where the Repository is.
Fix: Error when adding a promotion.
Fix: After adding a promotion it returns to the list.
Fix: An object's item and collection properties filter and sort attributes are no longer visible and cannot be edited by the user.
Fix: Group.GetActiveMembershipCount
returns an error when Group.MaximumMemberships
set.
Fix: The actual error when making a payment is now displayed correctly.
Fix: CollectionClassDefintion.GenerteHTML
merge expressions.
18 Jun 2022 10:39 AMUpdate 5.20.0 Alpha
New: BusinessCollection.Import
will now except JSON and XML.
New: BusinessCollection.Import
new excepts two more parameters MatchItemBy
which except a unique column name and UpdateMatches
which specified whether to skip or update rows that match.
New: JSON and XML exports now include both the ID and FileName along with ToString in a sub-element for Item types. When an item's property is referenced (i.e. Country.Code) then the system will create a sub-element for it. When multiple are grouped together (i.e. Country,Country.Code,Country.Name) then they will be grouped in the same sub-elememt.
New: XML export format now uses the definition name as the element name and ID is a sub-element, not an attribute.
Fix: JSON export now has the correct file extension.
New: BusinessCollection.IsExistingItem
and BusinessCollection.Item
now except a dictionary of name value pairs. It will first look for FileName and if not available use ID.
New: BusinessCollection.FilterOnIDFileNameOrUniqueValues
now except a dictionary or array of dictionary of name value pairs. It will first look for FileName and if not available use ID.
New: Common.XMLToObject
converts xml to an array/dictionary the same format as Common.JSONToObject
.
Fix: JSON export now has the correct file extension.
Fix: Submit name in defintion inspector.
13 Jun 2022 11:13 AMUpdate 5.19.0 Alpha
New: ValueDefinitionAttribute.StoreSessionOnly
had been replaced by enumeration ValueDefinitionAttribute.Repository
which indicate where the value is stored:
Database
: stores in a column in the table.More Info
: stores the name and value in a JSON column named More Info.Request
: stores only for the current request.Session
: stores in the user's session state.Application
: stores in the application state.
New: JSON table column MoreInfo
replaces XML table column CustomProperties
to store the custom properties in a name value collection.
New: PaymentMethod.MoreInfo
and Email.MoreInfo
have been created to store the custom properties from the inherited classes. For example, SecurePayPaymentMethod.MerchantID
, OrderEmail.OrderStatus
, etc.
New: A table column has been created for each custom property and the following system properties:
GatewayPaymentMethod.ReconciliationRequired
GatewayPaymentMethod.VerificationRequiredWithStoredPaymentMethod
OrderItem.RegularPrice
ServiceBooking.AdditionalInformation
New: ClassDefinitionAttribute.BaseType
returns one of the following:
- BusinessApplication
- BusinessCollection
- BusinessCollectionItem
New: JavaScript function to create a tabs on the client-side. To use set class="tabs"
on the container element. The same element must have a child element of nav
, to hold the table of contents, and one or more elements with an id
for each content section. For example:
<div class="tabs">
<nav>
<ul>
<li><a href="#content-one"><span>Content Section One</span></a></li>
<li><a href="#content-two"><span>Content Section Two</span></a></li>
<li><a href="#content-three"><span>Content Section Three</span></a></li>
</ul>
</nav>
<div id="content-one">Content section one here...</div>
<div id="content-two">Content section two here...</div>
<div id="content-three">Content section three here...</div>
</div>
New: Definition inspector has been overhauled with a new look. You can also add a collection class or property directly via the inspector and it will add the table or column in the database if need be.
New: The dashboard shop now lists all products to easily add products to the cart without multiple roundtrips to the server to do so. A client-side search and filter by category have also been added to make it easy for the customer to find what they want fast.
New: ItemTypes.InheritsRank
is a calculated column on the table used for sorting.
New: CustomDefinitionNamesStartWith
now defaults to underscore if not provided.
New: ValueDefinitionAttribute.SQLDataType
returns the data type required to store the property value in an SQL table column. For example, HTML = nvarchar(max), ID = int, Money = decimal(19,3), etc.
Fix: Error in MoneyDefinitionAttribute.FormatValue
when round to value is whole number.
Fix: Error in EnumerationDefinitionAttribute.CompareValues
when enumeration name passed.
Fix: GetCollection
now throws an appropriate error if not found.
Fix: To output of ConvertSiteToXHTMLCompliant
.
Fix: To the attributes of the following properties:
AutomatedTask.URL
AutomatedTask.Duration
CourseResult.CompletedOn
Email.FromEmailAddress
Email.ReplyEmailAddress
Email.MergeCollection
Email.MergePropertyForRecipient
Email.MergeFilterExpression
Email.MergeSort
Order.DiscountTaxRate
Order.FreightTaxRate
OrderItem.TaxRate
Payment.ProcessingFeeTaxRate
PaymentMethod.Currency
PaymentMethod.ProcessingFeePercentage
Promotion.DiscountRate
Subscription.AutoRenewDue
Task.URLToRun
Task.PercentageComplete
TaxRate.Rate
User.PasswordLastUpdatedOn
3 May 2022 1:05 PMUpdate 5.18.1 Alpha
Fix: To pricing for selected or logged in user.
Fix: When loading the filter expressions, the filter is reset without unnecessary code.
Fix: Organisation.Region
was required in the database causing an error.
6 Apr 2022 9:10 AMUpdate 5.18.0 Alpha
New: counter.js
function that shows a number incrementing or decrementing to a target value when visible in view port. To use set class="counter"
on an element and the inner text is the target value. Also can use these optional attributes:
data-start
is the starting value. Defaults to 0.data-incremental-pause
is the number of milliseconds to pause between increments. Defaults to 50.data-increments
is the number of increments to perform. Default is 40.data-locale
is the locale to use when formatting the number. Default is en-AU.data-format-options
are the options for formatting the number. Default is{ style: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 }
.
Fix: Menu item not showing as current when URL matched the current URL.
Fix: Parent group property not set when adding a sub group from that parent.
Fix: Processing boolean parameters of a method.
Fix: Display values when filtering a collection with in
operator.
Fix: Dashboard membership summary and order summary clickable totals.
28 Mar 2022 2:41 PMUpdate 5.17.4 Alpha
Fix: Fix to checkout process returning an error due to invalid URL.
26 Mar 2022 12:53 PMUpdate 5.17.3 Alpha
Fix: Fix to freight calculations based on delivery zones.
Fix: Fix when an item in the object is not found the system will check for a redirect. For example, if /blog/my-blog-post
was renamed to /blog/my-renamed-blog-post
.
24 Mar 2022 7:48 AMUpdate 5.17.2 Alpha
Fix: Fix to function that determines if a member can renew automatically to a group.
14 Mar 2022 11:18 AMUpdate 5.17.1 Alpha
Fix: Postmaster email address ignored when checking for bounced emails.
12 Mar 2022 5:25 PMUpdate 5.17.0 Alpha
New: Membership.AutoRenew
now can be set to:
- No
- Maybe: Send me an invoice.
- Yes: Pay via my stored payment method.
New: When an email is generated, prior to sending to the recipients, the system scans the HTML for images that need to be resized, copies and resizes them in the email folder and updates the link.
New: Property data type PhoneNumber
will check if number is compliant. Allows leading +
, 3 to 15 numbers, opening bracket (
with matching closing bracket )
, space and hyphen -
separators. For example, +61 7 5535 8942
, (07) 5535-8942
, etc.
New: The following property was created on the website object to return organisations visible to the current user.
VisibleOrganisations
with filenameorganisations
New: The system only retrieves required table rows when necessary. This can be overridden if you know most rows are going to be accessed, like menu items, and the system will return all so there are less requests to the database. To do this set CollectionDefinition.AlwaysFillWithoutFilters
.
Fix: The search control, clear filter and items per page now include nofollow so search engines don't index.
Fix: When processing an order and notifications, invoice, etc. failed to send the process would stop. Now it continues with a note added to order.
Fix: Error retrieving display value in filter on collection when filtered on a variable like [Today]
.
Fix: Error in GenerateCaptchaImage
.
12 Mar 2022 9:00 AMUpdate 4.18.0
New: ServiceSchedule.AvailableQuantity
and ServiceTime.AvailableQuantity
when blank default to Service.AvailableQuantity
.
Fix: Attachments can now be viewed without going via the primary object if allowed.
6 Jan 2022 6:01 PMUpdate 5.16.2 Alpha
Fix: BusinessObject.GetHTMLBreadCrumbs
to show current object. Also, now will create links to the custom view by default if one exists.
Fix: Modified BusinessCollectionItem.ToString
for new items.
5 Jan 2022 2:49 PMUpdate 5.16.1 Alpha
Fix: Canonical path for pages including home page.
Fix: Canonical path for collections.
Fix: Filter menu for items with sub-items such as categories and sub-categories.
3 Jan 2022 4:01 PMUpdate 5.16.0 Alpha
New: ClassDefinitionAttribute.SubmitDisplayNameExpression
and MethodDefinitionAttribute.SubmitDisplayNameExpression
allow you to set the name of submit button. For example, login method submit button might say "Sign In".
28 Dec 2021 3:08 PMUpdate 5.15.1 Alpha
Fix: Error when trying to cascade delete rows when the related table is a view.
Fix: When checking out from dashboard cart.
20 Dec 2021 3:23 PMUpdate 5.15.0 Alpha
New: ValueDefinitionAttribute.FilterMenuGrouping
is used to group items in the filter menu. For example, grouping on Article.Issue
might be [IssueYear] desc
or grouping on User.Region
might be [CountryName], [StateName]
. Note: the group column names must exist on the table of the column filtering by. For example, CountryName and StateName must also exist on the Users table.
New: ValueDefinitionAttribute.FilterMenuSortAscending
is used to sort items in the filter menu. True = Ascending and False = Descending.
New: Add calculated property Article.IssueYear
which is used to group issues in filter menu.
Fix: EnumerationDefinitionAttribute.DefaultValue
produced an error when enumeration name like Now could be evaluated.
16 Dec 2021 1:19 PMUpdate 5.14.0 Alpha
New: The following properties were created on the website and group objects to return published articles visible to the current user.
VisibleServiceTimes
with filenameservicetimes
New: Filter functions on visible service times.
Upcoming
Past
FilterByCategory
FilterByCountry
FilterByState
FilterByRegion
New: When specifying users for a booking the system can now ask for additional information for each user such as Dietary Requirements. You can specify the name of that additional information in Service.BookingAdditionalInformation
.
New: CartItems.HasSubscriptions
and CartItem.IsSubscription
.
New: You can now set BusinessCollection.ItemsPerPage
to zero.
Fix: Breadcrumbs filter expression were showing the values instead of the formatted display text.
Fix: Membership.Subscription
set where possible and Membership.AutoRenew
set on.
Fix: Pages moved to templates have wrong item type.
Fix: Several speed issues when requesting a page.
Fix: User.Industry
was a readonly property.
Fix: Disposal of business object when processing a return value.
Fix: Articles.FilterByIssue
.
Fix: FilterExpression.ToString
.
Fix: ValueDefinitionAttribute.CreateFilterMenu
.
Fix: EnumerationDefinitionAttribute.DefaultValue
.
Fix: GenerateHTMLSearchControl
when using short-cut paths.
Fix: Styles for search-control.
Fix: Styling issues in CartItems.ConfirmOrder
.
Fix: Styling for readonly HTML control.
30 Nov 2021 3:56 PMUpdate 5.13.0 Alpha
New: Title and Description properties have been added to the Template. These properties can contain merge scripts and the results are added as meta tags on a web page or subject of an email.
New: All pages that were used as templates such as success messages and email templates are now moved to templates. Pages are now simply used for web pages and no longer used for emails.
19 Nov 2021 2:26 PMUpdate 4.17.2
Fix: SendEmailForm
will no longer send from email address of the user entering the information. If you want to send from anyone other than the administrator, then an input control with type=hidden or type=text, name=Sender and the value being the email address should be included on the form. However the Reply-To will have the email address of the user entering the information.
12 Nov 2021 3:34 PMUpdate 4.17.1
Fix: When ServiceBooking.Time
is update it resets the start and finish time.
Fix: Function ServiceBooking.AllowSendEmail
and ServiceBooking.AllowSendEmailIncludingUser
.
8 Nov 2021 9:08 AMUpdate 5.12.0 Alpha
New: Group.MaximumMemberships
: the maximum number of active memberships a group is allowed.
New: Group.Image
: can be used for a banner image or like.
New: Organisation.Logo
: the representative logo of an organisation.
1 Nov 2021 1:56 PMUpdate 4.17.0
New: ServiceTime.SpecifyUsers
now asks for additional information (if required) for each user such as meal preference.
New: You can now customise the booking confirmation letter for each service. This can be done by creating a merge page named [Service.FileName].servicebooking.confirmationletter
.
New: Base styles nav.minimize1080
and nav.minimize1200
.
25 Oct 2021 5:03 PMUpdate 4.16.0
New: You can now change the maximum bookings for both a service schedule and time.
New: When adding custom properties to a service available schedule, the values are copied to a service time when generated, if the custom properties exist.
Fix: Custom properties and methods on the inherited class are now included.
Fix: Duplicate note created when service booking email sent.
17 Oct 2021 8:01 AMUpdate 5.11.2 Alpha
Fix: Output of meta tags for canonical and next and prev pages.
Fix: Output of filter menu to add meta tags telling search engines not to follow link when there is more than one filter applied to the link.
11 Oct 2021 5:00 PMUpdate 5.11.1 Alpha
New: There are several new operators for comparing item type properties (ItemDefinition
) where the item has a parent. For example, Category.Parent
. For this to work there must be a calcualated columns on the table with same name plus "Ancestors" and "Descendants". For example, for Article.Category
there would also be Article.CategoryAncestors
and Article.CategoryDescendants
. These return a pipe delimiter list of IDs. The operators are as follows:
AncestorOf
is/
AncestorOfOrEqualTo
is/=
DescendantOf
is\=
DescendantOfOrEqualTo
is\=
RelativeOf
is/\
RelativeOfOrEqualTo
is/\=
Fix: Filtering articles by category now includes the articles of descendant categories.
Fix: Site default static index file will now be loaded if exists.
Fix: Output of ValueDefinition.GenerateHTMLControl
and ValueDefinition.CreateFilterMenu
.
26 Sep 2021 8:54 AMUpdate 4.15.3
Fix: A HTML form with class disable-window-on-submit
now on submit includes the message "Please wait while processing..." with spinning repeat icon.
25 Sep 2021 8:22 PMUpdate 5.11.0 Alpha
New: Website.ClientIPInfo
will return information about the client IP address as follows. This will use a free service but is limited to 45 requests per minute. Obtaining an API Key will give you unlimited requests. Create a configuration setting named IPAPIKey
with the value being the key.
- Country Name
- Country Code
- State Abbreviation
- State Name
- City
- Suburb
- Postcode
- Latitude
- Longitude
- ISP
- Organisation
- TimeZone
- Offset 'Timezone UTC DST offset in seconds
- Currency Code
- Mobile 'Is mobile connection
- Proxy 'Is proxy, VPN or Tor exit address
- Hosting 'Is hosting, colocated or data center
New: Website.UserCountry
and Website.UserGeolocation
now get their info from Website.ClientIPInfo
.
New: Articles can now have a single category.
New: Search results for users on dashboard now include "Login as User".
New: Collection.DefaultItemsPerPage
now set to 25. Templates
and Snippets
set to 100, while Email
set to 5.
New: CollectionClassDefinition.GenerateFilterMenus
includes a clear filter option.
New: Styles for nav.filter-menu
.
Fix: Various fixes to ValueDefinition.CreateFilterMenu.
Fix: The return URL when logging in via custom register.
Fix: Article.Publish
return URL.
Fix: Article.StatusMessage
retrieving template to use.
Fix: CourseEnrolmentEmail.SendNow
.
Fix: Email.SendNow
sort order.
Fix: RelatedTradingItem.RelatedItemSelectableValues
.
Fix: New process path method now checks for redirect when path not found.
Fix: The page title generated for HTML output has been modified.
Fix: Collection.Definition.GenerateHTML
now shows the correct methods for each item.
Fix: Data.ConvertSQLToFilterExpressions
.
Fix: A HTML form with class disable-window-on-submit
now on submit includes the message "Please wait while processing..." with spinning repeat icon.
3 Aug 2021 4:01 PMUpdate 5.10.2 Alpha
Fix: Error when renaming items with UpdateAllLinks
parameter set to yes.
28 Jul 2021 11:02 AMUpdate 5.10.1 Alpha
Fix: Error viewing Trading Item Discounts.
Fix: Info message not detected in client-side scripts.
26 Jul 2021 5:00 PMUpdate 4.15.2
Fix: Couldn't add a large number of items to the cart due to storage size of cookies.
23 Jul 2021 12:22 PMUpdate 5.10.0 Alpha
New: Can now create an email campaign based on course enrolments.
New: Can now retrieve custom properties via BusinessCollectionItem.RawDataValue
.
Fix: When adding a new stored payment method it now only shows the available payment methods in the user's currency.
Fix: When filtering stored payment methods by expiry date.
Fix: Error in Group.ProcessSubscription
.
Fix: User unable to remove own stored payment method.
Fix: Client-side scripts and stylesheets.
6 Jul 2021 5:24 PMUpdate 4.15.0
New: Can now Open and Close multiple Service Times at once.
Fix: Error when viewing items of a Future Order.
22 Jun 2021 1:31 PMUpdate 5.9.0 Alpha
New: Property ItemTags.TagSet
added in order to create properties that will be specific to a tag set. For example, Product.Colours
for a multi select or Product.Material
for a single select. Selections from both will be listed in the item tags.
New: BusinessCollectionItem.DataValue.Set
now updates LinkingForeignCollectionDefinition
properties as well.
Fix: LinkingForeignCollectionDefinition.GenerateHTMLControl
now output a single select control when MaximumItems
is equal to one.
Fix: LinkingForeignCollectionDefinition.GenerateHTMLControl
was outputing a readonly control.
Fix: When submitting a form to add or update a business collection item, properties not included as controls on the form are ignore.
21 Jun 2021 4:09 PMUpdate 5.8.0 Alpha
New: ValueDefinitionAttribute.GetCode
and ValueDefinitionAttribute.SetCode
allow for custom methods to get and set values on a property.
New: BusinessObject.GetPropertyValue
and BusinessObject.SetPropertyValue
now available. Common.GetPropertyValue
renamed to Common.GetObjectPropertyValue
.
Fix: Error replacing form values in XML.
20 Jun 2021 12:59 PMUpdate 5.7.0 Alpha
New: Can now position tags within a tag set.
New: BusinessCollection.FilterOnIDFileNameOrUniqueValues(Object)
now excepts a business collection item of array of business collection items.
Fix: Error listing a tag's items.
Fix: BusinessCollection.Item(ID)
now throw error when ID does not exist.
17 Jun 2021 12:57 PMUpdate 5.6.0 Alpha
New: Can now tag any item not just Articles. i.e. Users, Groups, etc.
New: Function BusinessCollectionItem.Rename
will be visible to administrators if there is a column FileName
in the table.
15 Jun 2021 4:24 PMUpdate 5.5.0 Alpha
New: Groups now have a trial period for membership which is free.
New: StoredPaymentMethods.ExpiredOn
to filter out expired payment methods.
Fix: When a form is submitted and returned due to error or displaying message to redirect the field were not populated with the user input.
Fix: Error in BusinessCollection.FilterOnIDFileNameOrUniqueValues
.
Fix: Error when generating email.
Fix: Error when viewing/editing a region.
Fix: Backward compatibity for Human Verification Code on forms to block spambots.
8 Jun 2021 1:54 PMUpdate 4.14.21
Fix: Error in Group.SubscribeNewUser
.
Fix: Backward compatibity for Human Verification Code on forms to block spambots.
29 May 2021 12:53 PMUpdate 5.4.0 Alpha
New: Import to any collection. Currently only CSV. JSON and XML in future release.
New: BusinessCollection.IsExistingItem
and BusinessCollection.Item
will now search for ID, filename and unique fields for passed value. However, if the passed value is in the format of an ID or filename then it will not search further. For example, passing an email address to find a user.
19 May 2021 12:52 PMUpdate 5.3.0 Alpha
New: You can add a text-to-speech player control to any HTML element and when a user clicks the play button the text within the element is read by a synthesizer. The user can then pause or stop. They can change the voice (depending on the availabity of the browser), the rate and pitch. To add the player control you simply add the class "text-to-speech" to the element.
New: You can now specify a sub-properties as collection view columns. For example, the columns for a membership list may be "Group,Member,Member.Mobile,Member.EmailAddress,Status,MemberType,Role".
New: ClassDefinition.GenerateHTML.RequireReadOnly
to return a readonly form view.
New: Function TradingItem.RelateItems
to relate trading items with one another.
Fix: Article.StatusMessage
updated to remove "To view the [article] click here" when not published.
Fix: Administrator could not add a new user.
29 Apr 2021 12:44 PMUpdate 4.14.20
Fix: Found reference to code library based stylesheet in HTML editor which may cause problems with Google's algorithm for detecting malicious or unwanted software.
Fix: Object clean up in BusinessObject.GetPropertyValue
disposing primary objects, collections and application.
Fix: BusinessApplication.Item
when passing a file name.
29 Apr 2021 12:42 PMUpdate 3.19.30
Fix: Found reference to code library based stylesheet in HTML editor which may cause problems with Google's algorithm for detecting malicious or unwanted software.
24 Apr 2021 5:07 PMUpdate 5.2.0 Alpha
New: The following properties were created on the website and group objects to return published articles visible to the current user.
VisibleArticles
with filenamecontent
VisibleBlogPosts
with filenameblog
VisibleForumTopics
with filenameforum
VisibleGalleries
with filenamegalleries
VisiblePages
with filenametestimonials
VisibleTestimonials
with filenametestimonials
VisibleProducts
with filenameproducts
VisibleServices
with filenameservices
VisibleSubscriptions
with filenamesubscriptions
VisibleCourses
with filenamecourses
New: Filter functions on articles to match those in Article Views. These are created so the article views can be replaced without breaking the existing URLs.
FilterByCategory
FilterByTag
FilterByBrand
FilterByAuthor
FilterByCountry
FilterByState
FilterByRegion
FilterByIssue
New: The following property was created on the website object to return users visible to the current user.
VisibleUsers
with filenamedirectory
New: The following property was created on group objects to return current memberships visible to the current user.
VisibleMemberships
with filenamedirectory
New: Filter functions on the users and visible memberships to match those in Directory Views. These are created so the directory views can be replaced without breaking the existing URLs.
FilterByIndustry
FilterByCountry
FilterByState
FilterByRegion
New: You can filter a collection of items by any item property that has the attribute AllowFilter
set to true. This can be done by passing a name value pair in the URL. For example, /pages/template/website-default
will return the pages where the template is equal to "website-default". However, when passing the name value pair as a parameter, the parameter name must be the property name plus "Filter". For example, /pages?TemplateFilter=website-default
.
New: When specifying PageType=CollectionView
, PageType=ObjectView
or PageType=MethodView
in the URL, the system will NOT attempt to find a custom template specific to that collection, object or method but instead use the standard template (see below) if available otherwise the system will generate the view.
business-application
business-collection
business-collection-item
business-object
method
New: You can now customise the template for exceptions (errors). The system will look for a template called exception
and use that to display if found, otherwise will use the website default template.
New: Added response statuses BadRequest
, Unauthorized
and InternalServerError
when the appropriate exception was thrown.
New: You can output the URL response in HTML, JSON and now in XML and CSV as well. At this stage input is only via HTML (forms). You can also access these via:
BusinessObject.ToHTML
BusinessObject.ToJSON
BusinessObject.ToXML
BusinessObject.ToCSV
New: CSV, XML and now JSON can now be selected as the output format when export a collection.
New: The following have been deprecated:
BusinessCollection.ToXMLList
BusinessCollection.ToXMLValueList
New: Properties on business object.
BaseURLParameters
are the parameters which define the base business object. For example,Collection=Products
,Collection=Products&ID=121065
orPrimaryCollection=Products&PrimaryObjectID=121065&ForeignCollectionProperty=Categories
.CustomURLParameters
are the other parameters which customise the business object. For example,SearchText=widget&Page=3
.URLParameters
now includes both Base and Custom parameters. For example,Collection=Products&SearchText=widget&Page=3
RelativeURLPath
is the shortcut path to a business object. For example,products/
,products/widget/
orproducts/widget/categories/
RelativeURL
includes both the Relative URL and the Custom parameters. For example,products/?SearchText=widget&Page=3
New: The following custom parameters passed in the URL as name value pairs are now stored with the business object and passed back via any call to BusinessObject.URLParameters
or the new BusinessObject.CustomURLParameters
.
Properties
stored asBusinessObject.PropertyNames
Methods
stored asBusinessObject.MethodNames
Filter
stored asBusinessCollection.Filter
SearchText
stored asBusinessCollection.SearchText
Sort
stored asBusinessCollection.Sort
Columns
stored asBusinessCollection.ColumnNames
ItemsPerPage
stored asBusinessCollection.ItemsPerPage
Page
stored asBusinessCollection.Page
New: The following methods can be called via a URL. For example: /default.aspx?PageType=MethodView&Collection=Products&Method=ClearFilter
or /pages/clearfilter
.
ClearFilter
ClearSort
New: The method BusinessObject.GetHTMLBreadCrumbs
was created to be used in a template for a business object. Not only will it display the collection or primary object of the current object but also display filters on any collection in the trail.
New: Collection view design when PageType=CollectionView
or a collection does not have a template to display in.
New: CollectionClassDefinition.AllowNewItems
has been removed and is no longer applicable. Use AllowExecute
on the collection method AddNew
.
New: CollectionClassDefinition.AllowViewItems
has been removed and is no longer applicable. Use CollectionClassDefinition.AllowView
.
New: CollectionClassDefinition.DefaultFilterPropertyNames
will display in the filter menu in the collection view.
New: CollectionClassDefinition.DefaultSortPropertyNames
will display in the sort menu in the collection view.
New: CollectionClassDefinition.GenerateHTMLFilterMenu
will generate a filter menu based on one of the columns in a collection. For example, author on blog posts will return a list of authors with blog posts. Clicking on an author will return only their blog posts.
New: CollectionClassDefinition.GenerateHTMLFilterMenus
will generate multiple filter menu based on select columns in a collection. For example, on products you may include category, brand, supplier, price range.
New: Any property or parameter (ValueDefinition) can have a selection filter (not just ItemDefinition). For example, Country, State and Region or Year, Month and Published On.
New: You can now SetLockedFilter
on a collection which means the user cannot modify it. This is also the case if a filter is specified in the definition of a collection or a property or parameter which specifies a collection or item of a collection.
New: When searching for text in a articles collection the PlainTextContent
is also searched.
New: By default when a HTML property is edited the full toolbar will be displayed by administrators otherwise a minimal toolbar will be displayed.
New: You can now set the URL for check out. By default it will go to Request Billing Details.
New: Items that have sub-items such as Menu Items, Groups and Categories are now sorted by default by the parent's sort followed by the position and title. This was done by creating a custom column on each table which returns a string for the sort.
New: Property User.NameIncludingNickname
in the format "John (Legend) Mitchell" :).
New: BusinessObject.GetPropertyValue
will now return a method's default parameter value. For example, on an DefaultRating = Article.GetPropertyValue("SubmitReview.Rating")
.
New: The following methods have been added Common.GenerateRandomString(Length, [CharacterSet])
and Common.IsNumericType(Value)
.
Common.GenerateRandomString(Length, [CharacterSet])
Common.IsNumericType(Value)
Common.GenerateHTMLPageControls(URL, Items, Page, ItemsPerPage, DefaultItemsPerPage)
Common.GenerateHTMLSearchControl(URL, [SearchText], [Title], [Placeholder])
New: Course.CreateMenuStructure
whichs creates a menu structure of the modules and activities.
New: CourseActivity.Start
and CourseActivity.Complete
which mark the activity with status of in progress or complete.
Fix: To MyStatus
on Courses, Modules and Activities.
Fix: Several issues in the new process path.
Fix: Error in Group.ProcessSubscription
.
Fix: Output error in Common.GenerateHTMLVideo
.
Fix: Now allow users to delete their stored payment methods.
Fix: Class definitions did not include inherited custom properties and methods.
Fix: Email recipient could not open email in browser.
Fix: Custom collections were not found if wrong case or missing custom prefix (underscore).
Fix: When saving a new business collection item and the collection is already disposed.
Fix: Clicking a menu item will only open in new windwow when the URL protocol is http or https.
1 Feb 2021 5:50 PMUpdate 4.14.19
Fix: Error trying to update the base path when item is added/updated but the collection is disposed.
28 Jan 2021 12:57 PMUpdate 5.1.3 Alpha
New: Added courses to article view and set up configuration settings.
New: Added NotEnrolled
status to property MyStatus
on courses, modules and activities.
New: Property Group.Courses
.
Update: Moved pages used for method views to templates.
19 Jan 2021 7:30 PMUpdate 4.14.17
Fix: Application.GenerateHTMLMenu(MenuItem, Depth, IncludeURLWithSubMenus)
did not include the URL menus with sub-menus when requested.
19 Jan 2021 7:20 PMUpdate 5.1.2 Alpha
Fix: Error in new process path when parameters attribute passed in URL.
17 Jan 2021 2:42 PMUpdate 4.14.16
Fix: Error when confirmation message included an apostrophe.
Fix: When an attachment is deleted the file is deleted if it is in the item's local folder.
17 Jan 2021 1:17 PMUpdate 5.1.1 Alpha
New: Base styles.
Fix: After adding a new item via BusinessCollection.AddNew
the system now redirects back to the collection view.
12 Jan 2021 8:51 PMUpdate 5.1.0 Alpha
New: Learning management system: Courses, Modules, Activities, Enrolments and Results. Courses inherit trading items so together with the order management systems they can be ordered and paid for creating an enrolment. A course can have many modules which are used to group activities. Activities are currently simply video tutorials but future development will include assessments or other activities to be determined. A student (user) must be enrolled in a course before they can start it. Results are currently only record the status of the activity (in progress or completed). Future developments may include assessment results.
New: Articles (pages, blog posts, testimonials, courses, etc.) can have a video.
Fix: Adding a new item with a file/image did not upload the file/image to the correct folder.
6 Jan 2021 4:50 PMUpdate 5.0.1 Alpha
Fix: When resetting the parent membership expiry also reset the auto renew in child memberships.
Fix: Allow edit on Membership.AutoRenew
.
6 Jan 2021 3:51 PMUpdate 5.0.0 Alpha
New: Currently under construction is a new way to process the path (URL). When Application.ProcessPathVersion
is set to 2, new shortcuts and template selection for objects and methods are processed via this new method. See Proposed New Shortcuts and Template Selection. Currently only some paths for HTML and JSON output are available with XML and CSV output in future versions.
New: BusinessObject.ToHTML
will return HTML form based on the current user access rights to the object and its properties and methods.
New: BusinessObject.MethodToHTML(Method)
will return HTML form based on the current user access rights to the object's method and its parameters.
New: BusinessObject.ToJSON
will return JSON based on the current user access rights to the object and its properties.
New: Object and method view form design when PageType=ObjectView
or PageType=MethodView
and Application.ProcessPathVersion
set to 2.
New: Application.GenerateMembershipRenewalOrders
- When Membership.AutoRenew
is set, an order will be generated Membership.Subscription.AutoRenewDue
time period before it expires. If the member has stored payment methods then the system will attempt to take payment for the subscription and process the renewal otherwise an invoice is sent to the member.
17 Dec 2020 5:00 PMUpdate 4.14.15
New: NameValueCollection.Insert
inserts an entry to the collection at the index.
Fix: LinkingForeignCollectionDefinitionAttribute.ConvertValue
returning invalid collection.
Fix: GenerateHTMLVideo
output of YouTube iframe.
15 Dec 2020 6:01 PMUpdate 4.14.14
Fix: BusinessCollection.FilterOnIDOrFileNames
returning error.
Fix: FormatToJSONString
added additional character replacements.
10 Dec 2020 5:24 PMUpdate 4.14.12
Fix: BusinessCollectionItem.DefaultRange
not returning correct value when custom property is the range property.
Fix: GenerateHTMLVideo
updated YouTube URL.
7 Dec 2020 5:11 PMUpdate 4.14.11
Fix: Cart items doubling.
Fix: FutureOrder.Confirm
returning error.
Fix: BusinessCollection.ToString
not removing custom prefixes when no items or 1 item.
Update: Updated Administration Menu to remove unwanted items and add tags, tag sets to product catalogue and incomplete orders to order management.
5 Dec 2020 12:33 PMUpdate 4.14.10
Fix: MIGS Offsite Payment Method returned invalid hash code due to a change in the return URL.
Fix: CartItems.FreightPrice
invalid when delivery method set to nothing.
3 Dec 2020 3:12 PMUpdate 4.14.9
Fix: Application.Reset
not returning to previous page.
Fix: GenerateHTMLForm
on a new business collection item had invalid action attribute.
Fix: GenerateHTMLForm
on a business object or method now will show properties/parameters when allow view or edit.
Fix: Default delivery method was not set to cheapest due to a sorting issue.
6 Nov 2020 1:34 PMUpdate 4.14.7
New: Set the configuration setting GoogleAPIKey
to enable the system to use Google's Geocoding API to get the GEO location of an address or the address at a GEO location.
New: Additional attributes added to the form, labels and inputs generated by GenerateHTMLForm
for both business objects and methods to help with scripting and styling.
Fix: Error when running Organisations.SetMissingResidingGeolocations
.
Fix: More descriptive error returned from script errors.
31 Oct 2020 2:56 PMUpdate 4.14.6
New: Additional attributes added to the form, labels and inputs generated by GenerateHTMLForm
for both business objects and methods to help with scripting and styling.
Fix: If definition attributes ImageURL.MaximumWidth
and ImageURL.MaximumWidth
are both not set then they will be defaulted to 1920 and 1200 respectively.
Fix: Definition attributes Decimal.MaximumValue
now set to the maximum value of the current data type rounded down to the Decimal.RoundToValue
.
Fix: Type defined attributes on definitions now set in inheritance order. For example, HTML.EditorLines
used before MultipleLineText.EditorLines
.
Fix: Error in LinkingForeignCollection.GenerateHTMLControl
.
Fix: Multiple error/info messages will appear in form view when returning from submission.
21 Oct 2020 1:53 PMUpdate 4.14.5
New: The GenerateHTMLForm
method now adds a name attribute to each label for specific styling.
10 Oct 2020 1:10 PMUpdate 4.14.2
Fix: Error when saving an object or executing a method with a Business Collection Item as a parameter.
9 Oct 2020 2:52 PMUpdate 4.14.1
Fix: Application.CheckForBouncedEmails
memory consumption.
Fix: When email bounced due to 550 Maximum line length exceeded it was considered a hard bounce and marked the recipient's email status as bouncing. Now marked as invalid message.
7 Oct 2020 5:00 PMUpdate 4.14.0
New: Renamed FileURLDefinition.FileName
to FileURLDefinition.SaveAsFileName
.
New: Definition.FileName
which will be set to the definition name formatted to a file name unless otherwise set. For example, the BlogPosts
collection file name by default will be blog-posts
but you could to set it to just blog
.
New: Application.Item(IDOrFileName)
will return a page, group or collection matching the ID or File Name passed in.
New: Collection.Item(IDOrFileName)
will return an item matching the ID or File Name passed in.
New: Can now export a foreign collection. It will export the collection converted to a string which unless change in the definition will return the number of items. For example, 4 Order Items.
New: Email.SendNow
will now check for prior bounced mail before sending.
Fix: Email.SendNow
returned an error of unknown OrderID.
Fix: Broken links in email campaign.
Fix: Domain redirection.
Fix: Discount pricing selection on trading items.
Fix: Can remove stored payment method from future order.
Fix: To default stored payment method for future order.
Fix: Selected Payment Method saved to session.
Fix: Default email settings saved to session when Sending Epage.
Fix: Current Automated Task settings saved to session for Schedule New Automated Task.
Fix: User dashboard links.
12 Sep 2020 5:00 PMUpdate 4.13.1
New: Renamed User.Status
to System Access Status, User.UserType
to System Access Level, Membership.Status
to Group Access Status and Membership.MemberType
to Group Access Level.
Fix: Stopped auto-fill when asked for new password.
Fix: If an object is not accessible to a user none of the methods are either.
Fix: Order.RequiredOn
was not automatically being filled when bookings made.
Fix: SendEmail.From
is now limited to the email address of the user logged in or the administrators email address.
Fix: Allow logged in member view their memberships with any status.
Fix: Moving an item to another type.
Fix: Error when displaying a users future orders.
Fix: Error when sending order emails.
1 Sep 2020 5:00 PMUpdate 4.13.0
New: Groups
have been classified into Organisations
and Non Organisation Groups
. Organisations have additional information such as addresses, contact details and bank account details. Some types of organisations may be clubs, chapters, leagues, etc.
New: Membership.Role
has been added.
Fix: For guest checkout and processing payments and actioning orders.
Fix: Unable to select certain properties when filtering a collection.
23 Aug 2020 6:53 AMUpdate 4.12.1
New: Application.Reset
now asks if you want to reset your session or the application. If application is chosen and multiple processes are used then then the application pool is restarted.
New: Items.RefreshAttachments
will refresh the attachments for every item in the collection. In order to use this function you must Allow Execution for the collection you want to run it on. For example, in configuration settings set Products.RefreshAttachments.AllowExecuteExpression
to Application.AdministratorIsLoggedIn
Fix: ServiceTime.Reschedule
updates start and finish times in each of the bookings.
Fix: BusinessApplication.GetDefinition
not returning methods or paramater definitions.
19 Aug 2020 5:06 PMUpdate 4.12.0
New: The application can now run on multiple processes. In order to use multiple processes you need to do the following:
- Start the ASP.Net State Service on the server and make sure you set Startup Type to Automatic in case the server is restarted.
- Add
<sessionState mode="StateServer" />
to the<system.web/>
section of web.config. - Set Maximum Worker Processes in the application pool settings in IIS Manager or via your hosting control panel.
Fix: Membership emails now filtering by member type and status correctly.
11 Jul 2020 6:07 PMUpdate 4.11.3
Fix: Editing order items slow to load.
Fix: Error displaying the payment order number.
Fix: Error loading foreign collection not previously loaded.
Fix: To avoid loading base tables in full.
Fix: Error retrieving session value from table after table reset.
7 Jul 2020 12:46 PMUpdate 4.11.2
Fix: Custom pages for order methods where not showing.
Fix: To add booking to cart.
Fix: To order item description for bookings.
4 Jul 2020 5:36 PMUpdate 4.11.1
New: Default dashboard items "Order Summary" and "Payment Summary" have new default time periods.
Fix: Error when redirecting from alias domains and non-ssl to ssl.
Fix: Error when copying items from one type to another.
Fix: Error when checking availability on service times.
Fix: Trading Entity stopped from deleting order once actioned.
Fix: Stopped reorder when contains bookings.
Fix: Stopped reorder when contains bookings.
Fix: Pages with multiple forms could not validate.
Fix: Forms controls that were auto-filled were not validated.
Fix: Auto-fills booking information from Trading Entity if not any set.
8 Jun 2020 3:45 PMUpdate 4.11.0
New: Recurring orders have now been separated from the last order to enable price changes. You can now list future orders separately from confirmed orders.
New: Can now move a business collection item from one collection to another essentially keeping all common properties and setting defaults to new properties. For example, a Future Order to the Confirmed Orders collection.
New: When a order is placed for multiple bookings for a service time, an order item is created for each booking storing all the relevant information in newly created properties. This also sped up the process when an order is actioned and eliminates the need to redirect to another URL to process the bookings avoiding too many redirection errors.
New: When booking you can now specify a start and finish time within the service time.
New: CheckAvailability
for bookings will now check the time block between the start and finish.
New: An email address can be stored against each booking allowing the attendee to be personally notified. This is especially useful if it is a guest checkout. By default the booking persons email address will be stored on each booking when booking for multiple attendees but can be changed if they wish to personalise.
New: Notes can be stored against a booking. Any emails sent to the attendee will be automatically noted.
New: Can now set maximum number of items a discount price can be used per customer and/or overall. For example, 1 per customer and 20 overall.
New: Can now set discount prices to trading items for a specified recurring period (per order, per week, per month, etc). For example, 1 per customer per order, 2 per customer per week or 10 overall per week.
New: Can now set discounts to trading items for a fixed specified period. For example, between 1 Jun 2020 to 30 Jun 2020.
Fix: Can now only receive member discount prices for booking times during the subscription period.
Fix: BusinessCollectionItem.ChangeRank
when the ranking property is a custom property.
Fix: ListArticles
when passing an article type.
9 May 2020 12:53 PMUpdate 4.10.1
Fix: Application.ConfigureComponents.DefaultUserCountry
was not been set correctly.
29 Apr 2020 12:30 PMUpdate 4.10.0
New: Can now select one or more articles (blog posts, products, etc.) to merge with a snippet and create an email for marketing.
Fix: Unable to sort Article and Directory Views.
Fix: Copying an article will no longer copy the PublishedOn
and ArchivedOn
dates.
Fix: Freight based on price is now based on whole order rather than just deliverable items.
Fix: Error when changing a quantity of a cart item.
Fix: MIGS Payment Method upgraded to use TLS 1.2 security protocol.
27 Mar 2020 4:02 PMUpdate 4.9.5
Fix: Order.MakePayment
was not showing.
Fix: Due to Google's algorithm change on how it detects malicious or unwanted software, the library based scripts and stylesheets have been moved locally temporarily until the resolve the issue.
27 Mar 2020 4:00 PMUpdate 3.19.29
Fix: Due to Google's algorithm change on how it detects malicious or unwanted software, the library based scripts and stylesheets have been moved locally temporarily until the resolve the issue.
23 Mar 2020 5:47 PMUpdate 4.9.3
New: Bookings can be set to recur.
Fix: When setting a StoreSessionOnly
property updating the workspace is not necessary.
26 Feb 2020 4:00 PMUpdate 4.9.1
Fix: Could not add PayPal payment method due to error with Enable Storage.
25 Feb 2020 4:00 PMUpdate 4.9.0
New: Can now book a time within an available time period. For example, say you have available times Mon-Fri 9am-5pm. You can take a booking for say an hour within the time period.
New: Can now filter recipients for an email campaign by their "Last Logged In Age".
22 Jan 2020 1:06 PMUpdate 4.8.0
New: When updating/upgrading the version is returned in the URL.
New: Parameter IncludeURLWithSubMenus
added to GenerateHTMLMenu
which defaults to false, which means it will remove the URL when outputing if the menu item has a sub menu. This is necessary for touch screens.
New: A form's action on a template or article is parsed for included expressions and evaluated and replaced.
Update: Various changes to comments with sub-comments including:
- The default format of a comment is the date submitted on.
- Sub-comments column shown when listing comments.
- Rejecting deletion of a comment with sub-comments.
Update: Invoice will show the promotion if there is one and even if the discount is zero.
New: Collection.FilterOnSearchText
adds a search text filter to the collection and returns the collection.
Fix: Collection.FilterOnSQL
now adds the filter to a pre-existing filter.
Fix: FormatDuration
now formats zero.
21 Nov 2019 10:52 PMUpdate 4.7.0
New: The MaximumSize
of FileURL
properties have now been defaulted to web.config's httpRuntime.maxRequestLength
.
New: With debug on, errors returned from the server when a form is submitted will be logged.
Update: You can no longer set path names for files, images, videos, audios, scripts and stylesheets.
Update: Page load speed enhancements.
Fix: Concurrency error will no longer be applicable as the last to save will overwrite other changes.
Fix: Deleting a record did not properly delete related items and attachments.
27 Oct 2019 12:15 PMUpdate 4.6.3
Fix: Recurring orders will only be generated from completed orders.
Fix: Error when viewing connections.
3 Oct 2019 4:30 PMUpdate 4.6.1
Fix: There was no type on a method definition return value when inspecting.
27 Sep 2019 5:24 PMUpdate 4.6.0
New: You can now group tags into tag sets. GenerateHTMLTagsListForArticleView
will display the list of tags groups by tag sets. The tag set file name will be included in the tag short cut path by default. This can be changed in Configure URLs.
Fix: Brand.FileName
now not editable by default. The file name is created from the Title.
Fix: Brands can now be positioned.
Fix: Order.MakePayment
will now correctly skip adding payment depending on parameters passed.
12 Sep 2019 9:47 AMUpdate 4.5.1
New: BusinessMenuItem.GenerateSubMenuHTML
now wraps the title in a span tag for ease of formatting.
Fix: Application.RenameObjectFileName
was not correctly creating redirects to the correct path in some circumstances.
24 Aug 2019 11:02 AMUpdate 4.5.0
New: Can now review an article which effectively adds a comment and rating.
New: Application.GenerateHTMLSearchControlForArticleView
and Application.GenerateHTMLSearchControlForDirectoryView
now can be passed an ID, placeholder text and button HTML.
Fix: Updated templates to use backend.2.1.js
which fixes delay in redirect and old file locations.
Fix: Updated templates to use backend.2.1.css
which fixes old file locations.
Fix: Error when loading an SQL View.
Fix: Error when sending Membership Emails when the Group ID was 1000 or more.
Fix: Application.MoveFile
when downloading via a URL will use the destination file name in the temporary path as URL file name may not be suitable.
Fix: Error when running BinarySignatures.GetMimeTypeFromContent
.
Fix: Error when running Collection.Compute
on a property in an inherited collection.
20 Aug 2019 11:44 AMUpdate 4.4.3
New: Can now select the depth of menus Application.GenerateHTMLMenu
and Application.GenerateHTMLSelectMenu
return.
New: If allowed, a user can now select no Order.MakePayment.Method
to not make a payment at the time and send the invoice.
1 Aug 2019 1:50 PMUpdate 4.4.2
Fix: Simplified the subscription processing when an order is actioned.
23 Jul 2019 1:02 PMUpdate 4.4.1
Fix: Fat Zebra payment gateway requires a unique reference for each transaction.
Fix: ConvertToItem
when passed a negative integer (used for new item IDs) was returning nothing instead of the new item.
Fix: Error when passing a URL with parameters to MoveFile
, MoveImage
and MoveVideo
.