General
Expand | ||
---|---|---|
| ||
This would be dependent on the nature of functionality that you are putting together. For configuring Apps for Inquiry and Data Visibility close to zero coding knowledge is needed. If you are looking to increase user interaction on the App (like listening to user clicks or taps and handling those), then you would need basic JavaScript knowledge. Canvas comes with an associated Message Hub that provides protocol adapters and message conversion options to handle easy consumption external interfaces. In cases where there is a need for custom logic for data fetch or massaging, related coding knowledge to execute the logic in Java is necessary. For working with transaction forms, additionally would include ability to configure validation rules (XML), database logic (SQL). |
...
Expand | ||
---|---|---|
| ||
For most of the scenarios, the answer is No. It is not required to redistribute the App. Canvas uses a unique modeling concept that allows for the UI configuration information to be updated seamlessly into the App without having the need to repackage the App. Having said that, there are few situations like changes to skins, images, logic written through Canvas extensions that would require a repackage. |
Encryption
Expand | ||
---|---|---|
| ||
You can enable encryption for the application built using Canvas by setting the 'ENCRYPT_SERVER_CALLS' property to 'Y' in the 'systempreferences.properties' file.
A sample 'systempreferences.properties' file is available in CTModelHouseResource.jar in the Model House application that comes as part of the Canvas platform package. Note that you must stop and start your application server to enable this feature. After the application server is restarted, access the widgets in the application and check the Network tab in the browser console to verify the encryption. |
CSS
Expand | |||||
---|---|---|---|---|---|
| |||||
You can explicitly enable horizontal scroll bar for a widget through CSS. Let's consider a grid widget shown in the following screen shot taken from the sample application, ModelHouse. Assume that the ModelHouse application is using the Market theme and the corresponding CSS file is: D:\Canvas\apache-tomcat-7.0.67\webapps\ctmodelhouse\css\style\market\jqtbs\market-jqtbs-ltr.css. To enable horizontal scroll bar for the grid widget, perform the following:
|
...
Expand | |||||
---|---|---|---|---|---|
| |||||
You can insert icons for form item labels through CSS. Let's consider a form shown in the following screen shot taken from the sample application, ModelHouse. Assume that the ModelHouse application is using the Market theme and the corresponding CSS file is: D:\Canvas\apache-tomcat-7.0.67\webapps\ctmodelhouse\css\style\market\jqtbs\market-jqtbs-ltr.css. To insert icons for the form item labels, perform the following:
|
Forms
Expand | ||
---|---|---|
| ||
To insert a form in another form, perform the following steps:
|
...
Expand | ||
---|---|---|
| ||
The mechanism to change the placeholder for displaying error messages for each form field is supported at the application-level, meaning the placeholder can be set for all form items globally across the whole application. By default, Canvas displays the error message for a form field on hovering over the error icon that is adjacent to the form item. However, you can change it to display the error message below the form items. For details of this mechanism, refer Displaying Error Messages below the Form Items. |
Expand | ||
---|---|---|
| ||
Expand | ||
| ||
Yes. Define filesets in the ondemandjsfile.xml grouping the JS files needed. Use canvas.core.downloadManager object's requireScripts API to fetch this fileset before loading the form. |
Expand | ||
---|---|---|
| ||
Database
Expand | ||
---|---|---|
| ||
Data can be fetched using Instruction classes (Java class) in Canvas. Canvas uses iBatis library for database access. Callable statements can be used to access Stored Procedures and Functions to get the data.
|
Expand | ||
---|---|---|
| ||
Database details are fetched by Canvas as JNDI lookups (preferred approach). Alternatively, the connection details can be stored in the DB and datasources can be created to point to these connections to fetch data. |
...
Expand | ||
---|---|---|
| ||
Data connection strings are stored on the server in the case of JNDI. The JNDI names are referred in a property file as part of the application WAR file. Alternative approach stores the database details in the Canvas framework's database instance. |
SSO
Expand | ||
---|---|---|
| ||
The authentication token provided by the SSO's authentication provider has to be stored in a Canvas' custom object called SessionInfo, which will be stored in the session object. This will be passed by Canvas to the application code for all requests coming in which can be used by application to do re-authentication/re-authorization as appropriate. This re-authentication is typically done in a SessionFilter, which is attached to all requests. |
Entitlement
Expand | ||
---|---|---|
| ||
Canvas supports multiple criteria values that can be defined at Product-SubProduct-Function level. Each grid column can specify one criteria to be respected. |
Charts
Expand | ||||
---|---|---|---|---|
| Yes
| Chart allows customizations via a configuration (using properties that are exposed by Fusion Charts).|||
Expand | ||||
| ||||
| ||||
Yes. Chart allows customizations via a configuration (using properties that are exposed by Fusion Charts). |
Expand | ||||
---|---|---|---|---|
| Yes. Define filesets in the ondemandjsfile.xml grouping the JS files needed. Use canvas.core.downloadManager object's requireScripts API to fetch this fileset before loading the form.
| |||
No. End users are not allowed to change the column titles. However, they can change the filters applied by default and can save those as custom views which will be applicable to those users. |
Session
Expand | ||
---|---|---|
| ||
When a user is logging in, Canvas creates a custom SessionInfo object, loads it with user details, and stores it in session. When the session times out or when the user logs out, session is invalidated and the SessionInfo is cleared. This is orchestrated by a class called SessionManager. Application must call SessionManager's validate session. Each request will be validated for a valid session using SessionFilter. | ||
Expand | ||
|
Templates
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
Whenever you modify any CTTPL files that comes with CT framework, it is necessary to ensure that the updated template (CTTPL) files are loaded correctly. To load the updated CT framework templates files using etag, add the following code snippet in the CT_Home.jsp page of Canvas Studio:
|
...