Difference between revisions of "Design Specs: Evidence Handling"
From WormBaseWiki
Jump to navigationJump to searchLine 36: | Line 36: | ||
=Template= | =Template= | ||
+ | |||
+ | ==generic evidence macro== | ||
+ | |||
+ | in root/templates/shared/page_elements.tt2 we defined the evidence macro | ||
+ | |||
+ | [% MACRO evidence(data, id) BLOCK %] | ||
+ | |||
+ | data is the returned hash reference and id sets the div id number/label in case there are multiple evidence display on same page | ||
+ | |||
+ | e.g. root/templates/classes/gene/overview.tt2 | ||
+ | |||
+ | FOREACH sd IN fields.structured_description.data.keys; | ||
+ | USE String(sd.replace('_', ' ')); | ||
+ | WRAPPER $field_block title=String.capital; | ||
+ | FOREACH obj IN fields.structured_description.data.$sd; | ||
+ | '<div class="text-width" style="margin:0.5em">'; | ||
+ | markup(obj.text); | ||
+ | evidence(obj.evidence,sd); | ||
+ | |||
+ | '</div>'; | ||
+ | END; | ||
+ | END; | ||
+ | END; | ||
+ | |||
+ | ==DataTable=== | ||
+ | |||
+ | in the jquery_data_table_html macro we also added evidence handling | ||
+ | |||
+ | if a cell in the table contains evidence information, it will be shown up automatically. |
Revision as of 20:54, 3 January 2012
Contents
API
the base function
by calling the _get_evidence($node,$type) subroutine in lib/API/Object.pm
argument $type is optional. If specified, only this type of evidence is retrieved.
returns a hash reference containing all the types of evidences to the right of the node
code snippet: sub _get_evidence { ... ... $data{$type}{$evidence}{id} = "$evidence"; $data{$type}{$evidence}{label} = "$label"; $data{$type}{$evidence}{class} = lc($class) if(defined $class); ... ... return %data ? \%data :undef; }
use it in each class module
e.g. in lib/API/Object/Gene.pm
sub gene_ontology { ... push @{ $data{$facet} }, { method => $1, evidence_code => {text=>"$evidence_code",evidence=>$self->_get_evidence($evidence_code)}, term => $self->_pack_obj($go_term), }; ... }
Template
generic evidence macro
in root/templates/shared/page_elements.tt2 we defined the evidence macro
[% MACRO evidence(data, id) BLOCK %]
data is the returned hash reference and id sets the div id number/label in case there are multiple evidence display on same page
e.g. root/templates/classes/gene/overview.tt2
FOREACH sd IN fields.structured_description.data.keys; USE String(sd.replace('_', ' ')); WRAPPER $field_block title=String.capital; FOREACH obj IN fields.structured_description.data.$sd;
'
';
markup(obj.text); evidence(obj.evidence,sd);'
';
END; END; END;
DataTable=
in the jquery_data_table_html macro we also added evidence handling
if a cell in the table contains evidence information, it will be shown up automatically.