thirdparty/google_appengine/google/appengine/ext/admin/templates/datastore_edit.html
author Mario Ferraro <fadinlight@gmail.com>
Sun, 15 Nov 2009 22:12:20 +0100
changeset 3093 d1be59b6b627
parent 109 620f9b141567
permissions -rw-r--r--
GMaps related JS changed to use new google namespace. Google is going to change permanently in the future the way to load its services, so better stay safe. Also this commit shows uses of the new melange.js module. Fixes Issue 634.

{% extends "base.html" %}

{% block title %}{{ application_name }} Development Console - Datastore Viewer - {% if key %}Edit Entity{% else %}New Entity{% endif %}{% endblock %}

{% block head %}
  <style type="text/css">{% include "css/form.css" %}</style>
  <style type="text/css">

  .field_type {
    color: gray;
    font-weight: normal;
  }

  </style>
  <script type="text/javascript">

  function load() {
    var elements = document.getElementsByTagName("input");
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];
      var hint = null;
      if (element.className == "time") {
        hint = "e.g., 2006-30-05 23:56:04";
      }
      if (hint) registerHint(element, hint);
    }
  }

  function registerHint(element, hint) {
    function showDefault() {
      if (element.value.length == 0 || element.value == hint) {
        element.style.color = "gray";
        element.value = hint;
      }
    }
    function clearDefault() {
      if (element.style.color == "gray" || element.value == hint) {
        element.value = "";
        element.style.color = "black";
      }
    }
    element.onblur = showDefault;
    element.onfocus = clearDefault;
    showDefault();
  }

  function clearHints(form) {
    var elements = form.getElementsByTagName("input");
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];
      if (element.type == "text" && element.style.color == "gray") {
        element.onblur = null;
        element.onfocus = null;
        element.value = "";
      }
    }
    return true;
  }

  </script>
{% endblock %}

{% block bodyattributes %}onload="load()"{% endblock %}

{% block body %}
  <h3>{% if key %}Edit Entity{% else %}New Entity{% endif %}</h3>

  <form action="{{ request.path }}" method="post" onsubmit="return clearHints(this)">
    <div><input type="hidden" name="next" value="{{ next }}"/></div>
    <table class="form">
      <tr>
        <td class="name">Entity Kind</td>
        <td class="value text">
          {{ kind }}
          <input type="hidden" name="kind" value="{{ kind }}"/>
        </td>
      </tr>
      {% if key %}
        <tr>
          <td class="name">Entity Key</td>
          <td class="value text">
            {{ key }}
            <input type="hidden" name="key" value="{{ key }}"/>
          </td>
        </tr>
      {% endif %}
      {% if key_name %}
        <tr>
          <td class="name">Key Name</td>
          <td class="value text">
            {{ key_name }}
          </td>
        </tr>
      {% endif %}
      {% if key_id %}
        <tr>
          <td class="name">ID</td>
          <td class="value text">
            {{ key_id }}
          </td>
        </tr>
      {% endif %}
      {% if parent_key %}
        <tr>
          <td class="name">Parent</td>
          <td class="value text">
            <a href="?key={{parent_key}}&kind={{parent_kind}}">{{ parent_key }}</a>
          </td>
        </tr>
      {% endif %}
      {% for field in fields %}
        <tr>
          <td class="name">
            <span class="field_name">{{ field.0|escape }}</span>
            <span class="field_type">({{ field.1|escape }})</span>
          </td>
          <td class="value"><div style="position: relative">{{ field.2|safe }}</div></td>
        </tr>
      {% endfor %}
      <tr>
        <td></td>
        <td class="buttons">
          <input type="submit" value="Save Changes"/>
          {% if key %}
            <input type="submit" name="action" value="Delete" onclick="return confirm('Are you sure you want to permanently delete this entity?');"/>
          {% endif %}
        </td>
      </tr>
    </table>
  </form>

  <div id="datepicker"></div>
{% endblock %}

{% block final %}
<script type="text/javascript">
//<![CDATA[

// Sets the focus on the field with the given name in the given array (if any)
function setFocus(fields, fieldName) {
  for (var i = 0; i < fields.length; i++) {
    var field = fields[i];
    var name = field.name;
    if (field.focus && name.length > focus.length &&
        name.substring(name.length - focus.length - 1) == '|' + focus) {
      field.focus();
      break;
    }
  }
}

// Focus on the appropriate field in the form based on the "focus" argument
// in the URL
var focus = "{{ focus|addslashes }}";
if (focus) {
  setFocus(document.getElementsByTagName("input"), focus);
  setFocus(document.getElementsByTagName("textarea"), focus);
}

//]]>
</script>
{% endblock %}