summaryrefslogtreecommitdiff
path: root/src/fauxton/app/core/router.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/fauxton/app/core/router.js')
-rw-r--r--src/fauxton/app/core/router.js113
1 files changed, 0 insertions, 113 deletions
diff --git a/src/fauxton/app/core/router.js b/src/fauxton/app/core/router.js
deleted file mode 100644
index bef4ced30..000000000
--- a/src/fauxton/app/core/router.js
+++ /dev/null
@@ -1,113 +0,0 @@
-// Licensed under the Apache License, Version 2.0 (the "License"); you may not
-// use this file except in compliance with the License. You may obtain a copy of
-// the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations under
-// the License.
-
-define([
- "core/base",
- "core/auth",
- "backbone"
-],
-
-function(FauxtonAPI, Auth, Backbone) {
-
- var beforeUnloads = {};
-
- var Router = Backbone.Router.extend({
- routes: {},
-
- beforeUnload: function (name, fn) {
- beforeUnloads[name] = fn;
- },
-
- removeBeforeUnload: function (name) {
- delete beforeUnloads[name];
- },
-
- navigate: function (fragment, trigger) {
- var continueNav = true,
- msg = _.find(_.map(beforeUnloads, function (fn) { return fn(); }), function (beforeReturn) {
- if (beforeReturn) { return true; }
- });
-
- if (msg) {
- continueNav = window.confirm(msg);
- }
-
- if (continueNav) {
- Backbone.Router.prototype.navigate(fragment, trigger);
- }
- },
-
- addModuleRouteObject: function(RouteObject) {
- var that = this;
- var masterLayout = FauxtonAPI.masterLayout,
- routeUrls = RouteObject.prototype.getRouteUrls();
-
- _.each(routeUrls, function(route) {
- this.route(route, route.toString(), function() {
- var args = Array.prototype.slice.call(arguments),
- roles = RouteObject.prototype.getRouteRoles(route),
- authPromise = FauxtonAPI.auth.checkAccess(roles);
-
- authPromise.then(function () {
- if (!that.activeRouteObject || !that.activeRouteObject.hasRoute(route)) {
- that.activeRouteObject && that.activeRouteObject.cleanup();
-
- that.activeRouteObject = new RouteObject(route, masterLayout, args);
- }
-
- var routeObject = that.activeRouteObject;
- routeObject.rejectPromises();
- routeObject.routeCallback(route, args);
- routeObject.renderWith(route, masterLayout, args);
- }, function () {
- FauxtonAPI.auth.authDeniedCb();
- });
-
- });
- }, this);
- },
-
- setModuleRoutes: function(addons) {
- _.each(addons, function(module) {
- if (module){
- module.initialize();
- // This is pure routes the addon provides
- if (module.RouteObjects) {
- _.each(module.RouteObjects, this.addModuleRouteObject, this);
- }
- }
- }, this);
- },
-
- initialize: function(addons) {
- this.addons = addons;
- this.auth = FauxtonAPI.auth = new Auth();
- // NOTE: This must be below creation of the layout
- // FauxtonAPI header links and others depend on existence of the layout
- this.setModuleRoutes(addons);
-
- $(FauxtonAPI.el).html(FauxtonAPI.masterLayout.el);
- FauxtonAPI.masterLayout.render();
- },
-
- triggerRouteEvent: function(event, args) {
- if (this.activeRouteObject) {
- var eventArgs = [event].concat(args);
- this.activeRouteObject.trigger.apply(this.activeRouteObject, eventArgs );
- this.activeRouteObject.renderWith(eventArgs, FauxtonAPI.masterLayout, args);
- }
- }
- });
-
- return Router;
-});
-