.. contents:: Table of Contents
   :depth: 4

ice.control - System Administration and Site Management for BlueBream
*********************************************************************

ice.control is package for:

- BlueBream application developers: `developer kit` and `starter kit`.
- System administrators: `site management`.
- Site managers: if you have defined a views for these tasks.

Package overview
----------------

This package does provide:

- treeview ZODB browser
- views for simple manipulate objects (remove, rename)
- introspector
- ajax based python shell with REPL to interact the application in
  selected ZODB context
- configurator plugin forms to manage ZODB, edit metadata, other
  ajax based views and ability to add new views
- other controls like generations and ZODB pack
- optional simple skin (as part of `starter kit`)
- optional module with all needed zcml registrations

Each facility is optional. Include needed components using zcml, or
include root configuration file to use entire functionality of the
package.

IMPORTANT NOTE: use Mozilla Firefox.


Getting started
---------------

Add `ice.control` dependency into main package of your BlueBream
application. If you like to install the package from Git repository,
see HACKME, section ``Install from Git repository``.

There are number of options to use ice.control. You have define this
including certain modules in zcml. If you like to use entire
functionality of the package, add these directives into your configure.zcml
file, before of `include file="securitypolicy.zcml"`::

  `include package="ice.control.zcml"`
  `include package="ice.control"`
  `include package="ice.control.repl"`
  `browser:defaultSkin name="control"`

Now run tests and run the server::

  $ bin/test
  $ bin/paster serve debug.ini

Open http://localhost:8080 and log in admin account and learn UI.


Ajax based REPL
---------------

You might open, close, minimize number of 'Details' pseudo-windows
in the same time, and each plseudo-window will contain its own REPL
session. Session is defined for user and context. So, each context
has its own session.

Predefined variables and methods:

- `context` variable is current context in ZODB tree
- `getObject` method from zope.security.proxy
- `transaction` module imported

Key bindings:

- `up` - up to history
- `down` - down to history
- `Tab` - tab indent
- `Ctrl+E` - go to line end
