CatalystX-CRUD-YUI
view release on metacpan or search on metacpan
lib/CatalystX/CRUD/YUI/TT/crud/livegrid_related_js.tt view on Meta::CPAN
[%
IF (!r.defined);
THROW crud '"r" must be defined in ' _ component.name;
END;
SET base_url = c.uri_for('/' _ r.livegrid.controller.path_prefix);
SET foreign = {
'url' => base_url,
'chooser_url' => base_url _ '/livegrid?',
'column_map' => r.rel_info.cmap.list('each') || 0,
'action' => (c.session.prefs.default_crud_action
|| (rel_info.controller.can_write(c)
? 'edit' : 'view')),
'name' => r.method,
'can_read' => r.authz_controller.can_read(c),
'can_write' => r.authz_controller.can_write(c),
'rm_button' => 0,
'm2m' => 0
};
# controller can define extra query params to limit the returned dataset
IF (rel_info.controller.can('livegrid_filter'));
SET extra_params = r.rel_info.controller.livegrid_filter(c, object, r.rel_info);
foreign.chooser_url = foreign.chooser_url _ extra_params;
END;
# UI controls
IF r.rel_info.map_class;
#r.rel_info.as_hash.dump_data;
SET foreign.m2m = 1;
SET foreign.column_map = [r.rel_info.map_from_column, r.rel_info.map_to_column];
IF EDITMODE != 0;
SET foreign.rm_button = 1;
END;
END;
SET parent = {
'column_map' => [],
'url' => c.uri_for(oid),
'oid' => oid,
'oidLabel' => object.unique_value,
'livegrid' => c.uri_for(oid, 'livegrid_related', r.method,
{ 'cxc-m2m' => foreign.m2m
}),
};
CALL r.livegrid.url( parent.livegrid );
FOR col_name = r.rel_info.cmap.keys;
parent.column_map.push( col_name );
parent.column_map.push( object.$col_name );
END;
%]
<div id="livegrid[% r.livegrid.counter %]"></div>
<div id="livegrid[% r.livegrid.counter %]-chooser" class="chooser"></div>
<div id="livegrid[% r.livegrid.counter %]-form" class=""></div>
<script type="text/javascript">
/* <![CDATA[ */
var relTab = YAHOO.crud.new_relTab();
relTab.index = [% r.livegrid.counter %];
relTab.id = '[% r.method %]Tab';
relTab.name = '[% r.method %]';
var buttons = ['-'];
[% IF (
foreign.can_write
&& !RelOpts.hide_create.exists(r.method)
)
&& !foreign.m2m # o2m only
%]
buttons.push({
text : 'Create new [% r.thisLabel %]',
handler : function(btn){
( run in 1.375 second using v1.01-cache-2.11-cpan-5a3173703d6 )