Overview
The 14.1 release was released 2014-01-27. The largest changes and focus areas was:
- Stability The major parts of Atomia Billing where updated to handle more edge cases and failure scenarios in a predictable and consistent way. We identified the least performant sections of the Admin Panel and improved the speed of these greatly. We also invested much time in improving our quality assurance test suites to be able to provide an even better experience in this and future releases.
- Generic Workflow With this release we strongly recommend all customers currently running custom workflows to consider switching to the Generic Workflow. To help towards making this goal a reality the Generic Workflow was extended to cover a few more scenarios that previously required custom plugins.
- Pro forma invoices This is the first release containing support for pro forma invoices, simplifying the process of doing business in countries where this is customary or required.
- Reseller configurability We added features for using multiple domains and associating them with separate resellers, e.g. for whitelabel scenarios and multiple brands.
Software versions
The 14.1 release consists of the software versions listed below. Please note that you should always use the latest version available at the stable package repository, to make sure you get the latest security and stability updates.
- Action Trail: 14.1.5130.19285
- Admin Panel: 14.1.5128.17919
- Automation Server: 14.1.5130.13569
- Automation Server Client: 14.1.5130.13578
- Customer Panel: 14.1.5130.18021
- Atomia Billing: 14.1.5129.27299
- Hosting Control Panel: 14.1.5130.17979
- Atomia Identity: 14.1.5130.18423
- Public Order Page: 14.1.5130.19058
- Cloud Hosting Pack: 14.1.5130.18343
- Atomia Domain Registration: 1.1.143
- Atomia DNS: 1.1.27
- Filesystem Agent: 13.12.1
- Apache Agent: 0.2.98
- DynDNS Agent: 14.1.0
- Awstats Agent: 1.1.30
Changes
The list of changes since the last stable release (2013.4, released at 2013-04-19) include:
New features
- General: Added support for defining Failover Partner for SQL server in config files.
- Atomia Billing: Allow multiple campaigns (without code) for same order.
- Admin Panel: Added configuration options for showing/hiding deleted orders and invoices.
- Admin Panel: Added support for generating payment document IDs.
- Admin Panel: Possible to display more then one custom attribute in the subscriptions list
- Admin Panel: Added payment method column to the Payments list.
- Admin Panel: Add alt text popup with provisioning error message if you hover on the “Provisioning failed” text.
- REST API: Added new method (/countries) to fetch country data based on given country code.
- REST API: Added method for VAT validation via VIES service. Method (/vat) is called with arguments VatNumber and CountryCode.
- REST API: Added possibility to set renewal period with order
- REST API: Added product filtering by location and provisioning service
- REST API: Added orderType calculate to preview an order
- REST API: Added method to complete payment transaction
- REST API: Added unit tests for phone number formating
- REST API: Added support for Payex paymentMethod
- REST API: Added billingAddress to new orders
- REST API: Added domainsCustomOwner to new orders
- REST API: Added paymentMethod to orders
- REST API: Added support for PayPal paymentMethod
- REST API: Added mechanism for including enpoints from separate assemblies.
- Automation Server: Added reseller specific resource assignment policy plugin.
- Automation Server: Round Robin Reseller specific with Maximum resource assignment policy agent added.
- Automation Server: NativeAPI DeleteServiceAsync method & test added.
- Automation Server: Added new method to IDbManager contract: ListLogicalServicesByNameAndMultiplePropertyValues
- Atomia Billing: Added downgrade functionality to invoice reminder actions.
- Atomia Billing: SendFromAccount in AccountOptions, fetch sender details from the specified account.
- Atomia Billing: Added support for downgrading to cheapest package available on expiration.
- Atomia Billing: Added monthly invoices support for customers.
- Atomia Billing: Added event handlers for InvoiceCreated, InvoiceUpdated and InvoiceDeleted.
- Atomia Billing: Added new custom action handler – SubscriptionProvisionedCustomAction. It can be used to perform specific actions upon successful/unsuccessful provisioning, such as send notification email.
- Atomia Billing: Added support for periodic invoicing.
- Atomia Billing: Added support for “DomainAutorenew” subscription custom attribute which allows auto-renewal setting to be set explicitly during the provisioning.
- Atomia Billing: Fixed invoice period to not show when 0 months.
- Atomia Billing: Added Address fetch plugin for Norway register.
- Atomia Billing: Added new campaign condition handler, SubscriptionsCountConditionHandler, which returns true if customer has a certain number of subscriptions, within a defined range.
- Atomia Billing: Added support for upgrade of subscriptions with additional products. No upgrade will be done for additional products, they will be only assigned to upgraded subscription.
- Atomia Billing: Added method ModifyCustomProduct to provisioning plug-in.
- Atomia Billing: Added support for provisioning of additional subscriptions. Additional subscriptions are connected to their “parent” subscription via ParentSubscriptionId custom attribute. Additional subscriptions can be provisioned only if their parent subscription is provisioned.
- Atomia Billing: Added support for termination of additional subscriptions. Additional subscriptions are automatically terminated when their parent gets terminated.
- Atomia Billing: Added IncludedPackages section in ProvisioningDescription in web.config. Included packages are added when “main” package is being added. For example, DomainContactPackage is included package for all hosting packages.
- Atomia Billing: Added support for proforma invoices.
- Atomia Billing: Added support for Multibanco pay file processing and invoice reference number calculation.
- Atomia Billing: Added support for generating payment document IDs and payment IDs. For this purpose new plugin is introduced and reseller configuration is extended to store details about generators to be used.
- Atomia Billing: Added support for suspending and unsuspending of custom products.
- Atomia Billing: Added method GetPriceListOwnerId – returns the account id of the price list owner.
- Atomia Billing: Added support for Resource Locations. Resource Location is a location where service is provisioned.
- Atomia Billing: Added Locations to Item classes. Items may be available on all or just some locations.
- Atomia Billing: Added support for defining payment methods per reseller.
- Atomia Billing: Provisioning Plugin: External service provisioning is now async.
- Atomia Billing: Allow buying extra packages for existing external services.
- Atomia Billing: Added attribute quickpay to PayPal plugin to bypass normal PayPal calls when using another implementation than Atomia.
- Atomia Billing: GenericWorkflowPlugin added option to send additional emails per order line.
- Atomia Billing: Added support for suspend/unsuspend of external services.
- Atomia Billing: Added OwnDomainArticleNumber configuration property for Generic Workflow.
- Atomia Billing: Added support for resource locations
- Atomia Billing: Added support for changing quantity of extra service subscriptions.
- Atomia Billing: Modified Provisioning plugin to copy (if exists) account’s property Name to newly created provisioning account.
- Atomia Billing: Added method ResolveInvoiceRecipient to InvoiceHelper.
- Atomia Billing: Added new payment methods which will be used from Admin Panel for accounting purposes.
- Atomia Billing: ProvisioningPlugin IsPossibleToChangePackage returns ServiceType with ProvisionDescription.
- Atomia Billing: Added new function Accounts Receivable Change which is used for Payment Journal.
- Atomia Billing: ProvisioningPlugin added parsing of custom attribute from subscription AtomiaServiceExtraProperties.
- Atomia Billing: Added code for handling asynchronous domain registrations through a new provisioning
- Atomia Billing: Added new Account API (CheckEmail) operation which checks if account and/or login with given e-mail address exists.
- Atomia Billing: Modified logic for configuration of included services to allow binding to reseller and to support defining multiple products/categories under one limit (i.e. include only one product from list of products).
- Atomia Billing: Speeded up create methods for invoices and subscriptions.
- Cloud Hosting Pack: MailFilter module – new module added.
- Customer Panel: Added support for running resellers on different domains.
- Customer Panel: Added modifications for users that have VPS package:
- Customer Panel: Added support for upgrade of VPS packages.
- Customer Panel: Added support for resource locations.
- Hosting Control Panel: Added support for running resellers on different domains.
- Atomia Identity: Added identity cookie handler to be used by applications with multiple domains.
- Atomia Identity: Added support for logging in and out from multiple domains.
- Atomia Identity: Added support for hosting STS services on multiple https base addresses
- Atomia Identity: Added reseller domain support for reset password email templates, from and reply-to.
- Public Order Page: GetInfoAddress implemented.
- Public Order Page: Added support for loading reseller’s data based on Order Page url.
- Public Order Page: Added support for Adyen payment method.
Fixes
- Admin Panel: Separate deleted from statuses in campaigns list.
- Admin Panel: Only allow View action on deleted campaigns.
- Admin Panel: Updated labels and instructions in campaign editor.
- Admin Panel: Added default discount support to campaign discounts.
- Atomia Billing: Fixed exclusive discounts to be truly exclusive (also over multiple campaigns).
- Atomia Billing: Fixed item replacement (map to item) to work with renewal periods.
- Atomia Billing: Fixed attribute overrides to work with multiple campaigns.
- Atomia Billing: Fixed rules and discounts methods to use the same priority and condition checks.
- Admin Panel: Print receipt links now works better.
- Admin Panel: Manual payment was not taking refunds in consideration.
- Admin Panel: Editing of renewal periods on a subscription is now using renewal periods from the subscriptions item.
- Admin Panel: Add Credit invoice: Fixed layout on page and breadcrumbs.
- Admin Panel: Edit Subscription: Error when reloading page.
- Admin Panel: Payments list JS error if payment method is null.
- Admin Panel: Removed validation of email with username rule on user edit
- Admin Panel: Customer picker on user add page fixed to take id from reseller selection box in top
- Admin Panel: Added phone code for Spain Canary Islands.
- Admin Panel: Removed narrow trigger when you shrink window.
- Admin Panel: Fix reseller selection in GUI not resetting on logout.
- Admin Panel: Customer edit email-username validation removed on customer card.
- Admin Panel: Fix icon for finished task and add new one for currently processing task.
- Admin Panel: Allowed editing of orders in ManualReviewWanted status.
- Admin Panel: Edit order custom data for order line fixed
- Admin Panel: Fixed display of Due date column on List of invoices page.
- Admin Panel: Report date format changed to en-US when creating report
- Admin Panel: Fixed CheckUsername call on customer card which prevented change of customer’s email address.
- Admin Panel: Fixed gap below breadcrumbs on the Customer Card page.
- Admin Panel: Allowed deleting and processing of orders with status PlacementFailed.
- Admin Panel: Fixed tab order on Add payment page.
- Admin Panel: Fixed usages of Invoice Number and Invoice Reference Number.
- Admin Panel: Fixed listing of subscriptions on Customer Card page to include subscriptions with provisioning status “Initiated”.
- Admin Panel: Fixed listing of subscriptions on Customer Card page to include Change Quantity subscriptions.
- Admin Panel: Fixed listing of subscriptions on Subscriptions page to include Change Quantity subscriptions.
- Admin Panel: Customer Card Subscriptions on Edit save redirect back to cart
- Admin Panel: Product List – Product name get shorten after 40th char
- Admin Panel: Added missing translations for payment methods.
- Admin Panel: Currency list is now created from reseller currencies.
- Admin Panel: Fixed bug in setting default account options.
- Admin Panel: Fixed products search method to set empty price column when there’s no price defined for current reseller.
- Admin Panel: Edit Order page, can display error on submit if something goes wrong.
- Admin Panel: Fixed null exception thrown when new product is saved.
- Admin Panel: Validation of order form is now complete and visible to the user.
- Admin Panel: Email field for customer is transformed to lowercase before validation
- Admin Panel: Original file Admin Host placeholder
- Admin Panel: IE – edge default rendering engine not IE8
- Admin Panel: IE8 datatable typo, and click event is not binded to all green buttons but just to the form it needs to.
- Admin Panel: Reports are now aware of localization string from browser, and date is parsed using that param.
- REST API: Fixed issue with recurring payment options not being sent.
- REST API: Do not add stacktrace to error response unless debugging.
- REST API: Performance improvement in adding DNS records
- REST API: Orders/PriceCheckAll now works
- REST API: When making an irder, non-recurring products are not assumed to have renewal periods
- REST API: Custom attributes is now optional when placing an order
- REST API: When adding/editing email, all properties are set if they exist in the request
- REST API: Fixed method Get of Product service to get only non-deleted products.
- REST API: Removed validation of Package property of Orders class.
- REST API: Removed hard coded Language custom attribute.
- REST API: Allow empty custom attributes for order item
- REST API: Fixed bugs in phone formating
- REST API: First and lastname is now added to billing address
- REST API: Properly format phone numbers in order
- REST API: Properly handle paging for DNS zones
- REST API: Removed deprecated function /orders/pay use paymentMethod instead
- Automation Server: Rollback of failed unsuspend now works.
- Automation Server: NativeAPI DeleteService method & test fixed.
- Automation Server: All FindServiceByPathAndProps methods now have “OR” switch.
- Automation Server: Fixed issue with resolving part instance conditions when parent is simple service.
- Automation Server: Fixed logging issue – log fails if IP list is empty.
- Automation Server: On rollback of failed modify, encrypted properties got garbled.
- Automation Server: UpdateServiceProperty method used by PeriodicServidceUpdater
- Atomia Billing: Fixed subscription discount to be transferred on subscription extension.
- Atomia Billing: Improved ResolveInvoiceRecipient method so that it doesn’t look past the master reseller account.
- Atomia Billing: Removed discount of subscriptions bound to the package for change quantity orders.
- Atomia Billing: Prevent credited and deleted invoices from being paid.
- Atomia Billing: Refund tasks are finished only if refund action is finished with status ‘Ok’.
- Atomia Billing: Modified SubscriptionProvisionedCustomAction to use parameters from configuration.
- Atomia Billing: Removed value of renewal period for non-recurring products from OrderConfirmationEmail and InvoiceEmail templates.
- Atomia Billing: Fixed FinishPayment method to use updated value of transaction id.
- Atomia Billing: Partially crediting an invoice correctly credits all lines, and creates a new invoice with uncredited lines
- Atomia Billing: Fixed OrderedItemsCountConditionHandler to use Order.CreatedTime instead of Order.OrderDate, because OrderDate saves just the date not the time.
- Atomia Billing: SubscriptionsFilterConditionHandler fixed case when user is new user
- Atomia Billing: User Identity Property fix for overwriting/losing.
- Atomia Billing: Fixed OnOrderCreated event handler to start order processing for orders whose total is 0.
- Atomia Billing: Fixed Public Order API to set PlacementOK as order status for orders whose total is 0.
- Atomia Billing: Fixed generation of an invoice reminders PDF attachment.
- Atomia Billing: Fixed fetching of CustomProduct definition in CustomDelete method of AtomiaProvisioningHosting.
- Atomia Billing: When creating PDF invoice, customer data is read from the invoice, not the current customer billing data.
- Atomia Billing: Canary Islands change code to IC.
- Atomia Billing: Updated InvoiceSummaryReport stored procedure to have large enough field sizes for city and zip
- Atomia Billing: Fix Adyen direct debit recurring payments.
- Atomia Billing: Unauthorized exception on delete payment profile.
- Atomia Billing: Clean trailing spaces and mixed line endings from changelog.
- Atomia Billing: Don’t treat Billing product category as extra service in order validation.
- Atomia Billing: Order invoice lines by ItemNo in GenericWorkFlow invoice templating plugin.
- Atomia Billing: Updated BasicAuth binding in Billing API’s original web.config file.
- Atomia Billing: Added verification of IncludedPackages collection when package is being provisioned. This section must exist in config file, even empty.
- Atomia Billing: Fixed SubscriptionsCountConditionHandler to decrease value of NumberOfItemsToDiscount.
- Atomia Billing: Fixed setting of IsDiscountTransferable property in subscription renewal workflow.
- Atomia Billing: Payment transaction details are being added to closed invoices regardless of payment method. This allows printing of receipts when invoices are paid with PayPal.
- Atomia Billing: Transaction Id is added to invoice’s custom attributes before printing. This allows PayPal transaction id to be printed on receipt.
- Atomia Billing: Added Spain Canary Islands to country table
- Atomia Billing: Fixed loading of document ID generator plugin.
- Atomia Billing: Fixed renewal periods in Order Confirmation email message.
- Atomia Billing: Increased size of Value field of subscription_custom_attribute table in the AtomiaBilling database.
- Atomia Billing: Fixed getter method of DataObject property of PaymentMethod business class to return Id.
- Atomia Billing: Products with NoInvoice attribute will not appear in OrderConfirmation email message anymore.
- Atomia Billing: Fixed duplicate subscription custom attributes during the order process workflow.
- Atomia Billing: Fixed RulBasexTaxPlugin to exclude ValidationError result from being cached.
- Atomia Billing: Added missing ChangeQty subscription status change rule to default Billing config.g
- Atomia Billing: Fixed sending of order confirmation e-mail to add renewal period for non domain transfer items only.
- Atomia Billing: Fixed Print report for archived report to show all data.
- Atomia Billing: Use domain name as item name only for items from domain categories when sending invoices.
- Atomia Billing: Stopped URL encoding order request fields sent via WorldPayXml payment plugin, and removed the telephone from the same request
- Atomia Billing: Excluded deleted invoices from invoices overview.
- Atomia Billing: Fixed ProcessOrder workflow to exclude subscriptions marked with NoInvoice attributer from invoice creation.
- Atomia Billing: Fixed SubscriptionRenewal scheduled task handler to read allowed subscriptions’ states from configuration file.
- Atomia Billing: Fixed AtomiaBilling configuration section to include section AllowedSubscriptionStatesForRenewal.
- Atomia Billing: Report helper DateTime parse with en-US culture.
- Atomia Billing: Added DataMemeber attribute to IsDiscountTransferable property of Subscription class.
- Atomia Billing: Added state transition rule for Renewal state – it is possible now to terminate subscription in renewal state.
- Atomia Billing: Fixed AutoCreditInvoicesCustomAction to credit only invoices related to terminated subscriptions.
- Atomia Billing: Fixed SuspendInvoiceSubscriptionsCustomAction to suspend active subscription when invoked on unpaid renewal invoice.
- Atomia Billing: Fixed TerminateInvoiceSubscriptionsCustomAction to terminate both active and renewal subscriptions when invoked on unpaid renewal invoice.
- Atomia Billing: Fixed Name property for SubscriptionEventHandlers class.
- Atomia Billing: Norid email template fixed.
- Atomia Billing: Fixed maxReceivedMessageSize config for bindings for IConfigApi and INativeApi.
- Atomia Billing: Modified provisioning of external services to add SubscriptionParentId custom attribute which points to CsExternalDomainRelatedSubscription service. Changed ChangeQty related methods to use this service id for parent service when filtering quantity service.
- Atomia Billing: Fixed LoadPlugins method to create execution context. This is needed for loading of plugins configuration when there’s no config for current reseller and parent account is needed.
- Atomia Billing: Fixed provisioning of external service when it is marked as additional plan but there are no existing plans.
- Atomia Billing: Subscription edit fixed
- Atomia Billing: Fixed campaign plugin to give discount to lines which are not discounted only.
- Atomia Billing: Fixed CalculateTotals to set “Discounted” attribute for line which has bound to the package product.
- Atomia Billing: Disabled handler for AccountAddressUpdated event which updated registration contact in provisioning.
- Atomia Billing: Fixed property name for Registry Specific Attributes when domain registration is provisioned.
- Atomia Billing: Fixed Credit Journal report.
- Atomia Billing: Fixed accounting related functions and procedures to show reseller’s configured currencies only, not all active currencies.
- Atomia Billing: Fixed calculations for printing credited invoices.
- Atomia Billing: Fixed UpgradeOrderCreated event handler to add setup fee only if it’s configured and exists.
- Atomia Billing: Fixed usages of invoice number and reference number for sent invoices and reminders.
- Atomia Billing: Fixed upgrade/downgrade site builder bug with SiteBuilderServiceID.
- Atomia Billing: Fixed accounting related procedures and functions to support accounting accounts per reseller.
- Atomia Billing: Fixed bugs in accounting functions and reports.
- Atomia Billing: Fixed provisioning of subscriptions to reset in progress flag when subscription shouldn’t be provisioned.
- Atomia Billing: Fixed OnOrderPreCreated event handler to set ManualReviewWanted status to PendingPayment orders.
- Atomia Billing: Fixed FinishPayment workflow to process orders in PlacementOk or PendingPayment state only.
- Atomia Billing: Fixed GetCampaignByCode method to return valid campaign instead of first one.
- Atomia Billing: Fixed OnOrderPreCreated event handler to set ManualReviewWanted status to PendingPayment orders.
- Atomia Billing: Fixed FinishPayment workflow to process orders in PlacementOk or PendingPayment state only.
- Atomia Billing: Corrected message of exception being thrown on failed loading of payment plugin’s configuration.
- Atomia Billing: Fixed bug in CreateInvoice method (reference number format was not defined for resellers).
- Atomia Billing: Fixed bug in CreateItem method (duplicate reseller prices were generated for resellers with custom price lists).
- Atomia Billing: maxReceivedMessageSize changed to 2147483647 in original files
- Atomia Billing: Fixed GetWorkingDay method which produced StacOverflowException because of faulty date comparison.
- Cloud Hosting Pack: EC2 module: Fixed issue with wrong error message.
- Cloud Hosting Pack: FSModule: UTF8 is set as default encoding.
- Cloud Hosting Pack: Installatron Backup param for destination fixed.
- Cloud Hosting Pack: Installatron Backup javascript deserialization fixed.
- Cloud Hosting Pack: Installatron UTF8 fix for communication.
- Cloud Hosting Pack: Updated allowed seat changes for Google Apps to take plans into account.
- Cloud Hosting Pack: Added property transformation needed for Google Apps Flexible plan in default provisioning description.
- Cloud Hosting Pack: Installatron language fix
- Cloud Hosting Pack: Installatron email & label parameter added.
- Cloud Hosting Pack: Installatron backup fixed.
- Cloud Hosting Pack: Installatron test fixed.
- Cloud Hosting Pack: Fixed ServiceSwitch for Domain Exchange service.
- Cloud Hosting Pack: Fixed Installatron language parameter, and filtering only packages that have install flag set.
- Cloud Hosting Pack: Make installatron send correct uid and gid for all API actions involving websites
- Cloud Hosting Pack: PostfixDovecot module – Fixed issue where removing MailForwarding service removed all of the aliases from the resource with the same GOTO address
- Cloud Hosting Pack: FileSystem module – fixed a bug which caused modifying folder to fail.
- Cloud Hosting Pack: Fixed condition for CsMailSupport to check if InitEmail is true.
- Customer Panel: Mass transfer: Replace strange tags with one tag looking like transfer_ + orderdate
- Customer Panel: Proper handling of internationalized domain names on mass transfer
- Customer Panel: Prevent customers from paying if the invoice goes to the reseller.
- Customer Panel: Prevent credited and deleted invoices from being paid.
- Customer Panel: Fixed Identity Property deleting on MySettings page.
- Customer Panel: Fixed Language selector on MySettings page to reflect currently selected language.
- Customer Panel: Updated domain name validation on TransferDomain page to disallow “dot” character from appearing in the domain value
- Customer Panel: Fixed setting correct language for user in online payment page for invoices.
- Customer Panel: Fixed GetPaymentMethods to return only plugins with name when pulling them out from Billing DB.
- Customer Panel: Added missing PaymentPluginPanelCreateWorldPayXmlRedirect.ascx partial
- Customer Panel: Fixed SE translation for MenuRender.
- Customer Panel: Fixed default payment method not properly set for online pament.
- Customer Panel: Fixed online payment of emailed invoice to support PayPal confirm redirect.
- Customer Panel: ExtraDomains post data fix for Norid
- Customer Panel: Changed PayPalConfirm method to display invoice in case transaction is of invoice type.
- Customer Panel: Fixed GetProductsByProperties method of HostingProductsHelper to use price list owner id instead of reseller id.
- Customer Panel: Fixed condition for showing Pay button on Invoice Preview page.
- Customer Panel: ExtraDomains fixed product names to default ones
- Customer Panel: Zip validation fixed to only digits on customer edit page
- Customer Panel: All payment options on change of seats page meant “invoice”.
- Customer Panel: Date localization was invalid in several places due to using a jQuery format string within the controllers.
- Customer Panel: MySubscription page on upgrade/downgrade check on fail shows services that need to be removed with friendly name(ServiceNames.resx)
- Customer Panel: Fixed usages of HostingProductsHelper’s method GetProductsByProperties to pass reseller’s ID since it is used in Hosting Products plugin to match product prices.
- Hosting Control Panel: Added paging to domain contacts search
- Hosting Control Panel: SimpleServiceList removed check for CreateService as it doesn’t exist in system and it is not needed.
- Hosting Control Panel: OCI fix backup package now includes params from original package
- Hosting Control Panel: Fixed GetPaymentMethods to return only plugins with name when pulling them out from Billing DB.
- Hosting Control Panel: Added missing PaymentPluginPanelCreate WorldPayXmlRedirect and AdyenHpp partial
- Hosting Control Panel: Domain manager: after removing hosts save button is enabled
- Hosting Control Panel: Fixed editing website options
- Hosting Control Panel: SE translation for Exchange Email added.
- Hosting Control Panel: Generic dialog box updated: Fix issue with dialog boxes without input fields.
- Hosting Control Panel: Removed version from Reset Password’s Site master page.
- Hosting Control Panel: Language menu is now hidden when empty.
- Hosting Control Panel: Generic plugin updated: Fixed issues with listing child services.
- Hosting Control Panel: Generic plugin error page routing fixed.
- Hosting Control Panel: Removed LanguageMap from One Click Installer js file because it crashed page when minified.
- Hosting Control Panel: SimpleService password optional for EditChild
- Hosting Control Panel: ExtraDomain search can handle domain names with dot “.”
- Hosting Control Panel: OneClickInstaller – fixed DestinationPath for creating backup
- Hosting Control Panel: MailSupport option availability on website add/edit forms for DNS packages
- Hosting Control Panel: WHOIS copy to all contacts disabled if some contact is locked
- Hosting Control Panel: Fixed GetPaymentMethods method to prevent null reference exception.
- Hosting Control Panel: Fixed Meter limits showing inccorect values and sometimes growing during a session
- Hosting Control Panel: Litespeed changed to Apache for OneClickInstaller
- Hosting Control Panel: Awstats enable checking if it is already enabled
- Hosting Control Panel: Add website check fixed
- Hosting Control Panel: Domains->Website , Linux & Windows limit check on edit page filter available options
- Hosting Control Panel: EmailPartials added translation Norwegian for Exchange on dashboard
- Hosting Control Panel: Atomia.Web.Plugin.Generic.dll.config fixed for json encoding
- Hosting Control Panel: Installatron check path fixed
- Hosting Control Panel: Modified fetching of user friendly domain transfer status and reason to default to pending if values are not available.
- Hosting Control Panel: Fixed usage or Recalculate Cart to fetch proper prices for reseller.
- Hosting Control Panel: Generic plugin: Allow empty parentServicePath
- Hosting Control Panel: Linux/Litespeed chagned to Linux/Apache in resource file for installatron
- Hosting Control Panel: Domain renewal was not handling renewal periods correctly
- Hosting Control Panel: Domains Website Add Email limit check fixed, and removed required on form submit
- Hosting Control Panel: NoExistingDomains/{serviceName} support added, Transformation changes to support NoExistingDomains serviceName data
- Hosting Control Panel: PluginScripts and Scripts folders not required in theme customization
- Hosting Control Panel: OneClickInstaller Application installed dialog fixed
- Hosting Control Panel: OneClickInstaller Application no database required fixed
- Hosting Control Panel: Edit Website PHPversion change removed because feature is not working
- Hosting Control Panel: Edit MySQL full username fixed
- Hosting Control Panel: Installatron fix for advanced settings database config
- Hosting Control Panel: Check of limit for IIS & LITESPEED fixed
- Hosting Control Panel: OneClickWebInstaller – Check for available packages is fixed
- Hosting Control Panel: Fixed editing from website list in DNS packages
- Hosting Control Panel: Fixed add website issue appearing in the DNS packages, caused by checking for website services not present in that package.
- Hosting Control Panel: Fixed code for creating culture to use new helper method from AtomiaCommon.
- Hosting Control Panel: Name of package is now visible on Installatron
- Hosting Control Panel: Resource MySQL replaced string MS SQL with MySQL
- Hosting Control Panel: Action menu fixed so it shows menu on click
- Hosting Control Panel: OneClickInstaller FilterAvailablePackages fix for IIS ASP version check
- Hosting Control Panel: Fixed config file for Generic Plugin issue (wrong transformation value for attribute containing json string.
- Hosting Control Panel: Fixed translated placeholders in resource files.
- Hosting Control Panel: OneClickInstaller Search method returns right data
- Hosting Control Panel: OneClickInstaller filter products for Installatron IIS & Apache
- Public Order Page: Return url for payment is made of current url of orderpage.
- Public Order Page: Fix for DomainSpecific when there is more than one DomainSpecific item
- Public Order Page: Post number validation text
- Public Order Page: GetAddressInfo route added
- Public Order Page: FormatPhoneNumber changed to match number with current country code only.
- Public Order Page: Modified calls of LoadResellerIntoSessionByUrl to use Host instead of AbsoluteUri.
- Public Order Page: Norid fix of configsection
- Public Order Page: Norid check fix
- Public Order Page: Removed swedish organization number formating
- Public Order Page: Refactored DomainSpecific part
- Public Order Page: PluginScripts include script fixed
Improvements
- Admin Panel and Atomia Billing: Campaign discounts can now be set to apply to renewals.
- Admin Panel and Atomia Billing: Allow adding campaigns without promo codes.
- Admin Panel: Show in list if promo codes are set for campaign.
- Admin Panel and Atomia Billing: Remove limit on exclusive discounts.
- Admin Panel: Added campaign priority to campaign editor.
- Action Trail: Parse XML messages and properly format and indent them
- Action Trail: Added redirect from http://actiontrail.customer.com/ to http://actiontrail.customer.com/Tools/Logs.aspx.
- Admin Panel: List Payments: Refunds now show payment method.
- Admin Panel: Search subscriptions: filtering can be done by all properties defined in SubscriptionAdditionalDataAttributeName
- Admin Panel: Customer Card: Overview shows latest note if exists.
- Admin Panel: Make subscription search faster by doing equality searches, not allowing sort on product name and using index for the domain search.
- Admin Panel: Added phone code for Channel Islands
- Admin Panel: Hidden field added in Add Order for Order Type
- Admin Panel: Make customer name a link back to the customer card on invoice and order preview.
- Admin Panel: Added main subscription switch when terminating main subscription.
- Admin Panel: Added option to select one of subresellers and manage their entities.
- Admin Panel: Added the option of setting ‘default invoice reference number format’ for a customer
- Admin Panel: Refactored Subscriptions Edit page to handle custom attributes better in order to support more complex values.
- Admin Panel: CSV Report export total sum row added
- Admin Panel: Added customer number to the invoices list.
- Admin Panel: Report csv export added on print view
- Admin Panel: Improved loading of List of invoices page
- Admin Panel: Fixed display of order line custom attributes in Preview order page.
- REST API: Added username validation api method.
- REST API: Added recurring payment options to order.
- REST API: Added /customers/validate method to validate a customer with given username and password
- Automation Server: Added reason to exception message in GetAccount method.
- Atomia Billing: Scheduled tasks of different types are run in parallel by default.
- Atomia Billing: Added connection timeout config param for reports and set default to 30 seconds.
- Atomia Billing: Modified Invoice Reminders to support configuration per reseller.
- Atomia Billing: Improved PeriodicInvoicingScheduledEventHandler to schedule subscriptions for invoicing instead of immediate invoice creation.
- Atomia Billing: Added TransactionId, Transaction timestamp and payment method to InvoiceEmail (case when invoice is paid).
- Atomia Billing: Improve performance in SearchUsers method in Account API.
- Atomia Billing: Refactored InvoiceReminderScheduledEventHandler to support loading preconfigured handlers for separate message types. Created default handlers for all message types (email, SMS and print).
- Atomia Billing: Include orders with empty GUID in global search results.
- Atomia Billing: Added handler for CreditInvoicePreCreated to the Generic Workflow
- Atomia Billing: WorldPayRedirect now supports auto refunds.
- Atomia Billing: Add reseller domain as identity property (claim) on new customers.
- Atomia Billing: From and reply-to when sending email are configurable per reseller.
- Atomia Billing: Links in email are based on reseller domain when available.
- Atomia Billing: Changed Global Search to only search on exact entered term instead of all word combinations.
- Atomia Billing: Modified CreateUpgradeOrder API method to raise OrderPreCalculate event before campaign is checked in order to get permanent campaign from Generic Workflow plugin.
- Atomia Billing: Modified OrderPreCalculate event handler to add permanent campaign code to upgrade orders too.
- Atomia Billing: Improvement: Invoice lines now have ItemNo set. Used to order them correctly for printing invoicesreceipts.
- Atomia Billing: PayPalPayment plugin: auto-refund support added.
- Atomia Billing: Make SearchSubscriptions search with a separate query per search-expression for performance reasons.
- Atomia Billing: Improve speed of Global search by making the user query more efficient and indexed.
- Atomia Billing: Password for new account can now be specified through custom order attribute: “UserPassword”
- Atomia Billing: Added Channel Islands to country table
- Atomia Billing: SubscriptionsFilterConditionHandler added for campaigns.
- Atomia Billing: DateRangeConditionHandler added for campaigns.
- Atomia Billing: Updated OrdererdItemsCountConditionHandler to take current order items into account.
- Atomia Billing: OrderTypesConditionHandler added for campaigns.
- Atomia Billing: ResellerSequenceCounter function added to db and replaced code in triggers.
- Atomia Billing: Modified AdyenHppPaymentMethodPlugin to do capture only if AutoCapture is turned off.
- Atomia Billing: Speed up global search by only doing exact domain searches and using the indexed ValuePrefix columns.
- Atomia Billing: Added filtering by subscription attribute’s ValuePrefix in ValidateOrder method in order to speed it up.
- Atomia Billing: Add new task status called PROCESSING and make the GenericWorkflow renewal handler use it.
- Atomia Billing: Modified reseller configuration and templating utils method to support alternative for language which will be used as default when template in requested language doesn’t exist.
- Atomia Billing: Modified Adyen HPP payment plugin to support shopper localization.
- Atomia Billing: Made InvoiceTemplating plugin methods virtual in order to allow overriding them.
- Atomia Billing: Modified ProvisionSubscription workflow to update AccountDetails within same session.
- Atomia Billing: Added more fields needed for invoice printing.
- Atomia Billing: Added value_prefix nvarchar(32) column in tables subscription_custom_attribute, order_custom_attribute, order_line_custom_attribute with indexes
- Atomia Billing: CheckDomains is modified to use value_prefix in criteria this way we speed up search.
- Atomia Billing: Added tax rate value to order and invoice template data for emails and printing.
- Atomia Billing: Improved order validation logic to allow customer to order services with same domain name in custom attributes. Duplicate registrations/transfers are still denied.
- Atomia Billing: Added new campaign condition handler which checks if order is for required reseller.
- Atomia Billing: Added new API method for processing payment files for given reseller.
- Atomia Billing: Modified type of SequenceCounter value to long/bigint.
- Atomia Billing: Added Currency parameter to OrderConfirmation and Invoice email templates.
- Atomia Billing: Added optional configuration of allowed renewal period units for external services.
- Atomia Billing: Fixed upgrade/downgrade helper to return distinct items for upgrade/downgrade.
- Atomia Billing: Added optional phone number reformatting that can be used when orders originate from other sources than Atomia GUI applications.
- Atomia Billing: Added support for ordering decrease in subscription quantity for custom products, e.g. Google Apps Subscription seats.
- Atomia Billing: Added support for reseller custom data in Public Order Service.
- Atomia Billing: Added support for reseller languages in Public Order Service.
- Atomia Billing: Added API method GetDefaultPaymentMethod for getting Default Payment Method for given account..
- Atomia Billing: Added setting to allow adding number of seats from subscription quantity for seat based external services.
- Atomia Billing: Added Deleted status for payments.
- Atomia Billing: Improved performances of methods CreateOrder and UpdateOrder.
- Atomia Billing: Added support for termination of External Subscriptions. On termination, related services will be removed from Automation Server.
- Atomia Billing: OrderPreCreated event is now triggered before OrderValidate event. Any changes made to order will be subject of validation.
- Atomia Billing: Changed ValidateOrder method of AtomiaProvisioningHosting class, to read package names from configuration file instead to have them hard coded.
- Atomia Billing: SubscriptionHelper: created GetSubscriptionsForItemsByCustomer method that returns subscription for items of customer
- Atomia Billing: Modified discounting of subscriptions bound to the package to give quantity discount if there is DiscountedQuantity property.
- Atomia Billing: Modified CalculateTotals to include subscriptions bound to the package when main subscription is renewed.
- Atomia Billing: Modified Payment Journal to include unmatched payments and to show payment date column.
- Atomia Billing: Email to MailOnOrder changed for custom order line data
- Atomia Billing: SubscriptionPreChangedPackage Event Added
- Atomia Billing: Added PayByInvoice flag to invoice template data which tells if customer ordered with “Pay by invoice” payment option.
- Atomia Billing: Updated Payment Journal to show payment status, transaction id and difference between invoiced and paid amounts in details table.
- Cloud Hosting Pack: Added support for Openstack Keystone in EC2 module
- Cloud Hosting Pack: Add hook to Billing renewal functionality for Google Apps.
- Cloud Hosting Pack: Added functionality to support quantity change for Google Apps subscriptions.
- Cloud Hosting Pack: Installatron fixed admin username default.
- Cloud Hosting Pack: Installatron config added to resources.xml.
- Cloud Hosting Pack: Installatron fixed installation path, and added logging.
- Cloud Hosting Pack: Installatron package db_table_prefix param added for all packages.
- Cloud Hosting Pack: Added BaseKitSite in init list of CsBaseKit service. Added BaseKit class to TestModules project.
- Cloud Hosting Pack: Installatron module – Images path changed to default theme & default app icon path added
- Cloud Hosting Pack: Installatron module – Dashboard property and Tags property fixed
- Cloud Hosting Pack: Installatron module – Database type for packages that doesn’t required is set to “nodb”
- Cloud Hosting Pack: Installatron module – Flow fixed, Remove method gets application id from Installatron
- Cloud Hosting Pack: Installatron module – PackageName changed to ID and FriendlyName added
- Cloud Hosting Pack: Installatron module – bug fixed: installatron now parse minimal asp version for package
- Cloud Hosting Pack: Installatron module – bug fixed: installatron is now smart to detect IIS or Apache application type.
- Cloud Hosting Pack: Installatron module – bug fixed: login username and password for application can be set now from API
- Cloud Hosting Pack: EC2 module – Added support for Amazon API for GetInstanceStatus function
- Cloud Hosting Pack: EC2 module – Adding retry for connecting on ssh
- Cloud Hosting Pack: EC2 module – Set root password for VPSes (using ssh)
- Customer Panel: Added change nameservers option to single domain transfer order.
- Customer Panel: Added possibility to download invoice PDF without logging in.
- Customer Panel: Added German translations.
- Customer Panel: Updated DomainSearch dll which includes fix for excluding domains without price.
- Customer Panel: Added support for setting default payment method based on reseller.
- Customer Panel: Added support for defining payment methods per reseller.
- Customer Panel: Optionally do simple whois string matching to exclude domains already at the provider for transfer.
- Customer Panel: Fixed translation for Customer page
- Customer Panel: Added many more tlds in default atomiaRegularExpressionConfig
- Customer Panel: Added translation for tab names on MySettings Profil page
- Customer Panel: Disabled manual renewal for subscriptions which are bound to the package. They will be renewed together with the package only.
- Customer Panel: Added Office365 to services list for upgrade/downgrade message
- Customer Panel: Email to MailOnOrder changed for custom order line data
- Customer Panel: Norid support & Domain country specific support added
- Customer Panel: Translation fix for Norwegian
- Customer Panel: Translation fix for Upgrade/Downgrade
- Customer Panel: OnlinePaymentThankYou on status failed shows correct title and description
- Customer Panel: PluginScripts and Scripts folders not required in theme customization
- Customer Panel: Improved filtering of extra services based on upgrade/downgrade and change quantity possibilities.
- Customer Panel: Remove cache of main package so that successful upgrade/downgrades are reflected without logout
- Customer Panel: Culture from users identity property is used for current culture.
- Customer Panel: Email lowercased before validaton.
- Customer Panel: IE – edge default rendering engine not IE8
- Hosting Control Panel: Small performance tuning so that the contacts page loads normally, and without extraneous data.
- Hosting Control Panel: Added configuration option to disable MyLittleAdmin
- Hosting Control Panel: Generic plugin: Generic dialog box now has an event which can be used to get dialog box action result. Used at the moment for refreshing Index table.
- Hosting Control Panel: Generic plugin: Table on index page can be filtered per multiple properties now.
- Hosting Control Panel: Generic plugin: Added autorefresh posibility to Index and ListChildren pages.
- Hosting Control Panel: New Atomia.Web.Base libraries added.
- plugin: Property values can now also be translated using resource files.
- Hosting Control Panel: Generic plugin: Select boxes now are preselected to property value.
- Hosting Control Panel: Password validation added to generic dialog boxes.
- Hosting Control Panel: Generic plugin updated: More actions support translations now.
- Hosting Control Panel: Added German translations.
- Hosting Control Panel: Website warning notification, url fix for icons
- Hosting Control Panel: OCI Categories added, apps are sorted in categories
- Hosting Control Panel: OCI Custom Categories added, you can add your own category with apps you want.
- Hosting Control Panel: OCI Language added
- Hosting Control Panel: Added jsoncanadd and jsonfilterurl for SimpleService
- Hosting Control Panel: Generic plugin updated to support generic dialogs for provisioning operations.
- Hosting Control Panel: Added optionaladd and optionaledit parameter for SimpleService
- Hosting Control Panel: DNS vtip fixed & max chars changed to 45
- Hosting Control Panel: OCI fixed params
- Hosting Control Panel: MSSQL translation fixed for NO
- Hosting Control Panel: MS Exchange limit check added on edit page
- Hosting Control Panel: Website platform changing warning on edit page
- Hosting Control Panel: Added support for defining payment methods per reseller.
- Hosting Control Panel: Optionally generic plugins are only shown on dashboard if relevant service is provisioned for user.
- Hosting Control Panel: ResetPassword page now uses flag from css
- Hosting Control Panel: ResetPassword Display Name for user added
- Hosting Control Panel: QuickGuide class on element added
- Hosting Control Panel: Email Exchange OWA link opens in new window
- Hosting Control Panel: MySQL & MSSQL user edit fixed
- Hosting Control Panel: OneCLickInstaller Advanced Installation create user for existing DB
- Hosting Control Panel: OneClickInstaller root path fixed
- Hosting Control Panel: OneClickInstaller subdomain limit website check added
- Hosting Control Panel: OneClickInstaller fixed message for used path
- Hosting Control Panel: DNS CNAME data validation added
- Hosting Control Panel: Exchange Add Account JS fix
- Hosting Control Panel: Added text for deactivating MsExchange backup
- Hosting Control Panel: OneClickInstaller scrolls to top if domain not chosen
- Hosting Control Panel: OneClickInstaller Installatron advanced install app name fix
- Hosting Control Panel: Removed Bulk Website edit
- Hosting Control Panel: Allow disabling the Hosts tab of the domain manager globally with the HostsVisible option.
- Hosting Control Panel: Added possibility to hide delete button
- Hosting Control Panel: Generic plugin added option selectjson that gets data for select boxes from url
- Hosting Control Panel: Added details to Generic plugin
- Hosting Control Panel: Installatron icons added to default theme, also universal app image added
- Hosting Control Panel: Referenced latest WebFrame plugins
- Hosting Control Panel: Pdf files for domain owner change are opened in new tab.
- Hosting Control Panel: OneClickWebInstaller – Installatron Package Name is showed correctly.
- Hosting Control Panel: Website switch now have information of website limit per type
- Hosting Control Panel: Do availability check for current account and package before showing generic plugins in the dashboard.
- Public Order Page: Refactored logic for payment plugins to support more than one “card” payment type.
- Public Order Page: Added German translations.
- Public Order Page: Added new action filter, ResellerDataProvider, which puts on ViewData additional reseller data needed for rendering customized parts of Public Order Pages.
- Public Order Page: Updated DomainSearch dll which includes fix for excluding domains without price.
- Public Order Page: Added support for loading languages based on reseller.
- Public Order Page: Added support for defining payment methods per reseller.
- Public Order Page: Cart web plugin updated
- Public Order Page: Added support for skipping Index page.
- Public Order Page: Refill order form on going back when appropriate, e.g. on canceled payment.
- Public Order Page: Save absolute cancel URL for WorldPayXml to transaction.
- Public Order Page: Fixed tranlsation for errors
- Public Order Page: Email to MailOnOrder changed for custom order line data
- Public Order Page: Norid self signed certificate email added in custom data of order line
- Public Order Page: Default POP page added NO and NL country check
- Public Order Page: PluginScripts and Scripts folders not required in theme customization
- Public Order Page: AtomiaServiceExtraProperties gets copy to orderline for AtomiaService CsLinuxWebsite
- Public Order Page: OwnDomain flag MainDomain set to true
- Public Order Page: Norid page added for declaration that is needed for .NO domains. Cart duplicate item check added. new custom order line parameter DomainRegistrySpecificAttributes.
- Public Order Page: IE – edge default rendering engine not IE8
API Changes
The full list of changes to the APIs since the last release is:
Billing API
-
New event handlers
- InvoiceCreated
- InvoiceUpdated
- InvoiceDeleted
- OrderProcessValidate
- PaymentFinished
- SubscriptionPreChangedPackage
-
New methods
- ListResellersWithCustomPrices
- SearchAccountDetails
- GetPaymentMethods
- GetDefaultPaymentMethod
- BulkPrintInvoicesSynchronous
- BulkSendInvoicesSynchronous
- CreateSubscriptions
- IsQtyChangePossible
- GetPriceListOwnerId
- ParsePaymentFileForReseller
- GetFinancialRecords
- DowngradeSubscriptionToCheapestPackage
- ListLanguages
- GetOrderStatusPriorities
- GetAttachment
- GetContacts
- ListResourceLocations
- GetSetting
-
Removed methods
- CreateWorkflow
- MapWorkflow
- UpdateWorkflow
- DeleteWorkflow
- GetWorkflowMapByAccount
Account API
-
New methods
- CheckEmail
Native API
-
New methods
- DeleteServiceAsync
-
Changed methods
- ListServicesByNameAndPropValues (provisioningDescription parameter added)
REST API
See the full change log above for entries related to the REST API product.