summaryrefslogtreecommitdiffstats
path: root/template/en/default/global/code-error.html.tmpl
blob: 2c2eb9891610b0cd03843381b3c96360b29ce307 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
[%# The contents of this file are subject to the Mozilla Public
  # License Version 1.1 (the "License"); you may not use this file
  # except in compliance with the License. You may obtain a copy of
  # the License at http://www.mozilla.org/MPL/
  #
  # Software distributed under the License is distributed on an "AS
  # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  # implied. See the License for the specific language governing
  # rights and limitations under the License.
  #
  # The Original Code is the Bugzilla Bug Tracking System.
  #
  # The Initial Developer of the Original Code is Netscape Communications
  # Corporation. Portions created by Netscape are
  # Copyright (C) 1998 Netscape Communications Corporation. All
  # Rights Reserved.
  #
  # Contributor(s): Gervase Markham <gerv@gerv.net>
  #%]

[%# INTERFACE:
  # header_done: boolean. True if the header has already been printed.
  # error: string. The tag of the error.
  # variables: hash. Useful data about the problem. The keys are the variable
  #  names, and the values the variable values.
  #%]

[%# This is a list of all the possible code errors. Please keep them in
  # alphabetical order by error tag, and leave a blank line between errors.
  #
  # Note that you must explicitly filter every single template variable
  # in this file; if you do not wish to change it, use the "none" filter.
  #%]

[% PROCESS "global/field-descs.none.tmpl" %]

[% DEFAULT title = "Internal Error" %]

[% error_message = BLOCK %]
  [% IF    error == "action_unrecognized" %]
    [% docslinks = {'query.html' => "Searching for $terms.bugs",
                    'query.html#list' => "$terms.Bug lists"} %]
    I don't recognize the value (<em>[% action FILTER html %]</em>)
    of the <em>action</em> variable.
  
  [% ELSIF error == "attachment_already_obsolete" %]
    Attachment #[% attach_id FILTER html %] ([% description FILTER html %]) 
    is already obsolete.

  [% ELSIF error == "attachment_local_storage_disabled" %]
    [% title = "Local Storage Disabled" %]
    You cannot store attachments locally. This feature is disabled.

  [% ELSIF error == "attachment_url_disabled" %]
    [% title = "Attachment URL Disabled" %]
    You cannot attach a URL. This feature is currently disabled.

  [% ELSIF error == "auth_invalid_email" %]
    [% title = "Invalid Email Address" %]
    We received an email address (<b>[% addr FILTER html %]</b>)
    that didn't pass our syntax checking for a legal email address,
    when trying to create or update your account.
    [% IF default %]
      A legal address must contain exactly one '@',
      and at least one '.' after the @.
    [% ELSE %]
      [%+ Param('emailregexpdesc') %]
    [% END %]
    It must also not contain any of these special characters:
    <tt>\ ( ) &amp; &lt; &gt; , ; : &quot; [ ]</tt>, or any whitespace.

  [% ELSIF error == "authres_unhandled" %]
    The result value of [% value FILTER html %] was not handled by
    the login code.

  [% ELSIF error == "bad_page_cgi_id" %]
    [% title = "Invalid Page ID" %]
    The ID <code>[% page_id FILTER html %]</code> is not a
    valid page identifier.

  [% ELSIF error == "bad_arg" %]
    Bad argument <code>[% argument FILTER html %]</code> sent to
    <code>[% function FILTER html %]</code> function.

  [% ELSIF error == "bug_error" %]
    Trying to retrieve [% terms.bug %] [%+ bug.bug_id FILTER html %] returned 
    the error [% bug.error FILTER html %].
    
  [% ELSIF error == "chart_data_not_generated" %]
    [% admindocslinks = {'extraconfig.html' => 'Setting up Charting'} %]
    [% IF product %]
      Charts for the <em>[% product FILTER html %]</em> product are not
      available yet because no charting data has been collected for it since it
      was created.
    [% ELSE %]
      No charting data has been collected yet.
    [% END %]
    Please wait a day and try again.
    If you're seeing this message after a day, then you should contact
    <a href="mailto:[% Param('maintainer') %]">[% Param('maintainer') %]</a>
    and reference this error.

  [% ELSIF error == "chart_datafile_corrupt" %]
    The chart data file [% file FILTER html %] is corrupt.
        
  [% ELSIF error == "chart_dir_nonexistent" %]
    One of the directories <tt>[% dir FILTER html %]</tt> and 
    <tt>[% graph_dir FILTER html %]</tt> does not exist.
  
  [% ELSIF error == "chart_file_open_fail" %]
    Unable to open the chart datafile <tt>[% filename FILTER html %]</tt>.
  
  [% ELSIF error == "column_not_null_without_default" %]
    Failed adding the column [% name FILTER html %]:
    You cannot add a NOT NULL column with no default to an existing table
    unless you specify something for the <code>$init_value</code> argument.

  [% ELSIF error == "column_not_null_no_default_alter" %]
    You cannot alter the [% name FILTER html %] column to be NOT NULL 
    without specifying a default or something for $set_nulls_to, because
    there are NULL values currently in it.

  [% ELSIF error == "comment_extra_data_not_allowed" %]
    You tried to set the <code>extra_data</code> field to 
    '[% extra_data FILTER html %]' but comments of type [% type FILTER html %]
    do not accept an <code>extra_data</code> argument.

  [% ELSIF error == "comment_extra_data_required" %]
    Comments of type [% type FILTER html %] require an <code>extra_data</code>
    argument to be set.

  [% ELSIF error == "comment_extra_data_not_numeric" %]
    You tried to set the <code>extra_data</code> field to
    '[% extra_data FILTER html %]' but comments of type [% type FILTER html %]
    require a numeric <code>extra_data</code> argument.

  [% ELSIF error == "comment_type_invalid" %]
    '[% type FILTER html %]' is not a valid comment type.

  [% ELSIF error == "db_rename_conflict" %]
    Name conflict: Cannot rename [% old FILTER html %] to
    [% new FILTER html %] because [% new FILTER html %] already exists.

  [% ELSIF error == "cookies_need_value" %]
    Every cookie must have a value.

  [% ELSIF error == "env_no_email" %]
    [% terms.Bugzilla %] did not receive an email address from the 
    environment.
    [% IF Param("auth_env_email") %]
      This means that the '[% Param("auth_env_email") FILTER html %]'
      environment variable was empty or did not exist.
    [% ELSE %]
      You need to set the "auth_env_email" parameter to the name of
      the environment variable that will contain the user's email
      address.
    [% END %]

  [% ELSIF error == "extension_must_be_subclass" %]
    <code>[% package FILTER html %]</code> from 
    <code>[% filename FILTER html %]</code> is not a subclass of
    <code>[% class FILTER html %]</code>.

  [% ELSIF error == "extension_must_return_name" %]
    <code>[% extension FILTER html %]</code> returned
    <code>[% returned FILTER html %]</code>, which is not a valid name
    for an extension. Extensions must return their name, not <code>1</code>
    or a number. See the documentation of
    <a href="[% docs_urlbase FILTER html %]api/Bugzilla/Extension.html">Bugzilla::Extension</a>
    for details.

  [% ELSIF error == "extension_no_name" %]
    We did not find a <code>NAME</code> method in 
    <code>[% package FILTER html %]</code> (loaded from
    <code>[% filename FILTER html %]</code>). This means that
    the extension has one or more of the following problems:

    <ul>
      <li><code>[% filename FILTER html %]</code> did not define a
        <code>[% package FILTER html %]</code> package.</li>
      <li><code>[% package FILTER html %]</code> did not define a
        <code>NAME</code> method (or the <code>NAME</code> method
        returned an empty string).</li>
    </ul>

  [% ELSIF error == "extern_id_conflict" %]
    The external ID '[% extern_id FILTER html %]' already exists
    in the database for '[% username FILTER html %]', but your
    account source says that '[% extern_user FILTER html %]' has that ID.

  [% ELSIF error == "field_choice_must_use_type" %]
    When you call a class method on <code>Bugzilla::Field::Choice</code>,
    you must call <code>Bugzilla::Field::Choice-&gt;type('some_field')</code>
    to generate the right class (you can't call class methods directly
    on Bugzilla::Field::Choice).

  [% ELSIF error == "field_not_custom" %]
    '[% field.description FILTER html %]' ([% field.name FILTER html %])
    is not a custom field.

  [% ELSIF error == "field_type_mismatch" %]
    Cannot seem to handle <code>[% field FILTER html %]</code>
    and <code>[% type FILTER html %]</code> together.

  [% ELSIF error == "field_type_not_specified" %]
    [% title = "Field Type Not Specified" %]
    You must specify a type when creating a custom field.

  [% ELSIF error == "illegal_content_type_method" %]
    Your form submission got corrupted somehow.  The <em>content
    method</em> field, which specifies how the content type gets determined,
    should have been either <em>autodetect</em>, <em>list</em>,
    or <em>manual</em>, but was instead
    <em>[% contenttypemethod FILTER html %]</em>.

  [% ELSIF error == "illegal_field" %]
    A legal [% field FILTER html %] was not set.

  [% ELSIF error == "inactive_group" %]
    Attempted to add [% terms.bug %] to the '[% name FILTER html %]'
    group, which is not used for [% terms.bugs %].

  [% ELSIF error == "invalid_attach_id_to_obsolete" %]
     The attachment number of one of the attachments you wanted to obsolete,
     [% attach_id FILTER html %], is invalid.
          
  [% ELSIF error == "invalid_customfield_type" %]
    [% title = "Invalid Field Type" %]
    The type <em>[% type FILTER html %]</em> is not a valid field type.

  [% ELSIF error == "invalid_dimensions" %]
    [% title = "Invalid Dimensions" %]
    The width or height specified is not a positive integer.

  [% ELSIF error == "invalid_feature" %]
    [% title = "Invalid Feature Name" %]
    [% feature FILTER html %] is not a valid feature name. See
    <code>OPTIONAL_MODULES</code> in 
    <code>Bugzilla::Install::Requirements</code> for valid names.

  [% ELSIF error == "invalid_flag_association" %]
    [% title = "Invalid Flag Association" %]
    Some flags do not belong to
    [% IF attach_id %]
      attachment [% attach_id FILTER html %].
    [% ELSE %]
      [%+ terms.bug %] [%+ bug_id FILTER html %].
    [% END %]

  [% ELSIF error == "invalid_series_id" %]
    [% title = "Invalid Series" %]
    The series_id [% series_id FILTER html %] is not valid. It may be that
    this series has been deleted.

  [% ELSIF error == "invalid_webservergroup" %]
    There is no such group: [% group FILTER html %]. Check your $webservergroup
    setting in [% constants.bz_locations.localconfig FILTER html %].

  [% ELSIF error == "mismatched_bug_ids_on_obsolete" %]
    Attachment [% attach_id FILTER html %] ([% description FILTER html %]) 
    is attached to [% terms.bug %] [%+ attach_bug_id FILTER html %], 
    but you tried to flag it as obsolete while creating a new attachment to 
    [% terms.bug %] [%+ my_bug_id FILTER html %].

  [% ELSIF error == "feature_disabled" %]
    The [% install_string("feature_$feature") FILTER html %] feature is not
    available in this [% terms.Bugzilla %]. 
    [% IF user.in_group('admin') %]
      If you would like to enable this feature, please run 
      <kbd>checksetup.pl</kbd> to see how to install the necessary
      requirements for this feature.
    [% END %]

  [% ELSIF error == "flag_unexpected_object" %]
    [% title = "Object Not Recognized" %]
    Flags cannot be set for objects of type [% caller FILTER html %].
    They can only be set for [% terms.bugs %] and attachments.

  [% ELSIF error == "flag_requestee_disabled" %]
    [% title = "Flag not Requestable from Specific Person" %]
    You can't ask a specific person for
    <em>[% type.name FILTER html %]</em>.
  
  [% ELSIF error == "flag_status_invalid" %]
    The flag status <em>[% status FILTER html %]</em>
    [% IF id %]
      for flag ID #[% id FILTER html %]
    [% END %]
    is invalid.

  [% ELSIF error == "flag_type_inactive" %]
    [% title = "Inactive Flag Type" %]
    The flag type [% type FILTER html %] is inactive and cannot be used
    to create new flags.

  [% ELSIF error == "flag_type_nonexistent" %]
    There is no flag type with the ID <em>[% id FILTER html %]</em>.

  [% ELSIF error == "flag_type_target_type_invalid" %]
    The target type was neither <em>[% terms.bug %]</em> nor <em>attachment</em>
    but rather <em>[% target_type FILTER html %]</em>.
  
  [% ELSIF error == "invalid_field_name" %]
    Can't use [% field FILTER html %] as a field name.

  [% ELSIF error == "invalid_keyword_id" %]
    The keyword ID <em>[% id FILTER html %]</em> couldn't be
    found.

  [% ELSIF error == "invalid_user" %]
    [% title = "Invalid User" %]
    There is no user account
    [% IF user_id %]
      with ID <em>[% user_id FILTER html %]</em>.
    [% ELSIF user_login %]
      with login name <em>[% user_login FILTER html %]</em>.
    [% ELSE %]
      given.
    [% END %]

  [% ELSIF error == "jobqueue_insert_failed" %]
   [% title = "Job Queue Failure" %]
    Inserting a <code>[% job FILTER html %]</code> job into the Job 
    Queue failed with the following error: [% errmsg FILTER html %]

  [% ELSIF error == "jobqueue_no_job_mapping" %]
    <code>Bugzilla::JobQueue</code> has not been configured to handle
    the job "[% job FILTER html %]".  You need to add this job type
    to the <code>JOB_MAP</code> constant in <code>Bugzilla::JobQueue</code>.

  [% ELSIF error == "ldap_bind_failed" %]
    Failed to bind to the LDAP server. The error message was: 
    <code>[% errstr FILTER html %]</code>

  [% ELSIF error == "ldap_cannot_retreive_attr" %]
    The specified LDAP attribute [% attr FILTER html %] was not found.

  [% ELSIF error == "ldap_connect_failed" %]
    Could not connect to the LDAP server(s) <code>[% server FILTER html %]</code>.

  [% ELSIF error == "ldap_start_tls_failed" %]
    Could not start TLS with LDAP server: <code>[% error FILTER html %]</code>.

  [% ELSIF error == "ldap_search_error" %]
    An error occurred while trying to search LDAP for 
    &quot;[% username FILTER html %]&quot;: 
    [% IF errstr %]
      <code>[% errstr FILTER html %]</code>
    [% ELSE %]
      Unable to find user in LDAP
    [% END %]

  [% ELSIF error == "ldap_server_not_defined" %]
    The LDAP server for authentication has not been defined.

  [% ELSIF error == "mail_send_error" %]
    There was an error sending mail from '[% mail.header('From') FILTER html %]'
    to '[% mail.header('To') FILTER html %]':
    [% msg FILTER html %]

  [% ELSIF error == "missing_bug_id" %]
    No [% terms.bug %] ID was given.
    
  [% ELSIF error == "missing_series_id" %]
    Having inserted a series into the database, no series_id was returned for
    it. Series: [% series.category FILTER html %] / 
    [%+ series.subcategory FILTER html %] / 
    [%+ series.name FILTER html %].
    
  [% ELSIF error == "need_quipid" %]
    A valid quipid is needed.

  [% ELSIF error == "no_manual_moved" %]
    You cannot set the resolution of [% terms.abug %] to [% display_value("resolution", "MOVED") FILTER html %] without
    moving the [% terms.bug %].

  [% ELSIF error == "no_open_bug_status" %]
    [% title = "$terms.Bug Cannot Be Confirmed" %]
    There is no valid transition from
    [%+ display_value("bug_status", "UNCONFIRMED") FILTER html %] to an open state.

  [% ELSIF error == "param_invalid" %]
    [% title = "Invalid Parameter" %]
    <code>[% param FILTER html %]</code> is not a valid parameter
    for the [% function FILTER html %] function.

  [% ELSIF error == "param_must_be_numeric" %]
    [% title = "Invalid Parameter" %]
    Invalid parameter <code>[% param FILTER html %]</code> passed to 
    <code>[% function FILTER html %]</code>: It must be numeric.

  [% ELSIF error == "param_required" %]
    [% title = "Missing Parameter" %]
    The function <code>[% function FILTER html %]</code> requires
    a <code>[% param FILTER html %]</code> argument, and that
    argument was not set.

  [% ELSIF error == "params_required" %]
    [% title = "Missing Parameter" %]
    The function <code>[% function FILTER html %]</code> requires
    that you set one of the following parameters:
    <code>[% params.join(', ') FILTER html %]</code>

  [% ELSIF error == "product_empty_group_controls" %]
    [% title = "Missing Group Controls" %]
    New settings must be defined to edit group controls for
    the [% group.name FILTER html %] group.

  [% ELSIF error == "product_illegal_group_control" %]
    [% title = "Illegal Group Control" %]
    '[% value FILTER html %]' is not a legal value for
    the '[% field FILTER html %]' field.

  [% ELSIF error == "protection_violation" %]
    The function <code>[% function FILTER html %]</code> was called

    [% IF argument %]
        with the argument <code>[% argument FILTER html %]</code>
    [% END %]

    from
   
    [% IF caller %]
        <code>[%+ caller FILTER html %]</code>, which is
    [% END %]

    outside the package. This function may only be called from
    a subclass of <code>[% superclass FILTER html %]</code>.

  [% ELSIF error == "radius_preparation_error" %]
    An error occurred while preparing for a RADIUS authentication request:
    <code>[% errstr FILTER html %]</code>.

  [% ELSIF error == "unknown_comparison_type" %]
    Specified comparison type is not supported.

  [% ELSIF error == "request_queue_group_invalid" %]
    The group field <em>[% group FILTER html %]</em> is invalid.

  [% ELSIF error == "report_axis_invalid" %]
    <em>[% val FILTER html %]</em> is not a valid value for 
    [%+ IF    fld == "x" %]the horizontal axis
    [%+ ELSIF fld == "y" %]the vertical axis
    [%+ ELSIF fld == "z" %]the multiple tables/images
    [%+ ELSE %]a report axis[% END %] field.

  [% ELSIF error == "setting_info_invalid" %]
    To create a new setting, you must supply a setting name, a list of 
    value/sortindex pairs, and the devault value.

  [% ELSIF error == "setting_name_invalid" %]
    The setting name <em>[% name FILTER html %]</em> is not a valid
    option. Setting names must begin with a letter, and contain only
    letters, digits, or the symbols '_', '-', '.', or ':'.

  [% ELSIF error == "setting_subclass_invalid" %]
    There is no such Setting subclass as
    <code>[% subclass FILTER html %]</code>.

  [% ELSIF error == "setting_value_invalid" %]
    The value "<code>[% value FILTER html %]</code>" is not in the list of
    legal values for the <em>[% name FILTER html %]</em> setting.

  [% ELSIF error == "token_generation_error" %]
    Something is seriously wrong with the token generation system.

  [% ELSIF error == "template_error" %]
    [% template_error_msg FILTER html %]

  [% ELSIF error == "template_invalid" %]
    Template with invalid file name found in hook call: [% name FILTER html %].

  [% ELSIF error == "unable_to_retrieve_password" %]
     I was unable to retrieve your old password from the database.

  [% ELSIF error == "undefined_field" %]
    Form field [% field FILTER html %] was not defined.
    
  [% ELSIF error == "unknown_action" %]
    [% IF action %]
       Unknown action [% action FILTER html %]!
    [% ELSE %]
       I could not figure out what you wanted to do.
    [% END %]

  [% ELSIF error == "usage_mode_invalid" %]
    '[% invalid_usage_mode FILTER html %]' is not a valid usage mode.

  [% ELSIF error == "must_be_patch" %]
    [% title = "Attachment Must Be Patch" %]
    Attachment #[% attach_id FILTER html %] must be a patch.

  [% ELSIF error == "not_in_transaction" %]
    Attempted to end transaction without starting one first.

  [% ELSIF error == "comma_operator_deprecated" %]
    [% title = "SQL query generator internal error" %]
    There is an internal error in the SQL query generation code,
    creating queries with implicit JOIN.

  [% ELSIF error == "invalid_post_bug_submit_action" %]
    Invalid setting for post_bug_submit_action

  [% ELSE %]
    [%# Try to find hooked error messages %]
    [% error_message = Hook.process("errors") %]
    [% IF NOT error_message %]
      [% title = "Internal error" %]
      An internal error has occurred, but [% terms.Bugzilla %] doesn't know
      what <code>[% error FILTER html %]</code> means.

      If you are a [% terms.Bugzilla %] end-user seeing this message, please save
      this page and send it to [% Param('maintainer') %].
    [% ELSE %]
      [% error_message FILTER none %]
    [% END %]
  [% END %]
[% END %]

[%# We only want HTML error messages for ERROR_MODE_WEBPAGE %]
[% USE Bugzilla %]
[% IF Bugzilla.error_mode != constants.ERROR_MODE_WEBPAGE %]
  [% IF Bugzilla.usage_mode == constants.USAGE_MODE_BROWSER %]
    [% error_message FILTER none %]
  [% ELSE %]
    [% error_message FILTER txt %]
  [% END %]
  [% RETURN %]
[% END %]

[% UNLESS header_done %]
  [% PROCESS global/header.html.tmpl %]
[% END %]

[% PROCESS global/docslinks.html.tmpl
   docslinks      = docslinks
   admindocslinks = admindocslinks
%]

<tt>
  <p>
    [% terms.Bugzilla %] has suffered an internal error. Please save this page and send
    it to [% Param("maintainer") %] with details of what you were doing at
    the time this message appeared.
  </p>
  <script type="text/javascript"> <!--
    document.write("<p>URL: " + 
                    document.location.href.replace(/&/g,"&amp;")
                                          .replace(/</g,"&lt;")
                                          .replace(/>/g,"&gt;") + "</p>");
  // -->
  </script>
</tt>

<table cellpadding="20">
  <tr>
    <td bgcolor="#ff0000">
      <font size="+2">
        [% error_message FILTER none %]
      </font>
    </td>
  </tr>
</table>

[% IF variables %]
  <pre>
Variables:
  [% FOREACH key = variables.keys %]
    [%+ key FILTER html %]: [%+ variables.$key FILTER html %]
  [% END %]
  </pre>
[% END %]

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