blob: 753477fc05cd8b0dfc65407026483589ddb0e525 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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([
'backbone',
'backbone.marionette',
'utils/XALangSupport',
'models/VAppState',
'utils/XAUtils',
'bootprompt'
],
function(Backbone, Marionette, localization, MAppState, XAUtil, bootprompt){
'use strict';
return Backbone.Marionette.AppRouter.extend({
/** Backbone routes hash */
appRoutes: {
"" : "postLoginDefaultView",//"dashboardAction",
"!/policymanager/:resource" : "serviceManagerAction",
"!/policymanager/:tag" : "serviceManagerAction",
/****** Analytics Report related **********************/
"!/reports/:userAccess" : "userAccessReportAction",
/****** Audit Report related **********************/
"!/reports/audit/:tab" : "auditReportAction",
"!/reports/audit/loginSession/:paramName/:id" : "loginSessionDetail",
"!/reports/audit/eventlog/:id" : "auditEventDetail",
/****** User Profile related **********************/
"!/userprofile" : "userProfileAction",
"!/users/:tab" : "userManagerAction",
"!/user/create" : "userCreateAction",
"!/user/:id" : "userEditAction",
"!/group/create" : "groupCreateAction",
"!/group/:id" : "groupEditAction",
"!/roles/create" : "roleCreateAction",
"!/roles/:id" : "roleEditAction",
/************GENERIC UI *****************************************/
"!/service/:serviceType/create" : "serviceCreateAction",
"!/service/:serviceType/edit/:id" : "serviceEditAction",
"!/service/:serviceId/policies/:policyType" : "policyManageAction",
"!/service/:serviceId/policies/create/:policyType" : "RangerPolicyCreateAction",
"!/service/:serviceId/policies/:id/edit" : "RangerPolicyEditAction",
/************PERMISSIONS VIEWS *****************************************/
"!/permissions/:models" : "modulePermissionsAction",
"!/permissions/:id/edit" : "modulePermissionEditAction",
/************ KMS ***************************/
"!/kms/keys/:isService/manage/:serviceName" : "kmsManagerAction",
"!/kms/keys/:serviceName/create" : "kmsKeyCreateAction",
// "!/kms/keys/:serviceName/edit/:id" : "kmsKeyEditAction",
/*************** SECURITY ZONE ***********************/
"!/zones/zone/:listId" : "zoneManagmentAction",
"!/zones/create" : "RangerZoneCreateAction",
"!/zones/edit/:id" : "RangerZoneEditAction",
/*************** ERROR PAGE ***********************/
"*actions" : "pageNotFoundAction"
},
route: function(route, name, callback) {
var router = this,
callbackArgs;
if (!callback) callback = this[name];
var proceedWithCallback = function() {
var currentFragment = Backbone.history.getFragment();
router.trigger('beforeroute', name);
callback.apply(router, callbackArgs);
MAppState.set('previousFragment', currentFragment);
};
var overrideCallback = function() {
callbackArgs = arguments;
var formStatus = $('.form-horizontal').find('.dirtyField').length > 0 ? true : false
if (window._preventNavigation && formStatus) {
bootprompt.dialog(
{
message: window._preventNavigationMsg,
buttons: {
noclose: {
"label" : localization.tt('btn.stayOnPage'),
"className" : "btn-success btn-sm",
"callback": function() {
router.navigate(MAppState.get('previousFragment'), {
trigger: false
});
}
},
cancel: {
"label" : localization.tt('btn.leavePage'),
"className" : "btn-danger btn-sm",
"callback": function() {
XAUtil.allowNavigation();
proceedWithCallback();
}
}
}
});
} else {
proceedWithCallback();
}
};
return Backbone.Router.prototype.route.call(this, route, name, overrideCallback);
}
});
});