The problem is that URL, when an extension is not specified, inherits it 
from the current URL which is .load in the case where they are loaded in 
components with extension='load'.

The thing is, this need to be load, otherwise inner will use the generic 
HTML view extending layout.html and you don't want to have a layout inside 
your layout when you're not opening in a new window.

So basically inner needs to detect whether it's really a component or not, 
generally that's what the extension is for. The only way I can remember to 
do this would be with stupid javascript hacks. For instance, you could make 
an inner.load view like this:

{{=grid}}


<script>
$('.web2py_grid a').each(function() {
    if (typeof $(this).attr('href') !== 'undefined') {
        $(this).attr('href', $(this).attr('href').replace('.load', '.html'
));
        $(this).click(function(e) {
            if (e.which == 1) { // If we're left clicking
                if(e.ctrlKey) { // ctrl key being pressed also means new tab
                    window.open($(this).attr('href'));
                } else {  // We really want to stay in the component
                    $(this).attr('href', $(this).attr('href').replace(
'.html', '.load'));
                }
            }
        });
    }
});
</script>


What this does is make all links have a .html extension, then if the user 
is left clicking it makes it .load again. Yep, it's ugly, but you asked for 
it.

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to