Update 5.42.0

New: Inology.Core.NameValueCollection now implements iDictionary.

New: Application.UserTimeZone now gets the time zone from the IP info of the client IP address when possible, otherwise uses UserCountry.DefaultTimeZone.

New: PageURL, PageLanguage and ApplicationTitle are now included as merge properties.

Fix: Application.GetDefaultTemplate did not find correct template for custom business objects or methods.

Fix: Application.GenerateMembershipRenewalOrders regenerated an invoice in certain circumstances due to time zone conversions.

Fix: Application.ConvertPageTypeURL did not return correct path in certain circumstances.

Fix: Error on output when a property or method returned HTML that already had a DTD.

Update 3.21.0

New: One Time Passcode (OTP) has been added as a new method of Human Verification. If selected as the method, a [Request Code] button will be show and when clicked will request a passcode from the server to be sent to the user's email address.

Update 4.20.0

New: One Time Passcode (OTP) has been added as a new method of Human Verification. If selected as the method, a [Request Code] button will be show and when clicked will request a passcode from the server to be sent to the user's email address.

Update 5.41.1

Fix: Conversion failed from old URL format to new in some instances.

Fix: To base 3.2 stylesheet for forms layout.

Update 5.41.0

New: One Time Passcode (OTP) has been added as a new method of Human Verification. If selected as the method, a [Request Code] button will be show and when clicked will request a passcode from the server to be sent to the user's email address.

Fix: Very long URLs in a collection view would push the table beyond 100% width. A style has been added to break the URL anywhere so it will wrap.

Update 5.40.3

Fix: Automated tasks not logging in as the user before running causing an access denied error.

Fix: Access denied for blog, forum, etc. when management system not installed. This was changed to make them visible to the public even if not installed. This way a developer can add blog posts but no one else can.

Fix: Service.VenueTimeZone now defaulted to the base time zone.

Fix: Service.VisibleTimes were showing all times, not just those visible for current user.

Fix: When adding a trading item, it would not proceed to check out.

Fix: Rename default templates for articles, etc.

Fix: Various base stylesheet changes.

Update 5.40.2

Fix: When resetting password for new user that already has a user record on the database.

Fix: When the same user logs in on similar devices at the same time.

Fix: To include article file name in body classes.

Fix: To star rating now uses star icons.

Fix: To subscribe new user logs them in.

Fix: Processing order failed on date due to time zones.

Fix: To formatting of default page title for methods.

Fix: Default max height for images from 1200px to 1280px.

Fix: Various fixes to base scripts and stylesheets.

Update 3.20.2

Fix: All forms sent from admin email address with reply to the EmailAddress property.

Update 5.40.1

Fix: Sites.Check and Sites.Scan not completing all in one pass.

Fix: To home page displaying as Website.About when cached in Sites.

Fix: To BusinessCollection.CreateFilterExpression when multiple values passed.

Update 5.40.0

New: Date/time properties are now stored in UTC time and are displayed in the User's time zone. However, there are exceptions. For example, Date of Birth is stored and displayed as is, Order and Payment dates are generated and stored and viewed in the Base Time Zone. Service times are displayed in the Venue Time Zone if it has been set for the service.

New: Each country now has a default time zone. This is used as the default for a user.

New: A user can change the time zone if it is not what has been defaulted for them. https://yourwebsite.com/setusertimezone.

New: You can now set the time zone for a venue on a service. This means any times will be displayed in the venue time zone no matter what the time zone is the user is in.

Fix: To home page caching in Sites.

Update 5.39.1

Fix: When a user who initially signed up on another device or via a authentication provider returns to login they are redirected to verify and reset password.

Fix: Access denied when displaying status message after Group.ProcessSubscription.

Fix: When accessing website root (home) with parameters would display Website.About.

Fix: When validating email addresses and phone numbers when blank.

Fix: CollectionItem.RelativeURLFilePath included filter path for base collection. This caused an invalid Canonical URL

Fix: Collection.GetHTMLBreadCrumbs included filter path for base collection.

Fix: Various script and stylesheet updates, maily re the slider.

Update 5.39.0

New: A user can now create an account and login using an authentication service. In order to do that, you must sign up with one or more of the following providers and register the site.

  • Apple
  • Google
  • Microsoft
  • Amazon
  • Facebook
  • LinkedIn

Update: The default password strength has been increased to Strong.

Update: Base scripts and stylesheets.

Fix: Block cross-site form spam.

Update 5.38.0

New: A user can now create an account without using a password, if the browser and device they are using supports Web Authentication. This uses bio-metrics like face or thumbprint recognition if available.

New: The system detects the browser, device type and whether the a mobile device and creates a record of that device when a user signs up or logs in. This helps determine if a user automatically logs in on that device. The user can delete devices they are no longer using for login.

Fix: Block cross-site form spam.

Update 4.19.7

Fix: Block cross-site form spam.

Update 3.20.1

Fix: Block cross-site form spam.

Update 5.37.1

Update: Developer and Powered By images.

Fix: Fix to base styles fore color.

Fix: When importing with an existing file name, it was not using the imported file name.

Fix: When adding a new industry or tag set, checking for exisitng file name could be invalid.

Fix: To definition inspector styling.

Update 5.37.0

New: Client side styles now allow for dark and light modes.

New: The system will look for the default page image in /images/defaults/ with a name matching the definition file name of the object or method being merged. If not found it will find a match to inherited objects then finally to the application default image. For example, if the object being merged is the collection blog posts and definition file name is blog then the system will look for the following:

  • /images/defaults/blog.png
  • /images/defaults/blog.jpg
  • /images/defaults/articles.png
  • /images/defaults/articles.jpg
  • /images/defaults/website.png
  • /images/defaults/website.jpg

New: A user can now be added with just an email address.

Fix: To the BusinessCollection.RelativeURLPath generation with filter expressions.

Fix: When a Template.PageImage included an expression it wasn't merged.

Fix: Fix to client side scripts and stylesheets.

Update 5.36.0

New: Base styles and scripts developed using latest language standards. In order to use these you will need to change your template stylesheets and scripts. Besides external stylesheets and scripts you should only need to add a single .scss such as styles.scss. This should include @use statements to include the other stylesheets required. Same goes for scripts. You should only need one javascript module such as main.js and that will have import statements for other modules to include.

New: New property added Application.PageImage. This is the path of the default image for the page being requested. This can be also be set in the @ Page directive of an aspx file as you can with Application.PageTitle and Application.PageDescription.

New: New property Template.Image. This is the path of the default image when using this template for the page being requested. You can include an expression just like you can for Template.Title and Template.Description.

New: New attributes added ClassDefinition.PageTitle, ClassDefinition.PageDescription and ClassDefinition.PageImage. If no expression is supplied then by default the attributes will return the BusinessObject.Title, BusinessObject.Description and BusinessObject.Image property value if they exist on the business object.

New: When generating the title meta tag the system will use Template.Title if one exists, ClassDefinition.PageTitle (i.e. BusinessObject.Definition.PageTitle(BusinessObject)) if value returned, otherwise uses Application.PageTitle. Same goes for description meta tag. You can also access these values from the merge object as PageTitle, PageDescription and PageImage.

New: You can use PageTitle, PageDescription and PageImage in expressions in your HTML templates as these values will exist on the merge object when merged.

New: Keywords meta tag is no longer output.

New: You can now use JavaScript modules. For modules only, when minify is specified the path will be to a min/ subfolder rather than the extension .min.js. The minified files of the modules will be generated when requested the first time. If the main javascript module changes the subfolder is deleted in order for them all to be regenerated upon request.

New: SASS compiler to allow for latest standards.

New: CSS and Javascript minify compiler to allow for latest standards.

New: Application.VisibleServiceTimes default file name has been changed to calendar.

New: BusinessObject.GetFileURLPropertyPathAndFileName(PropertyName) which will return the full relative path to the file.

New: Default templates are chosen by the definition name of business objects and methods rather than the definition file name. For example, the template for BlogPosts now has to be blogposts not the definition file name blog.

New: When importing data with files, those files can be in the root of the zip or now match the base path. For example, say you export blog posts from one site and import them into another (both on this platform). You can now zip the blog folder and include that in the import.

New: When a URL is created for a collection that has filters, it will now include a file path for each filter (in most cases) rather than URL parameters.

New: Definition.CreateFilterMenu now generates with relative filter paths (in most cases) rather than URL parameters.

New: CollectionClassDefinition.GenerateHTMLFilterMenus now has an optional parameter IncludeSearchControl.

New: DefaultHomePageName now defaults to home rather than default.

Update: Modified generic output of BusinessObject.ToHTML and BusinessObject.MethodToHTML to allow for the new base styles and scripts.

New: SitePublicURLs.Scan will scan the cached content of the selected internal public URLs for new references and add them to public URLs.

New: SitePublicURL.Check will check and update cached content when different.

New: SitePublicURL.ViewCache to view the latest cached version of this URL.

Fix: Site.Clean now removes all URLs without a site reference with follow.

Fix: SetSitePublicURL now only adds the URL when there is a site reference with follow.

Fix: To who can execute ConfirmOrder.PayByOffsitePaymentMethod.

Fix: To the canonical URL.

Update 5.35.0

New: You can now add Definition.StyleClasses to any class, property, method or parameter. Those classes will be added to the HTML output class attribute.

New: Any return value from a method will be converted and output in the current response format. ie. JSON, XML, CSV or HTML.

New: BusinessObject.GetPropertySelectOptions(Path, GroupFilterValue, SearchText, MatchStart) returns object array of value, text, items (sub options if any).

Fix: When calling the method BusinessCollection.AddNew and inheritance is required.

Fix: HTML output when returned from a method.

Update 5.34.0

New: The system detects two new prepends to a URL path. These, along with no prepend, determine how the path is routed and whether or not custom view templates are used. The three modes are:

  • DBMS: When prepending dbms/ to a URL, as in https://yourdomain.com/dbms/blogposts/, the system will route the path via object and method definition names and DOES NOT use custom view templates.
  • Preview: When prepending preview/ to a URL, as in https://yourdomain.com/preview/blogposts/, the system will route the path via object and method definition names however DOES use custom view templates.
  • Custom: When nothing is prepending to a URL, as in https://yourdomain.com/blog/, the system will route the path via object and method file names and DOES use custom view templates.

New: You can now add SCSS and SASS stylesheets to a template. They will be compiled to CSS when changed and first loaded.

New: When a user subscribes to a group via Group.SubscribeNewUser which does not require payment, they are no longer logged in when doing so. If they later come back to register the system detects the user has not logged in and will allow them to register is if a new user.

New: BusinessCollection.FilterBy will ask for a filterable property then proceed to BusinessCollection.AppendFilter which has advanced filtering options for the selected property and when submitted will append it to the collection filter.

New: BusinessCollection.EditFilter will allow developers to edit the raw filter SQL.

New: BusinessCollection.AppendSort will ask for a sortable property to append to the collection sort.

New: BusinessCollection.EditSort will allow developers to edit the raw sort SQL.

New: BusinessCollection.EditColumns will allow developers to edit the comma-separated list of column names.

New: Session values can now be set for default values for method parameters.

New: BusinessMenuItem.PrependSubMenuItem.

New: Each component has it's own configuration settings.

New: Deprecated code now removed. This will make upgrading from version 4 quite difficult.

New: URLs including PageType parameter have been converted throughout the site to filename URLs. For example, /default.aspx?PageType=MethodView&Collection=Users&ID=555555&Method=SubscribeToGroup becomes /dbms/users/555555/subscribetogroup/ and /default.aspx?PageType=CustomView&Collection=BlogPosts&ID=151515 becomes /blog/151515/.

Update 5.33.0

New: Site.ViewMap which calls sitemap.xml for the select site.

New: SitePublicURLs.Check allowing you to select multiple at once to check.

Fix: SitePublicURL.ContentType was set to XML instead of HTML in certain circumstances, causing those pages to be excluded in the site map.

Fix: BusinessCollectionItem.FileName was not filterable or sortable even though in table.

Update 5.32.0

New: LinkingForeignCollectionDefinition.LinkingPropertyFilterExpression will append the supplied filter expression to the linking property collection filter expression.

New: LinkingForeignCollectionDefinition.LinkingPropertySortExpression will override the linking property collection sort expression with the supplied sort expression.

Update: When importing and Match Item By is set to FileName the system will convert it to a URL file name before matching.

Fix: BusinessCollection.FilterOnIDFileNameOrUniqueValues when supplied with empty string failed.

Fix: ItemDefinition.GenerateHTMLControl for calculated properties.

Fix: Path access denied when posting an email form in certain circumstances.

Fix: When posting an email form it now redirects directly when no success message supplied.

Fix: When posting an email form it now reloads form values when displaying success message.

Update 5.31.4

Update: Update the blog ping services.

Fix: Read only properties that were read from the database were not filterable or sortable.

Update 5.31.3

Fix: Error in Payment.AllowRefund when payment method was not a gateway payment method.

Update 5.31.2

Fix: Uploading of files where the property's base path did not end with a forward slash.

Fix: Application.SendRequest linked or attached files sometimes missing.

Fix: Application.SendRequest attached data file included values formatted for HTML.

Fix: Calculated properties by default have no repository and hence by default are not allowed for filtering and sorting.

Update 5.31.1

Fix: Error in BusinessCollection.Import when an item property unique name could not be found and that name needed to be HTML encoded.

Update 4.19.6

Fix: Fix: There is now no limit to the number of different cart items that can be added to a cart.

Update 5.31.0

New: BusinessCollection.Import.AttachedFiles takes a compressed folder (zip) of files to import. The property value in the imported list (csv, json or xml file) must match the file path and name in the zip. The import can be rerun (with matching) with a different compressed folder of files.

New: When sending emails from the email marketing system, attributes width, height, hspace, vspace and align will be added if matching style exists to IMG tags for backwards compatibity when viewing in Outlook.

New: Service.CreateEmail.ExcludeUsersAlreadyBooked parameter added and if true will add a Merge Filter to the Email.

New: ServiceBookingEmails which merges with bookings. For example, a thank you for attending email.

Fix: There is now no limit to the number of different cart items that can be added to a cart.

Fix: Cancelling membership not setting expiry correctly.

Fix: Running automated tasks returned access denied.

Update 4.19.5

Fix: Updated the Human Verification control for forms.

Fix: Changes to backend.2.1.css to fix search box.

Update 5.30.4

Fix: RSS feed main title and link were incorrect.

Fix: BusinessObject.GenerateJSON and BusinessObject.GenerateXML outputs were modified to include Definition and ToString for every object.

Update 5.30.3

Fix: Security Violation error when processing a payment via SecurePay.

Fix: Email form now redirects correctly.

Fix: Foreign collection visible even though allow view was false.

Update 5.30.2

Fix: To OffsitePaymentMethods using onsite iframes.

Fix: MembershipEmails when filtering by status.

Update 5.30.1

New: CourseActivity.HasPreviousActivity and CourseActivity.HasNextActivity.

New: When CollectionDefinition.EditorLines is set to zero the control height is set to auto-height.

Update: base-3.2.css styles updated for collection, object and method views.

Update: Defintion Inspector styling updated to make it easier to find properties and methods.

Update: Validation on credit card numbers.

Fix: A property of type file that is relative and can be uploaded was clearing the property when no new file selected.

Fix: Submit and Save returning incorrect values.

Update 5.30.0

New: Stripe Payment Gateway has been integrated and ready for use. There are 2 modes Stripe Onsite which collects credit/debit card info on your website and Stripe Offsite which uses an iframe on your site and supports many payment methods. Some payment methods may not be processed immediately and may require reconciliation with Stripe. Login to your Stripe account to activate those you want to accept. To avoid having to reconcile select only payment methods where Confirmation = Immediate.

New: The system can now refund payments and sometimes part payments depending on payment gateway integrated. SecurePay allow full payment only while both Stripe integrations allow full or part payment. This must be enabled under Payment Methods.

Fix: The system will not action an order until it meets the payment terms calculating the balance from only confirmed payments (not requiring reconciliation).

Fix: When API called from external application.

Fix: When viewing a foreign collection from an inherited primary object.

Fix: Saving an object did not alway show saved results before redirecting.

Fix: Returning relative WebAddress was prefixing absolute path even if already there.

Fix: Application.GetClassDefinition when case not the same. For example, StoredPaymentMethods and storedpaymentmethods.

Fix: Styling in Definition Inspector.

Update 5.29.0

New: API Key is required for posts from external applications. Add an External Application to get an API Key to use with that application.

New: Once a human has been verified the system will store a cookie, if cookies enabled, indicating that, otherwise will store in the session. This means the user does not have to repeat the verification once they have been verified.

New: PageType=EmailForm has been updated and integrated into Process Path version 2.

New: Additional validation of posted images min and max width and height.

New: Adding class="marquee" to an element will create an infinite scroll effect.

New: Added Fonts folder to file manager for developers.

Update 5.28.2

Fix: ServiceTime.BookUsers now asks for any optional extras that may be available (Options1 - Options5 on Service). By default, if there are options available then the number of users is locked to 1 as each user may require different options.

