AppSuite:Writing a simple application with embedded iframe
API status: In Development
Provide an iframe for the content area
Developing an app with an iframe for the content area is quite easy. All it needs is a manifest file (manifest.json) and the app file (main.js).
Both should be located in an designated folder in the apps folder. In this example the namespace 'com.example' will be used. (apps/com.example)
To make use of the provided helper function io.ox/core/tk/iframe has to be required in the define section.
define('com.example/main', [ 'io.ox/core/tk/iframe', 'gettext!com.example' ], function (createIframeApp, gt) { 'use strict'; var iframeApp = createIframeApp({ name: 'com.example', // the name of the app title: gt('Hallo, World!'), // the title of the app as used in the launcher pageTitle: gt('Hallo, World!'), // the page Title domain: 'https://www.example.com/', // the domain which should be used for the iframe cssNamespace: 'hallo_world', // a css class used for namespacing, acquireToken: true // generates a login token and appends it to the supplied url }); return { getApp: iframeApp.getApp }; });
Add app to the launcher
To display an app in the launcher, the property 'topbar': true has to be set in the manifest.json file of the app. To define the order, use the index value in the manifest.json file.
{ "title": "Hallo, World!", "company": "external", "icon": "/images/icon.png", "category": "Dev", "settings": false, "index": 10000, "topbar": true }
Reorder / remove apps from launcher
To define a custom order of the apps or remove an app from the laucher the server-side setting topbar/order can be used to provide a comma-separated list of apps which should be available in the launcher.
Example: io.ox/core//topbar/order=io.ox/mail,com.example,io.ox/contacts,io.ox/portal
An app which is not listed here, is not available in the launcher anymore.