Mantis

Ajouter la colonne description pour l'affichage des bugs

Posted by Amel 
Ajouter la colonne description pour l'affichage des bugs
May 04, 2007 02:29PM
Je récupère un message que j'ai envoyé en privé, je pense ne pas être la seule à avoir ce problème, autant que ça puisse aider !
Quote

Quote

Rebonjour,

J'espère que je ne vous embête pas trop, mais j'ai encore un souci : je ne sais pas comment ajouter la colonne "description" dans ma page d'affichage des bugs. J'ai vu qu'il y avait plusieurs sujets là dessus, mais je ne trouve pas de réponse !

Amélie



Re,

Dans le fichier de configuration vous avez une variable qui vaut :

$g_view_issues_page_columns = array ( 'selection', 'edit', 'priority', 'id', 'sponsorship_total', 'bugnotes_count', 'attachment', 'category', 'severity', 'status', 'last_updated', 'summary' );

Il faut y ajouter à la liste la valeur 'description' (à faire dans le fichier config_inc.php).
Ceci dit je vous le déconseille fortement, la colonne description risque d'être fort chargée.

Voici la suite : j'ai modifié mon fichier config_inc.php, mais ça n'a rien changé à l'affichage (toujours la valeur @description@ dans la colonne). Je suis allée faire un tour dnas le gichier config_defaults_inc.php, et je n'y ai pas trouvé la fameuse variable... j'ai surement loupé quelque chose moi !!
Re: Ajouter la colonne description pour l'affichage des bugs
May 04, 2007 02:42PM
Ah si j'avais lu le commentaire juste au dessus !! description ne fait pas partie des champs possibles...

