Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Catalyst: Users

Datagrid with details view?

 

 

Catalyst users RSS feed   Index | Next | Previous | View Threaded


ksmclane at us

Apr 5, 2012, 11:07 AM

Post #1 of 3 (423 views)
Permalink
Datagrid with details view?

I am trying to duplicate a .aspx website. I have succeeded in getting a
page based on a db view. In the original site you can click on a row and a
details view appears at the bottom of the page. I don't know if this is
possible, but I have been trying to simply get a second page to come up
with the details. I created a view with the fields I need and re-created
my schema. I created a controller and added this code:

sub detail :Local :Args(1) {
my ($self, $c, $acctid) = @_;
$c->stash(details =>
[$c->model('ORANGES::AccountDetails')->search({account_id => {'=',
\$acctid}})]);
$c->stash(template => 'accountdetails/detail.tt2');
}
This appears to create a valid sql query, I get results when running it
directly on the db.

I added code to my list.tt2 file to create a link to the
/accountdetails/detail URI by wrapping one of my TD in an href statement
like this:

<td><a href="[% c.uri_for('/accountdetails/detail/') %][%
account.account_id %]">[% account.account_code %]</a></td>

I created my detail.tt2 file containing this:

[% META title = 'Account Detail' -%]
<center>
<table border="1" style="width:33%;border-collapse:collapse;">

