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 )