]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1355127 - rewrite field-descs.none.tmpl in perl
authorDylan William Hardison <dylan@hardison.net>
Mon, 10 Apr 2017 16:19:34 +0000 (12:19 -0400)
committerDylan William Hardison <dylan@hardison.net>
Mon, 10 Apr 2017 16:19:34 +0000 (12:19 -0400)
Bugzilla/Template.pm
t/008filter.t
template/en/default/global/field-descs.none.tmpl

index 1f0892a3298ec32050d224afa3f092aa5f80ba43..9cac9ad877d22ce482e927f7148c865186213dbf 100644 (file)
@@ -681,6 +681,9 @@ sub create {
         INCLUDE_PATH => $opts{'include_path'} 
                         || _include_path($opts{'language'}),
 
+        # allow PERL/RAWPERL because doing so can boost performance
+        EVAL_PERL => 1,
+
         # Remove white-space before template directives (PRE_CHOMP) and at the
         # beginning and end of templates and template blocks (TRIM) for better
         # looking, more compact content.  Use the plus sign at the beginning
index b8d05af8abef43e56e83fd98453b5edfbe7a929a..cae1e68803f4701ab15a11e8bef9c81655e779c9 100644 (file)
@@ -164,7 +164,7 @@ sub directive_ok {
                                  BLOCK|USE|ELSE|NEXT|LAST|DEFAULT|FLUSH|
                                  ELSIF|SET|SWITCH|CASE|WHILE|RETURN|STOP|
                                  TRY|CATCH|FINAL|THROW|CLEAR|MACRO|FILTER|
-                                 CALL|WRAPPER)/x;
+                                 RAWPERL|PERL|CALL|WRAPPER)/x;
 
     # ? :
     if ($directive =~ /.+\?(.+):(.+)/) {
index ff29ff184efd0e021d58197c36a02158cbc44d7c..3e0a528dcebe3580139a933191d26301007836ae 100644 (file)
 
 [%# Remember to PROCESS rather than INCLUDE this template. %]
 
-[% PROCESS global/variables.none.tmpl %]
+[% RAWPERL %]
 
-[% SET search_descs = {
-  "noop"           => "---",
-  "equals"         => "is equal to",
-  "notequals"      => "is not equal to",
-  "anyexact"       => "is equal to any of the strings",
-  "substring"      => "contains the string",
-  "casesubstring"  => "contains the string (exact case)",
-  "notsubstring"   => "does not contain the string",
-  "anywordssubstr" => "contains any of the strings",
-  "allwordssubstr" => "contains all of the strings",
-  "nowordssubstr"  => "contains none of the strings",
-  "regexp"         => "matches regular expression",
-  "notregexp"      => "does not match regular expression",
-  "lessthan"       => "is less than",
-  "lessthaneq"     => "is less than or equal to",
-  "greaterthan"    => "is greater than",
-  "greaterthaneq"  => "is greater than or equal to",
-  "anywords"       => "contains any of the words",
-  "allwords"       => "contains all of the words",
-  "nowords"        => "contains none of the words",
-  "changedbefore"  => "changed before",
-  "changedafter"   => "changed after",
-  "changedfrom"    => "changed from",
-  "changedto"      => "changed to",
-  "changedby"      => "changed by",
-  "matches"        => "matches",
-  "notmatches"     => "does not match",
-  "isempty"        => "is empty",
-  "isnotempty"     => "is not empty",
-} %]
+$context->process("global/variables.none.tmpl");
 
-[% field_types = { ${constants.FIELD_TYPE_UNKNOWN}       => "Unknown Type",
-                   ${constants.FIELD_TYPE_FREETEXT}      => "Free Text",
-                   ${constants.FIELD_TYPE_INTEGER}       => "Integer",
-                   ${constants.FIELD_TYPE_SINGLE_SELECT} => "Drop Down",
-                   ${constants.FIELD_TYPE_MULTI_SELECT}  => "Multiple-Selection Box",
-                   ${constants.FIELD_TYPE_TEXTAREA}      => "Large Text Box",
-                   ${constants.FIELD_TYPE_DATETIME}      => "Date/Time",
-                   ${constants.FIELD_TYPE_DATE}          => "Date",
-                   ${constants.FIELD_TYPE_BUG_ID}        => "$terms.Bug ID",
-                   ${constants.FIELD_TYPE_EXTENSION}     => "Extension",
-                } %]
+my $terms = $stash->get("terms");
+$stash->set(
+    search_descs => {
+        "noop"           => "---",
+        "equals"         => "is equal to",
+        "notequals"      => "is not equal to",
+        "anyexact"       => "is equal to any of the strings",
+        "substring"      => "contains the string",
+        "casesubstring"  => "contains the string (exact case)",
+        "notsubstring"   => "does not contain the string",
+        "anywordssubstr" => "contains any of the strings",
+        "allwordssubstr" => "contains all of the strings",
+        "nowordssubstr"  => "contains none of the strings",
+        "regexp"         => "matches regular expression",
+        "notregexp"      => "does not match regular expression",
+        "lessthan"       => "is less than",
+        "lessthaneq"     => "is less than or equal to",
+        "greaterthan"    => "is greater than",
+        "greaterthaneq"  => "is greater than or equal to",
+        "anywords"       => "contains any of the words",
+        "allwords"       => "contains all of the words",
+        "nowords"        => "contains none of the words",
+        "changedbefore"  => "changed before",
+        "changedafter"   => "changed after",
+        "changedfrom"    => "changed from",
+        "changedto"      => "changed to",
+        "changedby"      => "changed by",
+        "matches"        => "matches",
+        "notmatches"     => "does not match",
+        "isempty"        => "is empty",
+        "isnotempty"     => "is not empty",
+    }
+);
 
-[% IF in_template_var %]
-  [% PROCESS "global/value-descs.none.tmpl" %]
-  [% SET vars.value_descs = value_descs %]
-  [% SET vars.terms = terms %]
+$stash->set(
+    field_types => {
+        Bugzilla::Constants::FIELD_TYPE_UNKNOWN()       => "Unknown Type",
+        Bugzilla::Constants::FIELD_TYPE_FREETEXT()      => "Free Text",
+        Bugzilla::Constants::FIELD_TYPE_INTEGER()       => "Integer",
+        Bugzilla::Constants::FIELD_TYPE_SINGLE_SELECT() => "Drop Down",
+        Bugzilla::Constants::FIELD_TYPE_MULTI_SELECT()  => "Multiple-Selection Box",
+        Bugzilla::Constants::FIELD_TYPE_TEXTAREA()      => "Large Text Box",
+        Bugzilla::Constants::FIELD_TYPE_DATETIME()      => "Date/Time",
+        Bugzilla::Constants::FIELD_TYPE_DATE()          => "Date",
+        Bugzilla::Constants::FIELD_TYPE_BUG_ID()        => "$terms->{Bug} ID",
+        Bugzilla::Constants::FIELD_TYPE_EXTENSION()     => "Extension",
+    }
+);
 
-  [%# field_descs is loaded as a global template variable and cached
+if ( $stash->get("in_template_var") ) {
+    my $vars = $stash->get("vars");
+    $context->process("global/value-descs.none.tmpl");
+    $vars->{value_descs} = $stash->get("value_descs");
+    $vars->{terms}       = $terms;
+
+    # field_descs is loaded as a global template variable and cached
     # across all templates--see VARIABLES in Bugzilla/Template.pm.
-    #%]
-  [% vars.field_descs = {
-    "[Bug creation]"          => "[$terms.Bug creation]",
-     "actual_time"             => "Actual Hours",
-     "alias"                   => "Alias",
-     "assigned_to"             => "Assignee",
-     "assigned_to_realname"    => "Assignee Real Name",
-     "assignee_last_login"     => "Assignee Last Login Date",
-     "attach_data.thedata"     => "Attachment data",
-     "attachments.description" => "Attachment description",
-     "attachments.filename"    => "Attachment filename",
-     "attachments.mimetype"    => "Attachment mime type",
-     "attachments.ispatch"     => "Attachment is patch",
-     "attachments.isobsolete"  => "Attachment is obsolete",
-     "attachments.isprivate"   => "Attachment is private",
-     "attachments.submitter"   => "Attachment creator",
-     "blocked"                 => "Blocks",
-     "bug_file_loc"            => "URL",
-     "bug_group"               => "Group",
-     "bug_id"                  => "$terms.Bug ID",
-     "bug_severity"            => "Severity",
-     "bug_status"              => "Status",
-     "changeddate"             => "Changed",
-     "cc"                      => "CC",
-     "classification"          => "Classification",
-     "cclist_accessible"       => "CC list accessible",
-     "commenter"               => "Commenter",
-     "component_id"            => "Component ID",
-     "component"               => "Component",
-     "content"                 => "Content",
-     "creation_ts"             => "Creation date",
-     "days_elapsed"            => "Days since $terms.bug changed",
-     "deadline"                => "Deadline",
-     "delta_ts"                => "Changed",
-     "dependson"               => "Depends on",
-     "dup_id"                  => "Duplicate",
-     "estimated_time"          => "Orig. Est.",
-     "everconfirmed"           => "Ever confirmed",
-     "flagtypes.name"          => "Flags",
-     "keywords"                => "Keywords",
-     "last_visit_ts"           => "Last Visit",
-     "longdesc"                => "Comment",
-     "longdescs.count"         => "Number of Comments",
-     "longdescs.isprivate"     => "Comment is private",
-     "newcc"                   => "CC",
-     "op_sys"                  => "OS",
-     "opendate"                => "Opened",
-     "owner_idle_time"         => "Time Since Assignee Touched",
-     "percentage_complete"     => "%Complete",
-     "priority"                => "Priority",
-     "product_id"              => "Product ID",
-     "product"                 => "Product",
-     "qa_contact"              => "QA Contact",
-     "qa_contact_realname"     => "QA Contact Real Name",
-     "remaining_time"          => "Hours Left",
-     "rep_platform"            => "Hardware",
-     "reporter"                => "Reporter",
-     "reporter_accessible"     => "Reporter accessible",
-     "reporter_realname"       => "Reporter Real Name",
-     "requestees.login_name"   => "Flag Requestee",
-     "resolution"              => "Resolution",
-     "see_also"                => "See Also",
-     "setters.login_name"      => "Flag Setter",
-     "setting"                 => "Setting",
-     "settings"                => "Settings",
-     "short_desc"              => "Summary",
-     "short_short_desc"        => "Summary",
-     "status_whiteboard"       => "Whiteboard",
-     "tag.name"                => "Tags",
-     "target_milestone"        => "Target Milestone",
-     "triage_owner"            => "Triage Owner",
-     "version"                 => "Version",
-     "work_time"               => "Hours Worked",
-  } %]
+    #
+    $vars->{field_descs} = {
+        "[Bug creation]"          => "[$terms->{Bug} creation]",
+        "actual_time"             => "Actual Hours",
+        "alias"                   => "Alias",
+        "assigned_to"             => "Assignee",
+        "assigned_to_realname"    => "Assignee Real Name",
+        "assignee_last_login"     => "Assignee Last Login Date",
+        "attach_data.thedata"     => "Attachment data",
+        "attachments.description" => "Attachment description",
+        "attachments.filename"    => "Attachment filename",
+        "attachments.mimetype"    => "Attachment mime type",
+        "attachments.ispatch"     => "Attachment is patch",
+        "attachments.isobsolete"  => "Attachment is obsolete",
+        "attachments.isprivate"   => "Attachment is private",
+        "attachments.submitter"   => "Attachment creator",
+        "blocked"                 => "Blocks",
+        "bug_file_loc"            => "URL",
+        "bug_group"               => "Group",
+        "bug_id"                  => "$terms->{Bug} ID",
+        "bug_severity"            => "Severity",
+        "bug_status"              => "Status",
+        "changeddate"             => "Changed",
+        "cc"                      => "CC",
+        "classification"          => "Classification",
+        "cclist_accessible"       => "CC list accessible",
+        "commenter"               => "Commenter",
+        "component_id"            => "Component ID",
+        "component"               => "Component",
+        "content"                 => "Content",
+        "creation_ts"             => "Creation date",
+        "days_elapsed"            => "Days since $terms->{bug} changed",
+        "deadline"                => "Deadline",
+        "delta_ts"                => "Changed",
+        "dependson"               => "Depends on",
+        "dup_id"                  => "Duplicate",
+        "estimated_time"          => "Orig. Est.",
+        "everconfirmed"           => "Ever confirmed",
+        "flagtypes.name"          => "Flags",
+        "keywords"                => "Keywords",
+        "last_visit_ts"           => "Last Visit",
+        "longdesc"                => "Comment",
+        "longdescs.count"         => "Number of Comments",
+        "longdescs.isprivate"     => "Comment is private",
+        "newcc"                   => "CC",
+        "op_sys"                  => "OS",
+        "opendate"                => "Opened",
+        "owner_idle_time"         => "Time Since Assignee Touched",
+        "percentage_complete"     => "%Complete",
+        "priority"                => "Priority",
+        "product_id"              => "Product ID",
+        "product"                 => "Product",
+        "qa_contact"              => "QA Contact",
+        "qa_contact_realname"     => "QA Contact Real Name",
+        "remaining_time"          => "Hours Left",
+        "rep_platform"            => "Hardware",
+        "reporter"                => "Reporter",
+        "reporter_accessible"     => "Reporter accessible",
+        "reporter_realname"       => "Reporter Real Name",
+        "requestees.login_name"   => "Flag Requestee",
+        "resolution"              => "Resolution",
+        "see_also"                => "See Also",
+        "setters.login_name"      => "Flag Setter",
+        "setting"                 => "Setting",
+        "settings"                => "Settings",
+        "short_desc"              => "Summary",
+        "short_short_desc"        => "Summary",
+        "status_whiteboard"       => "Whiteboard",
+        "tag.name"                => "Tags",
+        "target_milestone"        => "Target Milestone",
+        "triage_owner"            => "Triage Owner",
+        "version"                 => "Version",
+        "work_time"               => "Hours Worked",
+    };
 
-  [%# Also include any custom fields or fields which don't have a
-      Description here, by copying their Description from the
-      database. If you want to override this for your language
-      or your installation, just use a hook. %]
-  [% UNLESS Param('shutdownhtml') %]
-    [% FOREACH bz_field = bug_fields.values %]
-      [% SET vars.field_descs.${bz_field.name} = bz_field.description
-         IF !vars.field_descs.${bz_field.name}.defined %]
-    [% END %]
-  [% END %]
+    # Also include any custom fields or fields which don't have a
+    #   Description here, by copying their Description from the
+    #   database. If you want to override this for your language
+    #   or your installation, just use a hook. %]
+    my $bug_fields = $stash->get("bug_fields");
+    unless ( Bugzilla->params->{shutdownhtml} ) {
+        foreach my $bz_field ( values %$bug_fields ) {
+            $vars->{field_descs}{$bz_field->name} //= $bz_field->description;
+        }
 
-  [% PROCESS "bug/field-help.none.tmpl" %]
+        $context->process("bug/field-help.none.tmpl");
+    }
+}
 [% END %]
 
 [% Hook.process("end") %]