<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Account Code</td><td>[%
details.account_code %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Account Name</td><td>[%
details.account_name %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Account Policy</td><td>[%
details.account_policy %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Account Target</td><td>[%
details.account_target %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Account Workitem</td><td>[%
details.account_workitem %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Start Date</td><td>[%
details.start_date %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Kit Date</td><td>[% details.kit_date
%]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Upgrade Date</td><td>[%
details.upgrade_date %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Approval Date</td><td>[%
details.approval_date %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Sunset Date</td><td>[%
details.sunset_date %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Alert Flag</td><td>[%
details.alert_flag %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Cirats Flag</td><td>[%
details.cirats_flag %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Report Flag</td><td>[%
details.report_flag %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Sample Flag</td><td>[%
details.sample_flag %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Sample Rate</td><td>[%
details.sample_rate %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Department Code</td><td>[%
details.department_code %]</td></tr>

</table>
</center>

My link works, I get the detail page with all the formatting and the
pre-populated TD's, but the data is not showing up. I think I am missing
something.

Once again all help is appreciated.


hernanlopes at gmail

Apr 5, 2012, 4:17 PM

Post #2 of 3 (389 views)
Permalink
Re: Datagrid with details view? [In reply to]

Kenneth,
you are using ->search which return multiple records, and you are using [%
details.account_code %] on your code. Maybe you should:
1. [% details.0.account_code %] and ->all
or 2. while ( $item = $results->next ) { ... }

and you can always do
$results = $c->model('ORANGES::AccountDetails')->search({account_id =>
{'=', \$acctid}})
$c->stash(details => $results )
instead of
$c->stash(details =>
[$c->model('ORANGES::AccountDetails')->search({account_id => {'=',
\$acctid}})]);

and, why are you using \$acctid ? why not simply $acctit?
and why ->search and not ->find if its one record... you need find

good luck

-hernan


On Thu, Apr 5, 2012 at 3:07 PM, Kenneth S Mclane <ksmclane [at] us>wrote:

> I am trying to duplicate a .aspx website. I have succeeded in getting a
> page based on a db view. In the original site you can click on a row and a
> details view appears at the bottom of the page. I don't know if this is
> possible, but I have been trying to simply get a second page to come up
> with the details. I created a view with the fields I need and re-created my
> schema. I created a controller and added this code:
>
> sub detail :Local :Args(1) {
> my ($self, $c, $acctid) = @_;
> $c->stash(details =>
> [$c->model('ORANGES::AccountDetails')->search({account_id => {'=',
> \$acctid}})]);
> $c->stash(template => 'accountdetails/detail.tt2');
> }
> This appears to create a valid sql query, I get results when running it
> directly on the db.
>
> I added code to my list.tt2 file to create a link to the
> /accountdetails/detail URI by wrapping one of my TD in an href statement
> like this:
>
> <td><a href="[% c.uri_for('/accountdetails/detail/') %][%
> account.account_id %]">[% account.account_code %]</a></td>
>
> I created my detail.tt2 file containing this:
>
> [% META title = 'Account Detail' -%]
> <center>
> <table border="1" style="width:33%;border-collapse:collapse;">
>
> <tr style="backround-color:#F8F8F8;">
> <td style="background-color:#E5ECF9;">Account Code</td><td>[%
> details.account_code %]</td></tr>
> <tr style="backround-color:White;">
> <td style="background-color:#E5ECF9;">Account Name</td><td>[%
> details.account_name %]</td></tr>
> <tr style="backround-color:#F8F8F8;">
> <td style="background-color:#E5ECF9;">Account Policy</td><td>[%
> details.account_policy %]</td></tr>
> <tr style="backround-color:White;">
> <td style="background-color:#E5ECF9;">Account Target</td><td>[%
> details.account_target %]</td></tr>
> <tr style="backround-color:#F8F8F8;">
> <td style="background-color:#E5ECF9;">Account Workitem</td><td>[%
> details.account_workitem %]</td></tr>
> <tr style="backround-color:White;">
> <td style="background-color:#E5ECF9;">Start Date</td><td>[%
> details.start_date %]</td></tr>
> <tr style="backround-color:#F8F8F8;">
> <td style="background-color:#E5ECF9;">Kit Date</td><td>[% details.kit_date
> %]</td></tr>
> <tr style="backround-color:White;">
> <td style="background-color:#E5ECF9;">Upgrade Date</td><td>[%
> details.upgrade_date %]</td></tr>
> <tr style="backround-color:#F8F8F8;">
> <td style="background-color:#E5ECF9;">Approval Date</td><td>[%
> details.approval_date %]</td></tr>
> <tr style="backround-color:White;">
> <td style="background-color:#E5ECF9;">Sunset Date</td><td>[%
> details.sunset_date %]</td></tr>
> <tr style="backround-color:#F8F8F8;">
> <td style="background-color:#E5ECF9;">Alert Flag</td><td>[%
> details.alert_flag %]</td></tr>
> <tr style="backround-color:White;">
> <td style="background-color:#E5ECF9;">Cirats Flag</td><td>[%
> details.cirats_flag %]</td></tr>
> <tr style="backround-color:#F8F8F8;">
> <td style="background-color:#E5ECF9;">Report Flag</td><td>[%
> details.report_flag %]</td></tr>
> <tr style="backround-color:White;">
> <td style="background-color:#E5ECF9;">Sample Flag</td><td>[%
> details.sample_flag %]</td></tr>
> <tr style="backround-color:#F8F8F8;">
> <td style="background-color:#E5ECF9;">Sample Rate</td><td>[%
> details.sample_rate %]</td></tr>
> <tr style="backround-color:White;">
> <td style="background-color:#E5ECF9;">Department Code</td><td>[%
> details.department_code %]</td></tr>
>
> </table>
> </center>
>
> My link works, I get the detail page with all the formatting and the
> pre-populated TD's, but the data is not showing up. I think I am missing
> something.
>
> Once again all help is appreciated.
> _______________________________________________
> List: Catalyst [at] lists
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst [at] lists/
> Dev site: http://dev.catalyst.perl.org/
>
>


ksmclane at us

Apr 6, 2012, 5:56 AM

Post #3 of 3 (382 views)
Permalink
Re: Datagrid with details view? [In reply to]

From:
Hernan Lopes <hernanlopes [at] gmail>
To:
The elegant MVC web framework <catalyst [at] lists>
Date:
04/05/2012 06:18 PM
Subject:
Re: [Catalyst] Datagrid with details view?

This is my first attempt. I did get it working, I am using this as a
learning exercise. You have given me several different things to try for
this as alternatives. Please see my comments/answers inline below.

Kenneth,
you are using ->search which return multiple records, and you are using [%
details.account_code %] on your code. Maybe you should:
1. [% details.0.account_code %] and ->all
or 2. while ( $item = $results->next ) { ... }
Kenneth> I used search as that was what I found an example of, plus in my
case it only returns one record. I ended up wrapping my template code in a
FOREACH and changing to a singular reference.
and you can always do
$results = $c->model('ORANGES::AccountDetails')->search({account_id =>
{'=', \$acctid}})
$c->stash(details => $results )
instead of
$c->stash(details =>
[$c->model('ORANGES::AccountDetails')->search({account_id => {'=',
\$acctid}})]);

and, why are you using \$acctid ? why not simply $acctit?
Kenneth> the code did not want to accept it without the escape for some
reason, perhaps I needed to wrap it in double quotes. It wasn't
interpolating it.
and why ->search and not ->find if its one record... you need find
Kenneth> good to know.

good luck

-hernan


On Thu, Apr 5, 2012 at 3:07 PM, Kenneth S Mclane <ksmclane [at] us>
wrote:
I am trying to duplicate a .aspx website. I have succeeded in getting a
page based on a db view. In the original site you can click on a row and a
details view appears at the bottom of the page. I don't know if this is
possible, but I have been trying to simply get a second page to come up
with the details. I created a view with the fields I need and re-created
my schema. I created a controller and added this code:

sub detail :Local :Args(1) {
my ($self, $c, $acctid) = @_;
$c->stash(details =>
[$c->model('ORANGES::AccountDetails')->search({account_id => {'=',
\$acctid}})]);
$c->stash(template => 'accountdetails/detail.tt2');
}
This appears to create a valid sql query, I get results when running it
directly on the db.

I added code to my list.tt2 file to create a link to the
/accountdetails/detail URI by wrapping one of my TD in an href statement
like this:

<td><a href="[% c.uri_for('/accountdetails/detail/') %][%
account.account_id %]">[% account.account_code %]</a></td>

I created my detail.tt2 file containing this:

[% META title = 'Account Detail' -%]
<center>
<table border="1" style="width:33%;border-collapse:collapse;">

<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Account Code</td><td>[%
details.account_code %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Account Name</td><td>[%
details.account_name %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Account Policy</td><td>[%
details.account_policy %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Account Target</td><td>[%
details.account_target %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Account Workitem</td><td>[%
details.account_workitem %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Start Date</td><td>[%
details.start_date %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Kit Date</td><td>[% details.kit_date
%]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Upgrade Date</td><td>[%
details.upgrade_date %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Approval Date</td><td>[%
details.approval_date %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Sunset Date</td><td>[%
details.sunset_date %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Alert Flag</td><td>[%
details.alert_flag %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Cirats Flag</td><td>[%
details.cirats_flag %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Report Flag</td><td>[%
details.report_flag %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Sample Flag</td><td>[%
details.sample_flag %]</td></tr>
<tr style="backround-color:#F8F8F8;">
<td style="background-color:#E5ECF9;">Sample Rate</td><td>[%
details.sample_rate %]</td></tr>
<tr style="backround-color:White;">
<td style="background-color:#E5ECF9;">Department Code</td><td>[%
details.department_code %]</td></tr>

</table>
</center>

My link works, I get the detail page with all the formatting and the
pre-populated TD's, but the data is not showing up. I think I am missing
something.

Once again all help is appreciated.

Catalyst users RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.