region.show = function(view,force_flush,force_no_waiting) { vent.trigger('screen:leave',App.getCurrentScreenData(),App.getQueriedScreen(),currentView); App.addQueriedScreenToHistory(force_flush); showView(view,force_no_waiting); };
var switchScreen = function( view, force_flush, force_no_waiting ) { var queried_screen = App.getQueriedScreen(); vent.trigger( 'screen:leave', App.getCurrentScreenData(), queried_screen, currentView ); App.addQueriedScreenToHistory( force_flush ); if ( view.is_static ) { memorizeScreenStaticView( queried_screen, view ); } showView( view, force_no_waiting ); };
region.show = function( view_type, view_data, screen_data ) { App.setQueriedScreen( screen_data ); var queried_screen = App.getQueriedScreen(); /** * Use this 'redirect' filter to redirect to a different screen than the queried one, * just before it is showed. * * To redirect to a different screen from the filter callback (in themes) : * - call App.navigate('your_screen_route'); * - return true * * Implementation note : This has to be a filter (not action) so that we * can stop the showing process if true is returned. */ var redirect = Hooks.applyFilters( 'redirect', false, [queried_screen, App.getCurrentScreenData()] ); if( redirect ) { return; } /** * Use this 'is-static-screen' filter to decide whether a screen * is static or not. A static screen is never refreshed or re-rendered * by the app core. */ var is_static = Hooks.applyFilters( 'is-static-screen', false, [ queried_screen ] ) if ( is_static ) { var screen_view = getScreenStaticView( queried_screen ); if ( screen_view !== null ) { screen_view.checkTemplate( function() { switchScreen( screen_view ); } ); } else { createNewView( view_type, view_data, is_static, function( newview ) { newview.checkTemplate( function() { switchScreen( newview ); } ); } ); } } else { createNewView( view_type, view_data, is_static, function( newview ) { newview.checkTemplate( function() { switchScreen( newview ); } ); } ); } }
setTemplate : function(default_template,fallback_template){ var template = default_template != undefined ? default_template : ''; template = Hooks.applyFilters('template',template,[App.getQueriedScreen()]); if( template != ''){ this.template_name = template; if( fallback_template != undefined && fallback_template != ''){ this.fallback_template_name = fallback_template; } } }