Alors ma solution consiste à mettre ceci dans le fichier custom_functions_inc.php (créer le fichier si il n'existe pas) :

        function custom_function_override_print_column_value( $p_column, $p_issue_row, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) {
                if ( COLUMNS_TARGET_CSV_PAGE == $p_columns_target ) {
                        $t_column_start = '';
                        $t_column_end = '';
                        $t_column_empty = '';
                } else {
                        $t_column_start = &#039;<td>&#039;;
                        $t_column_end = &#039;</td>&#039;;
                        $t_column_empty = &#039;&nbsp;&#039;;
                }

                if ( strpos( $p_column, &#039;custom_&#039; ) === 0 ) {
                        echo $t_column_start;
                        $t_custom_field = substr( $p_column, 7 );

                        $t_field_id = custom_field_get_id_from_name( $t_custom_field );
                        if ( $t_field_id === false ) {
                                echo &#039;@&#039;, $t_custom_field, &#039;@&#039;;
                        } else {
                                $t_issue_id = $p_issue_row[&#039;id&#039;];
                                $t_project_id = $p_issue_row[&#039;project_id&#039;];

                                if ( custom_field_is_linked( $t_field_id, $t_project_id ) ) {
                                        $t_def = custom_field_get_definition( $t_field_id );
                                        print_custom_field_value( $t_def, $t_field_id, $t_issue_id );
                                } else {
                                        // field is not linked to project
                                        echo $t_column_empty;
                                }
                        }
                        echo $t_column_end;
                } else {
                        if ( $p_columns_target != COLUMNS_TARGET_CSV_PAGE ) {
                                $t_function = &#039;print_column_&#039; . $p_column;
                        } else {
                                $t_function = &#039;csv_format_&#039; . $p_column;
                        }

                        if ( function_exists( $t_function ) ) {
                                if ( $p_columns_target != COLUMNS_TARGET_CSV_PAGE ) {
                                        $t_function( $p_issue_row, $p_columns_target );
                                } else {
                                        if ( $p_column == &#039;summary&#039; ) {
                                                $t_summary = string_attribute( $p_issue_row[&#039;summary&#039;] );
                                                $t_description = string_attribute( bug_get_text_field( $p_issue_row[&#039;id&#039;], &#039;description&#039; ) );
                                                echo &#039;<td class="left"><a title="&#039;, $t_description, &#039;">&#039;, $t_summary, &#039;</a></td>&#039;;
                                        } else {
                                                $t_function( $p_issue_row[$p_column] );
                                        }
                                }
                        } else {
                                if ( isset( $p_issue_row[$p_column] ) ) {
                                        echo $t_column_start . $p_issue_row[$p_column] . $t_column_end;
                                } else {
                                        echo $t_column_start . &#039;@&#039; . $p_column . &#039;@&#039; . $t_column_end;
                                }
                        }
                }
        }

Placez votre souris sur le sujet du bug et attendez quelques secondes, la description du bug apparaît.

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 04, 2007 03:26PM
Je suis vraiment une débutante en php, j&#039;ai du faire une erreur.

Le fichier custom_functions_inc.php n&#039;existait pas, je l&#039;ai donc créé directement dans le répertoire mantis.
Voici le contenu de mon fichier :
<?php

	   function custom_function_override_print_column_value( $p_column, $p_issue_row, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) {
                if ( COLUMNS_TARGET_CSV_PAGE == $p_columns_target ) {
                        $t_column_start = &#039;&#039;;
                        $t_column_end = &#039;&#039;;
                        $t_column_empty = &#039;&#039;;
                } else {
                        $t_column_start = &#039;<td>&#039;;
                        $t_column_end = &#039;</td>&#039;;
                        $t_column_empty = &#039;&nbsp;&#039;;
                }

                if ( strpos( $p_column, &#039;custom_&#039; ) === 0 ) {
                        echo $t_column_start;
                        $t_custom_field = substr( $p_column, 7 );

                        $t_field_id = custom_field_get_id_from_name( $t_custom_field );
                        if ( $t_field_id === false ) {
                                echo &#039;@&#039;, $t_custom_field, &#039;@&#039;;
                        } else {
                                $t_issue_id = $p_issue_row[&#039;id&#039;];
                                $t_project_id = $p_issue_row[&#039;project_id&#039;];

                                if ( custom_field_is_linked( $t_field_id, $t_project_id ) ) {
                                        $t_def = custom_field_get_definition( $t_field_id );
                                        print_custom_field_value( $t_def, $t_field_id, $t_issue_id );
                                } else {
                                        // field is not linked to project
                                        echo $t_column_empty;
                                }
                        }
                        echo $t_column_end;
                } else {
                        if ( $p_columns_target != COLUMNS_TARGET_CSV_PAGE ) {
                                $t_function = &#039;print_column_&#039; . $p_column;
                        } else {
                                $t_function = &#039;csv_format_&#039; . $p_column;
                        }

                        if ( function_exists( $t_function ) ) {
                                if ( $p_columns_target != COLUMNS_TARGET_CSV_PAGE ) {
                                        $t_function( $p_issue_row, $p_columns_target );
                                } else {
                                        if ( $p_column == &#039;summary&#039; ) {
                                                $t_summary = string_attribute( $p_issue_row[&#039;summary&#039;] );
                                                $t_description = string_attribute( bug_get_text_field( $p_issue_row[&#039;id&#039;], &#039;description&#039; ) );
                                                echo &#039;<td class="left"><a title="&#039;, $t_description, &#039;">&#039;, $t_summary, &#039;</a></td>&#039;;
                                        } else {
                                                $t_function( $p_issue_row[$p_column] );
                                        }
                                }
                        } else {
                                if ( isset( $p_issue_row[$p_column] ) ) {
                                        echo $t_column_start . $p_issue_row[$p_column] . $t_column_end;
                                } else {
                                        echo $t_column_start . &#039;@&#039; . $p_column . &#039;@&#039; . $t_column_end;
                                }
                        }
                }
?>

Maintenant, lorsque je charge ma page, j&#039;obtiens l&#039;erreur :
Quote

Parse error: syntax error, unexpected $end in d:\dev\wamp\www\mantis\custom_functions_inc.php on line 70
Re: Ajouter la colonne description pour l'affichage des bugs
May 04, 2007 03:31PM
Il manque un } à la fin winking smiley

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 04, 2007 04:26PM
lol, je ne sais pas compter !!

Ca ne marche pourtant pas. C&#039;est peut être du à custom_function_api.php ??
Voilà ce que j&#039;ai mis pour avoir la colonne description :
$t_custom_fields = custom_field_get_ids(helper_get_current_project());

$t_columns[] = &#039;custom_Date découverte&#039;;
$t_columns[] = &#039;custom_Qui ?&#039;;
$t_columns[] = &#039;description&#039;;
$t_columns[] = &#039;severity&#039;;
$t_columns[] = &#039;status&#039;;
$t_columns[] = &#039;custom_Temps passé (en j)&#039;;
$t_columns[] = &#039;summary&#039;;
$t_columns[] = &#039;custom_Date de livraison&#039;;
$t_columns[] = &#039;custom_Clos par le client&#039;;
Re: Ajouter la colonne description pour l'affichage des bugs
May 04, 2007 05:10PM
Attention la solution que j&#039;ai donné ne fait pas apparaître une colonne de plus mais permet de faire apparaître la description lorsque la souris passe sur le sujet (laisser la souris quelques secondes pour faire apparaître la description).

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 04, 2007 07:22PM
Je me suis trompé, désolé sad smiley

function custom_function_override_print_column_value( $p_column, $p_issue_row, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) {
    if ( COLUMNS_TARGET_CSV_PAGE == $p_columns_target ) {
        $t_column_start = &#039;&#039;;
        $t_column_end = &#039;&#039;;
        $t_column_empty = &#039;&#039;;
    } else {
        $t_column_start = &#039;<td>&#039;;
        $t_column_end = &#039;</td>&#039;;
        $t_column_empty = &#039;&nbsp;&#039;;
    }

    if ( strpos( $p_column, &#039;custom_&#039; ) === 0 ) {
        echo $t_column_start;
        $t_custom_field = substr( $p_column, 7 );

        $t_field_id = custom_field_get_id_from_name( $t_custom_field );
        if ( $t_field_id === false ) {
            echo &#039;@&#039;, $t_custom_field, &#039;@&#039;;
        } else {
            $t_issue_id = $p_issue_row[&#039;id&#039;];
            $t_project_id = $p_issue_row[&#039;project_id&#039;];

            if ( custom_field_is_linked( $t_field_id, $t_project_id ) ) {
                $t_def = custom_field_get_definition( $t_field_id );
                print_custom_field_value( $t_def, $t_field_id, $t_issue_id );
            } else {
                // field is not linked to project
                  echo $t_column_empty;
            }
        }
        echo $t_column_end;
    } else {
        if ( $p_columns_target != COLUMNS_TARGET_CSV_PAGE ) {
            $t_function = &#039;print_column_&#039; . $p_column;
        } else {
            $t_function = &#039;csv_format_&#039; . $p_column;
        }

        if ( function_exists( $t_function ) ) {
            if ( $p_columns_target != COLUMNS_TARGET_CSV_PAGE ) {
                if ( $p_column == &#039;summary&#039; ) {
                    $t_summary = string_attribute( $p_issue_row[&#039;summary&#039;] );
                    $t_description = string_attribute( bug_get_text_field( $p_issue_row[&#039;id&#039;], &#039;description&#039; ) );
                    echo &#039;<td class="left"><a title="&#039;, $t_description, &#039;">&#039;, $t_summary;
                    if ( VS_PRIVATE == $p_issue_row[&#039;view_state&#039;] ) {
			printf( &#039; <img src="%s" alt="(%s)" title="%s" />&#039;
                               , $t_icon_path . &#039;protected.gif&#039;
                               , lang_get( &#039;private&#039; )
                               , lang_get( &#039;private&#039; )
			);      
                    }       
                    echo &#039;</a></td>&#039;;
                } else {
                    $t_function( $p_issue_row, $p_columns_target );
                }
            } else {
                $t_function( $p_issue_row[$p_column] );
            }
        } else {
            if ( isset( $p_issue_row[$p_column] ) ) {
                echo $t_column_start . $p_issue_row[$p_column] . $t_column_end;
            } else {
                echo $t_column_start . &#039;@&#039; . $p_column . &#039;@&#039; . $t_column_end;
            }
        }
    }
}

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 04, 2007 07:23PM
Et il y a une démonstration ici.

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 09:12AM
merci beaucoup, ça marche nickel !!

Pour le détail, quand je passai sur le sujet, j&#039;obtenais la description entourée de &#039;\"&#039;, pour enlever cela, j&#039;ai simplement modifier

echo &#039;<td class=\"left\"><a title=\"&#039;, $t_description, &#039;\">&#039;, $t_summary;
en
echo &#039;<td class=\"left\"><a title=&#039;, $t_description, &#039;>&#039;, $t_summary;
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 09:31AM
Bonjour,

Oui bien vu, vous pouvez aussi enlever les \\ pour class="left" winking smiley

EDIT: C&#039;est à cause d&#039;un bug du forum, dans mon message initial les \ n&#039;y sont pas...
EDIT2: J&#039;ai corrigé le bug du forum.

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here



Edited 2 time(s). Last edit at 05/09/2007 11:15PM by deboutv.
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 10:04AM
Ok

Donc maintenant la description de mon bug est isible en passant sur le sujet avec ma souris.

Le souci, c&#039;est que j&#039;aimerais que la colonne existe et soit rempli pour l&#039;export csv et Excel. J&#039;ai testé quelque chose, qui ne marche pas, mais c vrai que j&#039;aimerais comprendre pourquoi, histoire de mieux savoir comment marche cette appli.

Dans columns_api.php, j&#039;ai ajouté la fonction :

function print_column_description( $p_row, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) {
global $t_icon_path;

$t_description = string_attribute( bug_get_text_field( $p_row[&#039;id&#039;], &#039;description&#039; ) )

echo &#039;<td class="left">&#039;, $t_description;
   if ( VS_PRIVATE == $p_row[&#039;view_state&#039;] ) {
	printf( &#039; <img src="%s" alt="(%s)" title="%s" />&#039;, $t_icon_path . &#039;protected.gif&#039;, lang_get( &#039;private&#039; ), lang_get( &#039;private&#039; )
	);
   }
echo &#039;</td>&#039;;
}

verdict :
Quote

Parse error: syntax error, unexpected T_ECHO in d:\dev\wamp\www\mantis\core\columns_api.php on line 589
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 10:10AM
Il manque un ; (point-virgule) à la ligne $t_description = string_attribute... winking smiley

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 10:18AM
j&#039;suis vraiment idiote !!

Enfin, du coup, ça fonctionne pour le rapport imprimable et pour Excell, mais toujours pas pour l&#039;export csv. Voici l&#039;erreur :

<b>Fatal error</b>:  Call to undefined function print_column_title_description() in <b>d:\dev\wamp\www\mantis\csv_export.php</b> on line <b>71</b><br /> 
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 10:24AM
C&#039;est parce qu&#039;il faut aussi une fonction print_column_title_description avec juste (enfin je pense) :

echo lang_get( &#039;description&#039; );

Vous devez avoir des exemples dans le fichier core/columns_api.php.

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 10:40AM
Ok

Ca marche bien, mais j&#039;obtiens alors une autre erreur :
Quote

<b>Fatal error</b>: Call to undefined function csv_format_description() in <b>d:\dev\wamp\www\mantis\csv_export.php</b> on line <b>114</b><br />

Du coup, j&#039;ai ajouté une fonction dans csv_api.php :
	function csv_format_description( $p_description ) {
		return csv_escape_string( $p_description );
	}

Je n&#039;ai alors plus d&#039;erreur, mais la description ne s&#039;affiche pas (colonne vide, avec l&#039;en-tête)



Edited 1 time(s). Last edit at 05/09/2007 10:43AM by Amel.
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 11:23AM
Excusez moi de m&#039;immiscer dans la conversation, mais j&#039;ai voulu utiliser la fonction que vous avez donnée plus haut et qui permet de voir la descrption du bogue en laissant la souris quelques secondes sur le résumé, mais j&#039;ai un problème. En effet lorsque je laisse la souris quelques secondes il y a bien quelque chose qui s&#039;affiche, mais il s&#039;agit juste du premier mot de la description. Je n&#039;ai pas la description en entier.
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 11:30AM
pas de souci pour moi à ce niveau là, j&#039;ai bien la description en entier !
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 11:45AM
Oubliez mon précédent message. J&#039;ai trouvé l&#039;erreur smiling smiley
He oui je ne sais même pas faire un copier coller angry smiley
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 12:01PM
De mon côté, je n&#039;arrive pas à résoudre mon pb, et je viens de me rendre compte d&#039;un autre : dans ma liste, même si j&#039;ai bien la colonne decription remplie, le titre de la colonne ne s&#039;affiche plus ! Pour qu&#039;elle s&#039;affiche, il faut que je supprime la fonction
function print_column_title_description( $p_sort, $p_dir, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) {
		echo lang_get( &#039;description&#039; );
	
	}
dans columns_api.php
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 07:39PM
Quote
DoubleNo
Oubliez mon précédent message. J&#039;ai trouvé l&#039;erreur smiling smiley
He oui je ne sais même pas faire un copier coller angry smiley

Cool, problème résolu winking smiley

A noter qu&#039;avec Firefox il faut ajouter un plugin pour avoir l&#039;intégralité de la description.

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 09, 2007 07:40PM
Quote
Amel
De mon côté, je n&#039;arrive pas à résoudre mon pb, et je viens de me rendre compte d&#039;un autre : dans ma liste, même si j&#039;ai bien la colonne decription remplie, le titre de la colonne ne s&#039;affiche plus ! Pour qu&#039;elle s&#039;affiche, il faut que je supprime la fonction
function print_column_title_description( $p_sort, $p_dir, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) {
		echo lang_get( &#039;description&#039; );
	
	}
dans columns_api.php

Ok, laissez-moi un peu de temps pour que je mette en production une solution concernant votre demande.

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 10, 2007 04:41PM
encore une petite modification... si je ne veux pas ma colonne description dans l&#039;affichage des bugs, est-ce que je peux l&#039;avoir dans mon export csv et dans ma version imprimable ??

Amel
Re: Ajouter la colonne description pour l'affichage des bugs
May 10, 2007 04:59PM
Quote
Amel
encore une petite modification... si je ne veux pas ma colonne description dans l&#039;affichage des bugs, est-ce que je peux l&#039;avoir dans mon export csv et dans ma version imprimable ??

Amel

Je pense que je vais faire un plugin d&#039;import/export, on pourra donc avoir ce qu&#039;on veut winking smiley

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter la colonne description pour l'affichage des bugs
May 10, 2007 05:04PM
quelle classe !! winking smiley
Re: Ajouter la colonne description pour l'affichage des bugs
May 14, 2007 08:56AM
Bonjour,

Une première version de test du plugin Import/Export est disponible, voir ici.

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Sorry, only registered users may post in this forum.

Click here to login



Online Users

Guests: 1
Record Number of Users: 1 on April 02, 2023
Record Number of Guests: 115 on November 09, 2023
Top Users
Hébergeur : Morinie.Fr