Difference between revisions of "Adding Data to a Widget (Example)"
KenanHabib (talk | contribs) |
KenanHabib (talk | contribs) |
||
Line 6: | Line 6: | ||
Let's go back to our example. If you go to the "daf" page (LINK), you can view the database you are going to be working on by going to Tools -> Tree Display using the menu on the left side of the page. Our field "Former_designating_laboratory" has two data objects under it, a time "19 Mar 2014 14:41:19" and a link to the lab "DR". In this example we are only going to care about displaying the time on the "Overview" widget (if you can't see a widget you can show it by clicking on it from the side menu). | Let's go back to our example. If you go to the "daf" page (LINK), you can view the database you are going to be working on by going to Tools -> Tree Display using the menu on the left side of the page. Our field "Former_designating_laboratory" has two data objects under it, a time "19 Mar 2014 14:41:19" and a link to the lab "DR". In this example we are only going to care about displaying the time on the "Overview" widget (if you can't see a widget you can show it by clicking on it from the side menu). | ||
+ | |||
+ | The first thing we are going to modify is the API. We are going to add a subroutine in order to grab the data from the database. You can find the API file we need to fix under lib/WormBase/API/Object/, the file we are going to fix is "Gene_class.pm" (the object is Gene_class). | ||
+ | |||
+ | We are going to add a subroutine and call it former_laboratory: | ||
+ | |||
+ | sub former_laboratory { | ||
+ | my $self = shift; | ||
+ | my $object = $self->object; | ||
+ | |||
+ | # Access the field Former_designating_laboratory | ||
+ | my $former_lab_time = $object->Former_designating_laboratory; | ||
+ | |||
+ | # return a hash that contains the | ||
+ | return { description => 'Former_designating_laboratory', | ||
+ | data => $former_lab_time && "$former_lab_time" }; | ||
+ | } |
Revision as of 16:13, 13 June 2014
Going through an issue example we are going to explain the work flow required to add some data to a widget.
Issue #2551 required showing the data under the "Former_designating_laboratory" field on the widget "Overview" of a "Gene class" (the Gene class "daf" for example).
Using the data flow graph (LINK) we can see that data goes through 4 stages from the database to the UI - Rest, Conf, API and Template. Usually our work don't involve the Rest stage, but it sure does involve modifying the .conf (the configuration), .pm (the API) and .tt2 (the template) files.
Let's go back to our example. If you go to the "daf" page (LINK), you can view the database you are going to be working on by going to Tools -> Tree Display using the menu on the left side of the page. Our field "Former_designating_laboratory" has two data objects under it, a time "19 Mar 2014 14:41:19" and a link to the lab "DR". In this example we are only going to care about displaying the time on the "Overview" widget (if you can't see a widget you can show it by clicking on it from the side menu).
The first thing we are going to modify is the API. We are going to add a subroutine in order to grab the data from the database. You can find the API file we need to fix under lib/WormBase/API/Object/, the file we are going to fix is "Gene_class.pm" (the object is Gene_class).
We are going to add a subroutine and call it former_laboratory:
sub former_laboratory {
my $self = shift; my $object = $self->object;
# Access the field Former_designating_laboratory my $former_lab_time = $object->Former_designating_laboratory;
# return a hash that contains the return { description => 'Former_designating_laboratory',
data => $former_lab_time && "$former_lab_time" }; }