app/shell/templates/shell.html
author Pawel Solyga <Pawel.Solyga@gmail.com>
Sun, 24 May 2009 22:29:54 +0200
changeset 2335 366e64ecba91
permissions -rw-r--r--
Add web based python shell to Melange. It is accessible via http://host/admin/shell url and requires developer rights. Shell project is part of google-app-engine-samples. This commit moves django configuration from main.py to separate gae_django.py module. Shell project has been modified in order to work correctly with django 1.0+. Build script has been updated and includes shell folder and gae_django.py file. http://code.google.com/p/google-app-engine-samples/source/browse/trunk/shell/

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title> Interactive Shell </title>
<script type="text/javascript" src="/static/shell.js"></script>
<style type="text/css">
body {
  font-family: monospace;
  font-size: 10pt;
}

p {
  margin: 0.5em;
}

.prompt, #output {
  width: 45em;
  border: 1px solid silver;
  background-color: #f5f5f5;
  font-size: 10pt;
  margin: 0.5em;
  padding: 0.5em;
  padding-right: 0em;
  overflow-x: hidden;
}

#toolbar {
  margin-left: 0.5em;
  padding-left: 0.5em;
}

#caret {
  width: 2.5em;
  margin-right: 0px;
  padding-right: 0px;
  border-right: 0px;
}

#statement {
  width: 43em;
  margin-left: -1em;
  padding-left: 0px;
  border-left: 0px;
  background-position: top right;
  background-repeat: no-repeat;
}

.processing {
  background-image: url("/static/spinner.gif");
}

#ajax-status {
  font-weight: bold;
}

.message {
  color: #8AD;
  font-weight: bold;
  font-style: italic;
}

.error {
  color: #F44;
}

.username {
  font-weight: bold;
}

</style>
</head>

<body>

<p> Interactive server-side Python shell 
    (<a href="http://code.google.com/p/google-app-engine-samples/source/browse/#svn/trunk/shell">original source</a>)
</p>
<p>
    <a href="/">Return to main home</a>
</p>

<textarea id="output" rows="30" readonly="readonly">
{{ server_software }}
Python {{ python_version }}
</textarea>

<form id="form" action="/admin/shell/shell.do" method="get">
  <nobr>
  <textarea class="prompt" id="caret" readonly="readonly" rows="4"
            onfocus="document.getElementById('statement').focus()"
            >&gt;&gt;&gt;</textarea>
  <textarea class="prompt" name="statement" id="statement" rows="4"
            onkeypress="return shell.onPromptKeyPress(event);"></textarea>
  </nobr>
  <input type="hidden" name="session" value="{{ session }}" />
  <input type="submit" style="display: none" />
</form>

<p id="ajax-status"></p>

<p id="toolbar">
{% if user %}
  <span class="username">{{ user.nickname }}</span>
  (<a href="{{ logout_url }}">log out</a>)
{% else %}
  <a href="{{ login_url }}">log in</a>
{% endif %}
 | Shift-Up/Down for history |
<select id="submit_key">
  <option value="enter">Enter</option>
  <option value="ctrl-enter" selected="selected">Ctrl-Enter</option>
</select>
<label for="submit_key">submits</label>
</p>

<script type="text/javascript">
document.getElementById('statement').focus();
</script>

</body>
</html>