Update 4.19.4

Fix: ServiceTime.BookUsers now asks for any optional extras that may be available (Options1 - Options5 on Service). By default, if there are options available then the number of users is locked to 1 as each user may require different options.

Update 5.28.1

Fix: To requests that return JSON will now always return an object.

Fix: To scripts in base.3.2.js.

Fix: To styles in base.3.2.css.

Update 5.28.0

New: [Submit And Stay] button on system generated forms. By default ClassDefinition.SubmitAndSaveDisplayName is "Save & Stay" and MethodDefinition.SubmitAndSaveDisplayName is nothing which means it won't display unless set to something.

New: StylesheetDefinition and ScriptDefinition.

New: StylesheetDefinition, ScriptDefinition, XMLDefinition and JSONDefinition properties are displayed in an editor with colour coding.

New: GenerateHTMLDropDown generates a dropdown with a fieldset of radio buttons if single-select or checkboxes if multi-select.

New: GenerateHTMLSelect and GenerateHTMLFieldset now have an additional properties NoValueText which is what is displayed when there is an option with no value.

New: base.3.2.js replaces base.3.1.js and backend.2.1.js.

New: base.3.2.css replaces base.3.1.css and backend.2.1.css.

Update 5.27.0

New: API can now accept a post: you can use the same URL commands as per standard HTML requests. When posting data specify the format via the HTTP header Content-Type (see post MIME types below). You can specify the format you want returned in the HTTP header Accept (see accept MIME type below). You can also specify the returned format in the URL. For example, /json/tags/, /xml/tags/widgets/ or /csv/categories/.

  • application/x-www-form-urlencoded - post only
  • multipart/form-data - post only
  • text/html - accept only
  • application/json - post and accept
  • application/xml - post and accept
  • text/csv - post and accept

New: The system now creates a user access token for the device/agent they are logging in via. To retrieve the access token via API post the UserName and Password to /getuseraccesscode/. To use the token in an API call set the request header Authorization to "Bearer [token]".

New: You can now specify how long the system will store the user access token for auto login after a user ticks Remember Me.

New: You can now specify how long the system will store who the initial referral was.

New: Cookies are now only available using HTTPS and only visible on client where necessary. For example, A cookie named CookiesEnabled can be set client side depending on the user's consent.

New: Automated task results now store the HTTP Status Code return when the task was run. Results will also always be stored when an error occurs.

New: When a task is run the system will auto login the creator of the task unless otherwise specified with the AutoLogin property.

New: Attachment.SetToProperty will now also list properties with type of WebAddress.

New: Adding class="nav" to an input control will, on change, navigate to the value which is presumably a URL.

Fix: The noscript tag is only output on first session load and now uses the canonical URL.

Fix: Payment instructions URL included on invoice and order status message.

Fix: Collection.AddNew by default returns the new BusinessCollectionItem rather than a URL to the new item. This was implemented so API requests can post new items.

Fix: Form input value replacement.

Update 4.19.3

Fix: When a method is not editable all parameters default values are used.

Update 5.26.0

New: GenerateHTMLFieldset works like GenerateHTMLSelect however outputs a fieldset of inputs of type radio when single select or checkbox when multiple select.

New: BusinessObject.ToFormValues returns a NameValueCollection of property values.

New: BusinessObject.MethodToFormValues returns a NameValueCollection of parameter default values.

New: BusinessObject.MethodToJSON returns JSON of parameter default values.

New: BusinessObject.MethodToXML returns XML of parameter default values.

New: BusinessObject.MethodToCSV returns CSV of parameter default values.

Fix: Replace HTML control values when preloading a form. Also, now sets radio buttons and checkboxes when used instead of selects.

Update 5.25.0

New: LoggedInUserStoredPaymentMethods will return the current logged in user's stored payment methods.

New: GetLoggedInOrSelectedUser, GetSelectedUser and GetLoggedInUser are now public if accessible.

New: PageTitle can now be added to an ASPX @Page directive.

New: PageTitle variable can now be used when merging any web page.

New: GetDateTimes function can be used in scripts and will return an array of date/times based on the parameters passed.

New: FormatArray function can be used in scripts and will format each element in an array with the specified format parameter passed.

New: Javascript function which can be used to toggle a class based on an input value such as a select control.

Update: Membership.AutoRenew now defaults to Invoice.

Fix: Email.GenerateHTML was showing the same image multiple times if they had the same filename but in different folders.

Fix: Group.GetActiveMembershipCount was returning an incorrect result in certain circumstances.

