diff --git a/core/js/router.js b/core/js/router.js index 8b66f5a05c5c5f79d8a84e79117dd36464635f3d..3562785b3420ef01963ff39b74eccb20f5caa57c 100644 --- a/core/js/router.js +++ b/core/js/router.js @@ -1,9 +1,14 @@ OC.router_base_url = OC.webroot + '/index.php/', OC.Router = { + // register your ajax requests to load after the loading of the routes + // has finished. otherwise you face problems with race conditions + registerLoadedCallback: function(callback){ + this.routes_request.done(callback); + }, routes_request: $.ajax(OC.router_base_url + 'core/routes.json', { dataType: 'json', success: function(jsondata) { - if (jsondata.status == 'success') { + if (jsondata.status === 'success') { OC.Router.routes = jsondata.data; } } @@ -11,7 +16,7 @@ OC.Router = { generate:function(name, opt_params) { if (!('routes' in this)) { if(this.routes_request.state() != 'resolved') { - alert('wait');// wait + console.warn('To avoid race conditions, please register a callback');// wait } } if (!(name in this.routes)) { diff --git a/lib/base.php b/lib/base.php index c97700b3dbfc311d197e8d1a31f8ab733c94bd8d..66d2d400285aadaeea6149f67af0758056b66c78 100644 --- a/lib/base.php +++ b/lib/base.php @@ -488,6 +488,7 @@ class OC{ return; } try { + OC_App::loadApps(); OC::getRouter()->match(OC_Request::getPathInfo()); return; } catch (Symfony\Component\Routing\Exception\ResourceNotFoundException $e) {