Lizard-apps is a simple, Google-apps like Django app for switching between web applications built on top of the lizard-nxt back end. An example of such an application is lizard-client. A recognizable but contrived example:
Add "lizard_apps" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ ... 'lizard_apps', ]
Include the lizard_apps URLconf in your project urls.py like this:
url(r'^lizard_apps/', include('lizard_apps.urls')),
Add 'django.template.context_processors.media' in the 'context_processors' option of TEMPLATES, so {{ MEDIA_URL }} can be used in the script.js template.
Define MEDIA_ROOT and MEDIA_URL in your project's Django settings file. MEDIA_URL must end in a slash if set to a non-empty value as per docs; assumed is that it also starts with one.
Run python manage.py migrate to create the lizard-apps models.
Configure Applications and Screens (i.e. a collection of Appications) via the Django admin interface.
A client at www.foo.com can use lizard-apps deployed at apps.lizard.net as follows:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>title</title> <link rel="stylesheet" type="text/css" href="https://apps.lizard.net/static/lizard_apps/style.css"> <style> /** * This is just an example of how to override some items with css. * In your own app, add your own styles to your CSS files. */ .hidden { display: none; } nav { width: 100%; background: #444; } #lizard-apps-button { background-color: #444; } </style> </head> <body> <nav> <!-- example navigation Element --> <div id="lizard-apps-button" title="My App Title"></div> </nav> <div id="lizard-apps-container"></div> <script src="https://apps.lizard.net/screens/foo.js"></script> </body> </html>
The script tag loads a little plain-old javascript that inserts a switch button in the #lizard-apps-button. And a container for the apps in the #lizard-apps-container. A default styling is provided via style.css but may be overriden.
To launch the plugin add this the body:
<script> // vanilla js document.addEventListener("DOMContentLoaded", function(event) { Lizard.startPlugins(); }); // or jQuery style $(document).ready(Lizard.startPlugins); </script>
Or initialize it yourself wherever you want:
Lizard.startPlugins();
The Apps container will automatically be hidden if you use a CSS framework like Twitter Bootstrap. It uses the class hidden. If you're not using a CSS framework. You can add this to your CSS:
.hidden { display: none; }