Fix: The system will not update links in a web page, to include the relative folder, which is starting with a protocol (i.e. https://), forward slash (/), hash (#) and now a dot(.).

Fix: Change to the base stylesheet to remove an indent style specifically for mozilla browsers due to error which they have now fixed.

Fix: Definition inspector error when creating a table.

Fix: Definition inspector changing type of a method parameter.

Update 4.19.2

Fix: Error when outputting articles to static files.

Update 5.24.4

Fix: Error when outputting articles to static files.

Update 3.20.0

New: Upgrade to security and user access.

Update 4.19.1

Fix: Security issue with file manager.

Update 5.24.3

Fix: Image required even though there was already one saved.

Update 5.24.2

Fix: When the Website Temporarily Unavailable Page Name was set to a page a continuous redirect would cause the website to crash.

Update 4.19.0

New: Upgrade to security and user access.

Update 5.24.1

Fix: New registered users would have to reset password when they returned.

Update 5.24.0

New: User.OpenAsVCard will download the user information in a vCard format for import into user's contact database.

New: User.MiddleNames has been added.

Update 5.23.2

Fix: By default Website.VisibleUsers aka directory, cannot be viewed now. Website.VisibleUser(FileName) can be used for directory lookups. For example, /directory/john-mitchell.

Update 5.23.1

Fix: ItemDefinition.DefaultValue was disposing Application.User and the like.

Update 5.23.0

New: Upgrade to security and user access.

Fix: VisibleServiceTimes view was generating the time part of filename as 12 hour clock.

Update 5.22.0

New: Sitemap generator which also stores the public page content for fast loading when there is no user loggged in.

New: AllowFilterIndex on the property definition. When set to false the system will add nofollow on links filtered by this property and noindex on collection views filtered by this property. The default is false, accept for Item.Tags, Article.Category, Article.Brand, Article.Author and User.Industry.

New: Business.CanonicalURL which returns the absolute path and parameters for the custom view of the object. For example, https://inology.au/blog/tag/email-hosting/?Page=2.

New: CreateFilterMenu on a property now creates links to canonical urls and sets nofollow when more than one filter is used or the property's AllowFilterIndex is set to false.

Fix: Meta data noindex and nofollow have been set where appropriate.

Fix: Application.ArticleExists execution speed has been greatly increased which means the loading of the home page has increased because it uses the function to determine which page is the home page.

Fix: The noscript tag is added to the HTML output for every page where the JavaScriptEnabled parameter has not been set.

Fix: The EndSessionOnComplete parameter now works with process path version 2.

Update 5.21.4

Update: Defaults for Application.PoweredByWebsite and Application.DeveloperWebsite.

Fix: Extend max length to 1000 on Template.Title and Template.Description to allow for lengthy scripts.

Fix: Changed default sort order for services.

Update 5.21.3

New: When a file name is created from a title, the ampersands are replaced with "and".

New: Merging collection items can now update all links and add permanent URL redirects for the merged items.

Fix: To update all links when renaming a file.

Fix: To URL redirects match and replace.

Fix: Filter expressions using like.

Fix: Phone number validator.

Update 5.21.2

Update: Changed default sorting method for articles to [PublishingStatus],[PublishedOn] desc and pages and trading items to [PublishingStatus],[FileName].

Update: Changed how URL Redirects work including the pattern matching and what to replace.

Fix: When an item is renamed it also creates a redirect for when used in a filter. For example, a tag named widget /products/tag/widget.

Fix: Error thrown when ItemDefinition.SelectionFilterPropertyName is set and the filter property returned nothing.

Fix: When a menu item does not have a URL the title and onclick attributes are add to the span element.

Fix: To forms in collection view shows double info.

Update 5.21.1

New: Memberships.FilterByGroup and Memberships.FilterByMember.

New: Article.PublishingStatus added on database to enable sorting. The sort on articles now defaults to [PublishingStatus],[FileName].

Fix: Error when non-admin publishes an article.

Fix: User.AuthoredDocuments name changed to User.AuthoredArticles.

Fix: When new user option is selected in Website.SelectUser it still goes to check for registration if that is the default. If admin is logged in and the email address is found in the database, the system automatically selects that user.

Fix: RSS feed not working on website.

Fix: Error adding a SecurePayPaymentMethod.

Fix: XML output returning multiple declarations.

Fix: BusinessCollection.Import.

Fix: BusinessCollection.ToHTML not merging ItemTemplate element an article.

Fix: Styles updated to show item counts on filter menus.

Fix: Type not changing in definition inspector.

Update 5.21.0

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.

Update 5.20.0

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.

Update 5.19.0

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

Update 5.18.1

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.

Update 5.18.0

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.

Update 5.17.4

Fix: Fix to checkout process returning an error due to invalid URL.

Update 5.17.3

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.

Update 5.17.2

Fix: Fix to function that determines if a member can renew automatically to a group.

Update 5.17.1

Fix: Postmaster email address ignored when checking for bounced emails.

Update 5.17.0

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 filename organisations

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.

Update 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.

Update 5.16.2

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.

Update 5.16.1

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.

Update 5.16.0

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".

Update 5.15.1

Fix: Error when trying to cascade delete rows when the related table is a view.

Fix: When checking out from dashboard cart.

Update 5.15.0

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.

Update 5.14.0

New: The following properties were created on the website and group objects to return published articles visible to the current user.

  • VisibleServiceTimes with filename servicetimes

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.

Update 5.13.0

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.

Update 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.

Update 4.17.1

Fix: When ServiceBooking.Time is update it resets the start and finish time.

Fix: Function ServiceBooking.AllowSendEmail and ServiceBooking.AllowSendEmailIncludingUser.

Update 5.12.0

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.

Update 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.

Update 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.

Update 5.11.2

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.

Update 5.11.1

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.

Update 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.

Update 5.11.0

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.

Update 5.10.2

Fix: Error when renaming items with UpdateAllLinks parameter set to yes.

Update 5.10.1

Fix: Error viewing Trading Item Discounts.

Fix: Info message not detected in client-side scripts.

Update 4.15.2

Fix: Couldn't add a large number of items to the cart due to storage size of cookies.

Update 5.10.0

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.

Update 4.15.1

Fix: To open and close methods for multiple service times.

Update 4.15.0

New: Can now Open and Close multiple Service Times at once.

Fix: Error when viewing items of a Future Order.

Update 5.9.0

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.

Update 5.8.0

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.

Update 5.7.0

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.

Update 5.6.0

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.

Update 5.5.0

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.

Update 4.14.21

Fix: Error in Group.SubscribeNewUser.

Fix: Backward compatibity for Human Verification Code on forms to block spambots.

Update 5.4.0

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.

Update 5.3.0

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.

Update 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.

Update 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.

Update 5.2.0

New: The following properties were created on the website and group objects to return published articles visible to the current user.

  • VisibleArticles with filename content
  • VisibleBlogPosts with filename blog
  • VisibleForumTopics with filename forum
  • VisibleGalleries with filename galleries
  • VisiblePages with filename testimonials
  • VisibleTestimonials with filename testimonials
  • VisibleProducts with filename products
  • VisibleServices with filename services
  • VisibleSubscriptions with filename subscriptions
  • VisibleCourses with filename courses

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 filename directory

New: The following property was created on group objects to return current memberships visible to the current user.

  • VisibleMemberships with filename directory

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 or PrimaryCollection=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/ or products/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 as BusinessObject.PropertyNames
  • Methods stored as BusinessObject.MethodNames
  • Filter stored as BusinessCollection.Filter
  • SearchText stored as BusinessCollection.SearchText
  • Sort stored as BusinessCollection.Sort
  • Columns stored as BusinessCollection.ColumnNames
  • ItemsPerPage stored as BusinessCollection.ItemsPerPage
  • Page stored as BusinessCollection.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.

Update 4.14.19

Fix: Error trying to update the base path when item is added/updated but the collection is disposed.

Update 4.14.18

Fix: Error uploading an attachment.

Update 5.1.3

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.

Update 4.14.17

Fix: Application.GenerateHTMLMenu(MenuItem, Depth, IncludeURLWithSubMenus) did not include the URL menus with sub-menus when requested.

Update 5.1.2

Fix: Error in new process path when parameters attribute passed in URL.

Update 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.

Update 5.1.1

New: Base styles.

Fix: After adding a new item via BusinessCollection.AddNew the system now redirects back to the collection view.

Update 5.1.0

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.

Update 5.0.1

Fix: When resetting the parent membership expiry also reset the auto renew in child memberships.

Fix: Allow edit on Membership.AutoRenew.

Proposed New Shortcuts and Template Selection

Shortcuts

Shortcuts will match the business objects structure starting from the application (website). For example, any application object property or method accessible by the user can be accessed as follows:

/login will return a form for the Website.Login method

/register will return a form for the Website.Register method

/configure-components will return a form for the Website.ConfigureComponents method

/user will return the logged in user profile from Website.User

/licensee will return the licensee profile from Website.Licensee

From there we can add properties to the application (website). For example, Add a property called Shop which returns a collection of products filtered to only published products sorted by date published descending. Now I can access it as:

/shop

Now say I want to filter it by a category. First, I need to create a category filter method on the products collection as Products.FilterByCategory(Category) returns Products (self). The Category parameter can be an ID, FileName or Category object. So, we can now return a filtered shop as:

/shop/filter-by-category/furniture

Which will in essence run Website.Shop.FilterByCategory(“furniture”)

Now /filter-by-category is not very nice in the URL so for each property and method you will be able to set an alternative filename. For this one I would simple call it category. So now it can be accessed:

/shop/category/furniture

Now we can add more filter methods to products for tags, brands, authors, etc.

/shop/category/shoes/tag/white/brand/nike

They can be in any order and end up with the same result, for example:

/shop/brand/nike/category/shoes/tag/white

You could also call the same filter method multiple times:

/shop/tag/large/tag/round/tag/white

You can also add methods to a collection to sort, for example, say I create a sort method which simply set the sort order on price as Products.SortByLowestPriceFirst() returns Products (self). I would give it a filename lowest-price-first. Then it could be called via:

/shop/lowest-price-first

To access an item in the shop it would be simply:

/shop/item/widget

Which will return Website.Shop.Item(“widget”)

Again, it is not very nice to have /item in the URL so I will make it the default method of the collection. So now you can access as:

/shop/widget

Which will return Website.Shop(“widget”) which is the same as Website.Shop.Item(“widget”)

If you want to use an ID, you can similarly say:

/shop/1234

Which will return Website.Shop(1234) or Website.Shop.Item(1234)

Note: to edit an object/item you need to add /edit to the URL. For example:

/shop/widget/edit

Note: any filename of an item in a collection cannot be the filename of a property or method in a collection. For example, say you name a product “tag” then /shop/tag will bring up Website.Shop.FilterByTag method, not the product Website.Shop(“tag”), as the FilterByTag method has a filename of tag. Filenames are searched for in properties first, then methods and if not found applied to the default method which in this case is Item. Alternatively, the product tag in this case, you would have to call via the item method or ID as follows:

/shop/item/tag

/shop/1234

Here are a few more examples:

list all the related items of the widget product

/shop/widget/related-items

Website.Shop(“widget”).RelatedItems()

list other products the supplier of the widget

/shop/widget/supplier/products

Website.Shop(“widget”).Supplier.Products()

Add widget to cart

/shop/widget/add-to-cart

Website.Shop(“widget”).AddToCart()

List all with price less than 1000

/shop/price-less-than/1000

Website.Shop.FilterByPriceLessThan(1000)

 

Let’s examine a few URLs:

/user

Website.User()

/register

Website.Register()

/contact-us

Website(“contact-us”)

/countries

Website(“countries”)

/members

Website(“members”)

/members/rules

Website(“members”)(“rules”)

/members/board-members

Website(“members”)(“board-members”)

The system will first check the properties for the filename, then methods and finally and if not found will apply to the default method.

/user was found in properties

/register was found in methods

Notice /contact-us, /members and /countries were all found in the default method. We could set up a default method on the application called Item and in that method we search for the filename first in pages then groups and finally collections. So:

/contact-us returns a page

/countries returns a collection

/members returns a group

With /members/rules and /members/board-members we would also need to set up a default method on Group and call it Item which we search for the filename first in pages then subgroups. So:

/members/rules would return a page

/members/board-members would return a subgroup

 

Template Selection

The template name will match the calling properties/methods firstly otherwise the outputs type then any inherited types.

URL

Template Name Used in Priority

/login

website.login

method

/shop

/shop/category/furniture

/shop/brand/nike/tag/white/lowest-price-first

Note: Due to the filter and sort methods returning the
same collection the same templates will be used as /shop

website.shop

products

trading-items

articles

items

business-collection

business-object

/shop/widget/supplier/products

website.shop.item.supplier.products

user.products

products

trading-items

articles

items

business-collection

business-object

/shop/widget

website.shop.item

product

trading-item

article

item

business-collection-item

business-object

/shop/widget/edit

website.shop.item.edit

product.edit

trading-item.edit

article.edit

item.edit

business-collection-item.edit

business-object.edit

method

 

The system should have at least the following templates:

  • method
  • business-collection
  • business-object

Update 5.0.0

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.

Update 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.

Update 4.14.14

Fix: BusinessCollection.FilterOnIDOrFileNames returning error.

Fix: FormatToJSONString added additional character replacements.

Update 4.14.13

Fix: FutureOrder.Confirm returning error.

Update 4.14.12

Fix: BusinessCollectionItem.DefaultRange not returning correct value when custom property is the range property.

Fix: GenerateHTMLVideo updated YouTube URL.

Update 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.

Update 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.

Update 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.

Update 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.

Update 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.

Update 4.14.5

New: The GenerateHTMLForm method now adds a name attribute to each label for specific styling.

Update 4.14.4

Fix: Permission denied error when outputing an RSS feed.

Update 4.14.3

Fix: Error when booking and attendee details contain an ampersand.

Update 4.14.2

Fix: Error when saving an object or executing a method with a Business Collection Item as a parameter.

Update 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.

Update 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.

Update 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.

Update 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.

Update 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.

Update 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.

Update 4.11.4

Fix: Error when listing emails due to forwarded receipts load.

Update 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.

Update 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.

Update 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.

Update 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.

Update 4.10.1

Fix: Application.ConfigureComponents.DefaultUserCountry was not been set correctly.

Update 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.

Update 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.

Update 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.

Update 4.9.4

Fix: Import script connection string for Excel.

Update 3.19.28

Fix: Import script connection string for Excel.

Update 4.9.3

New: Bookings can be set to recur.

Fix: When setting a StoreSessionOnly property updating the workspace is not necessary.

Update 4.9.2

Fix: Upgraded TLS for PayPal integration.

Update 3.19.27

Fix: Upgraded TLS for PayPal integration.

Update 4.9.1

Fix: Could not add PayPal payment method due to error with Enable Storage.

Update 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".

Update 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.

Update 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.

Update 4.6.3

Fix: Recurring orders will only be generated from completed orders.

Fix: Error when viewing connections.

Update 4.6.2

Fix: When cancelling a subscription the expiry was set incorrectly.

Update 4.6.1

Fix: There was no type on a method definition return value when inspecting.

Update 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.

Update 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.

Update 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.

Update 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.

Update 4.4.2

Fix: Simplified the subscription processing when an order is actioned.

Update 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.

Update 4.4.0

New: A brand can now be selected on a product, service or any other article. As it is for categories, brands can also be listed for article views and used to filter the view. A short cut path is also available. For example, https://www.mysite.com/shop/brand/nike/.

Update: Manufacturers and product ranges have been removed.

Update 4.3.4

Fix: Payment.ReceivedOn.MaximumValue causing error when merging users on same day payment received.

Fix: OrderItem.CompletionURL for service bookings and subscriptions were simplified to avoid redirect errors.

Update 4.3.3

Fix: Using a referral URL not recording who the User.ReferralBy was with a short cut paths such as those to blogs, galleries, products, etc.

Update 4.3.2

Fix: Infrequent error when making payments.

Update 4.3.1

Fix: Links on invoices / payment instructions sent in email.

Fix: When stored payment methods can be added.

Fix: When Order.SelectStoredPaymentMethod is accessible for recurring orders.

Fix: Error generating article comments list.

Fix: When article comments can be viewed.

Fix: Load speed of cart items and orders.

Fix: Ability to filter and sort calendar, directory and article views via URL.

Fix: Ability to filter on an item Type.

New: Can now filter and sort collection in script with either SQL or an Expression. For example: Application.GetCollection("OrderItems").FilterOnSQL("[Price] > 100").FilterOnExpression("Val(Price) < 1000").SortOnSQL("[Price] desc")

Update 4.3.0

New: A user can comment on article comments.

New: Can now send an order based on the balance. For example, balance is greater than zero or balance equals zero.

Fix: Sending an order email campaign filtered on payment due resulted were incorrect.

Update 4.2.0

New: A user can add stored payment methods and change a stored payment method on an order for recurring or upcoming payments.

Update 4.1.3

Fix: Sending an order email campaign filtered on payment due resulted with zero emails sent.

Update 4.1.2

Fix: Sending email campaign resulted with zero emails sent.

Update 4.1.1

Fix: Now allows administrator to log in as another user when Website Temporarily Unavailable.

Fix: GetObjectByUniqueTextPropertyValue was not searching objects by file name.

Fix: Random Concurrency Violation error.

Update 4.1.0

New: Now supports MPGS payment gateway.

New: Now supports Fat Zebra payment gateway.

New: Now supports AfterPay payment gateway.

New: Email Marketing System now merges with Orders. This can be used for payment reminders, abandoned orders, etc.

New: Added Attachment.SetToProperty to set the attachment to a property on the current object. For example, if you are looking at image attachments for a user then an image could be set to the Logo or Photograph properties.

Fix: Added parameter WebRequest.EnableCookies which will enable cookies for a web request which will enable session values to be stored. This fixes a problem when a web request redirects to another URL but cannot view session values in the previous call.

Fix: After custom register (which called reset) was not logging in new user.

Fix: Removed storing session values as cookies.

Fix: URL parameter EndSessionOnComplete will now store this as a session variable and end the session after redirects complete if applicable.

Fix: Listing orders slow loading and generally across the board.

New: Added class Empty to calendar cells that have no times to display.

New: Function Application.GetUniversalTime(Time) which will return the universal time. When displaying a time in the users timezone

New: You can now display the time in the users timezone. To do that you need to wrap your default display time in an element with an attribute data-universal-time holding the universal time and data-options which indicates how it is to be displayed. For more info on options go here.

  • <span data-universal-time="17 Mar 2019 7:45 PM" data-options="{&quot;hour&quot;:&quot;2-digit&quot;,&quot;minute&quot;:&quot;2-digit&quot;}">5:45 AM AEST</span>

Update 3.19.26

Fix: List of available payment methods included those excluded with expression.

Fix: Error when inserting note when email sent.

Fix: Error when initially setting HTTPS Everywhere.

Update 3.19.25

Update: Allow subscribing new user when email address exists on database only when no payment required.

Update 4.0.9

Fix: Group.SubscribeNewUser will only direct the user to login if email address is already on the database when payment is required.

Fix: Group.TakeSubscription removed and directed to Group.SelectSubscription.

Fix: Order.MakePayment now will ask for payment details if the amount is zero due to a promotion, the order is recurring and the payment method selected has storage of payment details enabled. This will allow for example, first month subscription free and recurring orders automatically taking payment.

New: Order.SendPaymentErrorNotification will send a payment error notification to the email address on the order when a page named order.paymenterrornotification exists and an error is received trying to process a payment. This is especially useful for automated payments.

Fix: Order.RecurNextOn was set incorrectly in some circumstances.

Fix: Order.Cancel was available for the Trading Entity when actioned or completed.

Fix: Order.GenerateRecurringOrder now takes payment immediately for new order if due.

Fix: ServiceTime.SpecifyUsers will now get logged in user if there is no selected user.

Fix: Application.GetView now loads inherited table relationship.

Fix: BusinessObject.GetPropertyValue will now return the value from non-defined properties if allowed.

Update 3.19.24

Fix: Changed how the title meta tag is displayed on article views for categories, tags, etc.

Update 4.0.8

Fix: Error creating a new email campaign.

Fix: Default HTML Merge Expression attribute Merge Type to dynamic when not specified.

Fix: Correction to page base paths for new upgrades.

Update 4.0.7

New: Can now set the default dashboard URL under Configure Components.

Fix: Template.LastUpdatedOn not updated when pregenerated content updated.

Fix: User.LastUpdatedOn not updated when user logged in.

Update 4.0.6

New: The system will automatically detect if content such as menu items, pages, templates, etc. have changed since pregenerate content was created and if so regenerate.

Fix: Custom collection filenames such as shop for products was not using configuration settings.

Fix: Error when accessing filters on Items collection.

Update 4.0.5

New: The system will pregenerate content for templates replacing merge expressions marked as static. This will speed up page load for both web and email templates. Note: in the HTML editor, the merge expression attribute Merge Object Type has been replaced with Merge Type which can have the following values:

  • Static - pregenerated
  • Dynamic - generated everytime
  • Both - pregenerated for public, everytime for logged in users

Fix: Group base paths and pages/blog posts/etc of groups.

Update 4.0.4

Fix: Error after setting HTTPS Everywhere in Configure Website.

Update 4.0.3

New: User's can now log back to their remembered account if logged out or logged in as someone else. A new menu item to do this has been created under Logout.

Update 4.0.2

Fix: Improvements made to Item.Attachments and permissions.

Update 4.0.1

New: You can now set the Website Temporarily Unavailable. To do this go to Configure URLs and set Website Temporarily Unavailable Page Name. Logged in administrator's will still be able to access as normal.

Fix: The website under construction page will only show when a user is not logged in and no path passed in the URL.

Fix: Missing static files such as images, scripts and videos will now return standard file not found response.

Update 3.19.23

Fix: The SendEmailForm function did not send the attachments to subsequent recipients, only the first.

Update 4.0.0

New: Each business object, with the exception of a few types (Binary Signature, Configuration Setting, Import Script and IP Range), inherit Item which has an application wide unique ID.

Update: Auction management has been removed.

Update: Removed property ImportScript.IsUserImport.

Update: Many previously deprecated functions have been removed.

Update: Some configuration settings such as DocTypeDeclaration and ViewPort have been defaulted to the new norms.

Update: Restructuring of the file system, in particular the user files, images, videos, audios, scripts, stylesheets, etc.

Update: Restructuring of the URL short cut paths to match file system changes. For example, /galleries/my-photos/ for the URL to the gallery page and /galleries/my-photos/images/happy-days.jpg for a URL to one of the images.

Update: When outputing an article to a static file, the system will create a folder and output to an index.html file. For example, /galleries/my-photos/index.html, /blog/my-first-blog/index.html or /contact-us/index.html for a page.

Update: Item attachments can now have a title and description and be positioned in the list. The attachments can be local to the item attached /galleries/my-photos/images/happy-days.jpg, shared /images/great-day.jpg or external https://www.anothersite.com/images/awesome-week.jpg.

Update: Custom Properties can now be added to any item without adding a column to the database table. However, if you need to filter or sort that property then it is recommended to add a column to the relevant table.

Fix: Custom properties will now initialise from table column if exists when changing the type.

Fix: Custom properties initialised from table columns will now set unique where applicable.

New: The URL property for a menu item now has selectable list of pages and files under the default file path.

New: Functions Pluralize and Singularize.

Fix: Error when loading collection item in definition inspector when collection name does not resolve to object name by removing trailing letter "s" (singular name).

Fix: GenerateFilterEditor was not loading a drop down for custom enumeration properties.

New: Application.GetFiles(FolderPath, IncludeSubfolders) will return a list of files in the specified folder relative to the application absolute path.

Fix: Application.GetFolders(FolderPath, IncludeSubfolders, IncludeThisFolder) now returns a list of folder paths relative to the application absolute path.

New: Property Application.IsLocalHost which indicates if the application is run on a local computer, hence by a developer.

New: Service.TypeOfUsers: this allows you to specify the type of person/people using the service. For example, Attendee(s), Traveller(s), Rider(s) or Hiker(s).

New: When booking times, the user is now asked to specify attendees before adding to cart and checking out.

New: You can now set up a service for group bookings such parties, camps, etc. When a booking is made the system does not ask for each of the attendee details and a single booking is created which indicates how many it has been reserved for. To acheive this set Service.MaximumUsersPerBooking to a number greater than 1. You can also specify Service.MinimumUsersPerBooking.

New: Service.AllowOrderBeforeBooking will be ignored for group bookings.

New: When saving session variables, the system will also add them as a cookie on the client side which will help if session times out.

New: Can now add properties to a business collection item which will store while session is active.

New: Available quantities on products are not adjusted until the order is actioned.

New: The availability of products and services is checked prior to making payment.

Fix: Before adding item to the cart it checks cart for already added items of the same and checks availability on the combined.

New: You can now set an order as recurring. Orders for subscription to groups will automatically be set as recurring. The administrator or trading entity can also cancel the recurrence before it is due to recur.

New: A user's payment details (i.e. credit card info) can now be stored with a payment gateway and selected for reuse without reentering that information again. For recurring orders or orders with multiple part payments, the system will make the payment automatically when due.

New: Can now store credit card payment details with SecurePay.

New: Can now process direct debits with SecurePay.

New: A new property on gateway payment methods, Requires Reconciliation, indicates any payments made with this method will require reconciliation.

New: Can now cancel an order and if it has been actioned the products availability is rolled back, service bookings are cancelled and subscriptions for membership's expiry is rolled back.

Update 3.19.22

Fix: The generated email template now includes viewport and other necessary meta elements for formatting.

Update 3.19.21

New: Application.ResizeImage can now accept a resize method:

  • Contain: resizes to fit within both width and height. For example, 300x300 resized to 200x100 will result 100x100.
  • Emcompass: resizes to fit within either width or height. For example, 300x300 resized to 200x100 will result 200x200.
  • Cover: resizes to fit within either width or height but crops excess. For example, 300x300 resized to 200x100 will result 200x100 with height cropped top and bottom to center image.
  • Stretch: resizes to stretch to width and height. For example, 300x300 resized to 200x100 will result 200x100 stretched image.

New: When parsing Parameters in a URL where PageType=MethodView any missing parameters at the end will be defaulted to the method's parameter default value.

Update 3.19.20

New: In an email or email template, setting the Merge Object Type to "Application", in a HTML merge expression, will merge these expressions to the application once, rather than for each email's merge object (generally a recipient record). This will speed up the output of campaigns and lessen the load on the server processor.

Update 3.19.19

Fix: Group.SubscribeNewUser will now subscribe an existing user if no payment required.

Update 3.19.18

Fix: Error when an administrator completes an order.

Update 3.19.17

Fix: Digital items not automatically sending when order completing.

Fix: Form textarea elements were generated with a space when should be empty.

Update 3.19.16

Fix: Error in LoadHTMLContentInXMLDocument commented HTML included empty script or textarea elements.

Update 3.19.15

Fix: Unnecessary updates after inserting notes on a user were causing concurrency errors.

Fix: Once an order was processed the promotion was not being cleared and was being applied to the next order.

Update 3.19.14

Fix: Not redirecting to referrer URL after posting a form.

Update 3.19.13

Fix: Concurrency error when installing updates.

Update 3.19.12

New: ShowInTemplate can be set in custom ASPX page directives.

Update 3.19.11

New: Install Updates can now redirect to a URL before installing an update.

Update 3.19.10

Fix: When sending an email the list of email pages to select from is filtered to show published only.

Fix: Error when generating site map.

Fix: Article.Publish.On only set when a moderator is logged in.

Update 3.19.9

New: Modified Order.MakePayment so it will accept negative amounts for recording refunds.

Fix: The set up for new websites will set the Licensee's record creation date/time to the time of set up.

Update 3.19.8

New: The Default User Country can now be set via Configure Components. You should only set this if you are only targetting and delivering to users from that country. Leaving this blank will allow the system to auto-detect where the user is located. However, make sure you are either requesting the user's geolocation via the browser they are using or you have the IP Ranges list imported to the database to detect location based on IP address. Without either of these the system will detect the user's browser culture settings which is not always accurate as most browsers come installed with en-US by default and the user is not asked to confirm it.

New: Can now set how deep to allow search engines to index/follow article list (blog/shop/etc.) combinations of categories, tags, authors, etc. This can be set in Configure Components via property Article View Follow Depth.

New: The title and description of article list (blog/shop/etc.) groups, categories, tags, etc. are now included as meta tags when listing via the category, tag, etc.

New: Can now set how deep to allow search engines to index/follow directory list combinations of industries, regions, etc. This can be set in Configure Components via property Directory View Follow Depth.

New: The title and description of directory list groups, industries, regions, etc. are now included as meta tags when listing via the industry, region, etc.

Fix: ServiceBooking.SendConfirmationLetter and ServiceBooking.SendConfirmationLetter would allow execute but throw an error when the user's email status was not active.

Fix: ServiceTimes.SpecifyUsers would throw an error when there was no user (due to guest checkout) or the user's email status was not active.

Update 3.19.7

Fix: Scheduling and running from the correct email collection.

Fix: Default value for Order.PayByOtherMethod.ReceivedOn now includes time.

Fix: Order.Complete in some circumstances would not complete due to session timeout or reset.

Fix: TradingItem.GetDiscountPricesFormatted would only display prices applicable for selected user if one existed.

Update 3.19.6

Fix: Error when listing article comments.

Update 3.19.5

Fix: GenerateHTMLGroupsListForArticleView and GenerateHTMLGroupsListForDirectoryView would include all when parent supplied even though there was no subgroup.

Update 3.19.4

Fix: Forms generated from merge fields via Definition.GenerateHTMLForm had their lists reloaded.

Update 3.19.3

Fix: When outputing a page to a static file the script elements were not included.

Fix: Modified XHTML replace function to better handle empty textarea and script element.

Fix: Payment.ReceivedOn was not storing the time part.

Fix: RSS feed for the shop did not include shipping weight which is needed for import to Google Merchant Center.

Update 3.19.2

Fix: Enhance Workspace object to standalone from the BusinessApplication object.

Update 3.19.1

New: Billing and Delivery properties now available for export from orders.

Fix: Error when displaying delivery details in specific circumstances.

Fix: Directory titles were not displaying correctly when a parent directory specified.

Fix: Removed GUID output field from RSS feed as unnecessary and caused problems with import to Google Merchant Center.

Fix: Applied efficiencies to invoice and purchase order output.

Fix: Modified the discount pricing format to make it easier to customise.

Update 3.19.0

New: RSS Feed for products which can be imported to Google's Merchant Centre or Facebook's Marketing API.

New: Product.GoogleCategory can be set to the ID of one of Google's product categories. This value will be included in the product feed.

New: Toggler classes added to Message elements returned by the server. Add the base script to enable when clicked the message is closed.

Fix: When sending form details in an email to administrator using an invalid email address entered by the user.

Fix: When an error is returned from a submitted form (on the template), the controls returned empty.

Update 3.18.8

New: Use Order.HasBookings to determine if any of the items are for service bookings.

New: Style classes Past, Today and Future added to calendar view cells.

New: Can now set the default sort order for article and directory views via Configure Components.

New: Can now create a custom registration form and set the URL in Configure Components. For example, register.aspx.

Fix: Register.SubscribeToEmailMarketing and CartItems.RequestBillingDetails.SubscribeToEmailMarketing now default to No.

Fix: Changed wording relating to an order confirmation / invoice to use Application.InvoiceDisplayName.

Fix: Duplicate Template Scripts and Stylesheets are removed when web page generated.

Fix: If a table column is readonly (due to being computed), it is not added in the update or insert scripts.

Fix: ServiceTimes.SpecifyUsers business names were returning error stating they were required when not.

Fix: Recreate an index on tax rates making it unique.

Update 3.18.7

Fix: Price on order item storing incorrectly when trading item prices stored in database without tax.

Fix: Timeout for automated tasks increased.

Fix: By default file properties on an item (for example, photograph on user) will not be copied when url is relative.

Fix: Captcha verification code was not a required field on the client side which meant a form could be submitted and sent to the server but would fail validation.

Update 3.18.6

New: Can now set the default sort order for each of the article and directory views.

Update 3.18.5

New: Added function Application.ApplyPromotion which can be used on the cart before checking out.

Fix: Reworded "Already Registered" error message.

Update 3.18.4

Fix: Updated user import scripts to ignore records with and invalid email address.

Fix: Various problems with HTML editor code source view.

Update 3.18.3

Fix: When receiving an error sending an email campaign the following batches were not sent. System now schedules them.

Fix: Large images in the light box were exceeding screen width and height.

Update 3.18.2

Fix: When selectable values used with mulitple line text property/parameter.

Fix: Allow the trading entity to delete their own order if not payment made.

Fix: Supplies Ordered On is now not editable by default.

Update 3.18.1

Fix: In some circumstances when sending emails relative paths to images, etc. were not updated to the full path including website address and hence could not be shown.

Update 3.18.0

New: Application.Register now asks for the new user's Password, Confirm Password plus Remember Me.

Fix: Application.Log only logging when in debug mode.

Update 3.17.6

New: Function Application.HasDeliverableCartItems.

Fix: Invoice no longer shows payment details when there are no payment methods.

Fix: When an administrator completed an order it would ask a 2nd time to complete.

Fix: Could not set default values for ServiceSchedule.Ocurrences.

Fix: When specifying attendee details via guest checkout the 1st attendee now defaults to "1st Attendee".

Update 3.17.5

Update: Updated the Users.xls script to add memberships to existing users that are not a member in any of the groups specified in the import.

Fix: Order.Complete is now visible to the trading entity if the order has been paid and is incomplete.

Update 3.17.4

New:Function Wrap(Start, Concatenator, Finish) has been made available for VBScript.

Fix: Error applying trading item discounts when orders were over the maximum quantity specified for that discount.

Fix: When deleting an order and items the related booking was not updated.

Update 3.17.3

New: Function ConvertDateToAge(Date, AsAt) is made available for VBScript.

Update: Google Tag Manager generated code updated.

Fix: HTML editor not styling correctly.

Update 3.17.2

Fix: Views using inheritance would get an error due to inherited tables not fully loaded.

Update 3.17.1

New: Properties UpdateReleasePhase and VersionReleasePhase on the Application. UpdateReleasePhase specifies the release phase allowed when installing updates. VersionReleasePhase is the release phase of the currently installed version. These properties replace IsBetaTestSite and IsBetaVersion. The release phases are:

  • Alpha
  • Beta
  • Stable

New: Property DebugMode on the Application. When true will output debug logs and reference the original (or non-minified) scripts and stylesheets.

Fix: Mispelt property name CustomDefinitionNamesStartWith.

Update 3.17.0

New: Properties Async and Defer on TemplateScript. When these properties are set to True an attribute of the same name is added to the script element when output to HTML.

New: Property Minify on TemplateScript and TemplateStylesheet. When this property is set to True the systems checks for a file with the same name including ".min" after the file name. If the minified file does not exist or is older than the original file, a new minified file will be created. The minified file will be reference in the output HTML.

New: Base and backend scripts and stylesheets have been bundled, minified and referenced offsite from a common code library.

New: css3-mediaqueries.js now only loads for IE9 and lower.

New: All scripts have been set to defer with the exception of css3-mediaqueries.js and html5shiv.js which only load on IE9 and lower.

New: JQuery core is now referenced from a CDN.

Update 3.16.10

New: A location (i.e. France) can receive deliveries from multiple pickup outlets. To do this, include the location in multiple delivery zones (i.e. Europe from United Kingdom or Europe from Hong Kong). When the user selects a freight rate, the pickup outlet is determined by the delivery zone of that freight rate.

Update 3.16.9

New: You can now see the order related to a service booking where applicable.

Update 3.16.8

Fix: Orders processed with a payment term that does not require payment immediately still asked for payment.

Update 3.16.7

New: Group.SelectSubscription and ServiceTimes.BookNow have 2 new hidden parameters ClearCartItems and ProceedToCheckout which both default to True, however can be modified via configuration settings.

New: BusinessCollectionItem.RawDataValue([Property]) get or sets the raw data in a table.

Fix: Purchase order delivery details now display pickup outlet address when not dropship.

Fix: When retrieving the pickup outlets for a delivery zone due to no state specified when region was.

Fix: Incorrect column name PaymentTerms.ActionOrderAfter changed to PaymentTerms.ActionOrderWhen.

Fix: Error when requesting a BusinessObject.PropertyValue for an Item's Item. For example, OrderItem.PropertyValue("TradingItem.Supplier").

Update 3.16.6

New: JavaScript togglerfunction attributes data-off-selector and data-on-selector now can accept this and parent values.

Fix: Error in Application.ProcessPayment.

Update 3.16.5

New: When specifying users for a booking it now defaults to 2nd Attendee, 3rd Attendee, etc. for the first and last names, while the business name is set to the business name of the user booking.

Fix: Order completion was not executing when paid in full.

Update 3.16.4

Fix: Error when returning from offsite payment method.

Update 3.16.3

New: Toggler in base.js now toggles off and on classes for separate selectors with data-off-selector and data-on-selector attributes.

New: Function Common.DateAddWorkDays(StartDate As DateTime, Days As Integer).

Fix: Error when displaying order status message.

Update 3.16.2

New: Property PaymentTerm.ActionOrderWhen determines when the order can be actioned for fulfillment (i.e. product dispatched, service booked or group subscribed). It can be one of the following:

  • Confirmed
  • DepositReceived
  • BalanceReceived

New: Property Order.Status can be one of the following:

  • Confirmed
  • Actioned
  • Completed

New: Parameter Order.Complete.ActionThisOrder specifies if the fulfillment process starts or not. It's default value is determined by Order.PaymentTerms.ActionOrderWhen It is editable only by an administrator.

New: Can now set OtherPaymentMethod.Instructions to nothing. If this property is nothing then the payment method will not be displayed in the payment instructions section of the invoice or order status message.

Update 3.16.1

Fix: Updated configuration settings TradingItem.DefaultViewPropertyNames and TradingItems.DefaultListColumnNames.

Update 3.15.4

Fix: Removed Video to Flash conversion.

Fix: Updated setup.aspx with new default servers.

Update 3.16.0

New: Trading Item Discount Prices have replace Special Price, Bulk Price and Member Price 1 to Member Price 5. This now allows unlimited discount pricing on an item. For example, you may have a price for 10 items or more and another for 20 or more. You can also set a limit to the number of items at a particular discount. For example, gold class members may be allowed up to 2 for free.

New: Related Trading Items can be used to list all the related products, etc. when viewing a products details.

New: Adding auto-height to the class of a textarea will allow the height to auto-resize when data entered.

New: When setting a MultipleLineText property's EditorLines attribute to zero, the output html textarea will set auto-height to the class.

Fix: If a LinkingForeignCollection's LinkingProperty has a SelectableValuesExpression it is now executed and used when generating the control.

Update 3.15.3

Fix: Error when opening Configure Components.

Update 3.15.2

New: New configurations setting CalendarFirstDayOfFinancialYear.

New: Added TimePeriod.FinancialYear which is useful for financial reporting purposes.

New: When a pickup outlet is logged in, they can now dispatch orders.

New: ServiceTime.Reschedule to reschedule a time and send the rescheduled letter to users with reservations when applicable.

New: ServiceTime.Cancel now asks if the user would like to send the cancellation letters to users with reservations.

New: New base.js function to set default values from a drop-down to adjacent input controls. For example, a drop down may have default date ranges like This Month, Last Month, This Financial Year, etc. and when selected will populate the 2 date input controls next to it with the appropriate values.

Fix: The configuration setting [Collection].ItemTypeName was being ignored for custom collection definitions.

Fix: Could not insert a new row on a table with only an auto-generated ID column.

Update 3.15.1

New: Now allows bookings on non-published services.

Fix: Calendar allowed past service times to be booked.

Update 3.15.0

New: Payment options on a trading item and recurring payments have been replaced by payment terms on the order. This will allow the order to be paid over time. For example, in "12 monthly payment", "25% deposit with balance due 7 days prior to date required on" or "30 days".

New: The "Other Payment Method" (i.e. cash, cheque, direct deposit) is only selectable by the administrator. However, it will show up in the invoice footer with instructions on how to pay. Once a payment has been received via this method, the administrator can add the payment using this method for reconciliation purposes.

New: Layout changes to confirm order including payment terms.

New: Layout changes to invoice including payments paid/due and payment methods.

New: Layout changes to purchase order.

New: Layout changes to order complete message including payments paid/due and payment methods.

Fix: TotalPaymentReceived, TotalPaymentUnconfirmed, PaymentProcessingFee and PaymentProcessingFeeTaxIncluded are now displayed in the currency of the order, not the currency of payments.

Fix: Geolocation lookup adjusted to timeout after 3 seconds.

Fix: When a geolocation lookup fails when requesting UserCountry or GetSelectablePickupOutletsNearDeliveryLocation.

Fix: Method parameter values passed in a URL no longer conflicts with reserved names like PageType, Method, Collection, etc.

Update 3.14.2

Fix: Updated the ODBC Excel Driver in Import Scripts.

Update 3.14.1

Fix: Orders without deliverable items are now taxed on rates based on the licensee pickup location.

Update 3.14.0

New: Calendar view now includes a month and year selector.

New: PayDock payment gateway now integrated for credit card payments.

Fix: When there are no payment methods, the invoice does not include a link to pay.

Fix: When paying for a service booking at a later date it will now default to the trading entity for the first attendee.

Fix: Errors returned from ZipMoney now displayed correctly.

Update 3.13.5

Fix: Error on ServiceTime.GetAvailableQuantity.

Update 3.13.4

Fix: When redirecting to HTTPS from root URL, Default.aspx was included in the redirection.

Update 3.13.3

New: CreditCardViaSecurePayPaymentMethod now supports TLS 1.2.

New: Updated base.js so that attribute data-selector will accept this and parent.

Fix: Updated base.css so to include the pointer cursor on <summary> elements.

Fix: Billing details defaulting to last order billing details only when required.

Fix: Configuration settings for booking system updated.

Update 3.13.2

New: Query parameters FilterExpression and SortExpression are availabe to filter and sort collections on expressions.

New: Function [BusinessCollection].ToHTML(HTMLToMerge, TopCount, Randomise, Page) is available to merge HTML to a collection. The system looks for an HTML element with an ID of ItemTemplate and will duplicate and merge the element with each item in the collection. The system also looks for another element with ID NoItemTemplate and removes it if there are items otherwise leaves it and removes ItemTemplate if there are no items.

New: Function DateToTodayFormat(DateToFormat, AsAt, AlwaysIncludeYear) is available to format a date. For example, Today, Tomorrow, Yesterday, Mon 21 Aug, Tue 21 Aug 2018. As per example, it will display Today if same day as in AsAt and leave the year of if same year as in AsAt.

Fix: When calculating freight the total item price and weight are now based on deliverable items only.

Update 3.12.9

Fix: User.ReferralBy and User.ReferralWebsiteAddress default values can now be changed via configuration settings.

Update 3.13.1

New: You can now set a configuration setting named CustomDefintionNamesStartWith. If a definition name for a business object, property or method starts with the value specified, the system will remove it from the display name generated. For example, a value of "BV" and a collection named BVGrades would have a display name of Grades.

New: Completed option added property Status on Service Time. The Complete method was also added, which will change the status but also mark Used to true on all Service Bookings where not set.

New: Service Times can be added directly and the Finish Time defaults to the Start Time plus the Duration specified in the Service.

Fix: To base.js: Submit button in a control wrapped in a label would not work.

Update 3.12.8

Fix: References to theinternetplatform.com and developer default URL now use HTTPS.

Fix: Google Map references now use HTTPS.

Fix: Reworded description and instructions for Configure Website - Domains.

Update 3.12.7

Fix: Files robots.txt and sitemap.xml were not returning file not found when not available.

Update 3.12.6

New: Can now view the Retrieval Status when requesting the Geolocation or Address with Google Geocode API.

Fix: Due to previous security enhancements the calendar could not be viewed.

Update 3.12.5

Fix: Updated import script for Users.xls.

Update 3.13.0

New: Service Times are now saved to the database and related to Service Bookings. A Service Time has a Status of Open, Closed or Cancelled and can be set by the administrator. When the Calendar or List Times is opened, any scheduled times matching the criteria are loaded and saved to the database. The schedules are removed for matching the criteria.

New: New property Maximum Time In Advance on the Service. This is the amount of time in advance of the current time that service times will be generated from the service schedules.

New: New property Cancellation Time Required on the Service. This is the amount of time prior to the start time that user cannot cancel a reservation.

New: New property Logged In User Credits on the Service. If Allow Order Before Booking then this will show the number of credits the logged in user has purchased and not used for that service.

New: When Cancel Times on the Service is selected it now prompts to delete all times or only those without RSVPs.

Update 3.12.4

Fix: When administrator logged in and guest checkout is enabled it goes to Select User.

Update 3.12.3

Fix: Changes to who can view certain business object.

Fix: Updated Export for Xero to allow for guests.

Update 3.12.2

New: eWay payment gateway now forces the use of TLS1.2 Security Protocol.

New: When an order is processed using guest checked out, the Trading Entity now displays Guest instead of nothing.

Fix: Order First and Last Names changed to not required.

Fix: ConvertTextToDuration for negative durations.

Update 3.12.1

Fix: Allow first and last names to be blank on the order billing details.

Fix: Remove old scheduling service status from administration menu.

Update 3.12.0

New: Guest Checkout: when a user is checking out they do not need to create an account. If they would like to create an account while checking out they simply input a password. Guest checkout can be enabled/disabled by setting Allow Guest Checkout in Configure Components.

New: Billing Details: when a user is checking out the system can now ask for billing details.

New: ZipMoney payment method has been integrated to take payments via buy now / pay later payment gateways: zippay.com.au and zipmoney.com.au.

New: When invoice shows a balance due the payment instructions includes a link to pay.

New: Notes property and Insert Note function on Orders.

New: Payment processing errors are recorded in notes on the order.

Fix: Redirect URLs comparison methods now ignores case.

Fix: Blocked several business objects from being viewed by the public.

Fix: Error on load when attempting to determine user culture code when the user's country can not be determined.

Update 3.11.7

New: Enabled Fraud Guard on SecurePay payment gateway transactions.

Fix: Error when displaying invoice for an order to be picked up.

Fix: Error in TransactionException when no transaction number.

Fix: Start next automated transaction throwing error when finalising.

Update 3.11.6

Fix: Modified the links to filters of article and directory views to tell search engines not to follow. This also helps when producing the sitemap for search engine submission.

Fix: Updated Search Engine Site Map Ping Service URLs.

Fix: Updated Blog Directory Ping Service URLs.

Update 3.11.5

New: You can now select Google reCAPTCHA for the Human Verification Method. You can do this via Configure Form Validation. You will need to sign up for Google reCAPTCHA to get a site key and secret key which can be set in Configure Form Validation. Once configured, forms generated by the system will automatically add Google reCAPTCHA if needed. To manually add to a form add a merge field containing expression: Application.GenerateHTMLHumanVerificationControl(0).

New: Shared function created called Web.WebRequest(URL, Method, AcceptType, ContentType, Content, OtherHeaders, Timeout) which minimized code throughout the system.

Fix: Process would crash without error when submitting a Trading Item. This was due to the relation to Auctions and the RoundToValue on the definition for Auction.OpeningPrice was set to 0.01. Although there is nothing wrong with this the run-time did not like it. A temporary work around was put in place using RoundToValueExpression with same value as a string.

Update 3.11.4

New: Changed the email notification for automated tasks to include the success of the run and a link to the result if results recorded.

Update 3.11.3

Fix: When sending an email campaign an invalid email addresses would halt execution of the batch.

Fix: When Views were reloaded the existing view of the same name was getting an error when unloading.

Update 3.11.2

New: Upgraded web.config targetFramework to 4.6.1.

Update 3.11.1

New: Added the ability to change the targetFramework in the web.config when Application.InstallUpdates is run.

Update 3.11.0

New: New compilation using Visual Studio 2017.

New: Alipay payment gateway integration.

New: New Human Verification Method called Honey Pot.

New: A new URL parameter EndSessionOnComplete will abandon the session once the request is complete. It has been implemented when running automated tasks.

New: New property added Application.ActiveSessionCount which can be used to view how many sessions are currently active.

Fix: Will now only show payment methods for the currency the user has selected.

Fix: Removed unused Windows Service functions.

Update 3.10.4

Fix: A method definition created from configuration file had an incorrect qualified name for the returns value.

Update 3.10.3

Fix: A new base.js function to allow you to click on the 2nd and subsequent inputs in a control wrapped with a label.

Update 3.10.2

New: A new Base.js function that detects a click on an element and toggles a class in another element. To acheive this do the following to the clickable element:

  • Add a class called toggler.
  • Add an attribute called data-selector which contains a CSS selector pointing to the element(s) you want to toggle.
  • Add an attribute called data-toggle-class which contains a CSS class you want to toggle (add if not there/remove if is).
  • Examples: Put the first one on the page to open the subscription form and the second on the subscription form to close it.
    • <span class="button toggler" data-selector="#subscription-form" data-toggle-class="show">Subscribe Now</span>
    • <span class="button toggler" data-selector="#subscription-form" data-toggle-class="show">Close</span>

 

Update 3.10.1

New: A new method called Captch Equation for the Human Verification Code will display an equation in the Catcha image for the user to solve.

Update 3.10.0

New: You can now specify multiple language sites. This should be used when duplicating sites for different cultures (language and/or location). It tells the search engines that the content in the other sites is duplicated for another culture. This way the search engines will not penalise you for having duplicate content. Also, visitors will be redirected to the appropriate site based on their default culture (language and current location). To do this follow these steps for every site:

  • Set all supported languages for all sites in each site
  • Set base culture code for each site
  • Set Domains in Configure Website for each site (make all the same)
    • Format: [Domain], [Culture Code]; [Domain], [Culture Code]; etc
    • Example: www.theinternetplatform.com, en; www.theinternetplatform.com.au, en-AU; www.theinternetplatform.com.cn, zn-CN
    • Note: The first domain should be the default where the user is redirected if no culture is matched.

Error: When filtering a collection with a boolean property.

Update 3.9.5

New: New version of the HTML editor.

New: New base.css styles.

Fix: Error when loading the definition inpsector for a custom business collection item after a reset.

Fix: Error when Application.GetView that inherits another business collection is reloaded.

Update 3.9.4

New: Kosova added to Countries with a temporary ISO code of XK and currency EUR.

Update 3.9.3

New: If an article file name is specified ending with a forward slash (for example, http://yourdomain.com/contact/), it will be redirected without the ending forward slash (for example, http://yourdomain.com/contact).

Fix: Services functions List Times and Open As ICalendar were not returning all times in some circumstances.

Update 3.9.2

New: Now records the date/time a service booking is booked.

Update 3.9.1

Fix: Open As ICalendar now has correct start and finish times based on the time zone.

Fix: Error in install updates for websites using cart items.

Update 3.9.0

New: Can now set the base time zone for the system.

Update 3.8.4

Fix: When re-emailing a campaign when Not Sent To Recipient For was other than Ever.

Update 3.8.3

Fix: Could not copy objects with a filename such as articles, categories, tags, industries and groups.

Update 3.8.2

Fix: Digital items were not automatically sending once a client paid in full.

Fix: Problem with already scheduled automated tasks not running due to invalid parameters attribute.

Update 3.8.1

New: You can now to send email campaigns to recipients again after a specified time period. For example, 1 year might be specified for an annual renewal notice.

New: Email campaigns are now sent in batches with an interval between each batch so that the server is not overloaded when sending large campaigns.

Update 3.8.0

New: New scheduler created which runs on the web application which is intended to take over from the current Windows Service. For the scheduler to work, set the Application Pool Start Mode option to AlwaysRunning. If you cannot access this property set the Idle Timeout to zero or a high number, for example, 9800 minutes (7 days). If the application pool expires the application is ended and the cached schedule is removed and never called. Note: Keeping Session timeout to say 20 minutes will not affect this.

New: System-wide errors which have not been caught are now logged.

New: The system log is now output to CSV which can be loaded via spreadsheet and sorted, etc.

New: The payment method for Credit Card via MIGS Offsite's secure hash method was updated to SHA-256.

Update 3.7.24

Fix: Searchable drop down was not aligning up with bottom of input box.

Update 3.7.23

New: Application.GetView has an additional parameter Inherits which will allow you to create a view that inherits another Business Collection.

Update 3.7.22

New: You can now specify an ID as the default value of an Item Definition.

Fix: Error when specify postcodes to regions in delivery zones.

Update 3.7.21

Fix: Error placing order for Service Bookings.

Update 3.7.20

New: Now adds meta tags (first, prev, next and last) for pagination in Directory and Article Views.

Update 3.7.19

Fix: The ServiceBooking.SendConfirmationLetter would only send when the administrator made the booking for the user.

Update 3.7.18

New: Read-only property DeliveryNote.TrackingURL generated from Order.DeliveryMethod.TrackingURL and the TrackingCode.

Fix: The SetDispatched function will not ask for TrackingCode if the Order.DeliveryMethod.TrackingURL is not set.

Update 3.7.17

Fix: The Available Quantity check returned zero for trading items with options even though the availability was set.

Update 3.7.16

New: Added property FinishTime to ServiceBooking and defaulted to StartTime plus Service.Duration.

New: Added function OpenAsICalendar to ServiceBooking.

Update 3.7.15

New: The following functions will not be executed in the process if AllowExecute returns False. Also, a new parameter BCCMe on each function will BCC the administrator if set to True.

  • DeliveryNote.SendNotification
  • Membership.SendApprovalNotification
  • Order.SendInvoice
  • Order.SendPurchaseOrder
  • Order.SendThankyouLetter
  • OrderItem.SendDigitalItem
  • Payment.SendReceipt
  • ServiceBooking.SendCancellationLetter
  • ServiceBooking.SendConfirmationLetter
  • User.SendActivationRequest
  • User.SendApprovalNotification

Update 3.7.14

Fix: Delivery Country is now required by default in Request Order Details.

Update 3.7.13

New: Function [Set Delivery Method Or Pickup Outlet] will enable the client to recalculate the freight based on their selection, prior to checking out.

Update 3.7.12

Fix: Was not finding the correct pickup outlet in some circumstances.

Update 3.7.11

New: You can now create URL redirects for missing files under userfiles folder.

Update 3.7.10

New: You can now create URL redirects for missing files via the content management system.

New: The system will ask if you would like to create a URL redirect when renaming a file such as articles and categories.

Update 3.7.9

Fix: The user rates are now reset after Request Order Details in case the user changes the delivery country.

Update 3.7.8

Fix: On first time setting the user rates with tax inclusive set to database the incorrect tax would be added to the user freight price.

Update 3.7.7

New: Now the system sets the user freight and tax rates only when accessed instead of on load of the website. This allows for faster loading.

New: When the delivery destination is set the pick-up outlets are filtered to show only those in the country or within 1000km and also sorted by nearest to furthest.

Update 3.7.6

Fix: Getting user geo location failed.

Update 3.7.5

New: System configuration option called Show Tax Breakdown On Invoice. Setting Yes will show how much tax on each item. No will only show the total tax.

New: Added tax included on line items and totals on confirm order.

Update 3.7.4

New: System configuration option for Tax Inclusive as follows:

  • [No] to store and display pricing exclusive of tax,
  • [Display] will store pricing excluding tax but display with tax based on tax rate for current delivery zone, or
  • [Database] will store and display the price including tax. This inclusive price will be the same for all delivery zones.

New: Added tax included on line items and totals on tax invoice.

New: Removed freight per product as a system option.

Fix: When search engine robots loaded the website, setting the default user rates would return an error because their are no browser culture settings.

Update 3.7.3

Fix: Rounded currency data to 2 decimal places.

Update 3.7.2

Fix: Correction to country records with special characters.

Update 3.7.1

Fix: HTTPS Everywhere was not working on short-cut URLs.

Update 3.7.0

New: You can now set up Outlets that are either stores (where products are picked up and/or delivered from) or warehouses (where products are only delivered from). You can assign or create a user record as an outlet. By default the licensee user record is set as an outlet (warehouse). If you have one or more stores the visitor will be prompted to select a pickup location (or not) when checking out.

New: You can now set up Delivery Zones (from one pickup region to one or more destination regions). Freight Rates and Tax Rates can be set for each zone. The system will try to detect the region the visitor is at and will set the default freight rates and tax rates based on that region. From the shopping cart, before they check out, the client will be able to change the default region by selecting a country from a drop-down (and state, postcode if necessary to determine the region) which will update the default freight and tax rates – essentially giving them the correct price before proceeding to check out.

New: Freight Calculation Method is no longer system wide. It can be set on each delivery method.

New: Tracking URL can be set on each delivery method.

New: Freight based on weight is now calculated on kilograms instead of grams.

New: HTTPS Everywhere is now available. You must have a current SSL Certificate before setting this option. It can be set under System Configuration - Configure Website.

New: POP3 and SMTP ports now editable. They can be set under System Configuration - Configure Email.

New: The person booking services is added to the property ServiceBooking.User for each attendee they book.

New: Executing a business object method by submitting a form using method="GET" can now accept the parameter names in the URL. For example, a method with 2 parameters, Country and Postcode, would accept any of the following:

  • &Parameters=Australia,4220
  • &Country=Australia&Postcode=4220
  • &Country_Control=Australia&Postcode_Control=4220

Fix: Updated the HTML output from Application.DisplayVideo for YouTube videos.

Fix: Author select field on articles now sorted by last and first name.

Fix: Sending of the delivery notification will now also be sent to administration.

Update 3.6.16

Fix: Error with Google Tag Manager container snippet.

Update 3.6.15

New: Add property Google Tag Manager Container ID to Templates. When a container ID is supplied, the Google Tag Manager container snippet is added into the HTML output when that template is used for displaying a page.

Fix: Updated the Google Analytics tracking snippet to latest version.

Fix: Updated the YouTube output code generated from Application.DisplayVideo to use iframes.

Update 3.6.14

New: A trading item (product, service or subscription) can have a digital item associated to it and when ordered, it is emailed to the trading entity. To do this you must create a page with output type of email and a file name in the format of digital-item-[trading item file name]. For example, for a product named widget the email page would be named digital-item-widget.

New: Can now use mulitple attribute for file inputs in the Email Form. For example, <input type="file" multiple="multiple"/>.

New: In freight rates when leaving Base Price or Price Per Unit blank will set to Order Freight Price to blank which will display POA - price on application.

Update 3.6.13

New: Card holders name in SecurePay is not a required field but passed anyway.

Update 3.6.12

Fix: Implemented additional response status checks when processing credit cards with SecurePay.

Update 3.6.11

Fix: Implemented tighter security functionality when processing credit cards with SecurePay.

Update 3.6.10

New: Expressions in the Title of a menu item by having the first letter an equals followed by the expression. For example, ="My Cart (" & CartItemsQuantity & ")".

New: A function CartItemsQuantity added to the Application business object. Useful to display in menus as above.

Update 3.6.9

Fix: An error occurred when an order placed but there were no payment methods set up.

Update 3.6.8

Fix: Pages with a dot in the file name would include the dot in the body class attribute. Dots are now replaced with dashes. For example, <body class="cartitems.requestorderdetails"> now becomes <body class="cartitems-requestorderdetails">.

Fix: Client side script was not validating required checkboxes.

Update 3.6.7

Fix: System could not determine if JavaScript enabled on client browser when the site first loaded via a dynamic file name. For example, www.yourdomain.com/contact-us.

Update 3.6.6

New: Use the function GenerateHTMLSelectMenu([Menu]) on the Application business object to generate a drop down for the menu object of ID passed.

Update 3.6.5

Fix: The window overlay would appear on form submit when form invalid.

Update 3.6.4

Fix: The form validator was not validating some controls correctly.

Update 3.6.3

New: Adding the class disable-window-on-submit to a form will, when submitted, cover the window with a semi-transparent overlay making it look as if disabled. In the center of the overlay is a spinning arrow indicating to the user the form is being processed.

Update 3.6.2

Fix: View Port setting incorrect on some domains.

Update 3.6.1

New: Added class ellipse (in base.css) which turns an element into an ellipse shape.

Fix: Added missing styles for new Pick List control in base.css.

Fix: Some styling errors in base.css.

Update 3.6

New: JQuery functions added in base.js as follows:

  • Stick an element to the edge (left, right, top and/or bottom) of its scrollable container. This can be acheived by adding stick-left, stick-right, stick-top and/or stick-bottom classes to the sticky element.
  • Replace the normal scrollbar with arrows that become visible when hover over scrollable element. This can be acheived by adding scroll-arrows class to a scrollable element.
  • Toggle nav sub-menus open/close when clicked. This can be acheived by adding toggle class to a nav element.
  • Form validator (Beta).
  • Pick list (Beta).

New: Styles added in base.css as follows:

  • Class scrollable-x sets the element with horizontal scroll bars.
  • Class scrollable-y sets the element with vertical scroll bars.
  • Class hide-scrollbar hides the scroll bar while still being able to scroll.

Fix: Some styling errors in base.css.

Update 3.5.45

Fix: The licensee website address in the email template was adding the full path unnecessarily.

Fix: Credit Card Via SecurePay requires a Purchase Order No. This was not happening via Process Payment on the application.

Update 3.5.44

Fix: When the links in the email template was generated via a merge field it did not include the full path.

Update 3.5.43

New: Added "Delivery Notes" to the administrator's menu.

Fix: When the logo in the email template was generated via a merge field it did not include the full path.

Update 3.5.42

New: "Open As iCalendar" has been added (to the Service Time object) which will allow you to add the event/class/etc to your calendar such as Outlook.

Update 3.5.41

Fix: When a form was submitted with checkboxes selected and an error the form was not repopulating with the submitted data.

Update 3.5.40

Fix: List articles were listing articles not accessible to current user.

Update 3.5.39

Fix: When no groups are included in an email campaign the unsubscribe did not work. Now it will change the email status on the user to blocked.

Fix: Only the first click by a user on a link in an email is recorded.

Update 3.5.38

New: Can now set a business object property to be calculated. On the property definition set the attribute Calculated to true. When a value is requested for a Calculated property the DefaultValueExpression is evaluated and returned.

Update 3.5.37

New: Whenever an email is sent to a user, excluding those from an email campaign, a note is added to the user record stating that an email was sent with the subject.

Fix: Definition Inspector updated with new formatting and styles.

Fix: Properties of type GroupOfValues were getting an error when no property names supplied.

Fix: Was not formatting properties of type GroupOfValues when the Format attribute supplied.

Update 3.5.36

Fix: When generating content, merging expressions is now performed prior to form controls being populated with current object data. This is necessary if the expression generates form controls.

Fix: When booking a service it now displays the start time(s) in the order item additional information.

Update 3.5.35

Fix: GenerateHTMLControl on checkboxes did not generate a label when required. Also, removed required attribute which forces it to be checked.

Fix: Unknown User Initial Access Point when set was getting a type mismatch when loading from configuration settings.

Update 3.5.34

New: The configuration setting for "Unknown User Try Login First" has been changed to "Unknown User Initial Access Point" with 3 options.

  • Check For Registration: This new option will ask the user for to submit their email address and check to see if it is on the database. If it is they are directed to Login otherwise to Register.
  • Login: Takes the use to Login.
  • Register: Takes the use to Register.

New: You can now dispatch part of an order.

Fix: Changed the category list to display the parent category name instead of "All" when used.

Update 3.5.33

Fix: Added an option for label positioning before controls to the function output of GenerateHTMLForm and GenerateHTMLControl.

Fix: Added open graph meta information for the URL in the blog post and product templates.

Update 3.5.32

Fix: More changes to function output of GenerateHTMLForm and GenerateHTMLControl.

Update 3.5.31

Fix: Changes to function output of GenerateHTMLForm and GenerateHTMLControl.

Update 3.5.30

Fix: Changed the default order complete message to only list outstanding payments.

Fix: Replacing form inputs and selects in a custom form failed in some circumstances.

Update 3.5.29

Fix: Issues to Cancel Times and Cancel Reservations for service schedules.

Update 3.5.28

New: Added Open Graph Protocol metadata to website-blog-post-default and website-product-default templates.

Update 3.5.27

New: Added property to template called Metadata. Use this property for custom metadata. You may use merge fields and the resulting metadata is added to the <head> tag. The auto-generated meta tags based on existing files (added in Update 3.5.23) have now been removed. You can manually add these if required to this new property.

Fix: Removed auto paragraph feature from the HTML editor.

Update 3.5.26

Fix: Added currency code and corrected order info for credit card via MIGS offsite payment method.

Fix: Corrected spelling of Occurrence fields in Schedule tables.

Update 3.5.25

Fix: When booking for a service the order was not complete and the user did not get to specify users.

Update 3.5.24

New: Can now specify a plural display name on the ItemDefinition using CollectionDisplayName and CollectionDisplayNameExpression. If none is specified it uses a built in function called Pluralize.

Fix: When booking for a service not in advance it asks twice for number of attendees.

Update 3.5.23

New: Meta tags for adding web app to device home screens. If the file with the same name is found in the root then the corresponding meta tag is added.

  • <link rel="manifest" href="manifest.json" /> - for Google Android devices. May become W3C standard. See here for more info.
  • <meta name="msapplication-config" content="msapplication-config.xml" /> - for Microsoft Windows devices. See here for more info.
  • <link rel="apple-touch-icon" sizes="76x76" href="icon-76x76.png" /> - for Apple devices.
  • <link rel="apple-touch-icon" sizes="120x120" href="icon-120x120.png" /> - for Apple devices.
  • <link rel="apple-touch-icon" sizes="152x152" href="icon-152x152.png" /> - for Apple devices.
  • <link rel="apple-touch-icon" sizes="180x180" href="icon-180x180.png" /> - for Apple devices.

New: Meta tag for application name: <meta name="application-name" content="My Web Application" />

New: Meta tag for associating an image to an article. Uses open graph protocol developed by Facebook. <meta property="og:image" content="http://www.yoursite.com/myimage.jpg" />

Update 3.5.22

New: Meta tag added to block safari from detecting and formatting what it thinks are phone numbers. If you want phone numbers clickable from your phone then they need to be formatted as follows: <a href="tel:+5555555555">+5 (55) 555 5555</a>

Update 3.5.21

Fix: Updated stylesheets to modify system folders to lower case because robots.txt blocks none lower case access to those folders.

Update 3.5.20

New: Can now pay for a service in advance of booking a time.

Update 3.5.19

Fix: Replace a missing file from the file manager.

Update 3.5.18

New: Function on business objects "ToHTML(HTMLToMerge)" which will merge HTML passed as parameter to the object to output HTML.

New: Function on business collections "ToHTMLArray(ItemHTMLToMerge, TopCount, Randomise, Page)" which will merge HTML passed as parameter to the items in the collect to output an array of HTML.

  • TopCount: is the number of items to output. -1 for all.
  • Randomise: if true will shuffle the items in the collection before outputing the TopCount.
  • Page: the first item to output will be (Page - 1) x TopCount + 1.

Update 3.5.17

Fix: Searching collections for text did not filter the results.

Update 3.5.16

New: Can now list all visible articles by using the attribute "PageType=ContentView" or the shortcut path "content/" in your URL. This is useful for listing the results when searching the content of the website.

New: Function GenerateHTMLSearchControlForArticleView which you can use to add a search box to the content, blog, exhibit, guestbook and shop views to search for articles.

New: Function GenerateHTMLSearchControlForDirectoryView which you can use to add a search box to the directory view to search for users.

Update: Removed unused / unnecessary spare properties from Users business object.

Update 3.5.15

New: Added the contact details of the trading entity to the purchase order for the supplier.

Update 3.5.14

Fix: Error when adding a product to the cart due to data being reset prior to checking availability.

Update 3.5.13

Fix: Error when adding a new item with one or more selected from multi select property.

Update 3.5.12

Fix: Supplier purchase orders not emailed to correct email address.

Fix: Supplier purchase orders did not include delivery details of customer when drop shipped.

Update 3.5.11

Fix: Optimised memory and processor usage when reading data from the database.

Update 3.5.10

Fix: Added default value to Product Dropship.

Update 3.5.9

Fix: Error adding auction credit to cart.

Update 3.5.8

Fix: Rewording of properties used for filtering membership emails to make more sense.

Update 3.5.7

Fix: Error when trying to edit a user record due to no auction credit (product).

Update 3.5.6

Fix: Error when trying to set a property to a negative duration. For example, -7 days.

Update 3.5.5

Fix: Error occurred when trying to view an invoice with no payment.

Fix: Additional error checks implemented when processing a SecurePay credit card transaction.

Update 3.5.4

New: When an order is placed by a customer, purchase orders are sent to suppliers of products ordered. If all the products for a supplier are marked for dropshipping then the delivery details of the customer are included on the purchase order for the supplier to ship directly to them. This is only true if all the products purchased for a supplier are marked for dropshipping otherwise the delivery details of the licensee are included on the purchase order.

New: The membership approval notification will now be sent to new members of groups which have automatic approval and where a subscription payment is required.

Update 3.5.3

New: The membership approval notification will now be sent to new members of groups which have automatic approval and where a subscription payment is required.

New: Can now submit your bid prices before logging in and buying auction credits if needed.

New: Can now submit a comment or rating on an article before logging in.

Update 3.5.2

Fix: The human verification code was not showing for application and collection methods when necessary (no one logged in).

Update 3.5.1

Fix: When an email opened via "View in Browser" the links such as "Unsubscribe Me" no longer worked.

Update 3.5.0

New: When sending an email campaign you can now merge to memberships with specific filters on status, expiry, etc. and the recipient will be the member.

New: When sending an email campaign you can now set up a custom merge to any collection item with a property related to a user. For example, merge to payments and the recipient will be the trading entity. This could be used to send out thank you for your payment letters.

New: When sending an email campaign the "View in Browser" has been added to the email output by default.

New: Can now merge the email subject using expressions in the subject. The expressions must be enclosed by ASP code block tags "<%=" and "%>". However, the expression must still be VB Script for now. Here are some examples:

  • Happy Birthday <%=FirstName%>
  • <%=Member.FirstName%> your membership to <%=Group.Title%> is expiring on <%=PropertyValueFormatted("ExpiresOn")%>

Fix: Unnecessary reloading of HTML for each email sent has been eliminated which will speed up the output and decrease memory and CPU usage.

Update 3.4.18

Fix: When resending an email campaign in the same session it is possible that the recipients will receive it again.

Update 3.4.17

Fix: Modified system folders names in URLs throughout to be in lower case and modified robots.txt to only accept lowercase.

Update 3.4.16

Fix: Robots.txt was blocking scripts and stylesheets from being loaded by the search engines when indexing.

Update 3.4.15

New: Added property Style Classes to Menu Item. This allows you to add CSS classes for styling.

Fix: Found unnecessary recalling of function which would have slowed the application and taken valuable processing power.

Update 3.4.14

Fix: User import scripts received an error.

Update 3.4.13

Fix: Selecting a promotion based on an order when editing a product would cause that promotion to be based on selected items instead.

Update: Rearrange the invoice totals and renamed Total Outstanding Payment to Balance.

Update: Form field attribute names now inline with HTML5 standards.

Update 3.4.12

Update: HTML emails now are sent with an alternative plain text version which is extracted from the HTML.

Update 3.4.11

Fix: Expired members were still getting trading item member pricing due to error in function testing if they were a current member.

Update 3.4.10

Update: Streamlined the "Send Now" action on the Email business object.

Update 3.4.9

Fix: Orders for non-deliverables were including the default freight in the total.

Update 3.4.8

New: Added property "Password Last Updated On" to the User object which is set when the password is changed. Anyone with auto-login set prior to that date will be required to login manually.

Update 3.4.7

Fix: An order with part payment was not correctly processing the balance payment when paid.

Update 3.4.6

Fix: Create Note on User inserted html error into Notes when special character like ampersand was used in the author name.

Update 3.4.5

Fix: Error when setting the Base Culture Code.

New: Added "Set Base Culture" to System Configuration menu.

Update 3.4.4

New: Added display property "Total Payment Outstanding" to the order and invoice.

Fix: The "Pay" action on an order is now available if there is an outstanding payment required.

Update 3.4.3

Fix: The current menu item style was not being set for the home page in some circumstances.

Update 3.4.2

New: Upgraded the HTML editor to the latest version.

Update 3.4.1

New: Property "Is Deliverable" has been added to the product. If only non-deliverable items have been added to the cart then no delivery information is requested during check out.

Update 3.4.0

New: Properties "Dispatched On" and "Delivery Tracking Code" have been added to the order. "Set Dispatched" action on the order will ask for these properties and send the trading entity a notification. A page with Output Type of Email and file name "order.dispatchednotification" is required for the notification to be sent.

New: "Set Received" action on the payment will now send the trading entity a receipt. A page with Output Type of Email and file name "payment.receipt" is required for the receipt to be sent.

New: Can now "Send Email" from an order or payment which will merge with the order or payment and send to the trading entity.

Update 3.3.2

Fix: Change made in previous update to lists that were too wide a horizontal scrollbar appears is reversed due to vertical scrollbar appearing when hover menus appear below bottom of list.

Update 3.3.1

Change: When lists are too wide when viewed on a narrow screen it is now scrollable vertically.

Update 3.3.0

New: Credit card payments can now be processed through SecurePay payment gateway.

Update 3.2.12

Fix: When editing a form on screen 600px or less now has labels above input.

Update 3.2.11

Change: Added a few entries to robots.txt due to entries being case-sensitive.

Update 3.2.10

Change: Properties Required On and Additional Information have been added to the invoice if they have a value.

Update 3.2.9

Change: Start time displayed in booking confirmation screens and emails now hides the time if 12:00am.

Fix: Position property on a ranked object was not defaulting to the next available position.

Fix: Search text was trying to search properties that did not have a column in the database table.

Update 3.2.8

Change: Changed robots.txt to stop the indexing of certain folders.

Change: When the system detects a file not found in certain folders it is immediately returned with the error.

Update 3.2.7

Change: Calendar View now loads Service Times by default.

Fix: Error in Definition Inspector due to upgrade of .Net Framework.

Update 3.2.6

Fix: Error in Service Time object display format.

Change: Start Finish property for a Service Time object now use the upper and lower accuracy values when formatted.

Update 3.2.5

Fix: Error in Users.xls import script.

Update 3.2.4

New: Options on trading items can now include once off fees.

Update 3.2.3

Fix: When a task is assigned to a user, the project will also be assigned to that user, if the project doesn't have a user assigned to it.

Fix: The generic email that is sent when a project or task is assigned, now links directly to the project or task.

Fix: Turned off autocomplete on captcha input fields. This will only affect captcha input fields on auto-generated forms.

Fix: New projects and tasks menu items were only visible to developers.

Fix: Properties or parameters with a drop down list and blank item with No Value Text when selected and submitted returned an error.

Fix: Error occurred after login to access a restricted page.

Update 3.2.2

Fix: Base properties and methods were not available for custom business collections and their items.

Update 3.2.1

New: Import script for exported Outlook (version 2010 or higher) CSV.

Fix: Unable to download CSV file.

Update 3.2.0

New: Task Management System has been added. This system is fully integrated with other systems and requires a license for use.

Fix: Updated the Chilkat library to the latest version 32bit version.

Update 3.1.3

Fix: Updated setup.aspx to redirect to home page instead of Configure Website.

Update 3.1.2

Fix: Updated the Chilkat library to the latest version. The Chilkat library is a third party tool used to sending emails and checking for bounced emails.

Update 3.1.1

New: Any menu items with the same URL as the current page will now have a class="current". This will allow you to style the current menu differently.

Update 3.1.0

New: Search box added to collection view to easily search text properties for entered text.

Update 3.0.14

Fix: The members price on a trading item is now only used for current members.

Update 3.0.13

New: The class attribute has been added to the HTML tag with a value of either "js" (javascript) or "no-js" (no javascript). This enables alternate styles to be used when javascript is turned off.

New: Class "zoom" added to base.css styles. An element with this class will zoom or enlarge by 150% when hovered over. Using this class with classes "x2", "x3" or "x4" will increase the zoom by that factor.

Update 3.0.12

Fix: When the freight calculation is based on dollars spent it is now calculated after discounts.

Update 3.0.11

New: Can now add a control to a form called OnSuccessMessage which the value will be displayed when the form is saved as an object (PageType=ObjectView). Leaving the value blank will skip any message being displayed. If the control is not included on the form then the default message is displayed.

Update 3.0.10

Fix: When more that one user logs in within the same session time it causes a concurrency violation due to the login process trying to update the Last Logged In date on the same record.

Update 3.0.9

Fix: site map was not generating the product pages due to unable to detect currency because country/language unknown.

Fix: site map was timing out.

Update 3.0.8

New: can now send email (from the Email Marketing System) to database by leaving all included groups as unselected.

Fix: when only the time part of a date time field was required an error occurred when trying to convert.

Fix: change the generator of the html head to output scripts last.

Update 3.0.7

Fix: modified base styles to include html5 inputs.

New: included in base styles, columns can now be x5 and x6.

Update 3.0.6

Fix: Delivery details by default are hidden when checking out for services booked.

Update 3.0.5

Fix: Error when trying to upload a PDF - invalid mime type.

Update 3.0.4

New: Can now set available quantity for each option combination of a trading item.

Update 3.0.3

Fix: Also applied mime type checking to PageType MethodView and EmailForm.

Update 3.0.2

Fix: Error when a file is uploade with an exceptable mime type but no binary signature exists for that mime type.

Update 3.0.1

New: When a file is upload the file extension is checked against allowable mime types. The content of the file is then compared to the binary signature of that mime type if one exists.

Update 3.0.0

New: Website management tools are now called Inology's The Internet Platform.

New: Upgrade to .Net Framework 4.5.

Fix: Attachments folder path now defaults to the business objects' file name if it has one otherwise uses the ID for the folder path.

Fix: When business objects with a file name are renamed the attachments folder path is also renamed.

Fix: When business objects are deleted the folders containing the attachments are also deleted.

Pre 3.0.0 Software Updates

This section is used to keep you informed of the latest changes and bug fixes to the Blue Rock website management tools software.

Update 2.30.1

New: Changed install updates so files could be renamed or copied to a different name.

Update 2.30.0

New: Install Updates scripts now can have preinstall information which the user must read and confirm before proceeding.

New: Install Updates now can be redirected to an alternate URL after completion of a script.

Fix: Changed view permissions on administrator menu items depending on whether an administrator, licensee or developer is logged in.

Update 2.29.24

Fix: Removed the automatic focus to the first field in a form. HTML5 has introduced autofocus attribute on the input control to acheive this.

Update 2.29.23

Fix: Modified nav.css to hide title due to tooltip showing same. Also, removed fade in and out of drop down display due to safari on touchsreen devices not able to open these drop downs.

Update 2.29.22

New: Added file manager under content management menu.

New: Updated website styles viewing page.

Update 2.29.21

Fix: When generating the article or directory path with full URL enabled returned an error.

Fix: Moved the nav menu out of the system css file.

Fix: Removed upload status.

Update 2.29.20

Fix: Hid deprecated name properties on business objects by default.

Fix: Page unload method failed when redirected to setup.aspx due to no database detected.

Fix: setup.aspx was redirecting to an invalid URL.

Update 2.29.19

New: Modified lightbox-gallery.js so galleries can be generated where each image is a background of an <a> tag. This allows you to set all the <a> tags to the same size (i.e. a square box) and set the image background to cover makes for a neater gallery.

Update 2.29.18

Fix: Added Categories and Tags as available properties of Product by default.

Update 2.29.17

Fix: Errors in definition inspector and sorted private properties and methods.

Update 2.29.16

New: Definition Inspector now displays all class, property, method and method parameter definitions. You can also edit the attributes for each definition. However the Definition Inspector is now only accessable by a logged in developer.

Fix: Properties of type WebAddress or FileURL with attribute Relative set to false but had a relative URL were linking incorrectly. For example, http://scripts/system.css.

Update 2.29.15

Fix: EmailForm was sending unnecessary fields to administration.

Update 2.29.14

Fix: Generate methods were returning conversion error on missing parameters.

Update 2.29.13

Fix: Testing if membership was current returning incorrect answer.

Update 2.29.12

Fix: When sending emails only current approved members of the selected groups are included or excluded.

Fix: Added testing eWay payment gateway URLs and customer ID as selectable values.

Fix: Updated PayPal process payment to use standard HTTPWebRequest instead of XML COM object.

Update 2.29.11

Fix: When saving a form with an item property and where NoValueDisplayText was set an error would occur.

Fix: When a form was saved item properties were not being disposed properly.

Update 2.29.10

Fix: Article and directory view filters (categories, tags, issues, authors, regions and industries) links will not be followed if already filtered.

Fix: Page number was not included in canonical meta tag url when viewing subsequent page of article or directory view.

Fix: Generation of the site map and subsequent pages in article or directory view were not being indexed.

Fix: The default auto-resize on images and videos when developer not logged in has been removed.

Update 2.29.9

New: A view function to view a user as if via directory. Can also view the logged in user via Application.LoggedInUserView.

Fix: Error when processing recurring payments.

Update 2.29.8

Fix: Only administrators could upload attachments. Now by setting configuration settings you can overwrite the default restrictions.

Update 2.29.7

Fix: Custom pages for object view or method view would get an error when replacing checkbox values.

Update 2.29.6

Fix: Default template was loading instead of selected template for an article.

Update 2.29.5

New: The ToString function of a business object will now use the ClassDefinition.DefaultFormat expression.

New: When using PageType=CustomView on a business object the system will look for the template website-[classname]-default and merge the object to it for display. For example, default.aspx?PageType=CustomView&Collection=Users&ID=1234 will merge the user record with ID 1234 to the template named website-user-default if it exists.

Fix: When multi-payment option is chosen it is displayed in the order confirmation when checking out.

Update 2.29.4

Fix: Client side call to set geolocation did not have access to execute.

Fix: Administrator could not select a different author for an article.

Update 2.29.3

Fix: Outlook import script error.

Update 2.29.1

Fix: Access to set user geolocation was denied.

Fix: Script to call server side function to set user geolocation would not work if user path had sub-folders.

Update 2.29.1

Fix: Error when generating license key when IP used instead of domain.

Fix: Set import script timeout to unlimited.

Update 2.29.0

New: The users current geographic location based on the IP address is now accessible via the functions Application.UserGeolocation, Application.UserLatitude and Application.UserLongitude. However, an IP address ranges database needs to be imported for it to work. There are databases available on the internet, some free while others licensed. An import script has been set up for one of the free databases. See the import script for details.

New: A javascript function (setUserGeolocation) has been made available to get the client geolocation and update the server. This will overwrite the less accurate IP address geolocation. Here is an example usage with true to show errors: Get My Geolocation]]>

