2010-07-15 7 views
0

J'utilise un JavaScript pour générer dynamiquement un texte par défaut spécifique dans la boîte de commentaires supplémentaire de Bugzilla, en fonction de l'état du bogue sélectionné dans le menu déroulant. J'ai essayé d'utiliser 'bug.bug_status' mais cela ne change que sur la soumission de la page. La variable que j'ai trouvée qui remplit le menu déroulant est 'bug_status.name' mais quand j'essaie d'utiliser cette variable, elle ne semble pas être reconnue. Quelqu'un at-il des suggestions sur ce qui pourrait causer le problème? Est-ce que quelqu'un a déjà essayé cela?Problèmes d'accès à bug_status.name dans Bugzilla

Le code suivant a été placé au début du fichier knob.html.tmpl.

[% PROCESS global/variables.none.tmpl %] 
[% # Output a specific default content in the comments box depending on bug status. %] 
<script type="text/javascript"> 
<!-- 
var messages = ['Message 0', 'Message 1', 'Message 2', 'Message 3', 'Message 4', 'Message 5', 'Message 6']; 
function changetext(selectObj){ 
    var textAreaElement = document.getElementsByName("comment")[0]; 
[% IF (bug_status.name == "ASSIGNED") %] 
    textAreaElement.value = messages[4]; 
[% ELSIF(bug_status.name == "RESOLVED") %] 
    textAreaElement.value = messages[5]; 
[% ELSE %] 
    var variable1 = 0; 
    variable1 = bug_status.name 
    textAreaElement.value = variable1; 
[% END %] 

Répondre

0

Basé sur your other question, il semble que vous voulez que cela change du côté client que l'utilisateur sélectionne un nouveau statut. Toutefois, le code que vous avez écrit dans cette question va changer du côté du serveur avant que le client le voit. Votre arbre if/else doit être écrit en javascript au lieu de Template Toolkit.

Donc, quelque chose comme ceci:

function changetext(selectObj){ 
    var textAreaElement = document.getElementsByName("comment")[0]; 
    var currentStatus = document.getElementById("bug_status").value; 

    if (currentStatus == "ASSIGNED") { 
    textAreaElement.value = messages[4]; 
    } else if (currentStatus == "RESOLVED") { 
    textAreaElement.value = messages[5]; 
    } else { 
    textAreaElement.value = currentStatus; 
    } 
} 
+0

c'est exactement, merci pour votre aide. – user379222