On 2/15/08, <b class="gmail_sendername">Stanislav Sinyagin</b> &lt;<a href="mailto:ssinyagin@yahoo.com">ssinyagin@yahoo.com</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;m a bit stuck with the use of Actions.<br><br>I want to list the records in a table, and at the end of each row place<br>a link &quot;Delete&quot; which would delete the record.</blockquote><div><br>I think Jesse&#39;s suggestion may work, but I have another. <br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">The code follows. When I click &quot;Delete&quot;, the debug log says the corresponding<br>
action is found, but when the Model object&#39;s &quot;delete&quot; method is called,<br>it&#39;s called in an object that was not loaded from the database, and therefore<br>its ID is unknown, and basically the deletion is not happening:<br>
<br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;my $requests = new Toponet::Model::TraceRequestCollection<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(current_user =&gt; Jifty-&gt;web-&gt;current_user());<br><br>&nbsp;&nbsp;&nbsp;&nbsp;$requests-&gt;limit( column&nbsp;&nbsp;&nbsp;&nbsp;=&gt; &#39;startDevice&#39;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operator&nbsp;&nbsp;=&gt; &#39;=&#39;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;&nbsp;&nbsp;&nbsp; =&gt; $deviceID );<br>&nbsp;&nbsp;&nbsp;&nbsp;my $reqs = $requests-&gt;items_array_ref();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;if( scalar(@{$reqs}) &gt; 0 )<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $delAction = Jifty-&gt;web-&gt;new_action<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(class =&gt; &#39;Toponet::Action::DeleteTraceRequest&#39;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; moniker =&gt; &#39;delete_trace_request&#39;);<br><br>&lt;/%perl&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;P&gt;Existing trace requests:&lt;/P&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;TABLE&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;TR&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TH&gt;Request ID&lt;/TH&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TH&gt;Submitted&lt;/TH&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TH&gt;Status&lt;/TH&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TH&gt;Target IP&lt;/TH&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TH&gt;Completed&lt;/TH&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TH&gt;Results&lt;/TH&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TH&gt;Action&lt;/TH&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TR&gt;<br><br>
%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach my $request<br>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (sort {$a-&gt;id() &lt;=&gt; $b-&gt;id()} @{$reqs}) {<br><br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;TR&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD&gt;&lt;% $request-&gt;id() %&gt;&lt;/TD&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD&gt;&lt;% scalar(localtime( $request-&gt;timeCreated() )) %&gt;&lt;/TD&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD&gt;&lt;% $request-&gt;status() %&gt;&lt;/TD&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD&gt;&lt;% $request-&gt;targetValue() %&gt;&lt;/TD&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD&gt;&lt;% $request-&gt;status() eq &#39;complete&#39; ?<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scalar(localtime( $request-&gt;timeComplete() )) : &#39;&#39; %&gt;&lt;/TD&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD&gt;&lt;% $request-&gt;status() eq &#39;complete&#39; ?<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;&lt;A HREF=&quot;/show_trace_results.html?traceID=&#39; . $request-&gt;id() .<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;&quot;&gt;view&lt;/A&gt;&#39; : &#39;&#39; |n %&gt;&lt;/TD&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;% Jifty-&gt;web-&gt;form-&gt;start %&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;% Jifty-&gt;web-&gt;link<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (label&nbsp;&nbsp;=&gt; &#39;Delete&#39;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as_link =&gt; 1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onclick =&gt; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;submit =&gt; $delAction,</blockquote>
<div><br>Replace the line above with:<br><br>&nbsp; submit =&gt; { action =&gt; $delAction, arguments =&gt; { id =&gt; $request-&gt;id(), }, },<br>&nbsp;<br>and drop the line below starting with &quot;args =&gt; &quot;.<br></div><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;args =&gt; { id =&gt; $request-&gt;id() },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refresh_self =&gt; 1 }) %&gt;&lt;/TD&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;% Jifty-&gt;web-&gt;form-&gt;end %&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TR&gt;<br><br>%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TABLE&gt;<br>%&nbsp;&nbsp;&nbsp;&nbsp;}<br><br><br><br><br><br>_______________________________________________<br>jifty-devel mailing list<br>
<a href="mailto:jifty-devel@lists.jifty.org">jifty-devel@lists.jifty.org</a><br><a href="http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel">http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel</a><br></blockquote>
</div><br>