New: Application.UserRegion is accessible which is set based on the closest region to the current geolocation.

New: When a new article is created the geolocation and region is defaulted to Application.Geolocation and Application.UserRegion.

New: The directory view or article view can be filtered to the current region based on the currect geolocation via /region/geolocation/. For example, http://www.yourdomain.com/directory/region/geolocation/

Update 2.28.5

Fix: Error when generating old author list view for articles due to anonymous articles.

Update 2.28.4

Fix: Error when generating directory view due to wrong object being passed.

Update 2.28.3

Fix: The generate list functions used in merge fields in some circumstances were not giving the correct results due to VB Script passing short integer IDs and conversion did not recognise it as an integer.

Update 2.28.2

Fix: Issues list was not generating all months with articles.

Fix: Not disposing some objects causing memory leak.

Update 2.28.1

New: Issues list for article view will now list only the years with exception of the current or selected year then list months.

Update 2.28.0

New: You can now list users in a directory view. Shortcut URL is directory/. The directory view can be filtered by group, industry, country, state and region. Lists for these can be generated for the side panel. By default the directory view looks for website-users-default template to display the output in.

New: A list of groups can be generated for the side panel of an article view (blog, exhibit, forum, guestbook and shop).

New: You can now filter articles by country, state and region. A list of countries, states and regions can be generated for the side panel of an article view.

