Previous topic


Last updated 17-Jul-2017

What’s New in APS 2.2

Support of CCP v2

APS applications developed for CCP v2 are Single Page Applications now. It means UI is rendered only once on the first and no more on every subsequent user request.

  1. All views are implemented as JS modules. The data is still coming from navigation variables.
  2. It’s possible to integrate UI parts from various applications on one application screen using the View-Plugin integration mechanism.

Support of new markup based on bootstrap3

  1. The new layout system is based on the CSS grid.
  2. Forms (FieldSet) layout is changed. Labels for inputs are placed above inputs.
  3. Mobile UI is supported. The only thing that is needed from an application developer is to mark widgets with “md- xs-“ values set in the gridSize property.


Biz API is a high level business API that isolates developers from the billing logic and allows them to create transparently resources with optional upsell. This allows a developer not to care about:

  1. Whether the billing system is installed or not
  2. Specifics of the billing system installed
  3. The billing configuration
  4. How to place orders

In other words, the application “speaks” with a system using the application domain vocabulary and provisioning terminology like create/change configuration or increase usage. It’s sufficient to use only 3 methods to change configuration and if necessary to upsell resources:

  1. getResourcesInfo
  2. requestUsageChange
  3. commit

DashboardPlugin (HomeTile)

The DashboardPlugin (HomeTile) is a “smart widget” that completely encapsulates the logic staying behind the Tile on the Home page of CCP v2 (the Tile is a widget extensively used in CCP v2 to display the data in a ”tile” manner). Using very few parameters an application can display a Tile with a lot of information for a lot of various use cases:

  • If the customer hasn’t bought the application service, display a kind of advertisement message
  • Whether a customer subscribed to the service and depending on the subscription status - display subscription information and links to the Billing system
  • Display the service usage depending on its type (application service, counter, limit) including limited/unlimited cases
  • And other

The HomeTile is implemented using the view-plugin mechanism mentioned above.

Widgets Changes

  1. Most of legacy widgets are tuned for CCP v2 except for:

    • ActiveList series (ActiveList, ActiveItem, InfoBoard)
    • ProgressBar
    • Slider
    • ToolsList series (ToolsList, ToolsItem)
    • WizardControl
    • ToolbarButton
  2. New widget supported on both, CCP v1 and CCP v2:

    • Spinner - a widget containing a text field to enter a number and two buttons to increase and decrease the number respectively with a specified step.
  3. New widgets compatible with CCP v2 only:

    • Tiles series (Tile, Tiles, PieTile, UsageInfoTile) – widgets extensively used in CCP v2 to display some data in a “cardboard”/”tile” manner
    • Popup – a special kind a pop-up block overlaying the main content area
    • Billing widgets – CreditCard is a special form for entering, viewing, and editing bank card data
    • DropDownButton - a drop-down list of buttons with possible separators between them
    • Panel - a separate visual block containing other widgets
    • Pie - displays a resource property in the form of a pie-diagram
    • Status - indicates an object status using one of predefined or customized values
    • UsageInfo - mostly helpful to display details about a resource property
    • confirm - a method that allows you to specify a title and description of what you need to confirm or reject
    • changePassword - a method that creates a pop-up window to change a password
  4. Some widget properties are not supported anymore:

    • Inputs:
      • The Hint property is not supported anymore; only label and title properties are supported
      • autoSize and size properties are not supported in CCP v2; instead, developers must use gridSize
    • Password:
      • The secondary input (‘confirmation’) used to confirm an entered password was removed
      • There is no more ability to reset the password (showResetButton, resetButtonHint, resetMessage)
  5. Default text across many widgets was changed to meet better UX.

  6. Most of widgets were improved:

    • Button - supports active and default types (isActive, isDefault)

    • Password - supports password generation on the client side

    • Password - allows tuning the validation rules: length limitation and the level of the password strength

    • All form widgets - support optionalText, which is a text informing a user that the data is optional (CCP v2 only)

    • ComboBox supports the search both, by id and label (searchAttr), and it can display the results by a pre-defined template (optionTemplate), for example (in CCP v2 only):

      “{searchResult} ({code})” -> “New-York (NY)”
    • TextBox - allows you to define the minimum and maximum length of the input text;

    • TextBox - allows you to set an html5 input type explicitly through the type property;

    • Button - supports different types (‘primary’, ‘success’, ‘info’, ‘warning’, ‘danger’, ‘link’) used to change the presentation.

    • Grid - supports:

      • Different presentations for mobiles and desktops (‘mobileLayout’) (CCP v2 only)
      • Callback handler called when a row is clicked (‘onRowClick’)
      • Setting the filters programmatically (filters) - used by developers to filter the data
      • The isLoading property indicating whether the data is loading/loaded
      • Horizontal column alignment (<column>.’align’) (CCP v2 only)
      • Column description (CCP v2 only)
      • Column type (‘icon’, ‘string’, ‘resourceName’, ‘integer’, ‘number’, ‘boolean’, ‘date’, ‘datetime’, ‘label’) for better formatting, sorting, and filtering
      • Date and date-time filters
      • Group rows by categories
      • Sorting rows by parent-child relationship, for example, domains and sub-domains
  7. Data validators were added:

    • For web type, for example, web.isEmailAddress - checks if a string is a valid email address
    • For phone type, for example, phone.isValid - tests whether a phone number matches a pattern
  8. Added methods that transform the date, time, number, and currency in the logged-in user locale:

    • formatDatetime
    • formatDate
    • formatTile
    • formatNum
    • formatCurrency

Backend Interface

  1. Rename relation capability was added. This allows you to change names of the relations between resources when upgrading integration packages.
  2. Batch resource provisioning was added. This reduces the number of provisioning requests to the APS controller.
  3. In development mode, packages with the same version are imported into the same folder. This simplifies the package development and debugging.