AppSuite:Debugging the UI
Synopsis: A collection of hints to debug during UI development
What capabilities are available?
_(ox.serverConfig.capabilities).pluck("id").sort();
Which files failed to load?
requirejs.s.contexts._.registry
What portal widgets are available?
require(['io.ox/portal/widgets'], function (widgets) { console.log(widgets.getAvailablePlugins().sort()); });
Check settings
// check core settings require('settings!io.ox/core').get(); // check mail settings require('settings!io.ox/mail').get();
Clear all persistent caches
Please mind that this does not clear the regular browser cache! It clears localStorage, IndexedDB, and WebSQL.
ox.cache.clear();
Debug relogin
ox.autoLogoutRestartDebug();
Enable/disable capability via URL hash
Just add the parameter "cap" to URL hash. A leading minus disables a capability. Multiple capabilities separated by comma. Example:
...&cap=emoji,-calendar
Changes do not apply while developing
You did changes in your code and they don't simply don't apply? There are several possibilites, you should check in order to find a solution.
- If you use build-appsuite, make sure you perform build-appsuite clean once in a while to clear the build-path.
- Reload AppSuite with cleared Browser Cache. Using Firefox on Linux-Distributions you can simply press Ctrl+F5. Please check the documentation of your Browser for Shortcuts and how to clear the cache.
- Disable Source Caching. Therefor add the parameter "debug-js=true" to URL hash. Example:
...&debug-js=true
Debug a specific folder
If you want to get details of a specific folder, just inspect it via dev tools and look for data-obj-id="...". Copy the id and run the following in console:
void require('io.ox/core/api/folder').get({ folder: 'default0/INBOX' }).always(_.inspect);
Does not load, fails with error: Could not read...
"Could not read 'io.ox/core/http.js'" "Could not read 'io.ox/core/events.js'"
That's not all, the system is probably hiding even more errors. It is more probable that the whole UI cannot be found. Check the com.openexchange.apps.path, usually hidden in manifests.properties. Does it point to where your webserver serves the files from? The default is /var/www/appsuite, on OSX is is more likely to be /Libraries/WebServer/Documents/appsuite