New: The article view filter lists (groups, categories, tags, issues, authors, regions and latest comments) can now be filtered by the current group, issue year, issue month, category, tag, author, country, state and region.

New: The directory view filter lists (groups, industries and regions) can be filtered by the current group, industry, country, state and region.

Update 2.27.1

New: The category, tag, issue and author lists generated now include an attribute in the link called data-articles-count which can be used to display the number of articles that will be displayed if the link clicked.

Fix: Unnecessary loading and closing of collections and items to obtain the generated lists have been minimised. These lists should load faster. The articles view (blog, exhibit, guestbook, forum and shop) should also load faster.

Update 2.27.0

New: HTMLDocuments and related business collections have been split and renamed as follows:

  • HTMLDocuments - Templates and Articles
  • HTMLDocumentScripts - TemplateScripts
  • HTMLDocumentStylesheets - TemplateStylesheets
  • HTMLDocumentCategories - ArticleCategories
  • HTMLDocumentTags - ArticleTags
  • HTMLDocumentComments - ArticleComments
  • HTMLDocumentRatings - ArticleRatings

New: The Article, Group, Category, Tag and User business objects have a new property called FileName which is forced to URL format (alpha-numeric, dashes and dots only), required and unique. With the exception of the User object, Title has been added as a required property and the Name property is deprecated. A user with the appropriate permission with be able to rename the filename.

