Skip to main content

Ajax Library

warning

This documentation is part of the Frontend Development category, designed to guide you through frontend customization within Simplicité.

This guide covers the Ajax Library's core methods and Simplicité's MVC architecture.

MVC Architecture

Simplicité uses the Model-View-Controller pattern for organized, maintainable applications:

  • Model ($app): Backend data handler via Simplicite.Ajax
  • View ($view): UI components and rendering via Simplicite.UI.View
  • Controller ($ui): Frontend engine coordinating Model and View via Simplicite.UI.Engine

Global Objects

Key objects available in Simplicité:

ObjectTypeDescription
$uiSimplicite.UI.EngineMain UI Controller
$appSimplicite.ApplicationAjax Service / Main Model
$viewSimplicite.UI.ViewView Engine / Main View
$grantSimplicite.Ajax.GrantUser rights and information
$navSimplicite.UI.NavigatorNavigation controller
$rootStringServer root URL
$toolsSimplicite.UI.ViewBootstrap-specific methods
$TFunctionText translation shorthand

Access Shortcuts

Most objects are accessible through $ui:

$ui.app       // Same as $app
$ui.view // Same as $view
$ui.grant // Same as $grant (also $app.grant)
$ui.nav // Same as $nav
$ui.view.tools // Same as $tools

Accessing Simplicité Session

Core Methods

MethodReturnsDescription
getApp()Simplicite.AjaxCurrent Simplicité session
getView(cbk, name, params)Promise<Object>View definition by name
getGrant()Simplicite.Ajax.GrantCurrent user rights
getUserInfo(cbk, login, params)Promise<Object>User data (login, name, email, picture)
getBusinessObject(obj, inst)Simplicite.UI.BusinessObjectBusiness object instance

Manipulating Business Objects

Key Methods

MethodReturnsDescription
create(cbk, items, params)voidCreate and load new item
getFields()Array<Simplicite.Ajax.ObjectField>All object fields
getField(name, id)Simplicite.Ajax.ObjectFieldSpecific field by name and ID
getCount(cbk, filters, params)integerRow count with filters
getForCreate(cbk, params)voidLoad default item for creation

Business Object Structure

AttributeDescription
countCurrent search result count
filtersCurrent search filters (filters.filterName)
itemCurrently loaded item
listSearch result array of items
metadataMeta data (name, instance, fields)
tip

Always manipulate Business Objects within a search() method to ensure data is properly loaded.

Field Access Example

product.search(function() {
for (let i = 0; i < product.count; i++) {
const prd = product.list[i];
console.log(prd.demoPrdName); // Direct field access
console.log(prd.demoPrdSupId__demoSupName); // Linked field access
}
}, null, {});

Displaying UI Elements

Display elements in the WORK area:

MethodDescription
displayForm(ctn, obj, p, cbk)Display form for object
displayList(ctn, obj, p, cbk)Display list for object
displaySearch(ctn, obj, p, cbk)Display search form for object

Example:

$ui.displayForm(null, "DemoProduct", rowId, {
nav: "add",
target: "work"
});