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.

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.