New: The Template also has the new property called FileName which is forced to URL format, required and unique. The Name property is deprecated.

New: With the Menu Item business object, the Title property has been added to replace Name which is deprecated.

New: Can now allow new galleries, blog posts, forum topics, testimonials, products and services without the user being a member of a group. See Configure Components to set permissions. When the user has the appropriate access the Add New Article button will show up in the articles view (i.e. Exhibit, Blog, Shop).

New: Categories can now be manually sorted with the new Position property the same as Menu Items.

New: Snippets business collection has been added only with the function GetSnippetContent([FileName]) which can be used to insert HTML into for example side panel of templates making it easy for the administrator to edit without damaging the template.

New: Regions now have the properties Longitude and Latitude with functions to set them.

New: Articles now have the properties Region, Longitude and Latitude if a region is selected Longitude and Latitude will automatically be set to the regions values. Venue Region on services has been deprecated.

New: Permissions on groups and memberships can now be set from All to Developers.

New: When a reset is required after an install updates then it redirects to redirect.aspx which saves the web.config forcing all current sessions to close and reload the new system DLLs.

New: Renamed base aspx files using the URL format.

Fix: System.css styles were changed to display better with the upcoming new base stylesheet to be released.

Fix: Upload status message (upload-status.aspx) was pointing to the wrong stylesheet.

