20131231 (Tuesday, 31 December 2013)

User interfaces get more pluggable

I continued to remove hard-wired dependencies to ExtJS. The process is still not finished, but a next visible result is lino.projects.start where the user can now easily switch between the three (web) user interfaces that currently exist.

Before starting the following changes, I checked in the changes made since 2013-12-27.

Moved the following settings and methods from lino_site.Site to lino.modlib.extjs.Plugin:

.build_admin_url()  --> .plugins.extjs.build_plain_url()
.admin_prefix --> .plugins.extjs.url_prefix
.build_extjs_url --> .plugins.extjs.build_media_url()
.plain_prefix --> .plugins.plain.url_prefix
extjs_base_url = None --> configure_plugin('extjs',media_base_url=None)
extjs_root ="foo" --> configure_plugin('extjs',media_root="foo")

Test suite passes. Checkin.

TODO:

  • Possibility to log in from Plain ui and Pages ui.

  • move get_css_includes and get_js_includes from ext_renderer to the extjs plugin

  • Possibility to switch back from “Admin” to another ui

  • error message if some of the old settings hasn’t been removed?