[%# This Source Code Form is subject to the terms of the Mozilla Public
  # License, v. 2.0. If a copy of the MPL was not distributed with this
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
  #
  # This Source Code Form is "Incompatible With Secondary Licenses", as
  # defined by the Mozilla Public License, v. 2.0.
  #%]

[%# INTERFACE:
  # none
  #%]

[% javascript = BLOCK %]
  [% INCLUDE "admin/custom_fields/cf-js.js.tmpl" %]
[% END %]

[% PROCESS global/header.html.tmpl
           title = "Add a new Custom Field"
           onload = "document.getElementById('new_bugmail').disabled = true;"
           javascript_urls = [ 'js/util.js' ]
           doc_section = "administering/custom-fields.html#adding-custom-fields"
           style_urls = ['skins/standard/admin.css']
%]

[%# set initial editability of fields such as Reverse Relationship Description %]
<script type="text/javascript">
  YAHOO.util.Event.onDOMReady(function() {onChangeType(document.getElementById('type'))});
</script>

<p>
  Adding custom fields can make the interface of Bugzilla very
  complicated. Many admins who are new to Bugzilla start off
  adding many custom fields, and then their users complain that the interface
  is "too complex". Please think carefully before adding any custom fields.
  It may be the case that Bugzilla already does what you need,
  and you just haven't enabled the correct feature yet.
</p>

<ul>
  <li>Custom field names must begin with "cf_" to distinguish them from
      standard fields. If you omit "cf_" from the beginning of the name, it
      will be added for you.</li>
  <li>Descriptions are a very short string describing the field and will be
      used as the label for this field in the user interface.</li>
</ul>

<form id="add_field" action="editfields.cgi" method="GET">
  [% PROCESS "admin/custom_fields/edit-common.html.tmpl" %]

  <input type="hidden" name="action" value="new">
  <input type="hidden" name="token" value="[% token FILTER html %]">
  <input type="submit" id="create" value="Create">
</form>

<p>
  <a href="editfields.cgi">Back to the list of existing custom fields</a>
</p>

[% PROCESS global/footer.html.tmpl %]