Update 2.26.2

New: Adds the template and article names of the current page to the body class attribute.

Update 2.26.1

Fix: Add New button not showing in HTML Document Stylesheets.

Update 2.26.0

New: Scripts and stylesheets are no longer limited to the local path.

New: The system scripts and stylesheets are no longer hard coded in the base template. They can now be removed or changed if need be.

New: You can now change the default paths where files, images, media, scripts and stylesheets are stored.

New: They system will now generate a datalist and associate it to the input control for fields with selectable values but not limited to those values For example:

<input type="text" id="Country" name="Country" list="CountryList"/>
<datalist id="CountryList">
<option value="Australia"/>
<option value="New Zealand"/>
</datalist>

New: You can now create custom membership status messages for each group. The system would look for a custom page for the current group then the parent group and so on while there is a parent group then look for the default custom page. If a custom page is found it merges the membership record and displays it otherwise displays the standard system page. For example, say a subscriber is approved to a group called "Mountain Bikers" which is a subgroup of "Cyclists". The system would look for the following pages.

  • mountain-bikers.membership.statusmessage
  • cyclists.membership.statusmessage
  • membership.statusmessage

Fix: Removed the column Condition from HTMLDocumentStylesheets and added the correct column IncludeExpression.

Update 2.25.8

New: You can now create custom approval notification emails for each group. The system would look for a custom email for the current group then the parent group and so on while there is a parent group then look for the default custom email. If a custom email is found it merges the membership record and sends it to the subscriber otherwise sends the standard system email. For example, say a subscriber is approved to a group called "Mountain Bikers" which is a subgroup of "Cyclists". The system would look for the following emails.

  • mountain-bikers.membership.approvalnotification
  • cyclists.membership.approvalnotification
  • membership.approvalnotification

New: You can now add a hidden control named "RedirectURL" to a custom form for editing objects which the system will detect and redirect to that URL after the object is saved.

Fix: Website.Register now sends the Activation Request email to the registrant if "User Login" is required for activation.

Fix: Group.SubscribeNewUser now processes the subscription thru Website.Register fixing the problem of user details being added to the database before they have activated it via login.

Fix: Email address validation was still not allowing certain characters.

Update 2.25.7

New: Can now set the template in the custom ASPX file. In the "@ Page" section create an attribute for example, TemplateFileName="website-with-side-panel".

New: Will now load custom properties added to an existing table. For example, Users table.

New: Can now set the display text of a property with no value. Add a configuration setting called NoValueDisplayText for the property. For example, User.Gender.NoValueDisplayText.

New: Can now have a custom links to Forward to a Friend, Edit My Details, Unsubscribe and the developer image. Simply create your own links in the email template with the following classes. If the system does not detect the Unsubscribe link then the generic links will be created. If the system does not detect the developer image (must have id="DeveloperImage") then the generic logo will be created.

  • ForwardToAFriend
  • EditMyDetails
  • UnsubscribeMe
  • Developer

Fix: The generic footer output containing Forward to a Friend, Unsubscribe, Edit My Details and the developer logo now has inline styles.

Fix: Can now preview an email without being logged in.

Fix: Updated the email address validation to allow for special characters in the local part (before the @). For example, john&jane.o'donnell@mycompany.com.

Fix: When a boolean property allows nothing then a drop down control will be displayed by default with an empty option.

Fix: You can now add a control named RedirectURL to a custom form that executes a method and if the method returns nothing then system will redirect to the URL in the control value.

Fix: Post an Article now checks if the particular article type is allowed to be posted by the current user.

Fix: Retrieving a list of images in a folder using GetImageRelativeFilePaths now picks up JPEG files as well.

Fix: A class definition was being loaded more that one which increased the memory required.

Fix: Now detects additional protocols in URLs. For example, skype:myskypename.

Update 2.25.6

New: By adding the optiontype attibute to an HTML select element as below will convert the control to radio buttons.

<select id="Country" name="Country" optiontype="radio">
<option value="AU" selected="selected">Australia</option>
<option value="NZ">New Zealand</option>
</select>

Update 2.25.5

Fix: Problem with registering with configuration of Login to Approve. Login details were sent blank.

Update 2.25.4

New: Can now set the Format on a collection property. The format is an expression which is run on the collection with the result return a string to be displayed.

New: Can now mark mulitple bookings used/not used at one time.

Fix: Problem with check availability when booking multiple services at one time.

Fix: Error when sending a custom letter.

Update 2.25.3

Fix: Updated the system styles so multi-select list items text does not wrap and the overflow is shown with an ellipsis.

Update 2.25.2

New: The shop now shows regular price as well as the current price if the trading item is on special.

Update 2.25.1

Fix: Error when adding a product to the cart.

Update 2.25.0

New: Additions made to menu items, scripts and stylesheets to more easily change the position/rank of the items in the list.

Update 2.24.4

Fix: Updated to the latest HTML Editor which fixes several problems in new browser versions.

Update 2.24.3

Fix: When editing an object or executing a method the Boolean properties or parameters were not setting to false when changed from true.

Update 2.24.2

Fix: Error in Javascript when loading a page from another.

Update 2.24.1

Fix: If a method or object is executed or saved via a form, missing controls (parameters or properties) are set with their default or current value.

Fix: When replacing the default FormView of an object or method by creating a page the selectable values and current values of properties or parameters with a type of LinkingForeignCollection will be loaded from the database as are other types.

Fix: Now returns to initial page when calling a succession of methods.

Fix: Now sets email receipt to bounced on certain error statuses instead of throwing an error and stopping the sending or emails.

Update 2.24.0

New: Can now customise the emails sent from the system. To do this you must create a page with a specific name, change Output Type to Email and select an email template for it to go out in. The title of the page becomes the subject of the email. The system will recognise that this page exists, merges and sends that page as an email to the recipient(s). Here is a list of the pages:

  • website.logindetailsnotification
  • auction.winningbidnotification
  • auction.unsuccessfulbidnotification
  • englishauction.winningbidnotification
  • englishauction.unsuccessfulbidnotification
  • lowestuniquebidauction.winningbidnotification
  • lowestuniquebidauction.unsuccessfulbidnotification
  • highestuniquebidauction.winningbidnotification
  • highestuniquebidauction.unsuccessfulbidnotification
  • order.invoice
  • order.thankyouletter
  • servicebooking.confirmationletter
  • servicebooking.cancellationletter
  • user.activationrequest
  • user.approvalnotification
  • user.emailsubscriptionnotification
  • membership.approvalnotification

New: Can now customise messages output from the system. To do this you must create a page with a specific name. The system will recognise that this page exists, merges and outputs that page instead of the default message. Here is a list of the pages:

  • auction.biddingclosedmessage
  • auction.biddingcompletemessage
  • englishauction.biddingclosedmessage
  • englishauction.biddingcompletemessage
  • lowestuniquebidauction.biddingclosedmessage
  • lowestuniquebidauction.biddingcompletemessage
  • highestuniquebidauction.biddingclosedmessage
  • highestuniquebidauction.biddingcompletemessage
  • cartitems.requestforquotesentmessage
  • cartitems.confirmorder
  • order.completemessage
  • service.bookingcompletemessage
  • Article.statusmessage
  • membership.statusmessage

New: Can now send an email to service bookings.

New: Can now cancel a service booking and cancellation letter sent to the user.

New: Now displays how much time till the session times out if the form relies on session variables.

New: Now stores the results of the blog directory submissions within Articles.

Fix: Service - List Times would sometimes show times outside specified criteria.

Fix: When a trading item other than a product is added to the cart the freight price and weight are set to zero by default.

Fix: Merge function sometimes got into an endless loop when duplicate foreign collection items were encounted.

Fix: Updated system styles to include nav minimization at 720px.

Fix: Updated jquery to version 1.10.1.

Fix: lightbox.js now works on older IE browser versions.

Fix: lightbox-gallery.js now includes all images in element, not just first level children.

Update 2.23.0

New: Products and Testimonials now work the same as the blog and galleries and can be displayed in article view. They can be access via the following short-cut URLs "shop/" or "guestbook/". Galleries can now be accessed via this short-cut URL "exhibit/".

New: Can now set the available quantity on trading items. For products this is automatically updated when an order is placed subtracting the quantity supplied from the available. For services it the number of users allowed per scheduled time.

Fix: No order will be recorded if there is no need when booking a service. If the price is zero and there are no options then there is no reason to create an order for the booking.

Fix: Site map was not generating with new HTML 5 doctype declaration.

Fix: Sets the residing geographic point when users are imported.

Update 2.22.16

Fix: Change to system stylesheet to hover the description and instructions of form fields in the backend.

Fix: Turn off all beta testers. This is to stop them automatically going into the next beta test phase.

Update 2.22.15

Fix: Change to system stylesheet to hide the background on minimized menus.

Update 2.22.14

New: New category menu generator which produces clean html without the unnecessary class information.

New: Attribute: "AllowEdit" and "AllowEditExpression" have been added to MethodDefinition which determines if the parameters are editable. If set to false then the method will be run with the default values for each of the parameters.

New: When someone books for a service it now asks to specify the attendees even if they have booked for one.

Update 2.22.13

Fix: When the URL supplied passed parameters without a file name it brought up the application details by default. Now it brings up the home page unless PageType=CustomView is specified in the URL.

Update 2.22.12

Fix: Added alt attributes to images generated from the system.

Update 2.22.11

Fix: Removed field Condition from TemplateScripts and TemplateStylesheets due to only effective on IE and replaced with IncludeExpression which is a server side expression with the result determining if to include or not.

Update 2.22.10

Fix: CSS style box-sizing:border-box does not work in IE 7 or below which caused cells in the adaptive grid to be oversized if the cell has borders or padding. Use this style as follows:

-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
*behavior: url(/scripts/boxsizing.htc);

Update 2.22.9

Fix: Navigation system was not show text with a image in the menu item.

Fix: Styles updated for navigation system and backward compatibility for IE 8 and below. Also new border styles added.

Update 2.22.8

Fix: Styles updated for new navigation menu system when menu minimized.

Fix: Procedure to check for bounced emails gets caught in endless loop.

Update 2.22.7

New: Styles added to the system.css for new navigation menu system.

Update 2.22.6

Fix: The nav-menu generator output unnecessary blank items.

