A simpler option might be to check whether the request is being made via Ajax, and conditionally change the view:
def inner(): response.view = 'default/inner.load' if request.ajax else 'default/inner.html' grid = SQLFORM.grid(db.item) return locals() In that case, the .html view should extend the layout. Alternatively, you could have a single view with a conditional extends: {{extend 'layout.html' if not request.ajax else None}} Note that the view cannot be compiled in that case. Anthony On Thursday, November 13, 2014 7:37:49 AM UTC-5, Leonel Câmara wrote: > > 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')); > return false; > } 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. > > [edit] Added a return false that was needed. > -- 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.