Fix: Javascript file html5shiv.js added so HTML5 elements can be used in IE8 or less.

Update 2.22.5

New: Created a set of override cell widths for adaptive-grid.css.

Update 2.22.4

New: New menu generator, GenerateHTMLMenu(MenuID) which produces clean html without the unnecessary class information.

Fix: Function that returns the user culture code generated an error when the search engines queried it due to no culture supplied.

Fix: Can now delete users without deleting their email receipts first.

Fix: Problem with the adaptive-grid.css displaying cell widths incorrectly in certain situations.

Update 2.22.3

Fix: A page not found error was coming up when accessing a pages using short-cut URLs from a secure page.

Fix: Force the table cell spacing for system styles.

Update 2.22.2

New: Added ViewPort to the configuration settings. When this value is set to width=device-width and the website has an adaptive web design then it will be displayed correcting on mobile screens and other smaller devices.

Update 2.22.1

Fix: Alter database foreign key and default constraints.

Update 2.22.0

New: Multi-Currency now available. The base currency can be set to a particular currency by the administrator when setting up the website and that currency will be stored in the database. The administrator can also set which currencies are available and their exchange rates. The system will detect the current users preferred currency based on their culture settings for the browser they are using. They can then change the currency to another if they wish to do so and their choice will be saved (in a cookie) for next time they return to the site.

Update 2.21.7

Fix: When an Email Form sent with an uploaded file to be saved on server, the link in the email (to the file on the server) was not clickable.

Update 2.21.6

Fix: Email Form sent to the administrator is now addressed from the email address entered in the [EmailAddress] field on the form. Previously was from the Administrator's email address. If the field does not exist on the form then it is still sent from the Administrator's email address.

Fix: Email Form showed a zero in the message box when an invalid email address was entered. Now shows 'Invalid Email Address'.

Update 2.21.5

Fix: Rename HTML Document function failed when come across a very short domain.

Update 2.21.4

Fix: Allow connections for a user to be automatically deleted when a user is deleted.

Update 2.21.3

Fix: Index and Follow meta tags were incorrectly shown when viewing backend visible data.

Update 2.21.2

Fix: Unable to output sitemap to file.

Update 2.21.1

Fix: Trading item option names which have been configured are displayed in invoice order item details.

Update 2.21.0

New: Mobile device detection has been added. If a mobile device is detected the system looks for the home page with -mobile appended. For example, default-mobile or user-default-mobile. It can also be language dependent. For example, default-mobile-fr for the french version.

Update 2.20.5

Fix: Incorrect syntax in Canonical Meta Tag.

Update 2.20.4

New: Detects if JavaScript is enabled and reports back to the server on first load if not. It then sets an Application variable called JavaScriptEnabled which can be used to for example to load alternate content.

Fix: Hoverable drop-down menus now work without JavaScript. Clickable drop-down menus still require JavaScript. Use the new variable JavaScriptEnabled to revert to hoverable if disabled.

Update 2.20.3

Fix: Error in clickable sub-menus.

Update 2.20.2

Fix: Error when merging, did not merge all linked items.

Update 2.20.1

Fix: Error when sending an email with the default email template.

Update 2.20.0

New: A new function has been created to rename a HTML Document (i.e. Template, Page, Blog Post, Product, etc.). This function will also search and replace in the website any links to the document. Names can now only consist of lower case alpha-numeric characters, dashes and dots.

Update 2.19.10

Fix: Change to automatically bounce emails for invalid email addresses when sending email campaigns.

Update 2.19.9

Fix: Error when custom form used on a method.

Update 2.19.8

Fix: Security patch for potential SQL Injection.

Fix: Administrator permissions for Upload File, Upload Image and Upload Video.

Update 2.19.7

Fix: When images in the lightbox were larger than the browser they would be cut off. Lightbox images are now resized to fit in the browser window.

Update 2.19.6

Fix: The load and close icons were not showing up in the lightbox.

Update 2.19.5

Fix: Some sites script files were hacked causing visitors to the site vulnerable to viruses.

Fix: Update to the latest jQuery script.

Update 2.19.4

Fix: Adds the class "Current" to the current menu items so they can be styled appropriately.

Update 2.19.3

Fix: Allows administrators to set the date published or leave blank to publish at a later date.

Fix: Allows administrators to set the date archived.

Update 2.19.2

Fix: Articles not sorted by date published in Article View (Blog Posts, Galleries, Forum Topics).

Fix: Error when publishing an article.

Fix: Name not showing when listing articles.

Update 2.19.1

Fix: No access error when completing an order.

Fix: Removed "ArchivedOn is null" filter when listing articles likes pages, blog posts, etc.

Update 2.19.0

New: Can now merge items in list view by ticking the checkboxes of those items you want to merge and selecting "Merge Items" in the action menu. For example, you may have the same user or contact in the database having placed orders over multiple records. By merging the user records not only will the user details like addresses etc be merged but all attached records like orders will come across to the one record.

Fix: In the new Sort Editor you cannot sort by the first item in each of the drop-downs.

Update 2.18.0

New: Can now automatically send a thank you letter when the order is complete. Create an email page called "Order.ThankyouLetter". This letter will be detected when the order is complete and merged with the order and sent to the trading entity with CC to the administrator.

Fix: Security hole found on who can execute certain methods on the business objects.

Update 2.17.1

Fix: Cannot clear image or file properties. A clear action has been added for each of those properties.

Update 2.17.0

New: Can now create multiple image galleries and can categorize and tag the galleries much like a blog post and viewers can comment and tag the galleries.

Update 2.16.1

Fix: The Clear Filter button in the Filter Editor does not work on some browsers.

Update 2.16.0

New: Filtering and Sorting - Now when listing pages, blog posts and most other business objects it will bypass asking for filters and go straight to the list. Once in the list there is now both new filter and sort options.

New: Now by default only drop down selection lists that are not limited to the list use the non-standard combo box.

Update 2.15.2

Fix: When uploading a zip file generated on a Mac to be uncompressed on the server it would fail.

Update 2.15.1

Fix: Problem found subscribing to a group from a custom form. Subscribers were added to the database but were not subscribed to the group.

Update 2.15.0

New: Can now list authors of blog posts and click to see articles authored.

Update 2.14.5

Fix: the action menu and record selectors in list view were still visible even when there were no actions.

Update 2.14.4

Fix: to Users.xls import script.

Update 2.14.3

Fix: Problem with automated task scheduler not running some tasks.

Update 2.14.2

Fix: Problem with URL redirection adding path to start even if already there.

Update 2.14.1

Fix: if a non-image was put in the gallery then the system would try to display that image. Now only displays images with extension jpg, gif, png or bmp.

Fix: when exporting date/time properties the whole date/time would export even if the Lower Accuracy is Day. It now exports the date/time taking into account the Lower and Upper Accuracy.

Update 2.14.0

New: Can now add a custom property which is a group of property values. The Type is GroupOfValues. The main reason for using this would be to create a unique key of multiple properties. For example, create a unique key for Users with FirstName, LastName and BusinessName.

Update 2.13.2

Fix: Error when a property type was changed. For example, from Text to HTML.

Fix: When using touchscreen could not open My Account or Admistration because there were links on them.

Update 2.13.1

Fix: Updated to the latest HTML Editor which fixes the thumbnail viewer of the image browser.

Update 2.13.0

New: Can now add custom collections by simply adding a table to the database. This collection may inherit from other collections. For example, ExtendedCategories may inherit from Categories. The table must have a primary key called ID and be of type Integer. If inheriting then create a one-to-one relationship with the ID of the primary table. Otherwise, the ID field must have Auto-Increment on.

New: Can now add custom methods on all business objects.

New: Can now customise the configuration setting via purpose built methods.

Update 2.12.1

Fix: When logged in as Administrator and submitting new blog posts they were not publishing automatically.

Update 2.12.0

New: Added export function which is available on all collections. Can export to CSV or XML. Will allow you to select the properties you want to export. Will allow you to select sub-properties. For example, Author.FirstName or Author.EmailAddress.

Update 2.11.8

Fix: Tax Invoice showing freight when not necessary.

Fix: Tax Invoice formatting.

Fix: Properties that were set to Not Allow View but Allow Edit were only editable when it was a new object. When re-editing an object the value was overwritten even though it was not edited.

Fix: After configure domain submitted it now goes to About.

Update 2.11.7

New: Added Referral Source to Register and Subscribe New User.

New: Added addtional images to default template for use in shopping cart and when no image or photo available.

Fix: When a new user registers and their details already exist on the database it now throws an error.

Fix: Slideshow and gallery not showing when viewed from blog or forum.

Update 2.11.6

Fix: Comments were not showing on articles when they had multiple lines.

Fix: Error when viewing a page that had no template.

Update 2.11.5

Fix: Drop-down list was appearing well below input due to new CKEditor.

Fix: Added an error message when sitemap generator returns no pages.

Update 2.11.4

Fix: When form details emailed to admin the multiple line text fields would display on one line.

Update 2.11.3

Fix: Auction Management System menu showing when not installed.

Update 2.11.2

Fix: problem with not being able to change the template on a page.

Update 2.11.1

Fix: problem with to HTML Editor file manager.

Update 2.11.0

New: HTML Editor

Update 2.10.5

Fix: to login process.

Fix: to freight calculation method.

Update 2.10.4

Fix: allows limited membership management when CMS is installed. Required for blogging and forum systems. Also, allows users to register when commenting on or rating an article.

Fix: to registration process.

Update 2.10.3

Fix: sets the discount price to zero on all existing orders.

Update 2.10.2

Fix: freight calculation so it shows POA when no delivery methods exist.

Update 2.10.1

New: allows administrator to add payments manually without going thru payment gateways.

New: passes the Order ID thru with the transaction to the payment gateways.

Update 2.10.0

New: can now add forums.

Update 2.9.0

New: each group can have it's own blog.

Update 2.8.1

New: when email addresses are to be unique and a user tries to re-register then an email with login details is sent to them and a message displayed telling them that.

New: when a service is booked additional user email addresses are not required. They can be set to be required via configuration settings and when done so each user is notified they are booked and they are also added to the database.

Update 2.8.0

New: added Promotions to the Order Management System so customers can enter a promo code to get a discount on the order or selected products.

Update 2.7.2

New: You can now set the HTML editor toolbar name for each HTML property or parameter. An attribute has been added to the HTMLDefinition called EditorToolbarName as well as EditorToolbarNameExpression which will allow you to set the name depending on a condition being matched. For example, if administrator is logged in then Default else Basic.  The FCKeditor has now 3 toolbars:

  1. Default: which has all toolbar options.
  2. Extended: which has the following: FontFormat, Bold, Italic, Underline, StrikeThrough, Subscript, Superscript, OrderedList, UnorderedList, Outdent, Indent, JustifyLeft, JustifyCenter, JustifyRight, JustifyFull, Link, Unlink, Anchor and Image.
  3. Basic: which has the following: Bold, Italic, Underline, StrikeThrough, Subscript, Superscript, OrderedList, UnorderedList, Outdent, Indent, Link, Unlink and Anchor.

Update 2.7.1

New: Added payment instructions to tax invoice.

New: Updates to Auction Managment System.

Update 2.7.0

New: Auction Management System.

Update 2.6.4

Fix: allow for multiple slideshows per page.

Update 2.6.3

New: Each product, service or subscription can now have member prices for up to 5 groups.

New: A property has been added to groups (Set Membership Expired On From Children) which when set to true any membership expiries of the group will be automatically set to the highest expiry of any subgroup memberships matching the member.

Update 2.6.2

Fix: attachments not showing up for business collection items.

Update 2.6.1

New: Can now add custom properties to Users, Groups and Memberships.

Fix: to subscription process.

Update 2.6.0

New: Can now create custom properties on HTML documents such as templates, pages, blog posts, testimonials, products, services and subscriptions.

New: Altered the slideshow generator so multiple slideshows can appear on the one page.

Update 2.5.11

New: Added [Change Quantity] function to cart item.

New: Added a parameter to the system called [Unknown User Try Login First] which tells the system to go to login screen before register screen when an unknown user requests an order for an item.

New: Added [Subscribe to Receive Our Emails] confirmation checkbox on register screen. Only visible if email marketing installed.

Update 2.5.10

New: Returns function Group.SubscribeNewUser so public can subscribe directly to a group from a page without clicking on a button first.

Update 2.5.9

New: When a domain or alias is not in the domain list of the website then it is redirected to the www version if in list else the primary domain in list and returns a 301 Permanent Redirect in the status.

Fix: custom error when page not found it returns a 404 Not Found error in status.

Update 2.5.8

Fix: error viewing orders and tax rate is zero.

Fix: Marks all previous orders as completed.

Update 2.5.7

Fix: error received after processing an RSVP to a service or subscription to membership.

Fix: problem with RSVP to a service when no notification of booking is sent.

Update 2.5.6

Fix: problem with URLs with short file names and parameters. The parameters were being dropped.

Update 2.5.5

New: Replaced the dropdown buttons with a more standard look.

Update 2.5.4

Fix: Stops search engines running the site map generator if a site map does not exist.

Update 2.5.3

Fix: Modified the stylesheet so the email footer with "Forward to a Friend", etc. does not print.

Update 2.5.2

Fix: Modified the script so the delay of the redirection of a page can be set to a value in milliseconds.

Update 2.5.1

New: Added new menu items (Bookings, Orders and Payments) to My Account menu.

Update 2.5.0

New: can now also add a service or membership subscription to the cart.

New: can now have multiple items in the cart with recurring payment options. Tax invoice modified to display the payment options.

New: Modified the order process so that once an order is submitted (before payment) an order number is created and passed thru to the payment gateway as the reference.

New: can now list other products that have previously been ordered with the selected product.

New: Modified registration to allow for confirmation of email address immediately before any further processing is done. This will help cut down the spam that comes from form entry.

New: Modified login to use the standard method call. If the Membership Management System is installed then the Register button will appear now.

Fix: problem with email addresses not in lower case when importing. Import scripts have been modified to force lower case.

New: Modified URL for Categories to handle sub-categories i.e. http://www.domain.com/Category/parentcategory/childcategory.

Update 2.4.7

Fix: Replaces permissions on menu items for systems converted from Blue Rock I.

Update 2.4.6

Fix: the enquiry form on the [Website Default with Right Panel] template.

Update 2.4.5

New: Added Video Profile to the users profile. Simple paste a link from YouTube to display the video in the profile view.

Update 2.4.4

New: Update to allow Forward to Friend and record who it was sent from.

New: Update to email filters to exclude groups.

New: Update to email triggers to include when openned, links clicked and forwarded.

Update 2.4.3

Fix: missing Star Rating in the blog post template.

Update 2.4.2

New: Updated the calendar for scheduled service times to link to the service page.

Fix: problem with the collection definition viewer.

New: Added meta tag "NoFollow" to links in the action menus so that search engine robots would not go there.

Update 2.4.1

New: Updated the Published On date for articles to include the time of day.

New: blog directory ping service list.

Update 2.4.0

New: allows a watermark to be added to the images in the image gallery. You can set the watermark text, font, color/opacity and positioning.

Update 2.3.0

New: generate a site map and submit it to the search engines. New menu items can be found under Content Management.

New: create robots.txt if missing.

New: Adds a the "generator" meta tag to the document head.

New: Forces redirection to one of the domains in the configuration setting "Domains".

New: Adds a menu item under Content Management for listing ratings on articles.

Fix: to the blog post template linking the "Published On" date to the wrong issue.

Fix: to the problem when no author was specified for a comment.

Update 2.2.4

New: Adds the RSS Feed link to the head of the HTML documents.

Fix: Modified the RSS Feed to show only pages to be indexed and published with user access rights.

Fix: Updates HTML Documents to set "Is Page To Be Indexed" to False on all email and user login pages.

Fix: Adds code to links to stop search engines indexing unnecessary pages.

Update 2.2.3

New: Adds Captcha image to forms such as Subscribe New User, Leave a Comment and Rate This when user is not logged in. This will help to stop spammers.

Fix: problem with website address not updating when new user subscribes.

Update 2.2.2

Fix: problem with SMTP Server connection.

Fix: Removes blog directory ping service list until a stable list can be resolved.

Update 2.2.1

New: Modifications to the way actions are displayed in list and form views.

Update 2.2.0

New: allows visitors to rate pages, blog posts, products and services.

Update 2.1.1

Fix: to blog and commenting systems.

Update 2.1.0

New: blogging system has been added to the content management system.

New: comments can be submitted by visitors on pages, blog posts, products and services if allowed.

Update 2.0.8

Fix: error when trying to save a user profile.

Update 2.0.7

Fix: to auto-update.

Update 2.0.6

Fix: Update to system styles.

Update 2.0.5

New: Update to the HTML editor.

Update 2.0.4

Fix: to auto-update.

Update 2.0.3

Fix: the checking for bounced emails.

Update 2.0.2

Fix: the sort order for news articles.

Update 2.0.1

New: Update to Order Management System can now send invoice.

Fix: bug found when trying to save a user.

Update 2.0.0

New: Update to the latest software and system script and stylesheet files.